[Scummvm-git-logs] scummvm master -> f022ec8e62927c0e5f2e625d778ecc615fa4a661
Strangerke
noreply at scummvm.org
Fri Dec 6 06:44:59 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:
f022ec8e62 M4: RIDDLE: room 705: Some more work on parser
Commit: f022ec8e62927c0e5f2e625d778ecc615fa4a661
https://github.com/scummvm/scummvm/commit/f022ec8e62927c0e5f2e625d778ecc615fa4a661
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-12-06T07:44:41+01:00
Commit Message:
M4: RIDDLE: room 705: Some more work on 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 3017b08bab3..2c761d6e895 100644
--- a/engines/m4/riddle/rooms/section7/room705.cpp
+++ b/engines/m4/riddle/rooms/section7/room705.cpp
@@ -119,7 +119,7 @@ void Room705::init() {
player_set_commands_allowed(false);
ws_hide_walker(_G(my_walker));
_ripGoesDownStairsSeries = series_load("705 RIP GOES DOWN STAIRS", -1, nullptr);
- _ripStairsMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 320, 0, 100, 0, 0, triggerMachineByHashCallback, "rip stairs machine");
+ _ripStairsMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 320, 0, 100, 0, false, triggerMachineByHashCallback, "rip stairs machine");
sendWSMessage_10000(1, _ripStairsMach, _ripGoesDownStairsSeries, 4, 39, 160, _ripGoesDownStairsSeries, 39, 39, 0);
break;
@@ -138,7 +138,7 @@ void Room705::pre_parser() {
void Room705::parser() {
bool ecx = player_said_any("look", "look at");
- bool talkFl = player_said_any("talk", "talk to");
+ const bool talkFl = player_said_any("talk", "talk to");
bool edi = player_said("take");
bool gearFl = player_said_any("push", "pull", "gear", "open", "close");
@@ -277,8 +277,122 @@ void Room705::parser() {
default:
break;
}
- }
+ } // talkFl && player_said("MONK #9")
+ else if (talkFl && player_said("MONK #10")) {
+ switch (_G(kernel).trigger) {
+ case -1:
+ player_set_commands_allowed(false);
+ digi_play("com081", 1, 255, 2, -1);
+
+ break;
+
+ case 2:
+ _705Monk2Series = series_load("705 MONK 2", -1, nullptr);
+ _monkMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 256, false, triggerMachineByHashCallback, "monk");
+ sendWSMessage_10000(1, _monkMach, _705Monk2Series, 1, 14, 3, _705Monk2Series, 14, 14, 0);
+
+ break;
+
+ case 3:
+ sendWSMessage_10000(1, _monkMach, _705Monk2Series, 15, 19, -1, _705Monk2Series, 20, 22, 4);
+ sendWSMessage_1a0000(_monkMach, 9);
+ digi_play("705K01", 1, 255, 4, -1);
+
+ break;
+ case 4:
+ sendWSMessage_10000(1, _monkMach, _705Monk2Series, 23, 26, 5, _705Monk2Series, 26, 26, 0);
+ break;
+
+ case 5:
+ terminateMachine(_monkMach);
+ series_unload(_705Monk2Series);
+ player_set_commands_allowed(true);
+
+ break;
+
+ default:
+ break;
+ }
+ } // talkFl && player_said("MONK #10")
+ else if (talkFl && player_said("MONK #11")) {
+ switch (_G(kernel).trigger) {
+ case -1:
+ player_set_commands_allowed(false);
+ digi_play("com081", 1, 255, 2, -1);
+
+ break;
+
+ case 2:
+ _705Monk3Series = series_load("705 MONK 3", -1, nullptr);
+ _monkMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 640, -53, 100, 256, false, triggerMachineByHashCallback, "monk");
+ sendWSMessage_10000(1, _monkMach, _705Monk3Series, 1, 9, 3, _705Monk3Series, 9, 9, 0);
+
+ break;
+
+ case 3:
+ sendWSMessage_10000(1, _monkMach, _705Monk3Series, 10, 12, -1, _705Monk3Series, 13, 14, 4);
+ sendWSMessage_1a0000(_monkMach, 9);
+ digi_play("705L01", 1, 255, 4, -1);
+
+ break;
+
+ case 4:
+ sendWSMessage_10000(1, _monkMach, _705Monk3Series, 15, 18, 5, _705Monk3Series, 18, 18, 0);
+ break;
+
+ case 5:
+ terminateMachine(_monkMach);
+ series_unload(_705Monk3Series);
+ player_set_commands_allowed(true);
+
+ break;
+
+ default:
+ break;
+ }
+ } // talkFl && player_said("MONK #11")
+ else if (talkFl && player_said("MONK #12")) {
+ switch (_G(kernel).trigger) {
+ case -1:
+ player_set_commands_allowed(false);
+ digi_play("com081", 1, 255, 2, -1);
+
+ break;
+
+ case 2:
+ _705Monk4Series = series_load("705 MONK 4", -1, nullptr);
+ _monkMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 256, false, triggerMachineByHashCallback, "monk");
+ sendWSMessage_10000(1, _monkMach, _705Monk4Series, 1, 12, 3, _705Monk4Series, 12, 12, 4);
+
+ break;
+
+ case 3:
+ sendWSMessage_10000(1, _monkMach, _705Monk4Series, 13, 15, -1, _705Monk4Series, 16, 20, 4);
+ sendWSMessage_1a0000(_monkMach, 9);
+ digi_play("705N01", 1, 255, 4, -1);
+
+ break;
+
+ case 4:
+ sendWSMessage_10000(1, _monkMach, _705Monk4Series, 21, 24, 5, _705Monk4Series, 24, 24, 0);
+ break;
+
+ case 5:
+ terminateMachine(_monkMach);
+ series_unload(_705Monk4Series);
+ _field60_mode = 134;
+ _field64_should = 135;
+ _G(kernel).trigger_mode = KT_DAEMON;
+ kernel_timing_trigger(10, 177, nullptr);
+ _G(kernel).trigger_mode = KT_PARSE;
+
+ break;
+
+ default:
+ break;
+ }
+ } // talkFl && player_said("MONK #12")
@@ -290,7 +404,7 @@ void Room705::parser() {
}
void Room705::daemon() {
- bool takeFl = player_said("take");
+ const bool takeFl = player_said("take");
switch (_G(kernel).trigger) {
case 70:
diff --git a/engines/m4/riddle/rooms/section7/room705.h b/engines/m4/riddle/rooms/section7/room705.h
index 74bcc491e18..83813ee3b5a 100644
--- a/engines/m4/riddle/rooms/section7/room705.h
+++ b/engines/m4/riddle/rooms/section7/room705.h
@@ -51,6 +51,9 @@ private:
int32 _705Eye1aSeries = 0;
int32 _705Eye4aSeries = 0;
int32 _705Monk1Series = 0;
+ int32 _705Monk2Series = 0;
+ int32 _705Monk3Series = 0;
+ int32 _705Monk4Series = 0;
int32 _ripGoesDownStairsSeries = 0;
int32 _ripTrekMedReachPos1Series = 0;
More information about the Scummvm-git-logs
mailing list