[Scummvm-git-logs] scummvm master -> 87ec0e0b40b15e41013f80e5a45a6dd4002f5548
dreammaster
noreply at scummvm.org
Thu Feb 22 03:31:33 UTC 2024
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
87ec0e0b40 M4: Fix softlock for savegames done when satelitte dish moved
Commit: 87ec0e0b40b15e41013f80e5a45a6dd4002f5548
https://github.com/scummvm/scummvm/commit/87ec0e0b40b15e41013f80e5a45a6dd4002f5548
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-02-21T19:31:25-08:00
Commit Message:
M4: Fix softlock for savegames done when satelitte dish moved
Changed paths:
engines/m4/burger/flags.cpp
engines/m4/burger/flags.h
engines/m4/burger/rooms/section1/room103.cpp
engines/m4/riddle/flags.h
diff --git a/engines/m4/burger/flags.cpp b/engines/m4/burger/flags.cpp
index 6892ab4885a..bfdd6c5d6e5 100644
--- a/engines/m4/burger/flags.cpp
+++ b/engines/m4/burger/flags.cpp
@@ -169,7 +169,7 @@ void Flags::reset1() {
(*this)[V017] = 0;
(*this)[V018] = 0;
(*this)[V019] = 0;
- (*this)[V023] = 0;
+ (*this)[kHarryComingToRoof] = 0;
(*this)[WAKE_UP_STOLIE_COUNT] = 0;
(*this)[V028] = 0;
(*this)[V031] = 0;
diff --git a/engines/m4/burger/flags.h b/engines/m4/burger/flags.h
index 2bf1be4a15e..38b9b6e28ff 100644
--- a/engines/m4/burger/flags.h
+++ b/engines/m4/burger/flags.h
@@ -55,7 +55,7 @@ enum {
V020 = 20,
V021 = 21,
V022 = 22,
- V023 = 23,
+ kHarryComingToRoof = 23,
V024 = 24,
V025 = 25,
V026 = 26,
diff --git a/engines/m4/burger/rooms/section1/room103.cpp b/engines/m4/burger/rooms/section1/room103.cpp
index 74b069864d6..0e528f9d93e 100644
--- a/engines/m4/burger/rooms/section1/room103.cpp
+++ b/engines/m4/burger/rooms/section1/room103.cpp
@@ -126,6 +126,9 @@ void Room103::init() {
switch (_G(game).previous_room) {
case KERNEL_RESTORING_GAME:
+ // WORKAROUND: If you save a game after moving the satellite dish, but before Harry arrives,
+ // restoring the save wouldn't have Harry arrive, and you'd softlock trying to leave the roof
+ _G(flags)[kHarryComingToRoof] = 0;
break;
case 101:
@@ -145,7 +148,7 @@ void Room103::init() {
break;
}
- if (_G(flags)[V023]) {
+ if (_G(flags)[kHarryComingToRoof]) {
_series1 = series_play("103wi06", 0x500, 0, -1, 100, -1, 100, 0, 0, 0, 0);
} else {
_series1 = series_play("103wi05", 0x500, 0, -1, 100, -1, 100, 0, 0, 0, 0);
@@ -229,7 +232,7 @@ void Room103::daemon() {
break;
case 7:
- _G(flags)[V023] = 0;
+ _G(flags)[kHarryComingToRoof] = 0;
_G(flags)[GLB_TEMP_3] = _G(flags).get_boonsville_time_and_display() + 1800;
_G(flags)[V012] = 2;
pal_fade_init(_G(kernel).first_fade, 255, 0, 30, 1001);
@@ -460,7 +463,7 @@ void Room103::daemon() {
wilbur_speech("103w003", 15);
}
- _G(flags)[V023] = 1;
+ _G(flags)[kHarryComingToRoof] = 1;
_G(flags)[V024] = 1;
_flag1 = true;
_val7 = 0;
@@ -477,7 +480,7 @@ void Room103::daemon() {
break;
case 17:
- _G(flags)[V023] = 0;
+ _G(flags)[kHarryComingToRoof] = 0;
_G(wilbur_should) = 6;
_G(flags)[kDisableFootsteps] = 0;
ws_walk(325, 173, 0, 10016);
@@ -611,7 +614,7 @@ void Room103::daemon() {
case 8:
_val2 = 2;
- if (!_G(flags)[V023])
+ if (!_G(flags)[kHarryComingToRoof])
pal_fade_init(_G(kernel).first_fade, 255, 0, 30, 1001);
break;
@@ -639,7 +642,7 @@ void Room103::parser() {
_G(kernel).trigger_mode = KT_DAEMON;
if (!_G(walker).wilbur_said(SAID)) {
- if (player_said("gear", "satellite dish") && _G(flags)[V023] == 0) {
+ if (player_said("gear", "satellite dish") && _G(flags)[kHarryComingToRoof] == 0) {
_G(wilbur_should) = 4;
kernel_trigger_dispatch_now(kCHANGE_WILBUR_ANIMATION);
player_set_commands_allowed(false);
diff --git a/engines/m4/riddle/flags.h b/engines/m4/riddle/flags.h
index c5827542a9e..f10e3adedd2 100644
--- a/engines/m4/riddle/flags.h
+++ b/engines/m4/riddle/flags.h
@@ -55,7 +55,7 @@ enum {
V020 = 20,
V021 = 21,
V022 = 22,
- V023 = 23,
+ kHarryComingToRoof = 23,
V024 = 24,
V025 = 25,
V026 = 26,
More information about the Scummvm-git-logs
mailing list