[Scummvm-git-logs] scummvm master -> 4518f73f920ee5d564e266032cfbcde87165c372

criezy criezy at scummvm.org
Wed Dec 9 22:24:56 UTC 2020


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

Summary:
9e5540f838 BASE: Handle RTL at exit config in scummvm_main
4518f73f92 BASE: Remove FORCE_RETURN_TO_LAUNCHER define


Commit: 9e5540f838ab0dbd37438d92ce1d90447f6a9c6f
    https://github.com/scummvm/scummvm/commit/9e5540f838ab0dbd37438d92ce1d90447f6a9c6f
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2020-12-09T22:13:22Z

Commit Message:
BASE: Handle RTL at exit config in scummvm_main

This config was handled in the DefaultEventManager, but this did not
work for engines that quit the game without using a QUIT_EVENT (such
as SCI). So now it is handled one level up directly in scummvm_main.

Note: It is still also handled in the DefaultEventManager so that we
get the correct confirmation dialog there when "confirm_exit" is true.

Changed paths:
    backends/events/default/default-events.cpp
    backends/events/default/default-events.h
    base/main.cpp
    common/events.h


diff --git a/backends/events/default/default-events.cpp b/backends/events/default/default-events.cpp
index 247f8bda62..374c94a3e1 100644
--- a/backends/events/default/default-events.cpp
+++ b/backends/events/default/default-events.cpp
@@ -96,7 +96,9 @@ bool DefaultEventManager::pollEvent(Common::Event &event) {
 	bool forwardEvent = true;
 
 	// If the backend has the kFeatureNoQuit or the "Return to Launcher at Exit" option is enabled,
-	// replace "Quit" event with "Return to Launcher"
+	// replace "Quit" event with "Return to Launcher". This is also handled in scummvm_main, but
+	// doing it here allows getting the correct confirmation dialog if the "confirm_exit" setting
+	// is set to true.
 	if (event.type == Common::EVENT_QUIT && (g_system->hasFeature(OSystem::kFeatureNoQuit) || (ConfMan.getBool("gui_return_to_launcher_at_exit") && g_engine)))
 		event.type = Common::EVENT_RETURN_TO_LAUNCHER;
 
diff --git a/backends/events/default/default-events.h b/backends/events/default/default-events.h
index 811908d995..cafad62a45 100644
--- a/backends/events/default/default-events.h
+++ b/backends/events/default/default-events.h
@@ -74,9 +74,7 @@ public:
 	virtual int shouldQuit() const override { return _shouldQuit; }
 	virtual int shouldReturnToLauncher() const override { return _shouldReturnToLauncher; }
 	virtual void resetReturnToLauncher() override { _shouldReturnToLauncher = false; }
-#ifdef FORCE_RETURN_TO_LAUNCHER
 	virtual void resetQuit() override { _shouldQuit = false; }
-#endif
 
 	Common::Keymapper *getKeymapper() override { return _keymapper; }
 	Common::Keymap *getGlobalKeymap() override;
diff --git a/base/main.cpp b/base/main.cpp
index a324c89922..cd50b0b172 100644
--- a/base/main.cpp
+++ b/base/main.cpp
@@ -621,14 +621,14 @@ extern "C" int scummvm_main(int argc, const char * const argv[]) {
 
 			// Quit unless an error occurred, or Return to launcher was requested
 #ifndef FORCE_RETURN_TO_LAUNCHER
-			if (result.getCode() == Common::kNoError && !g_system->getEventManager()->shouldReturnToLauncher())
+			if (result.getCode() == Common::kNoError && !g_system->getEventManager()->shouldReturnToLauncher() &&
+			    !g_system->hasFeature(OSystem::kFeatureNoQuit) && !ConfMan.getBool("gui_return_to_launcher_at_exit"))
 				break;
 #endif
-			// Reset the return to launcher flag in case we want to load another engine
+			// Reset the return to launcher and quit flags in case we want to load another engine
 			g_system->getEventManager()->resetReturnToLauncher();
-#ifdef FORCE_RETURN_TO_LAUNCHER
 			g_system->getEventManager()->resetQuit();
-#endif
+
 #ifdef ENABLE_EVENTRECORDER
 			if (g_eventRec.checkForContinueGame()) {
 				continue;
diff --git a/common/events.h b/common/events.h
index 84594e880b..8a41945d60 100644
--- a/common/events.h
+++ b/common/events.h
@@ -510,9 +510,7 @@ public:
 	 * Used when we have returned to the launcher.
 	 */
 	virtual void resetReturnToLauncher() = 0;
-#ifdef FORCE_RETURN_TO_LAUNCHER
 	virtual void resetQuit() = 0;
-#endif
 	// Optional: check whether a given key is currently pressed ????
 	//virtual bool isKeyPressed(int keycode) = 0;
 


Commit: 4518f73f920ee5d564e266032cfbcde87165c372
    https://github.com/scummvm/scummvm/commit/4518f73f920ee5d564e266032cfbcde87165c372
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2020-12-09T22:13:22Z

Commit Message:
BASE: Remove FORCE_RETURN_TO_LAUNCHER define

This was only used by the ps2 backend, and that backend no longer
exists. Also now backends that want to force RTL should use the
kFeatureNoQuit OSystem feature instead.

Changed paths:
    base/main.cpp


diff --git a/base/main.cpp b/base/main.cpp
index cd50b0b172..d2b62123ed 100644
--- a/base/main.cpp
+++ b/base/main.cpp
@@ -620,11 +620,10 @@ extern "C" int scummvm_main(int argc, const char * const argv[]) {
 			}
 
 			// Quit unless an error occurred, or Return to launcher was requested
-#ifndef FORCE_RETURN_TO_LAUNCHER
 			if (result.getCode() == Common::kNoError && !g_system->getEventManager()->shouldReturnToLauncher() &&
 			    !g_system->hasFeature(OSystem::kFeatureNoQuit) && !ConfMan.getBool("gui_return_to_launcher_at_exit"))
 				break;
-#endif
+
 			// Reset the return to launcher and quit flags in case we want to load another engine
 			g_system->getEventManager()->resetReturnToLauncher();
 			g_system->getEventManager()->resetQuit();




More information about the Scummvm-git-logs mailing list