1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-15 22:19:54 +00:00
Commit graph

85 commits

Author SHA1 Message Date
psi29a
bb393cb91c Merge branch 'fix_new_game_guard_3' into 'master'
Fix new game guard 3 (#6126)

Closes #6126

See merge request OpenMW/openmw!976

(cherry picked from commit 89ca56632c6bc37f07e430e7f5cd23d855610b19)

a3942a1e Remove redundant check for y coordinate in inRange function
cc08a45c Move include where it is needed
7e1630a7 Remove redundant getPolyHeight wrapper
793c30ab Check dtNavMeshQuery::getPolyHeight status
a54c4bc2 Check dtNavMeshQuery::findStraightPath status
94e460ba Use proper check for distance
5624fe19 Consider path not found when there is navmesh query error
2021-07-01 09:06:54 +00:00
psi29a
05b5ada6bf Merge branch 'fix_smooth_movement' into 'master'
Validate almost straight shortcuts by navmesh raycast (#6102)

Closes #6102

See merge request OpenMW/openmw!947

(cherry picked from commit 9c3117d2d4a70475b021f4e4a50eec88cd7cf125)

e7d68d3d Validate almost straight shortcuts by navmesh raycast
2021-06-21 19:55:05 +00:00
elsid
39c0ce9ddf
Build limited path for far destinations
When distance between start and end point is greater than max radius of area
possibly covered by navmesh there is no way to find path via navmesh. Also if
distance is greater than cell size navmesh might not exists withing mentioned
area because cell is not loaded therefore navmesh is not generated. So minumum
of these values is used to limit max path distance. Assuming that path
actually exists it's possible to build path to the edge of a circle. When
actor reaches initial edge path is built further. However it will not be
optimal.
2021-03-23 23:23:12 +01:00
Petr Mikheev
9590377f22 Don't ignore Z in path finding if actor can move by Z. 2021-01-29 22:30:20 +01:00
Petr Mikheev
642ca02e35 Shorten almost straight paths only if smooth movement is enabled; reduce angle limit for the shortening. 2021-01-29 22:30:01 +01:00
elsid
b095ca6c86
Use actor speed to define area cost for pathfinding 2020-06-13 02:24:52 +02:00
elsid
d86669843e
Remove unseud pointTolerance argument 2020-05-16 18:44:12 +02:00
elsid
f7caeefddb
Fallback to straight path when navmesh and pathgrind are not available 2020-01-29 11:14:07 +01:00
elsid
81832f8e17
Reuse distance functions 2019-10-19 12:51:37 +02:00
elsid
6c46d929c2
Build path to first pathgrid node by navmesh 2019-08-03 16:10:55 +02:00
elsid
a65f60e1f1
Build path only by navmesh for wandering near spawn 2019-03-21 23:15:47 +03:00
elsid
ff67a9e233
Build straight path for wandering flying and water creatures 2019-03-21 23:15:47 +03:00
elsid
cf1e1d9f4b
Use min point tolerance to prevent face wrong direction (bug #4814)
When next path point is too close to actor and it has speed 0,
it can face direction not pointing to path target.
2019-03-05 23:18:55 +03:00
elsid
eb45f99880
Remove unused code 2019-03-05 23:18:55 +03:00
elsid
03d4ce5e49
Log find path exception with level verbose, add more info to message 2018-10-15 23:25:42 +03:00
elsid
bbd82a743a
Use different tolerance for path point and destination 2018-10-13 22:16:34 +03:00
elsid
661da42bd2
Build path by navigator 2018-10-13 22:16:33 +03:00
elsid
d02beae5a8
Find path for actors according to their abilities to swim and walk 2018-10-13 22:16:33 +03:00
elsid
fafba8ea0c
Use recastnavigation to find path 2018-10-13 22:16:25 +03:00
elsid
4fe764c3a5
Update and check for complete Pathfinder path by different methods 2018-10-13 22:16:24 +03:00
elsid
b6dd2119a6
Make Pathfinder constructor inline 2018-10-13 22:16:24 +03:00
elsid
92f52287bf
Make PathFinder::ClearPath inline 2018-10-13 22:16:24 +03:00
elsid
ca3d0594b3
Do not store pointer to Pathgrid in PathFinder 2018-10-13 22:16:23 +03:00
elsid
3565d92e11
Make PathFinder::getPathCell inline 2018-10-13 22:16:23 +03:00
elsid
2ad3543088
Fix constant style 2018-10-13 22:16:23 +03:00
elsid
6d89241178
Check is path completed by osg::Vec3f position 2018-10-13 22:16:21 +03:00
elsid
6411c1955d
Fix indent 2018-10-13 22:16:21 +03:00
elsid
d3667945c5
Remove unused functions 2018-10-13 22:16:21 +03:00
elsid
31340a212a
Fix functions name style 2018-10-13 22:16:21 +03:00
elsid
9b3756f8bc
Store path points in deque 2018-10-13 22:16:20 +03:00
elsid
fbaa525c6f
Fix warning 2018-10-13 22:16:20 +03:00
elsid
4d868bec92
Use osg::Vec3f to store path nodes in Pathfinder 2018-10-13 22:16:20 +03:00
scrawl
c50b18b3bb
Move PathgridGraph out of CellStore
By definition this is not 'Mutable state of a cell' and does not belong in CellStore.

This change should improve startup times (graph is now loaded on demand) and edits to 'pathgrid.hpp' no longer cause the entirety of OpenMW to be rebuilt.
2017-11-27 21:20:31 +00:00
Leon Krieg
739cd5ba45 Fixed more spelling mistakes 2016-12-15 13:09:40 +01:00
mrcheko
aa441f2648 AiPackage: fix path recalc on cell change
AiTravel: remove unneeded code
2016-09-06 01:11:10 +03:00
mrcheko
612c7f1a2f Revert "Revert "Merge pull request #993 from mrcheko/pathfinding""
This reverts commit 3732979eec.
2016-08-19 22:15:26 +03:00
scrawl
3732979eec Revert "Merge pull request #993 from mrcheko/pathfinding"
This reverts commit 5190275b37, reversing
changes made to d7845012bf.
2016-08-14 18:04:33 +02:00
mrcheko
59a1a6d117 checkWayIsClear: remove PATHFIND_CAUTION_DIST check 2016-07-16 19:07:48 +03:00
mrcheko
d2fe6fe857 Merge remote-tracking branch 'refs/remotes/origin/master' into pathfinding
# Conflicts:
#	apps/openmw/mwmechanics/aiactivate.cpp
#	apps/openmw/mwmechanics/aicombat.cpp
#	apps/openmw/mwmechanics/aicombat.hpp
#	apps/openmw/mwmechanics/aifollow.cpp
#	apps/openmw/mwmechanics/aipackage.cpp
#	apps/openmw/mwmechanics/aipackage.hpp
#	apps/openmw/mwmechanics/aiwander.cpp
#	apps/openmw/mwmechanics/aiwander.hpp
2016-07-09 22:59:54 +03:00
Allofich
b1be3596dc Cleanup of #include statements 2016-06-18 10:56:28 +09:00
Austin Salgat
38f5a225ea Refactor PathFinder functions to be useable by AiWander
This avoids having to duplicate the distanceSquared and getClosestPoint functions.
2016-04-10 20:44:08 -05:00
mrcheko
d7d5cc6689 Merge remote-tracking branch 'upstream/master' into pathfinding
Conflicts:
	apps/openmw/mwmechanics/aicombat.cpp
	apps/openmw/mwmechanics/aifollow.cpp
	apps/openmw/mwmechanics/aipackage.cpp
	apps/openmw/mwmechanics/aipackage.hpp
	apps/openmw/mwmechanics/aiwander.cpp
	apps/openmw/mwmechanics/pathfinding.hpp

Ogre::Vector3->osg::Vec3f; REACTION_INTERVAL->AI_REACTION_TIME; MakeOgreVec3->MakeOsgVec3
2015-12-29 19:15:40 +03:00
dteviot
21e249cb92 pass parameters as const & 2015-08-04 18:14:36 +12:00
dteviot
1ed6e95c07 Got rid of some radians to degrees to radians conversions. 2015-07-19 18:01:25 +12:00
dteviot
1239667cb4 AiWander uses points between PathGrid points (Fixes #1317)
When there is only on PathGrid point within a NPC's wander distance, expand possible wander destinations by using positions between PathGrid points.
2015-07-05 18:21:35 +12:00
mrcheko
c773ed9f9a move checkWayIsClear to pathfinding; move shortcut logic to separate func (AiPackage::shortcutPath); rework AiPackage::pathTo 2015-07-04 18:00:16 +03:00
dteviot
164994f3d3 Made PathFinder::buildPath() private.
Now all paths are built by calling PathFinder::buildSyncedPath().
Also removed useless comment.
2015-07-04 18:47:26 +12:00
scrawl
c719b7038e Merge branch 'master' of https://github.com/OpenMW/openmw into osg 2015-06-18 15:00:21 +02:00
scrawl
cad18969e3 Merge branch 'master' of https://github.com/OpenMW/openmw into osg
Conflicts:
	apps/openmw/mwmechanics/aicombat.cpp
	apps/openmw/mwmechanics/aitravel.cpp
2015-06-14 16:32:13 +02:00
dteviot
520fbd63c4 simplified pathfinding code.
remove mIsPathConstructed.  Instead call !mPath.empty().
2015-06-14 15:14:02 +12:00