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