[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