[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