elsid
258ae9d98e
Add settings index to provide lookup by category and name
2 years ago
elsid
0601d7213e
Remove ESM::RefId::sEmpty
...
This variable is only required to return empty RefId as const reference. There
is no point in doing so for a type cheap to copy.
2 years ago
Petr Mikheev
61578ca39b
Add function LuaUtil::cast
2 years ago
psi29a
406eb1f9cc
Merge branch 'replace_boost' into 'master'
...
replace boost where not needed
See merge request OpenMW/openmw!2962
2 years ago
psi29a
71aaa56ae3
replace boost where not needed
2 years ago
elsid
499d086cc1
Add tests for Settings::Values
2 years ago
elsid
1fbf50fb13
Use PROJECT_SOURCE_DIR in tests
2 years ago
florent.teppe
fc3d113d29
fix tests
2 years ago
florent.teppe
3bbf60373a
Keep things coherent between references and and cell table
2 years ago
elsid
7db14b3392
Add more tests for printing RefId and clarify some constants
2 years ago
elsid
c97df7d770
Check FormIdRefId value in constructor
2 years ago
Petr Mikheev
f09a689a4f
Merge ESM::RefNum and ESM4::FormId
2 years ago
psi29a
edfc6b78c8
Merge branch 'fix_esm3_exterior_cell_ref_id' into 'master'
...
Use lexicographical comparison in ESM3ExteriorCellRefId::operator< (#7316 )
Closes #7316
See merge request OpenMW/openmw!2909
2 years ago
elsid
bd10becb65
Use lexicographical comparison in ESM3ExteriorCellRefId::operator<
2 years ago
elsid
aa77e727b8
Fix build with clang and libc++
...
libc++ does not have such function:
apps/openmw_test_suite/esm3/testesmwriter.cpp:73:30: error: no member named 'view' in 'std::ostringstream'
EXPECT_EQ(stream.view().size(), size);
~~~~~~ ^
2 years ago
elsid
794050df63
Fix and add tests for ESM3ExteriorCellRefId serialization and text representation
2 years ago
elsid
5b14ff4470
Add tests to verify RefId size written to ESM file
2 years ago
elsid
fd9f652f43
Add CurrentContentFormatVersion to Esm3SaveLoadRecordTest parameters
2 years ago
elsid
e3944f741e
Test save/load for all ESM::CellRef fields
2 years ago
florent.teppe
0d17e20490
Implements serialize/deserialize
...
fixes test compilation.
2 years ago
florent.teppe
21bd28542a
Applies review advice
...
2d coord hash moved to hash.hpp file
format version adds suffix to be more coherent
don't use ESM::RefId::sEmpty
RefId equality with string_view, conversion to refId unecessary
action teleport remove test that mCellId is empty
removes some const references, when copy is enough
invalid refid => empty refid
removes useless change
2 years ago
florent.teppe
d782d37ee2
Make sure Vec2iRefId is trivially copyable on GCC 11.3
...
std::pair<int, int> isn't trivially copyable on some compilers
so a specific struct is defined, it's an int pair, but it should be recognised by GCC 11.3 as trivially copyable
Vec2iRefId => ESM3ExteriorCellRefId
more explcit name and use mX,mY instead of pair
renamed files and enum
2 years ago
florent.teppe
c2182c2fcc
Get Rid of ESM::CellId almost everywhere
...
it was a competing concept from using RefIds for cell.
There is almost no point to it now, except to load older data.
2 years ago
florent.teppe
fb6701ac1a
ESM::CellId is no longer stored on saves.
2 years ago
florent.teppe
6c6dbccd0a
fix crash on reset
...
fix tests
2 years ago
florent.teppe
9f597ecfea
No more Cellid used by ESM4 cells
...
and that also means it is no longer used by MWWorld::Cell
fixes tests
2 years ago
florent.teppe
36502eaf75
ESM3 Cells have an Id.
...
Store<ESM::Cell> is updated to use it.
2 years ago
psi29a
ee970db9e0
Merge branch 'player_cell_id_test' into 'master'
...
Test more ESM::Player records
See merge request OpenMW/openmw!2888
2 years ago
psi29a
0a791528bc
Merge branch 'fix_index_ref_id_hash' into 'master'
...
Shift record type value for IndexRefId hash
See merge request OpenMW/openmw!2885
2 years ago
elsid
9162eaa019
Test more ESM::Player records
2 years ago
elsid
171a25645a
Make sure there are tests for all RefId types
2 years ago
elsid
258aec223a
Shift record type value for IndexRefId hash
2 years ago
elsid
f8cc929f9a
Use approximate equality for btBvhTriangleMeshShape triangles
2 years ago
elsid
452d1e7e49
Store original string id for Dialogue records
2 years ago
elsid
d6c8c54dc5
Generate test cases for all ESM3 format versions since MaxStringRefIdFormatVersion
2 years ago
elsid
90ed24f4c9
Split type traits for ESM4, ESM3 and unite common
2 years ago
elsid
b7fdca0fe6
Use serialized ESM::RefId for Lua records
2 years ago
elsid
cd4027ffd6
Do not use ESM::RefId::getRefIdString for spell id
2 years ago
Andrei Kortunov
302c331559
Add field initialization
2 years ago
psi29a
db1b260323
Merge branch 'gmst_l10n' into 'master'
...
Support links to GMSTs in l10n files; extract Morrowind-specific l10n files to a separate directory
See merge request OpenMW/openmw!2822
2 years ago
elsid
d1e8e56619
Make QuickKey type a fixed size enum class
2 years ago
elsid
2135eba103
Fix loading ESM3 QuickKeys
2 years ago
elsid
e6cf516e12
Support index RefId as pair of record type and std::uint32_t
2 years ago
elsid
86293af084
Support generated RefId as std::uint64_t
2 years ago
elsid
0992624c8b
Support reading and writing typed ESM::RefId to ESM
2 years ago
elsid
069d4255b9
Make ESM::RefId to be fixed size cheap to copy
...
Use std::variant. Store refId strings in unordered_set and use pointer to an
item there. Inserts to unordered_set do not invalidate pointers to values so the
pointer is always valid. Elements are not removed. Assume there is finite number
of string refIds.
2 years ago
elsid
e032214fcb
Use common info ordering implementation for engine and editor
2 years ago
psi29a
6d8f3c7bce
Merge branch 'cs_unit_tests' into 'master'
...
Introduce unit tests for editor
See merge request OpenMW/openmw!2821
2 years ago
elsid
55ebd97949
Remove misleading part of the function name
2 years ago
Petr Mikheev
58fdd687a8
Support links to GMST in l10n files
2 years ago
elsid
6f6e452dfa
Add executable to run CS tests
2 years ago
psi29a
efebb8efd8
Merge branch 'cmake_fixes' into 'master'
...
Formatting and coverage related CMake files fixes
See merge request OpenMW/openmw!2811
2 years ago
elsid
9c780efe50
Add ESMStore tests for loading dialogue and info records
2 years ago
elsid
1857d8a68c
Use target_compile_options to add --coverage
2 years ago
Alexei Dobrohotov
562461a659
Unify collision shape transformations
2 years ago
Alexei Dobrohotov
2277bdc1ae
Improve btTriangleMesh abuse (bug #6027 , part 2)
2 years ago
Evil Eye
724c6ec425
Match unit test to Morrowind.exe behaviour
2 years ago
Petr Mikheev
e70ab80b90
Ignore duplicated preferred l10n locales
2 years ago
elsid
cd6a5b5a0e
Support asymmetric comparison between ESM::RefId and std::string_view
2 years ago
elsid
6f329f3d40
Add tests for ESM::RefId
2 years ago
elsid
eb17f0ba06
Use ESM::RefId as key in TestInterpreterContext::mMembers
2 years ago
elsid
dfcea389be
Add helper functions for string comparison to RefId
2 years ago
psi29a
340a2aa826
Merge branch 'ref_id_cmp_string_view' into 'master'
...
Support RefId comparison with std::string_view
See merge request OpenMW/openmw!2784
2 years ago
elsid
2fcb94064d
Support RefId comparison with std::string_view
2 years ago
Alexei Kotov
7fd9b27b54
Don't combine static node collision geometry (bug #6027 )
2 years ago
Petr Mikheev
b0a6e4e510
[Lua] Add memory usage test
2 years ago
Cody Glassman
ac4787aeec
shade refactor
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
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
28f7a89530
Reuse dtNavMeshQuery
...
To avoid redundant allocations.
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
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
12d36fb1d7
Add missing include
2 years ago
elsid
1e9e7b7607
Add tests to save and load some ESM3 records
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
elsid
080700f8fe
Name all custom ESM format versions and add tests
2 years ago
florent.teppe
dc961e3189
Adds the light into the scene.
...
Common struct for ESM3 and ESM4 light
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
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
uramer
e96681151c
Get rid of the LuaUI::Content namespace
2 years ago
uramer
d24c506b0e
Move metatable protection asserts to tests
2 years ago
uramer
bbbef96087
Switch to loadInternalLib
2 years ago
uramer
c17eedd348
Documentation and API fixes (part of !2529 )
2 years ago
uramer
259f104311
Clean up
2 years ago
uramer
3618b3f409
Fix Content::View::remove
2 years ago
uramer
fc1430af95
Move implementation of UI Content to Lua
2 years ago
florent.teppe
562e129bd0
encapsulations of esm3 cell and esm4 cells.
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
150e2ba885
Revert "Use ESM::RefId for worldspace in detournavigator"
...
This reverts commit b4ab153418
.
# Conflicts:
# apps/navmeshtool/worldspacedata.cpp
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
elsid
1cbe295030
Extend navigator tests for update with big object
...
Check for the number of generated recast mesh tiles and navmesh tiles.
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
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
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
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
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
elsid
c80ba92ab7
Add more tests for ESM::FixedString
2 years ago