[Scummvm-git-logs] scummvm master -> 51470b973ef2a494e4284543a9c1674c924fe290
dreammaster
noreply at scummvm.org
Tue Sep 3 04:07:46 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:
51470b973e M4: RIDDLE: Added room 501 parser
Commit: 51470b973ef2a494e4284543a9c1674c924fe290
https://github.com/scummvm/scummvm/commit/51470b973ef2a494e4284543a9c1674c924fe290
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-09-02T21:07:12-07:00
Commit Message:
M4: RIDDLE: Added room 501 parser
Changed paths:
engines/m4/riddle/rooms/section5/room501.cpp
diff --git a/engines/m4/riddle/rooms/section5/room501.cpp b/engines/m4/riddle/rooms/section5/room501.cpp
index 1ae2390f103..d84fe7eaaed 100644
--- a/engines/m4/riddle/rooms/section5/room501.cpp
+++ b/engines/m4/riddle/rooms/section5/room501.cpp
@@ -88,11 +88,172 @@ void Room501::daemon() {
}
void Room501::parser() {
+ bool lookFlag = player_said_any("look", "look at");
+ bool takeFlag = player_said("take");
+ bool talkFlag = player_said_any("talk", "talk to");
+ bool useFlag = player_said("gear");
+
if (player_said("conv501a")) {
conv501a();
- }
- // TODO
- else {
+ } else if (_G(kernel).trigger == 747) {
+ _G(kernel).trigger_mode = KT_DAEMON;
+ kernel_timing_trigger(1, 509);
+ } else if (lookFlag && player_said(" ")) {
+ digi_play("COM001", 1, 255, -1, 997);
+ } else if (lookFlag && player_said("CLOCK") && _G(flags)[V143] == 1) {
+ digi_play("501R05", 1);
+ } else if (lookFlag && player_said("CLOCK") && _G(flags)[V143] == 0) {
+ switch (_G(kernel).trigger) {
+ case -1:
+ case 666:
+ player_set_commands_allowed(false);
+ digi_play("501R05", 1, 255, 2);
+ break;
+ case 2:
+ _G(flags)[V143] = 1;
+ digi_play("501R05A", 1);
+ break;
+ default:
+ break;
+ }
+ } else if (lookFlag && player_said("POSTCARD RACK")) {
+ digi_play("501R06", 1);
+ } else if (lookFlag && player_said_any("PUFFIN", "PUFFINS", "PUFFIN POSTER") &&
+ _G(flags)[V145] == 1) {
+ digi_play("501R07", 1);
+ } else if (lookFlag && player_said_any("PUFFIN", "PUFFINS", "PUFFIN POSTER") &&
+ _G(flags)[V145] == 0) {
+ switch (_G(kernel).trigger) {
+ case -1:
+ case 666:
+ player_set_commands_allowed(false);
+ digi_play("501R07", 1, 255, 2);
+ break;
+ case 2:
+ _G(flags)[V145] = 1;
+ digi_play("501R07A", 1);
+ break;
+ default:
+ break;
+ }
+ } else if (lookFlag && player_said("STELE")) {
+ switch (_G(kernel).trigger) {
+ case -1:
+ case 666:
+ player_set_commands_allowed(false);
+
+ if (!_G(flags)[V146]) {
+ digi_play("501R08", 1, 255, 2);
+ _G(flags)[V146]++;
+ } else {
+ if (_G(flags)[V146] < 2)
+ ++_G(flags)[V146];
+
+ digi_play("501R08", 1);
+ }
+ break;
+
+ case 2:
+ _G(kernel).trigger_mode = KT_DAEMON;
+ digi_play("501R08A", 1, 255, _G(flags)[V148] ? 612 : 544);
+ break;
+ default:
+ break;
+ }
+ } else if (lookFlag && player_said("POSTER")) {
+ // No implementation
+ } else if (takeFlag && player_said("POSTCARD RACK")) {
+ digi_play("COM004", 1, 255, -1, 997);
+ } else if (takeFlag && player_said("MAGAZINES")) {
+ digi_play("COM005", 1, 255, -1, 997);
+ } else if (takeFlag && player_said("STELE")) {
+ digi_play("501R19", 1);
+ } else if (takeFlag && player_said("PUFFIN")) {
+ digi_play("501R20", 1);
+ } else if (takeFlag && player_said("CLOCK")) {
+ digi_play("501R21", 1);
+ } else if (takeFlag) {
+ Common::String digiName = Common::String::format("COM%.3d",
+ imath_ranged_rand(6, 11));
+ digi_play(digiName.c_str(), 1, 255, -1, 997);
+ } else if (player_said("DRIFTWOOD PUFFIN", "AGENT") &&
+ _G(flags)[V041] == 1 && _G(flags)[V144] == 1) {
+ player_set_commands_allowed(false);
+ _G(kernel).trigger_mode = KT_DAEMON;
+ kernel_timing_trigger(1, 555);
+ } else if (player_said("DRIFTWOOD PUFFIN", "AGENT") &&
+ (_G(flags)[V041] == 0 || _G(flags)[V144] == 0)) {
+ player_set_commands_allowed(false);
+ _G(kernel).trigger_mode = KT_DAEMON;
+ kernel_timing_trigger(1, 594);
+ } else if (useFlag && player_said("SOFA")) {
+ digi_play("COM025", 1, 255, -1, 997);
+ } else if (useFlag && player_said("PHONE")) {
+ digi_play("COM026", 1, 255, -1, 997);
+ } else if (useFlag && !inv_player_has(_G(player).noun)) {
+ digi_play("COM027", 1, 255, -1, 997);
+ } else if (player_said("WALK THROUGH") && !player_been_here(504)) {
+ switch (_G(kernel).trigger) {
+ case -1:
+ case 666:
+ ws_walk(595, 267, nullptr, 2, 3);
+ break;
+ case 2:
+ player_set_commands_allowed(false);
+ digi_play("501R40", 1);
+ ws_walk(287, 268, nullptr, 3, 9);
+ break;
+ case 3:
+ player_set_commands_allowed(true);
+ break;
+ default:
+ break;
+ }
+ } else if (player_said("WALK THROUGH") && player_been_here(504)) {
+ switch (_G(kernel).trigger) {
+ case -1:
+ ws_walk(595, 267, nullptr, 2, 3);
+ break;
+ case 2:
+ player_set_commands_allowed(false);
+ disable_player_commands_and_fade_init(3);
+ break;
+ case 3:
+ _G(game).setRoom(504);
+ if (_G(flags)[V035] == 1)
+ _G(flags)[V147] = 1;
+ break;
+ default:
+ break;
+ }
+ } else if (player_said("JOURNAL", "STELE")) {
+ if (_G(flags)[V148] == 1) {
+ digi_play("501R34", 1);
+ } else {
+ _G(kernel).trigger_mode = KT_DAEMON;
+ kernel_timing_trigger(1, 544);
+ }
+ } else if (lookFlag && player_said("JOURNAL") && !player_said("STELE")) {
+ digi_play("501R35", 1);
+ } else if (talkFlag && player_said("AGENT")) {
+ switch (_G(kernel).trigger) {
+ case -1:
+ case 666:
+ player_set_commands_allowed(false);
+ _val1 = 1;
+ _val3 = 3;
+ _val6 = kernel_trigger_create(2);
+ _G(kernel).trigger_mode = KT_DAEMON;
+ kernel_timing_trigger(2, 501);
+ break;
+ case 2:
+ _val3 = 2;
+ player_set_commands_allowed(true);
+ break;
+ default:
+ break;
+ }
+ } else {
return;
}
More information about the Scummvm-git-logs
mailing list