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

dreammaster noreply at scummvm.org
Sat Aug 10 05:35:03 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:
d619175834 M4: RIDDLE: Added room 402 pre-parser


Commit: d619175834d174a8fdcd9780df578a4fa0e19498
    https://github.com/scummvm/scummvm/commit/d619175834d174a8fdcd9780df578a4fa0e19498
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-08-09T22:34:57-07:00

Commit Message:
M4: RIDDLE: Added room 402 pre-parser

Changed paths:
    engines/m4/riddle/rooms/section4/room402.cpp


diff --git a/engines/m4/riddle/rooms/section4/room402.cpp b/engines/m4/riddle/rooms/section4/room402.cpp
index 3efdc2a7abc..6e68e7f0613 100644
--- a/engines/m4/riddle/rooms/section4/room402.cpp
+++ b/engines/m4/riddle/rooms/section4/room402.cpp
@@ -277,7 +277,68 @@ void Room402::daemon() {
 }
 
 void Room402::pre_parser() {
+	bool talkFlag = player_said_any("talk", "talk to");
+	bool takeFlag = player_said("take");
+	bool lookFlag = player_said_any("look", "look at");
+
+	if (lookFlag && player_said(" ")) {
+		_G(player).need_to_walk = false;
+		_G(player).ready_to_walk = true;
+		_G(player).waiting_for_walk = false;
+	}
+
+	if (player_said("journal") && !takeFlag && !lookFlag && _G(kernel).trigger == -1) {
+		_G(player).need_to_walk = false;
+		_G(player).ready_to_walk = true;
+		_G(player).waiting_for_walk = false;
+	}
+
+	if (player_said("DANZIG") && !player_said("ENTER", "DANZIG")) {
+		_G(player).need_to_walk = false;
+		_G(player).ready_to_walk = true;
+		_G(player).waiting_for_walk = false;
+	}
+
+	if (!_G(flags)[V112] && !player_said("WALK TO") &&
+		(!talkFlag || !player_said("WOLF")) &&
+		!player_said("POMERANIAN MARKS", "WOLF"))
+		_G(flags)[V112] = 1;
+
+	_val6 = 0;
+
+	if (player_said("POMERANIAN MARKS", "WOLF") && inv_player_has("POMERANIAN MARKS")) {
+		player_set_commands_allowed(false);
+		intr_cancel_sentence();
+		_G(flags)[V114] = 1;
+		_val12 = 2000;
+		_val13 = 2240;
+
+		_G(kernel).trigger_mode = KT_DAEMON;
+		_G(flags)[V111]++;
+		kernel_timing_trigger(1, 110);
+	} else if (_G(flags)[V116] || !player_said("WOLF") || (
+		(!player_said("US DOLLARS") || !inv_player_has("US DOLLARS")) &&
+		(!player_said("CHINESE YUAN") || !inv_player_has("CHINESE YUAN")) &&
+		(!player_said("PERUVIAN INTI") || !inv_player_has("PERUVIAN INTI")) &&
+		(!player_said("SIKKIMESE RUPEE") || !inv_player_has("SIKKIMESE RUPEE"))
+	)) {
+		if (talkFlag && player_said("WOLF"))
+			intr_cancel_sentence();
+
+		player_set_commands_allowed(false);
+		_val12 = 2000;
+		_val13 = 2250;
+		_G(kernel).trigger_mode = KT_DAEMON;
+		kernel_timing_trigger(1, 110);
+	} else {
+		player_set_commands_allowed(false);
+		_G(flags)[V116] = 1;
+		intr_cancel_sentence();
+		_G(kernel).trigger_mode = KT_DAEMON;
+		kernel_timing_trigger(1, 230);
+	}
 
+	_G(kernel).trigger_mode = KT_PREPARSE;
 }
 
 void Room402::parser() {




More information about the Scummvm-git-logs mailing list