[Scummvm-git-logs] scummvm master -> c570c33e944a653928e5a239c2bc5b00746d3d25

Strangerke noreply at scummvm.org
Sun Dec 1 09:57:33 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:
c570c33e94 M4: RIDDLE: room 704: Start working on room (preload, init, pre_parser, callback)


Commit: c570c33e944a653928e5a239c2bc5b00746d3d25
    https://github.com/scummvm/scummvm/commit/c570c33e944a653928e5a239c2bc5b00746d3d25
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-12-01T10:57:19+01:00

Commit Message:
M4: RIDDLE: room 704: Start working on room (preload, init, pre_parser, callback)

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


diff --git a/engines/m4/riddle/rooms/section7/room704.cpp b/engines/m4/riddle/rooms/section7/room704.cpp
index a674c6eab8d..255201bb6d5 100644
--- a/engines/m4/riddle/rooms/section7/room704.cpp
+++ b/engines/m4/riddle/rooms/section7/room704.cpp
@@ -21,18 +21,116 @@
 
 #include "m4/riddle/rooms/section7/room704.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 Room704::preload() {
+	_G(player).walker_type = WALKER_ALT;
+	_G(player).shadow_type = SHADOW_ALT;
+	LoadWSAssets("OTHER SCRIPT", _G(master_palette));
+}
+
 void Room704::init() {
+	digi_preload("950_S40", -1);
+	digi_preload("950_S40A", -1);
+	_ripTrekMedReachHandPos1Series = series_load("RIP TREK MED REACH HAND POS1", -1, nullptr);
+
+	if (_G(flags[V224])) {
+		hotspot_set_active(_G(currentSceneDef).hotspots, "MONK #5", false);
+		hotspot_set_active(_G(currentSceneDef).hotspots, "MONK #6", false);
+		hotspot_set_active(_G(currentSceneDef).hotspots, "MONK #7", false);
+		hotspot_set_active(_G(currentSceneDef).hotspots, "MONK #8", false);
+		hotspot_set_active(_G(currentSceneDef).hotspots, "EMPTY NICHE", false);
+	}
+
+	hotspot_set_active(_G(currentSceneDef).hotspots, _G(flags[V218]) ? "EMPTY NICHE" : "PRAYER WHEEL #6", false);
+
+	switch (_G(flags[V218])) {
+	case 1:
+		_prayerWheelMach = series_place_sprite("704 PEACE PRAYER WHEEL", 0, 0, 0, 100, 1280);
+		break;
+
+	case 2:
+		_prayerWheelMach = series_place_sprite("704 INSIGHT PRAYER WHEEL", 0, 0, 0, 100, 1280);
+		break;
+
+	case 3:
+		_prayerWheelMach = series_place_sprite("704 SERENITY PRAYER WHEEL", 0, 0, 0, 100, 1280);
+		break;
+
+	case 4:
+		_prayerWheelMach = series_place_sprite("704 TRUTH PRAYER WHEEL", 0, 0, 0, 100, 1280);
+		break;
+
+	case 5:
+		_prayerWheelMach = series_place_sprite("704 WISDOM PRAYER WHEEL", 0, 0, 0, 100, 1280);
+		break;
+
+	default:
+		break;
+	}
+
+	switch (_G(game).previous_room) {
+	case KERNEL_RESTORING_GAME:
+		// Same as default?
+		digi_preload("950_s39", -1);
+		break;
+
+	case 703:
+		player_first_walk(0, 300, 3, 130, 318, 3, true);
+		break;
+
+	case 705:
+		MoveScreenDelta(_G(game_buff_ptr), -640, 0);
+		ws_demand_location(_G(my_walker), 1299, 300);
+		ws_demand_facing(_G(my_walker), 9);
+		ws_walk(_G(my_walker), 1170, 318, nullptr, -1, 0, true);
+
+		break;
+
+	case 707:
+		MoveScreenDelta(_G(game_buff_ptr), -320, 0);
+		ws_demand_location(_G(my_walker), 645, 356);
+		ws_demand_facing(_G(my_walker), 5);
+		_ripGoesDownStairsSeries = series_load("704 RIP GOES DOWN STAIRS", -1, nullptr);
+		player_set_commands_allowed(false);
+		ws_hide_walker(_G(my_walker));
+		_ripStairsMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 320, 0, 100, 0, 0, callback, "rip stairs machine");
+		sendWSMessage_10000(1, _ripStairsMach, _ripGoesDownStairsSeries, 4, 39, 140, _ripGoesDownStairsSeries, 39, 39, 0);
+
+		break;
+
+	default:
+		digi_preload("950_s39", -1);
+		break;
+	}
+
+	digi_play_loop("950_s39", 3, 255, -1, -1);
+}
+
+void Room704::pre_parser() {
+	// No implementation
+}
+
+void Room704::parser() {
+	// TODO
 }
 
 void Room704::daemon() {
+	// TODO
+}
+
+
+void Room704::callback(frac16 myMessage, machine *sender) {
+	kernel_trigger_dispatchx(myMessage);
 }
 
+
+
 } // namespace Rooms
 } // namespace Riddle
 } // namespace M4
diff --git a/engines/m4/riddle/rooms/section7/room704.h b/engines/m4/riddle/rooms/section7/room704.h
index 223e467a2f6..3671a0cf8e5 100644
--- a/engines/m4/riddle/rooms/section7/room704.h
+++ b/engines/m4/riddle/rooms/section7/room704.h
@@ -33,8 +33,20 @@ public:
 	Room704() : Room() {}
 	~Room704() override {}
 
+	void preload() override;
 	void init() override;
+	void pre_parser() override;
+	void parser() override;
 	void daemon() override;
+
+private:
+	static void callback(frac16 myMessage, machine *sender);
+
+	int32 _ripGoesDownStairsSeries = 0;
+	int32 _ripTrekMedReachHandPos1Series = 0;
+
+	machine *_prayerWheelMach = nullptr;
+	machine *_ripStairsMach = nullptr;
 };
 
 } // namespace Rooms




More information about the Scummvm-git-logs mailing list