[Scummvm-git-logs] scummvm master -> fb31632d651fc5d576db5028b129798c75c2e669

Strangerke noreply at scummvm.org
Sat Oct 5 07:20:15 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:
fb31632d65 M4: RIDDLE: Implement room 907


Commit: fb31632d651fc5d576db5028b129798c75c2e669
    https://github.com/scummvm/scummvm/commit/fb31632d651fc5d576db5028b129798c75c2e669
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-10-05T09:20:08+02:00

Commit Message:
M4: RIDDLE: Implement room 907

Changed paths:
    engines/m4/riddle/rooms/section9/room907.cpp
    engines/m4/riddle/rooms/section9/room907.h


diff --git a/engines/m4/riddle/rooms/section9/room907.cpp b/engines/m4/riddle/rooms/section9/room907.cpp
index a15fa811475..cc317883fb5 100644
--- a/engines/m4/riddle/rooms/section9/room907.cpp
+++ b/engines/m4/riddle/rooms/section9/room907.cpp
@@ -21,6 +21,8 @@
 
 #include "m4/riddle/rooms/section9/room907.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 {
@@ -28,13 +30,84 @@ namespace Riddle {
 namespace Rooms {
 
 void Room907::preload() {
+	_G(player).walker_type = WALKER_ALT;
+	_G(player).shadow_type = SHADOW_ALT;
 	_G(player).walker_in_this_scene = false;
 }
 
 void Room907::init() {
+	player_set_commands_allowed(false);
+	digi_preload("950_s11", 950);
+	digi_preload("907r01", -1);
+
+
+	_roomStates_tt = series_stream("zep flies low over sea", 6, 2560, -1);
+	series_stream_break_on_frame(_roomStates_tt, 8, 1);
+	interface_hide();
+	AddSystemHotkey(KEY_ESCAPE, escapePressed);
+	_G(kernel).call_daemon_every_loop = true;
+	kernel_timing_trigger(10, 8, nullptr);
 }
 
 void Room907::daemon() {
+	switch (_G(kernel).trigger) {
+	case 1:
+		series_stream_break_on_frame(_roomStates_tt, 70, 30);
+		kernel_timing_trigger(60, 29, nullptr);
+		break;
+
+	case 8:
+		digi_stop(1);
+		digi_unload("INTMOAN");
+		digi_play("950_s11", 2, 255, -1, -1);
+		kernel_timing_trigger(120, 10, nullptr);
+	break;
+
+	case 10:
+		digi_stop(1);
+		break;
+
+	case 30:
+		kernel_timing_trigger(60, 31, nullptr);
+		break;
+
+	case 31:
+		disable_player_commands_and_fade_init(40);
+		break;
+
+	case 29:
+		digi_play("907r01", 3, 255, 30, -1);
+		break;
+
+	case 40:
+		adv_kill_digi_between_rooms(false);
+		_G(game).new_room = 908;
+		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;
+
+	default:
+		break;
+	}
+
+	if (_G(MouseState).ButtonState)
+		_buttonDown = true;
+	else if (_buttonDown) {
+		_buttonDown = false;
+		disable_player_commands_and_fade_init(55);
+	}
+}
+
+void Room907::escapePressed(void *, void *) {
+	disable_player_commands_and_fade_init(56);
 }
 
 } // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section9/room907.h b/engines/m4/riddle/rooms/section9/room907.h
index ba1bc4a0c6f..460ba69ff13 100644
--- a/engines/m4/riddle/rooms/section9/room907.h
+++ b/engines/m4/riddle/rooms/section9/room907.h
@@ -23,6 +23,7 @@
 #define M4_RIDDLE_ROOMS_SECTION9_ROOM907_H
 
 #include "m4/core/rooms.h"
+#include "m4/wscript/ws_machine.h"
 
 namespace M4 {
 namespace Riddle {
@@ -36,6 +37,11 @@ public:
 	void preload() override;
 	void init() override;
 	void daemon() override;
+
+private:
+	static void escapePressed(void *, void *);
+	machine * _roomStates_tt = nullptr;
+	bool _buttonDown = false;
 };
 
 } // namespace Rooms




More information about the Scummvm-git-logs mailing list