[Scummvm-git-logs] scummvm master -> 789471061fa57b59280e9ee4bc9dd9018e624ac8
Strangerke
noreply at scummvm.org
Tue Jan 20 22:06:24 UTC 2026
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:
789471061f M4: RIDDLE: Fix for #16465 - This fixes this bug, as well as 4 others (!!) related to the bell
Commit: 789471061fa57b59280e9ee4bc9dd9018e624ac8
https://github.com/scummvm/scummvm/commit/789471061fa57b59280e9ee4bc9dd9018e624ac8
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2026-01-20T23:05:56+01:00
Commit Message:
M4: RIDDLE: Fix for #16465 - This fixes this bug, as well as 4 others (!!) related to the bell
Changed paths:
engines/m4/riddle/rooms/section4/room403.cpp
diff --git a/engines/m4/riddle/rooms/section4/room403.cpp b/engines/m4/riddle/rooms/section4/room403.cpp
index b876f2811c5..110aca1b782 100644
--- a/engines/m4/riddle/rooms/section4/room403.cpp
+++ b/engines/m4/riddle/rooms/section4/room403.cpp
@@ -152,7 +152,7 @@ void Room403::init() {
_ripTalkPay = series_load("RIP TALK PAY LOOP");
_wolfEdger = series_load("WOLF EDGER LOOP");
- _wolfie = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x300, 0,
+ _wolfie = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x300, false,
triggerMachineByHashCallback, "WOLFIE");
if (_val12) {
@@ -169,7 +169,7 @@ void Room403::init() {
if (_ladderMode) {
ws_demand_facing(_G(my_walker), 11);
ws_hide_walker();
- _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
triggerMachineByHashCallback, "RIP on ladder/plank");
switch (_ladderMode) {
@@ -236,7 +236,7 @@ void Room403::init() {
_ripTalkPay = series_load("RIP TALK PAY LOOP");
_wolfEdger = series_load("WOLF EDGER LOOP");
- _wolfie = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x300, 0,
+ _wolfie = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x300, false,
triggerMachineByHashCallback, "WOLFIE");
sendWSMessage_10000(1, _wolfie, _wolfEdger, 1, 6, 110,
_wolfEdger, 6, 6, 0);
@@ -297,7 +297,7 @@ void Room403::daemon() {
ws_hide_walker();
player_set_commands_allowed(false);
- _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
triggerMachineByHashCallback, "rip takes wolf");
_ripTalksWolf = TriggerMachineByHash(1, 1, 0, 0, 0, 0,
_G(player_info).x, _G(player_info).y, _G(player_info).scale, 0xf00, 0,
@@ -399,7 +399,7 @@ void Room403::daemon() {
_ripClimbsLadder = series_load("RIPLEY CLIMBS LADDER");
ws_hide_walker();
- _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
triggerMachineByHashCallback, "RIP climbs ladder");
sendWSMessage_10000(1, _ripOnLadder, _ripClimbsLadder, 1, 12, 103,
_ripClimbsLadder, 12, 12, 0);
@@ -528,7 +528,7 @@ void Room403::daemon() {
_ripLegUp = series_load("RIP GETS A LEG UP");
ws_hide_walker();
- _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
triggerMachineByHashCallback, "RIP climbs plank");
sendWSMessage_10000(1, _ripOnLadder, _ripLegUp, 1, 10, 103,
_ripLegUp, 10, 10, 0);
@@ -639,7 +639,7 @@ void Room403::daemon() {
series_unload(_ripTurtle);
_ventClosed = series_show("SPRITE OF VENT CLOSED", 0x600, 16);
- hotspot_set_active("GRATE", 1);
+ hotspot_set_active("GRATE", true);
hotspot_set_active("TURTLE TREAT", false);
_ripleyShould = 1310;
kernel_timing_trigger(1, 103);
@@ -805,7 +805,7 @@ void Room403::daemon() {
case 2230:
terminateMachineAndNull(_wolfie);
- _wolfie = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x300, 0,
+ _wolfie = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x300, false,
triggerMachineByHashCallback, "WOLFIE");
sendWSMessage_10000(1, _wolfie, _wolfTurnHand, 11, 45, 111,
_wolfTurnHand, 45, 45, 0);
@@ -822,7 +822,7 @@ void Room403::daemon() {
break;
case 2232:
- _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
triggerMachineByHashCallback, "rip talks wolf");
player_update_info();
@@ -993,12 +993,12 @@ void Room403::daemon() {
case 200:
player_set_commands_allowed(false);
- _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
triggerMachineByHashCallback, "rip talks wolf");
player_update_info();
_ripTalksWolf = TriggerMachineByHash(1, 1, 0, 0, 0, 0,
- _G(player_info).x, _G(player_info).y, _G(player_info).scale, 0xf00, 0,
+ _G(player_info).x, _G(player_info).y, _G(player_info).scale, 0xf00, false,
triggerMachineByHashCallback, "rip talks wolf SHADOW");
sendWSMessage_10000(1, _ripTalksWolf, _safariShadow, 1, 1, -1,
_safariShadow, 1, 1, 0);
@@ -1047,7 +1047,7 @@ void Room403::daemon() {
case 210:
player_set_commands_allowed(false);
- _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
triggerMachineByHashCallback, "rip talks wolf");
player_update_info();
@@ -1126,7 +1126,7 @@ void Room403::daemon() {
case 220:
player_set_commands_allowed(false);
- _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
triggerMachineByHashCallback, "rip talks wolf");
player_update_info();
@@ -1167,7 +1167,7 @@ void Room403::daemon() {
case 230:
player_set_commands_allowed(false);
- _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
triggerMachineByHashCallback, "rip talks wolf");
player_update_info();
@@ -1274,7 +1274,7 @@ void Room403::daemon() {
case 315:
sendWSMessage_60000(_wolfWalker);
_wolfIndicatesTomb = series_load("WOLF INDICATES TOMB");
- _wolfie = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x900, 0,
+ _wolfie = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x900, false,
triggerMachineByHashCallback, "WOLFIE");
sendWSMessage_10000(1, _wolfie, _wolfIndicatesTomb, 1, 93, -1,
_wolfIndicatesTomb, 93, 93, 0);
@@ -1333,7 +1333,7 @@ void Room403::daemon() {
kernel_timing_trigger(120, 325);
sendWSMessage_60000(_wolfWalker);
sendWSMessage_150000(-1);
- _G(camera_reacts_to_player) = 1;
+ _G(camera_reacts_to_player) = true;
player_set_commands_allowed(true);
break;
@@ -1389,7 +1389,7 @@ void Room403::daemon() {
player_set_commands_allowed(false);
_G(flags)[V125] = 3;
_turtlePopup = series_load("403 turtle popup");
- _wolfJustSo = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ _wolfJustSo = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
triggerMachineByHashCallback, "Turtle POPUP");
sendWSMessage_10000(1, _wolfJustSo, _turtlePopup, 1, 46, -1,
_turtlePopup, 46, 46, 0);
@@ -1404,7 +1404,7 @@ void Room403::daemon() {
terminateMachineAndNull(_board);
ws_hide_walker();
- _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x300, 0,
+ _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x300, false,
triggerMachineByHashCallback, "RIP plants plank");
sendWSMessage_10000(1, _ripOnLadder, _ripPutBoard, 57, 1, 443,
_ripPutBoard, 1, 1, 0);
@@ -1596,11 +1596,11 @@ void Room403::pre_parser() {
}
void Room403::parser() {
- bool lookFlag = player_said_any("look", "look at");
- bool talkFlag = player_said_any("talk", "talk to");
- bool takeFlag = player_said("take");
- bool enterFlag = player_said("enter");
- bool useFlag = player_said_any("push", "pull", "gear", "open", "close");
+ const bool lookFlag = player_said_any("look", "look at");
+ const bool talkFlag = player_said_any("talk", "talk to");
+ const bool takeFlag = player_said("take");
+ const bool enterFlag = player_said("enter");
+ const bool useFlag = player_said_any("push", "pull", "gear", "open", "close");
if (player_said("conv403a")) {
if (_G(kernel).trigger == 1) {
@@ -1661,7 +1661,8 @@ void Room403::parser() {
player_set_commands_allowed(true);
digi_play("403r09a", 1);
break;
-
+ default:
+ break;
}
} else if (lookFlag && player_said_any("tomb", "door")) {
digi_play("403r05", 1);
@@ -1751,7 +1752,8 @@ void Room403::parser() {
case 2:
player_set_commands_allowed(true);
break;
-
+ default:
+ break;
}
} else if (player_said("journal") && (
player_said_any(
@@ -1775,9 +1777,9 @@ void Room403::parser() {
void Room403::conv403a() {
const char *sound = conv_sound_to_play();
- int who = conv_whos_talking();
- int node = conv_current_node();
- int entry = conv_current_entry();
+ const int who = conv_whos_talking();
+ const int node = conv_current_node();
+ const int entry = conv_current_entry();
if (sound) {
if (who <= 0) {
@@ -1850,7 +1852,7 @@ void Room403::conv403a() {
}
void Room403::conv403a1() {
- int who = conv_whos_talking();
+ const int who = conv_whos_talking();
if (who <= 0) {
_wolfShould = (_wolfShould == 2250) ? 2252 : 2102;
@@ -1869,13 +1871,15 @@ void Room403::edgerBell() {
_ripRingsBell = series_load("RIP RINGS BELL");
player_update_info();
ws_hide_walker();
- _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
triggerMachineByHashCallback, "RIP rings bell");
terminateMachineAndNull(_bell);
sendWSMessage_10000(1, _ripOnLadder, _ripRingsBell, 1, 19, 1,
_ripRingsBell, 19, 19, 0);
- }
+ } else
+ digi_play("403r48", 1, 255, 12, -1);
+
break;
case 1:
@@ -1913,7 +1917,7 @@ void Room403::edgerBell() {
case 5:
sendWSMessage_60000(_wolfWalker);
- _wolfie = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ _wolfie = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, false,
triggerMachineByHashCallback, "WOLFIE");
sendWSMessage_10000(1, _wolfie, _wolfAdmonish, 1, 18, 6,
_wolfAdmonish, 18, 18, 0);
@@ -1967,7 +1971,8 @@ void Room403::edgerBell() {
player_set_commands_allowed(true);
break;
- default:
+ default: // Will catch case 12 triggered in case 1
+ player_set_commands_allowed(true);
break;
}
}
@@ -1983,7 +1988,7 @@ void Room403::plankUrn() {
case 1:
_ripPutBoard = series_load("RIPLEY PUTS BOARD ON POTS");
ws_hide_walker();
- _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x300, 0,
+ _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x300, false,
triggerMachineByHashCallback, "RIP plants plank");
sendWSMessage_10000(1, _ripOnLadder, _ripPutBoard, 1, 41, 2,
_ripPutBoard, 41, 41, 0);
@@ -2096,7 +2101,7 @@ bool Room403::takePlank() {
terminateMachineAndNull(_board);
ws_hide_walker();
- _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x300, 0,
+ _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x300, false,
triggerMachineByHashCallback, "RIP plants plank");
sendWSMessage_10000(1, _ripOnLadder, _ripPutBoard, 57, 1, 2,
_ripPutBoard, 1, 1, 0);
@@ -2143,7 +2148,7 @@ bool Room403::takeEdger() {
hotspot_set_active("EDGER", false);
inv_give_to_player("EDGER");
kernel_examine_inventory_object("PING EDGER", _G(master_palette),
- 5, 1, 500, 216, 2, 0, -1);
+ 5, 1, 500, 216, 2, nullptr, -1);
return true;
case 2:
@@ -2296,8 +2301,8 @@ void Room403::useJournal() {
void Room403::playNum1(int num) {
static const char *const NAMES[] = {
- "403w11", "403w13", "403w15", "40ew16",
- "403w17", "403w18", "40w1", "40w1"
+ "403w11", "403w13", "403w15", "403w16",
+ "403w17", "403w18", "403w1", "403w1"
};
digi_play(NAMES[num - 1], 1, 255, 8);
}
More information about the Scummvm-git-logs
mailing list