SCUMM: Move the #3832 workaround from o6_setState() to o6_animateActor()

This commit is contained in:
Donovan Watteau 2022-04-22 18:49:42 +02:00 committed by Filippos Karapetis
parent 8531668db9
commit c69d83b638

View file

@ -1032,17 +1032,6 @@ void ScummEngine_v6::o6_setState() {
int state = pop();
int obj = pop();
// WORKAROUND for bug #3832: parts of Bruno are left on the screen when he
// escapes Bumpusville with Trixie. Bruno (act. 11) and Trixie (act. 12) are
// properly removed from the scene by the script, but not the combined actor
// which is used by this animation (act. 6). Fix this before the door gets closed.
if (_game.id == GID_SAMNMAX && _roomResource == 47 && vm.slot[_currentScript].number == 202 &&
obj == 451 && state == 0 && _enableEnhancements) {
Actor *a = derefActorSafe(6, "o6_setState");
if (a)
a->putActor(0, 0, 0);
}
putState(obj, state);
markObjectRectAsDirty(obj);
if (_bgNeedsRedraw)
@ -1274,6 +1263,17 @@ void ScummEngine_v6::o6_animateActor() {
stopTalk();
}
}
if (_game.id == GID_SAMNMAX && _roomResource == 47 && vm.slot[_currentScript].number == 202 &&
act == 2 && anim == 249 && _enableEnhancements) {
// WORKAROUND for bug #3832: parts of Bruno are left on the screen when he
// escapes Bumpusville with Trixie. Bruno (act. 11) and Trixie (act. 12) are
// properly removed from the scene by the script, but not the combined actor
// which is used by this animation (act. 6).
Actor *a = derefActorSafe(6, "o6_animateActor");
if (a && a->_costume == 243)
a->putActor(0, 0, 0);
}
Actor *a = derefActor(act, "o6_animateActor");
a->animateActor(anim);
}