[Scummvm-git-logs] scummvm master -> 8d5aa3a14bf24e196370077947db52572ca1188a
AndywinXp
noreply at scummvm.org
Sun Sep 1 10:34:58 UTC 2024
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:
8d5aa3a14b SCUMM: GUI: Improve quit dialog override consistency
Commit: 8d5aa3a14bf24e196370077947db52572ca1188a
https://github.com/scummvm/scummvm/commit/8d5aa3a14bf24e196370077947db52572ca1188a
Author: AndywinXp (andywinxp at gmail.com)
Date: 2024-09-01T12:34:54+02:00
Commit Message:
SCUMM: GUI: Improve quit dialog override consistency
No more cases of SCUMM quit dialogs followed by frontend
quit dialogs, and no more cases of versions not having an
override quitting without confirmation (ignoring the frontend
setting).
Changed paths:
engines/scumm/gfx_gui.cpp
engines/scumm/metaengine.cpp
engines/scumm/scumm.cpp
engines/scumm/scumm.h
diff --git a/engines/scumm/gfx_gui.cpp b/engines/scumm/gfx_gui.cpp
index 40ec529771f..2d9ff3c2c73 100644
--- a/engines/scumm/gfx_gui.cpp
+++ b/engines/scumm/gfx_gui.cpp
@@ -2129,7 +2129,9 @@ void ScummEngine::queryQuit(bool returnToLauncher) {
event.type = Common::EVENT_RETURN_TO_LAUNCHER;
getEventManager()->pushEvent(event);
} else {
- quitGame();
+ Common::Event event;
+ event.type = Common::EVENT_QUIT;
+ getEventManager()->pushEvent(event);
}
}
}
diff --git a/engines/scumm/metaengine.cpp b/engines/scumm/metaengine.cpp
index f73c450ca89..e04c61ac45e 100644
--- a/engines/scumm/metaengine.cpp
+++ b/engines/scumm/metaengine.cpp
@@ -246,13 +246,22 @@ bool ScummEngine::hasFeature(EngineFeature f) const {
(Common::String(_game.guioptions).contains(GAMEOPTION_AUDIO_OVERRIDE) ||
Common::String(_game.guioptions).contains(GAMEOPTION_NETWORK))
) ||
- (f == kSupportsQuitDialogOverride && (_useOriginalGUI || !ChainedGamesMan.empty()));
+ (f == kSupportsQuitDialogOverride && (gameSupportsQuitDialogOverride() || !ChainedGamesMan.empty()));
}
bool Scumm::ScummEngine::enhancementEnabled(int32 cls) {
return _activeEnhancements & cls;
}
+bool ScummEngine::gameSupportsQuitDialogOverride() const {
+ bool supportsOverride = isUsingOriginalGUI();
+
+ supportsOverride &= !(_game.platform == Common::kPlatformNES);
+ supportsOverride &= !(_game.platform == Common::kPlatformSegaCD);
+
+ return supportsOverride;
+}
+
/**
* Create a ScummEngine instance, based on the given detector data.
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 03859d598f0..44e52457447 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -3786,7 +3786,7 @@ void ScummEngine::restart() {
runBootscript();
}
-bool ScummEngine::isUsingOriginalGUI() {
+bool ScummEngine::isUsingOriginalGUI() const {
if (_game.id == GID_MONKEY2 && (_game.features & GF_DEMO))
return false;
diff --git a/engines/scumm/scumm.h b/engines/scumm/scumm.h
index 1b9c0d44609..a522190250d 100644
--- a/engines/scumm/scumm.h
+++ b/engines/scumm/scumm.h
@@ -586,6 +586,7 @@ public:
void errorString(const char *buf_input, char *buf_output, int buf_output_size) override;
bool hasFeature(EngineFeature f) const override;
bool enhancementEnabled(int32 cls);
+ bool gameSupportsQuitDialogOverride() const;
void syncSoundSettings() override;
Common::Error loadGameState(int slot) override;
@@ -665,7 +666,7 @@ protected:
public:
void pauseGame();
void restart();
- bool isUsingOriginalGUI();
+ bool isUsingOriginalGUI() const;
bool isMessageBannerActive(); // For Indy4 Jap character shadows
bool _isIndy4Jap = false;
More information about the Scummvm-git-logs
mailing list