[Scummvm-git-logs] scummvm master -> 609e8b54e017020828b62a46dd3ae8113d0e1cfc
bluegr
noreply at scummvm.org
Mon Nov 4 08:12:21 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:
609e8b54e0 SCI: Disallow saving from the GMM and add a new game option to allow it
Commit: 609e8b54e017020828b62a46dd3ae8113d0e1cfc
https://github.com/scummvm/scummvm/commit/609e8b54e017020828b62a46dd3ae8113d0e1cfc
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2024-11-04T10:11:57+02:00
Commit Message:
SCI: Disallow saving from the GMM and add a new game option to allow it
This disables the feature, but allows users to enable it, if they want,
via a new checkbox. An appropriate warning has been added to the
checkbox, notifying the user that saves created through the GMM may be
corrupted and unusable. This addresses bug 15358
Changed paths:
engines/sci/detection.h
engines/sci/detection_options.h
engines/sci/detection_tables.h
engines/sci/engine/features.cpp
diff --git a/engines/sci/detection.h b/engines/sci/detection.h
index 63875e39d13..ae5df995f24 100644
--- a/engines/sci/detection.h
+++ b/engines/sci/detection.h
@@ -43,6 +43,7 @@ namespace Sci {
#define GAMEOPTION_PALETTE_MODS GUIO_GAMEOPTIONS15
#define GAMEOPTION_SQ1_BEARDED_MUSICIANS GUIO_GAMEOPTIONS16
#define GAMEOPTION_TTS GUIO_GAMEOPTIONS17
+#define GAMEOPTION_ENABLE_GMM_SAVE GUIO_GAMEOPTIONS18
enum SciGameId {
GID_ALL,
diff --git a/engines/sci/detection_options.h b/engines/sci/detection_options.h
index cc77d65f255..9bcadf2c4f0 100644
--- a/engines/sci/detection_options.h
+++ b/engines/sci/detection_options.h
@@ -230,6 +230,18 @@ const ADExtraGuiOptionsMap optionsList[] = {
},
#endif
+ {
+ GAMEOPTION_ENABLE_GMM_SAVE,
+ {
+ _s("Enable saving via the GMM"),
+ _s("Allows saving via the GMM. WARNING: saves created via the GMM may be corrupted and unusable. Use at your own risk!"),
+ "gmm_save_enabled",
+ false,
+ 0,
+ 0
+ }
+ },
+
AD_EXTRA_GUI_OPTIONS_TERMINATOR
};
diff --git a/engines/sci/detection_tables.h b/engines/sci/detection_tables.h
index 4e695adc013..0f59da1ccc8 100644
--- a/engines/sci/detection_tables.h
+++ b/engines/sci/detection_tables.h
@@ -23,17 +23,17 @@
namespace Sci {
-#define GUIO_STD16 GUIO6(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING, GAMEOPTION_TTS)
-#define GUIO_STD16_HIRES GUIO7(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING, GAMEOPTION_TTS)
-#define GUIO_STD16_UNDITHER GUIO7(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING, GAMEOPTION_TTS)
-#define GUIO_STD16_PALETTEMODS GUIO8(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING, GAMEOPTION_PALETTE_MODS, GAMEOPTION_TTS)
-#define GUIO_STD16_SPEECH GUIO4(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING)
-#define GUIO_STD16_SPEECH_GM GUIO5(GUIO_MIDIGM, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING)
-#define GUIO_STD16_MAC GUIO5(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING, GAMEOPTION_TTS)
-#define GUIO_STD16_MAC_HIRESFONTS GUIO6(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_MIDI_MODE, GAMEOPTION_HIGH_RESOLUTION_GRAPHICS, GAMEOPTION_RGB_RENDERING, GAMEOPTION_TTS)
-#define GUIO_STD16_MAC_UNDITHER GUIO6(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING, GAMEOPTION_TTS)
-#define GUIO_STD16_MAC_PALETTEMODS GUIO7(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING, GAMEOPTION_PALETTE_MODS, GAMEOPTION_TTS)
-#define GUIO_STD16_MAC_SPEECH GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING)
+#define GUIO_STD16 GUIO7(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING, GAMEOPTION_TTS, GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_STD16_HIRES GUIO8(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING, GAMEOPTION_TTS, GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_STD16_UNDITHER GUIO8(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING, GAMEOPTION_TTS, GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_STD16_PALETTEMODS GUIO9(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING, GAMEOPTION_PALETTE_MODS, GAMEOPTION_TTS, GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_STD16_SPEECH GUIO5(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING, GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_STD16_SPEECH_GM GUIO6(GUIO_MIDIGM, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING, GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_STD16_MAC GUIO6(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING, GAMEOPTION_TTS, GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_STD16_MAC_HIRESFONTS GUIO7(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_MIDI_MODE, GAMEOPTION_HIGH_RESOLUTION_GRAPHICS, GAMEOPTION_RGB_RENDERING, GAMEOPTION_TTS, GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_STD16_MAC_UNDITHER GUIO7(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING, GAMEOPTION_TTS, GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_STD16_MAC_PALETTEMODS GUIO8(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING, GAMEOPTION_PALETTE_MODS, GAMEOPTION_TTS, GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_STD16_MAC_SPEECH GUIO4(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING, GAMEOPTION_ENABLE_GMM_SAVE)
#define FANMADE_L(name, resMapMd5, resMapSize, resMd5, resSize, resVol, lang) \
{"sci-fanmade", name, { \
@@ -869,18 +869,22 @@ static const struct ADGameDescription SciGameDescriptions[] = {
AD_LISTEND},
Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO_STD16_SPEECH },
-#define GUIO_GK1_FLOPPY GUIO3(GUIO_NOSPEECH, \
+#define GUIO_GK1_FLOPPY GUIO4(GUIO_NOSPEECH, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
- GAMEOPTION_TTS)
-#define GUIO_GK1_CD_DOS GUIO4(GUIO_LINKSPEECHTOSFX, \
+ GAMEOPTION_TTS, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_GK1_CD_DOS GUIO5(GUIO_LINKSPEECHTOSFX, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
GAMEOPTION_HIGH_RESOLUTION_GRAPHICS, \
- GAMEOPTION_HQ_VIDEO)
-#define GUIO_GK1_CD_WIN GUIO3(GUIO_LINKSPEECHTOSFX, \
+ GAMEOPTION_HQ_VIDEO, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_GK1_CD_WIN GUIO4(GUIO_LINKSPEECHTOSFX, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
- GAMEOPTION_HQ_VIDEO)
-#define GUIO_GK1_MAC GUIO2(GUIO_NOSPEECH, \
- GAMEOPTION_TTS)
+ GAMEOPTION_HQ_VIDEO, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_GK1_MAC GUIO3(GUIO_NOSPEECH, \
+ GAMEOPTION_TTS, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
// Gabriel Knight - English DOS Floppy
// SCI interpreter version 2.000.000
@@ -1004,20 +1008,22 @@ static const struct ADGameDescription SciGameDescriptions[] = {
#undef GUIO_GK1_CD_WIN
#undef GUIO_GK1_MAC
-#define GUIO_GK2_DEMO GUIO8(GUIO_NOSUBTITLES, \
+#define GUIO_GK2_DEMO GUIO9(GUIO_NOSUBTITLES, \
GUIO_NOMUSIC, \
GUIO_NOSFX, \
GUIO_NOSPEECH, \
GUIO_NOMIDI, \
GUIO_NOLAUNCHLOAD, \
GUIO_NOASPECT, \
- GAMEOPTION_HQ_VIDEO)
-#define GUIO_GK2 GUIO6(GUIO_LINKSPEECHTOSFX, \
+ GAMEOPTION_HQ_VIDEO, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_GK2 GUIO7(GUIO_LINKSPEECHTOSFX, \
GUIO_NOMIDI, \
GUIO_NOASPECT, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
GAMEOPTION_ENABLE_BLACK_LINED_VIDEO, \
- GAMEOPTION_HQ_VIDEO)
+ GAMEOPTION_HQ_VIDEO, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
#define GUIO_GK2_MAC GUIO_GK2
// Gabriel Knight 2 - English Windows Non-Interactive Demo
@@ -1388,12 +1394,13 @@ static const struct ADGameDescription SciGameDescriptions[] = {
GUIO_NOASPECT)
// versions with bridge or poker have save/load screens
-#define GUIO_HOYLE5_SAVELOAD GUIO6(GUIO_NOMIDI, \
+#define GUIO_HOYLE5_SAVELOAD GUIO7(GUIO_NOMIDI, \
GUIO_NOLAUNCHLOAD, \
GUIO_LINKMUSICTOSFX, \
GUIO_LINKSPEECHTOSFX, \
GUIO_NOASPECT, \
- GAMEOPTION_ORIGINAL_SAVELOAD )
+ GAMEOPTION_ORIGINAL_SAVELOAD, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
// Hoyle 5 (Hoyle Classic Games) - Windows demo
// Executable scanning reports "2.100.002"
@@ -1823,12 +1830,13 @@ static const struct ADGameDescription SciGameDescriptions[] = {
AD_LISTEND},
Common::RU_RUS, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO_STD16_UNDITHER },
-#define GUIO_KQ5_CD_WINDOWS GUIO6(GUIO_MIDIGM, \
+#define GUIO_KQ5_CD_WINDOWS GUIO7(GUIO_MIDIGM, \
GAMEOPTION_PREFER_DIGITAL_SFX, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
GAMEOPTION_MIDI_MODE, \
GAMEOPTION_RGB_RENDERING, \
- GAMEOPTION_WINDOWS_CURSORS)
+ GAMEOPTION_WINDOWS_CURSORS, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
// King's Quest 5 - English Amiga (from www.back2roots.org)
// Game version 1.000.000
@@ -2250,26 +2258,29 @@ static const struct ADGameDescription SciGameDescriptions[] = {
#undef GUIO_KQ5_CD_WINDOWS
-#define GUIO_KQ6_DEMO GUIO6(GUIO_NOSPEECH, \
+#define GUIO_KQ6_DEMO GUIO7(GUIO_NOSPEECH, \
GAMEOPTION_HIGH_RESOLUTION_GRAPHICS, \
GAMEOPTION_PREFER_DIGITAL_SFX, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
GAMEOPTION_MIDI_MODE, \
- GAMEOPTION_RGB_RENDERING)
+ GAMEOPTION_RGB_RENDERING, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
-#define GUIO_KQ6_CD GUIO5(GAMEOPTION_HIGH_RESOLUTION_GRAPHICS, \
+#define GUIO_KQ6_CD GUIO6(GAMEOPTION_HIGH_RESOLUTION_GRAPHICS, \
GAMEOPTION_PREFER_DIGITAL_SFX, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
GAMEOPTION_MIDI_MODE, \
- GAMEOPTION_RGB_RENDERING)
+ GAMEOPTION_RGB_RENDERING, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
-#define GUIO_KQ6_CD_WINDOWS GUIO7(GUIO_NOASPECT, \
+#define GUIO_KQ6_CD_WINDOWS GUIO8(GUIO_NOASPECT, \
GAMEOPTION_WINDOWS_CURSORS, \
GAMEOPTION_HIGH_RESOLUTION_GRAPHICS, \
GAMEOPTION_PREFER_DIGITAL_SFX, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
GAMEOPTION_MIDI_MODE, \
- GAMEOPTION_RGB_RENDERING)
+ GAMEOPTION_RGB_RENDERING, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
// King's Quest 6 - English DOS Playable CD "Sneak Peaks" Demo (first island fully playable)
// (supplied by KQ5 G5 in bug report #6824)
@@ -2403,16 +2414,18 @@ static const struct ADGameDescription SciGameDescriptions[] = {
#undef GUIO_KQ6_CD
#undef GUIO_KQ6_CD_WINDOWS
-#define GUIO_KQ7_DEMO GUIO5(GUIO_NOSUBTITLES, \
+#define GUIO_KQ7_DEMO GUIO6(GUIO_NOSUBTITLES, \
GUIO_NOLAUNCHLOAD, \
GUIO_LINKMUSICTOSFX, \
GUIO_LINKSPEECHTOSFX, \
- GUIO_NOASPECT)
-#define GUIO_KQ7 GUIO5(GUIO_NOASPECT, \
+ GUIO_NOASPECT, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_KQ7 GUIO6(GUIO_NOASPECT, \
GUIO_LINKMUSICTOSFX, \
GUIO_LINKSPEECHTOSFX, \
GAMEOPTION_HQ_VIDEO, \
- GAMEOPTION_UPSCALE_VIDEOS)
+ GAMEOPTION_UPSCALE_VIDEOS, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
// King's Quest 7 - English Windows (from the King's Quest Collection)
// Executable scanning reports "2.100.002", VERSION file reports "1.4"
@@ -2811,21 +2824,23 @@ static const struct ADGameDescription SciGameDescriptions[] = {
GUIO_NOMIDI, \
GUIO_NOLAUNCHLOAD, \
GAMEOPTION_HQ_VIDEO)
-#define GUIO_LIGHTHOUSE GUIO8(GUIO_NOASPECT, \
+#define GUIO_LIGHTHOUSE GUIO9(GUIO_NOASPECT, \
GUIO_NOMIDI, \
GUIO_NOSUBTITLES, \
GUIO_LINKMUSICTOSFX, \
GUIO_LINKSPEECHTOSFX, \
GAMEOPTION_ENABLE_BLACK_LINED_VIDEO, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
- GAMEOPTION_HQ_VIDEO)
-#define GUIO_LIGHTHOUSE_MAC GUIO7(GUIO_NOASPECT, \
+ GAMEOPTION_HQ_VIDEO, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_LIGHTHOUSE_MAC GUIO8(GUIO_NOASPECT, \
GUIO_NOMIDI, \
GUIO_NOSUBTITLES, \
GUIO_LINKMUSICTOSFX, \
GUIO_LINKSPEECHTOSFX, \
GAMEOPTION_ENABLE_BLACK_LINED_VIDEO, \
- GAMEOPTION_HQ_VIDEO)
+ GAMEOPTION_HQ_VIDEO, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
// Lighthouse - English Windows Demo (from jvprat)
// Executable scanning reports "2.100.002", VERSION file reports "1.00", plays 2.VMD
@@ -3616,11 +3631,13 @@ static const struct ADGameDescription SciGameDescriptions[] = {
AD_LISTEND},
Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO_STD16 },
-#define GUIO_LSL6HIRES GUIO3(GUIO_NOASPECT, \
+#define GUIO_LSL6HIRES GUIO4(GUIO_NOASPECT, \
GUIO_LINKSPEECHTOSFX, \
- GAMEOPTION_ORIGINAL_SAVELOAD)
-#define GUIO_LSL6HIRES_MAC GUIO2(GUIO_NOASPECT, \
- GUIO_LINKSPEECHTOSFX)
+ GAMEOPTION_ORIGINAL_SAVELOAD, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_LSL6HIRES_MAC GUIO3(GUIO_NOASPECT, \
+ GUIO_LINKSPEECHTOSFX, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
// Larry 6 - English/German DOS CD - HIRES
// SCI interpreter version 2.100.002
@@ -3683,12 +3700,13 @@ static const struct ADGameDescription SciGameDescriptions[] = {
GUIO_NOMIDI, \
GUIO_NOLAUNCHLOAD, \
GAMEOPTION_LARRYSCALE)
-#define GUIO_LSL7 GUIO6(GUIO_NOASPECT, \
+#define GUIO_LSL7 GUIO7(GUIO_NOASPECT, \
GUIO_NOMIDI, \
GAMEOPTION_ENABLE_BLACK_LINED_VIDEO, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
GAMEOPTION_HQ_VIDEO, \
- GAMEOPTION_LARRYSCALE)
+ GAMEOPTION_LARRYSCALE, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
// Larry 7 - English DOS Demo (provided by richiefs in bug report #4214)
// SCI interpreter version 2.100.002
@@ -4132,7 +4150,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
#undef GUIO_PHANTASMAGORIA
#undef GUIO_PHANTASMAGORIA_MAC
-#define GUIO_PHANTASMAGORIA2 GUIO9(GUIO_NOSUBTITLES, \
+#define GUIO_PHANTASMAGORIA2 GUIO10(GUIO_NOSUBTITLES, \
GUIO_LINKMUSICTOSFX, \
GUIO_LINKSPEECHTOSFX, \
GUIO_NOMIDI, \
@@ -4140,17 +4158,19 @@ static const struct ADGameDescription SciGameDescriptions[] = {
GAMEOPTION_ORIGINAL_SAVELOAD, \
GAMEOPTION_ENABLE_BLACK_LINED_VIDEO, \
GAMEOPTION_HQ_VIDEO, \
- GAMEOPTION_ENABLE_CENSORING)
+ GAMEOPTION_ENABLE_CENSORING, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
// TODO: Learn which are the censored game editions and give them this GUIO
// instead
-#define GUIO_PHANTASMAGORIA2_CENSORED GUIO8(GUIO_NOSUBTITLES, \
+#define GUIO_PHANTASMAGORIA2_CENSORED GUIO9(GUIO_NOSUBTITLES, \
GUIO_LINKMUSICTOSFX, \
GUIO_LINKSPEECHTOSFX, \
GUIO_NOMIDI, \
GUIO_NOASPECT, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
GAMEOPTION_ENABLE_BLACK_LINED_VIDEO, \
- GAMEOPTION_HQ_VIDEO)
+ GAMEOPTION_HQ_VIDEO, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
// Some versions of Phantasmagoria 2 were heavily censored.
// Censored versions (data files are currently unknown to us): UK, Australia, first English release in Germany
@@ -4518,13 +4538,16 @@ static const struct ADGameDescription SciGameDescriptions[] = {
AD_LISTEND},
Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO_STD16 },
-#define GUIO_PQ4_FLOPPY GUIO3(GUIO_NOSPEECH, \
+#define GUIO_PQ4_FLOPPY GUIO4(GUIO_NOSPEECH, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
- GAMEOPTION_TTS)
-#define GUIO_PQ4_CD GUIO3(GUIO_LINKSPEECHTOSFX, \
+ GAMEOPTION_TTS, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_PQ4_CD GUIO4(GUIO_LINKSPEECHTOSFX, \
GAMEOPTION_HIGH_RESOLUTION_GRAPHICS, \
- GAMEOPTION_ORIGINAL_SAVELOAD)
-#define GUIO_PQ4_MAC GUIO1(GUIO_LINKSPEECHTOSFX)
+ GAMEOPTION_ORIGINAL_SAVELOAD, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_PQ4_MAC GUIO2(GUIO_LINKSPEECHTOSFX, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
// Police Quest 4 - English DOS CD
// Executable scanning reports "2.100.002", VERSION file reports "1.100.000"
@@ -4594,7 +4617,8 @@ static const struct ADGameDescription SciGameDescriptions[] = {
GUIO_LINKMUSICTOSFX, \
GUIO_LINKSPEECHTOSFX, \
GUIO_NOASPECT, \
- GUIO_NOLAUNCHLOAD)
+ GUIO_NOLAUNCHLOAD, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
#define GUIO_PQSWAT GUIO8(GUIO_NOSUBTITLES, \
GUIO_NOMIDI, \
GUIO_LINKMUSICTOSFX, \
@@ -4602,7 +4626,8 @@ static const struct ADGameDescription SciGameDescriptions[] = {
GUIO_NOASPECT, \
GAMEOPTION_ENABLE_BLACK_LINED_VIDEO, \
GAMEOPTION_HQ_VIDEO, \
- GAMEOPTION_UPSCALE_VIDEOS)
+ GAMEOPTION_UPSCALE_VIDEOS, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
// Police Quest: SWAT - English DOS/Windows Demo (from jvprat)
// Executable scanning reports "2.100.002", VERSION file reports "0.001.200"
@@ -5118,12 +5143,14 @@ static const struct ADGameDescription SciGameDescriptions[] = {
AD_LISTEND},
Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO_STD16 },
-#define GUIO_QFG4_FLOPPY GUIO3(GUIO_NOSPEECH, \
+#define GUIO_QFG4_FLOPPY GUIO4(GUIO_NOSPEECH, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
- GAMEOPTION_TTS)
-#define GUIO_QFG4_CD GUIO3(GUIO_LINKSPEECHTOSFX, \
+ GAMEOPTION_TTS, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_QFG4_CD GUIO4(GUIO_LINKSPEECHTOSFX, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
- GAMEOPTION_HQ_VIDEO)
+ GAMEOPTION_HQ_VIDEO, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
// Quest for Glory 4 1.1 Floppy - English DOS (supplied by markcool in bug report #4280)
// SCI interpreter version 2.000.000
@@ -5290,18 +5317,20 @@ static const struct ADGameDescription SciGameDescriptions[] = {
AD_LISTEND},
Common::EN_ANY, Common::kPlatformWindows, ADGF_DEMO | ADGF_UNSTABLE, GUIO1(GUIO_NONE) },
-#define GUIO_SHIVERS_DEMO GUIO6(GUIO_NOSUBTITLES, \
+#define GUIO_SHIVERS_DEMO GUIO7(GUIO_NOSUBTITLES, \
GUIO_NOMIDI, \
GUIO_NOLAUNCHLOAD, \
GUIO_LINKSPEECHTOSFX, \
GUIO_LINKMUSICTOSFX, \
- GUIO_NOASPECT)
-#define GUIO_SHIVERS GUIO6(GUIO_NOMIDI, \
+ GUIO_NOASPECT, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_SHIVERS GUIO7(GUIO_NOMIDI, \
GUIO_LINKSPEECHTOSFX, \
GUIO_LINKMUSICTOSFX, \
GUIO_NOASPECT, \
GAMEOPTION_ENABLE_BLACK_LINED_VIDEO, \
- GAMEOPTION_HQ_VIDEO)
+ GAMEOPTION_HQ_VIDEO, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
// Shivers - English Windows (from jvprat)
// Executable scanning reports "2.100.002", VERSION file reports "1.02"
@@ -5433,7 +5462,8 @@ static const struct ADGameDescription SciGameDescriptions[] = {
GAMEOPTION_MIDI_MODE, \
GAMEOPTION_RGB_RENDERING, \
GAMEOPTION_SQ1_BEARDED_MUSICIANS, \
- GAMEOPTION_TTS)
+ GAMEOPTION_TTS, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
// Space Quest 1 VGA Remake - English Amiga (from www.back2roots.org)
// SCI interpreter version 1.000.510 (just a guess)
@@ -5735,19 +5765,21 @@ static const struct ADGameDescription SciGameDescriptions[] = {
AD_LISTEND},
Common::ES_ESP, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO_STD16_PALETTEMODS },
-#define GUIO_SQ4_CD GUIO5(GAMEOPTION_SQ4_SILVER_CURSORS, \
+#define GUIO_SQ4_CD GUIO6(GAMEOPTION_SQ4_SILVER_CURSORS, \
GAMEOPTION_PREFER_DIGITAL_SFX, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
GAMEOPTION_MIDI_MODE, \
- GAMEOPTION_RGB_RENDERING)
+ GAMEOPTION_RGB_RENDERING, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
-#define GUIO_SQ4_CD_WINDOWS GUIO7(GUIO_MIDIGM, \
+#define GUIO_SQ4_CD_WINDOWS GUIO8(GUIO_MIDIGM, \
GAMEOPTION_WINDOWS_CURSORS, \
GAMEOPTION_SQ4_SILVER_CURSORS, \
GAMEOPTION_PREFER_DIGITAL_SFX, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
GAMEOPTION_MIDI_MODE, \
- GAMEOPTION_RGB_RENDERING)
+ GAMEOPTION_RGB_RENDERING, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
// Space Quest 4 - English Amiga
// Executable scanning reports "1.004.024"
@@ -6105,18 +6137,21 @@ static const struct ADGameDescription SciGameDescriptions[] = {
AD_LISTEND},
Common::HE_ISR, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO_STD16 },
-#define GUIO_SQ6_DEMO GUIO3(GUIO_NOLAUNCHLOAD, \
+#define GUIO_SQ6_DEMO GUIO4(GUIO_NOLAUNCHLOAD, \
GUIO_LINKSPEECHTOSFX, \
- GUIO_NOASPECT)
-#define GUIO_SQ6 GUIO5(GUIO_LINKSPEECHTOSFX, \
+ GUIO_NOASPECT, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_SQ6 GUIO6(GUIO_LINKSPEECHTOSFX, \
GUIO_NOASPECT, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
GAMEOPTION_ENABLE_BLACK_LINED_VIDEO, \
- GAMEOPTION_HQ_VIDEO)
-#define GUIO_SQ6_MAC GUIO4(GUIO_LINKSPEECHTOSFX, \
+ GAMEOPTION_HQ_VIDEO, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_SQ6_MAC GUIO5(GUIO_LINKSPEECHTOSFX, \
GUIO_NOASPECT, \
GAMEOPTION_ENABLE_BLACK_LINED_VIDEO, \
- GAMEOPTION_HQ_VIDEO)
+ GAMEOPTION_HQ_VIDEO, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
// Space Quest 6 - English DOS/Win3.11 CD (from the Space Quest Collection)
// Executable scanning reports "2.100.002", VERSION file reports "1.0"
@@ -6233,14 +6268,16 @@ static const struct ADGameDescription SciGameDescriptions[] = {
AD_LISTEND},
Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO_STD16 },
-#define GUIO_TORIN_DEMO GUIO3(GUIO_NOMIDI, \
+#define GUIO_TORIN_DEMO GUIO4(GUIO_NOMIDI, \
GUIO_NOLAUNCHLOAD, \
- GUIO_NOASPECT)
-#define GUIO_TORIN GUIO5(GUIO_NOMIDI, \
+ GUIO_NOASPECT, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
+#define GUIO_TORIN GUIO6(GUIO_NOMIDI, \
GUIO_NOASPECT, \
GAMEOPTION_ORIGINAL_SAVELOAD, \
GAMEOPTION_ENABLE_BLACK_LINED_VIDEO, \
- GAMEOPTION_HQ_VIDEO)
+ GAMEOPTION_HQ_VIDEO, \
+ GAMEOPTION_ENABLE_GMM_SAVE)
#define GUIO_TORIN_MAC GUIO_TORIN
// Torin's Passage - English DOS/Windows Early Demo
diff --git a/engines/sci/engine/features.cpp b/engines/sci/engine/features.cpp
index 2ecf52b7e37..90b7e8a04fb 100644
--- a/engines/sci/engine/features.cpp
+++ b/engines/sci/engine/features.cpp
@@ -862,6 +862,9 @@ bool GameFeatures::hasScriptObjectNames() const {
}
bool GameFeatures::canSaveFromGMM() const {
+ if (!ConfMan.getBool("gmm_save_enabled"))
+ return false;
+
switch (g_sci->getGameId()) {
// ==== Demos/mini-games with no saving functionality ====
case GID_ASTROCHICKEN:
More information about the Scummvm-git-logs
mailing list