Commit Graph

578 Commits (22142668c7192b0c1bf90293edfd279411ada0b6)

Author SHA1 Message Date
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
elsid f2e47d640d
Add option to limit max number of navmesh tiles 6 years ago
elsid 27d7452267
Update scaled objects in navigator 6 years ago
Bret Curtis 14c93b3df0 Revert "Merge pull request #2204 from elsid/fix_navigator_update"
This reverts commit 26fb0e7a0f, reversing
changes made to 42b2391303.
6 years ago
Bret Curtis 84ce9814fd
Merge pull request #2203 from elsid/update_recastnavigation
Update recastnavigation
6 years ago
elsid 133d7447f3
Update scaled objects in navigator 6 years ago
elsid 895899b25b
Fix tests 6 years ago
elsid 2b3bc4fe61
Add detailed output for osg::Vec3f in tests 6 years ago
Bret Curtis 4a69d96483 Merge branch 'esm_name_template_fix' into 'master'
Make sure that proper operator function of ESM:FIXED_STRING is used for char[N] argument

See merge request OpenMW/openmw!63
6 years ago
Bret Curtis 8e3b10b5b4 Merge branch 'detour_navigator_unit_test_fix' into 'master'
Fix DetourNavigatorNavMeshTilesCacheTest on Windows

See merge request OpenMW/openmw!65
6 years ago
elsid 2342a31add
Add more tests for TileCachedRecastMeshManager 6 years ago
elsid 73734fc04d
Fix update navmesh for not changed objects
When update method is called for not changed object befor this change
all object tiles were considered as not object tiles and were removed.
Also this marked those tiles as changed. This lead to alternation
between remove and add each tile update method was called. Problem was
detected by using Animated Containers mod.
6 years ago
Bret Curtis 09262e0336
Merge pull request #2170 from elsid/disable_navigator_option
Add option to disable DetourNavigator component (feature #4833)
6 years ago
elsid da6df818ff
Fix update navmesh
Every updated object should produce a set of changed tiles where it is
placed. Before this change only current object tiles were updated. If
object was moved to another set of tiles then navmesh were not changed
in new tiles.

TileCachedRecastMeshManager::updateObject should add all new tiles if object
was moved and remove all no more used tiles. Both new and old tiles should be
marked as changed.

Also add tests to show desired result for add, update, remove.
6 years ago
elsid 16675fd254
Return empty path when navmesh is not found for agent 6 years ago
elsid 1d3668cd22
Add Navigator interface 6 years ago
Azdul 2412017685 Fix DetourNavigatorNavMeshTilesCacheTest on Windows 6 years ago
Azdul 7940317e42 Make sure that proper operator function is used for char[N] argument 6 years ago
Azdul 32013d35f2 Formatting of CMakeLists made consistent with other CMakeLists files. 6 years ago
Azdul 6d8215ecb6 Google Test / Google Mock / OpenMW unit tests on Windows 6 years ago
Andrei Kortunov d2613e35a2 Fix some Clang 7 warnings 6 years ago
elsid 6e78fbb538
Double key size for item cache size 6 years ago
elsid 2ba026e2b2
Limit navmesh cache size by data size + key size 6 years ago
elsid 792a0585c0 Add recastnavigation as subdirectory 6 years ago
AnyOldName3 6bbc1cb308
Remove outdated include 6 years ago
AnyOldName3 93843d024c Remove another duplicate operator<< 6 years ago
Bret Curtis d6c674660a
Merge pull request #1633 from elsid/pathfinder_detour
Use recastnavigation for pathfinding (#2229)
6 years ago
elsid 50b6ae3e10 Fix calculation for shape local AABB 6 years ago
elsid abc51a8a17 Add settings option to set max number of polygons per navmesh tile 6 years ago
Andrei Kortunov d2f3196ee8 Fix testcase for RootCollisionNode with MRK data 6 years ago
elsid ed73d130f9
Cache navmesh tiles
Use LRU modification to hold currently used items. Use RecastMesh binary
data for item key.

Store original pointer of btCollisionShape in user pointer to make available
it as an identifier within all duplicates. Use pointer to heights data array
for btHeightfieldTerrainShape.
6 years ago
elsid 1a27489904
Add special type for object id 6 years ago
elsid 7c80bb9411
Support multiple threads for async nav mesh updater 6 years ago
elsid d02beae5a8
Find path for actors according to their abilities to swim and walk 6 years ago
elsid c95cea414c
Support water for NavMesh 6 years ago
elsid 72f211ef28
Add enums for area type and flags 6 years ago
elsid fa23b590a4
Add unwalkable areas to NavMesh 6 years ago
elsid f6a60790f8
Create collision shape for all avoided nodes 6 years ago
elsid 144e1a063b
Support animated objects 6 years ago
elsid d2fd9abd51
Split RecastMesh into tiles 6 years ago
elsid 937e8e1803
Allow to create empty RecastMesh 6 years ago
elsid ed3a255f65
Do not use NavMesh to find changed tiles 6 years ago
elsid d1e71f9322
Support btBoxShape for RecastMesh 6 years ago
elsid 373adc6ec4
Option to enable/disable file names revisions 6 years ago
elsid d1d034a1ec
Update NavMesh one by one tile in order from nearest to player 6 years ago
elsid 41caca24ee
Options to enable/disable write recast mesh and nav mesh into file 6 years ago
elsid fafba8ea0c
Use recastnavigation to find path 6 years ago
Andrei Kortunov e06f0b797a Replace all NULLs to nullptr 6 years ago
elsid f2a63bcf35
Add unit tests for BulletNifLoader 6 years ago
elsid 6afc1dc3a0
Support build with coverage for components and test suite 6 years ago
elsid ef631a0961
Add dependency for GMock 6 years ago
Andrei Kortunov 1f4dd3b393 Make partial binary search case insensitive, as it supposed to be (bug #4558) 7 years ago
Capostrophic 84a871cac7 Actually enable is_pod test 7 years ago
Bret Curtis 0fc198be52
Merge pull request #1698 from Capostrophic/c++11
A bunch of C++11-related updates
7 years ago
Capostrophic 85b7aa4f09
Uncomment is_pod test in fixed string tests 7 years ago
elsid 2f9b6b536b Label gtest directories as system
To hide all warnings when use custom GTEST_ROOT.
7 years ago
AnyOldName3 5ce34f1cbf Move new behaviour into macro to reduce code duplication 7 years ago
AnyOldName3 3c0ec0d6d0 If CMake supports it, sets the debugger working directory for Visual Studio 7 years ago
Andrei Kortunov de14e9811d Fixed Travis CI build 8 years ago
scrawl 48c764a580 Update test 8 years ago
scrawl 813af876f6 Use a partial binary search in isReservedName (Fixes #3835) 8 years ago
Roman Proskuryakov 5ae1864062 Add unit tests for ESM::FIXED_STRING 9 years ago
scrawl aae1aa3708 Adjust tests to work with esm_rewrite branch. 9 years ago
scrawl f91aae2350 Tests: add record overwrite test 9 years ago
scrawl 1e817a976f Tests: add record deletion test 9 years ago
scrawl 771193bae8 Tests: add content_diagnostics_test (requires some data files) 9 years ago
scrawl 38c155c579 Tests: add dialogue_merging_test (requires some data files) 9 years ago
scrawl d0d8c2eded Delete empty test 9 years ago
scrawl 66e7e04807 UnitTests: add another dialogue keyword test 10 years ago
scrawl 1b302b750c UnitTests: add tests for KeywordSearch conflict resolution 10 years ago
scrawl 9d07edda13 UnitTests: remove GMock which wasn't used anyway, and the gmock headers fail to compile together with gtest on ubuntu 14.04 10 years ago
scrawl 40c3fa0dc1 Fix travis 11 years ago
scrawl b3735981d6 Remove unused file_finder 11 years ago
scrawl 9998c2783e Fix travis
Why again do we need a unit test for something that was never used?
11 years ago
Lukasz Gromanowski 2c49458b6c Added unittests for FileFinder::FileFinderStrict class.
Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
12 years ago
Lukasz Gromanowski 0e83b50659 Changed test dir for SearchTest.
Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
12 years ago
Lukasz Gromanowski 2baaef7d87 Added unittests for FileFinder::FileFinder class.
Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
12 years ago
Lukasz Gromanowski 303e02cab5 Added unittests for FileFinder::find function.
Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
12 years ago
Lukasz Gromanowski 515a865daa Changed ASSERT_EQ to ASSERT_TRUE/FALSE.
Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
12 years ago
Lukasz Gromanowski da0b90ee45 Converted tests from components/misc into google unittests.
Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
12 years ago
Lukasz Gromanowski 770f747eec Added fix for not visible pthreads functions for linker with glibc 2.15
Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
13 years ago
Lukasz Gromanowski 34513cf16b Added support for code coverage checking and unittests.
Added support for code coverage checking with gcov and
unittests with Google C++ unittest and GMock frameworks.

Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
13 years ago