[Scummvm-git-logs] scummvm master -> c69d83b63830dcabf8c748e411553af2ee7c924f
bluegr
noreply at scummvm.org
Sat Apr 23 12:16:33 UTC 2022
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
8531668db9 SCUMM: Fix glitch when Bruno flees Bumpusville (bug #3832)
c69d83b638 SCUMM: Move the #3832 workaround from o6_setState() to o6_animateActor()
Commit: 8531668db9fb0bd7732ad51d435312c06ac96231
https://github.com/scummvm/scummvm/commit/8531668db9fb0bd7732ad51d435312c06ac96231
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2022-04-23T15:16:28+03:00
Commit Message:
SCUMM: Fix glitch when Bruno flees Bumpusville (bug #3832)
When Bruno and Trixie leave Bumpusville, a new actor is used for their
escape animation, but the original script never removes this actor from the
scene, so some parts of Bruno can still be seen on the wall when the door
closes. So we force the removal of this actor just before that.
Changed paths:
engines/scumm/script_v6.cpp
diff --git a/engines/scumm/script_v6.cpp b/engines/scumm/script_v6.cpp
index 6402f52301a..fa0dd0c010e 100644
--- a/engines/scumm/script_v6.cpp
+++ b/engines/scumm/script_v6.cpp
@@ -1032,6 +1032,17 @@ 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)
Commit: c69d83b63830dcabf8c748e411553af2ee7c924f
https://github.com/scummvm/scummvm/commit/c69d83b63830dcabf8c748e411553af2ee7c924f
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2022-04-23T15:16:28+03:00
Commit Message:
SCUMM: Move the #3832 workaround from o6_setState() to o6_animateActor()
Changed paths:
engines/scumm/script_v6.cpp
diff --git a/engines/scumm/script_v6.cpp b/engines/scumm/script_v6.cpp
index fa0dd0c010e..09407dddcd1 100644
--- a/engines/scumm/script_v6.cpp
+++ b/engines/scumm/script_v6.cpp
@@ -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);
}
More information about the Scummvm-git-logs
mailing list