[Scummvm-git-logs] scummvm master -> 6ba6da0e9a4cde646248679ee563c54a202be676
dreammaster
noreply at scummvm.org
Fri Aug 16 05:30:20 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:
6ba6da0e9a M4: RIDDLE: More room 403 daemon
Commit: 6ba6da0e9a4cde646248679ee563c54a202be676
https://github.com/scummvm/scummvm/commit/6ba6da0e9a4cde646248679ee563c54a202be676
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-08-15T22:30:16-07:00
Commit Message:
M4: RIDDLE: More room 403 daemon
Changed paths:
engines/m4/riddle/rooms/section4/room403.cpp
engines/m4/riddle/rooms/section4/room403.h
diff --git a/engines/m4/riddle/rooms/section4/room403.cpp b/engines/m4/riddle/rooms/section4/room403.cpp
index f5f1c4916e0..3ca7ea7282b 100644
--- a/engines/m4/riddle/rooms/section4/room403.cpp
+++ b/engines/m4/riddle/rooms/section4/room403.cpp
@@ -260,7 +260,7 @@ void Room403::init() {
}
void Room403::daemon() {
- int frame, val;
+ int frame;
switch (_G(kernel).trigger) {
case 10:
@@ -981,6 +981,208 @@ void Room403::daemon() {
}
break;
+ case 200:
+ player_set_commands_allowed(false);
+ _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf");
+
+ player_update_info();
+ _ripTalksWolf = TriggerMachineByHash(1, 1, 0, 0, 0, 0,
+ _G(player_info).x, _G(player_info).y, _G(player_info).scale, 0xf00, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf SHADOW");
+ sendWSMessage_10000(1, _ripTalksWolf, _safariShadow, 1, 1, -1,
+ _safariShadow, 1, 1, 0);
+
+ ws_hide_walker();
+ sendWSMessage_10000(1, _wolfie, _wolfTurnHand, 11, 45, 202,
+ _wolfTurnHand, 45, 45, 0);
+ break;
+
+ case 202:
+ sendWSMessage_10000(1, _ripOnLadder, _ripTalkPay, 40, 63, 203,
+ _ripTalkPay, 63, 63, 0);
+ break;
+
+ case 203:
+ digi_play("950_s23", 2, 255, -1, 950);
+ kernel_timing_trigger(30, 205);
+ digi_play("402w07", 1);
+ break;
+
+ case 205:
+ sendWSMessage_10000(1, _wolfie, _wolfTurnHand, 45, 1, 209,
+ _wolfTurnHand, 1, 1, 0);
+ sendWSMessage_10000(1, _ripOnLadder, _ripTalkPay, 63, 40, 206,
+ _ripTalkPay, 40, 40, 0);
+ break;
+
+ case 206:
+ sendWSMessage_10000(1, _ripOnLadder, _ripTalkPay, 10, 1, 207,
+ _ripTalkPay, 1, 1, 0);
+ break;
+
+ case 207:
+ case 226:
+ case 236:
+ terminateMachineAndNull(_ripOnLadder);
+ terminateMachineAndNull(_ripTalksWolf);
+ ws_unhide_walker();
+ break;
+
+ case 209:
+ case 227:
+ kernel_timing_trigger(1, 110);
+ player_set_commands_allowed(true);
+ break;
+
+ case 210:
+ player_set_commands_allowed(false);
+ _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf");
+
+ player_update_info();
+ _ripTalksWolf = TriggerMachineByHash(1, 1, 0, 0, 0, 0,
+ _G(player_info).x, _G(player_info).y, _G(player_info).scale, 0xf00, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf SHADOW");
+
+ sendWSMessage_10000(1, _ripTalksWolf, _safariShadow, 1, 1, -1,
+ _safariShadow, 1, 1, 0);
+ sendWSMessage_10000(1, _ripOnLadder, _ripTalkPay, 1, 10, 211,
+ _ripTalkPay, 10, 110, 0);
+ sendWSMessage_10000(1, _wolfie, _wolfTurnHand, 11, 45, 213,
+ _wolfTurnHand, 45, 45, 0);
+ _val13 = _G(flags)[V111];
+ break;
+
+ case 211:
+ sendWSMessage_10000(1, _ripOnLadder, _ripTalkPay, 40, 56, -1,
+ _ripTalkPay, 56, 56, 0);
+ break;
+
+ case 213:
+ sendWSMessage_10000(1, _ripOnLadder, _ripTalkPay, 57, 63, 214,
+ _ripTalkPay, 63, 63, 0);
+ break;
+
+ case 214:
+ digi_play("950_s23", 2, 255, -1, 950);
+ kernel_timing_trigger(30, 215);
+ break;
+
+ case 215:
+ if (_val13 > 1) {
+ --_val13;
+ sendWSMessage_10000(1, _ripOnLadder, _ripTalkPay, 63, 57, 213,
+ _ripTalkPay, 57, 57, 0);
+ } else {
+ sendWSMessage_10000(1, _wolfie, _wolfTalkLeave, 1, 18, 217,
+ _wolfTalkLeave, 18, 18, 0);
+ sendWSMessage_10000(1, _ripOnLadder, _ripTalkPay, 56, 40, 216,
+ _ripTalkPay, 40, 40, 0);
+ _flag3 = false;
+ }
+ break;
+
+ case 216:
+ case 217:
+ if (!_flag3) {
+ _flag3 = true;
+ } else {
+ kernel_timing_trigger(1, 218);
+ }
+ break;
+
+ case 218:
+ _val4 = -1;
+ _val8 = 2000;
+ _val9 = 2252;
+ kernel_timing_trigger(1, 110);
+ _val6 = 1000;
+ _val7 = 1103;
+ kernel_timing_trigger(1, 102);
+
+ conv_load("conv403a", 0, 10, 101);
+ conv_export_value_curr(_G(flags)[V111], 0);
+ conv_export_value_curr(_G(flags)[V121], 1);
+ conv_export_value_curr(_G(flags)[V122], 2);
+ conv_export_value_curr(_G(flags)[V120], 3);
+
+ conv_export_value_curr(inv_player_has("POMERANIAN MARKS") ? 1 : 0, 5);
+ conv_export_pointer_curr(&_G(flags)[V114], 5);
+ conv_export_pointer_curr(&_G(flags)[V115], 6);
+ conv_export_value_curr(_G(flags)[V337], 10);
+ conv_play();
+ break;
+
+ case 220:
+ player_set_commands_allowed(false);
+ _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf");
+
+ player_update_info();
+ _ripTalksWolf = TriggerMachineByHash(1, 1, 0, 0, 0, 0,
+ _G(player_info).x, _G(player_info).y, _G(player_info).scale, 0xf00, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf SHADOW");
+
+ sendWSMessage_10000(1, _ripTalksWolf, _safariShadow, 1, 1, -1,
+ _safariShadow, 1, 1, 0);
+ ws_hide_walker();
+ sendWSMessage_10000(1, _ripOnLadder, _ripTalkPay, 1, 10, -1,
+ _ripTalkPay, 10, 10, 0);
+ sendWSMessage_10000(1, _wolfie, _wolfTurnHand, 11, 45, 222,
+ _wolfTurnHand, 45, 45, 0);
+ break;
+
+ case 222:
+ sendWSMessage_10000(1, _ripOnLadder, _ripTalkPay, 40, 63, 223,
+ _ripTalkPay, 63, 63, 0);
+ break;
+
+ case 223:
+ sendWSMessage_10000(1, _wolfie, _wolfTurnHand, 45, 11, 227,
+ _wolfTurnHand, 11, 11, 0);
+ digi_play("402w08", 1);
+ kernel_timing_trigger(60, 224);
+ break;
+
+ case 224:
+ sendWSMessage_10000(1, _ripOnLadder, _ripTalkPay, 63, 40, 225,
+ _ripTalkPay, 40, 40, 0);
+ break;
+
+ case 225:
+ sendWSMessage_10000(1, _ripOnLadder, _ripTalkPay, 10, 1, 226,
+ _ripTalkPay, 1, 1, 0);
+ break;
+
+ case 230:
+ player_set_commands_allowed(false);
+ _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf");
+
+ player_update_info();
+ _ripTalksWolf = TriggerMachineByHash(1, 1, 0, 0, 0, 0,
+ _G(player_info).x, _G(player_info).y, _G(player_info).scale, 0xf00, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf SHADOW");
+
+ sendWSMessage_10000(1, _ripTalksWolf, _safariShadow, 1, 1, -1,
+ _safariShadow, 1, 1, 0);
+ ws_hide_walker();
+ sendWSMessage_10000(1, _ripOnLadder, _ripTalkPay, 1, 10, 232,
+ _ripTalkPay, 10, 10, 0);
+ break;
+
+ case 232:
+ sendWSMessage_10000(1, _ripOnLadder, _ripTalkPay, 40, 63, 233,
+ _ripTalkPay, 63, 63, 0);
+ break;
+
+ case 235:
+ sendWSMessage_10000(1, _ripOnLadder, _ripTalkPay, 10, 1, 236,
+ _ripTalkPay, 1, 1, 0);
+ break;
+
+ // TODO
default:
break;
}
diff --git a/engines/m4/riddle/rooms/section4/room403.h b/engines/m4/riddle/rooms/section4/room403.h
index dd213bef35f..835f93a75f9 100644
--- a/engines/m4/riddle/rooms/section4/room403.h
+++ b/engines/m4/riddle/rooms/section4/room403.h
@@ -63,6 +63,7 @@ private:
int _noTreat = 0;
bool _flag1 = false;
bool _flag2 = false;
+ bool _flag3 = 0;
int _ripRingsBell = 0;
machine *_wolfWalker = nullptr;
int _wolfAdmonish = 0;
More information about the Scummvm-git-logs
mailing list