[Scummvm-git-logs] scummvm master -> 65b3a3386b11d00900b8ebcfc0827adc73941e44

dreammaster noreply at scummvm.org
Sat Aug 17 05:49:39 UTC 2024


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
a98ab1325d M4: RIDDLE: Change the KITTY_SCREAMING ifdef to a global variable
65b3a3386b M4: RIDDLE: Room 405 init


Commit: a98ab1325dab8ce96ec427770e008784a1e83fc4
    https://github.com/scummvm/scummvm/commit/a98ab1325dab8ce96ec427770e008784a1e83fc4
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-08-16T22:37:24-07:00

Commit Message:
M4: RIDDLE: Change the KITTY_SCREAMING ifdef to a global variable

Changed paths:
    engines/m4/riddle/console.cpp
    engines/m4/riddle/console.h
    engines/m4/riddle/rooms/section4/room402.cpp
    engines/m4/riddle/rooms/section4/room404.cpp
    engines/m4/riddle/rooms/section4/room405.cpp
    engines/m4/riddle/rooms/section4/room405.h
    engines/m4/riddle/vars.h


diff --git a/engines/m4/riddle/console.cpp b/engines/m4/riddle/console.cpp
index b8888166925..bb13f42cc53 100644
--- a/engines/m4/riddle/console.cpp
+++ b/engines/m4/riddle/console.cpp
@@ -28,6 +28,7 @@ namespace Riddle {
 
 Console::Console() : M4::Console() {
 	registerCmd("global", WRAP_METHOD(Console, cmdGlobal));
+	registerCmd("kitty", WRAP_METHOD(Console, cmdKittyScreaming));
 }
 
 bool Console::cmdGlobal(int argc, const char **argv) {
@@ -46,5 +47,16 @@ bool Console::cmdGlobal(int argc, const char **argv) {
 	return true;
 }
 
+bool Console::cmdKittyScreaming(int argc, const char **argv) {
+	if (argc == 1) {
+		_G(kittyScreaming) = !_G(kittyScreaming);
+	} else {
+		_G(kittyScreaming) = !strcmp(argv[1], "on");
+	}
+
+	debugPrintf("Kitty screaming is %s\n", _G(kittyScreaming) ? "on" : "off");
+	return true;
+}
+
 } // End of namespace Riddle
 } // End of namespace M4
diff --git a/engines/m4/riddle/console.h b/engines/m4/riddle/console.h
index 4e51558e8cd..53a92e0f48c 100644
--- a/engines/m4/riddle/console.h
+++ b/engines/m4/riddle/console.h
@@ -31,6 +31,7 @@ namespace Riddle {
 class Console : public M4::Console {
 private:
 	bool cmdGlobal(int argc, const char **argv);
+	bool cmdKittyScreaming(int argc, const char **argv);
 
 public:
 	Console();
diff --git a/engines/m4/riddle/rooms/section4/room402.cpp b/engines/m4/riddle/rooms/section4/room402.cpp
index cb30abb5984..48128fefb43 100644
--- a/engines/m4/riddle/rooms/section4/room402.cpp
+++ b/engines/m4/riddle/rooms/section4/room402.cpp
@@ -119,19 +119,18 @@ void Room402::init() {
 			_val13 = 2300;
 			ws_demand_facing(11);
 
-			// The original uses a getenv("KITTY") call
-#ifdef KITTY_SCREAMING
-			ws_demand_location(425, 285);
-			player_set_commands_allowed(true);
-#else
-			digi_preload("950_s22");
-			_ripDownStairs = series_load("RIP DOWN STAIRS");
-			ws_hide_walker();
-			_ripEnterLeave = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x600, 0,
-				triggerMachineByHashCallbackNegative, "rip leaving castle");
-			sendWSMessage_10000(1, _ripEnterLeave, _ripDownStairs, 1, 27, 55,
-				_ripDownStairs, 27, 27, 0);
-#endif
+			if (_G(kittyScreaming)) {
+				ws_demand_location(425, 285);
+				player_set_commands_allowed(true);
+			} else {
+				digi_preload("950_s22");
+				_ripDownStairs = series_load("RIP DOWN STAIRS");
+				ws_hide_walker();
+				_ripEnterLeave = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x600, 0,
+					triggerMachineByHashCallbackNegative, "rip leaving castle");
+				sendWSMessage_10000(1, _ripEnterLeave, _ripDownStairs, 1, 27, 55,
+					_ripDownStairs, 27, 27, 0);
+			}
 
 		} else if (_G(flags)[V131] != 402) {
 			hotspot_set_active("TOPIARY ", true);
diff --git a/engines/m4/riddle/rooms/section4/room404.cpp b/engines/m4/riddle/rooms/section4/room404.cpp
index 8183c7fd4fd..d9f35639309 100644
--- a/engines/m4/riddle/rooms/section4/room404.cpp
+++ b/engines/m4/riddle/rooms/section4/room404.cpp
@@ -111,15 +111,10 @@ void Room404::init() {
 		ws_walk_load_walker_series(NORMAL_DIRS, NORMAL_NAMES);
 		ws_demand_location(340, 480, 2);
 
-#ifdef KITTY_SCREAMING
-		const char *KITTY = "SCREAMING";
-#else
-		const char *KITTY = "";
-#endif
 		_machine1 = triggerMachineByHash_3000(8, 10, NORMAL_DIRS, SHADOW_DIRS,
 			380, 421, 1, triggerMachineByHashCallback3000, "BUTLER_walker");
 
-		if (strcmp(KITTY, "SCREAMING") || !player_been_here(404)) {
+		if (!_G(kittyScreaming) || !player_been_here(404)) {
 			sendWSMessage_10000(_machine1, 410, 332, 1, 21, 1);
 			kernel_timing_trigger(120, 20);
 			digi_play("404_s01", 2);
diff --git a/engines/m4/riddle/rooms/section4/room405.cpp b/engines/m4/riddle/rooms/section4/room405.cpp
index 405307383b8..1008891591b 100644
--- a/engines/m4/riddle/rooms/section4/room405.cpp
+++ b/engines/m4/riddle/rooms/section4/room405.cpp
@@ -27,12 +27,26 @@ namespace M4 {
 namespace Riddle {
 namespace Rooms {
 
+void Room405::preload() {
+	_G(player).walker_type = 1;
+	_G(player).shadow_type = 1;
+	LoadWSAssets("OTHER SCRIPT");
+}
+
 void Room405::init() {
 }
 
 void Room405::daemon() {
 }
 
+void Room405::pre_parser() {
+
+}
+
+void Room405::parser() {
+
+}
+
 } // namespace Rooms
 } // namespace Riddle
 } // namespace M4
diff --git a/engines/m4/riddle/rooms/section4/room405.h b/engines/m4/riddle/rooms/section4/room405.h
index e4ddb5548c6..813432bd008 100644
--- a/engines/m4/riddle/rooms/section4/room405.h
+++ b/engines/m4/riddle/rooms/section4/room405.h
@@ -29,12 +29,31 @@ namespace Riddle {
 namespace Rooms {
 
 class Room405 : public Room {
+private:
+	int _val1 = 0;
+	int _val2 = 0;
+	int _val3 = 0;
+	int _val4 = 0;
+	int _val5 = 0;
+	int _val6 = 0;
+	int _val7 = 0;
+	int _val8 = 0;
+	int _val9 = 0;
+	int _candlesBurning = 0;
+	machine *_safariShadow = nullptr;
+	machine *_door = nullptr;
+	machine *_candles = nullptr;
+	machine *_bankNote = nullptr;
+
 public:
 	Room405() : Room() {}
 	~Room405() override {}
 
+	void preload() override;
 	void init() override;
 	void daemon() override;
+	void pre_parser() override;
+	void parser() override;
 };
 
 } // namespace Rooms
diff --git a/engines/m4/riddle/vars.h b/engines/m4/riddle/vars.h
index cd877c2a44b..2f49271be82 100644
--- a/engines/m4/riddle/vars.h
+++ b/engines/m4/riddle/vars.h
@@ -55,6 +55,7 @@ public:
 	Riddle::GUI::Interface _interface;
 	int _global301 = 0;
 	int _flag1 = 0;
+	bool _kittyScreaming = false;
 
 public:
 	Vars();


Commit: 65b3a3386b11d00900b8ebcfc0827adc73941e44
    https://github.com/scummvm/scummvm/commit/65b3a3386b11d00900b8ebcfc0827adc73941e44
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-08-16T22:49:28-07:00

Commit Message:
M4: RIDDLE: Room 405 init

Changed paths:
    engines/m4/riddle/rooms/section4/room405.cpp
    engines/m4/riddle/rooms/section4/room405.h


diff --git a/engines/m4/riddle/rooms/section4/room405.cpp b/engines/m4/riddle/rooms/section4/room405.cpp
index 1008891591b..fa9d1d08bf3 100644
--- a/engines/m4/riddle/rooms/section4/room405.cpp
+++ b/engines/m4/riddle/rooms/section4/room405.cpp
@@ -27,6 +27,19 @@ namespace M4 {
 namespace Riddle {
 namespace Rooms {
 
+static const int16 NORMAL_DIRS[] = { 220, 221, -1 };
+static const char *NORMAL_NAMES[] = {
+	"baron walker pos1",
+	"baron walker pos7"
+};
+
+static const int16 SHADOW_DIRS[] = { 230, 231, -1 };
+static const char *SHADOW_NAMES[] = {
+	"baron walker shadow pos1",
+	"baron walker shadow pos7"
+};
+
+
 void Room405::preload() {
 	_G(player).walker_type = 1;
 	_G(player).shadow_type = 1;
@@ -34,6 +47,55 @@ void Room405::preload() {
 }
 
 void Room405::init() {
+	player_set_commands_allowed(false);
+	_door = series_place_sprite("405doora", 0, 0, 0, 100, 0);
+
+	if (_G(game).previous_room != KERNEL_RESTORING_GAME) {
+		_val1 = 0;
+		_val2 = -1;
+		_val3 = 0;
+		_val4 = -1;
+		_val5 = 0;
+		_val6 = 0;
+		_val7 = 0;
+		_val8 = 0;
+		_val9 = 0;
+	}
+
+	if (!_G(flags)[V338] || !inv_object_is_here("GERMAN BANKNOTE"))
+		hotspot_set_active("GERMAN BANKNOTE", false);
+
+	_safariShadow = series_load("SAFARI SHADOW 3");
+
+	if (inv_object_is_here("GERMAN BANKNOTE"))
+		_bankNote = series_place_sprite("405 BANK NOTE UNDER RUG", 0, 0, 0, 100, 0xf00);
+
+	_candlesBurning = series_load("TWO CANDLES BURNING");
+	_candles = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0, 0,
+		triggerMachineByHashCallbackNegative, "candles");
+	sendWSMessage_10000(1, _candles, _candlesBurning, 1, 8, -1,
+		_candlesBurning, 1, 8, 0);
+
+	if (_G(game).previous_room == KERNEL_RESTORING_GAME) {
+		player_set_commands_allowed(true);
+		return;
+	}
+
+	_G(flags)[V110] = 1;
+	if (!inv_player_has("TURTLE"))
+		inv_move_object("TURTLE", 305);
+
+	ws_demand_location(155, 370, 9);
+
+	if (player_been_here(405) || _G(kittyScreaming)) {
+		ws_walk(230, 345, nullptr, 50, 2);
+	} else {
+		ws_walk_load_shadow_series(SHADOW_DIRS, SHADOW_NAMES);
+		ws_walk_load_walker_series(NORMAL_DIRS, NORMAL_NAMES);
+		_baron = triggerMachineByHash_3000(8, 11, NORMAL_DIRS, SHADOW_DIRS, 185, 365, 1,
+			triggerMachineByHashCallback3000, "BARON_walker");
+		ws_walk(329, 320, nullptr, 20, 9);
+	}
 }
 
 void Room405::daemon() {
diff --git a/engines/m4/riddle/rooms/section4/room405.h b/engines/m4/riddle/rooms/section4/room405.h
index 813432bd008..636059e3668 100644
--- a/engines/m4/riddle/rooms/section4/room405.h
+++ b/engines/m4/riddle/rooms/section4/room405.h
@@ -40,10 +40,11 @@ private:
 	int _val8 = 0;
 	int _val9 = 0;
 	int _candlesBurning = 0;
-	machine *_safariShadow = nullptr;
+	int _safariShadow = 0;
 	machine *_door = nullptr;
 	machine *_candles = nullptr;
 	machine *_bankNote = nullptr;
+	machine *_baron = nullptr;
 
 public:
 	Room405() : Room() {}




More information about the Scummvm-git-logs mailing list