[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