[Scummvm-git-logs] scummvm master -> 5925862a68166eb9e9913919f5ff5fae57a83737

Strangerke noreply at scummvm.org
Fri Feb 6 12:04:18 UTC 2026


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
5925862a68 M4: RIDDLE: Add missing implementation of (most of) room 905


Commit: 5925862a68166eb9e9913919f5ff5fae57a83737
    https://github.com/scummvm/scummvm/commit/5925862a68166eb9e9913919f5ff5fae57a83737
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2026-02-06T13:04:06+01:00

Commit Message:
M4: RIDDLE: Add missing implementation of (most of) room 905

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


diff --git a/engines/m4/riddle/rooms/section9/room905.cpp b/engines/m4/riddle/rooms/section9/room905.cpp
index f0b285030c9..1dfa2313b2b 100644
--- a/engines/m4/riddle/rooms/section9/room905.cpp
+++ b/engines/m4/riddle/rooms/section9/room905.cpp
@@ -22,7 +22,9 @@
 #include "m4/m4.h"
 #include "m4/riddle/rooms/section9/room905.h"
 #include "m4/graphics/gr_series.h"
+#include "m4/gui/gui_buffer.h"
 #include "m4/gui/gui_sys.h"
+#include "m4/gui/gui_vmng.h"
 #include "m4/platform/keys.h"
 #include "m4/riddle/vars.h"
 
@@ -42,8 +44,35 @@ void Room905::escapePressed(void *, void *) {
 }
 
 void Room905::init() {
-	_roomStates_field4 = -1;
-	warning("Room 905 - large STUB in init");
+	_roomStates_field4 = 0xff;
+
+	_905_BuffTemp = new GrBuff(640, _G(kernel).letter_box_y);
+	Buffer *myBuff = _905_BuffTemp->get_buffer();
+	byte *bufferHandle = myBuff->data;
+
+	for (int i = 0; i < 640 * _G(kernel).letter_box_y; i++) {
+		bufferHandle[i] = 0;
+	}
+
+	gui_GrBuff_register(0, 0, _905_BuffTemp, SF_SURFACE, nullptr);
+	gui_buffer_activate((Buffer *)_905_BuffTemp);
+	
+	vmng_screen_show(_905_BuffTemp);
+	
+	_905_BuffTemp2 = new GrBuff(640, 77);
+	myBuff = _905_BuffTemp2->get_buffer();
+	bufferHandle = myBuff->data;
+	
+	for (int i = 0; i < 640 * 77; i++) {
+		bufferHandle[i] = 0;
+	}	
+
+	gui_GrBuff_register(0, 403, _905_BuffTemp2, SF_SURFACE, nullptr);
+	gui_buffer_activate((Buffer *)_905_BuffTemp2);
+	vmng_screen_show(_905_BuffTemp2);
+
+	MoveScreenDelta(_G(game_buff_ptr), 0, -(_G(kernel).letter_box_y + 768));
+
 	series_load("905 hold frame", -1, nullptr);
 	g_engine->adv_camera_pan_step(3);
 	player_set_commands_allowed(false);
@@ -107,7 +136,17 @@ void Room905::daemon() {
 }
 
 void Room905::shutdown() {
-	warning("STUB - Room905::shutdown");
+	if (_905_BuffTemp) {
+		gui_buffer_deregister((Buffer *)_905_BuffTemp);
+		delete _905_BuffTemp;
+		_905_BuffTemp = nullptr;
+	}
+
+	if (_905_BuffTemp2) {
+		gui_buffer_deregister((Buffer *)_905_BuffTemp2);
+		delete _905_BuffTemp2;
+		_905_BuffTemp2 = nullptr;
+	}
 }
 
 } // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section9/room905.h b/engines/m4/riddle/rooms/section9/room905.h
index e16d72eb50a..8c11c796e7e 100644
--- a/engines/m4/riddle/rooms/section9/room905.h
+++ b/engines/m4/riddle/rooms/section9/room905.h
@@ -42,6 +42,9 @@ public:
 
 private:
 	int _roomStates_field4 = -1;
+	GrBuff *_905_BuffTemp = nullptr;
+	GrBuff *_905_BuffTemp2 = nullptr;
+
 	static void escapePressed(void *, void *);
 	machine *_roomStates_tt = nullptr;
 };




More information about the Scummvm-git-logs mailing list