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

Strangerke noreply at scummvm.org
Wed Nov 27 06:41:39 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:
ecfe040712 M4: RIDDLE: room 703 - Start work on parser


Commit: ecfe04071236af8f0c719469f1657978a72d4cf6
    https://github.com/scummvm/scummvm/commit/ecfe04071236af8f0c719469f1657978a72d4cf6
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-11-27T07:41:29+01:00

Commit Message:
M4: RIDDLE: room 703 - Start work on parser

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


diff --git a/engines/m4/riddle/rooms/section7/room703.cpp b/engines/m4/riddle/rooms/section7/room703.cpp
index bca812a0fa1..eba94842455 100644
--- a/engines/m4/riddle/rooms/section7/room703.cpp
+++ b/engines/m4/riddle/rooms/section7/room703.cpp
@@ -139,8 +139,74 @@ void Room703::pre_parser() {
 }
 
 void Room703::parser() {
-	//TODO Parser
+	bool lookFl = player_said_any("look", "look at");
+	bool talkFl = player_said_any("talk", "talk to");
+	bool takeFl = player_said("take");
+	bool gearFl = player_said_any("push", "pull", "gear", "open", "close");
+
+	if (player_said("conv703a")) {
+		if (_G(kernel).trigger == 90)
+			conv_resume(conv_get_handle());
+		else
+			conv703a();
+	} else if (player_said("PRAYER WHEEL BROCHURE", "EMPTY NICHE") && inv_player_has("PRAYER WHEEL BROCHURE")) {
+		digi_play("com123", 1, 255, -1, 997);
+	} else if (player_said("PRAYER WHEEL BROCHURE", "PRAYER WHEEL #1") && inv_player_has("PRAYER WHEEL BROCHURE")) {
+		sub9EA78("703r04", _G(kernel).trigger);
+	} else if (player_said("PRAYER WHEEL BROCHURE", "PRAYER WHEEL #2") && inv_player_has("PRAYER WHEEL BROCHURE")) {
+		sub9EA78("703r09", _G(kernel).trigger);
+	} else if (player_said("PRAYER WHEEL BROCHURE", "PRAYER WHEEL #3") && inv_player_has("PRAYER WHEEL BROCHURE")) {
+		sub9EA78("703r10", _G(kernel).trigger);
+	} else if (player_said("PRAYER WHEEL BROCHURE", "PRAYER WHEEL #4") && inv_player_has("PRAYER WHEEL BROCHURE")) {
+		switch (_G(flags[V217])) {
+		case 1:
+			sub9EA78("704r09", _G(kernel).trigger);
+			break;
+			
+		case 2:
+			sub9EA78("705r04", _G(kernel).trigger);
+			break;
+
+		case 3:
+			sub9EA78("703r11", _G(kernel).trigger);
+			break;
+
+		case 4:
+			sub9EA78("705r14a", _G(kernel).trigger);
+			break;
+
+		case 5:
+			sub9EA78("706r10", _G(kernel).trigger);
+			break;
+
+		default:
+			break;
+		}
+	} // player_said("PRAYER WHEEL BROCHURE", "PRAYER WHEEL #4") && inv_player_has("PRAYER WHEEL BROCHURE")
+	else if (player_said("PRAYER WHEEL BROCHURE", "SERENITY WHEEL") && inv_player_has("PRAYER WHEEL BROCHURE") && inv_player_has("SERENITY WHEEL")) {
+		player_set_commands_allowed(false);
+		digi_play("703r11", 1, 255, -1, -1);
+		player_set_commands_allowed(true);
+	} else if (player_said("PRAYER WHEEL BROCHURE", "INSIGHT WHEEL") && inv_player_has("PRAYER WHEEL BROCHURE") && inv_player_has("INSIGHT WHEEL")) {
+		player_set_commands_allowed(false);
+		digi_play("705r04", 1, 255, -1, -1);
+		player_set_commands_allowed(true);
+	} else if (player_said("PRAYER WHEEL BROCHURE", "PEACE WHEEL") && inv_player_has("PRAYER WHEEL BROCHURE") && inv_player_has("PEACE WHEEL")) {
+		player_set_commands_allowed(false);
+		digi_play("704r09", 1, 255, -1, -1);
+		player_set_commands_allowed(true);
+	} else if (player_said("PRAYER WHEEL BROCHURE", "TRUTH WHEEL") && inv_player_has("PRAYER WHEEL BROCHURE") && inv_player_has("TRUTH WHEEL")) {
+		player_set_commands_allowed(false);
+		digi_play("705r14a", 1, 255, -1, -1);
+		player_set_commands_allowed(true);
+	} else if (player_said("PRAYER WHEEL BROCHURE", "WISDOM WHEEL") && inv_player_has("PRAYER WHEEL BROCHURE") && inv_player_has("WISDOM WHEEL")) {
+		player_set_commands_allowed(false);
+		digi_play("706r10", 1, 255, -1, -1);
+		player_set_commands_allowed(true);
+	} else if (talkFl && player_said_any("MONK #1", "MONK #2", "MONK #3", "MONK #4") && _G(flags[V286]))
+		digi_play("com142", 1, 255, -1, -1);
 
+	//TODO incomplete implementation
 }
 
 void Room703::daemon() {
@@ -413,6 +479,18 @@ void Room703::daemon() {
 void Room703::callback(frac16 myMessage, machine *sender) {
 	kernel_trigger_dispatchx(myMessage);
 }
+
+void Room703::conv703a() {
+	//TODO not implemented
+	warning("STUB conv703a");
+}
+
+void Room703::sub9EA78(const char *digiName, int32 trigger) {
+	//TODO not implemented
+	warning("STUB sub9EA78");
+}
+
+
 } // namespace Rooms
 } // namespace Riddle
 } // namespace M4
diff --git a/engines/m4/riddle/rooms/section7/room703.h b/engines/m4/riddle/rooms/section7/room703.h
index 0b5cb29f562..5a3e4ef5969 100644
--- a/engines/m4/riddle/rooms/section7/room703.h
+++ b/engines/m4/riddle/rooms/section7/room703.h
@@ -41,6 +41,8 @@ public:
 
 private:
 	static void callback(frac16 myMessage, machine *sender);
+	void conv703a();
+	void sub9EA78(const char *digiName, int32 trigger);
 	
 	machine *_monkMach = nullptr;
 	machine *_prayerWheelMach = nullptr;




More information about the Scummvm-git-logs mailing list