[Scummvm-git-logs] scummvm master -> 7b895ac18687765d8f839a1ee14e9fd7c185da6f
dreammaster
noreply at scummvm.org
Mon Aug 12 05:07:58 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:
fa669a9f93 M4: RIDDLE: Most of room 402 daemon done
7b895ac186 M4: RIDDLE: Remainder of room 402 daemon
Commit: fa669a9f93e46e606b02c053eea97eb24b4ce3a2
https://github.com/scummvm/scummvm/commit/fa669a9f93e46e606b02c053eea97eb24b4ce3a2
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-08-11T20:11:15-07:00
Commit Message:
M4: RIDDLE: Most of room 402 daemon done
Changed paths:
engines/m4/riddle/rooms/section4/room402.cpp
engines/m4/riddle/rooms/section4/room402.h
diff --git a/engines/m4/riddle/rooms/section4/room402.cpp b/engines/m4/riddle/rooms/section4/room402.cpp
index 6c6afb7beda..7925184c53b 100644
--- a/engines/m4/riddle/rooms/section4/room402.cpp
+++ b/engines/m4/riddle/rooms/section4/room402.cpp
@@ -792,13 +792,339 @@ void Room402::daemon() {
kernel_timing_trigger(30, 205);
break;
- // TODO
+ case 205:
+ sendWSMessage_10000(1, _wolfieMach, _wolfWantsMoney, 16, 1, 208,
+ _wolfWantsMoney, 1, 1, 0);
+ sendWSMessage_10000(1, _ripEnterLeave, _ripPaysWolfie, 24, 1, 206,
+ _ripPaysWolfie, 1, 1, 0);
+ break;
+
+ case 206:
+ sendWSMessage_10000(1, _ripEnterLeave, _ripTalkWolf, 7, 1, 207,
+ _ripTalkWolf, 1, 1, 0);
+ break;
+
+ case 207:
+ case 236:
+ terminateMachineAndNull(_ripEnterLeave);
+ terminateMachineAndNull(_safariShadow);
+ ws_unhide_walker();
+ break;
+
+ case 208:
+ sendWSMessage_10000(1, _wolfieMach, _wolfClippersDown, 43, 1, 209,
+ _wolfClipping, 1, 1, 0);
+ break;
+
+ case 209:
+ kernel_timing_trigger(1, 110);
+ player_set_commands_allowed(true);
+ break;
+
+ case 210:
+ _ripEnterLeave = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf");
+ player_update_info();
+ _safariShadow = TriggerMachineByHash(1, 1, 0, 0, 0, 0,
+ _G(player_info).x, _G(player_info).y, _G(player_info).scale, 0x200, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf SHADOW");
+
+ sendWSMessage_10000(1, _safariShadow, _shadow3, 1, 1, -1,
+ _shadow3, 1, 1, 0);
+ ws_hide_walker();
+ sendWSMessage_10000(1, _ripEnterLeave, _ripTalkWolf, 1, 7, 211,
+ _ripTalkWolf, 7, 7, 0);
+ sendWSMessage_10000(1, _wolfieMach, _wolfClippersDown, 1, 8, 213,
+ _wolfClippersDown, 8, 8, 0);
+ break;
+
+ case 211:
+ sendWSMessage_10000(1, _ripEnterLeave, _ripPaysWolfie, 1, 16, -1,
+ _ripPaysWolfie, 16, 16, 0);
+ break;
+
+ case 212:
+ sendWSMessage_10000(1, _wolfieMach, _wolfWantsMoney, 1, 16, 214,
+ _wolfWantsMoney, 16, 16, 0);
+ _flags111 = _G(flags)[V111];
+ break;
+
+ case 213:
+ digi_play("402_s04", 2);
+ sendWSMessage_10000(1, _wolfieMach, _wolfClippersDown, 8, 43, 212,
+ _wolfClippersDown, 43, 43, 0);
+ break;
+
+ case 214:
+ sendWSMessage_10000(1, _ripEnterLeave, _ripPaysWolfie, 17, 24, 215,
+ _ripPaysWolfie, 24, 24, 0);
+ break;
+
+ case 215:
+ digi_play("950_s23", 2);
+ kernel_timing_trigger(30, 216);
+ break;
+
+ case 216:
+ if (_G(flags)[V111] > 1) {
+ _flags111--;
+ sendWSMessage_10000(1, _ripEnterLeave, _ripPaysWolfie, 24, 17, 214,
+ _ripPaysWolfie, 17, 17, 0);
+ } else {
+ sendWSMessage_10000(1, _wolfieMach, _wolfWantsMoney, 16, 1, -1,
+ _wolfWantsMoney, 1, 1, 0);
+ sendWSMessage_10000(1, _ripEnterLeave, _ripPaysWolfie, 24, 1, 217,
+ _ripPaysWolfie, 1, 1, 0);
+ }
+ break;
+
+ case 217:
+ sendWSMessage_10000(1, _ripEnterLeave, _ripTalkWolf, 7, 1, 218,
+ _ripTalkWolf, 1, 1, 0);
+ break;
+
+ case 218:
+ terminateMachineAndNull(_ripEnterLeave);
+ terminateMachineAndNull(_safariShadow);
+ ws_unhide_walker();
+ _val5 = -1;
+ _val10 = 1001;
+ _val11 = 1110;
+ kernel_timing_trigger(1, 102);
+ break;
+
+ case 221:
+ _ripEnterLeave = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf");
+ player_update_info();
+ _safariShadow = TriggerMachineByHash(1, 1, 0, 0, 0, 0,
+ _G(player_info).x, _G(player_info).y, _G(player_info).scale, 0x200, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf SHADOW");
+
+ sendWSMessage_10000(1, _safariShadow, _shadow3, 1, 1, -1,
+ _shadow3, 1, 1, 0);
+ ws_hide_walker();
+ sendWSMessage_10000(1, _ripEnterLeave, _ripTalkWolf, 1, 7, -1,
+ _ripTalkWolf, 7, 7, 0);
+ sendWSMessage_10000(1, _wolfieMach, _wolfClippersDown, 1, 8, 222,
+ _wolfClippersDown, 8, 8, 0);
+ break;
+
+ case 222:
+ digi_play("402_s04", 2);
+ sendWSMessage_10000(1, _wolfieMach, _wolfClippersDown, 8, 43, 223,
+ _wolfClippersDown, 43, 43, 0);
+ break;
case 223:
sendWSMessage_10000(1, _wolfieMach, _ripPaysWolfie, 1, 24, 224,
_ripPaysWolfie, 24, 24, 0);
break;
+ case 224:
+ sendWSMessage_10000(1, _wolfieMach, _wolfClippersDown, 43, 1, 227,
+ _wolfClipping, 1, 1, 0);
+ digi_play("402w08", 1);
+ kernel_timing_trigger(60, 225);
+ break;
+
+ case 225:
+ sendWSMessage_10000(1, _ripEnterLeave, _ripPaysWolfie, 24, 1, 226,
+ _ripPaysWolfie, 1, 1, 0);
+ break;
+
+ case 226:
+ sendWSMessage_10000(1, _ripEnterLeave, _ripTalkWolf, 7, 1, -1,
+ _ripTalkWolf, 1, 1, 0);
+ break;
+
+ case 227:
+ terminateMachineAndNull(_ripEnterLeave);
+ terminateMachineAndNull(_safariShadow);
+ ws_unhide_walker();
+ kernel_timing_trigger(1, 110);
+ player_set_commands_allowed(true);
+ break;
+
+ case 230:
+ _ripEnterLeave = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "trip talks wolf");
+ player_update_info();
+ _safariShadow = TriggerMachineByHash(1, 1, 0, 0, 0, 0,
+ _G(player_info).x, _G(player_info).y, _G(player_info).scale, 0x200, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf SHADOW");
+
+ sendWSMessage_10000(1, _safariShadow, _shadow3, 1, 1, -1,
+ _shadow3, 1, 1, 0);
+ ws_unhide_walker();
+ sendWSMessage_10000(1, _ripEnterLeave, _ripTalkWolf, 1, 7, 232,
+ _ripTalkWolf, 7, 7, 0);
+ break;
+
+ case 232:
+ sendWSMessage_10000(1, _ripEnterLeave, _ripPaysWolfie, 1, 24, 233,
+ _ripPaysWolfie, 24, 24, 0);
+ break;
+
+ case 233:
+ sendWSMessage_10000(1, _wolfieMach, _wolfWantsMoney, 16, 1, 234,
+ _wolfWantsMoney, 1, 1, 0);
+ break;
+
+ case 234:
+ sendWSMessage_10000(1, _wolfieMach, _wolfClippersDown, 43, 1, 237,
+ _wolfClipping, 1, 1, 0);
+ sendWSMessage_10000(1, _ripEnterLeave, _ripPaysWolfie, 24, 1, 235,
+ _ripPaysWolfie, 1, 1, 0);
+ break;
+
+ case 235:
+ sendWSMessage_10000(1, _ripEnterLeave, _ripTalkWolf, 7, 1, 236,
+ _ripTalkWolf, 1, 1, 0);
+ break;
+
+ case 237:
+ _val12 = 2001;
+ _val13 = 2300;
+ player_set_commands_allowed(true);
+ kernel_timing_trigger(1, 110);
+ break;
+
+ case 300:
+ sendWSMessage_10000(1, _wolfieMach, _wolfClippersDown, 43, 18, 302,
+ _wolfClippersDown, 18, 18, 0);
+ midi_play("DANZIG1", 1, 255, -1, 949);
+ break;
+
+ case 302:
+ terminateMachineAndNull(_wolfieMach);
+ _wolfWalker = triggerMachineByHash_3000(8, 8, S4_NORMAL_DIRS, S4_SHADOW_DIRS,
+ 484, 315, 11, triggerMachineByHashCallback3000, "wolf_walker");
+ sendWSMessage_10000(_wolfWalker, 517, 239, 9, -1, 0);
+
+ digi_play(_soundPtr2, 1);
+ kernel_timing_trigger(80, 303);
+ break;
+
+ case 303:
+ terminateMachineAndNull(_ripEnterLeave);
+ terminateMachineAndNull(_safariShadow);
+ ws_unhide_walker();
+ _G(flags)[V114] = 0;
+ ws_walk(517, 239, nullptr, -1, 9);
+ kernel_timing_trigger(60, 304);
+ break;
+
+ case 304:
+ disable_player_commands_and_fade_init(305);
+ break;
+
+ case 305:
+ _G(flags)[V112] = 1;
+ _G(game).setRoom(408);
+ break;
+
+ case 350:
+ ws_hide_walker();
+ _ripEnterLeave = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "rip leans against wall");
+ sendWSMessage_10000(1, _ripEnterLeave, _ripLeanWall, 1, 23, 351,
+ _ripLeanWall, 23, 23, 0);
+
+ _turtlePopupMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 0, 0,
+ triggerMachineByHashCallbackNegative, "TURTLE POPUP");
+ _val14 = 0;
+ digi_preload("950_s27", 950);
+ break;
+
+ case 351:
+ if (_val14 == 1) {
+ digi_play("950_s27", 3, 255, 353, 950);
+ _val5 = 354;
+ } else {
+ digi_play("950_s27", 3, 255, 352, 950);
+ ++_val14;
+ }
+ break;
+
+ case 352:
+ kernel_timing_trigger(5, 351);
+ break;
+
+ case 353:
+ sendWSMessage_10000(1, _turtlePopupMach, _turtlePopup, 15, 41, 353,
+ _turtlePopup, 41, 41, 0);
+ digi_play("950_s27", 2, 255, -1, 950);
+ break;
+
+ case 354:
+ sendWSMessage_10000(1, _wolfieMach, _wolfTurnsClipping, 1, 38, 355,
+ _wolfTurnsClipping, 38, 38, 0);
+ break;
+
+ case 355:
+ digi_play("402w10", 1, 255, 356);
+ break;
+
+ case 356:
+ digi_play("402r32", 1, 255, 357);
+ break;
+
+ case 357:
+ digi_play("402w11", 1);
+ terminateMachineAndNull(_wolfieMach);
+ _wolfWalker = triggerMachineByHash_3000(8, 8, S4_NORMAL_DIRS, S4_SHADOW_DIRS,
+ 484, 315, 11, triggerMachineByHashCallback3000, "wolf_walker");
+ sendWSMessage_10000(_wolfWalker, 517, 239, 9, -1, 0);
+ kernel_timing_trigger(150, 358);
+ break;
+
+ case 358:
+ disable_player_commands_and_fade_init(359);
+ break;
+
+ case 359:
+ midi_stop();
+ _G(game).setRoom(409);
+ break;
+
+ case 370:
+ digi_play("402w06", 1, 255, 372);
+ break;
+
+ case 372:
+ digi_play("402r07", 1);
+ ws_walk(517, 239, nullptr, -1, 9);
+ kernel_timing_trigger(90, 373);
+ break;
+
+ case 373:
+ disable_player_commands_and_fade_init(374);
+ break;
+
+ case 374:
+ if (_G(flags)[V139] == 1 || _G(flags)[V139] == 3)
+ _G(game).setRoom(408);
+ else
+ _G(game).setRoom(403);
+ break;
+
+ case 10000:
+ switch (imath_ranged_rand(1, 3)) {
+ case 1:
+ digi_play("950_s19", 2);
+ break;
+ case 2:
+ digi_play("950_s20", 2);
+ break;
+ case 3:
+ digi_play("950_s21", 2);
+ break;
+ default:
+ break;
+ }
+ break;
+
default:
break;
}
diff --git a/engines/m4/riddle/rooms/section4/room402.h b/engines/m4/riddle/rooms/section4/room402.h
index c8bd7b4489f..965e240fea5 100644
--- a/engines/m4/riddle/rooms/section4/room402.h
+++ b/engines/m4/riddle/rooms/section4/room402.h
@@ -43,6 +43,7 @@ private:
int _val11 = 0;
int _val12 = 0;
int _val13 = 0;
+ int _val14 = 0;
machine *_wolfie = nullptr;
machine *_wolfieMach = nullptr;
int _shadow3 = 0;
@@ -68,6 +69,8 @@ private:
machine *_castleDoor = nullptr;
machine *_machine1 = nullptr;
int _machine1Series = 0;
+ int _flags111 = 0;
+ machine *_turtlePopupMach = nullptr;
void conv402a();
void conv402a777();
Commit: 7b895ac18687765d8f839a1ee14e9fd7c185da6f
https://github.com/scummvm/scummvm/commit/7b895ac18687765d8f839a1ee14e9fd7c185da6f
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-08-11T22:07:50-07:00
Commit Message:
M4: RIDDLE: Remainder of room 402 daemon
Changed paths:
engines/m4/riddle/rooms/section4/room402.cpp
engines/m4/riddle/rooms/section4/room402.h
diff --git a/engines/m4/riddle/rooms/section4/room402.cpp b/engines/m4/riddle/rooms/section4/room402.cpp
index 7925184c53b..9b0be2a44db 100644
--- a/engines/m4/riddle/rooms/section4/room402.cpp
+++ b/engines/m4/riddle/rooms/section4/room402.cpp
@@ -418,7 +418,225 @@ void Room402::daemon() {
case 103:
switch (_val10) {
case 1000:
- // TODO
+ switch (_val11) {
+ case 1100:
+ ws_hide_walker();
+ player_set_commands_allowed(false);
+ player_update_info();
+
+ _ripEnterLeave = TriggerMachineByHash(1, 1, 0, 0, 0, 0,
+ _G(player_info).x, _G(player_info).y, _G(player_info).scale, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf");
+ _safariShadow = TriggerMachineByHash(1, 1, 0, 0, 0, 0,
+ _G(player_info).x, _G(player_info).y, _G(player_info).scale, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf SHADOW");
+
+ sendWSMessage_10000(1, _ripEnterLeave, _ripTalker, 1, 1, -1,
+ _ripTalker, 1, 1, 0);
+ sendWSMessage_10000(1, _safariShadow, _shadow3, 1, 1, 102,
+ _shadow3, 1, 1, 0);
+ _val11 = 1101;
+ _val12 = 2000;
+ _val13 = 2100;
+ kernel_timing_trigger(1, 110);
+ break;
+
+ case 1101:
+ _val11 = 1103;
+ kernel_timing_trigger(1, 102);
+ conv_load("conv402a", 10, 10, 101);
+
+ conv_export_value_curr(inv_player_has("POMERANIAN MARKS") ? 1 : 0, 0);
+ conv_export_pointer_curr(&_G(flags)[V111], 1);
+ conv_export_value_curr(_G(flags)[V112], 2);
+ conv_export_value_curr(_G(flags)[V114], 4);
+ conv_export_pointer_curr(&_G(flags)[V115], 5);
+ conv_export_pointer_curr(&_G(flags)[V135], 7);
+ conv_export_pointer_curr(&_G(flags)[V337], 8);
+ conv_export_value_curr(_G(flags)[V110], 9);
+ conv_export_pointer_curr(&_G(flags)[V314], 10);
+ conv_play();
+ break;
+
+ case 1102:
+ frame = imath_ranged_rand(1, 5);
+ sendWSMessage_10000(1, _ripEnterLeave, _ripTalker, frame, frame, 102,
+ _ripTalker, frame, frame, 0);
+ break;
+
+ case 1103:
+ sendWSMessage_10000(1, _ripEnterLeave, _ripTalker, 1, 1, 102,
+ _ripTalker, 1, 1, 0);
+ break;
+
+ case 1104:
+ sendWSMessage_10000(1, _ripEnterLeave, _ripTalker, 1, 1, -1,
+ _ripTalker, 1, 1, 0);
+ break;
+
+ case 1105:
+ terminateMachineAndNull(_ripEnterLeave);
+ terminateMachineAndNull(_safariShadow);
+ ws_unhide_walker();
+
+ if (_soundPtr1) {
+ digi_play(_soundPtr1, 1);
+ _soundPtr1 = nullptr;
+ }
+
+ _G(flags)[V114] = 0;
+ _G(flags)[V112] = 0;
+
+ if (_G(flags)[V115] && !_val8) {
+ _val6 = 1;
+ _val12 = 2000;
+ _val13 = 2230;
+ } else {
+ _val8 = 0;
+ _val12 = 2001;
+ _val13 = 2300;
+ }
+
+ player_set_commands_allowed(true);
+ break;
+
+ case 1120:
+ terminateMachineAndNull(_ripEnterLeave);
+ _ripEnterLeave = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf");
+ _val11 = 1122;
+ _letter = series_load("RIP SHOWS WOLF THE LETTER");
+ sendWSMessage_10000(1, _ripEnterLeave, _letter, 1, 12, 103,
+ _letter, 12, 12, 0);
+ break;
+
+ case 1122:
+ if (_soundPtr1) {
+ _G(kernel).trigger_mode = KT_PARSE;
+ digi_play(_soundPtr1, 1, 255, 777);
+ _G(kernel).trigger_mode = KT_DAEMON;
+ _soundPtr1 = nullptr;
+ }
+ break;
+
+ case 1123:
+ _val11 = 1124;
+ sendWSMessage_10000(1, _ripEnterLeave, _letter, 12, 1, 103,
+ _ripTalker, 1, 1, 0);
+ break;
+
+ case 1124:
+ terminateMachineAndNull(_ripEnterLeave);
+ series_unload(_letter);
+ player_update_info();
+
+ _ripEnterLeave = TriggerMachineByHash(1, 1, 0, 0, 0, 0,
+ _G(player_info).x, _G(player_info).y, _G(player_info).scale, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf");
+ _val10 = 1000;
+ _val11 = 1103;
+ sendWSMessage_10000(1, _ripEnterLeave, _ripTalker, 1, 1, 102,
+ _ripTalker, 1, 1, 0);
+ conv_resume();
+ break;
+
+ default:
+ break;
+ }
+ break;
+
+ case 1001:
+ switch (_val11) {
+ case 1110:
+ player_update_info();
+ _ripEnterLeave = TriggerMachineByHash(1, 1, 0, 0, 0, 0,
+ _G(player_info).x, _G(player_info).y, _G(player_info).scale, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf");
+
+ player_update_info();
+ _safariShadow = TriggerMachineByHash(1, 1, 0, 0, 0, 0,
+ _G(player_info).x, _G(player_info).y, _G(player_info).scale, 0x200, 0,
+ triggerMachineByHashCallbackNegative, "rip talks wolf SHADOW");
+ sendWSMessage_10000(1, _safariShadow, _shadow3, 1, 1, -1,
+ _shadow3, 1, 1, 0);
+ ws_hide_walker();
+
+ sendWSMessage_10000(1, _ripEnterLeave, _ripTalker, 1, 1, -1,
+ _ripTalker, 1, 1, 0);
+ player_set_commands_allowed(false);
+ _val12 = 2002;
+ _val13 = 2141;
+ kernel_timing_trigger(1, 110);
+
+ _val11 = 1111;
+ kernel_timing_trigger(1, 102);
+ break;
+
+ case 1111:
+ _val10 = 1001;
+ _val11 = 1115;
+ kernel_timing_trigger(1, 102);
+
+ conv_load("conv402a", 0, 10, 101);
+ conv_export_value_curr(inv_player_has("POMERANIAN MARKS") ? 1 : 0, 0);
+ conv_export_pointer_curr(&_G(flags)[V111], 1);
+ conv_export_value_curr(_G(flags)[V112], 2);
+ conv_export_value_curr(_G(flags)[V114], 4);
+ conv_export_pointer_curr(&_G(flags)[V115], 5);
+ conv_export_pointer_curr(&_G(flags)[V135], 7);
+ conv_export_pointer_curr(&_G(flags)[V337], 8);
+ conv_export_value_curr(_G(flags)[V110], 9);
+ conv_export_pointer_curr(&_G(flags)[V314], 10);
+ conv_play();
+ break;
+
+ case 1112:
+ terminateMachineAndNull(_ripEnterLeave);
+ terminateMachineAndNull(_safariShadow);
+ ws_unhide_walker();
+ _G(flags)[V114] = 0;
+ _G(flags)[V112] = 0;
+
+ if (_currentNode == 19 || _currentNode == 22 || _currentNode == 23) {
+ _val12 = 2002;
+ _val13 = 2190;
+ kernel_timing_trigger(1, 110);
+ } else if (!_G(flags)[V115]) {
+ _val12 = 2001;
+ _val13 = 2300;
+ player_set_commands_allowed(true);
+ } else {
+ _val6 = 1;
+
+ if (_soundPtr2) {
+ _val13 = 2142;
+ _val11 = 1113;
+ digi_play(_soundPtr2, 1, 255, 103);
+ _soundPtr2 = nullptr;
+ }
+ }
+ break;
+
+ case 1113:
+ _val13 = 2150;
+ break;
+
+ case 1114:
+ frame = imath_ranged_rand(1, 5);
+ sendWSMessage_10000(1, _ripEnterLeave, _ripTalker, frame, frame, 102,
+ _ripTalker, frame, frame, 0);
+ break;
+
+ case 1115:
+ sendWSMessage_10000(1, _ripEnterLeave, _ripTalker, 1, 1, 102,
+ _ripTalker, 1, 1, 0);
+ break;
+
+ default:
+ break;
+ }
+ break;
+
default:
break;
}
@@ -464,6 +682,12 @@ void Room402::daemon() {
switch (_val12) {
case 2000:
switch (_val13) {
+ case 2100:
+ sendWSMessage_10000(1, _wolfieMach, _wolfClipping, 8, 8, 110,
+ _wolfClipping, 8, 8, 0);
+ _val13 = 2104;
+ break;
+
case 2101:
frame = imath_ranged_rand(8, 10);
sendWSMessage_10000(1, _wolfieMach, _wolfClipping, frame, frame, 110,
@@ -516,6 +740,37 @@ void Room402::daemon() {
break;
case 2231:
+ digi_play("402_s04", 2);
+ sendWSMessage_10000(1, _wolfieMach, _wolfClippersDown, 8, 43, 111,
+ _wolfClippersDown, 43, 43, 0);
+ _val13 = 2232;
+ break;
+
+ case 2232:
+ if (_soundPtr2) {
+ digi_play(_soundPtr2, 1);
+ _soundPtr2 = nullptr;
+ }
+
+ _val13 = 2233;
+ sendWSMessage_10000(1, _wolfieMach, _wolfWantsMoney, 1, 16, 111,
+ _wolfWantsMoney, 16, 16, 0);
+ break;
+
+ case 2233:
+ if (_G(flags)[V111] > 0) {
+ _val13 = 2234;
+ series_stream("Rip popup", 7, 0, 111);
+ } else {
+ player_set_commands_allowed(true);
+ }
+ break;
+
+ case 2234:
+ player_set_commands_allowed(true);
+ break;
+
+ case 2240:
_ripEnterLeave = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 0x100, 0,
triggerMachineByHashCallbackNegative, "rip talks wolf");
player_update_info();
@@ -532,6 +787,12 @@ void Room402::daemon() {
_val13 = 2242;
break;
+ case 2242:
+ sendWSMessage_10000(1, _ripEnterLeave, _ripPaysWolfie, 1, 16, 214,
+ _ripPaysWolfie, 16, 16, 0);
+ _flags111 = _G(flags)[V111];
+ break;
+
case 2250:
sendWSMessage_10000(1, _wolfieMach, _wolfWantsMoney, 16, 1, 111,
_wolfWantsMoney, 1, 1, 0);
diff --git a/engines/m4/riddle/rooms/section4/room402.h b/engines/m4/riddle/rooms/section4/room402.h
index 965e240fea5..a1ece6070c1 100644
--- a/engines/m4/riddle/rooms/section4/room402.h
+++ b/engines/m4/riddle/rooms/section4/room402.h
@@ -71,6 +71,7 @@ private:
int _machine1Series = 0;
int _flags111 = 0;
machine *_turtlePopupMach = nullptr;
+ int _letter = 0;
void conv402a();
void conv402a777();
More information about the Scummvm-git-logs
mailing list