elsid
875d9dcead
Fix buffer resizing by StatelessUtf8Encoder
3 years ago
elsid
3305b400dc
Use ESM::NAME instead of const char* and std::string as argument type
3 years ago
elsid
7884a01026
Add tests for Utf8Encoder
3 years ago
uramer
ede9d27437
Element-wise multiplication and division of Lua vectors
3 years ago
Petr Mikheev
a294adcdaf
Proper support of `pairs` and `ipairs` in Lua; fix bug in `makeReadOnly`.
3 years ago
psi29a
becffef142
Merge branch 'cull_navmesh_objects' into 'master'
...
Cull navmesh objects by scene bounds (#5858 )
Closes #5858
See merge request OpenMW/openmw!1625
3 years ago
elsid
05b54cbfb8
Cull navmesh objects by scene bounds
...
If object is too big iteration over all tiles covering it can take too much
time. Limit bounds to a square around a player position to cover only tiles
that will be present in navmesh based on max tiles number option.
Each object is associated with a set of tiles its present in. Culling can
reduce this set but it has to be update when bounds change position. Do this
in TileCachedRecastMeshManager::setBounds updating the set and adding/removing
objects to the corresponding CachedRecastMeshManagers.
3 years ago
elsid
1b2954f2db
Remove unused z coordinate
3 years ago
elsid
542717394a
Remove objects, water and heightfields when no longer required
3 years ago
Petr Mikheev
5ca56a4f8a
New option "config" for specifying additional config directories.
3 years ago
elsid
7ea5aa250b
Revert "Cull navmesh objects by scene bounds"
...
This reverts commit b0ef20c303
.
3 years ago
elsid
45db56b382
Rework fixed string
...
* Avoid inheritance.
* Define equality operators out of the class definition.
* Replace toString with toStringView where it doesn't make sense to create a string.
3 years ago
elsid
bf692a4bfa
Add more tests for fixed string
3 years ago
Bret Curtis
022fdc49a5
update tests to use esm3 rename
3 years ago
psi29a
84e209308d
Merge branch 'refactor/interpreter' into 'master'
...
Cleanup interpreter code a bit
Closes #6553
See merge request OpenMW/openmw!1556
3 years ago
Matt
34723c8ea8
Cleanup interpreter code a bit
3 years ago
psi29a
6f7a067e0c
Merge branch 'esmrename' into 'master'
...
esm refactor work
See merge request OpenMW/openmw!1575
3 years ago
psi29a
21ef9d4058
Merge branch 'nif_multi_parents' into 'master'
...
Support multiple parents for NIF nodes (#6552 )
Closes #6552
See merge request OpenMW/openmw!1577
3 years ago
Evil Eye
903ef60f9d
Merge branch 'navmesh_scene_bounds' into 'master'
...
Limit and filter navmesh input (#5858 )
Closes #5858
See merge request OpenMW/openmw!1583
3 years ago
elsid
ecc654a369
Limit and filter navmesh input ( #5858 )
3 years ago
psi29a
fdc08cf01e
Merge branch 'fix_storage' into 'master'
...
Fix heap use after free in components/lua/storage.cpp
See merge request OpenMW/openmw!1586
3 years ago
Petr Mikheev
067d71f7eb
Fix heap use after free in components/lua/storage.cpp
3 years ago
Bret Curtis
d1fb854521
move most of the files from esm to esm3, keep common code in esm; this is make space for a future with esm4
...
esm typo
esm typo
3 years ago
elsid
4b59ff2060
Include headers instead of source files
3 years ago
elsid
3f14011087
Support multiple parents for NIF nodes
...
Choose a parent base on which node is used to iterate over children nodes.
This leads to duplicate handing of child nodes. A node will be handled so many
times how many parents it has.
For example:
p1 p2
\ /
c
Will be handled as:
p1 p2
| |
c c
If c has children they will be handled X times c is handled.
3 years ago
uramer
d1d8f058ac
Lua bindings for Colours
3 years ago
uramer
886dee57ee
Always use /bigobj, clean up scattered uses into one
3 years ago
uramer
c07fb75bf7
Merge branch 'lua_settings' into 'master'
...
Permanent storage for Lua
See merge request OpenMW/openmw!1489
3 years ago
Petr Mikheev
97d56e198f
Use double precision for vectors serialization in Lua
3 years ago
Petr Mikheev
a182fdeea1
Permanent storage for Lua data
3 years ago
Petr Mikheev
2d1b100239
Change terminology of gameSecond/gameHour to simulationTime/gameTime
3 years ago
Josquin Frei
d9672f7d46
Add serialization for TransformM and TransformQ
3 years ago
Petr Mikheev
0f246e7365
Use a separate instance of Lua i18n for every context
3 years ago
elsid
aaf6c82e33
Do not write shapes to navmeshdb when writing is disabled
3 years ago
Petr Mikheev
7549496162
A few small fixes + expose makeReadOnly to Lua + an option to apply makeReadOnly during deserialize
3 years ago
elsid
96eb8d7be9
Write generated navmesh to navmeshdb
...
Perform all request to db in a single thread to avoid blocking navmesh
generator threads due to slow write operations.
Write to db navmesh for all changes except update as it done for memory cache.
Batch multiple db operations into a single transaction to speed up writing by
not executing fsync after each insert/update query. All reads are performed in
the same transaction so they see uncommited data.
3 years ago
elsid
c9b8ba7b46
Read navmesh tile data from database
...
When tile is not found in memory cache try to find it in the database.
3 years ago
elsid
953a4c5550
Add a binary to generate navmesh from content files
...
Load content files based on the engine config files. Generate navmesh per cell
for all cells and store into SQLite database.
3 years ago
elsid
5325495f46
Move serialization detournavigator/ -> components/
3 years ago
elsid
01c712d5f1
Split navigator settings into subtypes
...
Mostly to distinguish settings that affect properties of the generated navmesh.
3 years ago
elsid
33bb18850d
Move operator<< to debug.hpp
3 years ago
elsid
5a6b39f8e0
Store mesh source data in recast mesh
3 years ago
AnyOldName3
8fc09f8c51
Merge remote-tracking branch 'upstream/master' into detain-hash-selectively-reluctant
...
Merge conflicts included:
* One setting being removed (branch had changed its type).
* One setting's description being changed (branch had changed its type).
* List of files in components/files was changed both upstream and on the
branch.
* Upstream had changed something in a file the branch deletes.
3 years ago
psi29a
e04e139f37
Merge branch 'navmesh_raw' into 'master'
...
Add to navigator unmodified water and heightfield data
See merge request OpenMW/openmw!1373
3 years ago
Petr Mikheev
d3df3efaf1
Precompile sol.hpp in order to reduce compilation time.
3 years ago
elsid
7dcb219ecf
Add raw heightfield data to navigator
3 years ago
elsid
8571c317d8
Add raw water data to navigator
3 years ago
elsid
f4f4458d01
Calculate recast mesh bounds when building navmesh
3 years ago
elsid
e10bbb9ad7
Shift heightfield and water in navigator tests
3 years ago
psi29a
7256654f29
Merge branch 'navmesh_render' into 'master'
...
Rework navmesh render (#6187 )
See merge request OpenMW/openmw!1338
3 years ago
psi29a
a332dec681
Merge branch 'fix_esm_loader' into 'master'
...
Load only supported content formats by EsmLoader
See merge request OpenMW/openmw!1427
3 years ago
psi29a
a15cc0959f
Merge branch 'murmur_hash' into 'master'
...
Use MurmurHash3_x64_128 for Files::getHash
See merge request OpenMW/openmw!1404
3 years ago
AnyOldName3
bc4b54157b
Remove commented-out test conditions
3 years ago
elsid
da0c5b54f0
Load only supported content formats by EsmLoader
3 years ago
AnyOldName3
84d6de3eba
Parse paths with boost rules when it's quoted, but use the string verbatim when it's not
3 years ago
elsid
6b7363bd59
Replace generation and revision by version
3 years ago
elsid
a665a38aca
Use MurmurHash3_x64_128 for file hash
3 years ago
Petr Mikheev
f9136d4392
Support multiple arguments in Lua callbacks.
3 years ago
Petr Mikheev
d5ca091d6e
Make util.rotateX, util.rotateY, rotate.Z consistent with morrowind rotation
3 years ago
uramer
68963538ae
Lua UI API
3 years ago
AnyOldName3
8fb0b5846e
Allow paths with trailing data, emmitting a warning
3 years ago
Alexei Kotov
49544cf7de
Merge branch 'no_one_likes_commas' into 'master'
...
Treat commas in scripts as whitespace
Closes #6380
See merge request OpenMW/openmw!1388
3 years ago
psi29a
41bd20e358
Merge branch 'bullet_shape_hash' into 'master'
...
Store BulletShape source file name and content hash
See merge request OpenMW/openmw!1379
3 years ago
Evil Eye
bee94e2afc
Treat commas in scripts as whitespace
3 years ago
elsid
d7041613ef
Store BulletShape source file name and content hash
3 years ago
Cédric Mocquillon
512d64e514
Extract correctSoundPath method to avoid code duplication. Add unit test for the new method
3 years ago
elsid
9f808fbe3a
Move findPath-like navigator functions into a separate header
3 years ago
Bo Svensson
1960e976e2
refactors stringops.hpp ( #3192 )
...
With this PR we refactor `StringUtils::replaceAll` to accept `string_view` as suggested in a code comment. In addition, while we are touching this rebuild happy file, we slim it down a bit by moving a few sparingly used functions elsewhere.
3 years ago
Bo Svensson
4657c655b1
refactors parentFileIndices ( #3211 )
...
This PR aims to start addressing `ESM` design issues that have silenced errors we incorporated into groundcover `ESM` loading approaches.
- We move the resolution of `parentFileIndices` from `ESMStore` to `ESMReader` as suggested in a `TODO` comment.
- We improve a highly misleading comment which downplayed the significance of `parentFileIndices`.
- We document important preconditions.
- We move a user facing error message to the highest level and improve its context.
- We remove an inappropriate `setGlobalReaderList` method. We now pass this reader list into the method that requires it.
- We remove a thoroughly pointless optimisation of `Store<ESM::LandTexture>`'s construction that has unnecessarily depended on `getGlobalReaderList`.
There should be no functional changes for `master`, but this PR should remove an issue blocking PR #3208 .
3 years ago
elsid
2b057f5c15
Expect nif node children to have parent
3 years ago
elsid
4e8e8304aa
Avoid mesh allocation when data is invalid
3 years ago
elsid
4631d95739
Add more tests for BulletNifLoader
3 years ago
psi29a
523289c531
Merge branch 'refactor_bullet_shape' into 'master'
...
Refactor bullet shape
See merge request OpenMW/openmw!1333
3 years ago
Evil Eye
ae08f942d5
Test binary operators
3 years ago
Evil Eye
3c5a50cf90
Add issues from Redmine
3 years ago
Evil Eye
319d30fb85
Add AddTopic testing
3 years ago
Evil Eye
b3208f4066
Add more issues and a forum thread
3 years ago
Evil Eye
8e0dfe3a8a
Add tests for more issues
3 years ago
Evil Eye
b2cdbe2e61
Add tests for certain issues
3 years ago
Evil Eye
3dada0796a
Validate integer math
3 years ago
Evil Eye
f027acf575
Move boilerplate to separate file
3 years ago
Evil Eye
be759e576a
Be sure to verify the opcode got executed
3 years ago
Evil Eye
6ad8549163
Allow validation of constant arguments
3 years ago
Evil Eye
e1ac871672
Start adding compiler tests
3 years ago
elsid
8e71c246bf
Remove redundant BulletShape getters
3 years ago
elsid
b905dd17c3
Use unique_ptr to store btCollisionShape in BulletShape
3 years ago
elsid
29a772c33f
Rename Resource::BulletShape::CollisionBox fields according to styleguide
3 years ago
Petr Mikheev
47c89567fb
Load LuaScriptsCfg from both *.omwscripts and *.omwaddon files.
3 years ago
Petr Mikheev
9adc190209
Redesign LuaUtil::ScriptsContainer to work with ScriptsConfiguration
3 years ago
Petr Mikheev
33d71be81f
Add LuaUtil::ScriptsConfiguration
3 years ago
elsid
a58f1a94e3
Add helpers for binary serialization
...
To construct serializer from given entities:
* Data source/destination - any value that has to be serialized/deserialized,
usually already existing type.
* Format - functional object to define high level serialization logic to
define specific format and data schema. Like order of fields, allocation.
* Visitor - functional object to define low level serialization logic to
operator on given data part.
* BinaryWriter - copies given value into provided buffer.
* BinaryReader - copies value into given destination from provided buffer.
* SizeAccumulator - calculates required buffer size for given data.
3 years ago
psi29a
1ffa02b2fd
Merge branch 'fix_windows_tests' into 'master'
...
Fix tests on windows
See merge request OpenMW/openmw!1313
3 years ago
elsid
b5f0057ac9
Fix tests on windows
3 years ago
elsid
a3b6bc7263
Fix logic expression for not found value
3 years ago
elsid
e5413c0664
Add functions to compress/decompress vector of bytes
3 years ago
Petr Mikheev
17f7a1a2ea
Merge branch 'fix_lua_test' into 'master'
...
Fix LuaUtilPackageTest.Transform
See merge request OpenMW/openmw!1302
3 years ago
elsid
bb26ba30b6
Add progress reporter type
...
To log/report progress of long duration operations using given time period.
3 years ago
AnyOldName3
9be606a40d
Finish removing old Escape classes
3 years ago
elsid
23026caacc
Fix LuaUtilPackageTest.Transform
...
It can fail due to float arithmetic precision with error:
Expected equality of these values:
getAsString(lua, "moveAndScale")
Which is: "TransformM{ move(6, 22, 18) scale(0.5, 1, 0.5) rotation(angle=8.53284e-17, axis=(1, 0, 0)) }"
"TransformM{ move(6, 22, 18) scale(0.5, 1, 0.5) }"
3 years ago
elsid
046b5f83ee
Add ESM data loader
...
A component to load ESM content files with limited support for record types and
selection which of them to load. Supported record types are:
ACTI, CELL, CONT, DOOR, GMST, LAND, STAT.
3 years ago
elsid
c88367b6a6
Add sqlite3 helpers
3 years ago
AnyOldName3
18869c2c75
Add some extra tests
...
The behaviour here is unchanged, but was previously untested.
3 years ago
AnyOldName3
7fb5b773dd
Remove obsolete tests
...
The old behaviour was basically a bug and @ doesn't mean anything special now
3 years ago
AnyOldName3
1b83b08d80
Merge remote-tracking branch 'upstream/master' into detain-hash
...
Tests which no longer work are commented out.
Some of these don't work because they're effectively testing for the
presence of bugs in the old implementation.
Others don't work because we're no longer accidentally disabling the
boost::program_options feature where it generates an error if only part
of a token gets consumed.
These will be fixed by later commits.
3 years ago
AnyOldName3
af0d399103
Purge all uses of Escape Hash types
3 years ago
psi29a
ae31138686
Merge branch 'options_tests' into 'master'
...
Add tests for openmw options
See merge request OpenMW/openmw!1253
3 years ago
florent teppe
e5abadc234
Fix keyword search when the keyword is preceded by a non whitespace non alpha character
3 years ago
elsid
035307b012
Add tests for openmw options
...
In attempt to document current behaviour. Add commented out checks as desired
behaviour.
3 years ago
Petr Mikheev
48538d5cef
3D transforms in Lua
3 years ago
Evil Eye
2f4df12b2e
Merge branch 'Fix_ASCII' into 'master'
...
Fixed an issue where keyword search expected the text to be all ASCII characters
See merge request OpenMW/openmw!1227
3 years ago
florent.teppe
2d32954888
Replaced Assert_true with expect_eq
3 years ago
florent.teppe
0e06e9b221
Removed useless comment and converted the file to UTF8 to keep special characters
3 years ago
florent.teppe
c1c501ca35
Added test to make sure keyword search works even with non ascii characters
3 years ago
Petr Mikheev
2f25257a3e
Move LuaState::makeReadOnly(sol::table) out of the class because it doesn't need to access LuaState internals.
3 years ago
elsid
6b7434ca69
Pass std::string_view instead of const std::string&
...
* Starting with Actor::getBodyPartMesh and ending with
Misc::StringUtils::ciEqual.
* Add tests for Misc::StringUtils::ciEqual.
3 years ago
Petr Mikheev
33d4d88447
Function LuaUtil::toString
3 years ago
elsid
fea4fb6e69
Make AiPursue path destination to be as close as possible to target
...
Even when target is not reachable actor will try to run there either because
target navmesh polygon is selected within extended area or because partial path
is built to the closest possible polygon.
3 years ago
psi29a
6595c731f7
Merge branch 'fix_rc_poly_mesh_flags_length' into 'master'
...
Fix flags length for rcPolyMesh
See merge request OpenMW/openmw!1134
3 years ago
elsid
54a676f2e3
Add functions to get length of recast type arrays
...
To avoid duplicating same formulas in multiple places.
3 years ago
elsid
05258ed644
Remove redundant TileCachedRecastMeshManager::hasTile function
...
It's used only for tests. getMesh is a valid replacement.
3 years ago
psi29a
e10e9c0005
Merge branch 'navmesh_reduce_lock_wait' into 'master'
...
Reduce waiting duration on locks when updating navmesh object in the main thread (#6193 )
Closes #6193
See merge request OpenMW/openmw!1079
3 years ago
Petr Mikheev
3ce5e9e680
Improve error messages in components/lua/serialization.cpp
3 years ago
elsid
c8987bda2f
Store reference to BulletShapeInstance for btCollisionShape
...
To keep btCollisionShape lifetime.
3 years ago
elsid
4574e5f565
Remove redundant Navigator API functions
3 years ago
elsid
9a5ec5fd03
Store heightfields as array of heights instead of triangles
...
To reduce size of RecastMesh and therefore cache size.
3 years ago
elsid
fdee9db20c
Consider RecastMeshManager not empty when there is water
3 years ago
elsid
5d6c93566d
Rename DetourNavigator::Water -> Cell
3 years ago
elsid
753767d6d9
Store only water shift
...
Rotation is not used.
3 years ago
elsid
a1549321d7
Move Water struct out of RecastMesh class
3 years ago
elsid
d60edb36aa
Make RecastMesh independent from recast scale factor
...
To avoid scaling until it's required by delaying coordinates conversion until
navmesh generation.
3 years ago
elsid
af7059373c
Make RecastMesh independent from the order of RecastMeshBuilder calls
...
To make sure RecastMesh objects are equal if built with the same data but in
different order. Will be used later when there will be more than one place
building RecasMesh objects.
3 years ago
elsid
f92843e3d2
Fix UB: reference binding to misaligned address in Lua tests
...
/home/elsid/dev/openmw/apps/openmw_test_suite/lua/test_serialization.cpp:166:34: runtime error: reference binding to misaligned address 0x562ea892076c for type 'const struct TestStruct1', which requires 8 byte alignment
0x562ea892076c: note: pointer points here
00 74 73 31 00 00 00 00 00 00 f8 3f 00 00 00 00 00 00 04 40 21 79 4b 08 00 00 00 74 65 73 74 5f
^
#0 0x562ea6462b8e in deserialize /home/elsid/dev/openmw/apps/openmw_test_suite/lua/test_serialization.cpp:166
#1 0x562ea68b7402 in deserializeImpl /home/elsid/dev/openmw/components/lua/serialization.cpp:172
#2 0x562ea68b7bf6 in deserializeImpl /home/elsid/dev/openmw/components/lua/serialization.cpp:204
#3 0x562ea68b86ea in LuaUtil::deserialize(sol::state&, std::basic_string_view<char, std::char_traits<char> >, LuaUtil::UserdataSerializer const*) /home/elsid/dev/openmw/components/lua/serialization.cpp:251
#4 0x562ea6464d96 in TestBody /home/elsid/dev/openmw/apps/openmw_test_suite/lua/test_serialization.cpp:197
#5 0x562ea6d9dac6 in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /home/elsid/dev/googletest/googletest/src/gtest.cc:2607
#6 0x562ea6d9dac6 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /home/elsid/dev/googletest/googletest/src/gtest.cc:2643
#7 0x562ea6d92e25 in testing::Test::Run() /home/elsid/dev/googletest/googletest/src/gtest.cc:2682
#8 0x562ea6d92e25 in testing::Test::Run() /home/elsid/dev/googletest/googletest/src/gtest.cc:2672
#9 0x562ea6d93024 in testing::TestInfo::Run() /home/elsid/dev/googletest/googletest/src/gtest.cc:2861
#10 0x562ea6d93728 in testing::TestInfo::Run() /home/elsid/dev/googletest/googletest/src/gtest.cc:2834
#11 0x562ea6d93728 in testing::TestSuite::Run() /home/elsid/dev/googletest/googletest/src/gtest.cc:3015
#12 0x562ea6d94142 in testing::TestSuite::Run() /home/elsid/dev/googletest/googletest/src/gtest.cc:2994
#13 0x562ea6d94142 in testing::internal::UnitTestImpl::RunAllTests() /home/elsid/dev/googletest/googletest/src/gtest.cc:5855
#14 0x562ea6d9e096 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /home/elsid/dev/googletest/googletest/src/gtest.cc:2607
#15 0x562ea6d9e096 in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /home/elsid/dev/googletest/googletest/src/gtest.cc:2643
#16 0x562ea6d93140 in testing::UnitTest::Run() /home/elsid/dev/googletest/googletest/src/gtest.cc:5438
#17 0x562ea5d3fdc6 in RUN_ALL_TESTS() /home/elsid/dev/googletest/build/gcc/release/install/include/gtest/gtest.h:2490
#18 0x562ea5d3fc6f in main /home/elsid/dev/openmw/apps/openmw_test_suite/openmw_test_suite.cpp:11
#19 0x7fe3938d0b24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)
#20 0x562ea5d3fb7d in _start (/home/elsid/dev/openmw/build/gcc/ubsan/openmw_test_suite+0x173eb7d)
/home/elsid/dev/openmw/apps/openmw_test_suite/lua/test_serialization.cpp:176:34: runtime error: reference binding to misaligned address 0x562ea892078f for type 'const struct TestStruct2', which requires 4 byte alignment
0x562ea892078f: note: pointer points here
75 63 74 32 04 00 00 00 03 00 00 00 04 00 6e 64 69 74 69 6f 6e 73 00 73 68 61 70 65 00 51 00 00
^
#0 0x562ea6462df9 in deserialize /home/elsid/dev/openmw/apps/openmw_test_suite/lua/test_serialization.cpp:176
#1 0x562ea68b7402 in deserializeImpl /home/elsid/dev/openmw/components/lua/serialization.cpp:172
#2 0x562ea68b7bf6 in deserializeImpl /home/elsid/dev/openmw/components/lua/serialization.cpp:204
#3 0x562ea68b86ea in LuaUtil::deserialize(sol::state&, std::basic_string_view<char, std::char_traits<char> >, LuaUtil::UserdataSerializer const*) /home/elsid/dev/openmw/components/lua/serialization.cpp:251
#4 0x562ea6464d96 in TestBody /home/elsid/dev/openmw/apps/openmw_test_suite/lua/test_serialization.cpp:197
#5 0x562ea6d9dac6 in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /home/elsid/dev/googletest/googletest/src/gtest.cc:2607
#6 0x562ea6d9dac6 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /home/elsid/dev/googletest/googletest/src/gtest.cc:2643
#7 0x562ea6d92e25 in testing::Test::Run() /home/elsid/dev/googletest/googletest/src/gtest.cc:2682
#8 0x562ea6d92e25 in testing::Test::Run() /home/elsid/dev/googletest/googletest/src/gtest.cc:2672
#9 0x562ea6d93024 in testing::TestInfo::Run() /home/elsid/dev/googletest/googletest/src/gtest.cc:2861
#10 0x562ea6d93728 in testing::TestInfo::Run() /home/elsid/dev/googletest/googletest/src/gtest.cc:2834
#11 0x562ea6d93728 in testing::TestSuite::Run() /home/elsid/dev/googletest/googletest/src/gtest.cc:3015
#12 0x562ea6d94142 in testing::TestSuite::Run() /home/elsid/dev/googletest/googletest/src/gtest.cc:2994
#13 0x562ea6d94142 in testing::internal::UnitTestImpl::RunAllTests() /home/elsid/dev/googletest/googletest/src/gtest.cc:5855
#14 0x562ea6d9e096 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /home/elsid/dev/googletest/googletest/src/gtest.cc:2607
#15 0x562ea6d9e096 in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /home/elsid/dev/googletest/googletest/src/gtest.cc:2643
#16 0x562ea6d93140 in testing::UnitTest::Run() /home/elsid/dev/googletest/googletest/src/gtest.cc:5438
#17 0x562ea5d3fdc6 in RUN_ALL_TESTS() /home/elsid/dev/googletest/build/gcc/release/install/include/gtest/gtest.h:2490
#18 0x562ea5d3fc6f in main /home/elsid/dev/openmw/apps/openmw_test_suite/openmw_test_suite.cpp:11
#19 0x7fe3938d0b24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)
#20 0x562ea5d3fb7d in _start (/home/elsid/dev/openmw/build/gcc/ubsan/openmw_test_suite+0x173eb7d)
4 years ago
elsid
beeb882ea8
Do not use off mesh connections as a part of navmesh cache key
...
To reduce cache size and make it more flexible.
Adding off mesh connections to the navmesh is the last step of navmesh
generation and it's very fast comparing to other steps (microseconds vs
milliseconds). Having less cache size makes get and set operations almost 2x
times faster that also have an order of microseconds. So in total there is
no performance impact.
4 years ago
Petr Mikheev
702eb19271
Fixes and refactoring
4 years ago
Petr Mikheev
b53667d555
Queries. Data structures and lua bindings.
4 years ago
Petr Mikheev
479856f812
Add components/lua/scriptscontainer and components/esm/luascripts
4 years ago
Petr Mikheev
8dbaf6022c
Add components/lua/serilalization
4 years ago
Petr Mikheev
4b068b27ca
Add components/lua/luastate and components/lua/utilpackage
4 years ago
elsid
09f9075842
Use RecastMeshBuilder once to create RecastMesh
...
This allows to move all data out of the object instead of copying.
4 years ago
elsid
84d6dea277
Inscribe physical bounding box into navmesh agent cylinder
...
To disallow too narrow navmesh for a bounding box.
4 years ago
elsid
e9433a91fb
Add more tests for TileCachedRecastMeshManager
4 years ago
elsid
d122e184cc
Report navmesh change for not posted tiles
...
Corresponding recast mesh tiles can be updated but navmesh tiles may never
appear for them. Report back zero navmesh version to allow oscillating recast
objects detection to work. This version is always less than any generated
navmesh tile version so any report for generated navmesh will override it.
If zero navmesh version is reported after recast mesh tile got report about
generated navmesh tile it is a no-op since generated version is always greater
than zero.
4 years ago
elsid
105cd5b06f
Add more checks to NavMeshTilesCache tests
4 years ago
psi29a
e9fbd76e9b
Merge branch 'windows_tests' into 'master'
...
Support running tests and benchmarks for windows
See merge request OpenMW/openmw!839
4 years ago
elsid
3ef1b27099
Add missing includes
4 years ago
elsid
59f89d22f8
Apply min distance only for not present tiles
...
To avoid waiting when navmesh update is triggered by transformed object for
already present tiles.
4 years ago
elsid
7a51d0db18
Wait until navmesh is generated within given distance around player
...
Add a setting to change this distance.
To prevent situations when there is not enough navmesh generated and actors
can't find path correctly.
4 years ago
elsid
f169f8e6f0
Wait until navmesh is generated for interior cells
...
Add special loading progress bar.
It should be fast enough to not keep loading screen for noticably long but
will provide better pathfinding for actors inside interior cells.
4 years ago
elsid
ec87b3f8f7
Remove redundant ChunkyTriMesh
...
This AABB tree required when need to filter out input mesh that has not
influence navmesh tile output. This filtering is already done before. Each
recast mesh corresponds to a single navmesh tile and has appropriate bounds.
4 years ago
psi29a
16bb3919d1
Merge branch 'navmesh_cache_simplification' into 'master'
...
Simplify navmesh cache
See merge request OpenMW/openmw!691
4 years ago
elsid
3e67f5ffa5
Detect and ignore updates for oscillating objects
...
To avoid triggering NavMesh update when RecastMesh change should not change
NavMesh.
Based on the following assumption:
Given a set of transformations and a bounding shape for all these
tranformations, a new object transformation that does not change this
bounding shape also should not change navmesh if for all of this object
transformations resulting navmesh tiles are equivalent
The idea is to report back to RecastMeshManager all changes of NavMesh if there
are any assiciated with RecastMesh version. So we know the last time when
RecastMesh change resulted into the NavMesh change. When later report shows
that there was no NavMesh change for a new RecastMesh version we can assume
that any object transformation within the same bounding box should not change
NavMesh.
4 years ago
elsid
8e1c92d9af
Use std::variant for ESM::Variant implementation
4 years ago
elsid
7f577f5f08
Do not compare hash in tests
...
Different std libraries have different implementation that produce different
results for the same values.
4 years ago
elsid
dae3f022ba
Add tests for ESM::Variant
4 years ago
elsid
f2ebad5115
Return cached element when set existing
4 years ago
elsid
fac5759748
Set bounding min and max height for btHeightfieldTerrainShape
...
They must be set for proper AABB based filtering. Use
+-max(abs(min), abs(max)) to make sure bullet does not shift coordinates by z.
4 years ago
elsid
fdca76ce86
Remove unused includes
4 years ago
elsid
8dba61f7ae
Use navmesh raycast to find reachable position around target
4 years ago
Sergey Fukanchik
f3271cb66b
Add unit test for swapEndiannessInplace(). Part of Bug #5837
4 years ago
elsid
489107c5ee
Count navmesh cache key once in item size
...
Key is stored only in NavMeshTilesCache::Item, TileMap uses KeyView with
a pointer to a vector.
4 years ago
Alexei Dobrohotov
8db2ba2b38
Merge pull request #3032 from akortunov/gtest
...
Mark mock methods as overrides (requires GTest 1.10)
4 years ago
Alexei Dobrohotov
8fd45d85ec
Unify NiGeometry/NiGeometryData handling
4 years ago
Alexei Dobrohotov
15291f15d3
Make actor collision box components a struct
4 years ago
psi29a
7156b11dbc
be explicit about narrowing to resolve: error: type 'btScalar *' (aka 'float *') cannot be narrowed to 'bool' in initializer list [-Wc++11-narrowing]
4 years ago
AnyOldName3
fd4a62ce35
Use correct variable types when loading config for tests
4 years ago
Andrei Kortunov
807367ca3f
Mark mock methods as overrides (requires GTest 1.10)
4 years ago
Alexei Dobrohotov
df9667e923
Read NIF bounding volume data correctly
4 years ago
Bret Curtis
f6bead88a9
purge boost/optional.hpp headers
4 years ago
Bret Curtis
5a824d0333
components/compiler cleanup; also cleaned up related cascading warnings; fixed up final/override issues
4 years ago
Bret Curtis
c99be77a32
Merge pull request #3008 from akortunov/strings
...
Rework fixed strings handling
4 years ago
psi29a
bca698d951
Merge branch 'shader_line_numbering' into 'master'
...
Correctly resetting line numbering during shader processing.
See merge request OpenMW/openmw!317
4 years ago
Andrei Kortunov
822764d0fa
Rework fixed strings handling
4 years ago
Alexei Dobrohotov
29ccb09da5
Introduce some extended NIF definitions
4 years ago
Mads Buvik Sandvei
d5450a7d88
Correctly resetting line numbering during shader processing.
4 years ago
Evil Eye
6ad20ec9c7
Mutate base records when adding/removing spells
5 years ago
elsid
00197e1cd9
Optimize recast mesh size by vertex deduplication
5 years ago
elsid
b095ca6c86
Use actor speed to define area cost for pathfinding
5 years ago
Bret Curtis
c69c7d0b3b
Merge pull request #2049 from elsid/bullet_double_precision
...
Support bullet double precision
5 years ago
Capostrophic
30558c2434
Try to resolve CI concerns
5 years ago
elsid
2d7c3bae61
Support bullet with double precision
5 years ago
elsid
ef5a5ef43f
Print not matched values with full precision
5 years ago
elsid
1f3dfaedcc
Add tests for ShaderManager
5 years ago
elsid
b150d681a9
Update same navmesh tile with limited frequency
5 years ago
elsid
bd1ef4dd6d
Add detournavigator test for multiple worker threads
5 years ago
elsid
df6e85b619
Use callback to handle changed tiles
...
Instead of collecting changed tiles into a temporary vector.
5 years ago
Alexey Sokolov
ddab86d940
Use approximate comparison for floating point in test
...
This fixes test suite on my machine
5 years ago
elsid
208a50340d
Specialize DetourNavigator::ObjectId ctor for pointers
...
To fix msvc error:
components\detournavigator\objectid.hpp(14,13): error C2440: 'reinterpret_cast': cannot convert from 'const T' to 'size_t'
with
[
T=unsigned long
]
5 years ago
elsid
7ae7cb181d
Support recast mesh rendering
5 years ago
Capostrophic
aef6cd7006
Fix handling of empty strings in NIF string tables
5 years ago
elsid
349040ffb2
Use status codes to handle navigator errors instead of exceptions
...
For find path use case.
5 years ago
elsid
1e106013a0
Use navmesh to find wander destination outside pathgrid for ground based actors
...
Use dtNavMeshQuery::findRandomPointAroundCircle from recastnavigation
5 years ago
capostrophic
c61f64ae86
Fix tests
5 years ago
elsid
7ec5a20c64
Filter recast mesh triangles by global bounding box
...
Except heightfields to reduce slow down.
5 years ago
elsid
862f50346c
Add tests for settings parser
5 years ago
elsid
07660b5605
Fix detournavigator tests
5 years ago
Capostrophic
790531671a
Fix tests
5 years ago
Capostrophic
8baddefdbd
Refactor extra data and particle modifier handling
...
Objects no longer inherit from extra data class
"Controlled" harmful abstraction no longer exists
Introduced NiParticleModifier/NiParticleCollider abstractions
Extra data size reading moved into the base read() method
5 years ago
elsid
0479ebf5ae
Remove unused actors and navmeshes on update
...
When there is only one actor (player) on a scene and it moving to other
cell first it will be removed from navigator then added. Remove cause
navmesh removing for its half extents. After it is added navmesh for
same half extents is created and added. While this all happens there are
still jobs for old navmesh are processing. Old navmesh still exists
because it is stored by shared pointer. So jobs take tiles from cache
and place them into old navmesh. After that other jobs take same tiles
from cache (half extents and coordinates are equal) and place them into
other navmesh. dtNavMesh changes tile data on add and remove. Adding tile
to two dtNavMesh corrupts tile in both nameshes.
6 years ago
Bret Curtis
c20e69ef24
Merge pull request #2227 from elsid/fix_twitchy_massive_creatures
...
Fix twitchy movement for massive creatures (bug #4907 )
6 years ago
elsid
b9f21ec81a
Use custom steps size to make smooth path depending on half extents
6 years ago