[Scummvm-git-logs] scummvm master -> ac970e9f3da9fbeae1273f9665fa5c5b3eefa404
dreammaster
noreply at scummvm.org
Sun Sep 29 05:06: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:
ac970e9f3d M4: RIDDLE: In progress room 608 parser
Commit: ac970e9f3da9fbeae1273f9665fa5c5b3eefa404
https://github.com/scummvm/scummvm/commit/ac970e9f3da9fbeae1273f9665fa5c5b3eefa404
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-09-28T22:06:39-07:00
Commit Message:
M4: RIDDLE: In progress room 608 parser
Changed paths:
engines/m4/riddle/rooms/section6/room608.cpp
engines/m4/riddle/rooms/section6/room608.h
diff --git a/engines/m4/riddle/rooms/section6/room608.cpp b/engines/m4/riddle/rooms/section6/room608.cpp
index 2690eae08a0..fce7ef572f5 100644
--- a/engines/m4/riddle/rooms/section6/room608.cpp
+++ b/engines/m4/riddle/rooms/section6/room608.cpp
@@ -31,7 +31,7 @@ namespace Rooms {
static const int16 NORMAL_DIRS1[] = { 220, 221, -1 };
static const char *NORMAL_NAMES1[] = { "oldwk1", "oldwk3" };
-static const int16 SHADOW_DIRS1[] = { 220, 231, -1 };
+static const int16 SHADOW_DIRS1[] = { 230, 231, -1 };
static const char *SHADOW_NAMES1[] = { "tt walker shadow 1", "oldwk3s" };
@@ -44,21 +44,21 @@ void Room608::init() {
else
kernel_load_variant("608lock2");
- _old01 = series_load("608old01");
- _old02 = series_load("608old02");
- _old05 = series_load("608old05");
- _old08 = series_load("608old08");
- _old05a = series_load("608old05a");
- _old05b = series_load("608old05b");
- _old05c = series_load("608old05c");
- _old05d = series_load("608old05d");
- _old05f = series_load("608old05f");
+ _old1 = series_load("608old01");
+ _old2 = series_load("608old02");
+ _old5 = series_load("608old05");
+ _old8 = series_load("608old08");
+ _old5a = series_load("608old5a");
+ _old5b = series_load("608old5b");
+ _old5c = series_load("608old5c");
+ _old5d = series_load("608old5d");
+ _old5f = series_load("608old5f");
ws_walk_load_walker_series(NORMAL_DIRS1, NORMAL_NAMES1);
ws_walk_load_shadow_series(SHADOW_DIRS1, SHADOW_NAMES1);
_ol = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x200, 0,
triggerMachineByHashCallbackNegative, "ol");
- sendWSMessage_10000(1, _ol, _old01, 1, 1, 200, _old01, 1, 1, 0);
+ sendWSMessage_10000(1, _ol, _old1, 1, 1, 200, _old1, 1, 1, 0);
_val1 = 0;
_val2 = 0;
_val3 = 0;
@@ -200,6 +200,1110 @@ void Room608::init() {
}
void Room608::daemon() {
+ int frame;
+
+ switch (_G(kernel).trigger) {
+ case 1:
+ player_set_commands_allowed(true);
+ break;
+
+ case 18:
+ player_update_info();
+ ws_hide_walker();
+
+ _shadow = series_show("safari shadow 3", 0xf00, 0, -1, -1, 0,
+ _G(player_info).scale, _G(player_info).x, _G(player_info).y);
+ _ripley = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "rip talker");
+ sendWSMessage_10000(1, _ripley, _rp01, 1, 13, -1, _rp01, 20, 20, 0);
+
+ case 20:
+ player_update_info(_tt, &_G(player_info));
+ ws_hide_walker();
+
+ _ttShadow = series_show("tt walker shadow 5", 0xf00, 0, -1, -1, 0,
+ _G(player_info).scale, _G(player_info).x, _G(player_info).y);
+ _ttTalker = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "tt talker");
+ sendWSMessage_10000(1, _ttTalker, _tt01, 63, 54, 22, _tt01, 54, 54, 0);
+ break;
+
+ case 22:
+ sendWSMessage_10000(1, _ttTalker, _tt01, 40, 45, -1, _tt01, 46, 53, 4);
+ sendWSMessage_1a0000(_ttTalker, 11);
+ digi_play("608t01", 1, 255, 23);
+ break;
+
+ case 23:
+ sendWSMessage_10000(1, _ttTalker, _tt01, 45, 40, 26, _tt01, 40, 40, 0);
+ break;
+
+ case 26:
+ sendWSMessage_10000(1, _ttTalker, _tt01, 9, 39, -1, _tt01, 39, 39, 0);
+ sendWSMessage_190000(_ttTalker, 7);
+ digi_play("608t01a", 1, 255, 30);
+ break;
+
+ case 30:
+ sendWSMessage_10000(1, _ripley, _rp01, 20, 20, -1, _rp01, 20, 23, 1);
+ sendWSMessage_1a0000(_ripley, 11);
+ digi_play("608r01", 1, 255, 34);
+ break;
+
+ case 34:
+ sendWSMessage_10000(1, _ripley, _rp01, 20, 20, -1, _rp01, 20, 20, 0);
+ sendWSMessage_10000(1, _ttTalker, _tt01, 40, 45, -1, _tt01, 46, 53, 4);
+ sendWSMessage_1a0000(_ttTalker, 11);
+ digi_play("608t02", 1, 255, 39);
+ kernel_timing_trigger(60, 35);
+ break;
+
+ case 35:
+ sendWSMessage_10000(1, _ripley, _rp01, 14, 19, 36, _rp01, 20, 20, 0);
+ break;
+
+ case 36:
+ sendWSMessage_10000(1, _ripley, _rp01, 14, 19, 37, _rp01, 20, 20, 0);
+ break;
+
+ case 37:
+ kernel_timing_trigger(60, 38);
+ break;
+
+ case 38:
+ sendWSMessage_10000(1, _ripley, _rp01, 24, 61, 40, _rp01, 20, 20, 0);
+ sendWSMessage_190000(_ripley, 6);
+ break;
+
+ case 39:
+ sendWSMessage_10000(1, _ripley, _rp01, 20, 20, -1, _rp01, 20, 23, 1);
+ sendWSMessage_1a0000(_ripley, 11);
+ sendWSMessage_10000(1, _ttTalker, _tt01, 46, 46, -1, _tt01, 46, 46, 0);
+ digi_play("608r02", 1, 255, 42);
+ break;
+
+ case 40:
+ kernel_timing_trigger(120, 41);
+ break;
+
+ case 41:
+ sendWSMessage_10000(1, _ripley, _rp01, 61, 24, -1, _rp01, 20, 20, 0);
+ sendWSMessage_190000(_ripley, 6);
+ break;
+
+ case 42:
+ sendWSMessage_10000(1, _ripley, _rp01, 20, 20, -1, _rp01, 20, 20, 0);
+ sendWSMessage_10000(1, _ttTalker, _tt01, 46, 46, -1, _tt01, 46, 53, 4);
+ sendWSMessage_1a0000(_ttTalker, 11);
+ digi_play("608t03", 1, 255, 49);
+ kernel_timing_trigger(60, 43);
+ break;
+
+ case 43:
+ sendWSMessage_10000(1, _ripley, _rp01, 24, 39, 44, _rp01, 20, 20, 0);
+ sendWSMessage_190000(_ripley, 6);
+ break;
+
+ case 44:
+ sendWSMessage_10000(1, _ripley, _rp01, 24, 39, 45, _rp01, 20, 20, 0);
+ sendWSMessage_190000(_ripley, 6);
+ break;
+
+ case 45:
+ kernel_timing_trigger(60, 46);
+ break;
+
+ case 46:
+ sendWSMessage_10000(1, _ripley, _rp01, 14, 14, -1, _rp01, 14, 19, 4);
+ sendWSMessage_1a0000(_ripley, 11);
+ kernel_timing_trigger(180, 47);
+ break;
+
+ case 47:
+ sendWSMessage_10000(1, _ripley, _rp01, 20, 20, -1, _rp01, 20, 20, 4);
+ break;
+
+ case 49:
+ sendWSMessage_10000(1, _ttTalker, _tt01, 45, 40, 50, _tt01, 40, 40, 0);
+ break;
+
+ case 50:
+ sendWSMessage_10000(1, _ttTalker, _tt01, 54, 63, 55, _tt01, 63, 63, 0);
+ break;
+
+ case 55:
+ terminateMachineAndNull(_ttTalker);
+ ws_unhide_walker();
+ terminateMachineAndNull(_ttShadow);
+ sendWSMessage_10000(_tt, -30, 324, 9, 60, 1);
+ _G(flags)[V203] = 3;
+ break;
+
+ case 57:
+ sendWSMessage_10000(1, _ripley, _rp01, 82, 71, 61, _rp01, 71, 71, 0);
+ digi_play("608r03", 1);
+ _G(flags)[V203] = 4;
+ break;
+
+ case 60:
+ sendWSMessage_60000(_tt);
+ sendWSMessage_10000(1, _ripley, _rp01, 62, 82, 57, _rp01, 82, 82, 0);
+ break;
+
+ case 61:
+ series_unload(200);
+ series_unload(201);
+ series_unload(202);
+ series_unload(203);
+ series_unload(204);
+ series_unload(211);
+ series_unload(212);
+ series_unload(213);
+ series_unload(214);
+ series_unload(_tt01);
+ series_unload(_rp01);
+ terminateMachineAndNull(_ripley);
+ terminateMachineAndNull(_shadow);
+ ws_unhide_walker();
+ _G(player).disable_hyperwalk = false;
+ player_set_commands_allowed(true);
+ break;
+
+ case 200:
+ kernel_trigger_dispatchx(kernel_trigger_create(201));
+ break;
+
+ case 201:
+ switch (_val2) {
+ case 0:
+ switch (_val3) {
+ case 0:
+ sendWSMessage_10000(1, _ol, _old1, 1, 1, 200, _old1, 1, 1, 0);
+ break;
+
+ case 1:
+ if (imath_ranged_rand(10, 30) <= ++_val1) {
+ _val1 = 0;
+
+ if (imath_ranged_rand(1, 2) == 1) {
+ sendWSMessage_10000(1, _ol, _old1, 1, 1, 200, _old1, 1, 1, 0);
+ break;
+ } else {
+ sendWSMessage_10000(1, _ol, _old1, 1, 3, 200, _old1, 3, 3, 0);
+ _val2 = 2;
+ }
+ } else {
+ kernel_timing_trigger(10, 200);
+ }
+ break;
+
+ case 8:
+ case 9:
+ case 10:
+ case 11:
+ sendWSMessage_10000(1, _ol, _old2, 1, 38, 200, _old2, 38, 38, 0);
+ _val2 = 8;
+ break;
+
+ case 13:
+ player_update_info();
+ ws_hide_walker();
+ _shadow = series_show("safari shadow 3", 0xf00, 0, -1, -1, 0,
+ _G(player_info).scale, _G(player_info).x, _G(player_info).y);
+ sendWSMessage_10000(1, _ol, _old5, 1, 40, 250, _old5, 40, 40, 0);
+ break;
+
+ case 14:
+ player_update_info();
+ ws_hide_walker();
+ _shadow = series_show("safari shadow 3", 0xf00, 0, -1, -1, 0,
+ _G(player_info).scale, _G(player_info).x, _G(player_info).y);
+ sendWSMessage_10000(1, _ol, _old5, 1, 40, 202, _old5, 40, 40, 0);
+ break;
+
+ case 15:
+ player_update_info();
+ ws_hide_walker();
+ _shadow = series_show("safari shadow 3", 0xf00, 0, -1, -1, 0,
+ _G(player_info).scale, _G(player_info).x, _G(player_info).y);
+ sendWSMessage_10000(1, _ol, _old5, 1, 40, 280, _old5, 40, 40, 0);
+ break;
+
+ case 16:
+ player_update_info();
+ ws_hide_walker();
+ _shadow = series_show("safari shadow 3", 0xf00, 0, -1, -1, 0,
+ _G(player_info).scale, _G(player_info).x, _G(player_info).y);
+ sendWSMessage_10000(1, _ol, _old5, 1, 40, 270, _old5, 40, 40, 0);
+ break;
+
+ default:
+ sendWSMessage_10000(1, _ol, _old1, 1, 3, 200, _old1, 3, 3, 0);
+ _val2 = 2;
+ break;
+ }
+ break;
+
+ case 2:
+ switch (_val3) {
+ case 1:
+ if (imath_ranged_rand(10, 30) <= ++_val1) {
+ _val1 = 0;
+
+ switch (imath_ranged_rand(1, 3)) {
+ case 1:
+ sendWSMessage_10000(1, _ol, _old1, 3, 3, 200, _old1, 3, 3, 0);
+ break;
+ case 2:
+ sendWSMessage_10000(1, _ol, _old1, 3, 1, 200, _old1, 1, 1, 0);
+ sendWSMessage_190000(_ol, 7);
+ break;
+ case 3:
+ sendWSMessage_10000(1, _ol, _old1, 4, 5, 200, _old1, 5, 5, 0);
+ sendWSMessage_190000(_ol, 7);
+ break;
+ default:
+ break;
+ }
+ } else {
+ kernel_timing_trigger(10, 200);
+ }
+ break;
+
+ case 5:
+ case 6:
+ case 7:
+ case 12:
+ sendWSMessage_10000(1, _ol, _old1, 4, 5, 200, _old1, 5, 5, 0);
+ sendWSMessage_190000(_ol, 7);
+ break;
+
+ default:
+ sendWSMessage_10000(1, _ol, _old1, 3, 1, 200, _old1, 1, 1, 0);
+ sendWSMessage_190000(_ol, 7);
+ break;
+ }
+ break;
+
+ case 3:
+ switch (_val3) {
+ case 1:
+ if (imath_ranged_rand(10, 30) <= ++_val1) {
+ _val1 = 0;
+
+ switch (imath_ranged_rand(1, 3)) {
+ case 1:
+ sendWSMessage_10000(1, _ol, _old1, 5, 5, 200, _old1, 5, 5, 0);
+ break;
+ case 2:
+ sendWSMessage_10000(1, _ol, _old1, 5, 4, 200, _old1, 3, 3, 0);
+ _val2 = 2;
+ sendWSMessage_190000(_ol, 7);
+ break;
+ case 3:
+ sendWSMessage_10000(1, _ol, _old1, 6, 7, 200, _old1, 7, 7, 0);
+ sendWSMessage_190000(_ol, 7);
+ break;
+ default:
+ break;
+ }
+ } else {
+ kernel_timing_trigger(10, 200);
+ }
+ break;
+
+ case 5:
+ case 6:
+ case 7:
+ case 12:
+ sendWSMessage_10000(1, _ol, _old1, 6, 7, 200, _old1, 7, 7, 0);
+ sendWSMessage_190000(_ol, 7);
+ break;
+
+ default:
+ sendWSMessage_10000(1, _ol, _old1, 5, 4, 200, _old1, 3, 3, 0);
+ sendWSMessage_190000(_ol, 7);
+ break;
+ }
+ break;
+
+ case 4:
+ switch (_val3) {
+ case 1:
+ if (imath_ranged_rand(10, 30) <= ++_val1) {
+ _val1 = 0;
+
+ if (imath_ranged_rand(1, 2) == 1) {
+ sendWSMessage_10000(1, _ol, _old1, 7, 7, 200, _old1, 7, 7, 0);
+ } else {
+ sendWSMessage_10000(1, _ol, _old1, 7, 6, 200, _old1, 5, 5, 0);
+ sendWSMessage_190000(_ol, 7);
+ }
+ } else {
+ kernel_timing_trigger(10, 200);
+ }
+ break;
+
+ case 7:
+ case 12:
+ sendWSMessage_10000(1, _ol, _old1, 8, 14, 200, _old1, 26, 26, 0);
+ _val2 = 6;
+ break;
+
+ default:
+ sendWSMessage_10000(1, _ol, _old1, 7, 6, 200, _old1, 5, 5, 0);
+ _val2 = 3;
+ break;
+ }
+ break;
+
+ case 6:
+ switch (_val3) {
+ case 5:
+ sendWSMessage_10000(1, _ol, _old1, 26, 26, -1, _old1, 26, 42, 4);
+ sendWSMessage_1a0000(_ol, 11);
+ break;
+
+ case 6:
+ sendWSMessage_10000(1, _ol, _old1, 26, 26, 200, _old1, 26, 26, 0);
+ break;
+
+ case 7:
+ sendWSMessage_10000(1, _ol, _old1, 61, 74, 200, _old1, 74, 74, 0);
+ _val2 = 7;
+ _val3 = 5;
+ break;
+
+ case 12:
+ sendWSMessage_10000(1, _ol, _old1, 15, 28, 200, _old1, 26, 26, 0);
+ _val3 = 5;
+ break;
+
+ default:
+ sendWSMessage_10000(1, _ol, _old1, 14, 8, 200, _old1, 7, 7, 0);
+ _val2 = 4;
+ break;
+ }
+ break;
+
+ case 7:
+ switch (_val3) {
+ case 7:
+ sendWSMessage_10000(1, _ol, _old1, 74, 74, 200, _old1, 74, 74, 0);
+ break;
+
+ default:
+ sendWSMessage_10000(1, _ol, _old1, 74, 61, 200, _old1, 26, 26, 0);
+ _val2 = 6;
+ break;
+ }
+ break;
+
+ case 8:
+ switch (_val3) {
+ case 8:
+ sendWSMessage_10000(1, _ol, _old2, 38, 38, 200, _old2, 38, 38, 0);
+ break;
+
+ case 9:
+ sendWSMessage_10000(1, _ol, _old2, 39, 39, -1, _old2, 39, 48, 4);
+ sendWSMessage_1a0000(_ol, 15);
+ break;
+
+ case 10:
+ case 11:
+ sendWSMessage_10000(1, _ol, _old2, 49, 57, 200, _old2, 57, 57, 0);
+ _val2 = 11;
+ break;
+
+ default:
+ sendWSMessage_10000(1, _ol, _old2, 38, 1, 200, _old1, 1, 1, 0);
+ _val2 = 0;
+ break;
+ }
+ break;
+
+ case 11:
+ switch (_val3) {
+ case 10:
+ sendWSMessage_10000(1, _ol, _old2, 57, 49, 200, _old2, 38, 38, 0);
+ _val2 = 8;
+ _val3 = 8;
+ break;
+
+ case 11:
+ sendWSMessage_10000(1, _ol, _old2, 57, 57, 200, _old2, 57, 57, 0);
+ break;
+
+ default:
+ sendWSMessage_10000(1, _ol, _old2, 57, 49, 200, _old2, 38, 38, 0);
+ break;
+ }
+ break;
+
+ default:
+ break;
+ }
+ break;
+
+ case 202:
+ sendWSMessage_10000(1, _ol, _old5a, 1, 8, 205, _old5a, 8, 8, 0);
+ break;
+
+ case 205:
+ sendWSMessage_10000(1, _ol, _old5a, 9, 19, 208, _old5a, 19, 19, 0);
+ inv_move_object("OBSIDIAN DISK", 608);
+ break;
+
+ case 208:
+ sendWSMessage_10000(1, _ol, _old5a, 16, 19, -1, _old5a, 16, 19, 1);
+ digi_play("608o06", 1, 255, 211);
+ break;
+
+ case 211:
+ sendWSMessage_10000(1, _ol, _old5a, 20, 22, -1, _old5a, 20, 22, 1);
+ digi_play("6084r43", 1, 255, 213);
+ break;
+
+ case 213:
+ sendWSMessage_10000(1, _ol, _old5a, 16, 19, -1, _old5a, 16, 19, 1);
+ digi_play("608o07", 1, 255, 216);
+ break;
+
+ case 216:
+ sendWSMessage_10000(1, _ol, _old5a, 23, 54, -1, _old5a, 54, 54, 1);
+ sendWSMessage_190000(_ol, 8);
+ digi_play("608o08", 1, 255, 220);
+ break;
+
+ case 220:
+ sendWSMessage_10000(1, _ol, _old5, 40, 1, 225, _old1, 1, 1, 0);
+ break;
+
+ case 225:
+ sendWSMessage_10000(1, _ol, _old1, 1, 1, 200, _old1, 1, 1, 0);
+ _val2 = 0;
+ _val3 = 1;
+ _ol2 = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "rip talker");
+ sendWSMessage_10000(1, _ol2, _old5f, 1, 1, -1, _old5f, 1, 4, 1);
+ sendWSMessage_1a0000(_ol2, 11);
+ digi_play("608r44", 1, 255, 226);
+ break;
+
+ case 226:
+ case 268:
+ terminateMachineAndNull(_ol2);
+ terminateMachineAndNull(_shadow);
+ ws_unhide_walker();
+ player_set_commands_allowed(true);
+ break;
+
+ case 250:
+ sendWSMessage_10000(1, _ol, _old5b, 1, 11, 254, _old5b, 11, 11, 0);
+ break;
+
+ case 254:
+ sendWSMessage_10000(1, _ol, _old5b, 12, 49, -1, _old5b, 50, 53, 1);
+ sendWSMessage_1a0000(_ol, 11);
+ inv_move_object("CLOCK FACING", 608);
+ digi_play("608o06", 1, 255, 256);
+ break;
+
+ case 256:
+ digi_play("608r43", 1, 255, 260);
+ break;
+
+ case 260:
+ digi_play("608o07", 1, 255, 263);
+ break;
+
+ case 263:
+ digi_play("608o08", 1, 255, 265);
+ break;
+
+ case 265:
+ sendWSMessage_10000(1, _ol, _old5, 40, 1, 267, _old1, 1, 1, 0);
+ break;
+
+ case 267:
+ sendWSMessage_10000(1, _ol, _old1, 1, 1, 200, _old1, 1, 1, 0);
+ _val2 = 0;
+ _val3 = 1;
+ _ol2 = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "rip talker");
+ sendWSMessage_10000(1, _ol2, _old5f, 1, 1, -1, _old5f, 1, 4, 1);
+ sendWSMessage_1a0000(_ol2, 11);
+ digi_play("608r44", 1, 255, 268);
+ break;
+
+ case 270:
+ sendWSMessage_10000(1, _ol, _old5d, 1, 11, 272, _old5d, 11, 11, 1);
+ break;
+
+ case 272:
+ sendWSMessage_10000(1, _ol, _old5d, 11, 23, -1, _old5d, 24, 30, 4);
+ sendWSMessage_1a0000(_ol, 11);
+ inv_move_object("CLOCK FACING", 608);
+ digi_play("608o09", 1, 255, 275);
+ break;
+
+ case 275:
+ digi_play("608o09a", 1, 255, 277);
+ break;
+
+ case 277:
+ sendWSMessage_10000(1, _ol, _old5d, 39, 45, 500, _old5d, 45, 45, 4);
+ digi_play("608r46", 1);
+ break;
+
+ case 280:
+ sendWSMessage_10000(1, _ol, _old5c, 1, 13, 282, _old5c, 13, 13, 1);
+ break;
+
+ case 282:
+ sendWSMessage_10000(1, _ol, _old5c, 14, 27, -1, _old5c, 28, 32, 4);
+ sendWSMessage_1a0000(_ol, 11);
+ inv_move_object("OBSIDIAN DISK", 608);
+ digi_play("608o09", 1, 255, 285);
+ break;
+
+ case 285:
+ digi_play("608o09a", 1, 255, 287);
+ break;
+
+ case 287:
+ sendWSMessage_10000(1, _ol, _old5c, 33, 47, -1, _old5c, 47, 47, 4);
+ digi_play("608r46", 1, 255, 500);
+ break;
+
+ case 300:
+ kernel_trigger_dispatchx(kernel_trigger_create(301));
+ break;
+
+ case 301:
+ if (!_val5) {
+ switch (_val4) {
+ case 0:
+ sendWSMessage_10000(1, _ripley, _rp09, 23, 23, 300, _rp09, 23, 23, 0);
+ break;
+
+ case 1:
+ frame = imath_ranged_rand(23, 25);
+ sendWSMessage_10000(1, _ripley, _rp09, frame, frame, 300, _rp09, frame, frame, 0);
+ sendWSMessage_190000(_ripley, 13);
+ sendWSMessage_1a0000(_ripley, 13);
+ break;
+
+ case 2:
+ sendWSMessage_10000(1, _ripley, _rp09, 23, 1, 302, _rp09, 1, 1, 0);
+ break;
+
+ case 3:
+ sendWSMessage_10000(1, _ripley, _rp09, 23, 1, 305, _rp09, 1, 1, 0);
+ break;
+
+ case 4:
+ sendWSMessage_10000(1, _ripley, _rp09, 23, 1, 306, _rp09, 1, 1, 0);
+ break;
+
+ case 5:
+ sendWSMessage_10000(1, _ripley, _rp09, 23, 1, 307, _rp09, 1, 1, 0);
+ break;
+
+ case 6:
+ sendWSMessage_10000(1, _ripley, _rp09, 23, 1, 308, _rp09, 1, 1, 0);
+ break;
+
+ default:
+ break;
+ }
+ }
+ break;
+
+ case 302:
+ terminateMachineAndNull(_shadow);
+ terminateMachineAndNull(_ripley);
+ ws_unhide_walker();
+ player_set_commands_allowed(true);
+ break;
+
+ case 305:
+ terminateMachineAndNull(_shadow);
+ terminateMachineAndNull(_ripley);
+ ws_unhide_walker();
+ _val3 = 14;
+ break;
+
+ case 306:
+ terminateMachineAndNull(_shadow);
+ terminateMachineAndNull(_ripley);
+ ws_unhide_walker();
+ _val3 = 13;
+ break;
+
+ case 307:
+ terminateMachineAndNull(_shadow);
+ terminateMachineAndNull(_ripley);
+ ws_unhide_walker();
+ _val3 = 15;
+ break;
+
+ case 308:
+ terminateMachineAndNull(_shadow);
+ terminateMachineAndNull(_ripley);
+ ws_unhide_walker();
+ _val3 = 16;
+ break;
+
+ case 500:
+ terminateMachineAndNull(_ol);
+ _ol = triggerMachineByHash_3000(8, 15, NORMAL_DIRS1, SHADOW_DIRS1,
+ 499, 318, 9, triggerMachineByHashCallback3000, "ow walker");
+ sendWSMessage_10000(_ol, 487, 290, 11, -1, 1);
+ kernel_timing_trigger(60, 501);
+ ws_unhide_walker();
+ break;
+
+ case 501:
+ ws_walk(465, 284, nullptr, 503, 1);
+ break;
+
+ case 503:
+ sendWSMessage_60000(_ol);
+ ws_hide_walker();
+ ws_hide_walker(_ol);
+ digi_preload("608o10");
+ digi_preload("608r47");
+ digi_preload("608o11");
+ digi_preload("608r48");
+ digi_preload("608o12");
+ digi_preload("608o13");
+ digi_preload("608r49");
+ digi_preload("608o14");
+ digi_preload("608_s04");
+ digi_preload("608_s04a");
+ digi_preload("608_s05");
+ digi_preload("608_s05a");
+ digi_preload("608o19");
+
+ kernel_load_variant("608lock0");
+ _ol2 = series_stream("608all0", 5, 0x600, 530);
+ series_stream_break_on_frame(_ol2, 3, 504);
+ break;
+
+ case 504:
+ series_stream_break_on_frame(_ol2, 49, 505);
+ digi_play("608o10", 1, 255, 507);
+ break;
+
+ case 505:
+ series_stream_check_series(_ol2, 240);
+ series_stream_break_on_frame(_ol2, 50, 506);
+ break;
+
+ case 506:
+ series_stream_check_series(_ol2, 7);
+ series_stream_break_on_frame(_ol2, 53, 508);
+ break;
+
+ case 507:
+ series_stream_check_series(_ol2, 13);
+ digi_play("608r47", 1);
+ break;
+
+ case 508:
+ series_stream_break_on_frame(_ol2, 137, 509);
+ digi_play("608o11", 1);
+ break;
+
+ case 509:
+ series_stream_break_on_frame(_ol2, 150, 559);
+ digi_play("608_s05", 2);
+ break;
+
+ case 511:
+ series_stream_break_on_frame(_ol2, 256, 512);
+ digi_play("608_s04", 2);
+ break;
+
+ case 512:
+ series_stream_break_on_frame(_ol2, 270, 513);
+ digi_play("608_s04a", 2);
+ break;
+
+ case 513:
+ series_stream_break_on_frame(_ol2, 274, 514);
+ break;
+
+ case 514:
+ series_stream_check_series(_ol2, 300);
+ kernel_timing_trigger(60, 555);
+ series_stream_break_on_frame(_ol2, 275, 515);
+ break;
+
+ case 515:
+ series_stream_check_series(_ol2, 7);
+ series_stream_break_on_frame(_ol2, 290, 516);
+ break;
+
+ case 516:
+ series_stream_break_on_frame(_ol2, 330, 558);
+ digi_play("608_s05a", 2);
+ break;
+
+ case 517:
+ series_stream_break_on_frame(_ol2, 367, 519);
+ break;
+
+ case 519:
+ series_stream_break_on_frame(_ol2, 409, 521);
+ break;
+
+ case 521:
+ series_stream_break_on_frame(_ol2, 429, 524);
+ digi_play("608r49", 1);
+ break;
+
+ case 524:
+ series_stream_break_on_frame(_ol2, 483, 525);
+ digi_play("608o14", 1);
+ break;
+
+ case 525:
+ series_stream_break_on_frame(_ol2, 487, 560);
+ digi_play("608_s05", 2);
+ break;
+
+ case 527:
+ digi_play("608_s05a", 2);
+ break;
+
+ case 530:
+ digi_unload("608o10");
+ digi_unload("608r47");
+ digi_unload("608o11");
+ digi_unload("608r48");
+ digi_unload("608o12");
+ digi_unload("608o13");
+ digi_unload("608r49");
+ digi_unload("608o14");
+ digi_unload("608_s04");
+ digi_unload("608_s04a");
+ digi_unload("608_s05");
+ digi_unload("608_s05a");
+ digi_unload("608o19");
+ hotspot_set_active("hole in hillside", true);
+
+ _ripHandTalk3 = series_load("RIP TREK HAND TALK POS3");
+ _end2 = series_show("608END2", 0xe00, 16);
+ ws_unhide_walker();
+ ws_demand_location(494, 276, 3);
+
+ sendWSMessage_10000(_G(my_walker), 524, 296, 9, 532, 1);
+ _ol = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x200, 0,
+ triggerMachineByHashCallbackNegative, "ol");
+ sendWSMessage_10000(1, _ol, _old8, 1, 1, -1, _old8, 1, 1, 1);
+ break;
+
+ case 532:
+ sendWSMessage_10000(1, _ol, _old8, 1, 11, 534, _old8, 12, 17, 1);
+ sendWSMessage_1a0000(_ol, 11);
+ break;
+
+ case 534:
+ digi_play("608o15", 1, 255, 536);
+ break;
+
+ case 536:
+ sendWSMessage_10000(1, _ol, _old8, 48, 46, 538, _old8, 47, 50, 1);
+ sendWSMessage_1a0000(_ol, 11);
+ break;
+
+ case 538:
+ digi_play("608o15a", 1, 255, 540);
+ break;
+
+ case 540:
+ sendWSMessage_10000(1, _ol, _old8, 47, 47, -1, _old8, 47, 47, 1);
+ setGlobals1(_ripHandTalk3, 1, 16, 16, 16);
+ sendWSMessage_110000(546);
+ digi_play("608r50", 1, 255, 544);
+ break;
+
+ case 543:
+ sendWSMessage_10000(1, _ol, _old8, 26, 45, 545, _old8, 45, 45, 1);
+ break;
+
+ case 544:
+ sendWSMessage_10000(1, _ol, _old8, 47, 50, -1, _old8, 47, 50, 1);
+ digi_play("608o16", 1, 255, 543);
+ break;
+
+ case 545:
+ sendWSMessage_10000(1, _ol, _old8, 51, 72, 548, _old8, 72, 72, 1);
+ break;
+
+ case 546:
+ sendWSMessage_150000(-1);
+ break;
+
+ case 548:
+ terminateMachineAndNull(_ol);
+ _ol = triggerMachineByHash_3000(8, 15, NORMAL_DIRS1, SHADOW_DIRS1,
+ 487, 293, 9, triggerMachineByHashCallback3000, "ow walker");
+ sendWSMessage_10000(_ol, 417, 295, 9, 549, 0);
+ kernel_timing_trigger(300, 551);
+ midi_play("eastiswo", 255, 1, -1, 949);
+ _G(player).disable_hyperwalk = true;
+ break;
+
+ case 549:
+ sendWSMessage_10000(_ol, 150, 330, 9, 550, 0);
+ break;
+
+ case 550:
+ hotspot_set_active("old woman", false);
+ sendWSMessage_10000(_ol, -30, 324, 9, 552, 1);
+ player_set_commands_allowed(true);
+ break;
+
+ case 551:
+ sendWSMessage_10000(_G(my_walker), 503, 296, 9, -1, 1);
+ digi_play("608r51", 1);
+ _G(flags)[V186] = 2;
+ break;
+
+ case 552:
+ sendWSMessage_60000(_ol);
+ midi_fade_volume(0, 120);
+ kernel_timing_trigger(120, 553);
+ _G(player).disable_hyperwalk = false;
+ break;
+
+ case 553:
+ midi_stop();
+ break;
+
+ case 555:
+ digi_play("608r48", 1);
+ break;
+
+ case 558:
+ series_stream_break_on_frame(_ol2, 343, 517);
+ digi_play("608o13", 1);
+ break;
+
+ case 559:
+ series_stream_break_on_frame(_ol2, 216, 511);
+ digi_play("950_s37", 1);
+ break;
+
+ case 560:
+ series_stream_break_on_frame(_ol2, 572, 570);
+ digi_play("950_s37", 2);
+ break;
+
+ case 570:
+ series_stream_break_on_frame(_ol2, 639, 527);
+ digi_play("608o19", 1);
+ break;
+
+ case 698:
+ kernel_timing_trigger(60, 699);
+ break;
+
+ case 699:
+ ws_walk(43, 345, nullptr, -1, 3);
+ break;
+
+ case 700:
+ player_update_info(_tt, &_G(player_info));
+ ws_hide_walker();
+ _ttShadow = series_show("tt walker shadow 3", 0xf00, 0, -1, -1, 0,
+ _G(player_info).scale, _G(player_info).x, _G(player_info).y);
+ _ttTalker = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "tt walker");
+ sendWSMessage_10000(1, _ttTalker, _tt02, 1, 11, 703, _tt02, 11, 11, 0);
+ break;
+
+ case 703:
+ sendWSMessage_10000(1, _ttTalker, _tt02, 12, 12, -1, _tt02, 12, 34, 4);
+ sendWSMessage_1a0000(_ttTalker, 13);
+ digi_play("608t04", 1, 255, 704);
+ break;
+
+ case 704:
+ sendWSMessage_10000(1, _ttTalker, _tt02, 12, 12, -1, _tt02, 12, 12, 4);
+ kernel_timing_trigger(60, 706);
+ break;
+
+ case 706:
+ sendWSMessage_10000(1, _ttTalker, _tt02, 35, 35, -1, _tt02, 35, 51, 4);
+ sendWSMessage_1a0000(_ttTalker, 13);
+ digi_play("608t05", 1, 255, 708);
+ break;
+
+ case 708:
+ sendWSMessage_10000(1, _ttTalker, _tt02, 51, 51, -1, _tt02, 51, 51, 0);
+ kernel_timing_trigger(20, 709);
+ break;
+
+ case 709:
+ setGlobals1(_ripHandChin, 1, 14, 14, 14);
+ sendWSMessage_110000(713);
+ digi_play("608r53", 1);
+ break;
+
+ case 713:
+ sendWSMessage_10000(1, _ttTalker, _tt02, 55, 64, 714, _tt02, 64, 64, 0);
+ digi_play("608r53a", 1);
+ kernel_timing_trigger(60, 717);
+ break;
+
+ case 714:
+ terminateMachineAndNull(_ttTalker);
+ ws_unhide_walker(_tt);
+ terminateMachineAndNull(_ttShadow);
+ sendWSMessage_10000(_tt, 238, 322, 3, 715, 0);
+ break;
+
+ case 715:
+ sendWSMessage_10000(_tt, 459, 277, 3, -1, 1);
+ break;
+
+ case 717:
+ sendWSMessage_140000(718);
+ break;
+
+ case 718:
+ sendWSMessage_10000(_G(my_walker), 248, 328, 3, 719, 0);
+ break;
+
+ case 719:
+ sendWSMessage_10000(_G(my_walker), 466, 292, 3, 721, 1);
+ break;
+
+ case 721:
+ ws_hide_walker(_tt);
+ series_unload(200);
+ series_unload(201);
+ series_unload(203);
+ series_unload(204);
+
+ _ttTalker = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0xd00, 0,
+ triggerMachineByHashCallbackNegative, "tt walker");
+ sendWSMessage_10000(1, _ttTalker, _tt03, 1, 60, -1, _tt03, 60, 60, 0);
+ digi_play("608t06", 1, 255, 726);
+ break;
+
+ case 726:
+ sendWSMessage_10000(_G(my_walker), 495, 277, 9, 729, 1);
+ digi_play("608r54", 1);
+ break;
+
+ case 729:
+ terminateMachineAndNull(_ttTalker);
+ ws_hide_walker();
+ digi_preload("950_s37");
+ digi_preload("608r55");
+ digi_preload("604_s01");
+ digi_preload("608t08");
+ digi_preload("608_s11");
+ digi_preload("608_s05");
+ digi_preload("608_s05a");
+ digi_preload("608_s09");
+ digi_preload("608_s10");
+ digi_preload("608_s07");
+ digi_preload("608t07");
+ digi_preload("608_s06");
+ digi_preload("608r56");
+
+ _ol2 = series_stream("608all5", 5, 0x600, 750);
+ series_stream_break_on_frame(_ol2, 21, 783);
+ series_stream_check_series(_ol2, 10);
+ break;
+
+ case 731:
+ series_stream_break_on_frame(_ol2, 45, 787);
+ digi_play("608r55", 1);
+ break;
+
+ case 733:
+ series_stream_break_on_frame(_ol2, 64, 734);
+ digi_play("608t08", 1);
+ break;
+
+ case 734:
+ series_stream_check_series(_ol2, 7);
+ series_stream_break_on_frame(_ol2, 107, 792);
+ break;
+
+ case 735:
+ series_stream_break_on_frame(_ol2, 177, 782);
+ break;
+
+ case 736:
+ series_stream_break_on_frame(_ol2, 193, 739);
+ digi_play("608_s06", 2);
+ break;
+
+ case 739:
+ series_stream_break_on_frame(_ol2, 290, 747);
+ digi_play("608r56", 2);
+ break;
+
+ case 747:
+ ws_unhide_walker();
+ ws_demand_location(461, 293, 3);
+ sendWSMessage_10000(_G(my_walker), 432, 297, 3, 738, 1);
+ break;
+
+ case 750:
+ _lighter = series_show("608LITER", 0xf00, 16);
+ hotspot_set_active("LIGHTER", true);
+ ws_hide_walker();
+
+ digi_unload("950_s37");
+ digi_unload("608r55");
+ digi_unload("604_s01");
+ digi_unload("608t08");
+ digi_unload("608_s11");
+ digi_unload("608_s05");
+ digi_unload("608_s05a");
+ digi_unload("608_s09");
+ digi_unload("608_s10");
+ digi_unload("608_s07");
+ digi_unload("608t07");
+ digi_unload("608_s06");
+ digi_unload("608r56");
+
+ series_unload(_tt02);
+ series_unload(_tt03);
+ series_unload(_ripHandChin);
+ series_unload(_ripTalker);
+
+ series_load(SECTION6_NORMAL_NAMES[0], SECTION6_NORMAL_DIRS[0]);
+ series_load(SECTION6_NORMAL_NAMES[1], SECTION6_NORMAL_DIRS[1]);
+ series_load(SECTION6_NORMAL_NAMES[3], SECTION6_NORMAL_DIRS[3]);
+ series_load(SECTION6_NORMAL_NAMES[4], SECTION6_NORMAL_DIRS[4]);
+ ws_hide_walker(_tt);
+
+ _ttTalker = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "tt walker");
+ sendWSMessage_10000(1, _ttTalker, _all5a, 1, 1, -1, _all5a, 1, 6, 4);
+ digi_play("608r58", 2, 255, 752);
+ break;
+
+ case 752:
+ sendWSMessage_10000(1, _ttTalker, _all5a, 7, 7, -1, _all5a, 7, 12, 4);
+ digi_play("608t10", 2, 255, 755);
+ break;
+
+ // TODO
+ default:
+ break;
+ }
}
void Room608::pre_parser() {
diff --git a/engines/m4/riddle/rooms/section6/room608.h b/engines/m4/riddle/rooms/section6/room608.h
index 9654fe6871c..e4c0c9423ed 100644
--- a/engines/m4/riddle/rooms/section6/room608.h
+++ b/engines/m4/riddle/rooms/section6/room608.h
@@ -37,19 +37,20 @@ private:
int _ripLowReach2 = 0;
int _ripTalker = 0;
int _ripLHandTalk = 0;
+ int _ripHandTalk3 = 0;
int _tt01 = 0;
int _tt02 = 0;
int _tt03 = 0;
int _tt05 = 0;
- int _old01 = 0;
- int _old02 = 0;
- int _old05 = 0;
- int _old08 = 0;
- int _old05a = 0;
- int _old05b = 0;
- int _old05c = 0;
- int _old05d = 0;
- int _old05f = 0;
+ int _old1 = 0;
+ int _old2 = 0;
+ int _old5 = 0;
+ int _old8 = 0;
+ int _old5a = 0;
+ int _old5b = 0;
+ int _old5c = 0;
+ int _old5d = 0;
+ int _old5f = 0;
int _all5a = 0;
int _loop0 = 0;
int _loop1 = 0;
@@ -58,6 +59,8 @@ private:
machine *_shadow = nullptr;
machine *_shadow5 = nullptr;
machine *_tt = nullptr;
+ machine *_ttShadow = nullptr;
+ machine *_ttTalker = nullptr;
machine *_ol = nullptr;
machine *_ol2 = nullptr;
machine *_stump = nullptr;
More information about the Scummvm-git-logs
mailing list