Commit Graph

85 Commits (master)

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
4 years ago
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
4 years ago
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.
4 years ago
Petr Mikheev 9590377f22 Don't ignore Z in path finding if actor can move by Z. 4 years ago
Petr Mikheev 642ca02e35 Shorten almost straight paths only if smooth movement is enabled; reduce angle limit for the shortening. 4 years ago
elsid b095ca6c86
Use actor speed to define area cost for pathfinding 5 years ago
elsid d86669843e
Remove unseud pointTolerance argument 5 years ago
elsid f7caeefddb
Fallback to straight path when navmesh and pathgrind are not available 5 years ago
elsid 81832f8e17
Reuse distance functions 5 years ago
elsid 6c46d929c2
Build path to first pathgrid node by navmesh 5 years ago
elsid a65f60e1f1
Build path only by navmesh for wandering near spawn 6 years ago
elsid ff67a9e233
Build straight path for wandering flying and water creatures 6 years ago
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.
6 years ago
elsid eb45f99880
Remove unused code 6 years ago
elsid 03d4ce5e49
Log find path exception with level verbose, add more info to message 6 years ago
elsid bbd82a743a
Use different tolerance for path point and destination 6 years ago
elsid 661da42bd2
Build path by navigator 6 years ago
elsid d02beae5a8
Find path for actors according to their abilities to swim and walk 6 years ago
elsid fafba8ea0c
Use recastnavigation to find path 6 years ago
elsid 4fe764c3a5
Update and check for complete Pathfinder path by different methods 6 years ago
elsid b6dd2119a6
Make Pathfinder constructor inline 6 years ago
elsid 92f52287bf
Make PathFinder::ClearPath inline 6 years ago
elsid ca3d0594b3
Do not store pointer to Pathgrid in PathFinder 6 years ago
elsid 3565d92e11
Make PathFinder::getPathCell inline 6 years ago
elsid 2ad3543088
Fix constant style 6 years ago
elsid 6d89241178
Check is path completed by osg::Vec3f position 6 years ago
elsid 6411c1955d
Fix indent 6 years ago
elsid d3667945c5
Remove unused functions 6 years ago
elsid 31340a212a
Fix functions name style 6 years ago
elsid 9b3756f8bc
Store path points in deque 6 years ago
elsid fbaa525c6f
Fix warning 6 years ago
elsid 4d868bec92
Use osg::Vec3f to store path nodes in Pathfinder 6 years ago
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.
7 years ago
Leon Krieg 739cd5ba45 Fixed more spelling mistakes 8 years ago
mrcheko aa441f2648 AiPackage: fix path recalc on cell change
AiTravel: remove unneeded code
8 years ago
mrcheko 612c7f1a2f Revert "Revert "Merge pull request #993 from mrcheko/pathfinding""
This reverts commit 3732979eec.
8 years ago
scrawl 3732979eec Revert "Merge pull request #993 from mrcheko/pathfinding"
This reverts commit 5190275b37, reversing
changes made to d7845012bf.
9 years ago
mrcheko 59a1a6d117 checkWayIsClear: remove PATHFIND_CAUTION_DIST check 9 years ago
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
9 years ago
Allofich b1be3596dc Cleanup of #include statements 9 years ago
Austin Salgat 38f5a225ea Refactor PathFinder functions to be useable by AiWander
This avoids having to duplicate the distanceSquared and getClosestPoint functions.
9 years ago
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
9 years ago
dteviot 21e249cb92 pass parameters as const & 10 years ago
dteviot 1ed6e95c07 Got rid of some radians to degrees to radians conversions. 10 years ago
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.
10 years ago
mrcheko c773ed9f9a move checkWayIsClear to pathfinding; move shortcut logic to separate func (AiPackage::shortcutPath); rework AiPackage::pathTo 10 years ago
dteviot 164994f3d3 Made PathFinder::buildPath() private.
Now all paths are built by calling PathFinder::buildSyncedPath().
Also removed useless comment.
10 years ago
scrawl c719b7038e Merge branch 'master' of https://github.com/OpenMW/openmw into osg 10 years ago
scrawl cad18969e3 Merge branch 'master' of https://github.com/OpenMW/openmw into osg
Conflicts:
	apps/openmw/mwmechanics/aicombat.cpp
	apps/openmw/mwmechanics/aitravel.cpp
10 years ago
dteviot 520fbd63c4 simplified pathfinding code.
remove mIsPathConstructed.  Instead call !mPath.empty().
10 years ago