Commit Graph

6835 Commits (8cf431aeb2b80907e25d941ee6078da0236720e7)

Author SHA1 Message Date
Bret Curtis db2368fced small fix for gcc12 2 years ago
Alexei Kotov 8d3c5c0f05 Unify texture wrapping setup 2 years ago
Alexei Kotov 2de81738c1 Implement the basics of BSEffectShaderProperty 2 years ago
Cédric Mocquillon 6e23ad82d5 Load esm files from vfs 2 years ago
psi29a 0f331a4fc5 Merge branch 'lua_callback' into 'master'
Fix potential memory leak in LuaUtil::Callback

See merge request OpenMW/openmw!2733
2 years ago
psi29a 0ed1310417 Merge branch 'fix_fog_state_load' into 'master'
Fix loading fog state

See merge request OpenMW/openmw!2743
2 years ago
elsid b5ec584be2
Replace ESM::RefId::sEmpty by default constructed RefId where possible
Static const is only required to provide a reference or a pointer when it is not
possible with default constructed temporary.
2 years ago
elsid 959de6f4c1
Avoid UB on empty fog data record 2 years ago
elsid 28f7a89530
Reuse dtNavMeshQuery
To avoid redundant allocations.
2 years ago
elsid 996153f78d
Convert RefId to class 2 years ago
Petr Mikheev b71eac3e76 Fix #7210 2 years ago
Petr Mikheev eceeb15ee5 Fix bug in lua_ui/content.lua: getmetatable(ui.content{}) shouldn't return a global mutable table 2 years ago
Petr Mikheev 65885d994f Don't expose LuaUtil::Callback to lua 2 years ago
Petr Mikheev 71ba7b88e2 Move asyncpackage from apps/openmw/mwlua to components/lua 2 years ago
elsid 6d261d38dd
Add functions to read and write ESM::RefId and use them
To be later changed with another implementation.
2 years ago
elsid 80e6d6cbe3
Support variable size strings in ESM3 2 years ago
elsid beb017e699
Do not truncate too long strings on writing ESM 2 years ago
elsid c0c723bb1b
Add const to read only function 2 years ago
Alexei Kotov 0ba179c332 Discard terrain base layer alpha in non-shader rendering path (bug #6657) 2 years ago
psi29a 02651cd96c Merge branch 'texturefx' into 'master'
Propagate dynamic effects to node's immediate children (bug #6550)

Closes #6550

See merge request OpenMW/openmw!2721
2 years ago
elsid 2e64155c0f
Use signed type for left record and files size in ESM3 reader context
Otherwise reading some of the records like ESM::CellRef without a subrecord
after could lead to underflow of ESM_Context::leftRec which makes
ESM::ESMReader::hasMoreSubs to return true and load hangs for a while trying to
read the same subrecord many times.

Fix ESM::Variant tests since it's now required to have a record for any ESM
data. Add 16 (size of record header) to all expected data sizes.
2 years ago
Alexei Kotov 9deed5c03e Propagate dynamic effects to node's immediate children (bug #6550) 2 years ago
elsid a5ec108cfb
Add missing space 2 years ago
elsid 4f683d1ee9
Throw exception on failed write 2 years ago
psi29a 5f1da29881 Merge branch 'bsapriority' into 'master'
Files::Collections: prefer files from highest priority folders (bug #7092)

Closes #7092

See merge request OpenMW/openmw!2716
2 years ago
psi29a 83894bae8a Merge branch 'nif' into 'master'
Add NiTriBasedGeomData abstraction, bring NiVertexColorProperty to modern standards

See merge request OpenMW/openmw!2714
2 years ago
Alexei Kotov 536370c76d Files::Collections: prefer files from highest priority folders 2 years ago
Alexei Kotov 99aa90f90c Rewrite NiVertexColorProperty 2 years ago
Alexei Kotov d39127cc3d Add NiTriBasedGeomData abstraction 2 years ago
elsid 080700f8fe
Name all custom ESM format versions and add tests 2 years ago
psi29a de2bd6d802 Merge branch 'nistringpalette' into 'master'
Fix NiStringPalette loading again

See merge request OpenMW/openmw!2703
2 years ago
AnyOldName3 8ea2e15446 clang-format some more
LLVM shouldn't make me download everything they've ever made in the same
package as clang-format.
2 years ago
AnyOldName3 83b940397e AdD lInE bReAk ThAt ClAnG-fOrMaT wAnTeD 2 years ago
Alexei Kotov a4ddf443ed Fix NiStringPalette loading 2 years ago
Alexei Kotov c8430ee6c8 Clean up fillTriangleMesh for NiTriStrips 2 years ago
AnyOldName3 7d4410d4fb Use reserveGlobalTextureUnits for shadow maps 2 years ago
psi29a a41cbfb349 Merge branch 'candles' into 'master'
Read NiBlendInterpolator records, fill in NiControllerManager fields

See merge request OpenMW/openmw!2700
2 years ago
elsid 2c43a8558a
Add option to disable debug log for unsupported nif files
It becomes quite extensive and not very useful when loading oblivion content
files.
2 years ago
Alexei Kotov d7834c43e5 Fill in NiControllerManager fields 2 years ago
Alexei Kotov 091fcd837e Read all the NiBlendInterpolator record types 2 years ago
Alexei Kotov 7ecf018743 Add NiBlendInterpolator 2 years ago
elsid 02ada74fa1
Do not try to dereference nullptr in object cache 2 years ago
Alexei Kotov 41d6ccd3f6 Read NiDefaultAVObjectPalette 2 years ago
psi29a 5f9332751c Merge branch 'roottrafo' into 'master'
Don't discard root node transformations for Gamebryo meshes

See merge request OpenMW/openmw!2697
2 years ago
Alexei Kotov b14d1f0c6b Don't discard root node transformations for Gamebryo meshes 2 years ago
Alexei Kotov 8ebdd1e4a5 Fix material data loading for 10.0.1.0 2 years ago
Alexei Kotov 115c30a573 Read bhkConvexTransformShape 2 years ago
AnyOldName3 9be3d2668a Break out of loops when uniform is found 2 years ago
Alexei Kotov 9f28a26b25 Read NiSequence/NiControllerSequence 2 years ago
psi29a 944931c9bf Merge branch 'load_esm4_lights' into 'master'
Adds ESM4 light into ESM4 Cells

See merge request OpenMW/openmw!2692
2 years ago
florent.teppe 486d15b19e moved light common to its own file
moved esm4light to it's own file
2 years ago
florent.teppe dc961e3189 Adds the light into the scene.
Common struct for ESM3 and ESM4 light
2 years ago
elsid 627bed09ee
Remove redundant operator<< overloads from Log 2 years ago
psi29a a0795ba7ae Merge branch 'launch_fix' into 'master'
Fix some non-ASCII path issues

Closes #6817

See merge request OpenMW/openmw!2686
2 years ago
florent.teppe a71a86e64a Load light models in the engine. Doesn't emit light 2 years ago
psi29a 15b3af92df Merge branch 'macos_lua_fix' into 'master'
make sure lua works with macos packages

See merge request OpenMW/openmw!2687
2 years ago
psi29a 4f001d8736 Merge branch 'qt6' into 'master'
Add an initial Qt6 support

See merge request OpenMW/openmw!2684
2 years ago
Andrei Kortunov 7e2aedf637 Add an initial Qt6 support 2 years ago
Bret Curtis a708fb4a5c make sure lua works with macos packages 2 years ago
Andrei Kortunov 8925f854e7 Fix non-ASCII path logging 2 years ago
Andrei Kortunov 5836d27928 Fix ContentSelector usage with non-ASCII paths 2 years ago
psi29a 4032c447e9 Merge branch 'load-ESM4-Cell' into 'master'
Can load and coc into an interrior oblivion cell

See merge request OpenMW/openmw!2647
2 years ago
glassmancody.info e778ffee9b po2 scaling for average luminance 2 years ago
elsid e92ada09af
Replace QRegExp by QRegularExpression 2 years ago
AnyOldName3 80d6f6bc97 Add line break that clang-format wanted 2 years ago
AnyOldName3 0edc8fc77d Don't use FFP-friendly texture image units for shadow maps
This more-or-less gets rid of the shadow system's only depencency on FFP
stuff. All that remains is it using OSG cameras, which OSG provides a
uniform-based implementation of, too, which we can trivially migrate to.

This should mean we're not eating any of the ~8 FPP-friendly texture
units, which is good as Morrowind models can use all of those on their
(although they very rarely do), and instead use some of the ~160
shader-only texture image units. This just requires not calling
glEnable(GL_TEXTURE_2D), accomplished by changing
setTextureAttributeAndModes to setTextureAttribute.

Also changes from using glTexGen and its eye plane matrices to pass the
shadow space matrix for each light to explicit uniforms. Thankfully, the
maths was a simple combination of the valid region matrix and eye plane
matrix maths.

As of this commit, I believe this kills shadows in one eye for stereo
rendering.
2 years ago
psi29a aee7716c3a Merge branch 'launcher_typed_settings' into 'master'
Typed launcher settings

See merge request OpenMW/openmw!2650
2 years ago
florent.teppe 084207af64 Avoids a lot a special cases for ESM3 vs ESM4 cells. 2 years ago
florent.teppe 1caed2de2a Applies some review comments.
Proper visit for ESM::CellVariant

Fixed MWWorldCell constructor
2 years ago
elsid f1dbd9b959
Fix -Wduplicated-branches warnings 2 years ago
elsid c79c14da91
Fix -Wnon-virtual-dtor warnings 2 years ago
psi29a 00978ed7a4 Merge branch 'wherefore_art_thou_horatius' into 'master'
Fix global variable replacement in dialogue

Closes #7197

See merge request OpenMW/openmw!2675
2 years ago
psi29a 68b3b90255 Merge branch 'ui_content_leak' into 'master'
Move implementation of UI Content to Lua (#7155)

See merge request OpenMW/openmw!2661
2 years ago
Evil Eye 8d2b5ed8ee Combine initializer_lists 2 years ago
Evil Eye d3bc79e9b2 Reduce code duplication 2 years ago
Evil Eye 32ac7406ab Fix global variable replacement in dialogue 2 years ago
Evil Eye 571e11cd42 Restore 0936d716d96cd45b3efc2d1a3697614f7f96952d 2 years ago
uramer e96681151c Get rid of the LuaUI::Content namespace 2 years ago
uramer d24c506b0e Move metatable protection asserts to tests 2 years ago
uramer 2a35bae655 Use range_error for invalid indexes 2 years ago
uramer fb0646dda1 Remove Ui Content counter in Lua profiler 2 years ago
uramer bbbef96087 Switch to loadInternalLib 2 years ago
uramer c7b0c0a406 Protecd UI Content's metatable 2 years ago
florent.teppe 4e7cde5d72 applied some review changes.
crashfix tests
2 years ago
psi29a 92f88c16a9 Merge branch 'remove-strerror' into 'master'
Remove strerror usages

Closes #7151

See merge request OpenMW/openmw!2664
2 years ago
psi29a bc90636316 Merge branch 'fix-7117' into 'master'
Replace boost::scoped_array with std::vector

Closes #7117

See merge request OpenMW/openmw!2662
2 years ago
psi29a ef0a81e811 Merge branch 'integration_tests_crash_log' into 'master'
Use proper log paths and print crash log in integration tests CI job

See merge request OpenMW/openmw!2668
2 years ago
Petr Mikheev 3096111abb Merge branch 'docs_fixes' into 'master'
Documentation and API fixes (part of !2529)

See merge request OpenMW/openmw!2649
2 years ago
uramer c17eedd348 Documentation and API fixes (part of !2529) 2 years ago
elsid c44bc5ade5
Setup logging with properly initialized configuration manager
Default constructed instance may provide different paths from initialized one.
2 years ago
elsid 007ad4e4d1
Write crash log to temporary directory
To make sure current user has rights to do so.
2 years ago
Andrzej Głuszak 9b0a499b58 Remove strerror usages 2 years ago
Andrzej Głuszak c9e5f0208d Replace boost::scoped_array with std::vector 2 years ago
uramer 259f104311 Clean up 2 years ago
uramer 749c89e26e Add missing to_string 2 years ago
uramer 3618b3f409 Fix Content::View::remove 2 years ago
uramer fc1430af95 Move implementation of UI Content to Lua 2 years ago
psi29a 3a9a60a453 Merge branch 'esmtool_esm4_globals' into 'master'
Support more fields in esmtool for ESM4

See merge request OpenMW/openmw!2659
2 years ago
florent.teppe ebfee18e35 implements std::visit for CellVariant, fixes struct vs class forward decl 2 years ago
florent.teppe aa29f86efe fixed struct vs class. 2 years ago
elsid d541436b15
Support parent, type and value fields in esmtool for ESM4 2 years ago
elsid e7acced5e9
Move metafunctions to check ESM4 field existence to a separate header 2 years ago
elsid 5bb088218e
Restore original formId
To make sure esmtool prints original value and not a result of conversion.
2 years ago
florent.teppe f9da66e9ee Greatly improved how the variant on MWWorld::CellRef works 2 years ago
florent.teppe 216ca71149 Applied review comments
getEditorName => getNameId
restored cosntructor in CoordinateConverter
2 years ago
florent.teppe e6e27413d9 gives MWWorld::CellRef the MWWorld::Cell treatment
MWWorld::CellRef now has a variant, and datas that are part of the intersection of both ESM4::Reference and ESM::CellRef are part of MWWorld::CellRef

For ESM4 most data isn't filled in, so it returns default values.
2 years ago
elsid 8be2fc9fd7
Stop updating navmeshtool progress on first bad message 2 years ago
florent.teppe 23614ae2ae Renamed esm3esm4bridge => esmbridge 2 years ago
florent.teppe 5037dcf9bc Fixes a crash on launch and some compile issue
also uses std::visit in cellstore comparison to avoid missing combinasion

split loadrefs in loadref of ESM4 and ESM3.
2 years ago
florent.teppe cb8cdd8831 ESM::CellVariant aans MWWorld:Cell now take reference in constructor: signals that nullptr isn't accepted.
also applied other review comments.
2 years ago
florent.teppe 531e55e04c Better handling of the esm3 vs esm4 cell problem
Common attribute are in one structure that has two constructors, one for ESM3 vs ESM4 Cell
Mood part of MWWorld::Cell
2 years ago
elsid cf75363290
Typed launcher settings
QMultiMap is not clear about what settings exist and it's not efficient way to
access them after they are loaded.
2 years ago
elsid 0961720835
Join path components using path::operator/ instead of string::operator+ 2 years ago
florent.teppe 3515c8e61a Static references are created as refcells, nothing displayed yet. 2 years ago
florent.teppe c896a2ca48 Crashfix on launch 2 years ago
florent.teppe 0018bcf7de Should make cellvariant safer to use.
Hopefully clang tidy agrees.
2 years ago
florent.teppe e81e278363 Implements some cell params + linux compile fix 2 years ago
florent.teppe 562e129bd0 encapsulations of esm3 cell and esm4 cells. 2 years ago
florent.teppe 08b68fcd48 Cannot load a cell yet, but getting more necessary parts in 2 years ago
Evil Eye d40a9ec5bc Use worldspace coords in AiWanderStorage 2 years ago
psi29a 1422053fa9 Merge branch 'more_uniforms' into 'master'
[Postprocessing] Add sky and ambient colors

See merge request OpenMW/openmw!2638
2 years ago
psi29a eb853b1315 Merge branch 'ptmikheev-master-patch-34687' into 'master'
Fix constexprant

See merge request OpenMW/openmw!2643
2 years ago
Petr Mikheev 24ef6d29d4 Fix constexprant 2 years ago
florent.teppe a4137e941c std::string_view can be used in map and unordered map
This avoids some unecessary dynamic allocations.
Also applies some review advice.
2 years ago
florent.teppe 63e44eddc9 Navigator doesn't use RefId anymore 2 years ago
florent.teppe 150e2ba885 Revert "Use ESM::RefId for worldspace in detournavigator"
This reverts commit b4ab153418.

# Conflicts:
#	apps/navmeshtool/worldspacedata.cpp
2 years ago
florent.teppe 3780033837 Reverts Cell name to a string 2 years ago
glassmancody.info 564c408663 expose more uniforms to postprocessing 2 years ago
Petr Mikheev 95999afefd Apply clang-format to the previous commit 2 years ago
Petr Mikheev ca48b778c3 Merge branch 'addutils' into 'master'
Add remap and round to lua utils

See merge request OpenMW/openmw!2605
2 years ago
Kindi 07da7eddea Add remap and round to lua utils 2 years ago
elsid dd89403df0
Move ensureUtf8Encoding to named namespace
To follow https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#sf21-dont-use-an-unnamed-anonymous-namespace-in-a-header

Add QtGlobal include to define QT_VERSION and QT_VERSION_CHECK macroses before
they're used.
2 years ago
psi29a ee980721b8 Merge branch 'debug_lua_memory' into 'master'
Additional information in Lua profiler

See merge request OpenMW/openmw!2612
2 years ago
psi29a fbeacc1e0f Merge branch 'navigator_check_agent_bounds' into 'master'
Check agent bounds on adding agent to navigator

See merge request OpenMW/openmw!2629
2 years ago
psi29a 54c18ea86d Merge branch 'change-const-to-constexpr' into 'master'
change const to constexpr

Closes #6797

See merge request OpenMW/openmw!2630
2 years ago
elsid cf1d8544e3
Check agent bounds on adding agent to navigator
Do not add agent bounds which are not supported by recastnavigation with given
settings and log such events.

To avoid reaching navmesh tile generation to find out it can't be generated for
such agent bounds.
2 years ago
James-Deciutiis 4e61fec14d change const to constexpr 2 years ago
Andrei Kortunov ee9ab8d393 Use STL-style iterators instead of Java-style ones 2 years ago
Andrei Kortunov 792feae39e Do not use deprecated implicit conversion 2 years ago
Andrei Kortunov 0864d997d0 Add missing includes 2 years ago
psi29a a7a89ba7c1 Merge branch 'launcher' into 'master'
Rework how OpenMW launcher looks

Closes #6922

See merge request OpenMW/openmw!2587
2 years ago
psi29a dc3ec1a0a0 Merge branch 'mwscript' into 'master'
Multiple mwscript optimizations and some refactoring

See merge request OpenMW/openmw!2600
2 years ago
psi29a 32733d23fa Merge branch 'xanim' into 'master'
X-file handling fixes (bug #5371)

Closes #5371

See merge request OpenMW/openmw!2614
2 years ago
Andrei Kortunov 902c48d1bb Rework launcher UI 2 years ago
elsid 44429f0393
Limit NavMeshManager update range by player tile and max tiles
Object AABB may be much larger than area currently covered by navmesh. In this
case all tiles beyond covered range should be ignored. Attempt to iterate over
them will not result in any new tile updates but can take quite a while. At
maximum this can be pow(INT_MAX - INT_MIN, 2) iterations.

Use arbitrary time limit to check for update call to finish in the test.
2 years ago
Alexei Kotov 6ff9b5d326 Make use of ends_with for KF 2 years ago
Alexei Kotov 434b4deda1 Don't use xkf if xnif is merely the base model (bug #5371) 2 years ago
Alexei Kotov 4d0788e016 Use xnif if its xkf is present even if xnif isn't 2 years ago
elsid d4ab1101eb
Change Interpreter type aliases to be fixed size types
Remove no longer relevant comment for float type.
2 years ago
elsid b88f0d2dbd
Replace mwscript program serialization into a vector with simple struct
Mostly to avoid string literal lookup by index with iteration over all preciding
literals and calling strlen. This is very inefficient. In genral this makes code
much more straightforward but also makes it portable since now int and float of
different sizes are properly supported.
2 years ago
Petr Mikheev d9e9db0983 Additional information in Lua profiler 2 years ago
psi29a 25d7ee7fdc Merge branch 'streams' into 'master'
Setup utf8qtextstream in the way consistent with other Qt components

See merge request OpenMW/openmw!2611
2 years ago
Andrei Kortunov 8da93d4b12 Setup utf8qtextstream in the way consistent with other Qt components 2 years ago
jvoisin c90d22f3b2 Replace usage of QRegularExpression::anchoredPattern with `^` and `$`
Using `^` and `$` is shorter than `QRegularExpression::anchoredPattern`,
and even allows us in one case to get rid of a trailing `.*`.
2 years ago
Andrei Kortunov bfcbc2350d Handle UTF-8 in Qt streams in the Qt6-compatible way 2 years ago
elsid 60eede6a1d
Fix variable naming styleguide 2 years ago
elsid 0ab3090385
Make Runtime::getPC and setPC inline 2 years ago
elsid 46b4427d2e
Remove user defined constructor for Runtime 2 years ago
elsid 9c8df09475
Remove user defined constructors for Interpreter 2 years ago
Andrei Kortunov 307a60e87c Migrate from QRegExp to more modern QRegularExpression 2 years ago
elsid c173348cbe
Use default initializers for ESM::RefNum members
Instead of unset function that is removed now and assignments all over the code.
2 years ago
psi29a 6a250c5900 Merge branch 'baby_it_is_occluded_outside' into 'master'
Weather Particle Occlusion (#5492)

Closes #5492

See merge request OpenMW/openmw!1328
2 years ago
psi29a 83718878b2 Merge branch 'Load_ESM4' into 'master'
Loading ESM4 data and storing them in the ESMStore

See merge request OpenMW/openmw!2557
2 years ago
psi29a a9d3186173 Merge branch 'fix_esm_fixed_string_warning' into 'master'
Fix gcc warning: array subscript n is outside array bounds of ‘const char [n]’

See merge request OpenMW/openmw!2585
2 years ago
Andrei Kortunov 9630246cae Sort quests in journal by name (bug 7054) 2 years ago
glassmancody.info 9a4977d334 rain occlusion 2 years ago
elsid 2bbed8cc06
Fix gcc warning: array subscript 5 is outside array bounds of ‘const char [5]’
In function ‘bool ESM::operator==(const FixedString<capacity>&, const T* const&) [with long unsigned int capacity = 5; T = char; <template-parameter-1-3> = void]’,
    inlined from ‘testing::AssertionResult testing::internal::CmpHelperEQ(const char*, const char*, const T1&, const T2&) [with T1 = ESM::FixedString<5>; T2 = const char*]’ at /home/elsid/dev/googletest/build/gcc/release/install/include/gtest/gtest.h:1358:11,
    inlined from ‘static testing::AssertionResult testing::internal::EqHelper::Compare(const char*, const char*, const T1&, const T2&) [with T1 = ESM::FixedString<5>; T2 = const char*; typename std::enable_if<((! std::is_integral<_Tp>::value) || (! std::is_pointer<_Dp>::value))>::type* <anonymous> = 0]’ at /home/elsid/dev/googletest/build/gcc/release/install/include/gtest/gtest.h:1377:64,
    inlined from ‘virtual void {anonymous}::EsmFixedString_equality_operator_for_not_convertible_to_uint32_with_const_char_pointer_Test::TestBody()’ at apps/openmw_test_suite/esm/test_fixed_string.cpp:165:9:
components/esm/esmcommon.hpp:134:19: warning: array subscript 5 is outside array bounds of ‘const char [5]’ [-Warray-bounds]
  134 |         return rhs[capacity] == '\0';
      |                ~~~^
apps/openmw_test_suite/esm/test_fixed_string.cpp: In member function ‘virtual void {anonymous}::EsmFixedString_equality_operator_for_not_convertible_to_uint32_with_const_char_pointer_Test::TestBody()’:
apps/openmw_test_suite/esm/test_fixed_string.cpp:164:20: note: at offset 5 into object ‘other’ of size 5
  164 |         const char other[5] = { 'a', 'b', 'c', 'd', '\0' };
      |                    ^~~~~
2 years ago
psi29a 55ba5ed7ea Merge branch 'mygui_log' into 'master'
Use OpenMW logging levels for MyGUI log

Closes #7130

See merge request OpenMW/openmw!2582
2 years ago
Andrei Kortunov b217d1fc36 Use OpenMW logging levels for MyGUI log (feature 7130) 2 years ago
psi29a 0d8d15a732 Merge branch 'fixcolladaanimopbug' into 'master'
Fix Collada animated object bug #7051

Closes #7051

See merge request OpenMW/openmw!2565
2 years ago
unelsson 5b0713517a Clang-format 2 years ago
psi29a 319aa11d84 Merge branch 'l10n_rename' into 'master'
Reorganize l10n files

See merge request OpenMW/openmw!2546
2 years ago
psi29a 1e62b84f9a Merge branch 'lua_initdata' into 'master'
Allow passing `initData` to the :addSript call (#7091)

Closes #7091

See merge request OpenMW/openmw!2568
2 years ago
florent.teppe 631fa26872 Applies review advice. 2 years ago
unelsson ba9c2c9928 Add TemplateRef to animated Collada model 2 years ago
florent.teppe 3b2d9161c4 Applied review advice
better deals with templated functions meant for esm3 used by esm4s.
simplified loading of esm4 and dealing with unhandled record types.
2 years ago
florent.teppe e9190bedc8 Reverts useless CmakeList formatting 2 years ago
Petr Mikheev 8c7d347179 Reorganize l10n files 2 years ago
florent.teppe 077cf97bc4 The esm4 reader logic is mutualised
to avoid copy pasting code, readerutils gives functions that take visitors as params to decide how a record must be handled

Check encoder exists, and get value of stateless encoder.

fixes code formatting conventions

Fixed output of record with RefId

also fixed readTypedRecord and readRecord to have the proper return types

Check if the type has a sRecordId
2 years ago
florent.teppe c721a6cafa Initial commit to load ESM4
Some data is actually loaded and store in ESM Store
Any new ESM4 will go through the same code path and be automatically sent to the right store
2 years ago
Petr Mikheev b248c3e173 Allow passing `initData` to the :addSript call (#7091) 2 years ago
unelsson d60fd86719 clang format 2 years ago
unelsson c71504eeb0 Better comments 2 years ago
unelsson 4676ac4ac9 Cleaner code part 2 2 years ago
unelsson 960019cf65 Cleaner code 2 years ago
unelsson 2efc691736 clang format 2 years ago
unelsson 7ef6b3cb62 automatic clang format 2 years ago
unelsson d8de56e33c Coding style improvements, add Torso animation layer 2 years ago
unelsson ffc64205c5 Force collada animation layers, remove nif blend mask detection. 2 years ago
elsid c71862a8df
Reset rcPolyMeshDetail members after rcFree
To avoid double free causing by later recastnavigation versions.
2 years ago
psi29a e6064645db Merge branch 'esm_ref_id_refactor' into 'master'
Simplify ESM::RefId

See merge request OpenMW/openmw!2563
2 years ago
elsid 755067f0f3
Remove redundant ESM::RefId member functions 2 years ago
elsid fe57aec2a4
Move ESM::RefId comment to make sure IDEs recognize it and show in tooltips 2 years ago
elsid b4ab153418
Use ESM::RefId for worldspace in detournavigator 2 years ago
Petr Mikheev b8fb013edf Merge MWLua::ObjectRegistry and MWWorld::WorldModel 2 years ago
psi29a 80e2cd79ec Merge branch 'boat_closer_to_todd' into 'master'
Ignore special characters preceding script commands

Closes #6807

See merge request OpenMW/openmw!2555
2 years ago
florent.teppe afed7e60ef Upgraded Filesave version for RefIDs
Fix logic issue
2 years ago
florent.teppe dc21df97c8 Fixed issue with getSummonedCreature( that returned a reference to a non const static value
Fix compile, and apply review comment

Fixed greater vs more typo.

getCellname is back to a string view.

Because in most cases was used as a strong not a refId.
and there was a fundamental issue with region names used as a cellname
2 years ago
florent.teppe 1ef1de974d script blacklist => RefId
Applies changes from review

Fixed clang format

Clang format + review.
2 years ago
florent.teppe 2c30575b3b CellName is now a RefId, makes more sense that way. 2 years ago
florent.teppe 6ff90b34a8 Fixed an issue with RefId in CellRefs where Ids wouldn't be loaded
Fixed multiple issues from the review.
2 years ago
florent.teppe 42e45723b7 Fixes issue in MW script compilation that would silently produce the wrong bytecode
Fixes issue when fetching MyGui values that were stored as RefId but fetched as String

Removed some uncessary copies, fixed issues with lowercase and uneeded changes
2 years ago
florent.teppe e7deffb376 Adds comment that explains what RefIds are 2 years ago
florent.teppe d49f60d2d6 To change fewer things with the master implementation, the Id isn't changed to lower case on creation
lower case utility functions used in comparison functions
2 years ago
florent.teppe 65cdd489fb create a specific esm reader function for RefID to avoid allocation for string and then again for RefId
Fixed some types

removed useless header

applied clang format

fixed compile tests

fixed clang tidy, and closer to logic before this MR

Removed hardcoded refids

unless there is a returned value we don't use static RefIds
can use == between RefId and hardcoded string

Fix clang format

Fixed a few instances where std::string was used, when only const std::string& was needed

removed unused variable
2 years ago
florent.teppe 874ff88288 In the interpretter, the id is no longer passed by vallue, but as a const reference instead.
In getMembersLocal(, a reference to a reference wrapper is used, because the id can change, bu all we need to do is change a pointer.No need to change the value
2 years ago
fteppe c283ea0ae8 string_view& => string_view
fixed ref to temp variable
2 years ago
fteppe 7da38113be Changed more hardcoded RefId to be static to avoid multiple runtime creations
adresses multiple review comments
2 years ago
fteppe 62d8fe3fc2 changed a few hardcoded refIds used in mutliple places to be defined only once in a variable 2 years ago
fteppe 20da0892ef openMW_test_suite compiles and runs
Slowly moving through the open-cs errors

Good progress in openCS

Very good progress on openCS

Getting closer with openCS

OpenCS compiles and runs! Didn't have time to test it all though

ix openMW

everything compiles on windows??

Fix gcc

Fix Clang
2 years ago
fteppe 2f2e401559 is Hidden marker now takes a const RefId& instead of a string_view 2 years ago
fteppe 0d68735e23 moved all code in CPP in ESM namespace since it was already necessary for << operator
in the equality operator, no longer need ciequal since the id is already always lowercase
2 years ago
fteppe c8bb733360 removed clear() function, the only way to change the Id from the outside is from the assignment operator
replaced ciEqual with == operator
2 years ago
fteppe ee941f9b09 RefId's mId can't be get as mutable from the outside
also removed useless operator= defintion
2 years ago
fteppe d6d2a37d03 some clean and better comments 2 years ago
fteppe 125b21de20 Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type
The strong type is actually just a string underneath, but this will help in the future to have a distinction so it's easier to search and replace when we use an integer ID

Slowly going through all the changes to make, still hundreds of errors

a lot of functions/structures use std::string or stringview to designate an ID. So it takes time

Continues slowly replacing ids. There are technically more and more compilation errors

I have good hope that there is a point where the amount of errors will dramatically go down as all the main functions use the ESM::RefId type

Continue moving forward, changes to the stores

slowly moving along

Starting to see the fruit of those changes.

still many many error, but more and more Irun into a situation where a function is sandwiched between two functions that use the RefId type.

More replacements. Things are starting to get easier

I can see more and more often the issue is that the function is awaiting a RefId, but is given a string
there is less need to go down functions and to fix a long list of them.

Still moving forward, and for the first time error count is going down!

Good pace, not sure about topics though, mId and mName are actually the same thing and are used interchangeably

Cells are back to using string for the name, haven't fixed everything yet. Many other changes

Under the bar of 400 compilation errors.

more good progress <100 compile errors!

More progress

Game settings store can use string for find, it was a bit absurd how every use of it required to create refId from string

some more progress on other fronts

Mostly game settings clean

one error opened a lot of other errors. Down to 18, but more will prbably appear

only link errors left??

Fixed link errors

OpenMW compiles, and launches, with some issues, but still!
2 years ago
Evil Eye b19ad079c2 Ignore special characters preceding script commands 2 years ago
Alexei Kotov cdd6a8c007 Merge branch 'models_for_the_model_god' into 'master'
Implement TestModels/T3D

Closes #7058

See merge request OpenMW/openmw!2506
2 years ago
psi29a 14afde4689 Merge branch 'recast_context' into 'master'
Check input and report errors via RecastContext (#7093)

Closes #7093

See merge request OpenMW/openmw!2544
2 years ago
psi29a df92d76536 Merge branch 'drippy' into 'master'
Ignore non-3D agents in the navigator

Closes #7093

See merge request OpenMW/openmw!2537
2 years ago
elsid 15e8f0b53c
Check input and report errors via RecastContext
Recast functions have preconditions for arguments they don't validate. This may
produce garbage data which may lead to crash. Check arguments and log when they
are invalid.

Do not throw exceptions when these function calls fail, capture Recast reported
errors via RecastContext inherited from rcContext and log them.
2 years ago
Cédric Mocquillon 7e77e69a3c Use a wider type when converting to a signed type 2 years ago
Evil Eye d40c09c18c Ignore non-3D agents in the navigator 2 years ago
AnyOldName3 66b8d4fb29 Add a setting to control coverage adjustment
With it on, which was always the case before this setting was added,
vanilla content and poorly-made mods will look acceptable, but well-made
mods will have alpha-tested meshes appear to grow and potentially gain a
weird outline as they get further away.

With it off, which replicates the 0.46 behaviour, well-made mods will
look really good, but vanilla content and poorly-made mods will have
alpha-tested meshes shrink as they get further away.

It's been bugging me that this was forced on since 0.47 released, and
I'd hoped to figure out a solution for automatic detection at some point
before 0.48 branched off, but I didn't, so now this is what we're
getting to have Tamriel Rebuilt look right.
2 years ago
psi29a 1d55be8214 Merge branch 'lua_profiler' into 'master'
Lua profiler

See merge request OpenMW/openmw!2523
2 years ago
Petr Mikheev 55db95d4cf Update Lua profiler; add ability to run OpenMW with old LuaJit that doesn't allow custom allocator (Lua profiler will be disabled in this case) 2 years ago
Andrei Kortunov b0d687964e Make sure that local path has a trailing slash on Linux and Windows 2 years ago
Petr Mikheev 6fa65e4729 Track memory and CPU usage per script in LuaUtil::LuaState 2 years ago
Evil Eye bbbcc5e4b7 Add an early out to dialogue loading to match Morrowind.exe behaviour 2 years ago
AnyOldName3 66e5415895 Log screenshot capture 2 years ago
elsid 89884fae0b
Add link dependencies to libosgSim and collada-dom 2 years ago
Evil Eye b94818b24a Tweak message and temporarily set model ttl to 0 2 years ago
Evil Eye 0ae5755abb Implement TestModels/T3D 2 years ago
elsid baa39c06bb
Move fourCC to a separate file 2 years ago
glassmancody.info 87c0a6e6dc fix line numbers being off by one for each jump block 2 years ago
uramer a2fa1fe0a5 Execute async callbacks on the main Lua stack 2 years ago
AnyOldName3 15c51dcbbc Restore false-positive unused includes
They're needed on MacOS as SDL_opengl_gletx.h doesn't define them there.

They don't actually work on MacOS, so long-term, the code that uses
these defines should be changed to use #ifdef to check they're available
before using them.
2 years ago
AnyOldName3 77de37b1ed Revert "Merge branch 'fix_macos_build' into 'master'"
As well as fixing the MacOS build, it meddled with a bunch of files that
already did the right thing.

This reverts commit 8162541a14, reversing
changes made to e16c451d08.
2 years ago
psi29a 8162541a14 Merge branch 'fix_macos_build' into 'master'
Use separate header to define missing GL constants

See merge request OpenMW/openmw!2464
2 years ago
psi29a e16c451d08 Merge branch 'l10n' into 'master'
Separate l10n manager from lua

See merge request OpenMW/openmw!2451
2 years ago
psi29a c164437d91 Merge branch 'classism' into 'master'
Use class service flags for autocalc NPCs

Closes #7044

See merge request OpenMW/openmw!2461
2 years ago
elsid c324482338
Use separate header to define missing GL constants 2 years ago
elsid 843753da14
Remove unused includes 2 years ago
jvoisin 3cbf1dc042 First pass with include-what-you-use 2 years ago
Evil Eye 60c26832d2 Use class service flags for autocalc NPCs 2 years ago
Petr Mikheev 3697c9266b Separate l10n manager from lua 2 years ago
elsid bb8b5e2108
Add META_Node to clang-format StatementMacros 2 years ago
psi29a 66e14fa3bd Merge branch 'fix_extra_semi_warning' into 'master'
Fix and prevent -Wextra-semi warning

See merge request OpenMW/openmw!2455
2 years ago
elsid 063fff7fa4
Fix and prevent -Wextra-semi warning 2 years ago
elsid 6b8ed4c64f
Use sorted vector for ViewData::contains implementation 2 years ago