[Scummvm-git-logs] scummvm master -> 2ea22f71f37d2c59b9ce7f899ca3045599eb5361
Strangerke
noreply at scummvm.org
Sat Oct 5 00:32:27 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:
2ea22f71f3 M4: RIDDLE: Implement room 906
Commit: 2ea22f71f37d2c59b9ce7f899ca3045599eb5361
https://github.com/scummvm/scummvm/commit/2ea22f71f37d2c59b9ce7f899ca3045599eb5361
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-10-05T02:32:17+02:00
Commit Message:
M4: RIDDLE: Implement room 906
Changed paths:
A engines/m4/riddle/rooms/section9/room906.cpp
A engines/m4/riddle/rooms/section9/room906.h
engines/m4/module.mk
engines/m4/riddle/rooms/section9/section9.cpp
engines/m4/riddle/rooms/section9/section9.h
diff --git a/engines/m4/module.mk b/engines/m4/module.mk
index 679096fbd89..070b4700886 100644
--- a/engines/m4/module.mk
+++ b/engines/m4/module.mk
@@ -300,6 +300,7 @@ MODULE_OBJS = \
riddle/rooms/section9/room902.o \
riddle/rooms/section9/room903.o \
riddle/rooms/section9/room905.o \
+ riddle/rooms/section9/room906.o \
riddle/rooms/section9/room907.o \
riddle/rooms/section9/room908.o \
riddle/rooms/section9/room917.o \
diff --git a/engines/m4/riddle/rooms/section9/room906.cpp b/engines/m4/riddle/rooms/section9/room906.cpp
new file mode 100644
index 00000000000..1a3cadc759c
--- /dev/null
+++ b/engines/m4/riddle/rooms/section9/room906.cpp
@@ -0,0 +1,109 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/ },.
+ *
+ */
+
+#include "m4/riddle/rooms/section9/room906.h"
+#include "m4/graphics/gr_series.h"
+#include "m4/gui/gui_sys.h"
+#include "m4/platform/keys.h"
+#include "m4/riddle/vars.h"
+
+namespace M4 {
+namespace Riddle {
+namespace Rooms {
+
+void Room906::preload() {
+ _G(player).walker_type = WALKER_ALT;
+ _G(player).shadow_type = SHADOW_ALT;
+ _G(player).walker_in_this_scene = false;
+}
+
+void Room906::init() {
+ _roomStates_pu = 40;
+ player_set_commands_allowed(false);
+ series_load("hold frame 906", -1, nullptr);
+ interface_hide();
+ digi_preload("906r01", -1);
+ AddSystemHotkey(KEY_ESCAPE, escapePressed);
+ _G(kernel).call_daemon_every_loop = true;
+ _roomStates_field4 = series_stream("EVERYTHING IN 906", 6, 2560, 200);
+ series_stream_break_on_frame(_roomStates_field4, 0, 2);
+}
+
+void Room906::daemon() {
+ switch (_G(kernel).trigger) {
+ case 2:
+ series_stream_break_on_frame(_roomStates_field4, 10, 15);
+ break;
+
+ case 15:
+ digi_play("906r01", 2, 225, -1, -1);
+ break;
+
+ case 30:
+ _roomStates_pu -= 3;
+ if (_roomStates_pu <= 0) {
+ adv_kill_digi_between_rooms(false);
+ _G(game).new_room = 907;
+ } else {
+ digi_change_panning(1, _roomStates_pu);
+ kernel_timing_trigger(2, 30, nullptr);
+ }
+
+ break;
+
+ case 55:
+ _G(game).new_room = 304;
+ _G(game).new_section = 3;
+ break;
+
+ case 56:
+ _G(game).new_room = 494;
+ _G(game).new_section = 4;
+ break;
+
+ case 200:
+ series_plain_play("hold frame 906", -1, 0, 100, 256, 3000, -1, false);
+ kernel_timing_trigger(120, 201, nullptr);
+ break;
+
+ case 201:
+ disable_player_commands_and_fade_init(30);
+ break;
+
+ default:
+ break;
+ }
+
+ if (_G(MouseState).ButtonState)
+ buttonDown = true;
+ else if (buttonDown) {
+ buttonDown = false;
+ disable_player_commands_and_fade_init(55);
+ }
+}
+
+void Room906::escapePressed(void *, void *) {
+ disable_player_commands_and_fade_init(56);
+}
+
+} // namespace Rooms
+} // namespace Riddle
+} // namespace M4
diff --git a/engines/m4/riddle/rooms/section9/room906.h b/engines/m4/riddle/rooms/section9/room906.h
new file mode 100644
index 00000000000..ae0313ca161
--- /dev/null
+++ b/engines/m4/riddle/rooms/section9/room906.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef M4_RIDDLE_ROOMS_SECTION9_ROOM906_H
+#define M4_RIDDLE_ROOMS_SECTION9_ROOM906_H
+
+#include "m4/core/rooms.h"
+#include "m4/wscript/ws_machine.h"
+
+namespace M4 {
+namespace Riddle {
+namespace Rooms {
+
+class Room906 : public Room {
+public:
+ Room906() : Room() {}
+ ~Room906() override {}
+
+ void preload() override;
+ void init() override;
+ void daemon() override;
+
+private:
+ static void escapePressed(void *, void *);
+ int _roomStates_pu;
+ machine *_roomStates_field4;
+ bool buttonDown = false;
+};
+
+} // namespace Rooms
+} // namespace Riddle
+} // namespace M4
+
+#endif
diff --git a/engines/m4/riddle/rooms/section9/section9.cpp b/engines/m4/riddle/rooms/section9/section9.cpp
index fe2c8adb6c5..73851b4d4ba 100644
--- a/engines/m4/riddle/rooms/section9/section9.cpp
+++ b/engines/m4/riddle/rooms/section9/section9.cpp
@@ -31,6 +31,7 @@ Section9::Section9() : Rooms::Section() {
add(902, &_room902);
add(903, &_room903);
add(905, &_room905);
+ add(906, &_room906);
add(907, &_room907);
add(908, &_room908);
add(917, &_room917);
diff --git a/engines/m4/riddle/rooms/section9/section9.h b/engines/m4/riddle/rooms/section9/section9.h
index fec6af04163..a794aa11f79 100644
--- a/engines/m4/riddle/rooms/section9/section9.h
+++ b/engines/m4/riddle/rooms/section9/section9.h
@@ -27,6 +27,7 @@
#include "m4/riddle/rooms/section9/room902.h"
#include "m4/riddle/rooms/section9/room903.h"
#include "m4/riddle/rooms/section9/room905.h"
+#include "m4/riddle/rooms/section9/room906.h"
#include "m4/riddle/rooms/section9/room907.h"
#include "m4/riddle/rooms/section9/room908.h"
#include "m4/riddle/rooms/section9/room917.h"
@@ -43,6 +44,7 @@ private:
Room902 _room902;
Room903 _room903;
Room905 _room905;
+ Room906 _room906;
Room907 _room907;
Room908 _room908;
Room917 _room917;
More information about the Scummvm-git-logs
mailing list