1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-20 07:23:53 +00:00
Commit graph

404 commits

Author SHA1 Message Date
elsid
5abbc56bf2
Use proper cell size for ESM4 cells in CoordinateConverter 2023-08-13 02:24:22 +02:00
psi29a
4aaffa72e5 Merge branch 'more_coverity_fixes' into 'master'
More coverity fixes

See merge request OpenMW/openmw!3304
2023-08-03 07:15:34 +00:00
Andrei Kortunov
fe10799bfe Add an assert for possible null pointer dereference 2023-07-31 17:53:58 +04:00
Andrei Kortunov
34ba2068b7 Remove dead code 2023-07-31 16:35:31 +04:00
elsid
798f3cc385
Support ESM4 record FullName, CellFlags, X, Y fields by esmtool 2023-07-30 18:20:10 +02:00
elsid
e00eb50587
Remove stepping from findSmoothPath
This is not used anyway. There are features like smooth movement which remove
all redundant points.

Use single findStraightPath call instead of multiple.
2023-07-22 18:08:40 +02:00
elsid
767a14587c
Add more debug logging on navmesh generation 2023-07-22 18:08:36 +02:00
elsid
9817f4ca9a
Find closest position on navmesh to start and end before poly path
Start and end might not be located on navmesh and findPath may give wrong
results.
2023-07-22 17:24:51 +02:00
elsid
3dfea1dc1b
Make OutputTransformIterator more generic 2023-07-22 17:24:51 +02:00
elsid
de3a6ca6e6
Use std::span for findPath pathBuffer 2023-07-22 17:24:51 +02:00
elsid
c334176d73
Use std::span for makeSmoothPath polygonPath 2023-07-22 17:24:51 +02:00
elsid
548c38f54d
Remove unused code 2023-07-22 17:24:50 +02:00
elsid
350027c588
Remove redundant NavMesh argument from findSmoothPath 2023-07-22 17:24:50 +02:00
elsid
fcea153947
Transform path coordinates outside findSmoothPath 2023-07-22 17:24:50 +02:00
elsid
9bff292a29
Log path to navmesh.db 2023-07-21 23:54:49 +02:00
elsid
180dd7dc64
Log worldspace in RecastContext 2023-06-10 13:23:47 +02:00
elsid
f9e9368fda
Add operator<< for DetourSettings 2023-06-10 13:14:52 +02:00
elsid
dd08154b23
Add operator<< for DetourNavigator::AreaCosts 2023-06-10 13:14:52 +02:00
elsid
ce5fbd6b68
Write separator between Detour status flags 2023-06-10 13:14:52 +02:00
elsid
a90aa7d8b2
Count navmeshdb reads for each reading job 2023-05-17 10:08:34 +02:00
elsid
5ae8b9cae1
Report raw navmesh cache counters 2023-05-17 10:08:33 +02:00
elsid
04d439485b
Log more info about navmesh shapes and jobs 2023-05-14 18:34:31 +02:00
elsid
7a7c20d49e
Define single UpdateGuard type in a separate file 2023-04-22 13:22:07 +02:00
elsid
472a36d92a
Cleanup detournavigator includes 2023-04-22 13:21:59 +02:00
elsid
3e99deb0e8
Use typed settings storage for detournavigator 2023-03-28 20:47:34 +02:00
elsid
28f7a89530
Reuse dtNavMeshQuery
To avoid redundant allocations.
2023-02-17 15:05:25 +01:00
elsid
996153f78d
Convert RefId to class 2023-02-15 23:20:44 +01:00
florent.teppe
63e44eddc9 Navigator doesn't use RefId anymore 2023-01-21 18:39:57 +01:00
florent.teppe
150e2ba885 Revert "Use ESM::RefId for worldspace in detournavigator"
This reverts commit b4ab153418.

# Conflicts:
#	apps/navmeshtool/worldspacedata.cpp
2023-01-21 18:39:57 +01:00
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.
2023-01-18 12:00:48 +01:00
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.
2023-01-15 04:46:29 +01:00
Petr Mikheev
8c7d347179 Reorganize l10n files 2023-01-02 13:21:05 +01:00
elsid
c71862a8df
Reset rcPolyMeshDetail members after rcFree
To avoid double free causing by later recastnavigation versions.
2022-12-30 19:26:48 +01:00
elsid
b4ab153418
Use ESM::RefId for worldspace in detournavigator 2022-12-29 23:49:49 +01:00
florent.teppe
1ef1de974d script blacklist => RefId
Applies changes from review

Fixed clang format

Clang format + review.
2022-12-27 19:16:21 +01:00
florent.teppe
2c30575b3b CellName is now a RefId, makes more sense that way. 2022-12-27 19:16:21 +01:00
psi29a
14afde4689 Merge branch 'recast_context' into 'master'
Check input and report errors via RecastContext (#7093)

Closes #7093

See merge request OpenMW/openmw!2544
2022-12-20 09:31:31 +00:00
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.
2022-12-19 19:46:45 +01:00
Evil Eye
d40c09c18c Ignore non-3D agents in the navigator 2022-12-09 16:43:15 +01:00
elsid
843753da14
Remove unused includes 2022-10-09 16:44:18 +02:00
elsid
624d8bc931
Support unsigned settings values 2022-10-04 01:34:53 +02:00
elsid
1b9b61b60b
Format navmesh water vertices and indices 2022-09-27 00:46:34 +02:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base 2022-09-22 21:35:26 +03:00
Project579
a13709c510 Replace implicit convertions from std::filesystem::path to std::string with correctly converting functions. 2022-09-11 14:41:20 +02:00
Project579
e5c417c968 Make sure all paths are passed as std::filesystem::path instead of std::string where possible. 2022-09-11 14:41:15 +02:00
elsid
22ee592dd3
Lock TileCachedRecastMeshManager once per changing a cell
To save time on locking mutex and prevent AsyncNavMeshUpdater to use RecastMesh
for a tile in the middle of objects loading.
2022-09-08 11:06:35 +02:00
elsid
d15e1dca84
Use R-tree for objects to be used for navmesh generation
Instead of storing a set of objects per tile.
2022-09-07 22:51:56 +02:00
elsid
180d609e0d
Check "wait until min distance to player" only for requiredTilesPresent wait condition
allJobsDone should wait even if "wait until min distance to player" is 0.
2022-09-06 21:51:48 +02:00
elsid
98ddc31902
Fix calculating min distance to nearest absent tile
Tile can be present in either mPushed (waiting in a queue), mProcessingTiles (
being processed or waiting in db queue), mPresentTiles (added to navmesh). It's
not enough to walk over mPushed tiles to find all not present. Need also to
check mProcessingTiles.

Otherwise if all tiles are in mProcessingTiles only
waitUntilJobsDoneForNotPresentTiles may return too early because there are none
in mPushed and therefore none tiles are considered to be absent on navmesh which
is not true.
2022-09-06 21:51:48 +02:00
elsid
de80b86cc1
Use proper type to cast enum value 2022-09-06 21:51:48 +02:00