[Scummvm-git-logs] scummvm master -> 056477c1d01e02155354782078538feaa7008d33

Strangerke noreply at scummvm.org
Wed Dec 18 08:14:11 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:
056477c1d0 M4: RIDDLE: Room 709: Start the implementation (init)


Commit: 056477c1d01e02155354782078538feaa7008d33
    https://github.com/scummvm/scummvm/commit/056477c1d01e02155354782078538feaa7008d33
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-12-18T09:13:58+01:00

Commit Message:
M4: RIDDLE: Room 709: Start the implementation (init)

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


diff --git a/engines/m4/platform/keys.h b/engines/m4/platform/keys.h
index e566ef5a495..c2bc15b908d 100644
--- a/engines/m4/platform/keys.h
+++ b/engines/m4/platform/keys.h
@@ -111,6 +111,7 @@ enum {
 	KEY_RETURN = Common::KEYCODE_RETURN,
 	KEY_ESCAPE = Common::KEYCODE_ESCAPE,
 	KEY_SPACE = Common::KEYCODE_SPACE,
+	KEY_CLEAR = Common::KEYCODE_CLEAR,
 
 	KEY_LEFT = Common::KEYCODE_LEFT,
 	KEY_RIGHT = Common::KEYCODE_RIGHT,
diff --git a/engines/m4/riddle/rooms/section7/room709.cpp b/engines/m4/riddle/rooms/section7/room709.cpp
index 20b9bb49ecf..9b504b46aea 100644
--- a/engines/m4/riddle/rooms/section7/room709.cpp
+++ b/engines/m4/riddle/rooms/section7/room709.cpp
@@ -21,18 +21,524 @@
 
 #include "m4/riddle/rooms/section7/room709.h"
 #include "m4/graphics/gr_series.h"
+#include "m4/gui/gui_sys.h"
 #include "m4/riddle/vars.h"
+#include "m4/platform/keys.h"
 
 namespace M4 {
 namespace Riddle {
 namespace Rooms {
 
+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;
+
+	AddSystemHotkey(KEY_CLEAR, clearPressed);
+	AddSystemHotkey(5, clearPressed);
+	digi_preload("950_s42");
+
+	_field70 = 0;
+	_field74 = 0;
+	_field78 = 0;
+	_field7C = 0;
+
+	_ripTrekLowReachPos2Series = series_load("RIP TREK LOW REACH POS2", -1, nullptr);
+	_709rpro1Series = series_load("709RPRO1", -1, nullptr);
+	_709rpro2Series = series_load("709RPRO2", -1, nullptr);
+	_709rpro3Series = series_load("709RPRO3", -1, nullptr);
+	_709rpro4Series = series_load("709RPRO4", -1, nullptr);
+	_mazeLeftDoorLiteSeries = series_load("MAZE LEFT DOOR LITE", -1, nullptr);
+	_mazeCenterDoorLiteSeries = series_load("MAZE CENTRE DOOR LITE", -1, nullptr);
+	_mazeRightDoorLiteSeries = series_load("MAZE RIGHT DOOR LITE", -1, nullptr);
+	_709NearDoorLiteSeries = series_load("709 NEAR DOOR LIGHT", -1, nullptr);
+
+	_709rpro8Mach = series_place_sprite("709RPRO8", 0, 0, -53, 100, 2048);
+	_709rpro7Mach = series_place_sprite("709RPRO7", 0, 0, -53, 100, 2304);
+	_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;
+	}
+
+	_field44 = 0;
+	_field48 = 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;
+	_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;
+			_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;
+			_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) {
+			_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;
+		}
+
+		break;
+
+	case 706:
+		digi_preload("950_s41", -1);
+		_field80_save = 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;
+		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);
+
+		break;
+
+	case 710:
+		_field80_save = 39;
+		ws_demand_location(_G(my_walker), 320, 400);
+		ws_demand_facing(_G(my_walker), 1);
+
+		break;
+
+	default:
+		_field80_save = 82;
+		digi_preload("950_s41", -1);
+
+		break;
+	}
+
+	digi_play_loop("950_s41", 3, 255, -1, -1);
+}
+
+void Room709::pre_parser() {
+	// TODO Not implemented yet
+}
+
+void Room709::parser() {
+	// TODO Not implemented yet
 }
 
 void Room709::daemon() {
+	// TODO Not implemented yet
 }
 
+void Room709::clearPressed(void *, void *) {
+	// TODO Not implemented yet
+}
+
+
 } // namespace Rooms
 } // namespace Riddle
 } // namespace M4
diff --git a/engines/m4/riddle/rooms/section7/room709.h b/engines/m4/riddle/rooms/section7/room709.h
index 0f230bb22e3..cef87dd83e9 100644
--- a/engines/m4/riddle/rooms/section7/room709.h
+++ b/engines/m4/riddle/rooms/section7/room709.h
@@ -28,13 +28,61 @@ namespace M4 {
 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;
+};
+
 class Room709 : public Room {
 public:
 	Room709() : Room() {}
 	~Room709() override {}
 
+	void preload() override;
 	void init() override;
+	void pre_parser() override;
+	void parser() override;
 	void daemon() 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 _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;
+	int32 _ripTrekLowReachPos2Series = 0;
+
+	machine *_709IncenseHolderMach = nullptr;
+	machine *_709rpro5Mach = nullptr;
+	machine *_709rpro6Mach = nullptr;
+	machine *_709rpro7Mach = nullptr;
+	machine *_709rpro8Mach = nullptr;
+	machine *_709ChiselMach = nullptr;
+	machine *_ripPullMach = nullptr;
+
+	Maze709Struc maze709Arr[99];
+
+	static void clearPressed(void *, void *);
 };
 
 } // namespace Rooms




More information about the Scummvm-git-logs mailing list