[Scummvm-git-logs] scummvm master -> b6340569dfd6a15f53e52731f47c9f445870f382

Strangerke noreply at scummvm.org
Fri Jan 31 08:09:16 UTC 2025


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:
b6340569df M4: RIDDLE: Implementation of opcode 2 (Take) in room808::parser


Commit: b6340569dfd6a15f53e52731f47c9f445870f382
    https://github.com/scummvm/scummvm/commit/b6340569dfd6a15f53e52731f47c9f445870f382
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2025-01-31T09:08:38+01:00

Commit Message:
M4: RIDDLE: Implementation of opcode 2 (Take) in room808::parser

Changed paths:
    engines/m4/riddle/rooms/section8/room808.cpp
    engines/m4/riddle/rooms/section8/room808.h


diff --git a/engines/m4/riddle/rooms/section8/room808.cpp b/engines/m4/riddle/rooms/section8/room808.cpp
index baa9237b818..2499d24541b 100644
--- a/engines/m4/riddle/rooms/section8/room808.cpp
+++ b/engines/m4/riddle/rooms/section8/room808.cpp
@@ -621,6 +621,86 @@ void Room808::parser() {
 		return;
 
 	case 2:
+		if (player_said("FARMER'S SHOVEL   ")) {
+			switch (_G(kernel).trigger) {
+			case -1:
+				player_set_commands_allowed(false);
+				ws_hide_walker(_G(my_walker));
+				terminateMachine(_808PosMach);
+				_808PosMach = series_show("808pos1", 1281, 0, -1, -1, 3, 100, 0, 0);
+				_808RipFallShovelNearSideMach = series_play("808rp07", 1, 18, 10, 5, 0, 100, 0, 0, 0, -1);
+				player_update_info(_G(my_walker), &_G(player_info));
+				_safariShadowMach = series_place_sprite(SAFARI_SHADOWS_2[_G(player_info).facing], 0, _G(player_info).x, _G(player_info).y, _G(player_info).scale, 257);
+
+				break;
+
+			case 10:
+				inv_give_to_player("FARMER'S SHOVEL");
+				hotspot_set_active(_G(currentSceneDef).hotspots, "FARMER'S SHOVEL   ", false);
+				kernel_examine_inventory_object("PING FARMER'S SHOVEL", _G(master_palette), 5, 1, 125, 125, 20, nullptr, -1);
+
+				break;
+
+			case 20:
+				player_set_commands_allowed(true);
+				terminateMachine(_808RipFallShovelNearSideMach);
+				terminateMachine(_safariShadowMach);
+				ws_unhide_walker(_G(my_walker));
+				ws_demand_facing(_G(my_walker), 2);
+
+				break;
+
+			default:
+				break;
+			}
+		} else if ((player_said("FARMER'S SHOVEL") && inv_object_in_scene("FARMER'S SHOVEL", 808)) || player_said_any("FARMER'S SHOVEL ", "FARMER'S SHOVEL  ", "FARMER'S SHOVEL    ")) {
+			digi_play("808r31", 1, 255, -1, -1);
+		} else if (player_said("crank")) {
+			if (_G(flags[V100])) {
+				switch (_G(kernel).trigger) {
+				case -1:
+					if (!inv_object_in_scene("crank", 808)) {
+						_G(player).command_ready = true;
+						return;
+					}
+
+					player_set_commands_allowed(false);
+					setGlobals3(_ripMedReach1HandPos2Series, 1, 17);
+					sendWSMessage_3840000(_G(my_walker), 10);
+
+					break;
+
+				case 10:
+					inv_give_to_player("CRANK");
+					kernel_examine_inventory_object("PING CRANK", _G(master_palette), 5, 1, 280, 85, 20, nullptr, -1);
+
+					break;
+
+				case 20:
+					terminateMachine(_808HandleSpriteMach);
+					setGlobals3(_ripMedReach1HandPos2Series, 17, 1);
+					sendWSMessage_3840000(_G(my_walker), 30);
+
+					break;
+
+				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);
+					ws_demand_facing(_G(my_walker), 10);
+
+					break;
+
+				default:
+					break;
+				}
+			}
+		} else
+			break;
+
+		return;
+
 	case 3:
 		break;
 
diff --git a/engines/m4/riddle/rooms/section8/room808.h b/engines/m4/riddle/rooms/section8/room808.h
index e5369602228..fefcd568a72 100644
--- a/engines/m4/riddle/rooms/section8/room808.h
+++ b/engines/m4/riddle/rooms/section8/room808.h
@@ -51,6 +51,10 @@ private:
 	int32 _dword1A1960_rand4 = 0;
 	int32 _dword1A1964_facing = 0;
 
+	const char *_posMachName = nullptr;
+	int32 _posMachFrameNum = 0;
+	int32 _posMachIndex = 0;
+
 	int32 _807Rp04Series = 0;
 	int32 _808McupSeries = 0;
 	int32 _808Rp01Series = 0;
@@ -70,10 +74,7 @@ private:
 	machine *_808PosMach = nullptr;
 	machine *_808RipFallShovelNearSideMach = nullptr;
 	machine *_mcTrekMach = nullptr;
-
-	const char *_posMachName = nullptr;
-	int32 _posMachFrameNum = 0;
-	int32 _posMachIndex = 0;
+	machine *_safariShadowMach = nullptr;
 };
 
 } // namespace Rooms




More information about the Scummvm-git-logs mailing list