Commit Graph

43 Commits (00997fa7327293db6075d47d18bd36516537ba44)

Author SHA1 Message Date
psi29a f90a049702 Merge branch 'movement_refactoring' into 'master'
Refactoring related to "smooth movement"

See merge request OpenMW/openmw!285

(cherry picked from commit 6eaf0a389d5aed3b74ab1a7cf89574612f964bdf)

e847b4c8 Split getSpeed() to getMaxSpeed() and getCurrentSpeed()
a96c46bc Refactor calculation of movement.mSpeedFactor
03ee9090 Use getMaxSpeed instead of getCurrentSpeed where it makes sense.
a178af5c Create helper functions `normalizeAngle` and `rotateVec2f`
4 years ago
Andrei Kortunov e6036e13b9 Use more C++11 loops in game mechanics code 5 years ago
elsid 0c92a567af
Use distance to position since last normal state in obstacle checker 5 years ago
elsid e323e6e7e6
Consider moved distance in direction to destination for obstacle check
Assume actor is stuck when it's not able to move in the destination
direction with maximum speed. Approach to check moved distance from the
previous point doesn't work good for slow and big actors. When they face
obstacle they're trying to move along with oscillation so check is
passing but they don't get any closer to the destination.
5 years ago
Andrei Kortunov d0643d266a Do not use fallthrough in switches 5 years ago
elsid 16170131b7
Add enum type for door state 5 years ago
elsid ad05de44ae
Use 3d coordinates to detect stuck
To able water and flying creatures move to player going up or down.
5 years ago
elsid 7b94183d83
Revert "Take in account actor half extents for obstacle check"
This reverts commit 5434e92437.
5 years ago
elsid 5434e92437
Take in account actor half extents for obstacle check 6 years ago
elsid 1e8bf3846e
Remove unused argument 6 years ago
Andrei Kortunov 3032b177a1 Remove redundant includes 6 years ago
elsid f9c651bdf3
Add const 6 years ago
elsid c9f3064cbd
Update ObstacleCheck once per frame 6 years ago
Andrei Kortunov 81b78a82e8 AI: try to open doors every AI_REACTION_TIME seconds (bug #4454) 7 years ago
Andrei Kortunov 10eb6ec75f AI: Check angle between actor and door 8 years ago
Andrei Kortunov 37952c9a79 Added door detection based by ray casting 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 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
mrcheko 0793e4a80e refactor pathfinding code in AiWander: use AiPackage::pathTo, reuse AiPackage::ObstacleCheck 9 years ago
Austin Salgat fc03216d48 Refactor to reuse existing obstacle detection 9 years ago
scrawl a97eae864d Fix the ObstacleCheck time step (Fixes #3211) 9 years ago
scrawl 1875aa4a18 Restore getNearbyDoor 9 years ago
scrawl 0975f60d59 Stub out CellStore::get<T> accessors in preparation of reference movement between cells 9 years ago
scrawl 6405049add Rotations: move doors via Rotation rather than LocalRotation
Now LocalRotation is unneeded, will remove in next commit.
9 years ago
scrawl 3c338b9da9 ObstacleCheck: tweak the stuck detection parameters
The netch_betty wander animation starts up so slowly that the creature thought it was stuck, even though it's not.
9 years ago
scrawl d233bc483d ObstacleCheck: fix evasion issue
The check if (samePosition... would not work as intended because actors do not move in every frame when the framerate is higher than the physics framerate. In that case the actor would change its evasion direction almost every frame.
9 years ago
scrawl caa523a959 ObstacleCheck: fix the framerate not being taken into account 9 years ago
scrawl 801dc8eee3 ObstacleCheck: fix weird distance calculation 9 years ago
dteviot 60d0ad9283 When stuck, try moving backwards as well as to side. 9 years ago
dteviot f2c9b9351f Try going right and left to "unstick" actor. 9 years ago
scrawl 278076e609 Include cleanup 10 years ago
scrawl 4bb3cbf0fb Remove last remains of Ogre 10 years ago
scrawl b70383d127 Remove last remains of Ogre math 10 years ago
Rohit Nirmal 396fba7fa9 Silence -Wreorder warnings, and remove -Wno-reorder. 10 years ago
scrawl f35c9b7a69 Clang warning fixes (thanks hemite) 10 years ago
scrawl 039398c8ae Basic RefData and CellRef change tracking
Wrapped item charge handling in getItemHealth function
11 years ago
Thomas 7cd4c93fa4 Changed getNearbyDoor to use MWWorld::Ptr 11 years ago
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
11 years ago
cc9cii e17fab891d Suppress travis warning and one more tweak. 11 years ago
cc9cii 479a94b35d Backing off closed doors working, needs cleanup and tweaking. 11 years ago
cc9cii c652cb1568 More cleaning up. 11 years ago
cc9cii d3be725ee7 Actors are moved on if idling near a closed interior door. Unreachable pathgrid points due to a closed door are removed from the allowed set of points. 11 years ago