[Scummvm-git-logs] scummvm master -> 98277caecbb95743187fe78820904bb67cbf8e2f
dreammaster
noreply at scummvm.org
Wed Jul 29 11:15:31 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:
98277caecb MADS: NEBULAR: Properly trigger Rex original dialogs after unloading room
Commit: 98277caecbb95743187fe78820904bb67cbf8e2f
https://github.com/scummvm/scummvm/commit/98277caecbb95743187fe78820904bb67cbf8e2f
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-07-29T21:15:19+10:00
Commit Message:
MADS: NEBULAR: Properly trigger Rex original dialogs after unloading room
Changed paths:
engines/mads/core/game.cpp
engines/mads/nebular/menus.cpp
diff --git a/engines/mads/core/game.cpp b/engines/mads/core/game.cpp
index 45d185ebac3..8691d60569b 100644
--- a/engines/mads/core/game.cpp
+++ b/engines/mads/core/game.cpp
@@ -65,6 +65,7 @@
#include "mads/forest/sound/digi.h"
#include "mads/forest/extra.h"
#include "mads/forest/global.h"
+#include "mads/nebular/global.h"
namespace MADS {
@@ -1491,6 +1492,14 @@ void game_control() {
// Flush all EMS/XMS preloads at the room level
himem_flush(ROOM);
+ // Rex Nebular menu display
+ if (g_engine->getGameID() == GType_RexNebular && kernel.activate_menu != GAME_NO_MENU &&
+ player.commands_allowed && !global[RexNebular::kCopyProtectFailed]) {
+ player_dump_walker();
+ game_exec_function(game_menu_routine);
+ kernel.activate_menu = GAME_NO_MENU;
+ }
+
if (!game.going && !win_status) {
conv_control.running = aborted_conv;
@@ -1922,11 +1931,19 @@ static void game_control_loop() {
if (kernel.activate_menu) {
if (!kernel.trigger && player.commands_allowed) {
- game_exec_function(game_menu_routine);
+ if (g_engine->getGameID() == GType_RexNebular) {
+ // Rex Nebular menus are their own virtual room, so the current room
+ // has to be completely unloaded before we open the menu
+ kernel.force_restart = true;
- if (game_menu_routine == NULL) game.going = false;
+ } else {
+ game_exec_function(game_menu_routine);
- kernel.activate_menu = GAME_NO_MENU;
+ if (game_menu_routine == NULL)
+ game.going = false;
+
+ kernel.activate_menu = GAME_NO_MENU;
+ }
}
}
diff --git a/engines/mads/nebular/menus.cpp b/engines/mads/nebular/menus.cpp
index 4cd03a0a306..7978719120a 100644
--- a/engines/mads/nebular/menus.cpp
+++ b/engines/mads/nebular/menus.cpp
@@ -1746,10 +1746,7 @@ void global_menu_system_shutdown() {
}
void global_game_menu() {
-
-
- while (keys_any())
- keys_get();
+ g_engine->flushKeys();
game_menu_setup();
More information about the Scummvm-git-logs
mailing list