aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backends/events/default/default-events.h3
-rw-r--r--base/main.cpp6
-rw-r--r--common/events.h4
3 files changed, 11 insertions, 2 deletions
diff --git a/backends/events/default/default-events.h b/backends/events/default/default-events.h
index 5841318fd4..9d47104608 100644
--- a/backends/events/default/default-events.h
+++ b/backends/events/default/default-events.h
@@ -143,6 +143,9 @@ public:
virtual int shouldQuit() const { return _shouldQuit; }
virtual int shouldRTL() const { return _shouldRTL; }
virtual void resetRTL() { _shouldRTL = false; }
+#ifdef FORCE_RTL
+ virtual void resetQuit() { _shouldQuit = false; }
+#endif
#ifdef ENABLE_KEYMAPPER
virtual Common::Keymapper *getKeymapper() { return _keymapper; }
diff --git a/base/main.cpp b/base/main.cpp
index a091c5885a..2d4091c0d5 100644
--- a/base/main.cpp
+++ b/base/main.cpp
@@ -382,11 +382,15 @@ extern "C" int scummvm_main(int argc, const char * const argv[]) {
}
// Quit unless an error occurred, or Return to launcher was requested
+ #ifndef FORCE_RTL
if (result == 0 && !g_system->getEventManager()->shouldRTL())
break;
-
+ #endif
// Reset RTL flag in case we want to load another engine
g_system->getEventManager()->resetRTL();
+ #ifdef FORCE_RTL
+ g_system->getEventManager()->resetQuit();
+ #endif
// Discard any command line options. It's unlikely that the user
// wanted to apply them to *all* games ever launched.
diff --git a/common/events.h b/common/events.h
index e13d95cf47..82b85e60ea 100644
--- a/common/events.h
+++ b/common/events.h
@@ -195,7 +195,9 @@ public:
* Used when we have returned to the launcher.
*/
virtual void resetRTL() = 0;
-
+#ifdef FORCE_RTL
+ virtual void resetQuit() = 0;
+#endif
// Optional: check whether a given key is currently pressed ????
//virtual bool isKeyPressed(int keycode) = 0;