[Scummvm-git-logs] scummvm master -> 7d14ba7c02130b45ffe147c889f09c4e2839aa39
Strangerke
noreply at scummvm.org
Tue Jul 15 21:06:41 UTC 2025
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
7d14ba7c02 M4: RIDDLE: Workaround for bug #16107 - Reordering the logic slightly fixes the death scene in all cases
Commit: 7d14ba7c02130b45ffe147c889f09c4e2839aa39
https://github.com/scummvm/scummvm/commit/7d14ba7c02130b45ffe147c889f09c4e2839aa39
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2025-07-15T22:06:19+01:00
Commit Message:
M4: RIDDLE: Workaround for bug #16107 - Reordering the logic slightly fixes the death scene in all cases
Changed paths:
engines/m4/riddle/rooms/section3/room304.cpp
engines/m4/riddle/rooms/section3/room304.h
diff --git a/engines/m4/riddle/rooms/section3/room304.cpp b/engines/m4/riddle/rooms/section3/room304.cpp
index 466a0a8d9d7..58fead886c0 100644
--- a/engines/m4/riddle/rooms/section3/room304.cpp
+++ b/engines/m4/riddle/rooms/section3/room304.cpp
@@ -96,7 +96,7 @@ void Room304::init() {
player_set_commands_allowed(false);
_useSword = _useHandlingStick = false;
- _val4 = 0;
+ _cobraKillingFl = false;
ws_demand_location(_G(my_walker), 452, 285, 9);
kernel_timing_trigger(1, 49);
_trunk = series_show_sprite("one frame trunk", 0, 0);
@@ -208,43 +208,26 @@ void Room304::parser() {
const bool takeFlag = player_said("take");
const bool useFlag = player_said_any("push", "pull", "gear", "open", "close");
- if (lookFlag && player_said("cartoon")) {
- if (_G(flags)[V001]) {
- digi_play("304r13", 1);
-
- } else {
- hotspot_hide_all();
- interface_hide();
- intr_cancel_sentence();
- hotspot_add_dynamic("x", " ", 0, 0, 1500, 374, 0);
-
- _closeCartoonFl = true;
- _cartoonMach = series_show_sprite(_G(flags)[V000] ? "394pu99" : "304pu99", 0, 0);
- digi_play("304r59", 1);
- }
- } else if (_G(kernel).trigger == 749) {
- midi_stop();
- } else if (_G(flags)[V001] && _val4
- && _G(kernel).trigger >= 49 && _G(kernel).trigger <= 54) {
+ if (_G(flags)[V001] && _cobraKillingFl && _G(kernel).trigger >= 49 && _G(kernel).trigger <= 54) {
switch (_G(kernel).trigger) {
case 49:
ws_hide_walker();
_cobraKills = series_ranged_play("COBRA KILLS RIP AND LF",
- 1, 0, 1, 4, 100, 0x200, 5, 50);
+ 1, 0, 1, 4, 100, 0x200, 5, 50);
break;
case 50:
_cobraKills = series_ranged_play("COBRA KILLS RIP AND LF",
- 1, 0, 5, 19, 100, 0x200, 5, 51);
+ 1, 0, 5, 19, 100, 0x200, 5, 51);
digi_play("304_s07", 1);
break;
case 51:
_cobraKills = series_ranged_play("COBRA KILLS RIP AND LF",
- 1, 0, 20, 41, 100, 0x200, 5, 54);
+ 1, 0, 20, 41, 100, 0x200, 5, 54);
digi_play("304_s07", 1);
break;
case 52:
_cobraKills = series_ranged_play("COBRA KILLS RIP AND LF",
- 1, 0, 51, 51, 100, 0x200, 3000, -1);
+ 1, 0, 51, 51, 100, 0x200, 3000, -1);
disable_player_commands_and_fade_init(-1);
midi_fade_volume(0, 120);
kernel_timing_trigger(120, 53);
@@ -255,12 +238,28 @@ void Room304::parser() {
break;
case 54:
_cobraKills = series_ranged_play("COBRA KILLS RIP AND LF",
- 1, 0, 42, 51, 100, 0x200, 5, 52);
+ 1, 0, 42, 51, 100, 0x200, 5, 52);
digi_play("304_s12", 2);
break;
default:
break;
}
+ } else if (lookFlag && player_said("cartoon")) {
+ if (_G(flags)[V001]) {
+ digi_play("304r13", 1);
+
+ } else {
+ hotspot_hide_all();
+ interface_hide();
+ intr_cancel_sentence();
+ hotspot_add_dynamic("x", " ", 0, 0, 1500, 374, 0);
+
+ _closeCartoonFl = true;
+ _cartoonMach = series_show_sprite(_G(flags)[V000] ? "394pu99" : "304pu99", 0, 0);
+ digi_play("304r59", 1);
+ }
+ } else if (_G(kernel).trigger == 749) {
+ midi_stop();
} else if (_G(flags)[V001] && (takeFlag || useFlag) && player_said("samurai sword")) {
if (_G(flags)[V001]) {
switch (_G(kernel).trigger) {
@@ -430,7 +429,7 @@ void Room304::intrMsg(frac16 myMessage, struct machine *sender) {
_G(kernel).trigger_mode = oldMode;
digi_play("304_s06", 1);
- r->_val4 = 1;
+ r->_cobraKillingFl = true;
sendWSMessage(0x200000, 0, r->_mei, 0, nullptr, 1);
return;
}
diff --git a/engines/m4/riddle/rooms/section3/room304.h b/engines/m4/riddle/rooms/section3/room304.h
index 4494896b75b..11a997e7f49 100644
--- a/engines/m4/riddle/rooms/section3/room304.h
+++ b/engines/m4/riddle/rooms/section3/room304.h
@@ -34,7 +34,7 @@ private:
int _val1 = 0;
bool _useSword = false;
bool _useHandlingStick = false;
- int _val4 = 0;
+ bool _cobraKillingFl = false;
machine *_sword = nullptr;
machine *_trunk = nullptr;
machine *_stick = nullptr;
More information about the Scummvm-git-logs
mailing list