[Scummvm-git-logs] scummvm master -> 5a26a3468bcc948ac6bae449bbe9c2d827948714

Strangerke noreply at scummvm.org
Tue Dec 3 22:13:55 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:
5a26a3468b M4: RIDDLE: room 705: Start work on room 705 (preload, init, pre-parser)


Commit: 5a26a3468bcc948ac6bae449bbe9c2d827948714
    https://github.com/scummvm/scummvm/commit/5a26a3468bcc948ac6bae449bbe9c2d827948714
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-12-03T23:13:26+01:00

Commit Message:
M4: RIDDLE: room 705: Start work on room 705 (preload, init, pre-parser)

Changed paths:
    engines/m4/riddle/rooms/section7/room705.cpp
    engines/m4/riddle/rooms/section7/room705.h


diff --git a/engines/m4/riddle/rooms/section7/room705.cpp b/engines/m4/riddle/rooms/section7/room705.cpp
index add327508e0..c3b469527db 100644
--- a/engines/m4/riddle/rooms/section7/room705.cpp
+++ b/engines/m4/riddle/rooms/section7/room705.cpp
@@ -21,13 +21,122 @@
 
 #include "m4/riddle/rooms/section7/room705.h"
 #include "m4/graphics/gr_series.h"
+#include "m4/gui/gui_vmng_screen.h"
 #include "m4/riddle/vars.h"
 
 namespace M4 {
 namespace Riddle {
 namespace Rooms {
 
+void Room705::preload() {
+	_G(player).walker_type = WALKER_ALT;
+	_G(player).shadow_type = SHADOW_ALT;
+	LoadWSAssets("OTHER SCRIPT", _G(master_palette));
+}
+
 void Room705::init() {
+	digi_preload("950_S40", -1);
+	digi_preload("950_S40A", -1);
+	_ripTrekMedReachPos1Series = series_load("RIP TREK MED REACH HAND POS1", -1, nullptr);
+
+	if (_G(flags[V224])) {
+		hotspot_set_active(_G(currentSceneDef).hotspots, "MONK #9", false);
+		hotspot_set_active(_G(currentSceneDef).hotspots, "MONK #10", false);
+		hotspot_set_active(_G(currentSceneDef).hotspots, "MONK #11", false);
+		hotspot_set_active(_G(currentSceneDef).hotspots, "MONK #12", false);
+		hotspot_set_active(_G(currentSceneDef).hotspots, "EMPTY NICHE", false);
+		hotspot_set_active(_G(currentSceneDef).hotspots, "EMPTY NICHE ", false);
+	}
+
+	hotspot_set_active(_G(currentSceneDef).hotspots, _G(flags[V220]) ? "EMPTY NICHE" : "PRAYER WHEEL #9", false);
+
+	switch (_G(flags[V220])) {
+	case 1:
+		_leftWheelMach = series_place_sprite("705 LEFT PEACE WHEEL", 0, 0, 0, 100, 1280);
+		break;
+
+	case 2:
+		_leftWheelMach = series_place_sprite("705 LEFT INSIGHT WHEEL", 0, 0, 0, 100, 1280);
+		break;
+
+	case 3:
+		_leftWheelMach = series_place_sprite("705 LEFT SERENITY WHEEL", 0, 0, 0, 100, 1280);
+		break;
+
+	case 4:
+		_leftWheelMach = series_place_sprite("705 LEFT TRUTH WHEEL", 0, 0, 0, 100, 1280);
+		break;
+
+	case 5:
+		_leftWheelMach = series_place_sprite("705 LEFT WISDOM WHEEL", 0, 0, 0, 100, 1280);
+		break;
+
+	default:
+		break;
+	}
+
+	hotspot_set_active(_G(currentSceneDef).hotspots, _G(flags[V221]) ? "EMPTY NICHE " : "PRAYER WHEEL #12", false);
+
+	switch (_G(flags[V221])) {
+	case 1:
+		_leftWheelMach = series_place_sprite("705 RT PEACE WHEEL", 0, 640, 0, 100, 1280);
+		break;
+
+	case 2:
+		_leftWheelMach = series_place_sprite("705 RT INSIGHT WHEEL", 0, 640, 0, 100, 1280);
+		break;
+
+	case 3:
+		_leftWheelMach = series_place_sprite("705 RT SERENITY WHEEL", 0, 640, 0, 100, 1280);
+		break;
+
+	case 4:
+		_leftWheelMach = series_place_sprite("705 RT TRUTH WHEEL", 0, 0, 640, 100, 1280);
+		break;
+
+	case 5:
+		_leftWheelMach = series_place_sprite("705 RT WISDOM WHEEL", 0, 0, 640, 100, 1280);
+		break;
+
+	default:
+		break;
+	}
+
+	switch (_G(game).previous_room) {
+	case 704:
+		player_first_walk(0, 300, 3, 130, 318, 3, true);
+		break;
+
+	case 706:
+		MoveScreenDelta(_G(game_buff_ptr), -640, 0);
+		player_first_walk(1299, 300, 9, 1170, 318, 9, true);
+		break;
+
+	case 707:
+		MoveScreenDelta(_G(game_buff_ptr), -320, 0);
+		ws_demand_location(_G(my_walker), 643, 357);
+		ws_demand_facing(_G(my_walker), 5);
+		player_set_commands_allowed(false);
+		ws_hide_walker(_G(my_walker));
+		_ripGoesDownStairsSeries = series_load("705 RIP GOES DOWN STAIRS", -1, nullptr);
+		_ripStairsMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 320, 0, 100, 0, 0, triggerMachineByHashCallback, "rip stairs machine");
+		sendWSMessage_10000(1, _ripStairsMach, _ripGoesDownStairsSeries, 4, 39, 160, _ripGoesDownStairsSeries, 39, 39, 0);
+
+		break;
+
+	default: // includes case KERNEL_RESTORE (-2)
+		digi_preload("950_s39", -1);
+		break;
+	}
+
+	digi_play_loop("950_s39", 3, 255, -1, -1;
+}
+
+void Room705::pre_parser() {
+	// Empty
+}
+
+void Room705::parser() {
 }
 
 void Room705::daemon() {
diff --git a/engines/m4/riddle/rooms/section7/room705.h b/engines/m4/riddle/rooms/section7/room705.h
index 641592cef3f..a62123e40f0 100644
--- a/engines/m4/riddle/rooms/section7/room705.h
+++ b/engines/m4/riddle/rooms/section7/room705.h
@@ -33,8 +33,19 @@ public:
 	Room705() : Room() {}
 	~Room705() override {}
 
+	void preload() override;
 	void init() override;
+	void pre_parser() override;
+	void parser() override;
 	void daemon() override;
+
+private:
+	int32 _ripGoesDownStairsSeries = 0;
+	int32 _ripTrekMedReachPos1Series = 0;
+
+	machine *_leftWheelMach = nullptr;
+	machine *_ripStairsMach = nullptr;
+
 };
 
 } // namespace Rooms




More information about the Scummvm-git-logs mailing list