[Scummvm-git-logs] scummvm master -> 8d23105ad1fff690931b7eb9c68702684f3e7cab
Strangerke
noreply at scummvm.org
Sun Oct 6 05:18:01 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:
8d23105ad1 M4: RIDDLE: Implement room 918
Commit: 8d23105ad1fff690931b7eb9c68702684f3e7cab
https://github.com/scummvm/scummvm/commit/8d23105ad1fff690931b7eb9c68702684f3e7cab
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-10-06T07:15:07+02:00
Commit Message:
M4: RIDDLE: Implement room 918
Changed paths:
engines/m4/riddle/rooms/section9/room918.cpp
engines/m4/riddle/rooms/section9/room918.h
diff --git a/engines/m4/riddle/rooms/section9/room918.cpp b/engines/m4/riddle/rooms/section9/room918.cpp
index 0be4f577d09..b94307cfef1 100644
--- a/engines/m4/riddle/rooms/section9/room918.cpp
+++ b/engines/m4/riddle/rooms/section9/room918.cpp
@@ -28,13 +28,217 @@ namespace Riddle {
namespace Rooms {
void Room918::preload() {
+ _G(player).walker_type = WALKER_ALT;
+ _G(player).shadow_type = SHADOW_ALT;
_G(player).walker_in_this_scene = false;
}
void Room918::init() {
+ player_set_commands_allowed(false);
+ digi_preload("908m06", 908);
+ digi_preload("908R04", 908);
+ digi_preload("908m07", 908);
+ digi_preload("908r05", 908);
+ digi_preload("908r05a", 908);
+ digi_preload("908m07z", 908);
+ digi_preload("908m08", 908);
+ digi_preload("908m08a", 908);
+ digi_preload("908r06", 908);
+ digi_preload("908m09", 908);
+ digi_preload("908m09a", 908);
+ digi_preload("908m09b", 908);
+ digi_preload("908r07", 908);
+ digi_preload("908r07a", 908);
+ digi_preload("908r07b", 908);
+ digi_preload("908r07c", 908);
+ digi_preload("908m10", 908);
+ digi_preload("908m10a", 908);
+ digi_preload("908m10b", 908);
+ digi_preload("950_s48e", 950);
+ digi_preload("950_s48f", 950);
+ digi_preload("950_s48a", 950);
+ digi_preload("950_s50", 950);
+ digi_preload("950_s47", 950);
+ interface_hide();
+ _G(kernel).call_daemon_every_loop = true;
+ digi_play_loop("950_s47", 3, 70, -1, 950);
+ _roomStates_field4 = series_stream("918all", 5, 256, 10);
+ series_stream_break_on_frame(_roomStates_field4, 3, 1);
}
void Room918::daemon() {
+ switch (_G(kernel).trigger) {
+
+ case 1:
+ series_stream_break_on_frame(_roomStates_field4, 35, 30);
+ digi_play("908m06", 2, 255, -1, 908);
+ break;
+
+ case 30:
+ series_stream_break_on_frame(_roomStates_field4, 64, 40);
+ series_stream_check_series(_roomStates_field4, 6);
+ digi_play("908R04", 1, 255, -1, 908);
+ break;
+
+ case 40:
+ series_stream_break_on_frame(_roomStates_field4, 103, 50);
+ series_stream_check_series(_roomStates_field4, 5);
+ digi_play("908m07", 1, 255, -1, 908);
+ break;
+
+ case 50:
+ series_stream_break_on_frame(_roomStates_field4, 121, 60);
+ series_stream_check_series(_roomStates_field4, 5);
+ digi_play("908r05", 1, 255, -1, 908);
+ break;
+
+ case 60:
+ series_stream_break_on_frame(_roomStates_field4, 133, 70);
+ series_stream_check_series(_roomStates_field4, 5);
+ digi_play("908r05a", 1, 255, -1, 908);
+ break;
+
+ case 70:
+ series_stream_break_on_frame(_roomStates_field4, 144, 75);
+ digi_play("908m07z", 2, 255, -1, 908);
+ break;
+
+ case 75:
+ series_stream_break_on_frame(_roomStates_field4, 174, 80);
+ digi_play("908m08", 2, 255, -1, 908);
+ break;
+
+ case 80:
+ series_stream_check_series(_roomStates_field4, 5);
+ series_stream_break_on_frame(_roomStates_field4, 210, 90);
+ digi_play("908m08a", 2, 255, -1, 908);
+ break;
+
+ case 90:
+ series_stream_break_on_frame(_roomStates_field4, 245, 100);
+ series_stream_check_series(_roomStates_field4, 6);
+ digi_play("908r06", 1, 255, -1, 908);
+ break;
+
+ case 100:
+ series_stream_break_on_frame(_roomStates_field4, 271, 102);
+ series_stream_check_series(_roomStates_field4, 5);
+ digi_play("908m09", 2, 255, -1, 908);
+ break;
+
+ case 102:
+ series_stream_break_on_frame(_roomStates_field4, 291, 104);
+ series_stream_check_series(_roomStates_field4, 5);
+ digi_play("908m09a", 2, 255, -1, 908);
+ break;
+
+ case 104:
+ series_stream_break_on_frame(_roomStates_field4, 326, 110);
+ series_stream_check_series(_roomStates_field4, 5);
+ digi_play("908m09b", 2, 255, -1, 908);
+ break;
+
+ case 110:
+ series_stream_break_on_frame(_roomStates_field4, 333, 112);
+ series_stream_check_series(_roomStates_field4, 6);
+ digi_play("908r07", 1, 255, -1, 908);
+ break;
+
+ case 112:
+ series_stream_break_on_frame(_roomStates_field4, 339, 114);
+ series_stream_check_series(_roomStates_field4, 6);
+ digi_play("908r07a", 1, 255, -1, 908);
+ break;
+
+ case 114:
+ series_stream_break_on_frame(_roomStates_field4, 354, 116);
+ series_stream_check_series(_roomStates_field4, 6);
+ digi_play("908r07b", 1, 255, -1, 908);
+ break;
+
+ case 116:
+ series_stream_break_on_frame(_roomStates_field4, 382, 120);
+ series_stream_check_series(_roomStates_field4, 6);
+ digi_play("908r07c", 1, 255, -1, 908);
+ break;
+
+ case 120:
+ series_stream_break_on_frame(_roomStates_field4, 390, 122);
+ series_stream_check_series(_roomStates_field4, 5);
+ digi_play("908m10", 2, 255, -1, 908);
+ break;
+
+ case 122:
+ series_stream_break_on_frame(_roomStates_field4, 435, 130);
+ series_stream_check_series(_roomStates_field4, 5);
+ digi_play("908m10a", 2, 255, -1, 908);
+ break;
+
+ case 130:
+ digi_play("908m10b", 2, 255, -1, 908);
+ series_stream_break_on_frame(_roomStates_field4, 470, 290);
+ break;
+
+ case 200:
+ digi_stop(2);
+ break;
+
+ case 290:
+ digi_play("950_s48e", 1, 255, -1, -1);
+ series_stream_break_on_frame(_roomStates_field4, 480, 300);
+ break;
+
+ case 300:
+ series_stream_check_series(_roomStates_field4, 7);
+ series_stream_break_on_frame(_roomStates_field4, 486, 320);
+ digi_play("950_s48f", 2, 255, 310, -1);
+ break;
+
+ case 310:
+ digi_play("950_s48a", 1, 255, 325, -1);
+ digi_stop(3);
+ digi_play("950_s50", 3, 180, -1, -1);
+ break;
+
+ case 320:
+ disable_player_commands_and_fade_init(true);
+ break;
+ case 325:
+ digi_play("908f01", 1, 255, 340, 908);
+ break;
+
+ case 340:
+ adv_kill_digi_between_rooms(false);
+ digi_stop(1);
+ digi_stop(2);
+ digi_unload("908m06");
+ digi_unload("908R04");
+ digi_unload("908m07");
+ digi_unload("908r05");
+ digi_unload("908r05a");
+ digi_unload("908m07z");
+ digi_unload("908m08");
+ digi_unload("908m08a");
+ digi_unload("908r06");
+ digi_unload("908m09");
+ digi_unload("908m09a");
+ digi_unload("908m09b");
+ digi_unload("908r07");
+ digi_unload("908r07a");
+ digi_unload("908r07b");
+ digi_unload("908r07c");
+ digi_unload("908m10");
+ digi_unload("908m10a");
+ digi_unload("908m10b");
+ digi_unload("950_s48e");
+ digi_unload("950_s48f");
+ digi_unload("950_s48a");
+ digi_unload("950_s47");
+ _G(game).new_room = 917;
+ break;
+ default:
+ break;
+ }
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section9/room918.h b/engines/m4/riddle/rooms/section9/room918.h
index 4ab02e14391..00332ed650e 100644
--- a/engines/m4/riddle/rooms/section9/room918.h
+++ b/engines/m4/riddle/rooms/section9/room918.h
@@ -23,6 +23,7 @@
#define M4_RIDDLE_ROOMS_SECTION9_ROOM918_H
#include "m4/core/rooms.h"
+#include "m4/wscript/ws_machine.h"
namespace M4 {
namespace Riddle {
@@ -36,6 +37,9 @@ public:
void preload() override;
void init() override;
void daemon() override;
+
+private:
+ machine * _roomStates_field4 = nullptr;
};
} // namespace Rooms
More information about the Scummvm-git-logs
mailing list