[Scummvm-git-logs] scummvm master -> 621ab52da118531c7c3190f6c071037a53010a47
Strangerke
noreply at scummvm.org
Tue Nov 26 21:46:31 UTC 2024
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
895bff1dd5 M4: RIDDLE: room 703 - Implement daemon up to trigger 91
621ab52da1 M4: RIDDLE: room 703 - Finish the implementation of daemon
Commit: 895bff1dd5af2561cbd88f59029bf49803abd0f8
https://github.com/scummvm/scummvm/commit/895bff1dd5af2561cbd88f59029bf49803abd0f8
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-11-26T21:49:24+01:00
Commit Message:
M4: RIDDLE: room 703 - Implement daemon up to trigger 91
Changed paths:
engines/m4/riddle/rooms/section7/room703.cpp
diff --git a/engines/m4/riddle/rooms/section7/room703.cpp b/engines/m4/riddle/rooms/section7/room703.cpp
index 559fbe30475..55e2f95bf12 100644
--- a/engines/m4/riddle/rooms/section7/room703.cpp
+++ b/engines/m4/riddle/rooms/section7/room703.cpp
@@ -139,9 +139,160 @@ void Room703::pre_parser() {
}
void Room703::parser() {
+ //TODO Parser
+
}
void Room703::daemon() {
+ bool ecx = player_said("take");
+
+ switch (_G(kernel).trigger) {
+ case 70:
+ player_set_commands_allowed(false);
+ setGlobals1(_ripTrekMedReachHandPos1Series, 1, 5, 7, 7, 0, 5, 10, 10, 10, 0, 10, 1, 1, 1, 0, 0, 0, 0, 0, 0);
+ sendWSMessage_110000(_G(my_walker), 71);
+
+ break;
+
+ case 71:
+ kernel_timing_trigger(5, 72, nullptr);
+ break;
+
+ case 72:
+ sendWSMessage_120000(_G(my_walker), 73);
+ break;
+
+ case 73:
+ kernel_timing_trigger(5, 74, nullptr);
+ break;
+
+ case 74:
+ if (_G(flags[V217])) {
+ terminateMachine(_prayerWheelMach);
+ switch (_G(flags[V217])) {
+ case 1:
+ inv_give_to_player("PEACE WHEEL");
+ _G(flags[V217]) = 0;
+ player_update_info(_G(my_walker), &_G(player_info));
+ digi_play("950_S40", 2, 255, -1, 950);
+ kernel_examine_inventory_object("PING PEACE WHEEL", _G(master_palette), 5, 1, 362, 225, 75, nullptr, -1);
+
+ break;
+
+ case 2:
+ inv_give_to_player("INSIGHT WHEEL");
+ _G(flags[V217]) = 0;
+ player_update_info(_G(my_walker), &_G(player_info));
+ digi_play("950_S40", 2, 255, -1, 950);
+ kernel_examine_inventory_object("PING INSIGHT WHEEL", _G(master_palette), 5, 1, 362, 225, 75, nullptr, -1);
+
+ break;
+
+ case 3:
+ inv_give_to_player("SERENITY WHEEL");
+ _G(flags[V217]) = 0;
+ player_update_info(_G(my_walker), &_G(player_info));
+ digi_play("950_S40", 2, 255, -1, 950);
+ kernel_examine_inventory_object("PING SERENITY WHEEL", _G(master_palette), 5, 1, 362, 225, 75, nullptr, -1);
+
+ break;
+
+ case 4:
+ inv_give_to_player("TRUTH WHEEL");
+ _G(flags[V217]) = 0;
+ player_update_info(_G(my_walker), &_G(player_info));
+ digi_play("950_S40", 2, 255, -1, 950);
+ kernel_examine_inventory_object("PING TRUTH WHEEL", _G(master_palette), 5, 1, 362, 225, 75, nullptr, -1);
+
+ break;
+
+ case 5:
+ inv_give_to_player("WISDOM WHEEL");
+ _G(flags[V217]) = 0;
+ player_update_info(_G(my_walker), &_G(player_info));
+ digi_play("950_S40", 2, 255, -1, 950);
+ kernel_examine_inventory_object("PING WISDOM WHEEL", _G(master_palette), 5, 1, 362, 225, 75, nullptr, -1);
+
+ break;
+
+ default:
+ break;
+ }
+ }
+ break;
+
+ case 75:
+ sendWSMessage_130000(_G(my_walker), 76);
+ break;
+
+ case 76:
+ sendWSMessage_150000(_G(my_walker), 77);
+ break;
+
+ case 77:
+ hotspot_set_active(_G(currentSceneDef).hotspots, "EMPTY NICHE", true);
+ hotspot_set_active(_G(currentSceneDef).hotspots, "PRAYER WHEEL #4", false);
+ player_set_commands_allowed(true);
+
+ break;
+
+ case 80:
+ player_set_commands_allowed(false);
+ setGlobals1(_ripTrekMedReachHandPos1Series, 1, 5, 5, 5, 0, 5, 10, 10, 10, 0, 10, 1, 1, 1, 0, 0, 0, 0, 0, 0);
+ sendWSMessage_110000(_G(my_walker), 81);
+
+ break;
+
+ case 81:
+ kernel_timing_trigger(5, 82, nullptr);
+ break;
+
+ case 82:
+ sendWSMessage_120000(_G(my_walker), 83);
+ break;
+
+ case 83:
+ if (ecx && _G(player).click_y <= 374) {
+ switch (imath_ranged_rand(1, 3)) {
+ case 1:
+ digi_play("com077", 1, 255, 84, -1);
+ break;
+
+ case 2:
+ digi_play("com078", 1, 255, 84, -1);
+ break;
+
+ case 3:
+ digi_play("com079", 1, 255, 84, -1);
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ break;
+
+ case 84:
+ sendWSMessage_130000(_G(my_walker), 85);
+ break;
+
+ case 85:
+ sendWSMessage_150000(_G(my_walker), 86);
+ break;
+
+ case 86:
+ case 91:
+ player_set_commands_allowed(true);
+ break;
+
+ case 123:
+ case 127:
+ case 140:
+ case 141:
+ series_unload(_703RipGoesDownStairsSeries);
+ break;
+ }
}
void Room703::callback(frac16 myMessage, machine *sender) {
Commit: 621ab52da118531c7c3190f6c071037a53010a47
https://github.com/scummvm/scummvm/commit/621ab52da118531c7c3190f6c071037a53010a47
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-11-26T22:46:21+01:00
Commit Message:
M4: RIDDLE: room 703 - Finish the implementation of daemon
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 55e2f95bf12..2cf26e1fe67 100644
--- a/engines/m4/riddle/rooms/section7/room703.cpp
+++ b/engines/m4/riddle/rooms/section7/room703.cpp
@@ -287,11 +287,126 @@ void Room703::daemon() {
break;
case 123:
+ if (_field5C == 124) {
+ switch (_field60) {
+ case 121:
+ _703Eye4aSeries = series_load("703EYE4a", -1, nullptr);
+ _field60 = 922;
+ _monkMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 640, -53, 100, 256, false, callback, "monk");
+ sendWSMessage_10000(1, _monkMach, _703Eye4aSeries, 1, 5, 123, _703Eye4aSeries, 5, 5, 0);
+
+ break;
+
+ case 122:
+ terminateMachine(_monkMach);
+ series_unload(_703Eye4aSeries);
+ conv_resume(conv_get_handle());
+
+ break;
+
+ case 125:
+ conv_load("conv703a", 10, 10, 91);
+ conv_export_value_curr(0, 0);
+ conv_export_value_curr(_G(flags[V211]), 1);
+ conv_export_value_curr(_G(flags[V213]), 2);
+ conv_export_value_curr((_G(flags[V217]) == 5) ? 1 : 0, 0);
+ conv_play(conv_get_handle());
+
+ break;
+
+ case 922:
+ switch (imath_ranged_rand(1, 2)) {
+ case 1:
+ _field60 = 923;
+ break;
+
+ case 2:
+ _field60 = 924;
+ break;
+
+ default:
+ break;
+ }
+
+ kernel_timing_trigger(10, 123, nullptr);
+
+ break;
+
+ case 923:
+ _field60 = 925;
+
+ sendWSMessage_10000(1, _monkMach, _703Eye4aSeries, 6, 11, -1, _703Eye4aSeries, 12, 15, 4);
+ sendWSMessage_1a0000(_monkMach, 9);
+ digi_play(conv_sound_to_play(), 1, 255, 123, -1);
+
+ break;
+
+ case 924:
+ _field60 = 925;
+
+ sendWSMessage_10000(1, _monkMach, _703Eye4aSeries, 6, 9, -1, _703Eye4aSeries, 12, 16, 4);
+ sendWSMessage_1a0000(_monkMach, 9);
+ digi_play(conv_sound_to_play(), 1, 255, 123, -1);
+
+ break;
+
+ case 925:
+ _field60 = 926;
+ sendWSMessage_10000(1, _monkMach, _703Eye4aSeries, 17, 20, 123, _703Eye4aSeries, 20, 20, 0);
+ break;
+
+ case 926:
+ _field60 = 122;
+ kernel_timing_trigger(10, 123, nullptr);
+
+ break;
+
+ default:
+
+ break;
+ }
+ }
+
+ break;
+
case 127:
+ if (_field5C == 124) {
+ switch (_field60) {
+ case 121:
+ case 122:
+ case 124:
+ case 125:
+ case 126:
+ case 127:
+ case 922:
+ case 923:
+ case 924:
+ case 925:
+ case 926:
+ kernel_timing_trigger(1, 123, nullptr);
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ break;
+
case 140:
+ player_set_commands_allowed(true);
+ ws_unhide_walker(_G(my_walker));
+ terminateMachine(_ripStairsMach);
+ kernel_timing_trigger(10, 141, nullptr);
+
+ break;
+
case 141:
series_unload(_703RipGoesDownStairsSeries);
break;
+
+ default:
+ break;
}
}
diff --git a/engines/m4/riddle/rooms/section7/room703.h b/engines/m4/riddle/rooms/section7/room703.h
index b2b4bdf1ab7..f1741a83adc 100644
--- a/engines/m4/riddle/rooms/section7/room703.h
+++ b/engines/m4/riddle/rooms/section7/room703.h
@@ -42,9 +42,14 @@ public:
private:
static void callback(frac16 myMessage, machine *sender);
+ machine *_monkMach = nullptr;
machine *_prayerWheelMach = nullptr;
machine *_ripStairsMach = nullptr;
+ int32 _field5C = 0;
+ int32 _field60 = 0;
+
+ int32 _703Eye4aSeries = 0;
int32 _703RipGoesDownStairsSeries = 0;
int32 _ripTrekMedReachHandPos1Series = 0;
};
More information about the Scummvm-git-logs
mailing list