SCUMM: (ZAK/TOWNS) - fix bug no. 4594 and 4601

4594: "Zak keeps walk animation without moving"

4601: "SCUMM: Zak McKracken (FM-Towns) - shopkeeper keeps walking"

Bug 4594 also happens with the original ZAK FM-TOWNS interpreter (unlike SCUMM1/2). I have added a workaround similiar to PR #2991.

Bug 4601 does not happen with the original, although it seems to have the exaxct same cause and is also fixed by this workaround. So I have stopped exploring this one for now.

I have limited the workaround to ZAK, since the bug reports are all from that game. To me, it looks like an oversight when converting the original SCUMM1/2 scripts to SCUMM3.
This commit is contained in:
athrxx 2021-06-06 00:45:08 +02:00
parent a408f44c1b
commit fa48015bbd

View File

@ -1188,10 +1188,19 @@ void Actor_v3::walkActor() {
if (_moving & MF_TURN) {
new_dir = updateActorDirection(false);
if (_facing != new_dir)
if (_facing != new_dir) {
setDirection(new_dir);
else
} else {
// WORKAROUND for bug #4594 ("SCUMM: Zak McKracken - Zak keeps walk animation without moving")
// This bug also happens with the original SCUMM3 (ZAK FM-TOWNS) interpreter (unlike SCUMM1/2
// where the actors are apparently supposed to continue walking after being turned). We have
// to stop the walking animation here...
// This also fixes bug #4601 ("SCUMM: Zak McKracken (FM-Towns) - shopkeeper keeps walking"),
// although that one does not happen with the original interpreter.
if (_vm->_game.id == GID_ZAK && _moving == MF_TURN)
startAnimActor(_standFrame);
_moving = 0;
}
return;
}