Commit Graph

86 Commits (fb877784930d98d238922e9a80ed418c533b6401)

Author SHA1 Message Date
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