[Scummvm-git-logs] scummvm master -> 599df7ad81771fb023ff16fd2dc19b12662c3afb

eriktorbjorn noreply at scummvm.org
Wed Feb 5 06:09:03 UTC 2025


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:
599df7ad81 TINSEL: Fix save/load menu becoming inaccessible (bug #15723)


Commit: 599df7ad81771fb023ff16fd2dc19b12662c3afb
    https://github.com/scummvm/scummvm/commit/599df7ad81771fb023ff16fd2dc19b12662c3afb
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2025-02-05T07:08:18+01:00

Commit Message:
TINSEL: Fix save/load menu becoming inaccessible (bug #15723)

When the save/load dialogs are displayed, the engine switches to a
different keymapper. It was only switched back when using the "X" button
to load a savegame, not when double-clicking on one. This made it
impossible to open the save/load dialogs again.

Now the keymap is restored in Dialogs::killInventory() instead. That
means it will be done even when not needed, but this is where we also
disable the virtual keyboard so it's presumably a good, well-tested spot
for it.

Changed paths:
    engines/tinsel/dialogs.cpp


diff --git a/engines/tinsel/dialogs.cpp b/engines/tinsel/dialogs.cpp
index 60f8e8dfa15..729bb19c41e 100644
--- a/engines/tinsel/dialogs.cpp
+++ b/engines/tinsel/dialogs.cpp
@@ -3661,11 +3661,12 @@ void Dialogs::openMenu(CONFTYPE menuType) {
 	_invD[INV_CONF].resizable = false;
 	_invD[INV_CONF].bMoveable = false;
 
-	Common::Keymapper *keymapper = _vm->getEventManager()->getKeymapper();
 	if (menuType == SAVE_MENU || menuType == LOAD_MENU) {
+		Common::Keymapper *keymapper = _vm->getEventManager()->getKeymapper();
 		keymapper->getKeymap("game-shortcuts")->setEnabled(false);
 		keymapper->getKeymap("saveload-shortcuts")->setEnabled(true);
 	}
+
 	switch (menuType) {
 	case MAIN_MENU:
 		setMenuGlobals(&ciOption);
@@ -3868,6 +3869,10 @@ void Dialogs::killInventory() {
 			_vm->_pcmMusic->unDim(false);
 
 	g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false); // Hide VK after save dialog closes
+
+	Common::Keymapper *keymapper = _vm->getEventManager()->getKeymapper();
+	keymapper->getKeymap("game-shortcuts")->setEnabled(true);
+	keymapper->getKeymap("saveload-shortcuts")->setEnabled(false);
 }
 
 void Dialogs::closeInventory() {
@@ -5501,13 +5506,6 @@ bool Dialogs::isConvWindow() {
 }
 
 void Dialogs::callFunction(BFUNC boxFunc) {
-
-	Common::Keymapper *keymapper = _vm->getEventManager()->getKeymapper();
-	if (boxFunc == CLOSEWIN || boxFunc == SAVEGAME || boxFunc == LOADGAME) {
-		keymapper->getKeymap("game-shortcuts")->setEnabled(true);
-		keymapper->getKeymap("saveload-shortcuts")->setEnabled(false);
-	}
-
 	switch (boxFunc) {
 	case SAVEGAME:
 		killInventory();




More information about the Scummvm-git-logs mailing list