[Scummvm-git-logs] scummvm master -> 1278eaa60d502f0afa8dbaf4305288ed8120ae38

Strangerke noreply at scummvm.org
Wed Dec 25 08:38:35 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:
1278eaa60d M4: RIDDLE: Room 709: Implement clearPressed, renaming and some refactoring


Commit: 1278eaa60d502f0afa8dbaf4305288ed8120ae38
    https://github.com/scummvm/scummvm/commit/1278eaa60d502f0afa8dbaf4305288ed8120ae38
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-12-25T09:38:21+01:00

Commit Message:
M4: RIDDLE: Room 709: Implement clearPressed, renaming and some refactoring

Changed paths:
    engines/m4/riddle/rooms/section7/room709.cpp
    engines/m4/riddle/rooms/section7/room709.h


diff --git a/engines/m4/riddle/rooms/section7/room709.cpp b/engines/m4/riddle/rooms/section7/room709.cpp
index df44ab53948..7d49cabfedb 100644
--- a/engines/m4/riddle/rooms/section7/room709.cpp
+++ b/engines/m4/riddle/rooms/section7/room709.cpp
@@ -29,24 +29,42 @@ namespace M4 {
 namespace Riddle {
 namespace Rooms {
 
+Room709::Room709() : Room() {
+	resetMaze();
+}
+
+void Room709::resetMaze() {
+	for (int i = 0; i < 99; ++i) {
+		_maze709Arr[i]._leftActive = 0;
+		_maze709Arr[i]._rightActive = 0;
+		_maze709Arr[i]._straightActive = 0;
+		_maze709Arr[i]._backActive = 0;
+		_maze709Arr[i]._leftIndex = 0;
+		_maze709Arr[i]._rightIndex = 0;
+		_maze709Arr[i]._straightIndex = 0;
+		_maze709Arr[i]._backIndex = 0;
+	}
+}
+
 void Room709::preload() {
 	_G(player).walker_type = WALKER_ALT;
 	_G(player).shadow_type = SHADOW_ALT;
 	LoadWSAssets("OTHER SCRIPT", _G(master_palette));
 }
 
-void Room709::init() {
-	_field88 = 0;
-	_field84 = 0;
+void Room709::syncGame(Common::Serializer &s) {
+	s.syncAsSint32LE(_mazeCurrIndex);
+}
 
+void Room709::init() {
 	AddSystemHotkey(KEY_CLEAR, clearPressed);
 	AddSystemHotkey(5, clearPressed);
 	digi_preload("950_s42");
 
-	_field70 = 0;
-	_field74 = 0;
-	_field78 = 0;
-	_field7C = 0;
+	_pullLeftFl = 0;
+	_pullRightFl = 0;
+	_pullCenterFl = 0;
+	_pullNearFl = 0;
 
 	_ripTrekLowReachPos2Series = series_load("RIP TREK LOW REACH POS2", -1, nullptr);
 	_709rpro1Series = series_load("709RPRO1", -1, nullptr);
@@ -63,442 +81,433 @@ void Room709::init() {
 	_709rpro6Mach = series_place_sprite("709RPRO6", 0, 0, -53, 100, 1792);
 	_709rpro5Mach = series_place_sprite("709RPRO5", 0, 0, -53, 100, 512);
 
-	for (int i = 0; i < 99; ++i) {
-		_maze709Arr[i]._field_0 = 0;
-		_maze709Arr[i]._field_4 = 0;
-		_maze709Arr[i]._field_8 = 0;
-		_maze709Arr[i]._field_C = 0;
-		_maze709Arr[i]._field_10 = 0;
-		_maze709Arr[i]._field_14 = 0;
-		_maze709Arr[i]._field_18 = 0;
-		_maze709Arr[i]._field_1C = 0;
-	}
+	resetMaze();
 
-	_field44 = 0;
-	_field48 = 0;
+	_chiselActiveFl = 0;
+	_incenseBurnerActiveFl = 0;
 
 	hotspot_set_active(_G(currentSceneDef).hotspots, "Incense Burner", false);
 	hotspot_set_active(_G(currentSceneDef).hotspots, "Chisel", false);
 
-	_maze709Arr[1]._field_4 = 1;
-	_maze709Arr[1]._field_14 = 2;
-	_maze709Arr[1]._field_C = 1;
-	_maze709Arr[1]._field_1C = 12;
-	_maze709Arr[2]._field_0 = 1;
-	_maze709Arr[2]._field_10 = 1;
-	_maze709Arr[2]._field_C = 1;
-	_maze709Arr[2]._field_1C = 13;
-	_maze709Arr[3]._field_4 = 1;
-	_maze709Arr[3]._field_14 = 4;
-	_maze709Arr[3]._field_C = 1;
-	_maze709Arr[3]._field_1C = 14;
-	_maze709Arr[4]._field_4 = 1;
-	_maze709Arr[4]._field_14 = 5;
-	_maze709Arr[4]._field_0 = 1;
-	_maze709Arr[4]._field_10 = 3;
-	_maze709Arr[4]._field_C = 1;
-	_maze709Arr[4]._field_1C = 15;
-	_maze709Arr[5]._field_4 = 1;
-	_maze709Arr[5]._field_14 = 6;
-	_maze709Arr[5]._field_0 = 1;
-	_maze709Arr[5]._field_10 = 4;
-	_maze709Arr[6]._field_0 = 1;
-	_maze709Arr[6]._field_10 = 5;
-	_maze709Arr[6]._field_4 = 1;
-	_maze709Arr[6]._field_14 = 7;
-	_maze709Arr[6]._field_C = 1;
-	_maze709Arr[6]._field_1C = 17;
-	_maze709Arr[7]._field_4 = 1;
-	_maze709Arr[7]._field_14 = 8;
-	_maze709Arr[7]._field_0 = 1;
-	_maze709Arr[7]._field_10 = 6;
-	_maze709Arr[8]._field_4 = 1;
-	_maze709Arr[8]._field_14 = 9;
-	_maze709Arr[8]._field_0 = 1;
-	_maze709Arr[8]._field_10 = 7;
-	_maze709Arr[9]._field_0 = 1;
-	_maze709Arr[9]._field_10 = 8;
-	_maze709Arr[9]._field_C = 1;
-	_maze709Arr[9]._field_1C = 20;
-	_maze709Arr[10]._field_4 = 1;
-	_maze709Arr[10]._field_14 = 11;
-	_maze709Arr[10]._field_C = 1;
-	_maze709Arr[10]._field_1C = 21;
-	_maze709Arr[11]._field_0 = 1;
-	_maze709Arr[11]._field_10 = 10;
-	_maze709Arr[11]._field_C = 1;
-	_maze709Arr[11]._field_1C = 22;
-	_maze709Arr[12]._field_8 = 1;
-	_maze709Arr[12]._field_18 = 1;
-	_maze709Arr[13]._field_8 = 1;
-	_maze709Arr[13]._field_18 = 2;
-	_maze709Arr[13]._field_C = 1;
-	_maze709Arr[13]._field_1C = 24;
-	_maze709Arr[14]._field_8 = 1;
-	_maze709Arr[14]._field_18 = 3;
-	_maze709Arr[14]._field_C = 1;
-	_maze709Arr[14]._field_1C = 25;
-	_maze709Arr[15]._field_8 = 1;
-	_maze709Arr[15]._field_18 = 4;
-	_maze709Arr[15]._field_4 = 1;
-	_maze709Arr[15]._field_14 = 16;
-	_maze709Arr[16]._field_0 = 1;
-	_maze709Arr[16]._field_10 = 15;
-	_maze709Arr[17]._field_8 = 1;
-	_maze709Arr[17]._field_18 = 6;
-	_maze709Arr[18]._field_4 = 1;
-	_maze709Arr[18]._field_14 = 19;
-	_maze709Arr[18]._field_C = 1;
-	_maze709Arr[18]._field_1C = 29;
-	_maze709Arr[19]._field_4 = 1;
-	_maze709Arr[19]._field_14 = 20;
-	_maze709Arr[19]._field_0 = 1;
-	_maze709Arr[19]._field_10 = 18;
-	_maze709Arr[20]._field_8 = 1;
-	_maze709Arr[20]._field_18 = 9;
-	_maze709Arr[20]._field_4 = 1;
-	_maze709Arr[20]._field_14 = 21;
-	_maze709Arr[20]._field_0 = 1;
-	_maze709Arr[20]._field_10 = 19;
-	_maze709Arr[21]._field_8 = 1;
-	_maze709Arr[21]._field_18 = 10;
-	_maze709Arr[21]._field_0 = 1;
-	_maze709Arr[21]._field_10 = 20;
-	_maze709Arr[22]._field_8 = 1;
-	_maze709Arr[22]._field_18 = 11;
-	_maze709Arr[23]._field_4 = 1;
-	_maze709Arr[23]._field_14 = 24;
-	_maze709Arr[23]._field_C = 1;
-	_maze709Arr[23]._field_1C = 34;
-	_maze709Arr[24]._field_8 = 1;
-	_maze709Arr[24]._field_18 = 13;
-	_maze709Arr[24]._field_0 = 1;
-	_maze709Arr[24]._field_10 = 23;
-	_maze709Arr[25]._field_8 = 1;
-	_maze709Arr[25]._field_18 = 14;
-	_maze709Arr[25]._field_C = 1;
-	_maze709Arr[25]._field_1C = 36;
-	_maze709Arr[26]._field_0 = 1;
-	_maze709Arr[26]._field_10 = 25;
-	_maze709Arr[26]._field_C = 1;
-	_maze709Arr[26]._field_1C = 37;
-	_maze709Arr[27]._field_4 = 1;
-	_maze709Arr[27]._field_14 = 28;
-	_maze709Arr[27]._field_C = 1;
-	_maze709Arr[27]._field_1C = 38;
-	_maze709Arr[28]._field_0 = 1;
-	_maze709Arr[28]._field_10 = 27;
-	_maze709Arr[29]._field_8 = 1;
-	_maze709Arr[29]._field_18 = 18;
-	_maze709Arr[29]._field_C = 1;
-	_maze709Arr[29]._field_1C = 40;
-	_maze709Arr[30]._field_4 = 1;
-	_maze709Arr[30]._field_14 = 31;
-	_maze709Arr[30]._field_C = 1;
-	_maze709Arr[30]._field_1C = 41;
-	_maze709Arr[31]._field_4 = 1;
-	_maze709Arr[31]._field_14 = 32;
-	_maze709Arr[31]._field_0 = 1;
-	_maze709Arr[31]._field_10 = 30;
-	_maze709Arr[31]._field_C = 1;
-	_maze709Arr[31]._field_1C = 42;
-	_maze709Arr[32]._field_4 = 1;
-	_maze709Arr[32]._field_14 = 33;
-	_maze709Arr[32]._field_0 = 1;
-	_maze709Arr[32]._field_10 = 31;
-	_maze709Arr[33]._field_0 = 1;
-	_maze709Arr[33]._field_10 = 32;
-	_maze709Arr[33]._field_C = 1;
-	_maze709Arr[33]._field_1C = 44;
-	_maze709Arr[34]._field_8 = 1;
-	_maze709Arr[34]._field_18 = 23;
-	_maze709Arr[34]._field_C = 1;
-	_maze709Arr[34]._field_1C = 45;
-	_maze709Arr[35]._field_4 = 1;
-	_maze709Arr[35]._field_14 = 36;
-	_maze709Arr[36]._field_8 = 1;
-	_maze709Arr[36]._field_18 = 25;
-	_maze709Arr[36]._field_0 = 1;
-	_maze709Arr[36]._field_10 = 35;
-	_maze709Arr[36]._field_C = 1;
-	_maze709Arr[36]._field_1C = 47;
-	_maze709Arr[37]._field_8 = 1;
-	_maze709Arr[37]._field_18 = 26;
-	_maze709Arr[37]._field_4 = 1;
-	_maze709Arr[37]._field_14 = 38;
-	_maze709Arr[38]._field_8 = 1;
-	_maze709Arr[38]._field_18 = 27;
-	_maze709Arr[38]._field_0 = 1;
-	_maze709Arr[38]._field_10 = 37;
-	_maze709Arr[39]._field_4 = 1;
-	_maze709Arr[39]._field_14 = 40;
-	_maze709Arr[39]._field_C = 1;
-	_maze709Arr[39]._field_1C = 50;
-	_maze709Arr[40]._field_8 = 1;
-	_maze709Arr[40]._field_18 = 29;
-	_maze709Arr[40]._field_0 = 1;
-	_maze709Arr[40]._field_10 = 39;
-	_maze709Arr[41]._field_8 = 1;
-	_maze709Arr[41]._field_18 = 30;
-	_maze709Arr[41]._field_C = 1;
-	_maze709Arr[41]._field_1C = 52;
-	_maze709Arr[42]._field_8 = 1;
-	_maze709Arr[42]._field_18 = 31;
-	_maze709Arr[42]._field_C = 1;
-	_maze709Arr[42]._field_1C = 53;
-	_maze709Arr[42]._field_4 = 1;
-	_maze709Arr[42]._field_14 = 43;
-	_maze709Arr[43]._field_0 = 1;
-	_maze709Arr[43]._field_10 = 42;
-	_maze709Arr[43]._field_4 = 1;
-	_maze709Arr[43]._field_14 = 44;
-	_maze709Arr[44]._field_8 = 1;
-	_maze709Arr[44]._field_18 = 33;
-	_maze709Arr[44]._field_0 = 1;
-	_maze709Arr[44]._field_10 = 43;
-	_maze709Arr[45]._field_8 = 1;
-	_maze709Arr[45]._field_18 = 34;
-	_maze709Arr[45]._field_4 = 1;
-	_maze709Arr[45]._field_14 = 46;
-	_maze709Arr[45]._field_C = 1;
-	_maze709Arr[45]._field_1C = 56;
-	_maze709Arr[46]._field_0 = 1;
-	_maze709Arr[46]._field_10 = 45;
-	_maze709Arr[46]._field_4 = 1;
-	_maze709Arr[46]._field_14 = 47;
-	_maze709Arr[47]._field_8 = 1;
-	_maze709Arr[47]._field_18 = 36;
-	_maze709Arr[47]._field_0 = 1;
-	_maze709Arr[47]._field_10 = 46;
-	_maze709Arr[48]._field_4 = 1;
-	_maze709Arr[48]._field_14 = 49;
-	_maze709Arr[48]._field_C = 1;
-	_maze709Arr[48]._field_1C = 59;
-	_maze709Arr[49]._field_0 = 1;
-	_maze709Arr[49]._field_10 = 48;
-	_maze709Arr[50]._field_8 = 1;
-	_maze709Arr[50]._field_18 = 39;
-	_maze709Arr[51]._field_4 = 1;
-	_maze709Arr[51]._field_14 = 52;
-	_maze709Arr[51]._field_C = 1;
-	_maze709Arr[51]._field_1C = 62;
-	_maze709Arr[52]._field_8 = 1;
-	_maze709Arr[52]._field_18 = 41;
-	_maze709Arr[52]._field_0 = 1;
-	_maze709Arr[52]._field_10 = 51;
-	_maze709Arr[53]._field_8 = 1;
-	_maze709Arr[53]._field_18 = 42;
-	_maze709Arr[53]._field_4 = 1;
-	_maze709Arr[53]._field_14 = 54;
-	_maze709Arr[54]._field_4 = 1;
-	_maze709Arr[54]._field_14 = 55;
-	_maze709Arr[54]._field_0 = 1;
-	_maze709Arr[54]._field_10 = 53;
-	_maze709Arr[55]._field_0 = 1;
-	_maze709Arr[55]._field_10 = 54;
-	_maze709Arr[55]._field_C = 1;
-	_maze709Arr[55]._field_1C = 66;
-	_maze709Arr[56]._field_8 = 1;
-	_maze709Arr[56]._field_18 = 45;
-	_maze709Arr[56]._field_C = 1;
-	_maze709Arr[56]._field_1C = 67;
-	_maze709Arr[57]._field_0 = 1;
-	_maze709Arr[57]._field_10 = 56;
-	_maze709Arr[58]._field_4 = 1;
-	_maze709Arr[58]._field_14 = 59;
-	_maze709Arr[58]._field_C = 1;
-	_maze709Arr[58]._field_1C = 69;
-	_maze709Arr[59]._field_8 = 1;
-	_maze709Arr[59]._field_18 = 48;
-	_maze709Arr[59]._field_0 = 1;
-	_maze709Arr[59]._field_10 = 58;
-	_maze709Arr[59]._field_C = 1;
-	_maze709Arr[59]._field_1C = 70;
-	_maze709Arr[60]._field_4 = 1;
-	_maze709Arr[60]._field_14 = 61;
-	_maze709Arr[60]._field_C = 1;
-	_maze709Arr[60]._field_1C = 71;
-	_maze709Arr[61]._field_4 = 1;
-	_maze709Arr[61]._field_14 = 62;
-	_maze709Arr[61]._field_0 = 1;
-	_maze709Arr[61]._field_10 = 60;
-	_maze709Arr[62]._field_8 = 1;
-	_maze709Arr[62]._field_18 = 51;
-	_maze709Arr[62]._field_0 = 1;
-	_maze709Arr[62]._field_10 = 61;
-	_maze709Arr[63]._field_4 = 1;
-	_maze709Arr[63]._field_14 = 64;
-	_maze709Arr[64]._field_4 = 1;
-	_maze709Arr[64]._field_14 = 65;
-	_maze709Arr[64]._field_0 = 1;
-	_maze709Arr[64]._field_10 = 63;
-	_maze709Arr[64]._field_C = 1;
-	_maze709Arr[64]._field_1C = 75;
-	_maze709Arr[65]._field_4 = 1;
-	_maze709Arr[65]._field_14 = 66;
-	_maze709Arr[65]._field_0 = 1;
-	_maze709Arr[65]._field_10 = 64;
-	_maze709Arr[66]._field_8 = 1;
-	_maze709Arr[66]._field_18 = 55;
-	_maze709Arr[66]._field_0 = 1;
-	_maze709Arr[66]._field_10 = 65;
-	_maze709Arr[67]._field_8 = 1;
-	_maze709Arr[67]._field_18 = 56;
-	_maze709Arr[67]._field_C = 1;
-	_maze709Arr[67]._field_1C = 78;
-	_maze709Arr[68]._field_4 = 1;
-	_maze709Arr[68]._field_14 = 69;
-	_maze709Arr[68]._field_C = 1;
-	_maze709Arr[68]._field_1C = 79;
-	_maze709Arr[69]._field_0 = 1;
-	_maze709Arr[69]._field_10 = 68;
-	_maze709Arr[69]._field_8 = 1;
-	_maze709Arr[69]._field_18 = 58;
-	_maze709Arr[70]._field_8 = 1;
-	_maze709Arr[70]._field_18 = 59;
-	_maze709Arr[70]._field_4 = 1;
-	_maze709Arr[70]._field_14 = 71;
-	_maze709Arr[71]._field_8 = 1;
-	_maze709Arr[71]._field_18 = 60;
-	_maze709Arr[71]._field_0 = 1;
-	_maze709Arr[71]._field_10 = 70;
-	_maze709Arr[72]._field_4 = 1;
-	_maze709Arr[72]._field_14 = 73;
-	_maze709Arr[72]._field_C = 1;
-	_maze709Arr[72]._field_1C = 83;
-	_maze709Arr[73]._field_0 = 1;
-	_maze709Arr[73]._field_10 = 72;
-	_maze709Arr[73]._field_4 = 1;
-	_maze709Arr[73]._field_14 = 74;
-	_maze709Arr[74]._field_0 = 1;
-	_maze709Arr[74]._field_10 = 73;
-	_maze709Arr[74]._field_C = 1;
-	_maze709Arr[74]._field_1C = 85;
-	_maze709Arr[75]._field_8 = 1;
-	_maze709Arr[75]._field_18 = 64;
-	_maze709Arr[75]._field_4 = 1;
-	_maze709Arr[75]._field_14 = 76;
-	_maze709Arr[76]._field_0 = 1;
-	_maze709Arr[76]._field_10 = 75;
-	_maze709Arr[76]._field_4 = 1;
-	_maze709Arr[76]._field_14 = 77;
-	_maze709Arr[77]._field_0 = 1;
-	_maze709Arr[77]._field_10 = 76;
-	_maze709Arr[77]._field_C = 1;
-	_maze709Arr[77]._field_1C = 88;
-	_maze709Arr[78]._field_8 = 1;
-	_maze709Arr[78]._field_18 = 67;
-	_maze709Arr[78]._field_C = 1;
-	_maze709Arr[78]._field_1C = 89;
-	_maze709Arr[79]._field_8 = 1;
-	_maze709Arr[79]._field_18 = 68;
-	_maze709Arr[79]._field_4 = 1;
-	_maze709Arr[79]._field_14 = 80;
-	_maze709Arr[80]._field_4 = 1;
-	_maze709Arr[80]._field_14 = 81;
-	_maze709Arr[80]._field_0 = 1;
-	_maze709Arr[80]._field_10 = 79;
-	_maze709Arr[80]._field_C = 1;
-	_maze709Arr[80]._field_1C = 91;
-	_maze709Arr[81]._field_0 = 1;
-	_maze709Arr[81]._field_10 = 80;
-	_maze709Arr[81]._field_C = 1;
-	_maze709Arr[81]._field_1C = 92;
-	_maze709Arr[82]._field_4 = 1;
-	_maze709Arr[82]._field_14 = 83;
-	_maze709Arr[83]._field_8 = 1;
-	_maze709Arr[83]._field_18 = 72;
-	_maze709Arr[83]._field_0 = 1;
-	_maze709Arr[83]._field_10 = 82;
-	_maze709Arr[83]._field_C = 1;
-	_maze709Arr[83]._field_1C = 94;
-	_maze709Arr[84]._field_4 = 1;
-	_maze709Arr[84]._field_14 = 85;
-	_maze709Arr[84]._field_C = 1;
-	_maze709Arr[84]._field_1C = 95;
-	_maze709Arr[85]._field_8 = 1;
-	_maze709Arr[85]._field_18 = 74;
-	_maze709Arr[85]._field_0 = 1;
-	_maze709Arr[85]._field_10 = 84;
-	_maze709Arr[85]._field_4 = 1;
-	_maze709Arr[85]._field_14 = 86;
-	_maze709Arr[86]._field_0 = 1;
-	_maze709Arr[86]._field_10 = 85;
-	_maze709Arr[86]._field_4 = 1;
-	_maze709Arr[86]._field_14 = 87;
-	_maze709Arr[87]._field_0 = 1;
-	_maze709Arr[87]._field_10 = 86;
-	_maze709Arr[87]._field_C = 1;
-	_maze709Arr[87]._field_1C = 98;
-	_maze709Arr[88]._field_8 = 1;
-	_maze709Arr[88]._field_18 = 77;
-	_maze709Arr[88]._field_C = 1;
-	_maze709Arr[88]._field_1C = 99;
-	_maze709Arr[89]._field_8 = 1;
-	_maze709Arr[89]._field_18 = 78;
-	_maze709Arr[89]._field_4 = 1;
-	_maze709Arr[89]._field_14 = 90;
-	_maze709Arr[90]._field_4 = 1;
-	_maze709Arr[90]._field_14 = 91;
-	_maze709Arr[90]._field_0 = 1;
-	_maze709Arr[90]._field_10 = 89;
-	_maze709Arr[91]._field_8 = 1;
-	_maze709Arr[91]._field_18 = 80;
-	_maze709Arr[91]._field_0 = 1;
-	_maze709Arr[91]._field_10 = 90;
-	_maze709Arr[92]._field_8 = 1;
-	_maze709Arr[92]._field_18 = 81;
-	_maze709Arr[92]._field_4 = 1;
-	_maze709Arr[92]._field_14 = 93;
-	_maze709Arr[93]._field_0 = 1;
-	_maze709Arr[93]._field_10 = 92;
-	_maze709Arr[94]._field_8 = 1;
-	_maze709Arr[94]._field_18 = 83;
-	_maze709Arr[95]._field_8 = 1;
-	_maze709Arr[95]._field_18 = 84;
-	_maze709Arr[95]._field_4 = 1;
-	_maze709Arr[95]._field_14 = 96;
-	_maze709Arr[96]._field_0 = 1;
-	_maze709Arr[96]._field_10 = 95;
-	_maze709Arr[96]._field_4 = 1;
-	_maze709Arr[96]._field_14 = 97;
-	_maze709Arr[97]._field_0 = 1;
-	_maze709Arr[97]._field_10 = 96;
-	_maze709Arr[98]._field_8 = 1;
-	_maze709Arr[98]._field_18 = 87;
-	_maze709Arr[98]._field_4 = 1;
-	_maze709Arr[98]._field_14 = 99;
+	_maze709Arr[1]._rightActive = 1;
+	_maze709Arr[1]._rightIndex = 2;
+	_maze709Arr[1]._backActive = 1;
+	_maze709Arr[1]._backIndex = 12;
+	_maze709Arr[2]._leftActive = 1;
+	_maze709Arr[2]._leftIndex = 1;
+	_maze709Arr[2]._backActive = 1;
+	_maze709Arr[2]._backIndex = 13;
+	_maze709Arr[3]._rightActive = 1;
+	_maze709Arr[3]._rightIndex = 4;
+	_maze709Arr[3]._backActive = 1;
+	_maze709Arr[3]._backIndex = 14;
+	_maze709Arr[4]._rightActive = 1;
+	_maze709Arr[4]._rightIndex = 5;
+	_maze709Arr[4]._leftActive = 1;
+	_maze709Arr[4]._leftIndex = 3;
+	_maze709Arr[4]._backActive = 1;
+	_maze709Arr[4]._backIndex = 15;
+	_maze709Arr[5]._rightActive = 1;
+	_maze709Arr[5]._rightIndex = 6;
+	_maze709Arr[5]._leftActive = 1;
+	_maze709Arr[5]._leftIndex = 4;
+	_maze709Arr[6]._leftActive = 1;
+	_maze709Arr[6]._leftIndex = 5;
+	_maze709Arr[6]._rightActive = 1;
+	_maze709Arr[6]._rightIndex = 7;
+	_maze709Arr[6]._backActive = 1;
+	_maze709Arr[6]._backIndex = 17;
+	_maze709Arr[7]._rightActive = 1;
+	_maze709Arr[7]._rightIndex = 8;
+	_maze709Arr[7]._leftActive = 1;
+	_maze709Arr[7]._leftIndex = 6;
+	_maze709Arr[8]._rightActive = 1;
+	_maze709Arr[8]._rightIndex = 9;
+	_maze709Arr[8]._leftActive = 1;
+	_maze709Arr[8]._leftIndex = 7;
+	_maze709Arr[9]._leftActive = 1;
+	_maze709Arr[9]._leftIndex = 8;
+	_maze709Arr[9]._backActive = 1;
+	_maze709Arr[9]._backIndex = 20;
+	_maze709Arr[10]._rightActive = 1;
+	_maze709Arr[10]._rightIndex = 11;
+	_maze709Arr[10]._backActive = 1;
+	_maze709Arr[10]._backIndex = 21;
+	_maze709Arr[11]._leftActive = 1;
+	_maze709Arr[11]._leftIndex = 10;
+	_maze709Arr[11]._backActive = 1;
+	_maze709Arr[11]._backIndex = 22;
+	_maze709Arr[12]._straightActive = 1;
+	_maze709Arr[12]._straightIndex = 1;
+	_maze709Arr[13]._straightActive = 1;
+	_maze709Arr[13]._straightIndex = 2;
+	_maze709Arr[13]._backActive = 1;
+	_maze709Arr[13]._backIndex = 24;
+	_maze709Arr[14]._straightActive = 1;
+	_maze709Arr[14]._straightIndex = 3;
+	_maze709Arr[14]._backActive = 1;
+	_maze709Arr[14]._backIndex = 25;
+	_maze709Arr[15]._straightActive = 1;
+	_maze709Arr[15]._straightIndex = 4;
+	_maze709Arr[15]._rightActive = 1;
+	_maze709Arr[15]._rightIndex = 16;
+	_maze709Arr[16]._leftActive = 1;
+	_maze709Arr[16]._leftIndex = 15;
+	_maze709Arr[17]._straightActive = 1;
+	_maze709Arr[17]._straightIndex = 6;
+	_maze709Arr[18]._rightActive = 1;
+	_maze709Arr[18]._rightIndex = 19;
+	_maze709Arr[18]._backActive = 1;
+	_maze709Arr[18]._backIndex = 29;
+	_maze709Arr[19]._rightActive = 1;
+	_maze709Arr[19]._rightIndex = 20;
+	_maze709Arr[19]._leftActive = 1;
+	_maze709Arr[19]._leftIndex = 18;
+	_maze709Arr[20]._straightActive = 1;
+	_maze709Arr[20]._straightIndex = 9;
+	_maze709Arr[20]._rightActive = 1;
+	_maze709Arr[20]._rightIndex = 21;
+	_maze709Arr[20]._leftActive = 1;
+	_maze709Arr[20]._leftIndex = 19;
+	_maze709Arr[21]._straightActive = 1;
+	_maze709Arr[21]._straightIndex = 10;
+	_maze709Arr[21]._leftActive = 1;
+	_maze709Arr[21]._leftIndex = 20;
+	_maze709Arr[22]._straightActive = 1;
+	_maze709Arr[22]._straightIndex = 11;
+	_maze709Arr[23]._rightActive = 1;
+	_maze709Arr[23]._rightIndex = 24;
+	_maze709Arr[23]._backActive = 1;
+	_maze709Arr[23]._backIndex = 34;
+	_maze709Arr[24]._straightActive = 1;
+	_maze709Arr[24]._straightIndex = 13;
+	_maze709Arr[24]._leftActive = 1;
+	_maze709Arr[24]._leftIndex = 23;
+	_maze709Arr[25]._straightActive = 1;
+	_maze709Arr[25]._straightIndex = 14;
+	_maze709Arr[25]._backActive = 1;
+	_maze709Arr[25]._backIndex = 36;
+	_maze709Arr[26]._leftActive = 1;
+	_maze709Arr[26]._leftIndex = 25;
+	_maze709Arr[26]._backActive = 1;
+	_maze709Arr[26]._backIndex = 37;
+	_maze709Arr[27]._rightActive = 1;
+	_maze709Arr[27]._rightIndex = 28;
+	_maze709Arr[27]._backActive = 1;
+	_maze709Arr[27]._backIndex = 38;
+	_maze709Arr[28]._leftActive = 1;
+	_maze709Arr[28]._leftIndex = 27;
+	_maze709Arr[29]._straightActive = 1;
+	_maze709Arr[29]._straightIndex = 18;
+	_maze709Arr[29]._backActive = 1;
+	_maze709Arr[29]._backIndex = 40;
+	_maze709Arr[30]._rightActive = 1;
+	_maze709Arr[30]._rightIndex = 31;
+	_maze709Arr[30]._backActive = 1;
+	_maze709Arr[30]._backIndex = 41;
+	_maze709Arr[31]._rightActive = 1;
+	_maze709Arr[31]._rightIndex = 32;
+	_maze709Arr[31]._leftActive = 1;
+	_maze709Arr[31]._leftIndex = 30;
+	_maze709Arr[31]._backActive = 1;
+	_maze709Arr[31]._backIndex = 42;
+	_maze709Arr[32]._rightActive = 1;
+	_maze709Arr[32]._rightIndex = 33;
+	_maze709Arr[32]._leftActive = 1;
+	_maze709Arr[32]._leftIndex = 31;
+	_maze709Arr[33]._leftActive = 1;
+	_maze709Arr[33]._leftIndex = 32;
+	_maze709Arr[33]._backActive = 1;
+	_maze709Arr[33]._backIndex = 44;
+	_maze709Arr[34]._straightActive = 1;
+	_maze709Arr[34]._straightIndex = 23;
+	_maze709Arr[34]._backActive = 1;
+	_maze709Arr[34]._backIndex = 45;
+	_maze709Arr[35]._rightActive = 1;
+	_maze709Arr[35]._rightIndex = 36;
+	_maze709Arr[36]._straightActive = 1;
+	_maze709Arr[36]._straightIndex = 25;
+	_maze709Arr[36]._leftActive = 1;
+	_maze709Arr[36]._leftIndex = 35;
+	_maze709Arr[36]._backActive = 1;
+	_maze709Arr[36]._backIndex = 47;
+	_maze709Arr[37]._straightActive = 1;
+	_maze709Arr[37]._straightIndex = 26;
+	_maze709Arr[37]._rightActive = 1;
+	_maze709Arr[37]._rightIndex = 38;
+	_maze709Arr[38]._straightActive = 1;
+	_maze709Arr[38]._straightIndex = 27;
+	_maze709Arr[38]._leftActive = 1;
+	_maze709Arr[38]._leftIndex = 37;
+	_maze709Arr[39]._rightActive = 1;
+	_maze709Arr[39]._rightIndex = 40;
+	_maze709Arr[39]._backActive = 1;
+	_maze709Arr[39]._backIndex = 50;
+	_maze709Arr[40]._straightActive = 1;
+	_maze709Arr[40]._straightIndex = 29;
+	_maze709Arr[40]._leftActive = 1;
+	_maze709Arr[40]._leftIndex = 39;
+	_maze709Arr[41]._straightActive = 1;
+	_maze709Arr[41]._straightIndex = 30;
+	_maze709Arr[41]._backActive = 1;
+	_maze709Arr[41]._backIndex = 52;
+	_maze709Arr[42]._straightActive = 1;
+	_maze709Arr[42]._straightIndex = 31;
+	_maze709Arr[42]._backActive = 1;
+	_maze709Arr[42]._backIndex = 53;
+	_maze709Arr[42]._rightActive = 1;
+	_maze709Arr[42]._rightIndex = 43;
+	_maze709Arr[43]._leftActive = 1;
+	_maze709Arr[43]._leftIndex = 42;
+	_maze709Arr[43]._rightActive = 1;
+	_maze709Arr[43]._rightIndex = 44;
+	_maze709Arr[44]._straightActive = 1;
+	_maze709Arr[44]._straightIndex = 33;
+	_maze709Arr[44]._leftActive = 1;
+	_maze709Arr[44]._leftIndex = 43;
+	_maze709Arr[45]._straightActive = 1;
+	_maze709Arr[45]._straightIndex = 34;
+	_maze709Arr[45]._rightActive = 1;
+	_maze709Arr[45]._rightIndex = 46;
+	_maze709Arr[45]._backActive = 1;
+	_maze709Arr[45]._backIndex = 56;
+	_maze709Arr[46]._leftActive = 1;
+	_maze709Arr[46]._leftIndex = 45;
+	_maze709Arr[46]._rightActive = 1;
+	_maze709Arr[46]._rightIndex = 47;
+	_maze709Arr[47]._straightActive = 1;
+	_maze709Arr[47]._straightIndex = 36;
+	_maze709Arr[47]._leftActive = 1;
+	_maze709Arr[47]._leftIndex = 46;
+	_maze709Arr[48]._rightActive = 1;
+	_maze709Arr[48]._rightIndex = 49;
+	_maze709Arr[48]._backActive = 1;
+	_maze709Arr[48]._backIndex = 59;
+	_maze709Arr[49]._leftActive = 1;
+	_maze709Arr[49]._leftIndex = 48;
+	_maze709Arr[50]._straightActive = 1;
+	_maze709Arr[50]._straightIndex = 39;
+	_maze709Arr[51]._rightActive = 1;
+	_maze709Arr[51]._rightIndex = 52;
+	_maze709Arr[51]._backActive = 1;
+	_maze709Arr[51]._backIndex = 62;
+	_maze709Arr[52]._straightActive = 1;
+	_maze709Arr[52]._straightIndex = 41;
+	_maze709Arr[52]._leftActive = 1;
+	_maze709Arr[52]._leftIndex = 51;
+	_maze709Arr[53]._straightActive = 1;
+	_maze709Arr[53]._straightIndex = 42;
+	_maze709Arr[53]._rightActive = 1;
+	_maze709Arr[53]._rightIndex = 54;
+	_maze709Arr[54]._rightActive = 1;
+	_maze709Arr[54]._rightIndex = 55;
+	_maze709Arr[54]._leftActive = 1;
+	_maze709Arr[54]._leftIndex = 53;
+	_maze709Arr[55]._leftActive = 1;
+	_maze709Arr[55]._leftIndex = 54;
+	_maze709Arr[55]._backActive = 1;
+	_maze709Arr[55]._backIndex = 66;
+	_maze709Arr[56]._straightActive = 1;
+	_maze709Arr[56]._straightIndex = 45;
+	_maze709Arr[56]._backActive = 1;
+	_maze709Arr[56]._backIndex = 67;
+	_maze709Arr[57]._leftActive = 1;
+	_maze709Arr[57]._leftIndex = 56;
+	_maze709Arr[58]._rightActive = 1;
+	_maze709Arr[58]._rightIndex = 59;
+	_maze709Arr[58]._backActive = 1;
+	_maze709Arr[58]._backIndex = 69;
+	_maze709Arr[59]._straightActive = 1;
+	_maze709Arr[59]._straightIndex = 48;
+	_maze709Arr[59]._leftActive = 1;
+	_maze709Arr[59]._leftIndex = 58;
+	_maze709Arr[59]._backActive = 1;
+	_maze709Arr[59]._backIndex = 70;
+	_maze709Arr[60]._rightActive = 1;
+	_maze709Arr[60]._rightIndex = 61;
+	_maze709Arr[60]._backActive = 1;
+	_maze709Arr[60]._backIndex = 71;
+	_maze709Arr[61]._rightActive = 1;
+	_maze709Arr[61]._rightIndex = 62;
+	_maze709Arr[61]._leftActive = 1;
+	_maze709Arr[61]._leftIndex = 60;
+	_maze709Arr[62]._straightActive = 1;
+	_maze709Arr[62]._straightIndex = 51;
+	_maze709Arr[62]._leftActive = 1;
+	_maze709Arr[62]._leftIndex = 61;
+	_maze709Arr[63]._rightActive = 1;
+	_maze709Arr[63]._rightIndex = 64;
+	_maze709Arr[64]._rightActive = 1;
+	_maze709Arr[64]._rightIndex = 65;
+	_maze709Arr[64]._leftActive = 1;
+	_maze709Arr[64]._leftIndex = 63;
+	_maze709Arr[64]._backActive = 1;
+	_maze709Arr[64]._backIndex = 75;
+	_maze709Arr[65]._rightActive = 1;
+	_maze709Arr[65]._rightIndex = 66;
+	_maze709Arr[65]._leftActive = 1;
+	_maze709Arr[65]._leftIndex = 64;
+	_maze709Arr[66]._straightActive = 1;
+	_maze709Arr[66]._straightIndex = 55;
+	_maze709Arr[66]._leftActive = 1;
+	_maze709Arr[66]._leftIndex = 65;
+	_maze709Arr[67]._straightActive = 1;
+	_maze709Arr[67]._straightIndex = 56;
+	_maze709Arr[67]._backActive = 1;
+	_maze709Arr[67]._backIndex = 78;
+	_maze709Arr[68]._rightActive = 1;
+	_maze709Arr[68]._rightIndex = 69;
+	_maze709Arr[68]._backActive = 1;
+	_maze709Arr[68]._backIndex = 79;
+	_maze709Arr[69]._leftActive = 1;
+	_maze709Arr[69]._leftIndex = 68;
+	_maze709Arr[69]._straightActive = 1;
+	_maze709Arr[69]._straightIndex = 58;
+	_maze709Arr[70]._straightActive = 1;
+	_maze709Arr[70]._straightIndex = 59;
+	_maze709Arr[70]._rightActive = 1;
+	_maze709Arr[70]._rightIndex = 71;
+	_maze709Arr[71]._straightActive = 1;
+	_maze709Arr[71]._straightIndex = 60;
+	_maze709Arr[71]._leftActive = 1;
+	_maze709Arr[71]._leftIndex = 70;
+	_maze709Arr[72]._rightActive = 1;
+	_maze709Arr[72]._rightIndex = 73;
+	_maze709Arr[72]._backActive = 1;
+	_maze709Arr[72]._backIndex = 83;
+	_maze709Arr[73]._leftActive = 1;
+	_maze709Arr[73]._leftIndex = 72;
+	_maze709Arr[73]._rightActive = 1;
+	_maze709Arr[73]._rightIndex = 74;
+	_maze709Arr[74]._leftActive = 1;
+	_maze709Arr[74]._leftIndex = 73;
+	_maze709Arr[74]._backActive = 1;
+	_maze709Arr[74]._backIndex = 85;
+	_maze709Arr[75]._straightActive = 1;
+	_maze709Arr[75]._straightIndex = 64;
+	_maze709Arr[75]._rightActive = 1;
+	_maze709Arr[75]._rightIndex = 76;
+	_maze709Arr[76]._leftActive = 1;
+	_maze709Arr[76]._leftIndex = 75;
+	_maze709Arr[76]._rightActive = 1;
+	_maze709Arr[76]._rightIndex = 77;
+	_maze709Arr[77]._leftActive = 1;
+	_maze709Arr[77]._leftIndex = 76;
+	_maze709Arr[77]._backActive = 1;
+	_maze709Arr[77]._backIndex = 88;
+	_maze709Arr[78]._straightActive = 1;
+	_maze709Arr[78]._straightIndex = 67;
+	_maze709Arr[78]._backActive = 1;
+	_maze709Arr[78]._backIndex = 89;
+	_maze709Arr[79]._straightActive = 1;
+	_maze709Arr[79]._straightIndex = 68;
+	_maze709Arr[79]._rightActive = 1;
+	_maze709Arr[79]._rightIndex = 80;
+	_maze709Arr[80]._rightActive = 1;
+	_maze709Arr[80]._rightIndex = 81;
+	_maze709Arr[80]._leftActive = 1;
+	_maze709Arr[80]._leftIndex = 79;
+	_maze709Arr[80]._backActive = 1;
+	_maze709Arr[80]._backIndex = 91;
+	_maze709Arr[81]._leftActive = 1;
+	_maze709Arr[81]._leftIndex = 80;
+	_maze709Arr[81]._backActive = 1;
+	_maze709Arr[81]._backIndex = 92;
+	_maze709Arr[82]._rightActive = 1;
+	_maze709Arr[82]._rightIndex = 83;
+	_maze709Arr[83]._straightActive = 1;
+	_maze709Arr[83]._straightIndex = 72;
+	_maze709Arr[83]._leftActive = 1;
+	_maze709Arr[83]._leftIndex = 82;
+	_maze709Arr[83]._backActive = 1;
+	_maze709Arr[83]._backIndex = 94;
+	_maze709Arr[84]._rightActive = 1;
+	_maze709Arr[84]._rightIndex = 85;
+	_maze709Arr[84]._backActive = 1;
+	_maze709Arr[84]._backIndex = 95;
+	_maze709Arr[85]._straightActive = 1;
+	_maze709Arr[85]._straightIndex = 74;
+	_maze709Arr[85]._leftActive = 1;
+	_maze709Arr[85]._leftIndex = 84;
+	_maze709Arr[85]._rightActive = 1;
+	_maze709Arr[85]._rightIndex = 86;
+	_maze709Arr[86]._leftActive = 1;
+	_maze709Arr[86]._leftIndex = 85;
+	_maze709Arr[86]._rightActive = 1;
+	_maze709Arr[86]._rightIndex = 87;
+	_maze709Arr[87]._leftActive = 1;
+	_maze709Arr[87]._leftIndex = 86;
+	_maze709Arr[87]._backActive = 1;
+	_maze709Arr[87]._backIndex = 98;
+	_maze709Arr[88]._straightActive = 1;
+	_maze709Arr[88]._straightIndex = 77;
+	_maze709Arr[88]._backActive = 1;
+	_maze709Arr[88]._backIndex = 99;
+	_maze709Arr[89]._straightActive = 1;
+	_maze709Arr[89]._straightIndex = 78;
+	_maze709Arr[89]._rightActive = 1;
+	_maze709Arr[89]._rightIndex = 90;
+	_maze709Arr[90]._rightActive = 1;
+	_maze709Arr[90]._rightIndex = 91;
+	_maze709Arr[90]._leftActive = 1;
+	_maze709Arr[90]._leftIndex = 89;
+	_maze709Arr[91]._straightActive = 1;
+	_maze709Arr[91]._straightIndex = 80;
+	_maze709Arr[91]._leftActive = 1;
+	_maze709Arr[91]._leftIndex = 90;
+	_maze709Arr[92]._straightActive = 1;
+	_maze709Arr[92]._straightIndex = 81;
+	_maze709Arr[92]._rightActive = 1;
+	_maze709Arr[92]._rightIndex = 93;
+	_maze709Arr[93]._leftActive = 1;
+	_maze709Arr[93]._leftIndex = 92;
+	_maze709Arr[94]._straightActive = 1;
+	_maze709Arr[94]._straightIndex = 83;
+	_maze709Arr[95]._straightActive = 1;
+	_maze709Arr[95]._straightIndex = 84;
+	_maze709Arr[95]._rightActive = 1;
+	_maze709Arr[95]._rightIndex = 96;
+	_maze709Arr[96]._leftActive = 1;
+	_maze709Arr[96]._leftIndex = 95;
+	_maze709Arr[96]._rightActive = 1;
+	_maze709Arr[96]._rightIndex = 97;
+	_maze709Arr[97]._leftActive = 1;
+	_maze709Arr[97]._leftIndex = 96;
+	_maze709Arr[98]._straightActive = 1;
+	_maze709Arr[98]._straightIndex = 87;
+	_maze709Arr[98]._rightActive = 1;
+	_maze709Arr[98]._rightIndex = 99;
 	_btnFlag = 1;
 
 	switch (_G(game).previous_room) {
 	case KERNEL_RESTORING_GAME:
 		digi_preload("950_s41", -1);
-		if (_field80_save == 97 && inv_object_is_here("CHISEL")) {
-			_field44 = 1;
+		if (_mazeCurrIndex == 97 && inv_object_is_here("CHISEL")) {
+			_chiselActiveFl = 1;
 			_709ChiselMach = series_place_sprite("709 CHISEL", 0, 0, 0, 100, 3840);
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Chisel", true);
 		}
 
-		if (_field80_save == 22 && inv_object_is_here("INCENSE BURNER")) {
-			_field48 = 1;
+		if (_mazeCurrIndex == 22 && inv_object_is_here("INCENSE BURNER")) {
+			_incenseBurnerActiveFl = 1;
 			_709IncenseHolderMach = series_place_sprite("709 INCENSE HOLDER", 0, 0, 0, 100, 3840);
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Incense Burner", true);
 		}
 
-		if (_field80_save == 82) {
+		if (_mazeCurrIndex == 82) {
 			_ripPullMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 3840, false, triggerMachineByHashCallback, "rip pull machine");
 			sendWSMessage_10000(1, _ripPullMach, _mazeLeftDoorLiteSeries, 10, 10, -1, _mazeLeftDoorLiteSeries, 10, 10, 0);
-			_field70 = 1;
+			_pullLeftFl = 1;
 		}
 
 		break;
 
 	case 706:
 		digi_preload("950_s41", -1);
-		_field80_save = 82;
+		_mazeCurrIndex = 82;
 		_ripPullMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 3840, false, triggerMachineByHashCallback, "rip pull machine");
 		sendWSMessage_10000(1, _ripPullMach, _mazeLeftDoorLiteSeries, 10, 10, -1, _mazeLeftDoorLiteSeries, 10, 10, 0);
-		_field70 = 1;
+		_pullLeftFl = 1;
 		ws_demand_location(_G(my_walker), 186, 290);
 		ws_demand_facing(_G(my_walker), 2);
 		ws_walk(_G(my_walker), 276, 300, nullptr, -1, 0, true);
@@ -506,14 +515,14 @@ void Room709::init() {
 		break;
 
 	case 710:
-		_field80_save = 39;
+		_mazeCurrIndex = 39;
 		ws_demand_location(_G(my_walker), 320, 400);
 		ws_demand_facing(_G(my_walker), 1);
 
 		break;
 
 	default:
-		_field80_save = 82;
+		_mazeCurrIndex = 82;
 		digi_preload("950_s41", -1);
 
 		break;
@@ -528,7 +537,7 @@ void Room709::pre_parser() {
 	const bool gearFl = player_said_any("push", "pull", "gear", "open", "close", "RopeS", "RopeL", "RopeR", "RopeB");
 
 	if (player_said("Right")) {
-		if (_maze709Arr[_field80_save]._field_4 == 0 || _field74 == 0 || lookFl || talkFl || gearFl) {
+		if (_maze709Arr[_mazeCurrIndex]._rightActive == 0 || _pullRightFl == 0 || lookFl || talkFl || gearFl) {
 			_G(player).need_to_walk = false;
 			_G(player).ready_to_walk = true;
 			_G(player).waiting_for_walk = false;
@@ -536,13 +545,13 @@ void Room709::pre_parser() {
 	}
 
 	if (player_said("Left")) {
-		if (_maze709Arr[_field80_save]._field_0 == 0 || _field70 == 0 || lookFl || talkFl || gearFl) {
+		if (_maze709Arr[_mazeCurrIndex]._leftActive == 0 || _pullLeftFl == 0 || lookFl || talkFl || gearFl) {
 			_G(player).need_to_walk = false;
 			_G(player).ready_to_walk = true;
 			_G(player).waiting_for_walk = false;
 		}
 
-		if (_field80_save == 82) {
+		if (_mazeCurrIndex == 82) {
 			_G(player).need_to_walk = false;
 			_G(player).ready_to_walk = true;
 			_G(player).waiting_for_walk = false;
@@ -550,7 +559,7 @@ void Room709::pre_parser() {
 	}
 
 	if (player_said("Straight")) {
-		if (_maze709Arr[_field80_save]._field_8 == 0 || _field78 == 0 || lookFl || talkFl || gearFl) {
+		if (_maze709Arr[_mazeCurrIndex]._straightActive == 0 || _pullCenterFl == 0 || lookFl || talkFl || gearFl) {
 			_G(player).need_to_walk = false;
 			_G(player).ready_to_walk = true;
 			_G(player).waiting_for_walk = false;
@@ -558,7 +567,7 @@ void Room709::pre_parser() {
 	}
 
 	if (player_said("Back")) {
-		if (_maze709Arr[_field80_save]._field_C == 0 || _field7C == 0 || lookFl || talkFl || gearFl) {
+		if (_maze709Arr[_mazeCurrIndex]._backActive == 0 || _pullNearFl == 0 || lookFl || talkFl || gearFl) {
 			_G(player).need_to_walk = false;
 			_G(player).ready_to_walk = true;
 			_G(player).waiting_for_walk = false;
@@ -617,10 +626,10 @@ void Room709::parser() {
 			break;
 
 		case 2:
-			if (_maze709Arr[_field80_save]._field_4 != 0 && _field74 == 0) {
+			if (_maze709Arr[_mazeCurrIndex]._rightActive != 0 && _pullRightFl == 0) {
 				_ripPullMach03 = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 3840, false, triggerMachineByHashCallback, "rip pull machine");
 				sendWSMessage_10000(1, _ripPullMach03, _mazeRightDoorLiteSeries, 1, 10, 3, _mazeRightDoorLiteSeries, 10, 10, 0);
-				_field74 = 1;
+				_pullRightFl = 1;
 			} else {
 				kernel_timing_trigger(5, 3, nullptr);
 			}
@@ -663,10 +672,10 @@ void Room709::parser() {
 			break;
 
 		case 2:
-			if (_maze709Arr[_field80_save]._field_0 != 0 && _field70 == 0) {
+			if (_maze709Arr[_mazeCurrIndex]._leftActive != 0 && _pullLeftFl == 0) {
 				_ripPullMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 3840, false, triggerMachineByHashCallback, "rip pull machine");
 				sendWSMessage_10000(1, _ripPullMach, _mazeLeftDoorLiteSeries, 1, 10, 3, _mazeLeftDoorLiteSeries, 10, 10, 0);
-				_field70 = 1;
+				_pullLeftFl = 1;
 			} else {
 				kernel_timing_trigger(5, 3, nullptr);
 			}
@@ -709,10 +718,10 @@ void Room709::parser() {
 			break;
 
 		case 2:
-			if (_maze709Arr[_field80_save]._field_8 != 0 && _field78 == 0) {
+			if (_maze709Arr[_mazeCurrIndex]._straightActive != 0 && _pullCenterFl == 0) {
 				_ripPullMach04 = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 3840, false, triggerMachineByHashCallback, "rip pull machine");
 				sendWSMessage_10000(1, _ripPullMach04, _mazeCenterDoorLiteSeries, 1, 10, 3, _mazeCenterDoorLiteSeries, 10, 10, 0);
-				_field78 = 1;
+				_pullCenterFl = 1;
 			} else {
 				kernel_timing_trigger(5, 3, nullptr);
 			}
@@ -756,10 +765,10 @@ void Room709::parser() {
 			break;
 
 		case 2:
-			if (_maze709Arr[_field80_save]._field_C != 0 && _field7C == 0) {
+			if (_maze709Arr[_mazeCurrIndex]._backActive != 0 && _pullNearFl == 0) {
 				_ripPullMach05 = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 3840, false, triggerMachineByHashCallback, "rip pull machine");
 				sendWSMessage_10000(1, _ripPullMach05, _709NearDoorLiteSeries, 1, 10, 3, _709NearDoorLiteSeries, 10, 10, 0);
-				_field7C = 1;
+				_pullNearFl = 1;
 			} else {
 				kernel_timing_trigger(5, 3, nullptr);
 			}
@@ -781,7 +790,7 @@ void Room709::parser() {
 	} // esi && player_said("rope    ")
 
 	else if (player_said("Right")) {
-		if (_maze709Arr[_field80_save]._field_4 == 0 || _field74 == 0) {
+		if (_maze709Arr[_mazeCurrIndex]._rightActive == 0 || _pullRightFl == 0) {
 			digi_play("708R01", 1, 255, -1, -1);
 		} else {
 			switch (_G(kernel).trigger) {
@@ -806,8 +815,8 @@ void Room709::parser() {
 	} // player_said("Right")
 
 	else if (player_said("Left")) {
-		if (_maze709Arr[_field80_save]._field_0 == 0 || _field70 == 0) {
-			if (_field80_save == 82) {
+		if (_maze709Arr[_mazeCurrIndex]._leftActive == 0 || _pullLeftFl == 0) {
+			if (_mazeCurrIndex == 82) {
 				switch (_G(kernel).trigger) {
 				case -1:
 					ws_walk(_G(my_walker), 182, 292, nullptr, 2, 9, true);
@@ -851,7 +860,7 @@ void Room709::parser() {
 	} // player_said("Left")
 
 	else if (player_said("Straight")) {
-		if (_maze709Arr[_field80_save]._field_8 == 0 || _field78 == 0) {
+		if (_maze709Arr[_mazeCurrIndex]._straightActive == 0 || _pullCenterFl == 0) {
 			digi_play("708R01", 1, 255, -1, -1);
 		} else {
 			switch (_G(kernel).trigger) {
@@ -875,7 +884,7 @@ void Room709::parser() {
 	} // player_said("Straight")
 
 	else if (player_said("Back")) {
-		if (_maze709Arr[_field80_save]._field_C == 0 || _field7C == 0) {
+		if (_maze709Arr[_mazeCurrIndex]._backActive == 0 || _pullNearFl == 0) {
 			digi_play("708R01", 1, 255, -1, -1);
 		} else {
 			switch (_G(kernel).trigger) {
@@ -987,20 +996,20 @@ void Room709::daemon() {
 		break;
 
 	case 11:
-		if (_field80_save == 97) {
+		if (_mazeCurrIndex == 97) {
 			inv_give_to_player("CHISEL");
 			terminateMachine(_709ChiselMach);
-			_field44 = 0;
+			_chiselActiveFl = 0;
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Chisel", false);
 			kernel_examine_inventory_object("PING CHISEL", _G(master_palette), 5, 1, 163, 203, -1, nullptr, -1);
 			digi_play("709R03", 1, 255, 12, -1);
 		}
 
-		if (_field80_save == 22) {
+		if (_mazeCurrIndex == 22) {
 			inv_give_to_player("INCENSE BURNER");
 			terminateMachine(_709IncenseHolderMach);
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Incense Burner", false);
-			_field48 = 0;
+			_incenseBurnerActiveFl = 0;
 			kernel_examine_inventory_object("PING INCENSE BURNER", _G(master_palette), 5, 1, 329, 189, -1, nullptr, -1);
 			digi_play("709R13", 1, 255, 12, -1);
 		}
@@ -1023,56 +1032,56 @@ void Room709::daemon() {
 		player_set_commands_allowed(true);
 		break;
 
-	case 20:
+	case 20: // related to player_said("left")
 		ws_demand_location(_G(my_walker), 410, 300);
 		ws_demand_facing(_G(my_walker), 9);
-		_field80_save = _maze709Arr[_field80_save]._field_10;
-		if (_field44 == 1) {
+		_mazeCurrIndex = _maze709Arr[_mazeCurrIndex]._leftIndex;
+		if (_chiselActiveFl == 1) {
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Chisel", false);
 			terminateMachine(_709ChiselMach);
 		}
 
-		if (_field80_save == 97 && inv_object_is_here("CHISEL")) {
-			_field44 = 1;
+		if (_mazeCurrIndex == 97 && inv_object_is_here("CHISEL")) {
+			_chiselActiveFl = 1;
 			_709ChiselMach = series_place_sprite("709 CHISEL", 0, 0, 0, 100, 3840);
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Chisel", true);
 		}
 
-		if (_field48 == 1) {
+		if (_incenseBurnerActiveFl == 1) {
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Incense Burner", false);
 			terminateMachine(_709IncenseHolderMach);
 		}
 
-		if (_field80_save == 22 && inv_object_is_here("INCENSE BURNER")) {
-			_field48 = 1;
+		if (_mazeCurrIndex == 22 && inv_object_is_here("INCENSE BURNER")) {
+			_incenseBurnerActiveFl = 1;
 			_709IncenseHolderMach = series_place_sprite("709 INCENSE HOLDER", 0, 0, 0, 100, 3840);
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Incense Burner", true);
 		}
 
-		if (_field74 == 1) {
+		if (_pullRightFl == 1) {
 			terminateMachine(_ripPullMach03);
-			_field74 = 0;
+			_pullRightFl = 0;
 		}
 
-		if (_field70 == 1) {
+		if (_pullLeftFl == 1) {
 			terminateMachine(_ripPullMach);
-			_field70 = 0;
+			_pullLeftFl = 0;
 		}
 
-		if (_field78 == 1) {
+		if (_pullCenterFl == 1) {
 			terminateMachine(_ripPullMach04);
-			_field78 = 0;
+			_pullCenterFl = 0;
 		}
 
-		if (_field7C == 1) {
+		if (_pullNearFl == 1) {
 			terminateMachine(_ripPullMach05);
-			_field7C = 0;
+			_pullNearFl = 0;
 		}
 
-		if (_field80_save == 82) {
+		if (_mazeCurrIndex == 82) {
 			_ripPullMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 3840, false, triggerMachineByHashCallback, "rip pull machine");
 			sendWSMessage_10000(1, _ripPullMach, _mazeLeftDoorLiteSeries, 1, 10, -1, _mazeLeftDoorLiteSeries, 10, 10, 0);
-			_field70 = 1;
+			_pullLeftFl = 1;
 			pal_fade_init(_G(master_palette), 0, 255, 100, 30, -1);
 			player_set_commands_allowed(true);
 			delay = imath_ranged_rand(1, 10);
@@ -1086,47 +1095,47 @@ void Room709::daemon() {
 	case 30:
 		ws_demand_location(_G(my_walker), 230, 300);
 		ws_demand_facing(_G(my_walker), 3);
-		_field80_save = _maze709Arr[_field80_save]._field_14;
-		if (_field44 == 1) {
+		_mazeCurrIndex = _maze709Arr[_mazeCurrIndex]._rightIndex;
+		if (_chiselActiveFl == 1) {
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Chisel", false);
 			terminateMachine(_709ChiselMach);
 		}
 
-		if (_field80_save == 97 && inv_object_is_here("Chisel")) {
-			_field44 = 1;
+		if (_mazeCurrIndex == 97 && inv_object_is_here("Chisel")) {
+			_chiselActiveFl = 1;
 			_709ChiselMach = series_place_sprite("709 CHISEL", 0,0,0,100,3840);
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Chisel", true);
 		}
 
-		if (_field48 == 1) {
+		if (_incenseBurnerActiveFl == 1) {
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Incense Burner", false);
 			terminateMachine(_709IncenseHolderMach);
 		}
 
-		if (_field80_save == 22 && inv_object_is_here("INCENSE BURNER")) {
-			_field48 = 1;
+		if (_mazeCurrIndex == 22 && inv_object_is_here("INCENSE BURNER")) {
+			_incenseBurnerActiveFl = 1;
 			_709IncenseHolderMach = series_place_sprite("709 INCENSE HOLDER", 0, 0, 0, 100, 3840);
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Incense Burner", true);
 		}
 
-		if (_field74 == 1) {
+		if (_pullRightFl == 1) {
 			terminateMachine(_ripPullMach03);
-			_field74 = 0;
+			_pullRightFl = 0;
 		}
 
-		if (_field70 == 1) {
+		if (_pullLeftFl == 1) {
 			terminateMachine(_ripPullMach);
-			_field70 = 0;
+			_pullLeftFl = 0;
 		}
 
-		if (_field78 == 1) {
+		if (_pullCenterFl == 1) {
 			terminateMachine(_ripPullMach04);
-			_field78 = 0;
+			_pullCenterFl = 0;
 		}
 
-		if (_field7C == 1) {
+		if (_pullNearFl == 1) {
 			terminateMachine(_ripPullMach05);
-			_field7C = 0;
+			_pullNearFl = 0;
 		}
 
 		pal_fade_init(_G(master_palette), 0, 255, 100, 30, -1);
@@ -1141,47 +1150,47 @@ void Room709::daemon() {
 	case 40:
 		ws_demand_location(_G(my_walker), 320, 400);
 		ws_demand_facing(_G(my_walker), 1);
-		_field80_save = _maze709Arr[_field80_save]._field_18;
-		if (_field44 == 1) {
+		_mazeCurrIndex = _maze709Arr[_mazeCurrIndex]._straightIndex;
+		if (_chiselActiveFl == 1) {
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Chisel", false);
 			terminateMachine(_709ChiselMach);
 		}
 
-		if (_field80_save == 97 && inv_object_is_here("Chisel")) {
-			_field44 = 1;
+		if (_mazeCurrIndex == 97 && inv_object_is_here("Chisel")) {
+			_chiselActiveFl = 1;
 			_709ChiselMach = series_place_sprite("709 CHISEL", 0, 0, 0, 100, 3840);
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Chisel", true);
 		}
 
-		if (_field48 == 1) {
+		if (_incenseBurnerActiveFl == 1) {
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Incense Burner", false);
 			terminateMachine(_709IncenseHolderMach);
 		}
 
-		if (_field80_save == 22 && inv_object_is_here("INCENSE BURNER")) {
-			_field48 = 1;
+		if (_mazeCurrIndex == 22 && inv_object_is_here("INCENSE BURNER")) {
+			_incenseBurnerActiveFl = 1;
 			_709IncenseHolderMach = series_place_sprite("709 INCENSE HOLDER", 0, 0, 0, 100, 3840);
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Incense Burner", true);
 		}
 
-		if (_field74 == 1) {
+		if (_pullRightFl == 1) {
 			terminateMachine(_ripPullMach03);
-			_field74 = 0;
+			_pullRightFl = 0;
 		}
 
-		if (_field70 == 1) {
+		if (_pullLeftFl == 1) {
 			terminateMachine(_ripPullMach);
-			_field70 = 0;
+			_pullLeftFl = 0;
 		}
 
-		if (_field78 == 1) {
+		if (_pullCenterFl == 1) {
 			terminateMachine(_ripPullMach04);
-			_field78 = 0;
+			_pullCenterFl = 0;
 		}
 
-		if (_field7C == 1) {
+		if (_pullNearFl == 1) {
 			terminateMachine(_ripPullMach05);
-			_field7C = 0;
+			_pullNearFl = 0;
 		}
 
 		pal_fade_init(_G(master_palette), 0, 255, 100, 30, -1);
@@ -1196,9 +1205,9 @@ void Room709::daemon() {
 	case 50:
 		ws_demand_location(_G(my_walker), 320, 280);
 		ws_demand_facing(_G(my_walker), 5);
-		_field80_save = _maze709Arr[_field80_save]._field_1C;
+		_mazeCurrIndex = _maze709Arr[_mazeCurrIndex]._backIndex;
 
-		if (_field80_save == 50) {
+		if (_mazeCurrIndex == 50) {
 			adv_kill_digi_between_rooms(false);
 			digi_play_loop("950_s41", 3, 255, -1, -1);
 			RemoveSystemHotkey(KEY_CLEAR);
@@ -1206,46 +1215,46 @@ void Room709::daemon() {
 			_G(game).new_room = 710;
 		}
 
-		if (_field44 == 1) {
+		if (_chiselActiveFl == 1) {
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Chisel", false);
 			terminateMachine(_709ChiselMach);
 		}
 
-		if (_field80_save == 97 && inv_object_is_here("Chisel")) {
-			_field44 = 1;
+		if (_mazeCurrIndex == 97 && inv_object_is_here("Chisel")) {
+			_chiselActiveFl = 1;
 			_709ChiselMach = series_place_sprite("709 CHISEL", 0, 0, 0, 100, 3840);
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Chisel", true);
 		}
 
-		if (_field48 == 1) {
+		if (_incenseBurnerActiveFl == 1) {
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Incense Burner", false);
 			terminateMachine(_709IncenseHolderMach);
 		}
 
-		if (_field80_save == 22 && inv_object_is_here("INCENSE BURNER")) {
-			_field48 = 1;
+		if (_mazeCurrIndex == 22 && inv_object_is_here("INCENSE BURNER")) {
+			_incenseBurnerActiveFl = 1;
 			_709IncenseHolderMach = series_place_sprite("709 INCENSE HOLDER", 0, 0, 0, 100, 3840);
 			hotspot_set_active(_G(currentSceneDef).hotspots, "Incense Burner", true);
 		}
 
-		if (_field74 == 1) {
+		if (_pullRightFl == 1) {
 			terminateMachine(_ripPullMach03);
-			_field74 = 0;
+			_pullRightFl = 0;
 		}
 
-		if (_field70 == 1) {
+		if (_pullLeftFl == 1) {
 			terminateMachine(_ripPullMach);
-			_field70 = 0;
+			_pullLeftFl = 0;
 		}
 
-		if (_field78 == 1) {
+		if (_pullCenterFl == 1) {
 			terminateMachine(_ripPullMach04);
-			_field78 = 0;
+			_pullCenterFl = 0;
 		}
 
-		if (_field7C == 1) {
+		if (_pullNearFl == 1) {
 			terminateMachine(_ripPullMach05);
-			_field7C = 0;
+			_pullNearFl = 0;
 		}
 
 		pal_fade_init(_G(master_palette), 0, 255, 100, 30, -1);
@@ -1483,9 +1492,30 @@ void Room709::daemon() {
 }
 
 void Room709::clearPressed(void *, void *) {
-	// TODO Not implemented yet
-}
+	static int32 _field84 = 0;
+	static int32 _field88 = 0;
+	static uint32 _field8C = 0;
+
+	_field8C = timer_read_60();
+
+	if (_field84 == 0) {
+		_field88 = timer_read_60();
+		++_field84;
+	} else if (_field8C - _field88 < 60) {
+		_field88 = _field8C;
+		++_field84;
+	} else {
+		_field88 = _field8C;
+		_field84 = 1;
+	}
 
+	if (_field84 == 3) {
+		digi_preload("304_s05", -1);
+		digi_preload("709_s99", -1);
+		_G(kernel).trigger_mode = KT_DAEMON;
+		disable_player_commands_and_fade_init(500);
+	}
+}
 
 } // namespace Rooms
 } // namespace Riddle
diff --git a/engines/m4/riddle/rooms/section7/room709.h b/engines/m4/riddle/rooms/section7/room709.h
index 594c49a8b4f..69200157c77 100644
--- a/engines/m4/riddle/rooms/section7/room709.h
+++ b/engines/m4/riddle/rooms/section7/room709.h
@@ -29,19 +29,19 @@ namespace Riddle {
 namespace Rooms {
 
 struct Maze709Struc {
-	int32 _field_0;
-	int32 _field_4;
-	int32 _field_8;
-	int32 _field_C;
-	int32 _field_10;
-	int32 _field_14;
-	int32 _field_18;
-	int32 _field_1C;
+	int32 _leftActive;
+	int32 _rightActive;
+	int32 _straightActive;
+	int32 _backActive;
+	int32 _leftIndex;
+	int32 _rightIndex;
+	int32 _straightIndex;
+	int32 _backIndex;
 };
 
 class Room709 : public Room {
 public:
-	Room709() : Room() {}
+	Room709();
 	~Room709() override {}
 
 	void preload() override;
@@ -49,24 +49,24 @@ public:
 	void pre_parser() override;
 	void parser() override;
 	void daemon() override;
+	void syncGame(Common::Serializer &s) override;
 
 private:
-	int32 _field44 = 0;
-	int32 _field48 = 0;
-	int32 _field74 = 0;
-	int32 _field78 = 0;
-	int32 _field7C = 0;
-	int32 _field70 = 0;
-	int32 _field80_save = 0;
-	int32 _field84 = 0;
-	int32 _field88 = 0;
+	int32 _chiselActiveFl = 0;
+	int32 _incenseBurnerActiveFl = 0;
+	int32 _pullRightFl = 0;
+	int32 _pullCenterFl = 0;
+	int32 _pullNearFl = 0;
+	int32 _pullLeftFl = 0;
+	int32 _btnFlag = 0;
 
+	int32 _mazeCurrIndex = 0;
+	
 	int32 _709NearDoorLiteSeries = 0;
 	int32 _709rpro1Series = 0;
 	int32 _709rpro2Series = 0;
 	int32 _709rpro3Series = 0;
 	int32 _709rpro4Series = 0;
-	int32 _btnFlag = 0;
 	int32 _mazeCenterDoorLiteSeries = 0;
 	int32 _mazeLeftDoorLiteSeries = 0;
 	int32 _mazeRightDoorLiteSeries = 0;
@@ -88,6 +88,7 @@ private:
 
 	Maze709Struc _maze709Arr[99];
 
+	void resetMaze();
 	static void clearPressed(void *, void *);
 };
 




More information about the Scummvm-git-logs mailing list