[Scummvm-git-logs] scummvm master -> 57e83533601298987d64da162e3a6dd12272d5fc
dreammaster
noreply at scummvm.org
Sat Aug 17 03:13:10 UTC 2024
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
ffb0407161 M4: RIDDLE: Add missing break in room 401
cebf08aca5 M4: RIDDLE: Remainder of room 403 daemon
57e8353360 M4: RIDDLE: Added room 404 init
Commit: ffb040716143fbc6d403f008fd8530a4320692c6
https://github.com/scummvm/scummvm/commit/ffb040716143fbc6d403f008fd8530a4320692c6
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-08-16T19:36:57-07:00
Commit Message:
M4: RIDDLE: Add missing break in room 401
Changed paths:
engines/m4/riddle/rooms/section4/room401.cpp
diff --git a/engines/m4/riddle/rooms/section4/room401.cpp b/engines/m4/riddle/rooms/section4/room401.cpp
index 6231c287595..760937691e1 100644
--- a/engines/m4/riddle/rooms/section4/room401.cpp
+++ b/engines/m4/riddle/rooms/section4/room401.cpp
@@ -492,6 +492,7 @@ void Room401::daemon() {
sendWSMessage_110000(511);
_val6 = 5;
digi_play("401x10", 1, 255, 512);
+ break;
case 511:
sendWSMessage_29a0000(_rip2);
Commit: cebf08aca505548043752a8e07f7b0e64190b805
https://github.com/scummvm/scummvm/commit/cebf08aca505548043752a8e07f7b0e64190b805
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-08-16T19:36:57-07:00
Commit Message:
M4: RIDDLE: Remainder of room 403 daemon
Changed paths:
engines/m4/riddle/rooms/section4/room403.cpp
engines/m4/riddle/rooms/section4/room403.h
diff --git a/engines/m4/riddle/rooms/section4/room403.cpp b/engines/m4/riddle/rooms/section4/room403.cpp
index 3ca7ea7282b..f6b61d37a0a 100644
--- a/engines/m4/riddle/rooms/section4/room403.cpp
+++ b/engines/m4/riddle/rooms/section4/room403.cpp
@@ -1177,12 +1177,254 @@ void Room403::daemon() {
_ripTalkPay, 63, 63, 0);
break;
+ case 233:
+ sendWSMessage_10000(1, _wolfie, _wolfTurnHand, 45, 11, 237,
+ _wolfTurnHand, 11, 11, 0);
+ digi_play("402w08", 1);
+ sendWSMessage_10000(1, _ripOnLadder, _ripTalkPay, 63, 40, 235,
+ _ripTalkPay, 40, 40, 0);
+ break;
+
case 235:
sendWSMessage_10000(1, _ripOnLadder, _ripTalkPay, 10, 1, 236,
_ripTalkPay, 1, 1, 0);
break;
- // TODO
+ case 237:
+ _val8 = 2001;
+ _val9 = 2300;
+ kernel_timing_trigger(1, 110);
+ player_set_commands_allowed(true);
+ break;
+
+ case 300:
+ player_set_commands_allowed(true);
+ break;
+
+ case 305:
+ _edger = series_place_sprite("ONE FRAME EDGER", 0, 0, 0, 100, 0xf00);
+ hotspot_set_active("WOLF", false);
+ hotspot_set_active("EDGER", true);
+
+ _G(flags)[V133] = 1;
+ _G(flags)[V131] = 402;
+ terminateMachineAndNull(_ripOnLadder);
+ terminateMachineAndNull(_ripTalksWolf);
+ ws_unhide_walker();
+ terminateMachineAndNull(_wolfie);
+
+ series_unload(_wolfEdger);
+ series_unload(_wolfTurnTalk);
+ series_unload(_wolfTurnHand);
+ series_unload(_wolfTalkLeave);
+ series_unload(_ripTalkPay);
+
+ series_stream("403W08", 6, 0, 307);
+ break;
+
+ case 307:
+ midi_fade_volume(0, 120);
+ kernel_timing_trigger(120, 308);
+ break;
+
+ case 308:
+ midi_stop();
+ player_set_commands_allowed(true);
+ break;
+
+ case 310:
+ _wolfWalker = triggerMachineByHash_3000(8, 8, S4_NORMAL_DIRS, S4_SHADOW_DIRS,
+ 620, 313, 3, triggerMachineByHashCallbackNegative, "wolf_walker");
+ DisposePath(_wolfWalker->walkPath);
+ _wolfWalker->walkPath = CreateCustomPath(1067, 313, -1);
+ ws_custom_walk(_wolfWalker, 3, 312);
+ kernel_timing_trigger(480, 311);
+ break;
+
+ case 311:
+ ws_walk(1120, 328, nullptr, 314, 1);
+ break;
+
+ case 312:
+ midi_fade_volume(0, 120);
+ kernel_timing_trigger(120, 313);
+ break;
+
+ case 313:
+ case 325:
+ midi_stop();
+ break;
+
+ case 314:
+ _ripHeadTurn = series_load("RIP TREK HEAD TURN POS1");
+ setGlobals1(_ripHeadTurn, 1, 3, 3, 3, 0, 3, 1, 1, 1);
+ sendWSMessage_110000(315);
+ break;
+
+ case 315:
+ sendWSMessage_60000(_wolfWalker);
+ _wolfIndicatesTomb = series_load("WOLF INDICATES TOMB");
+ _wolfie = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x900, 0,
+ triggerMachineByHashCallbackNegative, "WOLFIE");
+ sendWSMessage_10000(1, _wolfie, _wolfIndicatesTomb, 1, 93, -1,
+ _wolfIndicatesTomb, 93, 93, 0);
+ digi_play("403w01", 1, 255, 316);
+ break;
+
+ case 316:
+ sendWSMessage_120000(-1);
+ digi_play("403r01", 1, 255, 317);
+ break;
+
+ case 317:
+ sendWSMessage_10000(1, _wolfie, _wolfIndicatesTomb, 94, 96, -1,
+ _wolfIndicatesTomb, 94, 96, 1);
+ digi_play("403w02", 1, 255, 318);
+ break;
+
+ case 318:
+ digi_play("403r02", 1, 255, 319);
+ break;
+
+ case 319:
+ sendWSMessage_10000(1, _wolfie, _wolfIndicatesTomb, 94, 96, -1,
+ _wolfIndicatesTomb, 94, 96, 1);
+ digi_play("403w03", 1, 255, 320);
+ break;
+
+ case 320:
+ sendWSMessage_10000(1, _wolfie, _wolfIndicatesTomb, 93, 93, -1,
+ _wolfIndicatesTomb, 93, 93, 1);
+ digi_play("403r03", 1, 255, 321);
+ break;
+
+ case 321:
+ digi_preload("403w04");
+ _wolfJustSo = series_stream("403 WOLF JUST SO", 5, 0, 322);
+ series_stream_break_on_frame(_wolfJustSo, 8, 323);
+ break;
+
+ case 322:
+ midi_play("DANZIG1", 255, 1, -1, 949);
+ sendWSMessage_120000(-1);
+ terminateMachineAndNull(_wolfie);
+
+ _wolfWalker = triggerMachineByHash_3000(8, 8, S4_NORMAL_DIRS, S4_SHADOW_DIRS,
+ 1067, 313, 3, triggerMachineByHashCallback3000, "wolf_walker");
+ sendWSMessage_10000(_wolfWalker, 620, 313, 3, 324, 0);
+ break;
+
+ case 323:
+ digi_play("403w04", 1);
+ break;
+
+ case 324:
+ midi_fade_volume(0, 120);
+ kernel_timing_trigger(120, 325);
+ sendWSMessage_60000(_wolfWalker);
+ sendWSMessage_150000(-1);
+ _G(camera_reacts_to_player) = 1;
+ player_set_commands_allowed(true);
+ break;
+
+ case 350:
+ digi_play("403r29", 1, 255, 2400);
+ break;
+
+ case 400:
+ _series1 = series_load("RIP TREK MED REACH HAND POS1");
+ setGlobals1(_series1, 1, 10, 10, 10, 0, 10, 1, 1, 1);
+ sendWSMessage_110000(402);
+ break;
+
+ case 402:
+ _ladder = series_place_sprite("LADDER LEANS AGAINST WALL", 0, 0, 0, 100, 0xf00);
+ inv_move_object("STEP LADDER", 403);
+ hotspot_set_active("STEP LADDER ", true);
+ sendWSMessage_120000(403);
+ break;
+
+ case 403:
+ sendWSMessage_150000(404);
+ break;
+
+ case 404:
+ series_unload(_series1);
+ player_set_commands_allowed(true);
+ break;
+
+ case 420:
+ _ripMedReach = series_load("RIP MED REACH 1HAND POS2");
+ setGlobals1(_ripMedReach, 1, 17, 17, 17, 0, 17, 1, 1, 1);
+ sendWSMessage_110000(422);
+ break;
+
+ case 422:
+ _edger = series_place_sprite("ONE FRAME EDGER", 0, 0, 0, 100, 0xf00);
+ hotspot_set_active("EDGER", true);
+ inv_move_object("EDGER", 403);
+ sendWSMessage_120000(423);
+ break;
+
+ case 423:
+ sendWSMessage_150000(424);
+ break;
+
+ case 424:
+ series_unload(_ripMedReach);
+ player_set_commands_allowed(true);
+ break;
+
+ case 440:
+ player_set_commands_allowed(false);
+ _G(flags)[V125] = 3;
+ _turtlePopup = series_load("403 turtle popup");
+ _wolfJustSo = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x100, 0,
+ triggerMachineByHashCallbackNegative, "Turtle POPUP");
+ sendWSMessage_10000(1, _wolfJustSo, _turtlePopup, 1, 46, -1,
+ _turtlePopup, 46, 46, 0);
+ midi_play("turtle", 255, 1, -1, 949);
+ _val6 = 1020;
+ _val7 = 1330;
+ kernel_timing_trigger(1, 102);
+ break;
+
+ case 442:
+ _ripPutBoard = series_load("RIPLEY PUTS BOARD ON POTS");
+ terminateMachineAndNull(_board);
+ ws_hide_walker();
+
+ _ripOnLadder = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x300, 0,
+ triggerMachineByHashCallbackNegative, "RIP plants plank");
+ sendWSMessage_10000(1, _ripOnLadder, _ripPutBoard, 57, 1, 443,
+ _ripPutBoard, 1, 1, 0);
+ break;
+
+ case 443:
+ hotspot_set_active("PLANK", false);
+ inv_give_to_player("PLANK");
+ terminateMachineAndNull(_ripOnLadder);
+ ws_unhide_walker();
+ series_unload(_ripPutBoard);
+
+ ws_walk(620, 326, nullptr, 1);
+ kernel_timing_trigger(60, 444);
+ break;
+
+ case 444:
+ disable_player_commands_and_fade_init(445);
+ break;
+
+ case 445:
+ digi_stop(3);
+ _G(game).setRoom(408);
+ break;
+
+ case 2400:
+ digi_stop(1);
+ digi_unload("403R29");
+ break;
+
default:
break;
}
diff --git a/engines/m4/riddle/rooms/section4/room403.h b/engines/m4/riddle/rooms/section4/room403.h
index 835f93a75f9..e42e471549e 100644
--- a/engines/m4/riddle/rooms/section4/room403.h
+++ b/engines/m4/riddle/rooms/section4/room403.h
@@ -74,6 +74,8 @@ private:
machine *_ripTalksWolf = nullptr;
int _ripPlankEdger = 0;
machine *_wolfJustSo = nullptr;
+ int _wolfIndicatesTomb = 0;
+ int _turtlePopup = 0;
void conv403a();
void conv403a1();
Commit: 57e83533601298987d64da162e3a6dd12272d5fc
https://github.com/scummvm/scummvm/commit/57e83533601298987d64da162e3a6dd12272d5fc
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-08-16T20:13:00-07:00
Commit Message:
M4: RIDDLE: Added room 404 init
Changed paths:
engines/m4/riddle/rooms/section4/room404.cpp
engines/m4/riddle/rooms/section4/room404.h
diff --git a/engines/m4/riddle/rooms/section4/room404.cpp b/engines/m4/riddle/rooms/section4/room404.cpp
index 4577ff34050..4b41f946e78 100644
--- a/engines/m4/riddle/rooms/section4/room404.cpp
+++ b/engines/m4/riddle/rooms/section4/room404.cpp
@@ -27,10 +27,107 @@ namespace M4 {
namespace Riddle {
namespace Rooms {
+static const int16 NORMAL_DIRS[] = { 200, 201, -1 };
+static const char *NORMAL_NAMES[] = {
+ "butler walker pos1",
+ "butler walker pos3"
+};
+
+static const int16 SHADOW_DIRS[] = { 200, 201, -1 };
+static const char *SHADOW_NAMES[] = {
+ "butler walker shadow pos1",
+ "wolf walker shadow pos3"
+};
+
+void Room404::preload() {
+ _G(player).walker_type = 1;
+ _G(player).shadow_type = 1;
+ LoadWSAssets("OTHER SCRIPT");
+}
+
void Room404::init() {
+ _door = series_place_sprite("404DOORA", 0, 0, 0, 100, 0xf00);
+
+ if (_G(game).previous_room != KERNEL_RESTORING_GAME) {
+ player_set_commands_allowed(false);
+ _val1 = 0;
+ _val2 = -1;
+ _val3 = 0;
+ _val4 = -1;
+ _val5 = 0;
+ _val6 = 0;
+ _val7 = 0;
+ _val8 = 0;
+ }
+
+ _safariShadow = series_load("SAFARI SHADOW 3");
+ _butlerTurns7 = series_load("Butler turns to pos7");
+ _butlerTurns9 = series_load("Butler turns to pos9");
+ _butlerTalkLoop = series_load("Butler talk loop");
+ _val7 = 2000;
+ _val8 = 2100;
+
+ switch (_G(game).previous_room) {
+ case KERNEL_RESTORING_GAME:
+ _butlerTalks = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 0x900, 0,
+ triggerMachineByHashCallbackNegative, "BUTLER talks rip");
+ sendWSMessage_10000(1, _butlerTalks, _butlerTalkLoop, 1, 1, -1,
+ _butlerTalkLoop, 1, 1, 0);
+ player_set_commands_allowed(true);
+ break;
+
+ case 405:
+ _butlerTalks = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 0x900, 0,
+ triggerMachineByHashCallbackNegative, "BUTLER talks rip");
+ sendWSMessage_10000(1, _butlerTalks, _butlerTalkLoop, 1, 1, -1,
+ _butlerTalkLoop, 1, 1, 0);
+ ws_demand_location(58, 347, 3);
+ ws_walk(90, 347, nullptr, 50, 3);
+ break;
+
+ case 406:
+ _butlerTalks = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 0x900, 0,
+ triggerMachineByHashCallbackNegative, "BUTLER talks rip");
+ sendWSMessage_10000(1, _butlerTalks, _butlerTalkLoop, 1, 1, -1,
+ _butlerTalkLoop, 1, 1, 0);
+ ws_demand_location(174, 268, 3);
+ ws_walk(250, 285, nullptr,
+ inv_player_has("BILLIARD BALL") ? 70 : 60,
+ 3, 1);
+ break;
+
+ default:
+ ws_walk_load_shadow_series(SHADOW_DIRS, SHADOW_NAMES);
+ 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 = nullptr;
+#endif
+ _machine1 = triggerMachineByHash_3000(8, 10, NORMAL_DIRS, SHADOW_DIRS,
+ 380, 421, 1, triggerMachineByHashCallback3000, "BUTLER_walker");
+
+ if (strcmp(KITTY, "SCREAMING") || !player_been_here(404)) {
+ sendWSMessage_10000(_machine1, 410, 332, 1, 21, 1);
+ kernel_timing_trigger(120, 20);
+ digi_play("404_s01", 2);
+ }
+ break;
+ }
}
void Room404::daemon() {
+ // TODO
+}
+
+void Room404::pre_parser() {
+ // TODO
+}
+
+void Room404::parser() {
+ // TODO
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section4/room404.h b/engines/m4/riddle/rooms/section4/room404.h
index 12969f8a90b..a8d9e3e0eeb 100644
--- a/engines/m4/riddle/rooms/section4/room404.h
+++ b/engines/m4/riddle/rooms/section4/room404.h
@@ -29,12 +29,32 @@ namespace Riddle {
namespace Rooms {
class Room404 : 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 _safariShadow = 0;
+ int _butlerTurns7 = 0;
+ int _butlerTurns9 = 0;
+ int _butlerTalkLoop = 0;
+ machine *_door = nullptr;
+ machine *_butlerTalks = nullptr;
+ machine *_machine1 = nullptr;
+
public:
Room404() : Room() {}
~Room404() override {}
+ void preload() override;
void init() override;
void daemon() override;
+ void pre_parser() override;
+ void parser() override;
};
} // namespace Rooms
More information about the Scummvm-git-logs
mailing list