[Scummvm-git-logs] scummvm master -> 7b82933ce0e016c65aa119353a3323dd5912aef6
Strangerke
noreply at scummvm.org
Sun Nov 24 18:13:22 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:
7b82933ce0 M4: RIDDLE: room 702 - Finish the implementation of daemon
Commit: 7b82933ce0e016c65aa119353a3323dd5912aef6
https://github.com/scummvm/scummvm/commit/7b82933ce0e016c65aa119353a3323dd5912aef6
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-11-24T19:12:52+01:00
Commit Message:
M4: RIDDLE: room 702 - Finish the implementation of daemon
Changed paths:
engines/m4/riddle/rooms/section7/room702.cpp
engines/m4/riddle/rooms/section7/room702.h
diff --git a/engines/m4/riddle/rooms/section7/room702.cpp b/engines/m4/riddle/rooms/section7/room702.cpp
index ebcc7cb13a0..0f406411bda 100644
--- a/engines/m4/riddle/rooms/section7/room702.cpp
+++ b/engines/m4/riddle/rooms/section7/room702.cpp
@@ -41,7 +41,7 @@ void Room702::init() {
_field40 = 0;
_field44 = 0;
_field48 = 0;
- _field4C = -1;
+ _field4C_triggerNum = -1;
_field50 = 0;
_field54 = 0;
_field58 = -1;
@@ -185,20 +185,212 @@ void Room702::daemon() {
break;
case 51:
+ digi_play("702G04", 1, 255, 52, -1);
+ sendWSMessage_10000(1, _guardMach, _guardStepsAsideTalksSeries, 41, 46, -1, _guardStepsAsideTalksSeries, 46, 41, 1);
+ sendWSMessage_10000(1, _guardShadowMach, _702GuardShadow2Series, 41, 46, -1, _702GuardShadow2Series, 46, 41, 1);
+
+ break;
+
case 52:
+ sendWSMessage_10000(1, _guardMach, _guardStepsAsideTalksSeries, 46, 46, -1, _guardStepsAsideTalksSeries, 46, 46, 0);
+ sendWSMessage_10000(1, _guardShadowMach, _702GuardShadow2Series, 46, 46, -1, _702GuardShadow2Series, 46, 46, 0);
+ _field40 = 1;
+ player_set_commands_allowed(true);
+
+ break;
+
case 60:
+ digi_play("702R08", 1, 255, 61, -1);
+ break;
+
case 61:
+ sendWSMessage_120000(_G(my_walker), 62);
+ break;
+
case 62:
+ digi_play("702G01", 1, 255, 63, -1);
+ sendWSMessage_10000(1, _guardMach, _guardTalksAndBowsSeries, 8, 11, -1, _guardTalksAndBowsSeries, 8, 11, 1);
+ sendWSMessage_10000(1, _guardShadowMach, _702GuardShadow1Series, 8, 11, -1, _702GuardShadow1Series, 8, 11, 1);
+ break;
+
case 63:
+ sendWSMessage_10000(1, _guardMach, _guardTalksAndBowsSeries, 11, 11, -1, _guardTalksAndBowsSeries, 11, 11, 0);
+ sendWSMessage_10000(1, _guardShadowMach, _702GuardShadow1Series, 11, 11, -1, _702GuardShadow1Series, 11, 11, 0);
+ digi_play("702R09", 1, 255, 64, -1);
+ sendWSMessage_130000(_G(my_walker), -1);
+
+ break;
+
case 64:
+ digi_play("702G02", 1, 255, 65, -1);
+ sendWSMessage_10000(1, _guardMach, _guardTalksAndBowsSeries, 8, 11, -1, _guardTalksAndBowsSeries, 8, 11, 1);
+ sendWSMessage_10000(1, _guardShadowMach, _702GuardShadow1Series, 8, 11, -1, _702GuardShadow1Series, 8, 11, 1);
+ sendWSMessage_150000(_G(my_walker), -1);
+
+ break;
+
case 65:
+ sendWSMessage_10000(1, _guardMach, _guardTalksAndBowsSeries, 11, 11, -1, _guardTalksAndBowsSeries, 11, 11, 0);
+ sendWSMessage_10000(1, _guardShadowMach, _702GuardShadow1Series, 11, 11, -1, _702GuardShadow1Series, 11, 11, 0);
+ digi_play("702R10", 1, 255, 47, -1);
+
+ break;
+
case 100:
+ if (_field4C_triggerNum != -1) {
+ kernel_trigger_dispatchx(_field4C_triggerNum);
+ _field4C_triggerNum = -1;
+ }
+
+ kernel_timing_trigger(1, 101, nullptr);
+
+ break;
+
case 101:
+ if (_field44 == 1000) {
+ switch (_field48) {
+ case 1100:
+ ws_hide_walker(_G(my_walker));
+ player_set_commands_allowed(false);
+ player_update_info(_G(my_walker), &_G(player_info));
+ _ripTalksGuardMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, _G(player_info).x, _G(player_info).y, _G(player_info).scale, 256, true, callback, "rip talks guard");
+ _ripTalksGuardShadowMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, _G(player_info).x, _G(player_info).y, _G(player_info).scale, 256, false, callback, "rip talks guard SHADOW");
+ sendWSMessage_10000(1, _ripTalksGuardMach, _ripShowsRingSeries, 1, 1, -1, _ripShowsRingSeries, 1, 1, 0);
+ sendWSMessage_10000(1, _ripTalksGuardShadowMach, _safariShadow1Series, 1, 1, 100, _safariShadow1Series, 1, 1, 0);
+
+ _field48 = 1102;
+ _field50 = 2000;
+ _field54 = 2100;
+
+ kernel_trigger_dispatchx(kernel_trigger_create(110));
+
+ break;
+
+ case 1102:
+ conv_load("conv702a",10,10,103);
+ conv_export_value_curr(_G(flags[V211]), 0);
+ conv_export_value_curr(_G(flags[V213]), 1);
+ conv_export_value_curr(_G(flags[V222]), 2);
+ conv_play(conv_get_handle());
+
+ _field48 = 1103;
+
+ kernel_trigger_dispatchx(kernel_trigger_create(100));
+
+ break;
+
+ case 1103:
+ case 1104:
+ sendWSMessage_10000(1, _ripTalksGuardMach, _ripShowsRingSeries, 1, 1, 100, _ripShowsRingSeries, 1, 1, 0);
+ break;
+
+ case 1105:
+ terminateMachine(_ripTalksGuardMach);
+ terminateMachine(_ripTalksGuardShadowMach);
+
+ _field54 = 2106;
+
+ ws_unhide_walker(_G(my_walker));
+ player_set_commands_allowed(true);
+
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ break;
+
case 102:
+ kernel_trigger_dispatchx(kernel_trigger_create(100));
+ break;
+
case 103:
+ _field48 = 1105;
+ break;
+
case 110:
+ if (_field50 == 2000) {
+ switch (_field54) {
+ case 2100:
+ case 2101:
+ case 2103:
+ case 2104:
+ case 2106:
+ case 2109:
+ kernel_timing_trigger(1, 111, nullptr);
+ break;
+
+ default:
+ break;
+
+ }
+ }
+
+ break;
+
case 111:
+ if (_field50 == 2000) {
+ switch (_field54) {
+ case 2100:
+ case 2101:
+ sendWSMessage_10000(1, _guardMach, _guardTalksAndBowsSeries, 8, 8, 110, _guardTalksAndBowsSeries, 8, 8, 0);
+ sendWSMessage_10000(1, _guardShadowMach, _702GuardShadow1Series, 8, 8, -1, _702GuardShadow1Series, 8, 8, 0);
+ _field54 = 2101;
+
+ break;
+
+ case 2103:
+ _G(kernel).trigger_mode = KT_PARSE;
+ digi_play(conv_sound_to_play(), 1, 255, 1, -1);
+ _G(kernel).trigger_mode = KT_DAEMON;
+ _field54 = 2104;
+ kernel_timing_trigger(1, 111, nullptr);
+
+ break;
+ case 2104: {
+ int32 rnd = imath_ranged_rand(8, 10);
+ sendWSMessage_10000(1, _guardMach, _guardTalksAndBowsSeries, rnd, rnd, 110, _guardTalksAndBowsSeries, rnd, rnd, 0);
+ sendWSMessage_10000(1, _guardShadowMach, _702GuardShadow1Series, rnd, rnd, -1, _702GuardShadow1Series, rnd, rnd, 0);
+ }
+
+ break;
+
+ case 2106:
+ sendWSMessage_10000(1, _guardMach, _guardTalksAndBowsSeries, 8, 8, -1, _guardTalksAndBowsSeries, 8, 8, 0);
+ sendWSMessage_10000(1, _guardShadowMach, _702GuardShadow1Series, 8, 8, -1, _702GuardShadow1Series, 8, 8, 0);
+
+ break;
+
+ case 2107:
+ sendWSMessage_10000(1, _guardMach, _guardTalksAndBowsSeries, 48, 58, 110, _guardTalksAndBowsSeries, 58, 58, 0);
+ sendWSMessage_10000(1, _guardShadowMach, _702GuardShadow1Series, 48, 58, -1, _702GuardShadow1Series, 58, 58, 0);
+ _field54 = 2108;
+
+ break;
+
+ case 2108:
+ digi_play("702_S01", 1, 255, -1, -1);
+ sendWSMessage_10000(1, _guardMach, _guardTalksAndBowsSeries, 58, 82, 110, _guardTalksAndBowsSeries, 82, 82, 0);
+ sendWSMessage_10000(1, _guardShadowMach, _702GuardShadow1Series, 58, 82, -1, _702GuardShadow1Series, 82, 82, 0);
+ _field54 = 2109;
+
+ break;
+
+ case 2109:
+ terminateMachine(_field10_mach);
+ _field54 = 2103;
+ kernel_timing_trigger(1, 111, nullptr);
+
+ break;
+
+ default:
+ break;
+ }
+ }
break;
+
default:
break;
}
diff --git a/engines/m4/riddle/rooms/section7/room702.h b/engines/m4/riddle/rooms/section7/room702.h
index bd48400c5f9..14a986fedea 100644
--- a/engines/m4/riddle/rooms/section7/room702.h
+++ b/engines/m4/riddle/rooms/section7/room702.h
@@ -46,7 +46,7 @@ private:
int32 _field40 = 0;
int32 _field44 = 0;
int32 _field48 = 0;
- int32 _field4C = 0;
+ int32 _field4C_triggerNum = 0;
int32 _field50 = 0;
int32 _field54 = 0;
int32 _field58 = 0;
@@ -60,9 +60,11 @@ private:
int32 _ripShowsRingSeries = 0;
int32 _safariShadow1Series = 0;
+ machine *_field10_mach = nullptr;
machine *_guardMach = nullptr;
machine *_guardShadowMach = nullptr;
-
+ machine *_ripTalksGuardMach = nullptr;
+ machine *_ripTalksGuardShadowMach = nullptr;
};
} // namespace Rooms
More information about the Scummvm-git-logs
mailing list