[Scummvm-git-logs] scummvm master -> 5c5eddbdf4fcc89e694cbb8d640038a000f0f0c8
dreammaster
noreply at scummvm.org
Wed Sep 11 05:55:44 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:
5c5eddbdf4 M4: RIDDLE: Remainder of room 504 parser
Commit: 5c5eddbdf4fcc89e694cbb8d640038a000f0f0c8
https://github.com/scummvm/scummvm/commit/5c5eddbdf4fcc89e694cbb8d640038a000f0f0c8
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-09-10T22:55:37-07:00
Commit Message:
M4: RIDDLE: Remainder of room 504 parser
Changed paths:
engines/m4/riddle/rooms/section5/room504.cpp
diff --git a/engines/m4/riddle/rooms/section5/room504.cpp b/engines/m4/riddle/rooms/section5/room504.cpp
index b430f55eab0..717d762124e 100644
--- a/engines/m4/riddle/rooms/section5/room504.cpp
+++ b/engines/m4/riddle/rooms/section5/room504.cpp
@@ -906,10 +906,156 @@ void Room504::parser() {
default:
break;
}
- }
-
- // TODO
- else {
+ } else if (takeFlag && ITEM("DRIFTWOOD STUMP") && !_flag1) {
+ switch(_G(kernel).trigger) {
+ case -1:
+ player_set_commands_allowed(false);
+ _ripLowReach = series_load("RIP LOW REACH POS1");
+ setGlobals1(_ripLowReach, 1, 10, 10, 10);
+ sendWSMessage_110000(2);
+ break;
+ case 2:
+ terminateMachineAndNull(_driftwood);
+ kernel_examine_inventory_object("PING DRIFTWOOD STUMP",
+ _G(master_palette), 5, 1, 139, 102, 3, nullptr, -1);
+ break;
+ case 3:
+ sendWSMessage_140000(4);
+ break;
+ case 4:
+ inv_give_to_player("DRIFTWOOD STUMP");
+ setMiscItems();
+ series_unload(_ripLowReach);
+ player_set_commands_allowed(true);
+ break;
+ default:
+ break;
+ }
+ } else if (takeFlag && player_said_any("GREEN VINE ",
+ "GREEN VINE ", "GREEN VINE ") && _G(flags)[V152] == 2) {
+ digi_play("COM126", 1, 255, -1, 997);
+ } else if (takeFlag && player_said_any("BROWN VINE ",
+ "BROWN VINE ", "BROWN VINE ") && _G(flags)[V153] == 2) {
+ digi_play("COM126", 1, 255, -1, 997);
+ } else if (takeFlag && player_said_any("ROPE ", "ROPE ", "ROPE ") &&
+ _G(flags)[V154] == 2) {
+ digi_play("COM126", 1, 255, -1, 997);
+ } else if (takeFlag && ITEM("POLE") && !_flag1) {
+ switch (_G(kernel).trigger) {
+ case -1:
+ player_set_commands_allowed(false);
+ _ripLowReach = series_load("RIP LOW REACH POS1");
+ setGlobals1(_ripLowReach, 1, 10, 10, 10);
+ sendWSMessage_110000(2);
+ break;
+ case 2:
+ terminateMachineAndNull(_pole);
+ kernel_examine_inventory_object("PING POLE",
+ _G(master_palette), 5, 1, 139, 102, 3, nullptr, -1);
+ break;
+ case 3:
+ sendWSMessage_140000(4);
+ break;
+ case 4:
+ inv_give_to_player("POLE");
+ setMiscItems();
+ series_unload(_ripLowReach);
+ player_set_commands_allowed(true);
+ break;
+ default:
+ break;
+ }
+ } else if (takeFlag && ITEM("SHOVEL") && _flag1) {
+ switch (_G(kernel).trigger) {
+ case -1:
+ player_set_commands_allowed(false);
+ g_engine->camera_shift_xy(862, 0);
+ kernel_timing_trigger(1, 1);
+ break;
+ case 1:
+ if (g_engine->game_camera_panning()) {
+ kernel_timing_trigger(5, 1);
+ } else {
+ _ripLowReach = series_load("RIP LOW REACH POS1");
+ setGlobals1(_ripLowReach, 1, 10, 10, 10);
+ sendWSMessage_110000(2);
+ }
+ break;
+ case 2:
+ terminateMachineAndNull(_shovel);
+ kernel_examine_inventory_object("PING SHOVEL",
+ _G(master_palette), 5, 1, 154, 114, 3, nullptr, -1);
+ break;
+ case 3:
+ sendWSMessage_140000(4);
+ break;
+ case 4:
+ inv_give_to_player("SHOVEL");
+ setMiscItems();
+ series_unload(_ripLowReach);
+ _G(flags)[V044] = 1;
+ player_set_commands_allowed(true);
+ break;
+ default:
+ break;
+ }
+ } else if (takeFlag && player_said("SHOVEL ") &&
+ inv_object_is_here("SHOVEL") && _flag1) {
+ switch (_G(kernel).trigger) {
+ case -1:
+ player_set_commands_allowed(false);
+ g_engine->camera_shift_xy(0, 0);
+ kernel_timing_trigger(1, 1);
+ break;
+ case 1:
+ if (g_engine->game_camera_panning()) {
+ kernel_timing_trigger(5, 1);
+ } else {
+ _ripLowReach = series_load("RIP LOW REACH POS1");
+ setGlobals1(_ripLowReach, 1, 10, 10, 10);
+ sendWSMessage_110000(2);
+ }
+ break;
+ case 2:
+ terminateMachineAndNull(_shovel);
+ kernel_examine_inventory_object("PING SHOVEL",
+ _G(master_palette), 5, 1, 440, 109, 3, nullptr, -1);
+ break;
+ case 3:
+ sendWSMessage_140000(4);
+ break;
+ case 4:
+ inv_give_to_player("SHOVEL");
+ setMiscItems();
+ series_unload(_ripLowReach);
+ _G(flags)[V044] = 1;
+ player_set_commands_allowed(true);
+ break;
+ default:
+ break;
+ }
+ } else if (takeFlag && player_said("STELE")) {
+ digi_play("504R24", 1);
+ } else if (player_said("GREEN VINE", "BROWN VINE")) {
+ inv_move_object("GREEN VINE", NOWHERE);
+ inv_move_object("BROWN VINE", NOWHERE);
+ inv_give_to_player("VINES");
+ } else if (useFlag && player_said("VINES")) {
+ inv_move_object("VINES", NOWHERE);
+ inv_give_to_player("GREEN VINE");
+ inv_give_to_player("BROWN VINE");
+ } else if (!lookFlag && !takeFlag && !useFlag &&
+ !ropeCoilFlag && !greenVineFlag && !brownVineFlag &&
+ !vineCoilFlag && _G(flags)[V154] != 2 &&
+ _G(flags)[V152] != 2 && _G(flags)[V153] != 2) {
+ if (_flag1) {
+ if (_G(player).click_x <= 300)
+ digi_play("504R05A", 1);
+ } else {
+ if (_G(player).click_x > 300)
+ digi_play("504R05A", 1);
+ }
+ } else {
return;
}
More information about the Scummvm-git-logs
mailing list