[Scummvm-git-logs] scummvm master -> b6cfa460fb48c4ac40115d9ff4f0231e4e276d3e
Strangerke
noreply at scummvm.org
Fri Oct 11 15:51:59 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:
b6cfa460fb M4: RIDDLE: Implement daemon in room 801
Commit: b6cfa460fb48c4ac40115d9ff4f0231e4e276d3e
https://github.com/scummvm/scummvm/commit/b6cfa460fb48c4ac40115d9ff4f0231e4e276d3e
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-10-11T16:51:53+01:00
Commit Message:
M4: RIDDLE: Implement daemon in room 801
Changed paths:
engines/m4/riddle/rooms/section8/room801.cpp
engines/m4/riddle/rooms/section8/room801.h
diff --git a/engines/m4/riddle/rooms/section8/room801.cpp b/engines/m4/riddle/rooms/section8/room801.cpp
index 18ff0efaa04..93d9cf44be1 100644
--- a/engines/m4/riddle/rooms/section8/room801.cpp
+++ b/engines/m4/riddle/rooms/section8/room801.cpp
@@ -58,14 +58,14 @@ void Room801::init() {
digi_preload("801_s02", -1);
digi_play_loop("801_s02", 3, 100, -1, -1);
- _roomStates_field64 = series_load("farmer displacement", -1, nullptr);
- _roomStates_field74 = series_load("farmer talk loop", -1, nullptr);
- _roomStates_field6C = series_load("farmer give take bow", -1, nullptr);
- _roomStates_field78 = series_load("mei prattle loop", -1, nullptr);
+ _roomStates_field642 = series_load("farmer displacement", -1, nullptr);
+ _roomStates_field742 = series_load("farmer talk loop", -1, nullptr);
+ _roomStates_field6C2 = series_load("farmer give take bow", -1, nullptr);
+ _roomStates_field782 = series_load("mei prattle loop", -1, nullptr);
_roomStates_loop1 = series_load("rip kneel to pottery", -1, nullptr);
_roomStates_loop2 = series_load("rip enters root cellar", -1, nullptr);
- _roomStates_loop6 = series_load("rip trek head turn pos5", -1, nullptr);
- _roomStates_loop7 = series_load("rptmr15", -1, nullptr);
+ _roomStates_loop62 = series_load("rip trek head turn pos5", -1, nullptr);
+ _roomStates_loop72 = series_load("rptmr15", -1, nullptr);
_roomStates_val1 = series_load("rip trek hand on chin pos2", -1, nullptr);
_roomStates_ear2 = series_load("rip trek hands beh back pos1", -1, nullptr);
_roomStates_val3 = series_load("rip trek nod pos4", -1, nullptr);
@@ -73,7 +73,7 @@ void Room801::init() {
series_load("SAFARI SHADOW 5", -1, nullptr);
_roomStates_loop4 = series_load("MCTSH1", -1, nullptr);
_roomStates_field96h = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 1024, 0, triggerMachineByHashCallbackNegative, "farmer displacement");
- sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field64, 1, 14, 0, _roomStates_field64, 14, 14, 0);
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field642, 1, 14, 0, _roomStates_field642, 14, 14, 0);
_roomStates_field9Ah = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 151, 317, 100, 1280, 0, triggerMachineByHashCallbackNegative, "farmer shadow");
sendWSMessage_10000(1, _roomStates_field9Ah, _roomStates_loop4, 1, 1, -1, _roomStates_loop4, 1, 1, 0);
if (inv_player_has("farmer's shovel"))
@@ -100,10 +100,10 @@ void Room801::init() {
_G(kernel).call_daemon_every_loop = true;
ws_demand_facing(_G(my_walker), 3);
ws_demand_location(_G(my_walker), 20, 270);
- _roomStates_field68 = series_load("farmer earthquake gesture", -1, nullptr);
+ _roomStates_field682 = series_load("farmer earthquake gesture", -1, nullptr);
_roomStates_loop0 = series_load("rip looks to zero", -1, nullptr);
_roomStates_field7C = series_load("mei looks to zero", -1, nullptr);
- _roomStates_field70 = series_load("farmer looks to zero", -1, nullptr);
+ _roomStates_field702 = series_load("farmer looks to zero", -1, nullptr);
_roomStates_field60 = series_load("shadow of de plane", -1, nullptr);
ws_walk_load_shadow_series(S8_SHADOW_DIRS1, S8_SHADOW_NAMES1);
ws_walk_load_walker_series(S8_SHADOW_DIRS2, S8_SHADOW_NAMES2);
@@ -139,7 +139,7 @@ void Room801::init() {
_roomStates_field9Eh = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 1280, 0, triggerMachineByHashCallbackNegative, "mc talk frames");
_roomStates_fieldA2h = series_show("SAFARI SHADOW 5", 1280, 16, -1, -1, 0, 50, 124, 304);
- sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field78, 42, 42, 0, _roomStates_field78, 42, 42, 0);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 42, 42, 0, _roomStates_field782, 42, 42, 0);
}
}
@@ -311,7 +311,7 @@ void Room801::parser() {
break;
case 2:
digi_play("801r20", 1, 255, 3, -1);
- sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field78, 31, 40, 3, _roomStates_field78, 40, 40, 0);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 31, 40, 3, _roomStates_field782, 40, 40, 0);
break;
case 3:
if (_var1 == 0)
@@ -319,7 +319,7 @@ void Room801::parser() {
else {
_var1 = 0;
sendWSMessage_10000(1, _roomStates_field8Ah, _roomStates_loop2, 42, 26, 4, _roomStates_loop2, 26, 26, 0);
- sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field78, 37, 40, 4, _roomStates_field78, 37, 40, 1);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 37, 40, 4, _roomStates_field782, 37, 40, 1);
digi_play("801m10", 1, 255, 4, -1);
}
break;
@@ -328,7 +328,7 @@ void Room801::parser() {
++_var1;
else {
_var1 = 0;
- sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field78, 40, 40, 5, _roomStates_field78, 40, 40, 0);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 40, 40, 5, _roomStates_field782, 40, 40, 0);
sendWSMessage_10000(1, _roomStates_field8Ah, _roomStates_loop1, 26, 42, 5, _roomStates_loop1, 42, 42, 0);
}
break;
@@ -345,7 +345,7 @@ void Room801::parser() {
break;
case 7:
sendWSMessage_10000(1, _roomStates_field8Ah, _roomStates_loop1, 26, 1, 8, _roomStates_loop1, 1, 1, 0);
- sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field78, 37, 40, 9, _roomStates_field78, 37, 40, 1);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 37, 40, 9, _roomStates_field782, 37, 40, 1);
digi_play("801m11", 1, 255, 9, -1);
break;
case 8:
@@ -358,7 +358,7 @@ void Room801::parser() {
++_var1;
else {
_var1 = 0;
- sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field78, 40, 31, 10, _roomStates_field78, 31, 31, 0);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 40, 31, 10, _roomStates_field782, 31, 31, 0);
}
break;
case 10:
@@ -395,7 +395,7 @@ void Room801::parser() {
switch (_G(kernel).trigger) {
case -1:
player_set_commands_allowed(false);
- setGlobals1(_roomStates_loop6, 1, 1, 1, 1, 0, 1, 7, 5, 7, 1, 7, 1, 1, 1, 0, 7, 7, 7, 7, 0);
+ setGlobals1(_roomStates_loop62, 1, 1, 1, 1, 0, 1, 7, 5, 7, 1, 7, 1, 1, 1, 0, 7, 7, 7, 7, 0);
sendWSMessage_110000(_G(my_walker), 1);
break;
case 1:
@@ -407,39 +407,39 @@ void Room801::parser() {
break;
case 3:
sendWSMessage_130000(_G(my_walker), 0);
- sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field78, 42, 55, 0, _roomStates_field78, 53, 55, 1);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 42, 55, 0, _roomStates_field782, 53, 55, 1);
digi_play("801m12", 1, 255, 4, -1);
break;
case 4:
- sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field78, 55, 55, 0, _roomStates_field78, 55, 55, 0);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 55, 55, 0, _roomStates_field782, 55, 55, 0);
digi_play("801f06", 1, 255, 5, -1);
- sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field74, 1, 1, 0, _roomStates_field74, 1, 3, 4);
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field742, 1, 1, 0, _roomStates_field742, 1, 3, 4);
break;
case 5:
- sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field74, 1, 1, 0, _roomStates_field74, 1, 1, 0);
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field742, 1, 1, 0, _roomStates_field742, 1, 1, 0);
sendWSMessage_150000(_G(my_walker), 0);
- sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field78, 31, 40, 6, _roomStates_field78, 40, 40, 0);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 31, 40, 6, _roomStates_field782, 40, 40, 0);
break;
case 6:
- sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field78, 40, 41, 0, _roomStates_field78, 39, 41, 4);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 40, 41, 0, _roomStates_field782, 39, 41, 4);
digi_play("801m13", 1, 255, 7, -1);
break;
case 7:
- sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field78, 41, 31, 0, _roomStates_field78, 31, 31, 0);
- setGlobals1(_roomStates_loop7, 1, 16, 16, 16, 0, 16, 1, 1, 1, 0, 1, 1, 1, 1, 1, 16, 16, 16, 16, 0);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 41, 31, 0, _roomStates_field782, 31, 31, 0);
+ setGlobals1(_roomStates_loop72, 1, 16, 16, 16, 0, 16, 1, 1, 1, 0, 1, 1, 1, 1, 1, 16, 16, 16, 16, 0);
sendWSMessage_110000(_G(my_walker), 9);
kernel_timing_trigger(50, 8, nullptr);
inv_move_object("CHINESE YUAN", 801);
digi_play("801r28", 1, 255, 9, -1);
break;
case 8:
- sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field6C, 71, 110, 10, _roomStates_field74, 110, 110, 0);
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field6C2, 71, 110, 10, _roomStates_field742, 110, 110, 0);
break;
case 9:
sendWSMessage_120000(_G(my_walker), 0);
break;
case 10:
- sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field74, 1, 1, 0, _roomStates_field74, 1, 1, 0);
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field742, 1, 1, 0, _roomStates_field742, 1, 1, 0);
sendWSMessage_150000(_G(my_walker), 12);
break;
case 12:
@@ -448,7 +448,7 @@ void Room801::parser() {
break;
case 13:
hotspot_set_active(_G(currentSceneDef).hotspots, "farmer's shovel", false);
- setGlobals1(_roomStates_loop7, 1, 16, 16, 16, 0, 16, 1, 1, 1, 0, 1, 1, 1, 1, 1, 16, 16, 16, 16, 0);
+ setGlobals1(_roomStates_loop72, 1, 16, 16, 16, 0, 16, 1, 1, 1, 0, 1, 1, 1, 1, 1, 16, 16, 16, 16, 0);
sendWSMessage_110000(_G(my_walker), 16);
break;
case 16:
@@ -472,7 +472,7 @@ void Room801::parser() {
else if (gearFl && player_said("root cellar ")) {
switch (_G(kernel).trigger) {
case -1:
- if (_roomStates_tt == 0) {
+ if (_roomStates_tt2 == 0) {
player_set_commands_allowed(false);
ws_hide_walker();
terminateMachine(_roomStates_fieldA6h);
@@ -482,7 +482,7 @@ void Room801::parser() {
}
break;
case 1:
- _roomStates_tt = 1;
+ _roomStates_tt2 = 1;
terminateMachine(_roomStates_field8Ah);
series_unload(_roomStates_field18);
_roomStates_fieldAAh = series_place_sprite("CELLAR DOOR OPEN", 0, 0, -53, 100, 1024);
@@ -511,7 +511,7 @@ void Room801::parser() {
// Not the same as the previous one : there's one space instead of two at the end
switch (_G(kernel).trigger) {
case -1:
- if (_roomStates_tt != 0) {
+ if (_roomStates_tt2 != 0) {
player_set_commands_allowed(false);
ws_hide_walker(_G(my_walker));
terminateMachine(_roomStates_fieldAAh);
@@ -521,7 +521,7 @@ void Room801::parser() {
}
break;
case 1:
- _roomStates_tt = 0;
+ _roomStates_tt2 = 0;
terminateMachine(_roomStates_field8Ah);
ws_unhide_walker(_G(my_walker));
digi_stop(1);
@@ -550,7 +550,7 @@ void Room801::parser() {
ws_hide_walker(_G(my_walker));
player_set_commands_allowed(false);
_roomStates_field8Ah = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 167, 303, 49, 1280, 1, triggerMachineByHashCallbackNegative, "rip talking to farmer");
- sendWSMessage_10000(1, _roomStates_field8Ah, _roomStates_loop6, 1, 1, -1, _roomStates_loop6, 1, 1, 0);
+ sendWSMessage_10000(1, _roomStates_field8Ah, _roomStates_loop62, 1, 1, -1, _roomStates_loop62, 1, 1, 0);
_roomStates_field8Eh = series_show("SAFARI SHADOW 5", 1280, 144, -1, -1, 0, 48, 167, 303);
_roomStates_pu2 = 1;
_roomStates_ripTalker = 1;
@@ -581,7 +581,7 @@ void Room801::parser() {
switch (_G(kernel).trigger) {
case -1:
player_set_commands_allowed(false);
- setGlobals1(_roomStates_loop6, 1, 4, 5, 7, 1, 4, 4, 4, 4, 1, 4, 1, 1, 1, 0, 4, 1, 1, 1, 0);
+ setGlobals1(_roomStates_loop62, 1, 4, 5, 7, 1, 4, 4, 4, 4, 1, 4, 1, 1, 1, 0, 4, 1, 1, 1, 0);
sendWSMessage_110000(_G(my_walker), 1);
break;
case 1:
@@ -606,10 +606,10 @@ void Room801::parser() {
sendWSMessage_120000(_G(my_walker), 4);
break;
case 4:
- sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field78, 31, 40, 5, _roomStates_field78, 40, 40, 0);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 31, 40, 5, _roomStates_field782, 40, 40, 0);
break;
case 5:
- sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field78, 40, 41, 0, _roomStates_field78, 40, 41, 4);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 40, 41, 0, _roomStates_field782, 40, 41, 4);
switch (imath_ranged_rand(1, 3)) {
case 1:
digi_play("com039", 1, 255, 6, 997);
@@ -625,7 +625,7 @@ void Room801::parser() {
}
break;
case 6:
- sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field78, 41, 31, 7, _roomStates_field78, 31, 31, 0);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 41, 31, 7, _roomStates_field782, 31, 31, 0);
sendWSMessage_130000(_G(my_walker), 0);
break;
case 7:
@@ -698,6 +698,438 @@ void Room801::parser() {
}
void Room801::daemon() {
+ switch (_G(kernel).trigger) {
+ case 1:
+ sendWSMessage_10000(_roomStates_field9Eh, 124, 304, 4, 11, 1);
+ ws_walk(_G(my_walker), 172, 302, nullptr, 10, 7, true);
+ break;
+ case 2:
+ terminateMachine(_roomStates_field92h);
+ series_unload(_roomStates_field60);
+ _roomStates_field4 = 1;
+ kernel_timing_trigger(70, 31, nullptr);
+ break;
+ case 4:
+ // nothing
+ break;
+ case 5:
+ sendWSMessage_150000(_G(my_walker), -1);
+ _G(player).disable_hyperwalk = false;
+ _G(kernel).call_daemon_every_loop = false;
+ player_set_commands_allowed(true);
+ break;
+ case 6:
+ case 7:
+ player_set_commands_allowed(false);
+ ws_hide_walker(_G(my_walker));
+ _roomStates_field9Eh = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 1280, 0, triggerMachineByHashCallbackNegative, "mc talk frames");
+ _roomStates_fieldA2h = series_show("SAFARI SHADOW 5", 1280, 16, -1, -1, 0, 50, 124, 304);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 42, 42, 0, _roomStates_field782, 42, 42, 0);
+
+ if (_G(flags)[V260]) {
+ kernel_timing_trigger(30, 81, nullptr);
+ } else {
+ _roomStates_field8Ah = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0, 0, triggerMachineByHashCallbackNegative, "rip returns from cellar");
+ sendWSMessage_10000(1, _roomStates_field8Ah, _roomStates_loop3, 1, 22, 8, _roomStates_loop3, 22, 22, 0);
+ }
+ break;
+ case 8:
+ terminateMachine(_roomStates_field8Ah);
+ ws_unhide_walker(_G(my_walker));
+ series_unload(_roomStates_loop3);
+ player_set_commands_allowed(true);
+ break;
+ case 9:
+ mouse_lock_sprite(5);
+ conv_resume(conv_get_handle());
+ break;
+ case 10:
+ terminateMachine(_roomStates_field96h);
+ _roomStates_field92h = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 2048, 0, triggerMachineByHashCallbackNegative, "shadow of de plane");
+ _roomStates_field96h = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 1024, 0, triggerMachineByHashCallbackNegative, "farmer looks to zero");
+ _roomStates_field8Ah = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 1536, 0, triggerMachineByHashCallbackNegative, "rip looks to zero");
+ sendWSMessage_10000(1, _roomStates_field92h, _roomStates_field60, 1, 47, 2, _roomStates_field60, 47, 47, 0);
+ _roomStates_field4 = 0;
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field702, 1, 48, 12, _roomStates_field702, 48, 48, 0);
+ _roomStates_field6 = 0;
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field7E, 1, 18, 0, _roomStates_field7E, 18, 18, 0);
+ ws_hide_walker(_G(my_walker));
+ sendWSMessage_10000(1, _roomStates_field8Ah, _roomStates_field2A, 1, 13, 51, _roomStates_field2A, 13, 13, 0);
+ _roomStates_field8Eh = series_show("SAFARI SHADOW 5", 1280, 144, -1, -1, 0, 48, 172, 302);
+ break;
+ case 11:
+ digi_play("801_s01", 2, 255, -1, -1);
+ sendWSMessage_60000(_roomStates_field9Eh);
+ _roomStates_field9Eh = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 1280, 0, triggerMachineByHashCallbackNegative, "mei chen looks to zero");
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 1, 7, 0, _roomStates_field782, 7, 7, 0);
+ _roomStates_fieldA2h = series_show("SAFARI SHADOW 5", 1280, 16, -1, -1, 0, 50, 124, 304);
+ break;
+ case 12:
+ _roomStates_field6 = 1;
+ break;
+ case 13:
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field742, 4, 1, 0, _roomStates_field742, 1, 1, 0);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 42, 42, 0, _roomStates_field782, 42, 55, 4);
+ digi_play("801m02", 1, 255, 35, -1);
+ break;
+ case 14:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field682, 1, 20, 15, _roomStates_field682, 20, 20, 0);
+ digi_play("801f02a", 1, 255, 16, -1);
+ break;
+ case 15:
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field682, 20, 1, 12, _roomStates_field742, 1, 1, 0);
+ break;
+ case 16:
+ if (_roomStates_field6) {
+ _roomStates_field6 = 0;
+ _roomStates_loop62 = series_load("RIP TREK HEAD TURN POS5", -1, nullptr);
+ setGlobals1(_roomStates_loop62, 1, 7, 5, 7, 1, 7, 1, 1, 1, 0, 1, 1, 1, 1, 0, 7, 7, 7, 7, 0);
+ sendWSMessage_110000(_G(my_walker), 4);
+ digi_play("801r02", 1, 255, 53, -1);
+ } else {
+ kernel_timing_trigger(15, 16, nullptr);
+ }
+ break;
+ case 17:
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field682, 20, 1, 18, _roomStates_field682, 1, 1, 0);
+ break;
+ case 18:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 31, 37, 0, _roomStates_field782, 37, 41, 4);
+ digi_play("801m04", 1, 255, 41, -1);
+ break;
+ case 19:
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field642, 1, 1, 0, _roomStates_field642, 1, 1, 0);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 31, 37, 0, _roomStates_field782, 37, 41, 4);
+ digi_play("801m06", 1, 255, 43, -1);
+ break;
+ case 31:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field7E, 18, 1, 32, _roomStates_field7E, 1, 1, 0);
+ sendWSMessage_10000(1, _roomStates_field8Ah, _roomStates_field2A, 13, 1, 52, _roomStates_field2A, 1, 1, 0);
+ break;
+ case 32:
+ _roomStates_tt2 = 1;
+ break;
+ case 33:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 17, 8, 49, _roomStates_field782, 8, 8, 0);
+ break;
+ case 34:
+ if (_roomStates_tt2) {
+ _roomStates_tt2 = 0;
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 42, 42, 0, _roomStates_field782, 42, 42, 0);
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field742, 1, 4, 0, _roomStates_field742, 5, 7, 4);
+ digi_play("801f01", 1, 255, 13, -1);
+ } else {
+ kernel_timing_trigger(15, 34, nullptr);
+ }
+ break;
+ case 35:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 42, 42, 0, _roomStates_field782, 42, 42, 0);
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field742, 1, 4, 0, _roomStates_field742, 5, 7, 4);
+ digi_play("801f02", 1, 255, 14, -1);
+ break;
+ case 36:
+ if (_roomStates_tt2) {
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 42, 42, -1, _roomStates_field782, 42, 42, 0);
+ } else {
+ kernel_timing_trigger(15, 36, nullptr);
+ }
+ break;
+ case 37:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 83, 64, 38, _roomStates_field782, 64, 64, 0);
+ kernel_timing_trigger(0, 39, nullptr);
+ break;
+ case 38:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 64, 56, 32, _roomStates_field782, 56, 56, 0);
+ break;
+ case 39:
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field682, 1, 20, 17, _roomStates_field682, 20, 20, 0);
+ break;
+ case 41:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 37, 37, 0, _roomStates_field782, 37, 37, 0);
+ sendWSMessage_110000(_G(my_walker), 4);
+ digi_play("801r03", 1, 255, 54, -1);
+ break;
+ case 42:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 41, 31, 0, _roomStates_field782, 31, 31, 0);
+ digi_play("801r04", 1, 255, 55, -1);
+ break;
+ case 43:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 41, 31, 0, _roomStates_field782, 42, 42, 0);
+ _roomStates_field4C2 = series_load("RIP TREK HANDS HIP POS5", -1, nullptr);
+ sendWSMessage_110000(_G(my_walker), -1);
+ digi_play("801r05", 1, 255, 56, -1);
+ break;
+ case 48:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 56, 83, 37, _roomStates_field782, 83, 83, 0);
+ break;
+ case 49:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 18, 30, 50, _roomStates_field782, 30, 30, 0);
+ break;
+ case 50:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 30, 18, 32, _roomStates_field782, 42, 55, 4);
+ break;
+ case 51:
+ digi_play("801r01", 1, 255, -1, -1);
+ break;
+ case 52:
+ if (_roomStates_field6 && _roomStates_field4 && _roomStates_tt2) {
+ terminateMachine(_roomStates_field9Eh);
+ terminateMachine(_roomStates_field96h);
+ terminateMachine(_roomStates_field8Ah);
+ terminateMachine(_roomStates_field8Eh);
+ ws_unhide_walker(_G(my_walker));
+ series_unload(_roomStates_field702);
+ series_unload(_roomStates_field7E);
+ series_unload(_roomStates_field2A);
+ _roomStates_field96h = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 1024, 0, triggerMachineByHashCallbackNegative, "farmer talk frames");
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field742, 1, 1, 0, _roomStates_field742, 1, 1, 0);
+ _roomStates_field9Eh = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 1280, 0, triggerMachineByHashCallbackNegative, "mc talk frames");
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 8, 17, 33, _roomStates_field782, 17, 17, 0);
+ _roomStates_field502 = series_load("RIP TREK HAT TIP POS5", -1, nullptr);
+ kernel_timing_trigger(210, 62, nullptr);
+ digi_play("801m01", 1, 255, 34, -1);
+ _roomStates_field4 = 0;
+ _roomStates_field6 = 0;
+ _roomStates_tt2 = 0;
+ } else {
+ kernel_timing_trigger(15, 52, nullptr);
+ }
+ break;
+ case 53:
+ sendWSMessage_120000(_G(my_walker), -1);
+ kernel_timing_trigger(330, 48, nullptr);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 31, 37, 0, _roomStates_field782, 37, 41, 4);
+ digi_play("801m03", 1, 255, 36, -1);
+ break;
+ case 54:
+ sendWSMessage_120000(_G(my_walker), -1);
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 37, 37, 0, _roomStates_field782, 37, 41, 4);
+ digi_play("801m05", 1, 255, 42, -1);
+ break;
+ case 55:
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field742, 1, 4, 0, _roomStates_field742, 5, 7, 4);
+ digi_play("801f03", 1, 255, 19, -1);
+ break;
+ case 56:
+ sendWSMessage_120000(_G(my_walker), 5);
+ break;
+ case 60:
+ sendWSMessage_140000(_G(my_walker), 63);
+ break;
+ case 61:
+ sendWSMessage_150000(_G(my_walker), -1);
+ break;
+ case 62:
+ setGlobals1(_roomStates_field502, 1, 12, 12, 12, 0, 12, 1, 1, 1, 0, 1, 12, 12, 12, 0, 12, 12, 12, 12, 0);
+ sendWSMessage_110000(_G(my_walker), 60);
+ break;
+ case 63:
+ series_unload(_roomStates_field502);
+ break;
+ case 81:
+ digi_play("801R30", 1, 255, 82, 801);
+ break;
+ case 82:
+ disable_player_commands_and_fade_init(83);
+ break;
+ case 83:
+ _G(game).new_room = 852;
+ break;
+ case 200:
+ switch (_roomStates_untie2) {
+ case 1:
+ switch (_roomStates_pu) {
+ case 1:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 42, 42, -1, _roomStates_field782, 42, 42, 0);
+ kernel_timing_trigger(60, 200, nullptr);
+ break;
+ case 2:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 31, 37, 200, _roomStates_field782, 37, 41, 4);
+ _roomStates_untie2 = 2;
+ break;
+ case 3:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 42, 42, 200, _roomStates_field782, 42, 55, 4);
+ _roomStates_untie2 = 3;
+ break;
+ case 4:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 56, 84, 200, _roomStates_field782, 84, 84, 0);
+ _roomStates_untie2 = 4;
+ break;
+ case 8:
+ _roomStates_untie2 = 8;
+ break;
+ default:
+ break;
+ }
+ break;
+ case 2:
+ switch (_roomStates_pu) {
+ case 1:
+ case 3:
+ case 4:
+ case 8:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 37, 31, 200, _roomStates_field782, 42, 42, 0);
+ _roomStates_untie2 = 1;
+ break;
+ case 2:
+ kernel_timing_trigger(30, 200, nullptr);
+ break;
+ default:
+ break;
+ }
+ break;
+ case 3:
+ switch (_roomStates_pu) {
+ case 1:
+ case 2:
+ case 4:
+ case 8:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 42, 42, 200, _roomStates_field782, 42, 42, 0);
+ _roomStates_untie2 = 1;
+ break;
+ case 3:
+ kernel_timing_trigger(30, 200, nullptr);
+ break;
+ default:
+ break;
+ }
+ break;
+ case 4:
+ switch (_roomStates_pu) {
+ case 4:
+ _roomStates_pu = 1;
+ // Fallthrough on purpose
+ case 1:
+ case 2:
+ case 3:
+ case 8:
+ sendWSMessage_10000(1, _roomStates_field9Eh, _roomStates_field782, 84, 56, 200, _roomStates_field782, 42, 42, 0);
+ _roomStates_untie2 = 1;
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+ case 300:
+ switch (_roomStates_pu2) {
+ case 1:
+ switch (_roomStates_ripTalker) {
+ case 1:
+ sendWSMessage_10000(1, _roomStates_field8Ah, _roomStates_loop62, 1, 1, -1, _roomStates_loop62, 1, 1, 0);
+ kernel_timing_trigger(60, 300, nullptr);
+ break;
+ case 2:
+ sendWSMessage_10000(1, _roomStates_field8Ah, _roomStates_loop62, 1, 4, 300, _roomStates_loop62, 5, 7, 4);
+ _roomStates_pu2 = 2;
+ break;
+ case 3:
+ sendWSMessage_10000(1, _roomStates_field8Ah, _roomStates_loop72, 1, 16, 300, _roomStates_loop72, 16, 16, 0);
+ _roomStates_pu2 = 3;
+ break;
+ case 4:
+ terminateMachine(_roomStates_field8Ah);
+ terminateMachine(_roomStates_field8Eh);
+ ws_unhide_walker(_G(my_walker));
+ _roomStates_pu2 = 4;
+ break;
+ default:
+ break;
+ }
+
+ break;
+ case 2:
+ switch (_roomStates_ripTalker) {
+ case 1:
+ case 3:
+ case 4:
+ sendWSMessage_10000(1, _roomStates_field8Ah, _roomStates_loop62, 4, 1, 300, _roomStates_loop62, 1, 1, 0);
+ _roomStates_pu2 = 1;
+ break;
+
+ case 2:
+ kernel_timing_trigger(30, 300, nullptr);
+ break;
+ default:
+ break;
+ }
+ break;
+ case 3:
+ switch (_roomStates_ripTalker) {
+ case 3:
+ _roomStates_ripTalker = 1;
+ // Fallthrough on purpose
+ case 1:
+ case 2:
+ case 4:
+ sendWSMessage_10000(1, _roomStates_field8Ah, _roomStates_loop72, 16, 1, 300, _roomStates_loop72, 1, 1, 0);
+ mouse_lock_sprite(false);
+ kernel_examine_inventory_object("PING MATCH", _G(master_palette), 5, 1, 110, 220, 9, "801R44", -1);
+ _roomStates_pu2 = 1;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+ break;
+ case 310:
+ player_set_commands_allowed(true);
+ _roomStates_ripTalker = 3;
+ break;
+ case 400:
+ if (_roomStates_field18 == 5)
+ _roomStates_ripTalker2 = 5;
+
+ switch (_roomStates_ripTalker2) {
+ case 1:
+ switch (_roomStates_field18) {
+ case 1:
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field642, 14, 14, -1, _roomStates_field642, 14, 14, 0);
+ kernel_timing_trigger(60, 400, nullptr);
+ break;
+ case 2:
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field742, 1, 4, 400, _roomStates_field742, 5, 7, 4);
+ _roomStates_ripTalker2 = 2;
+ break;
+ case 3:
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field6C2, 69, 110, 400, _roomStates_field642, 14, 14, 0);
+ _roomStates_field18 = 1;
+ break;
+ case 4:
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field6C2, 2, 68, 400, _roomStates_field642, 14, 14, 0);
+ _roomStates_field18 = 1;
+ break;
+ case 5:
+ _roomStates_ripTalker2 = 5;
+ break;
+ default:
+ break;
+ }
+ break;
+ case 2:
+ switch (_roomStates_field18) {
+ case 4:
+ case 5:
+ sendWSMessage_10000(1, _roomStates_field96h, _roomStates_field742, 4, 1, 400, _roomStates_field642, 14, 14, 0);
+ _roomStates_ripTalker2 = 1;
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+
+ break;
+
+ default:
+ break;
+ }
}
void Room801::room801_conv801a() {
diff --git a/engines/m4/riddle/rooms/section8/room801.h b/engines/m4/riddle/rooms/section8/room801.h
index c7ccf2a0acb..7a53fd4f1c9 100644
--- a/engines/m4/riddle/rooms/section8/room801.h
+++ b/engines/m4/riddle/rooms/section8/room801.h
@@ -43,24 +43,30 @@ private:
void room801_conv801a();
int32 _roomStates_ear2 = 0;
+ int32 _roomStates_field4 = 0;
+ int32 _roomStates_field6 = 0;
int32 _roomStates_field18 = 0;
int32 _roomStates_field24 = 0;
+ int32 _roomStates_field2A = 0;
+ int32 _roomStates_field4C2 = 0;
+ int32 _roomStates_field502 = 0;
int32 _roomStates_field60 = 0;
- int32 _roomStates_field64 = 0;
- int32 _roomStates_field68 = 0;
- int32 _roomStates_field70 = 0;
- int32 _roomStates_field74 = 0;
- int32 _roomStates_field6C = 0;
- int32 _roomStates_field78 = 0;
+ int32 _roomStates_field642 = 0;
+ int32 _roomStates_field682 = 0;
+ int32 _roomStates_field702 = 0;
+ int32 _roomStates_field742 = 0;
+ int32 _roomStates_field6C2 = 0;
+ int32 _roomStates_field782 = 0;
int32 _roomStates_field7C = 0;
+ int32 _roomStates_field7E = 0;
int32 _roomStates_field80 = 0;
int32 _roomStates_loop0 = 0;
int32 _roomStates_loop1 = 0;
int32 _roomStates_loop2 = 0;
int32 _roomStates_loop3 = 0;
int32 _roomStates_loop4 = 0;
- int32 _roomStates_loop6 = 0;
- int32 _roomStates_loop7 = 0;
+ int32 _roomStates_loop62 = 0;
+ int32 _roomStates_loop72 = 0;
int32 _roomStates_pu = 0;
int32 _roomStates_pu2 = 0;
int32 _roomStates_ripTalk = 0;
@@ -68,6 +74,7 @@ private:
int32 _roomStates_ripTalker2 = 0;
int32 _roomStates_ripTalking = 0;
int32 _roomStates_tt = 0;
+ int32 _roomStates_tt2 = 0;
int32 _roomStates_untie2 = 0;
int32 _roomStates_val1 = 0;
int32 _roomStates_val2 = 0;
@@ -77,6 +84,7 @@ private:
machine *_roomStates_field86h = nullptr;
machine *_roomStates_field8Ah = nullptr;
machine *_roomStates_field8Eh = nullptr;
+ machine *_roomStates_field92h = nullptr;
machine *_roomStates_field96h = nullptr;
machine *_roomStates_field9Ah = nullptr;
machine *_roomStates_field9Eh = nullptr;
More information about the Scummvm-git-logs
mailing list