[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