[Scummvm-git-logs] scummvm master -> 7abb4f6b96eed8622be2bfa75433dddfa7246803

dreammaster noreply at scummvm.org
Tue Sep 24 05:10:52 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:
7abb4f6b96 M4: RIDDLE: Room 605 init and daemon


Commit: 7abb4f6b96eed8622be2bfa75433dddfa7246803
    https://github.com/scummvm/scummvm/commit/7abb4f6b96eed8622be2bfa75433dddfa7246803
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-09-23T22:10:41-07:00

Commit Message:
M4: RIDDLE: Room 605 init and daemon

Changed paths:
    engines/m4/riddle/rooms/section6/room603.cpp
    engines/m4/riddle/rooms/section6/room605.cpp
    engines/m4/riddle/rooms/section6/room605.h
    engines/m4/riddle/rooms/section6/section6.cpp
    engines/m4/riddle/rooms/section6/section6.h


diff --git a/engines/m4/riddle/rooms/section6/room603.cpp b/engines/m4/riddle/rooms/section6/room603.cpp
index 2460f3c08a6..043a0b776d8 100644
--- a/engines/m4/riddle/rooms/section6/room603.cpp
+++ b/engines/m4/riddle/rooms/section6/room603.cpp
@@ -20,6 +20,7 @@
  */
 
 #include "m4/riddle/rooms/section6/room603.h"
+#include "m4/riddle/rooms/section6/section6.h"
 #include "m4/graphics/gr_series.h"
 #include "m4/riddle/vars.h"
 
@@ -30,24 +31,12 @@ namespace Rooms {
 static const int16 NORMAL_DIRS1[] = { 200, -1 };
 static const char *NORMAL_NAMES1[] = { "shen guo walker 3" };
 static const int16 SHADOW_DIRS1[] = { 210, -1 };
-static const char *SHADOW_NAMES1[] = { "shen guo shadow 3" };
+static const char *SECTION6_SHADOW_NAMES1[] = { "shen guo shadow 3" };
 
 static const int16 NORMAL_DIRS2[] = { 220, -1 };
 static const char *NORMAL_NAMES2[] = { "kuang walker 2" };
 static const int16 SHADOW_DIRS2[] = { 230, -1 };
-static const char *SHADOW_NAMES2[] = { "kuangs shadow 2" };
-
-static const int16 NORMAL_DIRS3[] = { 200, 201, 202, 203, -1 };
-static const char *NORMAL_NAMES3[] = {
-	"tt walker 1", "tt walker 2", "tt walker 3",
-	"tt walker 4", "tt walker 5"
-};
-static const int16 SHADOW_DIRS3[] = { 210, 211, 212, 213, -1 };
-static const char *SHADOW_NAMES3[] = {
-	"tt walker shadow 1", "tt walker shadow 2",
-	"tt walker shadow 3", "tt walker shadow 4",
-	"tt walker shadow 5"
-};
+static const char *SECTION6_SHADOW_NAMES2[] = { "kuangs shadow 2" };
 
 
 static const char *SAID[][2] = {
@@ -100,14 +89,14 @@ void Room603::init() {
 		_shed = series_show("653 FIRST FRAME SHED", 0xf00, 16);
 
 		ws_walk_load_walker_series(NORMAL_DIRS1, NORMAL_NAMES1);
-		ws_walk_load_shadow_series(SHADOW_DIRS1, SHADOW_NAMES1);
+		ws_walk_load_shadow_series(SHADOW_DIRS1, SECTION6_SHADOW_NAMES1);
 
 		_shenWalker = triggerMachineByHash_3000(8, 12, NORMAL_DIRS1, SHADOW_DIRS1, 525, 238, 3,
 			triggerMachineByHashCallback3000, "shen suit gun walker");
 		sendWSMessage_10000(_shenWalker, 535, 235, 3, 10, 1);
 
 		ws_walk_load_walker_series(NORMAL_DIRS2, NORMAL_NAMES2);
-		ws_walk_load_shadow_series(SHADOW_DIRS2, SHADOW_NAMES2);
+		ws_walk_load_shadow_series(SHADOW_DIRS2, SECTION6_SHADOW_NAMES2);
 
 		_kuangWalker = triggerMachineByHash_3000(8, 13, NORMAL_DIRS2, SHADOW_DIRS2, 554, 245, 2,
 			triggerMachineByHashCallback3000, "kuang suit walker");
@@ -879,8 +868,8 @@ void Room603::daemon() {
 				break;
 
 			case 16:
-				ws_walk_load_walker_series(NORMAL_DIRS3, NORMAL_NAMES3);
-				ws_walk_load_shadow_series(SHADOW_DIRS3, SHADOW_NAMES3);
+				ws_walk_load_walker_series(SECTION6_NORMAL_DIRS, SECTION6_NORMAL_NAMES);
+				ws_walk_load_shadow_series(SECTION6_SHADOW_DIRS, SECTION6_SHADOW_NAMES);
 				sendWSMessage_10000(1, _tt, _tt03, 122, 112, 402, _tt03, 112, 112, 0);
 				break;
 
@@ -900,8 +889,8 @@ void Room603::daemon() {
 				break;
 
 			case 20:
-				ws_walk_load_walker_series(NORMAL_DIRS3, NORMAL_NAMES3);
-				ws_walk_load_shadow_series(SHADOW_DIRS3, SHADOW_NAMES3);
+				ws_walk_load_walker_series(SECTION6_NORMAL_DIRS, SECTION6_NORMAL_NAMES);
+				ws_walk_load_shadow_series(SECTION6_SHADOW_DIRS, SECTION6_SHADOW_NAMES);
 				sendWSMessage_10000(1, _tt, _tt03, 122, 112, 410, _tt03, 112, 112, 0);
 				break;
 
@@ -970,7 +959,7 @@ void Room603::daemon() {
 		_trigger1 = 0;
 		terminateMachineAndNull(_ttShadow);
 
-		_tt = triggerMachineByHash_3000(8, 9, NORMAL_DIRS3, SHADOW_DIRS3,
+		_tt = triggerMachineByHash_3000(8, 9, SECTION6_NORMAL_DIRS, SECTION6_SHADOW_DIRS,
 			291, 293, 4, triggerMachineByHashCallback3000, "tt walker");
 		sendWSMessage_10000(_tt, 357, 283, 1, 405, 0);
 		conv_resume();
@@ -992,7 +981,7 @@ void Room603::daemon() {
 	case 410:
 		terminateMachineAndNull(_tt);
 		terminateMachineAndNull(_ttShadow);
-		_tt = triggerMachineByHash_3000(8, 9, NORMAL_DIRS3, SHADOW_DIRS3,
+		_tt = triggerMachineByHash_3000(8, 9, SECTION6_NORMAL_DIRS, SECTION6_SHADOW_DIRS,
 			291, 293, 4, triggerMachineByHashCallback3000, "tt walker");
 		sendWSMessage_10000(_tt, 397, 286, 2, 415, 0);
 		kernel_timing_trigger(200, 411);
@@ -1105,14 +1094,14 @@ void Room603::daemon() {
 				break;
 
 			case 20:
-				ws_walk_load_walker_series(NORMAL_DIRS3, NORMAL_NAMES3);
-				ws_walk_load_shadow_series(SHADOW_DIRS3, SHADOW_NAMES3);
+				ws_walk_load_walker_series(SECTION6_NORMAL_DIRS, SECTION6_NORMAL_NAMES);
+				ws_walk_load_shadow_series(SECTION6_SHADOW_DIRS, SECTION6_SHADOW_NAMES);
 				sendWSMessage_10000(1, _tt, _tt03, 83, 111, 510, _tt03, 111, 111, 0);
 				break;
 
 			case 21:
-				ws_walk_load_walker_series(NORMAL_DIRS3, NORMAL_NAMES3);
-				ws_walk_load_shadow_series(SHADOW_DIRS3, SHADOW_NAMES3);
+				ws_walk_load_walker_series(SECTION6_NORMAL_DIRS, SECTION6_NORMAL_NAMES);
+				ws_walk_load_shadow_series(SECTION6_SHADOW_DIRS, SECTION6_SHADOW_NAMES);
 				sendWSMessage_10000(1, _tt, _tt03, 83, 112, 530, _tt03, 112, 112, 1);
 				break;
 
@@ -1187,7 +1176,7 @@ void Room603::daemon() {
 	case 510:
 		terminateMachineAndNull(_tt);
 		_trigger1 = 0;
-		_tt = triggerMachineByHash_3000(8, 9, NORMAL_DIRS3, SHADOW_DIRS3,
+		_tt = triggerMachineByHash_3000(8, 9, SECTION6_NORMAL_DIRS, SECTION6_SHADOW_DIRS,
 			291, 293, 4, triggerMachineByHashCallback3000, "tt walker");
 		sendWSMessage_10000(_tt, 357, 283, 3, 0x200, 0);
 		kernel_timing_trigger(100, 511);
@@ -1213,7 +1202,7 @@ void Room603::daemon() {
 	case 530:
 		terminateMachineAndNull(_tt);
 		_trigger1 = 0;
-		_tt = triggerMachineByHash_3000(8, 9, NORMAL_DIRS3, SHADOW_DIRS3,
+		_tt = triggerMachineByHash_3000(8, 9, SECTION6_NORMAL_DIRS, SECTION6_SHADOW_DIRS,
 			291, 293, 4, triggerMachineByHashCallback3000, "tt walker");
 		sendWSMessage_10000(_tt, 397, 286, 2, 533, 0);
 		kernel_timing_trigger(70, 531);
diff --git a/engines/m4/riddle/rooms/section6/room605.cpp b/engines/m4/riddle/rooms/section6/room605.cpp
index 90047e1002d..66a239b6ac5 100644
--- a/engines/m4/riddle/rooms/section6/room605.cpp
+++ b/engines/m4/riddle/rooms/section6/room605.cpp
@@ -20,17 +20,418 @@
  */
 
 #include "m4/riddle/rooms/section6/room605.h"
+#include "m4/riddle/rooms/section6/section6.h"
 #include "m4/graphics/gr_series.h"
 #include "m4/riddle/vars.h"
+#include "m4/adv_r/adv_file.h"
 
 namespace M4 {
 namespace Riddle {
 namespace Rooms {
 
 void Room605::init() {
+	if (_G(game).previous_room != KERNEL_RESTORING_GAME) {
+		_trigger1 = -1;
+		_walkerHidden = false;
+		_val3 = 0;
+		_val4 = 2;
+		_val5 = 2;
+	}
+
+	if (inv_object_is_here("OBSIDIAN DISK")) {
+		_pupil = series_show("605eye", 0x600, 16);
+	} else {
+		hotspot_set_active("PUPIL", false);
+		hotspot_set_active("OBSIDIAN DISK", false);
+	}
+
+	if (_G(flags)[V203] == 2) {
+		kernel_load_variant("605lock1");
+		_ripHandsHips = series_load("RIP TREK HANDS HIPS POS2");
+		_ripHandOnChin = series_load("RIP TREK HAND ON CHIN POS2");
+		_ripTwoHandTalk = series_load("RIP TREK TWO HAND TALK POS2");
+		_ripTalk = series_load("RIP TREK TALK");
+		_605tt = series_load("605 TT");
+
+	} else {
+		hotspot_set_active("samantha", false);
+	}
+
+	switch (_G(game).previous_room) {
+	case KERNEL_RESTORING_GAME:
+		if (_G(flags)[V203] == 2) {
+			_G(player).disable_hyperwalk = true;
+			ws_walk_load_walker_series(SECTION6_NORMAL_DIRS, SECTION6_NORMAL_NAMES);
+			ws_walk_load_shadow_series(SECTION6_SHADOW_DIRS, SECTION6_SHADOW_NAMES);
+			_tt = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x700, 0,
+				triggerMachineByHashCallbackNegative, "tt");
+			sendWSMessage_10000(1, _tt, _605tt, 1, 1, 200, _605tt, 1, 1, 0);
+			_ttShadow = series_show("tt walker shadow 5", 0x701, 16, -1, -1, 0, 68, 476, 290);
+		}
+
+		digi_preload("950_s28");
+		break;
+
+	case 603:
+	case 610:
+		digi_preload("950_s28");
+		digi_stop(3);
+		digi_unload("950_s28a");
+
+		if (_G(flags)[V203] == 2) {
+			player_set_commands_allowed(false);
+			_G(player).disable_hyperwalk = true;
+			ws_demand_location(451, 368, 1);
+			ws_walk(513, 316, nullptr, -1, 10);
+
+			ws_walk_load_walker_series(SECTION6_NORMAL_DIRS, SECTION6_NORMAL_NAMES);
+			ws_walk_load_shadow_series(SECTION6_SHADOW_DIRS, SECTION6_SHADOW_NAMES);
+			_tt = triggerMachineByHash_3000(8, 9, SECTION6_NORMAL_DIRS, SECTION6_SHADOW_DIRS,
+				450, 339, 1, triggerMachineByHashCallback3000, "tt walker");
+			sendWSMessage_10000(_tt, 476, 290, 5, 10, 1);
+
+		} else {
+			ws_demand_location(451, 353, 10);
+		}
+		break;
+
+	case 608:
+		digi_preload("950_s28");
+		digi_stop(3);
+		digi_unload("950_s28b");
+		ws_demand_location(534, 219, 7);
+		ws_walk(520, 263, nullptr, -1, 7);
+		break;
+
+	case 623:
+		ws_demand_location(-30, 272, 3);
+		ws_walk(34, 272, nullptr, 1, 3);
+		break;
+
+	default:
+		digi_preload("950_s28");
+		ws_demand_location(451, 353, 10);
+		break;
+	}
+
+	digi_play_loop("950_s28", 3, 90);
 }
 
 void Room605::daemon() {
+	switch (_G(kernel).trigger) {
+	case 1:
+		player_set_commands_allowed(true);
+		break;
+
+	case 10:
+		_tt = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x700, 0,
+			triggerMachineByHashCallbackNegative, "tt");
+		sendWSMessage_10000(1, _tt, _605tt, 222, 234, 11, _605tt, 1, 1, 0);
+		_ttShadow = series_show("tt walker shadow 5", 0x701, 16, -1,
+			-1, 0, 68, 476, 290);
+		break;
+
+	case 11:
+		kernel_timing_trigger(1, 200);
+		_val7 = 0;
+		_val6 = 1;
+		digi_play("605t01", 1, 255, 12);
+		break;
+
+	case 12:
+		setGlobals1(_ripHandOnChin, 1, 16, 16, 16);
+		sendWSMessage_110000(-1);
+		digi_play("605r01", 1);
+		break;
+
+	case 15:
+		_val6 = 3;
+		digi_play("605t02", 1, 255, 17);
+		break;
+
+	case 17:
+		_val6 = 0;
+		kernel_timing_trigger(1, 200);
+		sendWSMessage_140000(18);
+		break;
+
+	case 18:
+		_G(player).disable_hyperwalk = false;
+		player_set_commands_allowed(true);
+		break;
+
+	case 200:
+		if (!_val7 && !_val6 && _trigger1 != -1) {
+			kernel_trigger_dispatchx(_trigger1);
+			_trigger1 = -1;
+
+			if (_walkerHidden) {
+				ws_unhide_walker();
+				_walkerHidden = false;
+			}
+		}
+
+		kernel_trigger_dispatchx(kernel_trigger_create(201));
+		break;
+
+	case 201:
+		switch (_val7) {
+		case 0:
+			switch (_val6) {
+			case 0:
+				sendWSMessage_10000(1, _tt, _605tt, 1, 1, 200, _605tt, 1, 1, 0);
+				_val6 = 0;
+				break;
+
+			case 1:
+				sendWSMessage_10000(1, _tt, _605tt, 2, 12, 202, _605tt, 12, 12, 0);
+				sendWSMessage_190000(_tt, 7);
+				_val6 = 0;
+				break;
+
+			case 3:
+				sendWSMessage_10000(1, _tt, _605tt, 13, 13, -1, _605tt, 13, 30, 4);
+				break;
+
+			case 5:
+				sendWSMessage_10000(1, _tt, _605tt, 31, 37, 200, _605tt, 38, 38, 0);
+				_val7 = 4;
+				break;
+
+			case 6:
+			case 7:
+				sendWSMessage_10000(1, _tt, _605tt, 58, 66, 200, _605tt, 67, 67, 0);
+				break;
+
+			case 8:
+				sendWSMessage_10000(1, _tt, _605tt, 134, 221, 207, _605tt, 221, 221, 0);
+				_val6 = 3;
+				break;
+
+			case 9:
+				sendWSMessage_10000(1, _tt, _605tt, 85, 93, 200, _605tt, 93, 93, 0);
+				_val7 = 9;
+				break;
+
+			case 10:
+				sendWSMessage_10000(1, _tt, _605tt, 234, 222, 203, _605tt, 222, 222, 0);
+				break;
+
+			default:
+				break;
+			}
+			break;
+
+		case 4:
+			switch (_val6) {
+			case 4:
+				sendWSMessage_10000(1, _tt, _605tt, 38, 38, -1, _605tt, 38, 43, 4);
+				sendWSMessage_1a0000(_tt, 13);
+				break;
+
+			case 5:
+				sendWSMessage_10000(1, _tt, _605tt, 38, 38, 200, _605tt, 38, 38, 0);
+				break;
+
+			default:
+				sendWSMessage_10000(1, _tt, _605tt, 44, 49, 200, _605tt, 1, 1, 0);
+				_val7 = 0;
+				break;
+			}
+			break;
+
+		case 6:
+			switch (_val6) {
+			case 6:
+				sendWSMessage_10000(1, _tt, _605tt, 67, 67, -1, _605tt, 67, 76, 4);
+				sendWSMessage_1a0000(_tt, 13);
+				break;
+
+			case 7:
+				sendWSMessage_10000(1, _tt, _605tt, 67, 67, 200, _605tt, 67, 67, 0);
+				break;
+
+			default:
+				sendWSMessage_10000(1, _tt, _605tt, 77, 86, 200, _605tt, 1, 1, 0);
+				_val7 = 0;
+				break;
+			}
+			break;
+
+		case 9:
+			if (_val6 == 9) {
+				sendWSMessage_10000(1, _tt, _605tt, 93, 93, 200, _605tt, 93, 93, 0);
+			} else {
+				sendWSMessage_10000(1, _tt, _605tt, 93, 85, 200, _605tt, 1, 1, 0);
+				_val7 = 0;
+			}
+			break;
+
+		default:
+			break;
+		}
+		break;
+
+	case 202:
+		sendWSMessage_10000(1, _tt, _605tt, 12, 1, 200, _605tt, 1, 1, 0);
+		sendWSMessage_190000(_tt, 7);
+		break;
+
+	case 203:
+		terminateMachineAndNull(_tt);
+		terminateMachineAndNull(_ttShadow);
+		_tt = triggerMachineByHash_3000(8, 9, SECTION6_NORMAL_DIRS, SECTION6_SHADOW_DIRS,
+			476, 290, 5, triggerMachineByHashCallback3000, "tt walker");
+		sendWSMessage_10000(_tt, 485, 199, 2, 208, 0);
+		digi_play("19_07n04", 1, 255, 206);
+		kernel_timing_trigger(420, 205);
+		kernel_timing_trigger(20, 204);
+		break;
+
+	case 204:
+		_G(player).disable_hyperwalk = true;
+		sendWSMessage_10000(_G(my_walker), 490, 187, 2, 210, 0);
+		break;
+
+	case 205:
+		disable_player_commands_and_fade_init(-1);
+		break;
+
+	case 206:
+		adv_kill_digi_between_rooms(false);
+		digi_play_loop("950_s28", 3, 90);
+		_G(game).setRoom(608);
+		break;
+
+	case 207:
+		sendWSMessage_10000(1, _tt, _605tt, 222, 234, 200, _605tt, 1, 1, 0);
+		break;
+
+	case 208:
+		sendWSMessage_10000(_tt, 498, 189, 3, 209, 0);
+		break;
+
+	case 209:
+		sendWSMessage_10000(_tt, 670, 183, 3, -1, 1);
+		break;
+
+	case 210:
+		sendWSMessage_10000(_G(my_walker), 639, 171, 3, 211, 0);
+		break;
+
+	case 211:
+		ws_walk(680, 183, nullptr, -1, 3);
+		break;
+
+	case 300:
+		if (!_val1 && !_val2 && _trigger1 != -1) {
+			kernel_trigger_dispatchx(_trigger1);
+			_trigger1 = -1;
+
+			if (_walkerHidden) {
+				ws_unhide_walker();
+				_walkerHidden = false;
+			}
+		}
+
+		kernel_trigger_dispatchx(kernel_trigger_create(301));		
+		break;
+
+	case 301:
+		switch (_val1) {
+		case 0:
+			switch (_val2) {
+			case 0:
+				sendWSMessage_10000(1, _ripley, 1, 1, 1, 300, 1, 1, 1, 0);
+				break;
+			case 1:
+				sendWSMessage_10000(1, _ripley, _ripTwoHandTalk, 1, 6, 300,
+					_ripTwoHandTalk, 6, 6, 0);
+				_val1 = 1;
+				break;
+			case 2:
+				sendWSMessage_10000(1, _ripley, _ripHandOnChin, 1, 16, 300,
+					_ripHandOnChin, 16, 16, 0);
+				_val1 = 2;
+				break;
+			case 3:
+				sendWSMessage_10000(1, _ripley, _ripHandsHips, 1, 12, 300,
+					_ripHandsHips, 12, 12, 0);
+				_val1 = 3;
+				break;
+			case 5:
+				terminateMachineAndNull(_ripley);
+				ws_unhide_walker();
+				terminateMachineAndNull(_machine1);
+				break;
+			case 6:
+				sendWSMessage_10000(1, _ripley, _ripTalk, 1, 1, -1, _ripTalk, 1, 7, 4);
+				sendWSMessage_1a0000(_ripley, 11);
+				break;
+
+			default:
+				break;
+			}
+			break;
+
+		case 1:
+			if (_val2 == 1) {
+				sendWSMessage_10000(1, _ripley, _ripTwoHandTalk, 6, 6, 300,
+					_ripTwoHandTalk, 6, 6, 0);
+			} else {
+				sendWSMessage_10000(1, _ripley, _ripTwoHandTalk, 6, 1, 300, 1, 1, 1, 0);
+				_val1 = 0;
+			}
+			break;
+
+		case 2:
+			if (_val2 == 2) {
+				sendWSMessage_10000(1, _ripley, _ripHandOnChin, 16, 16, 300,
+					_ripHandOnChin, 16, 16, 0);
+			} else {
+				sendWSMessage_10000(1, _ripley, _ripHandOnChin, 16, 1, 300, 1, 1, 1, 0);
+				_val1 = 0;
+			}
+			break;
+
+		case 3:
+			if (_val2 == 3) {
+				sendWSMessage_10000(1, _ripley, _ripHandsHips, 12, 12, 300,
+					_ripHandsHips, 12, 12, 0);
+			} else {
+				sendWSMessage_10000(1, _ripley, _ripHandsHips, 12, 1, 300, 1, 1, 1, 0);
+				_val1 = 0;
+			}
+			break;
+
+		default:
+			break;
+		}
+		break;
+
+	default:
+		break;
+	}
+}
+
+void Room605::pre_parser() {
+	if (player_said_any("down", "left", "right") && _G(flags)[V203] == 2) {
+		player_set_commands_allowed(false);
+		intr_cancel_sentence();
+
+		conv_load("conv605a", 10, 10, 747);
+		conv_set_text_colour(12, 16);
+		conv_set_shading(75);
+
+		conv_export_value_curr(_G(flags)[V195] ? 1 : 0, 0);
+		conv_export_value_curr(2, 1);
+		conv_play();
+		_val6 = 3;
+	}
+}
+
+void Room605::parser() {
+
 }
 
 } // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room605.h b/engines/m4/riddle/rooms/section6/room605.h
index 009e636a62a..e0ae016d11e 100644
--- a/engines/m4/riddle/rooms/section6/room605.h
+++ b/engines/m4/riddle/rooms/section6/room605.h
@@ -29,12 +29,35 @@ namespace Riddle {
 namespace Rooms {
 
 class Room605 : public Room {
+private:
+	int _trigger1 = 0;
+	bool _walkerHidden = false;
+	int _val1 = 0;
+	int _val2 = 0;
+	int _val3 = 0;
+	int _val4 = 0;
+	int _val5 = 0;
+	int _val6 = 0;
+	int _val7 = 0;
+	int _ripHandsHips = 0;
+	int _ripHandOnChin = 0;
+	int _ripTwoHandTalk = 0;
+	int _ripTalk = 0;
+	int _605tt = 0;
+	machine *_pupil = nullptr;
+	machine *_ripley = nullptr;
+	machine *_tt = nullptr;
+	machine *_ttShadow = nullptr;
+	machine *_machine1 = nullptr;
+
 public:
 	Room605() : Room() {}
 	~Room605() override {}
 
 	void init() override;
 	void daemon() override;
+	void pre_parser() override;
+	void parser() override;
 };
 
 } // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/section6.cpp b/engines/m4/riddle/rooms/section6/section6.cpp
index f921ed2d687..082364f06dd 100644
--- a/engines/m4/riddle/rooms/section6/section6.cpp
+++ b/engines/m4/riddle/rooms/section6/section6.cpp
@@ -26,6 +26,19 @@ namespace M4 {
 namespace Riddle {
 namespace Rooms {
 
+const int16 SECTION6_NORMAL_DIRS[] = { 200, 201, 202, 203, -1 };
+const char *SECTION6_NORMAL_NAMES[] = {
+	"tt walker 1", "tt walker 2", "tt walker 3",
+	"tt walker 4", "tt walker 5"
+};
+const int16 SECTION6_SHADOW_DIRS[] = { 210, 211, 212, 213, -1 };
+const char *SECTION6_SHADOW_NAMES[] = {
+	"tt walker shadow 1", "tt walker shadow 2",
+	"tt walker shadow 3", "tt walker shadow 4",
+	"tt walker shadow 5"
+};
+
+
 Section6::Section6() : Rooms::Section() {
 	add(603, &_room603);
 	add(604, &_room604);
diff --git a/engines/m4/riddle/rooms/section6/section6.h b/engines/m4/riddle/rooms/section6/section6.h
index 54c68ab9993..7c07c98b33a 100644
--- a/engines/m4/riddle/rooms/section6/section6.h
+++ b/engines/m4/riddle/rooms/section6/section6.h
@@ -66,6 +66,11 @@ namespace M4 {
 namespace Riddle {
 namespace Rooms {
 
+extern const int16 SECTION6_NORMAL_DIRS[];
+extern const char *SECTION6_NORMAL_NAMES[];
+extern const int16 SECTION6_SHADOW_DIRS[];
+extern const char *SECTION6_SHADOW_NAMES[];
+
 class Section6 : public Section {
 private:
 	Room603 _room603;




More information about the Scummvm-git-logs mailing list