[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