[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