[Scummvm-git-logs] scummvm master -> 7d1c643fe62669b4a6694f6d3c2ad111f8eff28a

Strangerke noreply at scummvm.org
Sun Dec 8 19:19:52 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:
7d1c643fe6 M4: RIDDLE: room 705: Complete implementation of parser


Commit: 7d1c643fe62669b4a6694f6d3c2ad111f8eff28a
    https://github.com/scummvm/scummvm/commit/7d1c643fe62669b4a6694f6d3c2ad111f8eff28a
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-12-08T20:19:24+01:00

Commit Message:
M4: RIDDLE: room 705: Complete implementation of parser

Changed paths:
    engines/m4/riddle/rooms/section7/room705.cpp
    engines/m4/riddle/rooms/section7/room705.h


diff --git a/engines/m4/riddle/rooms/section7/room705.cpp b/engines/m4/riddle/rooms/section7/room705.cpp
index 18acea9ad54..bbbb0bae7b6 100644
--- a/engines/m4/riddle/rooms/section7/room705.cpp
+++ b/engines/m4/riddle/rooms/section7/room705.cpp
@@ -140,7 +140,7 @@ void Room705::parser() {
 	bool ecx = player_said_any("look", "look at");
 	const bool talkFl = player_said_any("talk", "talk to");
 	bool edi = player_said("take");
-	//bool gearFl = player_said_any("push", "pull", "gear", "open", "close");
+	bool gearFl = player_said_any("push", "pull", "gear", "open", "close");
 
 	if (player_said("conv705a")) {
 		if (_G(kernel).trigger == 90)
@@ -636,10 +636,73 @@ void Room705::parser() {
 		_G(kernel).trigger_mode = KT_PARSE;
 	} else if (ecx && player_said(" ")) {
 		digi_play(_G(flags[V224]) ? "706r24" : "com075", 1, 255, -1, -1);
-	}
-	
-	// TODO Incomplete implementation
+	} else if (player_said("CUPOLA")) {
+		switch (_G(kernel).trigger) {
+		case -1:
+			player_set_commands_allowed(false);
+			_705RipGoesUpStairsSeries = series_load("705 RIP GOES UP STAIRS", -1, nullptr);
+			ws_hide_walker();
+			_ripStairsMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 320, 0, 100, 256, false, triggerMachineByHashCallback, "rip stairs machine");
+			sendWSMessage_10000(1, _ripStairsMach, _705RipGoesUpStairsSeries, 1, 29, 2, _705RipGoesUpStairsSeries, 29, 29, 0);
+
+			break;
 
+		case 2:
+			sendWSMessage_10000(1, _ripStairsMach, _705RipGoesUpStairsSeries, 30, 39, -1, _705RipGoesUpStairsSeries, 39, 39, 0);
+			disable_player_commands_and_fade_init(3);
+
+			break;
+
+		case 3:
+			terminateMachine(_ripStairsMach);
+			player_set_commands_allowed(true);
+			adv_kill_digi_between_rooms(false);
+			digi_play_loop("950_s39", 3, 255, -1, -1);
+			_G(game).new_room = 707;
+
+			break;
+
+		default:
+			break;
+		}
+	} // player_said("CUPOLA")
+
+	else if (player_said("West Face")) {
+		switch (_G(kernel).trigger) {
+		case -1:
+			disable_player_commands_and_fade_init(4);
+			break;
+
+		case 4:
+			adv_kill_digi_between_rooms(false);
+			digi_play_loop("950_s39", 3, 255, -1, -1);
+			_G(game).new_room = 706;
+
+			break;
+
+		default:
+			break;
+		}
+	} else if (player_said("East Face")) {
+		switch (_G(kernel).trigger) {
+		case -1:
+			disable_player_commands_and_fade_init(4);
+			break;
+
+		case 4:
+			adv_kill_digi_between_rooms(false);
+			digi_play_loop("950_s39", 3, 255, -1, -1);
+			_G(game).new_room = 704;
+
+			break;
+
+		default:
+			break;
+		}
+	} else if (!gearFl && !edi && player_said_any("MONK #9", "MONK #10", "MONK #11")) {
+		digi_play("com017", 1, 255, -1, -1);
+	} else
+		return;
 
 	_G(player).command_ready = false;
 }
diff --git a/engines/m4/riddle/rooms/section7/room705.h b/engines/m4/riddle/rooms/section7/room705.h
index cac4d8a8bf7..31fe0bc1e16 100644
--- a/engines/m4/riddle/rooms/section7/room705.h
+++ b/engines/m4/riddle/rooms/section7/room705.h
@@ -56,6 +56,7 @@ private:
 	int32 _705Monk2Series = 0;
 	int32 _705Monk3Series = 0;
 	int32 _705Monk4Series = 0;
+	int32 _705RipGoesUpStairsSeries = 0;
 	int32 _ripGoesDownStairsSeries = 0;
 	int32 _ripLooksDownSeries = 0;
 	int32 _ripTrekMedReachPos1Series = 0;




More information about the Scummvm-git-logs mailing list