diff options
author | Peter Kohaut | 2019-02-01 00:01:22 +0100 |
---|---|---|
committer | Peter Kohaut | 2019-02-02 00:50:16 +0100 |
commit | cd43b7a11a327327635d458571fc8b1ad05ffc76 (patch) | |
tree | 440d51391a67b7c52e085e01b1355d82261add1a /engines/bladerunner/actor_walk.cpp | |
parent | 688db9394c1ba43c7d48d52ebba5b7b467f8186c (diff) | |
download | scummvm-rg350-cd43b7a11a327327635d458571fc8b1ad05ffc76.tar.gz scummvm-rg350-cd43b7a11a327327635d458571fc8b1ad05ffc76.tar.bz2 scummvm-rg350-cd43b7a11a327327635d458571fc8b1ad05ffc76.zip |
BLADERUNNER: Cleanup of walking code
Fixed missing "must reach" in a actorwalk::tick
Diffstat (limited to 'engines/bladerunner/actor_walk.cpp')
-rw-r--r-- | engines/bladerunner/actor_walk.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/engines/bladerunner/actor_walk.cpp b/engines/bladerunner/actor_walk.cpp index 985c92fb8d..25daef0795 100644 --- a/engines/bladerunner/actor_walk.cpp +++ b/engines/bladerunner/actor_walk.cpp @@ -48,7 +48,7 @@ ActorWalk::ActorWalk(BladeRunnerEngine *vm) { ActorWalk::~ActorWalk() {} -bool ActorWalk::setup(int actorId, bool runFlag, const Vector3 &from, const Vector3 &to, bool unk1, bool *arrived) { +bool ActorWalk::setup(int actorId, bool runFlag, const Vector3 &from, const Vector3 &to, bool mustReach, bool *arrived) { Vector3 next; *arrived = false; @@ -108,11 +108,11 @@ bool ActorWalk::setup(int actorId, bool runFlag, const Vector3 &from, const Vect return true; } -bool ActorWalk::tick(int actorId, float stepDistance, bool inWalkLoop) { +bool ActorWalk::tick(int actorId, float stepDistance, bool mustReachWalkDestination) { bool walkboxFound; if (_status == 5) { - if (inWalkLoop) { + if (mustReachWalkDestination) { stop(actorId, true, kAnimationModeCombatIdle, kAnimationModeIdle); return true; } @@ -128,18 +128,18 @@ bool ActorWalk::tick(int actorId, float stepDistance, bool inWalkLoop) { nearActorExists = true; if (_vm->_sceneObjects->existsOnXZ(actorId + kSceneObjectOffsetActors, _destination.x, _destination.z, true, true)) { if (actorId > 0) { - if (_vm->_actors[actorId]->inWalkLoop()) { + if (_vm->_actors[actorId]->mustReachWalkDestination()) { stop(actorId, true, kAnimationModeCombatIdle, kAnimationModeIdle); _nearActors.clear(); return true; } else { Vector3 newDestination; - findNearestEmptyPositionToOriginalDestination(actorId, newDestination); + findEmptyPositionAroundToOriginalDestination(actorId, newDestination); _destination = newDestination; return false; } } else { - if (_vm->_playerActor->inWalkLoop()) { + if (_vm->_playerActor->mustReachWalkDestination()) { _destination = _current; } stop(0, true, kAnimationModeCombatIdle, kAnimationModeIdle); @@ -284,7 +284,7 @@ void ActorWalk::load(SaveFileReadStream &f) { _status = f.readInt(); } -bool ActorWalk::isXYZEmpty(float x, float y, float z, int actorId) const { +bool ActorWalk::isXYZOccupied(float x, float y, float z, int actorId) const { if (_vm->_scene->_set->findWalkbox(x, z) == -1) { return true; } @@ -294,7 +294,7 @@ bool ActorWalk::isXYZEmpty(float x, float y, float z, int actorId) const { return _vm->_sceneObjects->existsOnXZ(actorId + kSceneObjectOffsetActors, x, z, false, false); } -bool ActorWalk::findNearestEmptyPosition(int actorId, const Vector3 &destination, int dist, Vector3 &out) const { +bool ActorWalk::findEmptyPositionAround(int actorId, const Vector3 &destination, int dist, Vector3 &out) const { bool inWalkbox; int facingToMinDistance = -1; @@ -328,7 +328,7 @@ bool ActorWalk::findNearestEmptyPosition(int actorId, const Vector3 &destination break; } - x = destination.x + _vm->_sinTable1024->at(facingLeft) * dist; + x = destination.x + _vm->_sinTable1024->at(facingLeft) * dist; z = destination.z - _vm->_cosTable1024->at(facingLeft) * dist; if (!_vm->_sceneObjects->existsOnXZ(actorId + kSceneObjectOffsetActors, x, z, true, true) && _vm->_scene->_set->findWalkbox(x, z) >= 0) { @@ -356,8 +356,8 @@ bool ActorWalk::findNearestEmptyPosition(int actorId, const Vector3 &destination return false; } -bool ActorWalk::findNearestEmptyPositionToOriginalDestination(int actorId, Vector3 &out) const { - return findNearestEmptyPosition(actorId, _originalDestination, 30, out); +bool ActorWalk::findEmptyPositionAroundToOriginalDestination(int actorId, Vector3 &out) const { + return findEmptyPositionAround(actorId, _originalDestination, 30, out); } bool ActorWalk::addNearActors(int skipActorId) { |