[Scummvm-git-logs] scummvm master -> 8ce10e3a5ea5120cdbb6a17ca43cb5a46cb6c942
bluegr
noreply at scummvm.org
Mon May 5 16:50:50 UTC 2025
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
8ce10e3a5e DIRECTOR: Ensure that GUI options are displayed for games that use them
Commit: 8ce10e3a5ea5120cdbb6a17ca43cb5a46cb6c942
https://github.com/scummvm/scummvm/commit/8ce10e3a5ea5120cdbb6a17ca43cb5a46cb6c942
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2025-05-05T19:50:47+03:00
Commit Message:
DIRECTOR: Ensure that GUI options are displayed for games that use them
Changed paths:
engines/director/detection.cpp
engines/director/detection_tables.h
engines/director/director.cpp
engines/director/director.h
engines/director/metaengine.cpp
diff --git a/engines/director/detection.cpp b/engines/director/detection.cpp
index 9bf8079fa8e..e9ac4bdc9b3 100644
--- a/engines/director/detection.cpp
+++ b/engines/director/detection.cpp
@@ -114,6 +114,8 @@ public:
}
ADDetectedGame fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist, ADDetectedGameExtraInfo **extraInfo) const override;
+
+ DetectedGame toDetectedGame(const ADDetectedGame &adGame, ADDetectedGameExtraInfo *extraInfo) const override;
};
static Director::DirectorGameDescription s_fallbackDesc = {
@@ -312,4 +314,16 @@ ADDetectedGame DirectorMetaEngineDetection::fallbackDetect(const FileMap &allFil
return ADDetectedGame();
}
+DetectedGame DirectorMetaEngineDetection::toDetectedGame(const ADDetectedGame &adGame, ADDetectedGameExtraInfo *extraInfo) const {
+ DetectedGame game = AdvancedMetaEngineDetectionBase::toDetectedGame(adGame, extraInfo);
+ const Director::DirectorGameDescription *desc = reinterpret_cast<const Director::DirectorGameDescription *>(adGame.desc);
+
+ if (desc->desc.platform == Common::kPlatformMacintosh || desc->desc.platform == Common::kPlatformPippin)
+ game.appendGUIOptions(Common::getGameGUIOptionsDescription(GAMEOPTION_GAMMA_CORRECTION));
+ if (!(desc->desc.flags & Director::GF_32BPP))
+ game.appendGUIOptions(Common::getGameGUIOptionsDescription(GAMEOPTION_TRUE_COLOR));
+
+ return game;
+}
+
REGISTER_PLUGIN_STATIC(DIRECTOR_DETECTION, PLUGIN_TYPE_ENGINE_DETECTION, DirectorMetaEngineDetection);
diff --git a/engines/director/detection_tables.h b/engines/director/detection_tables.h
index 5f2640e75e2..61eb71451f0 100644
--- a/engines/director/detection_tables.h
+++ b/engines/director/detection_tables.h
@@ -1864,59 +1864,59 @@ namespace Director {
#define GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,l,p,fl,v) { { t, e, AD_ENTRY2s(f1, m1, s1, f2, m2, s2), l, p, ((fl) | SUPPORT_STATUS), GUIO1(GUIO_NOASPECT) }, GID_GENERIC, v }
#define GENGAME2t_(t,e,f1,m1,s1,f2,m2,s2,l,p,fl,v) { { t, e, AD_ENTRY2s(f1, m1, s1, f2, m2, s2), l, p, ((fl) | SUPPORT_STATUS | ADGF_TAILMD5), GUIO1(GUIO_NOASPECT) }, GID_GENERIC, v }
-#define MACGAME1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformMacintosh,(GF_GAMMA|ADGF_MACRESFORK),v)
+#define MACGAME1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformMacintosh,(ADGF_MACRESFORK),v)
#define MACGAME1f(t,e,f,m,s,v,fl) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformMacintosh,((fl)|ADGF_MACRESFORK),v)
-#define MACGAME1t(t,e,f,m,s,v) GENGAME1t_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformMacintosh,(GF_GAMMA|ADGF_MACRESFORK),v)
-#define MACGAME1tf(t,e,f,m,s,v,fl) GENGAME1t_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformMacintosh,(GF_GAMMA|(fl)|ADGF_MACRESFORK),v)
-#define PIPGAME1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformPippin,(GF_GAMMA|ADGF_MACRESFORK),v)
-#define PIPGAME1f(t,e,f,m,s,v,fl) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformPippin,(GF_GAMMA|(fl)|ADGF_MACRESFORK),v)
+#define MACGAME1t(t,e,f,m,s,v) GENGAME1t_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformMacintosh,(ADGF_MACRESFORK),v)
+#define MACGAME1tf(t,e,f,m,s,v,fl) GENGAME1t_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformMacintosh,((fl)|ADGF_MACRESFORK),v)
+#define PIPGAME1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformPippin,(ADGF_MACRESFORK),v)
+#define PIPGAME1f(t,e,f,m,s,v,fl) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformPippin,((fl)|ADGF_MACRESFORK),v)
#define WINGAME1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformWindows,ADGF_NO_FLAGS,v)
#define WINGAME1f(t,e,f,m,s,v,fl) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformWindows,((fl)|ADGF_NO_FLAGS),v)
#define WINGAME1t(t,e,f,m,s,v) GENGAME1t_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformWindows,ADGF_NO_FLAGS,v)
#define WINGAME1tf(t,e,f,m,s,v,fl) GENGAME1t_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformWindows,((fl)|ADGF_NO_FLAGS),v)
#define FMTGAME1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformFMTowns,ADGF_NO_FLAGS,v)
#define SHKGAME1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformShockwave,ADGF_NO_FLAGS,v)
-#define MACDEMO1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformMacintosh,(GF_GAMMA|ADGF_MACRESFORK|ADGF_DEMO),v)
-#define MACDEMO1t(t,e,f,m,s,v) GENGAME1t_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformMacintosh,(GF_GAMMA|ADGF_MACRESFORK|ADGF_DEMO),v)
+#define MACDEMO1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformMacintosh,(ADGF_MACRESFORK|ADGF_DEMO),v)
+#define MACDEMO1t(t,e,f,m,s,v) GENGAME1t_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformMacintosh,(ADGF_MACRESFORK|ADGF_DEMO),v)
#define WINDEMO1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformWindows,ADGF_DEMO,v)
#define WINDEMO1t(t,e,f,m,s,v) GENGAME1t_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformWindows,ADGF_DEMO,v)
-#define MACGAME1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformMacintosh,(GF_GAMMA|ADGF_MACRESFORK),v)
-#define MACGAME1f_l(t,e,f,m,s,l,v,fl) GENGAME1_(t,e,f,m,s,l,Common::kPlatformMacintosh,(GF_GAMMA|(fl)|ADGF_MACRESFORK),v)
-#define PIPGAME1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformPippin,(GF_GAMMA|ADGF_MACRESFORK),v)
+#define MACGAME1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformMacintosh,(ADGF_MACRESFORK),v)
+#define MACGAME1f_l(t,e,f,m,s,l,v,fl) GENGAME1_(t,e,f,m,s,l,Common::kPlatformMacintosh,((fl)|ADGF_MACRESFORK),v)
+#define PIPGAME1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformPippin,(ADGF_MACRESFORK),v)
#define WINGAME1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformWindows,ADGF_NO_FLAGS,v)
#define WINGAME1f_l(t,e,f,m,s,l,v,fl) GENGAME1_(t,e,f,m,s,l,Common::kPlatformWindows,fl,v)
#define WINGAME1t_l(t,e,f,m,s,l,v) GENGAME1t_(t,e,f,m,s,l,Common::kPlatformWindows,ADGF_NO_FLAGS,v)
#define WINGAME1tf_l(t,e,f,m,s,l,v,fl) GENGAME1t_(t,e,f,m,s,l,Common::kPlatformWindows,fl,v)
-#define MACGAME1t_l(t,e,f,m,s,l,v) GENGAME1t_(t,e,f,m,s,l,Common::kPlatformMacintosh,(GF_GAMMA|ADGF_MACRESFORK),v)
+#define MACGAME1t_l(t,e,f,m,s,l,v) GENGAME1t_(t,e,f,m,s,l,Common::kPlatformMacintosh,(ADGF_MACRESFORK),v)
#define FMTGAME1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformFMTowns,ADGF_NO_FLAGS,v)
#define SHKGAME1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformShockwave,ADGF_NO_FLAGS,v)
-#define MACDEMO1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformMacintosh,(GF_GAMMA|ADGF_MACRESFORK|ADGF_DEMO),v)
-#define MACDEMO1f_l(t,e,f,m,s,l,v,fl) GENGAME1_(t,e,f,m,s,l,Common::kPlatformMacintosh,(GF_GAMMA|(fl)|ADGF_MACRESFORK|ADGF_DEMO),v)
-#define PIPDEMO1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformPippin,(GF_GAMMA|ADGF_MACRESFORK|ADGF_DEMO),v)
+#define MACDEMO1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformMacintosh,(ADGF_MACRESFORK|ADGF_DEMO),v)
+#define MACDEMO1f_l(t,e,f,m,s,l,v,fl) GENGAME1_(t,e,f,m,s,l,Common::kPlatformMacintosh,((fl)|ADGF_MACRESFORK|ADGF_DEMO),v)
+#define PIPDEMO1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformPippin,(ADGF_MACRESFORK|ADGF_DEMO),v)
#define WINDEMO1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformWindows,ADGF_DEMO,v)
#define WINDEMO1t_l(t,e,f,m,s,l,v) GENGAME1t_(t,e,f,m,s,l,Common::kPlatformWindows,ADGF_DEMO,v)
-#define MACGAME2(t,e,f1,m1,s1,f2,m2,s2,v) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,Common::EN_ANY,Common::kPlatformMacintosh,(GF_GAMMA|ADGF_MACRESFORK),v)
-#define MACGAME2f(t,e,f1,m1,s1,f2,m2,s2,v,fl) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,Common::EN_ANY,Common::kPlatformMacintosh,(GF_GAMMA|(fl)|ADGF_MACRESFORK),v)
-#define MACGAME2tf(t,e,f1,m1,s1,f2,m2,s2,v,fl) GENGAME2t_(t,e,f1,m1,s1,f2,m2,s2,Common::EN_ANY,Common::kPlatformMacintosh,(GF_GAMMA|(fl)|ADGF_MACRESFORK),v)
-#define PIPGAME2(t,e,f1,m1,s1,f2,m2,s2,v) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,Common::EN_ANY,Common::kPlatformPippin,(GF_GAMMA|ADGF_MACRESFORK),v)
+#define MACGAME2(t,e,f1,m1,s1,f2,m2,s2,v) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,Common::EN_ANY,Common::kPlatformMacintosh,(ADGF_MACRESFORK),v)
+#define MACGAME2f(t,e,f1,m1,s1,f2,m2,s2,v,fl) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,Common::EN_ANY,Common::kPlatformMacintosh,((fl)|ADGF_MACRESFORK),v)
+#define MACGAME2tf(t,e,f1,m1,s1,f2,m2,s2,v,fl) GENGAME2t_(t,e,f1,m1,s1,f2,m2,s2,Common::EN_ANY,Common::kPlatformMacintosh,((fl)|ADGF_MACRESFORK),v)
+#define PIPGAME2(t,e,f1,m1,s1,f2,m2,s2,v) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,Common::EN_ANY,Common::kPlatformPippin,(ADGF_MACRESFORK),v)
#define WINGAME2(t,e,f1,m1,s1,f2,m2,s2,v) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,Common::EN_ANY,Common::kPlatformWindows,ADGF_NO_FLAGS,v)
#define WINGAME2f(t,e,f1,m1,s1,f2,m2,s2,v,fl) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,Common::EN_ANY,Common::kPlatformWindows,((fl)|ADGF_NO_FLAGS),v)
#define WINGAME2f_l(t,e,f1,m1,s1,f2,m2,s2,l,v,fl) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,l,Common::kPlatformWindows,((fl)|ADGF_NO_FLAGS),v)
#define WINGAME2t(t,e,f1,m1,s1,f2,m2,s2,v) GENGAME2t_(t,e,f1,m1,s1,f2,m2,s2,Common::EN_ANY,Common::kPlatformWindows,ADGF_NO_FLAGS,v)
#define WINGAME2tf(t,e,f1,m1,s1,f2,m2,s2,v,fl) GENGAME2t_(t,e,f1,m1,s1,f2,m2,s2,Common::EN_ANY,Common::kPlatformWindows,((fl)|ADGF_NO_FLAGS),v)
#define FMTGAME2(t,e,f1,m1,s1,f2,m2,s2,v) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,Common::EN_ANY,Common::kPlatformFMTowns,ADGF_NO_FLAGS,v)
-#define MACDEMO2(t,e,f1,m1,s1,f2,m2,s2,v) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,Common::EN_ANY,Common::kPlatformMacintosh,(GF_GAMMA|ADGF_MACRESFORK|ADGF_DEMO),v)
+#define MACDEMO2(t,e,f1,m1,s1,f2,m2,s2,v) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,Common::EN_ANY,Common::kPlatformMacintosh,(ADGF_MACRESFORK|ADGF_DEMO),v)
#define WINDEMO2(t,e,f1,m1,s1,f2,m2,s2,v) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,Common::EN_ANY,Common::kPlatformWindows,ADGF_DEMO,v)
#define WINDEMO2t(t,e,f1,m1,s1,f2,m2,s2,v) GENGAME2t_(t,e,f1,m1,s1,f2,m2,s2,Common::EN_ANY,Common::kPlatformWindows,ADGF_DEMO,v)
#define WINDEMO2f(t,e,f1,m1,s1,f2,m2,s2,v,fl) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,Common::EN_ANY,Common::kPlatformWindows,((fl)|ADGF_DEMO),v)
-#define MACGAME2_l(t,e,f1,m1,s1,f2,m2,s2,l,v) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,l,Common::kPlatformMacintosh,(GF_GAMMA|ADGF_MACRESFORK),v)
-#define PIPGAME2_l(t,e,f1,m1,s1,f2,m2,s2,l,v) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,l,Common::kPlatformPippin,(GF_GAMMA|ADGF_MACRESFORK),v)
+#define MACGAME2_l(t,e,f1,m1,s1,f2,m2,s2,l,v) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,l,Common::kPlatformMacintosh,(ADGF_MACRESFORK),v)
+#define PIPGAME2_l(t,e,f1,m1,s1,f2,m2,s2,l,v) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,l,Common::kPlatformPippin,(ADGF_MACRESFORK),v)
#define WINGAME2_l(t,e,f1,m1,s1,f2,m2,s2,l,v) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,l,Common::kPlatformWindows,ADGF_NO_FLAGS,v)
-#define MACGAME2f_l(t,e,f1,m1,s1,f2,m2,s2,l,v,fl) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,l,Common::kPlatformMacintosh, (GF_GAMMA|(fl)|ADGF_MACRESFORK), v)
+#define MACGAME2f_l(t,e,f1,m1,s1,f2,m2,s2,l,v,fl) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,l,Common::kPlatformMacintosh, ((fl)|ADGF_MACRESFORK), v)
#define WINGAME2t_l(t,e,f1,m1,s1,f2,m2,s2,l,v) GENGAME2t_(t,e,f1,m1,s1,f2,m2,s2,l,Common::kPlatformWindows,ADGF_NO_FLAGS,v)
#define FMTGAME2_l(t,e,f1,m1,s1,f2,m2,s2,l,v) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,l,Common::kPlatformFMTowns,ADGF_NO_FLAGS,v)
-#define MACDEMO2_l(t,e,f1,m1,s1,f2,m2,s2,l,v) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,l,Common::kPlatformMacintosh,(GF_GAMMA|ADGF_MACRESFORK|ADGF_DEMO),v)
+#define MACDEMO2_l(t,e,f1,m1,s1,f2,m2,s2,l,v) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,l,Common::kPlatformMacintosh,(ADGF_MACRESFORK|ADGF_DEMO),v)
#define WINDEMO2_l(t,e,f1,m1,s1,f2,m2,s2,l,v) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,l,Common::kPlatformWindows,ADGF_DEMO,v)
#define WINDEMO2t_l(t,e,f1,m1,s1,f2,m2,s2,l,v) GENGAME2t_(t,e,f1,m1,s1,f2,m2,s2,l,Common::kPlatformWindows,ADGF_DEMO,v)
#define WINDEMO2f_l(t,e,f1,m1,s1,f2,m2,s2,l,v,fl) GENGAME2_(t,e,f1,m1,s1,f2,m2,s2,l,Common::kPlatformWindows,((fl)|ADGF_DEMO),v)
diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index e7b8960f673..90dffb2af2b 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -129,10 +129,10 @@ DirectorEngine::DirectorEngine(OSystem *syst, const DirectorGameDescription *gam
_colorDepth = 8; // 256-color
}
// Enable Macintosh gamma correction. This resolves the issue of Mac games appearing too dark.
- // Applied by default for Macintosh and Pippin games in the detection list.
+ // Enabled by default for Macintosh and Pippin games in the detection code.
// Right now only used in 8-bit mode to adjust the palette.
// FIXME: How do we add this to true color rendering without a heap of workarounds?
- _gammaCorrection = ConfMan.getBool("gamma_correction") || (getGameFlags() & GF_GAMMA);
+ _gammaCorrection = ConfMan.getBool("gamma_correction");
switch (getPlatform()) {
case Common::kPlatformMacintoshII:
diff --git a/engines/director/director.h b/engines/director/director.h
index 5f9174276a0..ed4807f129f 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -99,7 +99,6 @@ enum {
GF_DESKTOP = 1 << 0,
GF_640x480 = 1 << 1,
GF_32BPP = 1 << 2,
- GF_GAMMA = 1 << 3,
};
struct MovieReference {
diff --git a/engines/director/metaengine.cpp b/engines/director/metaengine.cpp
index 85c20a3b0d5..61d248b4cfb 100644
--- a/engines/director/metaengine.cpp
+++ b/engines/director/metaengine.cpp
@@ -70,7 +70,7 @@ static const ADExtraGuiOptionsMap optionsList[] = {
_s("Enable gamma correction"),
_s("Brighten the graphics to simulate a Macintosh monitor"),
"gamma_correction",
- false,
+ true,
0,
0
}
More information about the Scummvm-git-logs
mailing list