[Scummvm-git-logs] scummvm master -> b8dd9b52025d916afc95edfa4be790cc0588efbd
dreammaster
noreply at scummvm.org
Tue Aug 6 03:59: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:
b8dd9b5202 M4: RIDDLE: Added room 305 daemon
Commit: b8dd9b52025d916afc95edfa4be790cc0588efbd
https://github.com/scummvm/scummvm/commit/b8dd9b52025d916afc95edfa4be790cc0588efbd
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-08-05T20:59:41-07:00
Commit Message:
M4: RIDDLE: Added room 305 daemon
Changed paths:
engines/m4/riddle/rooms/section3/room305.cpp
diff --git a/engines/m4/riddle/rooms/section3/room305.cpp b/engines/m4/riddle/rooms/section3/room305.cpp
index 91b4d3806d5..22909c78d86 100644
--- a/engines/m4/riddle/rooms/section3/room305.cpp
+++ b/engines/m4/riddle/rooms/section3/room305.cpp
@@ -245,6 +245,330 @@ void Room305::init() {
}
void Room305::daemon() {
+ int frame;
+
+ switch (_G(kernel).trigger) {
+ case 2:
+ series_play(_G(flags)[V000] == 1 ? "395 jelly beans" : "jelly beans",
+ 0, 0, 3, 7, 0, 100, 0, 0, 49, 61);
+ digi_play("305_s01", 3, 140);
+ break;
+
+ case 3:
+ series_play(_G(flags)[V000] == 1 ? "395 jelly beans" : "jelly beans",
+ 0, 0, 2, 7, 0, 100, 0, 0, 0, 48);
+ break;
+
+ case 10:
+ ws_walk(1220, 296, 0, 50, 9);
+ break;
+
+ case 40:
+ sendWSMessage_10000(_stander, 1199, 296, 9, 41, 0);
+ break;
+
+ case 41:
+ sendWSMessage_10000(_stander, 494, 278, 8, 42, 1);
+ break;
+
+ case 42:
+ sendWSMessage_60000(_stander);
+ _stander = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 494, 278, 73, 0xf00, 1,
+ triggerMachineByHashCallbackNegative, "fl stander");
+ _G(kernel).trigger_mode = KT_DAEMON;
+ sendWSMessage_10000(1, _stander, _feng3, 1, 1, 400, _feng3, 1, 6, 1);
+ _val6 = _val7 = 1;
+ setShadow5(true);
+ _G(player).disable_hyperwalk = false;
+ break;
+
+ case 50:
+ player_set_commands_allowed(true);
+ break;
+
+ case 200:
+ if (!_val8 && !_conv1 && _val1 != -1) {
+ kernel_trigger_dispatchx(_val1);
+ _val1 = -1;
+
+ if (_val2) {
+ ws_unhide_walker();
+ _val2 = 0;
+ }
+ }
+
+ kernel_trigger_dispatchx(kernel_trigger_create(201));
+ break;
+
+ case 201:
+ switch (_val8) {
+ case 0:
+ switch (_conv1) {
+ case 0:
+ sendWSMessage_10000(1, _rip6, 1, 1, 1, 200, 1, 1, 1, 0);
+ break;
+
+ case 1:
+ sendWSMessage_10000(1, _rip6, _rip3, 1, 6, 200, _rip3, 6, 6, 0);
+ _val8 = 1;
+ break;
+
+ case 3:
+ sendWSMessage_10000(1, _rip6, _rip2, 1, 16, 200, _rip2, 16, 16, 0);
+ _val8 = 3;
+ break;
+
+ case 5:
+ sendWSMessage_10000(1, _rip6, _rip1, 1, 12, 200, _rip1, 12, 12, 0);
+ _val8 = 5;
+ break;
+
+ case 7:
+ terminateMachineAndNull(_rip6);
+ terminateMachineAndNull(_rip5);
+ ws_unhide_walker();
+ player_set_commands_allowed(true);
+ break;
+
+ default:
+ break;
+ }
+
+ case 1:
+ if (_conv1 == 1) {
+ sendWSMessage_10000(1, _rip6, _rip3, 6, 6, 200, _rip3, 6, 6, 0);
+ } else {
+ sendWSMessage_10000(1, _rip6, _rip3, 6, 1, 200, 1, 1, 1, 0);
+ _val8 = 5;
+ }
+ break;
+
+ case 3:
+ if (_conv1 == 3) {
+ sendWSMessage_10000(1, _rip6, _rip2, 16, 16, 200, _rip2, 16, 16, 0);
+ } else {
+ sendWSMessage_10000(1, _rip6, _rip2, 16, 1, 200, 1, 1, 1, 0);
+ _val8 = 0;
+ }
+ break;
+
+ case 5:
+ if (_conv1 == 5) {
+ sendWSMessage_10000(1, _rip6, _rip1, 12, 12, 200, _rip1, 12, 12, 0);
+ } else {
+ sendWSMessage_10000(1, _rip6, _rip1, 12, 1, 200, 1, 1, 1, 0);
+ _val8 = 0;
+ }
+ break;
+
+ default:
+ break;
+ }
+ break;
+
+ case 300:
+ if (!_val8 && !_conv1 && _val1 != -1) {
+ kernel_trigger_dispatchx(_val1);
+ _val1 = -1;
+
+ if (_val2) {
+ ws_unhide_walker();
+ _val2 = 0;
+ }
+ }
+
+ kernel_trigger_dispatchx(kernel_trigger_create(301));
+ break;
+
+ case 301:
+ switch (_val8) {
+ case 0:
+ switch (_conv1) {
+ case 0:
+ sendWSMessage_10000(1, _rip6, 1, 1, 1, 300, 1, 1, 1, 0);
+ break;
+
+ case 1:
+ sendWSMessage_10000(1, _rip6, _suit2, 1, 10, 300, _suit2, 10, 10, 0);
+ _val8 = 1;
+ break;
+
+ case 3:
+ sendWSMessage_10000(1, _rip6, _suit1, 1, 17, 300, _suit1, 17, 17, 0);
+ _val8 = 3;
+ break;
+
+ case 5:
+ case 6:
+ sendWSMessage_10000(1, _rip6, _suit3, 1, 14, 300, _suit3, 14, 14, 0);
+ _val8 = 5;
+ break;
+
+ case 7:
+ terminateMachineAndNull(_rip6);
+ terminateMachineAndNull(_rip5);
+ ws_unhide_walker();
+ player_set_commands_allowed(true);
+ break;
+
+ default:
+ break;
+ }
+ break;
+
+ case 1:
+ if (_conv1 == 1) {
+ sendWSMessage_10000(1, _rip6, _suit2, 10, 10, 300, _suit2, 10, 10, 0);
+ } else {
+ sendWSMessage_10000(1, _rip6, _suit2, 11, 18, 300, 1, 1, 1, 0);
+ _val8 = 0;
+ }
+ break;
+
+ case 3:
+ if (_conv1 == 3) {
+ sendWSMessage_10000(1, _rip6, _suit1, 17, 17, 300, _suit1, 17, 17, 0);
+ } else {
+ sendWSMessage_10000(1, _rip6, _suit1, 17, 1, 300, 1, 1, 1, 0);
+ _val8 = 0;
+ }
+ break;
+
+ case 5:
+ switch (_conv1) {
+ case 5:
+ sendWSMessage_10000(1, _rip6, _suit3, 14, 14, 300, _suit3, 14, 14, 0);
+ break;
+
+ case 6:
+ sendWSMessage_10000(1, _rip6, _suit3, 15, 25, 300, _suit3, 25, 25, 0);
+ _val8 = 6;
+ break;
+
+ default:
+ sendWSMessage_10000(1, _rip6, _suit3, 14, 1, 300, 1, 1, 1, 0);
+ _val8 = 0;
+ break;
+ }
+ break;
+
+ case 6:
+ if (_conv1 == 6) {
+ sendWSMessage_10000(1, _rip6, _suit3, 25, 25, 300, _suit3, 25, 25, 0);
+ } else {
+ sendWSMessage_10000(1, _rip6, _suit3, 25, 15, 300, _suit3, 14, 14, 0);
+ _val8 = 5;
+ }
+ break;
+
+ default:
+ break;
+ }
+ break;
+
+ case 400:
+ if (!_val6 && !_val7 && _val1 != -1) {
+ kernel_trigger_dispatchx(_val1);
+ _val1 = -1;
+
+ if (_val2) {
+ ws_unhide_walker();
+ _val2 = 0;
+ }
+ }
+
+ kernel_trigger_dispatchx(kernel_trigger_create(401));
+ break;
+
+ case 401:
+ switch (_val6) {
+ case 0:
+ switch (_val7) {
+ case 0:
+ sendWSMessage_10000(1, _stander, _jellyBeans, 1, 1, 400, _jellyBeans, 1, 1, 0);
+ break;
+
+ case 1:
+ case 2:
+ case 4:
+ sendWSMessage_10000(1, _stander, _feng1, 16, 1, 400, _feng3, 1, 6, 1);
+ _val6 = 1;
+ break;
+
+ case 3:
+ sendWSMessage_10000(1, _stander, _jellyBeans, 1, 13, 400, _jellyBeans, 14, 19, 1);
+ _val6 = 3;
+ break;
+
+ default:
+ break;
+ }
+ break;
+
+ case 1:
+ switch (_val7) {
+ case 0:
+ sendWSMessage_10000(1, _stander, _feng1, 16, 1, 400, _jellyBeans, 1, 1, 0);
+ _val6 = 0;
+ break;
+
+ case 1:
+ frame = imath_ranged_rand(1, 6);
+ sendWSMessage_10000(1, _stander, _feng3, frame, frame, 400, _feng3, frame, frame, 0);
+ break;
+
+ case 2:
+ sendWSMessage_10000(1, _stander, _feng2, 1, 18, 400, _feng2, 19, 21, 1);
+ _val6 = 2;
+ break;
+
+ case 3:
+ sendWSMessage_10000(1, _stander, _feng1, 16, 1, 400, _jellyBeans, 1, 1, 0);
+ _val6 = 0;
+ break;
+
+ case 4:
+ frame = imath_ranged_rand(1, 6);
+ sendWSMessage_10000(1, _stander, _feng3, frame, frame, 400, _feng3, frame, frame, 0);
+ _val7 = 1;
+ break;
+
+ default:
+ sendWSMessage_10000(1, _stander, _feng2, 1, 18, 400, _feng2, 19, 21, 1);
+ _val6 = 2;
+ break;
+ }
+ break;
+
+ case 2:
+ if (_val7 == 2) {
+ frame = imath_ranged_rand(19, 21);
+ sendWSMessage_10000(1, _stander, _feng2, frame, frame, 400, _feng2, frame, frame, 0);
+ } else {
+ sendWSMessage_10000(1, _stander, _feng2, 18, 1, 400, _feng3, 1, 6, 0);
+ _val6 = 1;
+ break;
+ }
+ break;
+
+ case 3:
+ if (_val7 == 3) {
+ frame = imath_ranged_rand(14, 19);
+ sendWSMessage_10000(1, _stander, _jellyBeans, frame, frame, 400, _jellyBeans, frame, frame, 0);
+ } else {
+ sendWSMessage_10000(1, _stander, _jellyBeans, 20, 31, 400, _jellyBeans, 1, 1, 0);
+ _val6 = 0;
+ }
+ break;
+
+ default:
+ break;
+ }
+ break;
+
+ default:
+ break;
+ }
}
void Room305::pre_parser() {
@@ -380,8 +704,8 @@ void Room305::parser() {
_val4 = 0;
break;
-
-
+ default:
+ break;
}
} else if (useFlag && player_said("drawer")) {
switch (_G(kernel).trigger) {
@@ -974,6 +1298,7 @@ next4:
} else {
return;
}
+#undef LOOK
exit:
_G(player).command_ready = false;
More information about the Scummvm-git-logs
mailing list