[Scummvm-git-logs] scummvm master -> 4f8d27da0b3a285283bc64b8fce8473f3a0d7af6

Strangerke noreply at scummvm.org
Wed Dec 25 22:53:44 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:
4f8d27da0b M4: RIDDLE: Room 710: Start implementing logic (preload, init)


Commit: 4f8d27da0b3a285283bc64b8fce8473f3a0d7af6
    https://github.com/scummvm/scummvm/commit/4f8d27da0b3a285283bc64b8fce8473f3a0d7af6
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-12-25T23:48:34+01:00

Commit Message:
M4: RIDDLE: Room 710: Start implementing logic (preload, init)

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


diff --git a/engines/m4/riddle/rooms/section7/room710.cpp b/engines/m4/riddle/rooms/section7/room710.cpp
index 0bc1d2bbd6b..c6aeb26cf2b 100644
--- a/engines/m4/riddle/rooms/section7/room710.cpp
+++ b/engines/m4/riddle/rooms/section7/room710.cpp
@@ -27,10 +27,119 @@ namespace M4 {
 namespace Riddle {
 namespace Rooms {
 
+void Room710::preload() {
+	_G(player).walker_type = WALKER_ALT;
+	_G(player).shadow_type = SHADOW_ALT;
+	LoadWSAssets("OTHER SCRIPT", _G(master_palette));
+}
+
 void Room710::init() {
+	_710Rpld2Series = series_load("710RPLD2", -1, nullptr);
+	_710Rpld3Series = series_load("710RPLD3", -1, nullptr);
+	_ripPullsRopeForLaderSeries = series_load("RIP PULLS ROPE FOR LADER", -1, nullptr);
+	_laderComesDownSeries = series_load("LADER COMES DOWN", -1, nullptr);
+	_ripTrekMedReachHandPos1Series = series_load("RIP TREK MED REACH HAND POS1", -1, nullptr);
+	_710Rpro1Series = series_load("710RPRO1", -1, nullptr);
+	_710Rpro2Series = series_load("710RPRO2", -1, nullptr);
+	_710Rpro3Series = series_load("710RPRO3", -1, nullptr);
+	_710Rpro4Series = series_load("710RPRO4", -1, nullptr);
+	_mazeCentreDoorLiteSeries = series_load("MAZE CENTRE DOOR LITE", -1, nullptr);
+
+	digi_preload("710_s02", -1);
+	digi_preload("710_s01", -1);
+
+	_field4C = 0;
+
+	_ripContraptionMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 256, false, triggerMachineByHashCallback, "rip contraption machine");
+	_ripReacherMach = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, -53, 100, 1792, false, triggerMachineByHashCallback, "rip reacher machine");
+	_710Rprs3Mach = series_place_sprite("710RPRS3", 0, 0, -53, 100, 2565);
+	_710Rprs2Mach = series_place_sprite("710RPRS2", 0, 0, -53, 100, 2053);
+	_710Rprs1Mach = series_place_sprite("710RPRS1", 0, 0, -53, 100, 517);
+	_710Rprs4Mach = series_place_sprite("710RPRS4", 0, 0, -53, 100, 1029);
+
+	switch (_G(game).previous_room) {
+	case KERNEL_RESTORING_GAME:
+		digi_preload("950_s41", -1);
+		if (_G(flags[V223])) {
+			_field1C = 1;
+			_710Rpld4Mach = series_place_sprite("710rpld4", 0, 0, -53, 100, 1541);
+			_710Rpld5Mach = series_place_sprite("710rpld5", 0, 0, -53, 100, 3840);
+		} else {
+			_field1C = 0;
+			_710Rpld4Mach = series_place_sprite("710rpld3", 0, 0, -53, 100, 3840);
+			_710Rpld5Mach = series_place_sprite("710rpld5", 0, 0, -53, 100, 3840);
+			hotspot_set_active(_G(currentSceneDef).hotspots, "Ladder", false);
+		}
+		break;
+
+	case 709:
+		ws_demand_location(_G(my_walker), 320, 282);
+		ws_demand_facing(_G(my_walker), 5);
+
+		if (_G(flags[V223])) {
+			_field1C = 1;
+			_710Rpld4Mach = series_place_sprite("710rpld4", 0, 0, -53, 100, 1541);
+			_710Rpld5Mach = series_place_sprite("710rpld5", 0, 0, -53, 100, 3840);
+		} else {
+			_field1C = 0;
+			hotspot_set_active(_G(currentSceneDef).hotspots, "Ladder", false);
+			_710Rpld4Mach = series_place_sprite("710rpld3", 0, 0, -53, 100, 3840);
+			_710Rpld5Mach = series_place_sprite("710rpld5", 0, 0, -53, 100, 3840);
+		}
+
+		break;
+
+	case 711:
+		digi_preload("950_s41", -1);
+		ws_demand_location(_G(my_walker), 320, 308);
+		ws_demand_facing(_G(my_walker), 1);
+		ws_hide_walker(_G(my_walker));
+		player_set_commands_allowed(false);
+
+		_710Rpld4Mach = series_place_sprite("710rpld4", 0, 0, -53, 100, 1541);
+		_710Rpld5Mach = series_place_sprite("710rpld5", 0, 0, -53, 100, 4095);
+
+		_field1C = 1;
+		hotspot_set_active(_G(currentSceneDef).hotspots, "Ladder", true);
+		sendWSMessage_10000(1, _ripContraptionMach, _710Rpld2Series, 86, 83, 30, _710Rpld2Series, 83, 83, 0);
+
+		break;
+
+	default:
+		digi_preload("950_s41", -1);
+		ws_demand_location(_G(my_walker), 282, 282);
+		ws_demand_facing(_G(my_walker), 4);
+
+		if (_G(flags[V223])) {
+			_field1C = 1;
+			_710Rpld4Mach = series_place_sprite("710rpld4", 0, 0, -53, 100, 1541);
+			_710Rpld5Mach = series_place_sprite("710rpld5", 0, 0, -53, 100, 4095);
+		} else {
+			_field1C = 0;
+			_710Rpld4Mach = series_place_sprite("710rpld3", 0, 0, -53, 100, 3840);
+			_710Rpld5Mach = series_place_sprite("710rpld5", 0, 0, -53, 100, 4095);
+			hotspot_set_active(_G(currentSceneDef).hotspots, "Ladder", false);
+		}
+
+		break;
+	}
+
+	if (player_been_here(710))
+		midi_play("drama1", 127, 0, -1, 949);
+
+	digi_play_loop("950_s41", 3, 255, -1, -1);
+}
+
+void Room710::pre_parser() {
+	// No implementation
+}
+
+void Room710::parser() {
+	// TODO Not implemented yet
 }
 
 void Room710::daemon() {
+	// TODO Not Implemented yet
 }
 
 } // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section7/room710.h b/engines/m4/riddle/rooms/section7/room710.h
index f8458e2f48d..95cf5417719 100644
--- a/engines/m4/riddle/rooms/section7/room710.h
+++ b/engines/m4/riddle/rooms/section7/room710.h
@@ -33,8 +33,35 @@ public:
 	Room710() : Room() {}
 	~Room710() override {}
 
+	void preload() override;
 	void init() override;
+	void pre_parser() override;
+	void parser() override;
 	void daemon() override;
+
+private:
+	int32 _field1C = 0;
+	int32 _field4C = 0;
+
+	int32 _710Rpld2Series = 0;
+	int32 _710Rpld3Series = 0;
+	int32 _710Rpro1Series = 0;
+	int32 _710Rpro2Series = 0;
+	int32 _710Rpro3Series = 0;
+	int32 _710Rpro4Series = 0;
+	int32 _laderComesDownSeries = 0;
+	int32 _mazeCentreDoorLiteSeries = 0;
+	int32 _ripPullsRopeForLaderSeries = 0;
+	int32 _ripTrekMedReachHandPos1Series = 0;
+
+	machine *_ripContraptionMach = nullptr;
+	machine *_ripReacherMach = nullptr;
+	machine *_710Rpld4Mach = nullptr;
+	machine *_710Rpld5Mach = nullptr;
+	machine *_710Rprs1Mach = nullptr;
+	machine *_710Rprs2Mach = nullptr;
+	machine *_710Rprs3Mach = nullptr;
+	machine *_710Rprs4Mach = nullptr;
 };
 
 } // namespace Rooms




More information about the Scummvm-git-logs mailing list