elsid
bbd82a743a
Use different tolerance for path point and destination
2018-10-13 22:16:34 +03:00
elsid
ab090108cb
Assign world to local variable once per function
2018-10-13 22:16:34 +03:00
elsid
27a74725f1
Use osg::Vec3f
2018-10-13 22:16:34 +03:00
elsid
346e9e3141
Add off mesh connections for doors without teleport
2018-10-13 22:16:33 +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
dc09674362
Add command and settings option to enable actors paths render
2018-10-13 22:16:32 +03:00
elsid
4fe764c3a5
Update and check for complete Pathfinder path by different methods
2018-10-13 22:16:24 +03:00
elsid
2c464bd682
Evade obstacles after set rotation
2018-10-13 22:16:22 +03:00
elsid
66e5a4d591
Remove useless variable
2018-10-13 22:16:22 +03:00
elsid
1a95b7a154
Remove duplicate zTurn call
2018-10-13 22:16:22 +03:00
elsid
63b3a70ca8
Remove useless else
2018-10-13 22:16:22 +03:00
elsid
c9f3064cbd
Update ObstacleCheck once per frame
2018-10-13 22:16:22 +03:00
elsid
6d89241178
Check is path completed by osg::Vec3f position
2018-10-13 22:16:21 +03:00
elsid
9b3756f8bc
Store path points in deque
2018-10-13 22:16:20 +03:00
elsid
925d909fea
Use rbegin
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
elsid
33dfe284bd
Mark local variables const which one does not change
2018-10-13 22:16:20 +03:00
Andrei Kortunov
e06f0b797a
Replace all NULLs to nullptr
2018-10-09 10:21:12 +04:00
Andrei Kortunov
81b78a82e8
AI: try to open doors every AI_REACTION_TIME seconds (bug #4454 )
2018-06-13 17:47:32 +04:00
Andrei Kortunov
fed10e87aa
Store integer actor ID in AI packages (bug #4036 )
2018-06-08 19:57:41 +04:00
Capostrophic
5b49248d6e
Restrict opening doors to bipedal actors ( Fixes #4313 )
2018-03-18 17:24:27 +03:00
Andrei Kortunov
f7f8dfaf2a
AiWander: do not allow flying/swimming creatures to use pathgrid
2017-11-28 18:03:13 +04: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
Andrei Kortunov
37952c9a79
Added door detection based by ray casting
2017-07-03 22:08:29 +04:00
Andrei Kortunov
e9d0bf7c12
Added missed return statement
2017-06-11 15:06:44 +04:00
Andrei Kortunov
188424d5d3
Allow AI to use keys to open doors
2017-06-10 22:31:17 +04:00
Andrei Kortunov
4600f24e27
Playing sound when AI is opening a door
2017-06-09 22:52:40 +04:00
scrawl
1362264561
Fix warning
2016-09-13 02:49:19 +02:00
mrcheko
72786fef9d
prevent running in circles around path points
...
addresses http://bugs.openmw.org/issues/2229
2016-09-09 23:57:19 +03: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
203804ff15
fix AiPackage repeating
2016-07-16 19:08:49 +03:00
mrcheko
b4e94e2aae
Merge remote-tracking branch 'upstream/master' into pathfinding
...
# Conflicts:
# apps/openmw/mwmechanics/aipackage.cpp
# apps/openmw/mwmechanics/aipackage.hpp
2016-07-12 00:45:01 +03:00
Allofich
c57d177f1c
Trim unneeded code
2016-07-12 04:17:08 +09: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
mrcheko
0793e4a80e
refactor pathfinding code in AiWander: use AiPackage::pathTo, reuse AiPackage::ObstacleCheck
2016-07-05 21:38:41 +03:00
Allofich
b1be3596dc
Cleanup of #include statements
2016-06-18 10:56:28 +09:00
Allofich
065d6a391d
Don't repeat sequences of only one non-wander AI
2016-06-06 04:12:49 +09:00
Allofich
bce66c629a
Change editor-placed AI packages to cycle
2016-05-29 17:34:40 +09:00
scrawl
c4d38bb42d
Fix clang analyzer warnings
2016-02-16 19:17:04 +01:00
scrawl
d3b76b7006
Don't stack Ai packages ( Fixes #3101 , Fixes #3080 , Fixes #2697 )
2016-02-02 22:20:56 +01:00
mrcheko
bcb1f4ed05
refactor AiCombat: remove all pathfinding code, adopt new version of
...
AiPackage::pathTo;
fix couple of warnings;
2016-01-03 15:33:52 +03:00
mrcheko
b960b0af93
rewrite pathTo for clearer logic; reapply Scrawl's aifollow threshold
2016-01-01 16:41:45 +03: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
scrawl
53f4b92426
AiEscort do not follow target through doors
...
Testing revealed a problem where the guard on the prison ship would incorrectly follow the player outside. Upon further investigation in vanilla MW, it appears that with AiEscort the actor only follows the target through doors once the AiEscort package has completed, *and* no new AI package is running yet.
2015-12-19 15:15:44 +01:00
scrawl
965bea45c0
AiEscort makes the actor side with target in fights (Bug #2697 )
...
Also will follow the player through teleport doors.
2015-12-06 23:38:51 +01:00
scrawl
8459a79a2c
Fix AI being able to open locked doors ( Fixes #2948 )
2015-10-13 19:05:17 +02:00
dteviot
0feae19140
AiCombat use evadeObstacles() from AiPackage.
2015-09-14 19:57:22 +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
6f97187bb6
Fix travis warning about no newline at end of file.
2015-09-10 22:26:33 +12:00
dteviot
573a14993a
Moved isActorNearInactiveCell() logic to own function.
...
Also, triggers when actor is near edge of cell, not when less than 1/2 way to edge.
2015-09-10 21:53:31 +12:00
dteviot
f2c9b9351f
Try going right and left to "unstick" actor.
2015-08-30 10:06:09 +12:00
dteviot
31d82b6b0c
Unifiy evadeObstacles() logic between AiWander and AiPackage
...
Can't use same code, but logic is now same.
2015-08-30 08:32:47 +12:00
dteviot
f59e918a3b
removed useless code.
...
zTurn ignores turns < 0.0087 radians.
2015-08-29 17:34:33 +12:00
dteviot
0677799839
movement logic in AiPackage uses ObstacleCheck.
2015-08-29 17:21:18 +12:00
dteviot
77a1d947cc
extracted MWMechanics::getPlayer()
2015-08-21 21:12:39 +12:00
dteviot
55e3aaaa35
made variable const.
2015-08-10 20:30:43 +12:00
dteviot
0884a3796f
extracted function isTargetMagicallyHidden().
2015-08-09 14:20:55 +12:00
scrawl
278076e609
Include cleanup
2015-07-25 04:14:22 +02: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
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
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
dteviot
6d7e6cd30c
AiTravel logic merged into AiPackage.
2015-06-11 18:28:31 +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
f3d4b63aaf
Fix AI moving load doors and throw an exception when trying to do this ( Fixes #1907 )
2014-09-11 05:53:56 +02:00
scrawl
0077296c91
Take actor's speed into account in stuck check
...
The Winged Twilight's walking animation was so slow that it incorrectly detects being stuck.
2014-07-28 15:57:16 +02:00
scrawl
a54ac579a5
Savegame: Store AiSequence
2014-06-13 02:26:52 +02:00
scrawl
039398c8ae
Basic RefData and CellRef change tracking
...
Wrapped item charge handling in getItemHealth function
2014-05-25 14:30:07 +02:00
Thomas
d2aada95b4
Fixed AiPursue by fixing underlying issue is Pathto()
2014-05-14 14:11:34 -04:00
Thomas
cbcf0f6039
Changed AiEScort to use new PathTo function
2014-05-14 01:44:11 -04:00
Thomas
7cd4c93fa4
Changed getNearbyDoor to use MWWorld::Ptr
2014-05-13 23:46:00 -04:00
Thomas
58bf7624be
Made code a bit more efficient
2014-05-13 21:52:05 -04:00
Thomas
203ef580cf
Fixed moving activatable object being incorrectly activated.
2014-05-13 20:32:29 -04:00
Thomas
2db3c89a9e
Ensures destination is far enough to care about getting stuck
2014-05-13 04:09:21 -04:00
Thomas
cbfa282f8d
Changed implementations of aifollow/pursue/activate slightly, added ability for NPCs to go through unlocked doors (They even try locked ones), and step back from opening doors (Although it still needs some work)
...
Notes - When the door hits them while it's about to finish closing they will try to walk through the door.
- Considerably more works is needed in making the NPC work out troublesome areas where they get stuck
2014-05-13 03:58:32 -04:00
Thomas
2c74ea381e
Moved pathfinding code to aiPackage, implemented it's use with aiFollow and aiPursue
2014-05-12 21:05:32 -04:00
Marc Zinnschlag
345eec1135
Issue #389 : added AI package base class and AI packages management class
2012-09-04 13:25:53 +02:00