[Scummvm-git-logs] scummvm master -> 3d1bce208c189556299ee4bfdf9b09fcd452febd
dreammaster
noreply at scummvm.org
Mon Feb 10 03:03:56 UTC 2025
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
70eb812fd3 M4: RIDDLE: Fixes for wheel crank/slot and shovel
bbc8c26f1e M4: RIDDLE: Fix solving wheel bridge puzzle
3d1bce208c M4: RIDDLE: Fix leaving Bridge room
Commit: 70eb812fd3cd9a9322c5e78691999f28d6ba6b1f
https://github.com/scummvm/scummvm/commit/70eb812fd3cd9a9322c5e78691999f28d6ba6b1f
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2025-02-09T17:40:05-08:00
Commit Message:
M4: RIDDLE: Fixes for wheel crank/slot and shovel
Changed paths:
engines/m4/riddle/rooms/section8/room808.cpp
diff --git a/engines/m4/riddle/rooms/section8/room808.cpp b/engines/m4/riddle/rooms/section8/room808.cpp
index 022270803eb..2d8e394ff8f 100644
--- a/engines/m4/riddle/rooms/section8/room808.cpp
+++ b/engines/m4/riddle/rooms/section8/room808.cpp
@@ -632,7 +632,7 @@ void Room808::parser() {
case 10:
inv_give_to_player("FARMER'S SHOVEL");
- hotspot_set_active(_G(currentSceneDef).hotspots, "FARMER'S SHOVEL ", false);
+ hotspot_set_active("FARMER'S SHOVEL ", false);
kernel_examine_inventory_object("PING FARMER'S SHOVEL", _G(master_palette), 5, 1, 125, 125, 20, nullptr, -1);
break;
@@ -682,8 +682,8 @@ void Room808::parser() {
case 30:
player_set_commands_allowed(true);
inv_give_to_player("crank");
- hotspot_set_active(_G(currentSceneDef).hotspots, "slot", true);
- hotspot_set_active(_G(currentSceneDef).hotspots, "crank", false);
+ hotspot_set_active("slot", true);
+ hotspot_set_active("crank", false);
ws_demand_facing(_G(my_walker), 10);
break;
@@ -898,8 +898,8 @@ void Room808::parser() {
_G(flags)[V100] = 1;
_G(flags)[V276] = 0;
_G(flags)[V098] = 0;
- hotspot_set_active(_G(currentSceneDef).hotspots, "crank", true);
- hotspot_set_active(_G(currentSceneDef).hotspots, "slot", false);
+ hotspot_set_active("crank", true);
+ hotspot_set_active("slot", false);
digi_unload("808_s10");
break;
@@ -912,8 +912,8 @@ void Room808::parser() {
}
_G(flags)[V098] = 0;
- hotspot_set_active(_G(currentSceneDef).hotspots, "crank", true);
- hotspot_set_active(_G(currentSceneDef).hotspots, "slot", false);
+ hotspot_set_active("crank", true);
+ hotspot_set_active("slot", false);
digi_unload("808_s10");
break;
@@ -1164,8 +1164,8 @@ void Room808::parser() {
case 10:
inv_move_object("crank", 808);
- hotspot_set_active(_G(currentSceneDef).hotspots, "crank", true);
- hotspot_set_active(_G(currentSceneDef).hotspots, "slot", false);
+ hotspot_set_active("crank", true);
+ hotspot_set_active("slot", false);
kernel_timing_trigger(60, 20, nullptr);
break;
@@ -1212,7 +1212,7 @@ void Room808::parser() {
case 10:
player_set_commands_allowed(true);
- hotspot_set_active(_G(currentSceneDef).hotspots, "FARMER'S SHOVEL ", true);
+ hotspot_set_active("FARMER'S SHOVEL ", true);
terminateMachine(_808PosMach);
_808PosMach = series_show("808pos2", 1281, 0, -1, -1, 3, 100, 0, 0);
ws_unhide_walker(_G(my_walker));
@@ -1732,107 +1732,92 @@ bool Room808::getWalkPath(machine *machine, int32 walk_x, int32 walk_y) {
void Room808::setBridgeHotspots(int val1, bool activeFl) {
switch (val1) {
case 0:
- hotspot_set_active(_G(currentSceneDef).hotspots, "wheel", activeFl);
- hotspot_set_active(_G(currentSceneDef).hotspots, "bridge", activeFl);
+ hotspot_set_active("wheel", activeFl);
+ hotspot_set_active("bridge", activeFl);
- hotspot_set_active(_G(currentSceneDef).hotspots, "hole in chasm wall", false);
- hotspot_set_active(_G(currentSceneDef).hotspots, "hole in bridge", false);
+ hotspot_set_active("hole in chasm wall", false);
+ hotspot_set_active("hole in bridge", false);
- if (inv_object_in_scene("FARMER'S SHOVEL", 808) || activeFl == false)
- hotspot_set_active(_G(currentSceneDef).hotspots, "FARMER'S SHOVEL", false);
- else
- hotspot_set_active(_G(currentSceneDef).hotspots, "FARMER'S SHOVEL", true);
+ hotspot_set_active("FARMER'S SHOVEL",
+ inv_object_in_scene("FARMER'S SHOVEL", 808) && activeFl);
- if (inv_object_in_scene("crank", 808) || _G(flags)[V098] != 0) {
- hotspot_set_active(_G(currentSceneDef).hotspots, "crank", false);
- hotspot_set_active(_G(currentSceneDef).hotspots, "slot", true);
+ if (inv_object_in_scene("crank", 808) && !_G(flags)[V098]) {
+ hotspot_set_active("crank", true);
+ hotspot_set_active("slot", false);
} else {
- hotspot_set_active(_G(currentSceneDef).hotspots, "crank", true);
- hotspot_set_active(_G(currentSceneDef).hotspots, "slot", false);
+ hotspot_set_active("crank", false);
+ hotspot_set_active("slot", true);
}
-
break;
case 1:
- hotspot_set_active(_G(currentSceneDef).hotspots, "wheel ", activeFl);
- hotspot_set_active(_G(currentSceneDef).hotspots, "bridge ", activeFl);
- hotspot_set_active(_G(currentSceneDef).hotspots, "hole in chasm wall", activeFl);
-
- hotspot_set_active(_G(currentSceneDef).hotspots, "hole in bridge", false);
+ hotspot_set_active("wheel ", activeFl);
+ hotspot_set_active("bridge ", activeFl);
+ hotspot_set_active("hole in chasm wall", activeFl);
- if (inv_object_in_scene("FARMER'S SHOVEL", 808) || activeFl == false)
- hotspot_set_active(_G(currentSceneDef).hotspots, "FARMER'S SHOVEL ", false);
- else
- hotspot_set_active(_G(currentSceneDef).hotspots, "FARMER'S SHOVEL ", true);
+ hotspot_set_active("hole in bridge", false);
- hotspot_set_active(_G(currentSceneDef).hotspots, "crank", false);
- hotspot_set_active(_G(currentSceneDef).hotspots, "slot", false);
+ hotspot_set_active("FARMER'S SHOVEL ",
+ inv_object_in_scene("FARMER'S SHOVEL", 808) && activeFl);
+ hotspot_set_active("crank", false);
+ hotspot_set_active("slot", false);
break;
case 2:
- hotspot_set_active(_G(currentSceneDef).hotspots, "wheel ", activeFl);
- hotspot_set_active(_G(currentSceneDef).hotspots, "bridge ", activeFl);
- hotspot_set_active(_G(currentSceneDef).hotspots, "hole in chasm wall", activeFl);
+ hotspot_set_active("wheel ", activeFl);
+ hotspot_set_active("bridge ", activeFl);
+ hotspot_set_active("hole in chasm wall", activeFl);
- hotspot_set_active(_G(currentSceneDef).hotspots, "hole in bridge", false);
+ hotspot_set_active("hole in bridge", false);
- if (inv_object_in_scene("FARMER'S SHOVEL", 808) || activeFl == false)
- hotspot_set_active(_G(currentSceneDef).hotspots, "FARMER'S SHOVEL ", false);
- else
- hotspot_set_active(_G(currentSceneDef).hotspots, "FARMER'S SHOVEL ", true);
+ hotspot_set_active("FARMER'S SHOVEL ",
+ inv_object_in_scene("FARMER'S SHOVEL", 808) && activeFl);
- if (inv_object_in_scene("crank", 808) || _G(flags)[V098] != 0) {
- hotspot_set_active(_G(currentSceneDef).hotspots, "crank", false);
- hotspot_set_active(_G(currentSceneDef).hotspots, "slot", true);
+ if (inv_object_in_scene("crank", 808) && !_G(flags)[V098]) {
+ hotspot_set_active("crank", true);
+ hotspot_set_active("slot", false);
} else {
- hotspot_set_active(_G(currentSceneDef).hotspots, "crank", true);
- hotspot_set_active(_G(currentSceneDef).hotspots, "slot", false);
+ hotspot_set_active("crank", false);
+ hotspot_set_active("slot", true);
}
-
break;
case 3:
- hotspot_set_active(_G(currentSceneDef).hotspots, "wheel ", activeFl);
- hotspot_set_active(_G(currentSceneDef).hotspots, "bridge ", activeFl);
- hotspot_set_active(_G(currentSceneDef).hotspots, "hole in chasm wall", activeFl);
- hotspot_set_active(_G(currentSceneDef).hotspots, "hole in bridge", activeFl);
-
- if (inv_object_in_scene("FARMER'S SHOVEL", 808) || activeFl == false)
- hotspot_set_active(_G(currentSceneDef).hotspots, "FARMER'S SHOVEL ", false);
- else
- hotspot_set_active(_G(currentSceneDef).hotspots, "FARMER'S SHOVEL ", true);
-
- if (inv_object_in_scene("crank", 808) || _G(flags)[V098] != 0) {
- hotspot_set_active(_G(currentSceneDef).hotspots, "crank", false);
- hotspot_set_active(_G(currentSceneDef).hotspots, "slot", true);
+ hotspot_set_active("wheel ", activeFl);
+ hotspot_set_active("bridge ", activeFl);
+ hotspot_set_active("hole in chasm wall", activeFl);
+ hotspot_set_active("hole in bridge", activeFl);
+
+ hotspot_set_active("FARMER'S SHOVEL ",
+ inv_object_in_scene("FARMER'S SHOVEL", 808) && activeFl);
+
+ if (inv_object_in_scene("crank", 808) && !_G(flags)[V098]) {
+ hotspot_set_active("crank", true);
+ hotspot_set_active("slot", false);
} else {
- hotspot_set_active(_G(currentSceneDef).hotspots, "crank", true);
- hotspot_set_active(_G(currentSceneDef).hotspots, "slot", false);
+ hotspot_set_active("crank", false);
+ hotspot_set_active("slot", true);
}
-
break;
case 4:
- hotspot_set_active(_G(currentSceneDef).hotspots, "wheel", activeFl);
- hotspot_set_active(_G(currentSceneDef).hotspots, "bridge", activeFl);
+ hotspot_set_active("wheel", activeFl);
+ hotspot_set_active("bridge", activeFl);
- hotspot_set_active(_G(currentSceneDef).hotspots, "hole in chasm wall", false);
- hotspot_set_active(_G(currentSceneDef).hotspots, "hole in bridge", false);
+ hotspot_set_active("hole in chasm wall", false);
+ hotspot_set_active("hole in bridge", false);
- if (inv_object_in_scene("FARMER'S SHOVEL", 808) || activeFl == false)
- hotspot_set_active(_G(currentSceneDef).hotspots, "FARMER'S SHOVEL ", false);
- else
- hotspot_set_active(_G(currentSceneDef).hotspots, "FARMER'S SHOVEL ", true);
+ hotspot_set_active("FARMER'S SHOVEL ",
+ inv_object_in_scene("FARMER'S SHOVEL", 808) && activeFl);
- if (inv_object_in_scene("crank", 808) || _G(flags)[V098] != 0) {
- hotspot_set_active(_G(currentSceneDef).hotspots, "crank", false);
- hotspot_set_active(_G(currentSceneDef).hotspots, "slot", true);
+ if (inv_object_in_scene("crank", 808) && !_G(flags)[V098]) {
+ hotspot_set_active("crank", true);
+ hotspot_set_active("slot", false);
} else {
- hotspot_set_active(_G(currentSceneDef).hotspots, "crank", true);
- hotspot_set_active(_G(currentSceneDef).hotspots, "slot", false);
+ hotspot_set_active("crank", false);
+ hotspot_set_active("slot", true);
}
-
break;
default:
Commit: bbc8c26f1ee0e9d8da85101e234a4bba3989451c
https://github.com/scummvm/scummvm/commit/bbc8c26f1ee0e9d8da85101e234a4bba3989451c
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2025-02-09T19:01:13-08:00
Commit Message:
M4: RIDDLE: Fix solving wheel bridge puzzle
Changed paths:
engines/m4/riddle/rooms/section8/room808.cpp
engines/m4/riddle/rooms/section8/room808.h
engines/m4/riddle/rooms/section8/section8_room.cpp
engines/m4/riddle/rooms/section8/section8_room.h
diff --git a/engines/m4/riddle/rooms/section8/room808.cpp b/engines/m4/riddle/rooms/section8/room808.cpp
index 2d8e394ff8f..009186324c0 100644
--- a/engines/m4/riddle/rooms/section8/room808.cpp
+++ b/engines/m4/riddle/rooms/section8/room808.cpp
@@ -1015,7 +1015,7 @@ void Room808::parser() {
player_set_commands_allowed(false);
ws_walk(_G(my_walker), 17, 214, nullptr, 20, 8, true);
if (_G(flags)[V097] == 0) {
- setGlobals3(_meiChienHandsBehindBackSeries, 17, 1);
+ setGlobals3(_meiChenHandsBehindBackSeries, 17, 1);
sendWSMessage_3840000(_mcTrekMach, -1);
} else {
DisposePath(_mcTrekMach->walkPath);
@@ -1074,14 +1074,23 @@ void Room808::parser() {
if (player_said("mei chen")) {
switch (_G(kernel).trigger) {
case -1:
- if (_G(flags)[V100] != 0) {
- digi_play("com122", 1, 255, 997);
- } else if (_G(flags)[V097] == 1 && inv_object_in_scene("FARMER'S SHOVEL", 808) && _G(flags)[V094] == 4) {
- ws_walk(_G(my_walker), 185, 156, nullptr, 11, 5, true);
+ if (_G(flags)[V100]) {
+ digi_play("com122", 1, 255, -1, 997);
+ } else if (_G(flags)[V097] == 0) {
+ player_set_commands_allowed(false);
+ setGlobals3(_rptmr15Series, 1, 16);
+ sendWSMessage_3840000(-1);
+ setGlobals3(_meiChenHandsBehindBackSeries, 17, 1);
+ sendWSMessage_3840000(_mcTrekMach, 7);
+ } else if (_G(flags)[V097] == 1) {
+ if (inv_object_in_scene("FARMER'S SHOVEL", 808) &&
+ _G(flags)[V094] == 4)
+ ws_walk(185, 156, nullptr, 11, 5);
+ else
+ digi_play("808r30", 1);
} else {
- digi_play("808r30", 1, 255, -1, -1);
- }
-
+ digi_play("808r30", 1);
+ }
break;
case 7:
@@ -1091,15 +1100,13 @@ void Room808::parser() {
case 10:
setGlobals3(_mctd61Series, 1, 5);
sendWSMessage_3840000(_mcTrekMach, 15);
-
break;
case 11:
player_set_commands_allowed(false);
DisposePath(_mcTrekMach->walkPath);
_mcTrekMach->walkPath = CreateCustomPath(348, 130, 193, 163, -1);
- ws_custom_walk(_mcTrekMach, 11, 1, true);
-
+ ws_custom_walk(_mcTrekMach, 11, 21);
break;
case 15:
@@ -1109,6 +1116,7 @@ void Room808::parser() {
case 20:
_G(flags)[V098] = 1;
+
if (_G(flags)[V097] == 0) {
setGlobals3(_mctd61Series, 5, 1);
sendWSMessage_3840000(_mcTrekMach, 25);
@@ -1119,17 +1127,15 @@ void Room808::parser() {
setGlobals3(_rptmr15Series, 16, 1);
sendWSMessage_3840000(_G(my_walker), 30);
-
break;
case 21:
setGlobals3(_rptmr15Series, 1, 16);
sendWSMessage_3840000(_G(my_walker), 10);
-
break;
case 25:
- setGlobals3(_meiChienHandsBehindBackSeries, 1, 17);
+ setGlobals3(_meiChenHandsBehindBackSeries, 1, 17);
sendWSMessage_3840000(_mcTrekMach, -1);
break;
@@ -1147,7 +1153,6 @@ void Room808::parser() {
case 41:
player_set_commands_allowed(true);
ws_demand_facing(_G(my_walker), 5);
-
break;
default:
@@ -1256,7 +1261,7 @@ void Room808::parser() {
setGlobals1(_ripTalkerPos5Series, 4, 4, 1, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
sendWSMessage_110000(_G(my_walker), -1);
if (conv_current_node() == 2 && conv_current_entry() == 0) {
- setGlobals3(_meiChienHandsBehindBackSeries, 17, 1);
+ setGlobals3(_meiChenHandsBehindBackSeries, 17, 1);
sendWSMessage_3840000(_mcTrekMach, -1);
}
} else {
@@ -1322,8 +1327,8 @@ void Room808::daemon() {
addMcHotspot(_G(flags)[V097]);
if (_G(flags)[V097] == 0) {
- _meiChienHandsBehindBackSeries = series_load("MEI CHIEN HANDS BEHIND BACK", -1, nullptr);
- setGlobals3(_meiChienHandsBehindBackSeries, 1, 17);
+ _meiChenHandsBehindBackSeries = series_load("MEI CHIEN HANDS BEHIND BACK", -1, nullptr);
+ setGlobals3(_meiChenHandsBehindBackSeries, 1, 17);
sendWSMessage_3840000(_mcTrekMach, -1);
}
@@ -1461,7 +1466,7 @@ void Room808::daemon() {
digi_play("808_s02", 2, 255, -1, -1);
if (_G(flags)[V097] == 0) {
- setGlobals3(_meiChienHandsBehindBackSeries, 17, 1);
+ setGlobals3(_meiChenHandsBehindBackSeries, 17, 1);
sendWSMessage_3840000(_mcTrekMach, 16);
} else {
ws_hide_walker(_mcTrekMach);
@@ -1477,7 +1482,7 @@ void Room808::daemon() {
digi_play("808_s02", 2, 255, -1, -1);
if (_G(flags)[V097] == 0) {
- setGlobals3(_meiChienHandsBehindBackSeries, 17, 1);
+ setGlobals3(_meiChenHandsBehindBackSeries, 17, 1);
sendWSMessage_3840000(_mcTrekMach, 16);
} else {
ws_hide_walker(_mcTrekMach);
@@ -1494,7 +1499,7 @@ void Room808::daemon() {
digi_play("808_s02", 2, 255, -1, -1);
if (_G(flags)[V097] == 0) {
- setGlobals3(_meiChienHandsBehindBackSeries, 17, 1);
+ setGlobals3(_meiChenHandsBehindBackSeries, 17, 1);
sendWSMessage_3840000(_mcTrekMach, 16);
} else {
ws_demand_location(_mcTrekMach, -1000, -1000);
diff --git a/engines/m4/riddle/rooms/section8/room808.h b/engines/m4/riddle/rooms/section8/room808.h
index 401acc922c2..ad423b73d21 100644
--- a/engines/m4/riddle/rooms/section8/room808.h
+++ b/engines/m4/riddle/rooms/section8/room808.h
@@ -62,7 +62,7 @@ private:
int32 _808RpupSeries = 0;
int32 _mctd61Series = 0;
int32 _mctd82aSeries = 0;
- int32 _meiChienHandsBehindBackSeries = 0;
+ int32 _meiChenHandsBehindBackSeries = 0;
int32 _ripLooksAroundInAweSeries = 0;
int32 _ripMedReach1HandPos2Series = 0;
int32 _ripPos3LookAroundSeries = 0;
diff --git a/engines/m4/riddle/rooms/section8/section8_room.cpp b/engines/m4/riddle/rooms/section8/section8_room.cpp
index 05bcbf0afdb..b0c509f8114 100644
--- a/engines/m4/riddle/rooms/section8/section8_room.cpp
+++ b/engines/m4/riddle/rooms/section8/section8_room.cpp
@@ -47,6 +47,10 @@ int32 Section8Room::getStatueIndex(int32 val1) {
return -1;
}
+void Section8Room::sendWSMessage_3840000(int32 trigger) {
+ sendWSMessage_3840000(_G(my_walker), trigger);
+}
+
void Section8Room::sendWSMessage_3840000(machine *machine, int32 trigger) {
int32 num = trigger;
if (trigger == 0)
diff --git a/engines/m4/riddle/rooms/section8/section8_room.h b/engines/m4/riddle/rooms/section8/section8_room.h
index 012234ff461..cd3a0ef2b74 100644
--- a/engines/m4/riddle/rooms/section8/section8_room.h
+++ b/engines/m4/riddle/rooms/section8/section8_room.h
@@ -87,6 +87,7 @@ protected:
machine *_ripPushMach = nullptr;
int32 getStatueIndex(int32 val1);
+ void sendWSMessage_3840000(int32 trigger);
void sendWSMessage_3840000(machine *machine, int32 trigger);
int32 subCE52E(int32 val1);
void moveScreen(int32 dx, int32 dy);
Commit: 3d1bce208c189556299ee4bfdf9b09fcd452febd
https://github.com/scummvm/scummvm/commit/3d1bce208c189556299ee4bfdf9b09fcd452febd
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2025-02-09T19:03:45-08:00
Commit Message:
M4: RIDDLE: Fix leaving Bridge room
Changed paths:
engines/m4/riddle/rooms/section8/room808.cpp
diff --git a/engines/m4/riddle/rooms/section8/room808.cpp b/engines/m4/riddle/rooms/section8/room808.cpp
index 009186324c0..93d9e9c406e 100644
--- a/engines/m4/riddle/rooms/section8/room808.cpp
+++ b/engines/m4/riddle/rooms/section8/room808.cpp
@@ -1043,7 +1043,7 @@ void Room808::parser() {
}
- } else if (player_said("east") && _G(flags)[V100] == 0) {
+ } else if (player_said("east") && _G(flags)[V100]) {
switch (_G(kernel).trigger) {
case -1:
ws_walk(_G(my_walker), 480, 35, nullptr, 10, 2, true);
More information about the Scummvm-git-logs
mailing list