aboutsummaryrefslogtreecommitdiff
path: root/scumm/actor.cpp
diff options
context:
space:
mode:
authorTravis Howell2004-07-10 23:32:31 +0000
committerTravis Howell2004-07-10 23:32:31 +0000
commitebafa060c65acd1c69f55a62879e5dfb050a2527 (patch)
treee1f34b44b057c82d043df97c971daede557e9edc /scumm/actor.cpp
parent32335f0ea11f95ef54d2b18418fdafb01bd6d33c (diff)
downloadscummvm-rg350-ebafa060c65acd1c69f55a62879e5dfb050a2527.tar.gz
scummvm-rg350-ebafa060c65acd1c69f55a62879e5dfb050a2527.tar.bz2
scummvm-rg350-ebafa060c65acd1c69f55a62879e5dfb050a2527.zip
Always stop actor walkscript when required.
svn-id: r14184
Diffstat (limited to 'scumm/actor.cpp')
-rw-r--r--scumm/actor.cpp18
1 files changed, 6 insertions, 12 deletions
diff --git a/scumm/actor.cpp b/scumm/actor.cpp
index 60d577daee..0925f193b2 100644
--- a/scumm/actor.cpp
+++ b/scumm/actor.cpp
@@ -94,9 +94,7 @@ void Actor::initActor(int mode) {
memset(sound, 0, sizeof(sound));
targetFacing = facing;
- if (walkScript)
- _vm->stopScript(walkScript);
- moving = 0;
+ stopActorMoving();
shadow_mode = 0;
layer = 0;
@@ -138,10 +136,9 @@ void Actor::initActor(int mode) {
}
void Actor::stopActorMoving() {
- if (walkScript)
+ if (_vm->_version >= 7)
_vm->stopScript(walkScript);
moving = 0;
- startAnimActor(standFrame);
}
void Actor::setActorWalkSpeed(uint newSpeedX, uint newSpeedY) {
@@ -593,8 +590,8 @@ void Actor::putActor(int dstX, int dstY, byte newRoom) {
if (visible) {
if (isInCurrentRoom()) {
if (moving) {
+ stopActorMoving();
startAnimActor(standFrame);
- moving = 0;
}
adjustActorPos();
} else {
@@ -708,12 +705,9 @@ void Actor::adjustActorPos() {
walkdata.dest.x = -1;
- moving = 0;
+ stopActorMoving();
cost.soundCounter = 0;
- if (walkScript)
- _vm->stopScript(walkScript);
-
if (walkbox != kInvalidBox) {
byte flags = _vm->getBoxFlags(walkbox);
if (flags & 7) {
@@ -755,8 +749,8 @@ void Actor::hideActor() {
return;
if (moving) {
+ stopActorMoving();
startAnimActor(standFrame);
- moving = 0;
}
visible = false;
cost.soundCounter = 0;
@@ -785,7 +779,7 @@ void Actor::showActor() {
if (!moving && _vm->_version <= 2)
startAnimActor(standFrame);
- moving = 0;
+ stopActorMoving();
visible = true;
needRedraw = true;
}