aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2006-03-14 13:16:11 +0000
committerTravis Howell2006-03-14 13:16:11 +0000
commit4f10a71b98d31c1ba7e3d94065f06a6276a2cbc8 (patch)
treeade3995aa83f29e265e1a1d73df276ed78c4d686
parent53c5b8cf477dc4296fa2cf73d03a84ac8b97698f (diff)
downloadscummvm-rg350-4f10a71b98d31c1ba7e3d94065f06a6276a2cbc8.tar.gz
scummvm-rg350-4f10a71b98d31c1ba7e3d94065f06a6276a2cbc8.tar.bz2
scummvm-rg350-4f10a71b98d31c1ba7e3d94065f06a6276a2cbc8.zip
An actor is completely reset by showActor() in SCUMM1-2 games. Fixes bug #902391
svn-id: r21283
-rw-r--r--engines/scumm/actor.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/engines/scumm/actor.cpp b/engines/scumm/actor.cpp
index eaf9a89da2..8319c61a80 100644
--- a/engines/scumm/actor.cpp
+++ b/engines/scumm/actor.cpp
@@ -810,19 +810,18 @@ void Actor::showActor() {
_vm->ensureResourceLoaded(rtCostume, _costume);
- if (_costumeNeedsInit) {
+ if (_vm->_game.version <= 2) {
+ _cost.reset();
+ startAnimActor(_standFrame);
startAnimActor(_initFrame);
- if (_vm->_game.version <= 2) {
- startAnimActor(_standFrame);
- startAnimActor(_talkStopFrame);
+ startAnimActor(_talkStopFrame);
+ } else {
+ if (_costumeNeedsInit) {
+ startAnimActor(_initFrame);
+ _costumeNeedsInit = false;
}
- _costumeNeedsInit = false;
}
- // FIXME: Evil hack to work around bug #770717
- if (!_moving && _vm->_game.version <= 2)
- startAnimActor(_standFrame);
-
stopActorMoving();
_visible = true;
_needRedraw = true;