1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-16 02:49:55 +00:00
Commit graph

140 commits

Author SHA1 Message Date
mrcheko
0775ed75ea fix zero div in getXAngleToDir 2016-09-03 17:50:06 +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
05794505c8 travis build fix 2016-07-10 17:25:50 +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
5369d20682 Moved pathfinding logic from AiCombat to Pathfinding. 2015-09-19 15:34:02 +12:00
dteviot
8e2fe1985d Fixed errors pointed out by Zini.
1. Removed "Actor" from name of function  isActorNearInactiveCell().
2. Corrected case of CoordinateConverter member function names.
2015-09-12 14:17:46 +12:00
dteviot
39c2ba8efe Pathfinding bugfix.
Observed at Ebonheart (coe 1, -13).  Especially at the western tower. Guards try to walk though tower door.
Cause: buildPath() adds destination (even when unreachable) when only using single node from pathgrid.
2015-08-30 16:12:51 +12:00
dteviot
5dd0ad6841 Fixed rest of travis errors. 2015-08-21 22:41:31 +12:00
dteviot
85bc41dedb replaced FLT_MAX with numeric_limits. 2015-08-21 19:34:28 +12:00
dteviot
3b231b85bb removed incorrect optimization.
Now it fixes #2871
2015-08-21 06:55:54 +12:00
dteviot
c0d3804b4f Correctly handle disjoint pathgrid (Fixes #2871)
Bugfix:
When
1. Cell has multiple subgrids  (i.e. path grid is disjoint)
2. Distance between destination and pathgrid point 0 is less than distance to points of subgrid closest to start point
Then getClosestReachablePoint() returns pathgrid point 0 as the end point.
This is invalid, this end point cannot be reached from the start point.
2015-08-20 21:50:58 +12:00
scrawl
dca08b0b42 Remove a firing assert (Fixes #2871) 2015-08-18 14:51:32 +02:00
dteviot
4d9d8a060d Pathing bugfix.
When path contains one one point from path grid, point is no longer being discarded.
2015-08-16 18:56:28 +12:00
dteviot
942a987d52 centralize the world/cell coordinate conversion logic. 2015-08-16 18:55:02 +12:00
dteviot
5049c9ab6a removed unnecessary tests. 2015-08-16 17:41:33 +12:00
dteviot
e42a2478dc Removed tests that are not necessary. 2015-08-09 17:58:40 +12: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
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
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
dteviot
cb8ca2f03a Moved logic for building a Sync'ed path from AiCombat to PathFinding.
Is now used by AiFollow, which should fix "running in circles" bug caused when recalc a path and closest way point is the one NPC has just passed.
2015-06-11 18:31:35 +12:00
scrawl
4bb3cbf0fb Remove last remains of Ogre 2015-06-03 23:04:35 +02:00
scrawl
7bacb9418d Various math code ported to osg 2015-06-03 19:41:19 +02:00
dteviot
eb1090a1b6 Waypoint check only considers X & Y distance (Fixes #2423)
When pathfinder checks if actor has reached a waypoint, ignore actor's altitude.
2015-03-23 20:09:46 +13:00
dteviot
ca8c8c6aa4 fixing MSVC 2013 warning C4244: & C4305
conversion from 'const float' to 'int', possible loss of data
conversion from 'double' to 'int', possible loss of data
conversion from 'float' to 'int', possible loss of data
2015-03-08 17:42:07 +13:00
scrawl
a17252eab3 Remove unused checkWaypoint function
It was an almost exact copy of the checkPathCompleted function anyway.
2015-01-07 02:34:28 +01:00
scrawl
4d9100091d Reduce default pathing arrival tolerance to 32 units (Fixes #1605) 2015-01-07 02:34:28 +01:00
terrorfisch
c4badcea6e removed warning 2014-10-10 23:51:29 +02:00
terrorfisch
bbca942601 -improved trigonometric precision
-cleanup
2014-10-10 23:31:01 +02:00
scrawl
7252cb63a6 Fix cppcheck issues 2014-09-26 17:48:14 +02:00
scrawl
8d8015ce18 Remove a squareroot in pathfinding 2014-06-15 14:18:16 +02:00
Thomas
2c74ea381e Moved pathfinding code to aiPackage, implemented it's use with aiFollow and aiPursue 2014-05-12 21:05:32 -04:00
mrcheko
6a3dddfb9a merge master 2014-04-27 13:49:31 +04:00
mrcheko
f811abb752 pathgrid shortcutting extended 2014-04-20 20:35:07 +04:00
cc9cii
c652cb1568 More cleaning up. 2014-04-18 15:19:22 +10:00
cc9cii
2447f0f4aa Cleaned up logging statements. 2014-04-18 14:41:44 +10:00
cc9cii
aad13d315c Fixed issue where allowed nodes were being erased. PathFinder was returning an empty path if the closest pathgrid point to the start was also the closest pathgrid point to the goal. Still need to clean up and remove logging statements. 2014-04-18 14:41:44 +10:00
cc9cii
f59226265a Remove redundant parameter from aStarSearch. Also update some comments. 2014-04-04 18:10:06 +11:00
cc9cii
040d4f8fc4 Move PathgridGraph into separate files. 2014-04-04 06:13:47 +11:00
cc9cii
a8b2eb1fe9 Make Travis happy. 2014-04-03 22:49:22 +11:00
cc9cii
325d0616bb Cleanup debug statements. 2014-04-03 22:17:45 +11:00
cc9cii
98f77714ce Per-cell pathgrid data and calculation moved off PathFinder. Now the edge cost calculations and strongly connected component searches are done only once per cell. Per-actor data and methods still remain with PathFinder.
This version still has debugging statements and needs cleaning up.
2014-04-03 21:43:44 +11:00
Marc Zinnschlag
c7b969821f silenced a warning 2014-03-29 11:11:43 +01:00
cc9cii
07fd801d94 My previous analysis of the pathfinding issue was incorrect. It was in fact caused due to some of the pathgrid points being unreachable. Instead of returning an empty path in such a scenario, incorrect path + requested destination were being returned. There was also a defect where past cost was being used for selecting open points.
There is still an unresolved issue where mGraph and mSCComp are being rebuilt unnecessarily.  The check mCell != cell in buildPath() is being triggered frequently. Not sure why.
2014-03-29 19:35:52 +11:00
cc9cii
267855c44e Prevent NPC suicides off silt the strider platform in Seyda Neen. Added some comments as well. There may be opportunities for some optimization but left that out for now. 2014-03-29 19:35:52 +11:00
scrawl
c8c0e5de38 Fixed code issues found with unity build. Missing include guards, duplicated functions, ... 2014-03-16 23:49:06 +01:00
Marc Zinnschlag
f9d2fde783 Merge branch 'openmw-29'
Conflicts:
	apps/openmw/mwmechanics/aicombat.cpp
2014-03-04 09:34:38 +01:00
cc9cii
5b48ca114f aicombat pathfinding fix - check the correct list 2014-02-25 08:31:14 +01:00
Marc Zinnschlag
367919200f moved CellRefList into a separate file 2014-02-23 20:11:05 +01:00
cc9cii
1bd2664cb0 aicombat pathfinding workaround 2014-02-23 11:47:25 +01:00
Marc Zinnschlag
7693f712bc started making CellStore into a proper class; encapsulated mCell member 2014-02-21 11:35:46 +01:00
scrawl
7907181c0c Fix uninitialized member 2014-02-05 05:18:11 +01:00
mrcheko
3a5da7e6e8 merged with master 2014-01-29 00:03:00 +02:00
Marc Zinnschlag
a473c3f619 some cleanup 2014-01-28 12:36:10 +01:00
mrcheko
fe0268062d merge with master 2014-01-27 22:38:01 +02:00
gus
f5d589388c bug fix 2014-01-26 22:06:54 +01:00
gus
764011dd1b clean up 2014-01-26 21:53:55 +01:00
gus
7cb47aa635 new implementation of pathfinding. Works, but need clean up 2014-01-26 21:26:19 +01:00
scrawl
a1fbd1fcc8 Revert "Merge remote-tracking branch 'mrcheko/master'"
This reverts commit df7c139e2f, reversing
changes made to fec26342cd.
2014-01-26 00:14:49 +01:00
mrcheko
87e83a92f8 refactoring of setting an attack type 2014-01-23 23:14:20 +02:00
mrcheko
339399f8b1 bug fix/logic fix/future suggestion 2014-01-19 22:09:51 +02:00
gus
5d4e148063 some clean up 2014-01-12 22:47:22 +01:00
gus
5d038423ec attempt to solve Bug #1009 by not building graph every frame 2014-01-12 18:42:31 +01:00
gus
0609b71df9 fix pathfinding 2014-01-11 11:57:07 +01:00
scrawl
90b55c8d4b Use Ogre's asin/acos functions which will protect against NaNs 2014-01-07 17:09:08 +01:00
gus
1ac3d99c78 pathfinding now works in AICombat. 2013-10-07 10:20:02 +02:00
Chris Robinson
82a09a988b Minor pathfinding cleanup 2013-08-29 19:17:27 -07:00
Chris Robinson
9499ac4fd5 Increase the distance for reaching a path node 2013-08-29 17:41:20 -07:00
scrawl
7dc30a01cd Some changes suggested by cppcheck 2013-07-31 18:46:32 +02:00
Torben Carrington
09beafd044 Pathfinding Overhaul - Master cleanup! Cleaned pathfinding entirely, all AI packages that are implemented as well, Increased buffer! This makes the intro guard no longer walk into you or go to far into the room (not tested against vanilla distances but it seems accurate enough until the next itteration of pathfinding fixes). 2013-05-31 17:49:52 -07:00
Torben Carrington
a4caec56cf Pathfinding Overhaul - Fixed selecting cells that are inaccessable from AIWander and pathfinding in general (sadly requires minor effort on the AI Packages implementation but it is the quickest way I can see), minor cleanup again (there is a lot to cleanup, this will prolly be in every commit). 2013-05-31 17:01:42 -07:00
Torben Carrington
73a9671742 Pathfinding Overhaul - Changed the name of checkIfNextPointReached to a more intuitive name considering what it does (checkPathCompleted) and fixed a minor bug in it, modified buildPath() to take one final parameter, a bool which dictates whether or not to always use pathfinding (like AIWander should be doing) or to allow for "shortcuts", modified all ai packages to work with these two changes. 2013-05-29 20:05:17 -07:00
Torben Carrington
c080785235 Pathfinding Overhaul - Finished cleaning, removed unnecessary parameter in one function, fixed use of the function in ai packages and added use of clearPath() function in aiwander, fixed algorithms and got rid of excess subtractions in getDistance functions (thanks to Chris!). 2013-05-29 19:26:45 -07:00
Torben Carrington
7b465ae4f1 Pathfinding Overhaul - Even more cleanup and spacing corrections, small renaming (more to come), removed a few unnecessary actions that wasted CPU time and tmp RAM. 2013-05-29 17:33:33 -07:00
Torben Carrington
96fdaf7410 Pathfinding Overhaul - More cleanup. 2013-05-29 16:10:15 -07:00
Torben Carrington
4838678944 Pathfinding Overhaul - Cleanup, removed unnecessary include, fixed spacing, added a function for clearing a path, overall preperation to begin working on fixing pathfinding. 2013-05-29 15:59:23 -07:00
Marc Zinnschlag
51067698a8 minor cleanup 2013-05-08 21:26:39 +02:00
gus
006f25d1c0 First try to improve AI. Does not work yet due to strange bug in physicsystem 2013-05-06 00:46:50 +01:00
gus
c753eb4c28 another way to do pathfinding. Slightly less powerfull algorithme in theory, but morrowind pathgrids are so simple it shouldn't be a problem. Hope it solves the bug for KittyCat 2013-04-18 18:35:01 +01:00
gus
905cff2a94 anonymous namespace 2013-04-11 18:02:12 +01:00
gus
6a33170ca2 More bugfix, but I don't like this one. 2013-04-01 17:44:06 +00:00
gus
47cc945ef4 more refactoring 2013-04-01 12:38:13 +00:00
gus
63424ade56 refactoring 2013-03-31 17:30:03 +00:00