diff options
author | Travis Howell | 2006-03-14 13:16:11 +0000 |
---|---|---|
committer | Travis Howell | 2006-03-14 13:16:11 +0000 |
commit | 4f10a71b98d31c1ba7e3d94065f06a6276a2cbc8 (patch) | |
tree | ade3995aa83f29e265e1a1d73df276ed78c4d686 | |
parent | 53c5b8cf477dc4296fa2cf73d03a84ac8b97698f (diff) | |
download | scummvm-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.cpp | 17 |
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; |