[Scummvm-git-logs] scummvm master -> c0aa33528df6cf2e0fae99abdfb0938ec3e8857e

mduggan noreply at scummvm.org
Fri Jun 10 00:01:33 UTC 2022


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:
026ed0d1d5 ULTIMA8: Use ADExtraGuiOptionsMap for all games
c0aa33528d ULTIMA8: The Christmas easter egg in No Regret is not in the demo version


Commit: 026ed0d1d51af3427993fc9c8cc9c2f9e307b028
    https://github.com/scummvm/scummvm/commit/026ed0d1d51af3427993fc9c8cc9c2f9e307b028
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2022-06-10T09:01:29+09:00

Commit Message:
ULTIMA8: Use ADExtraGuiOptionsMap for all games

Changed paths:
    engines/ultima/detection.cpp
    engines/ultima/detection.h
    engines/ultima/detection_tables.h


diff --git a/engines/ultima/detection.cpp b/engines/ultima/detection.cpp
index 4c4e96971f0..ef167e3b70c 100644
--- a/engines/ultima/detection.cpp
+++ b/engines/ultima/detection.cpp
@@ -60,115 +60,118 @@ static const ADExtraGuiOptionsMap optionsList[] = {
 			0
 		}
 	},
-	AD_EXTRA_GUI_OPTIONS_TERMINATOR
-};
-
-static const ExtraGuiOption COMMON_OPTIONS[] = {
 	{
-		_s("Enable frame skipping"),
-		_s("Allow the game to skip animation frames when running too slow."),
-		"frameSkip",
-		false,
-		0,
-		0
+		GAMEOPTION_FRAME_SKIPPING,
+		{
+			_s("Enable frame skipping"),
+			_s("Allow the game to skip animation frames when running too slow."),
+			"frameSkip",
+			false,
+			0,
+			0
+		}
 	},
 	{
-		_s("Enable frame limiting"),
-		_s("Limits the speed of the game to prevent running too fast."),
-		"frameLimit",
-		true,
-		0,
-		0
+		GAMEOPTION_FRAME_LIMITING,
+		{
+			_s("Enable frame limiting"),
+			_s("Limits the speed of the game to prevent running too fast."),
+			"frameLimit",
+			true,
+			0,
+			0
+		}
 	},
 	{
-		_s("Enable cheats"),
-		_s("Allow cheats by commands and a menu when player is clicked."),
-		"cheat",
-		false,
-		0,
-		0
+		GAMEOPTION_CHEATS,
+		{
+			_s("Enable cheats"),
+			_s("Allow cheats by commands and a menu when player is clicked."),
+			"cheat",
+			false,
+			0,
+			0
+		}
 	},
 	{
-		_s("Enable high resolution"),
-		_s("Enable a higher resolution for the game"),
-		"usehighres",
-		false,
-		0,
-		0
+		GAMEOPTION_HIGH_RESOLUTION,
+		{
+			_s("Enable high resolution"),
+			_s("Enable a higher resolution for the game"),
+			"usehighres",
+			false,
+			0,
+			0
+		}
 	},
-	{ nullptr, nullptr, nullptr, false, 0, 0 }
-};
-
-static const ExtraGuiOption U8_OPTIONS[] = {
 	{
-		_s("Play foot step sounds"),
-		_s("Plays sound when the player moves."),
-		"footsteps",
-		true,
-		0,
-		0
+		GAMEOPTION_FOOTSTEP_SOUNDS,
+		{
+			_s("Play foot step sounds"),
+			_s("Plays sound when the player moves."),
+			"footsteps",
+			true,
+			0,
+			0
+		}
 	},
 	{
-		_s("Enable jump to mouse position"),
-		_s("Jumping while not moving targets the mouse cursor rather than direction only."),
-		"targetedjump",
-		true,
-		0,
-		0
+		GAMEOPTION_JUMP_TO_MOUSE,
+		{
+			_s("Enable jump to mouse position"),
+			_s("Jumping while not moving targets the mouse cursor rather than direction only."),
+			"targetedjump",
+			true,
+			0,
+			0
+		}
 	},
 	{
-		_s("Use original save/load screens"),
-		_s("Use the original save/load screens instead of the ScummVM ones"),
-		"originalsaveload",
-		false,
-		0,
-		0
+		GAMEOPTION_FONT_REPLACEMENT,
+		{
+			_s("Enable font replacement"),
+			_s("Replaces game fonts with rendered fonts"),
+			"font_override",
+			false,
+			0,
+			0
+		}
 	},
 	{
-		_s("Enable font replacement"),
-		_s("Replaces game fonts with rendered fonts"),
-		"font_override",
-		false,
-		0,
-		0
+		GAMEOPTION_FONT_ANTIALIASING,
+		{
+			_s("Enable font anti-aliasing"),
+			_s("When font anti-aliasing is enabled, the text is smoother."),
+			"font_antialiasing",
+			false,
+			0,
+			0
+		}
 	},
 	{
-		_s("Enable font anti-aliasing"),
-		_s("When font anti-aliasing is enabled, the text is smoother."),
-		"font_antialiasing",
-		false,
-		0,
-		0
+		GAMEOPTION_CAMERA_WITH_SILENCER,
+		{
+			// I18N: Silencer is the player-character in Crusader games, known as the Avatar in Ultima series.
+			_s("Camera moves with Silencer"),
+			_s("Camera tracks the player movement rather than snapping to defined positions."),
+			"camera_on_player",
+			true,
+			0,
+			0
+		}
 	},
-	{ nullptr, nullptr, nullptr, false, 0, 0 }
-};
-
-static const ExtraGuiOption CAMERA_WITH_SILENCER = {
-	// I18N: Silencer is the player-character in Crusader games, known as the Avatar in Ultima series.
-	_s("Camera moves with Silencer"),
-	_s("Camera tracks the player movement rather than snapping to defined positions."),
-	"camera_on_player",
-	true,
-	0,
-	0
-};
-
-static const ExtraGuiOption REMORSE_OPTIONS[] = {
-	CAMERA_WITH_SILENCER,
-	{ nullptr, nullptr, nullptr, false, 0, 0 }
-};
-
-static const ExtraGuiOption REGRET_OPTIONS[] = {
-	CAMERA_WITH_SILENCER,
 	{
-		_s("Always enable Christmas easter-egg"),
-		_s("Enable the Christmas music at any time of year."),
-		"always_christmas",
-		true,
-		0,
-		0
+		GAMEOPTION_ALWAYS_CHRISTMAS,
+		{
+			_s("Always enable Christmas easter-egg"),
+			_s("Enable the Christmas music at any time of year."),
+			"always_christmas",
+			true,
+			0,
+			0
+		}
 	},
-	{ nullptr, nullptr, nullptr, false, 0, 0 }
+	AD_EXTRA_GUI_OPTIONS_TERMINATOR
 };
 
 } // End of namespace Ultima
@@ -180,46 +183,4 @@ UltimaMetaEngineDetection::UltimaMetaEngineDetection() : AdvancedMetaEngineDetec
 	_directoryGlobs = DIRECTORY_GLOBS;
 }
 
-Common::String UltimaMetaEngineDetection::getGameId(const Common::String& target) {
-	// Store a copy of the active domain
-	Common::String currDomain = ConfMan.getActiveDomainName();
-
-	// Switch to the given target domain and get it's game Id
-	ConfMan.setActiveDomain(target);
-	Common::String gameId = ConfMan.get("gameid");
-
-	// Switch back to the original domain and return the game Id
-	ConfMan.setActiveDomain(currDomain);
-	return gameId;
-}
-
-const ExtraGuiOptions UltimaMetaEngineDetection::getExtraGuiOptions(const Common::String &target) const {
-	// TODO: Use ADExtraGuiOptionsMap for all games
-	const Common::String gameId = getGameId(target);
-	if (gameId == "ultima8" || gameId == "remorse" || gameId == "regret") {
-		ExtraGuiOptions options;
-
-		for (const ExtraGuiOption *o = Ultima::COMMON_OPTIONS; o->configOption; ++o) {
-			options.push_back(*o);
-		}
-
-		// Game specific options
-		const ExtraGuiOption *game_options;
-		if (gameId == "ultima8")
-			game_options = Ultima::U8_OPTIONS;
-		else if (gameId == "remorse")
-			game_options = Ultima::REMORSE_OPTIONS;
-		else
-			game_options = Ultima::REGRET_OPTIONS;
-
-		for (const ExtraGuiOption *o = game_options; o->configOption; ++o) {
-			options.push_back(*o);
-		}
-
-		return options;
-	}
-
-	return MetaEngineDetection::getExtraGuiOptions(gameId);
-}
-
 REGISTER_PLUGIN_STATIC(ULTIMA_DETECTION, PLUGIN_TYPE_ENGINE_DETECTION, UltimaMetaEngineDetection);
diff --git a/engines/ultima/detection.h b/engines/ultima/detection.h
index 5cd3145fc20..d016b1e8624 100644
--- a/engines/ultima/detection.h
+++ b/engines/ultima/detection.h
@@ -86,11 +86,6 @@ public:
 	const char *getOriginalCopyright() const override {
 		return "Ultima Games (C) 1980-1995 Origin Systems Inc.";
 	}
-
-	const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const override;
-
-private:
-	static Common::String getGameId(const Common::String& target);
 };
 
 #endif
diff --git a/engines/ultima/detection_tables.h b/engines/ultima/detection_tables.h
index 09da7f2b020..05c312726d0 100644
--- a/engines/ultima/detection_tables.h
+++ b/engines/ultima/detection_tables.h
@@ -22,8 +22,25 @@
 namespace Ultima {
 
 #define GAMEOPTION_ORIGINAL_SAVELOAD GUIO_GAMEOPTIONS1
-
-#define GUI_OPTIONS_ULTIMA8	GUIO1(GAMEOPTION_ORIGINAL_SAVELOAD)
+#define GAMEOPTION_FRAME_SKIPPING    GUIO_GAMEOPTIONS2
+#define GAMEOPTION_FRAME_LIMITING    GUIO_GAMEOPTIONS3
+#define GAMEOPTION_CHEATS            GUIO_GAMEOPTIONS4
+#define GAMEOPTION_HIGH_RESOLUTION   GUIO_GAMEOPTIONS5
+#define GAMEOPTION_FOOTSTEP_SOUNDS   GUIO_GAMEOPTIONS6
+#define GAMEOPTION_JUMP_TO_MOUSE     GUIO_GAMEOPTIONS7
+#define GAMEOPTION_FONT_REPLACEMENT  GUIO_GAMEOPTIONS8
+#define GAMEOPTION_FONT_ANTIALIASING GUIO_GAMEOPTIONS9
+#define GAMEOPTION_CAMERA_WITH_SILENCER GUIO_GAMEOPTIONS10
+#define GAMEOPTION_ALWAYS_CHRISTMAS     GUIO_GAMEOPTIONS11
+
+#define GUI_OPTIONS_ULTIMA1	GUIO0()
+#define GUI_OPTIONS_ULTIMA4	GUIO1(GUIO_NOSPEECH)
+#define GUI_OPTIONS_ULTIMA6	GUIO0()
+#define GUI_OPTIONS_ULTIMA8	GUIO5(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FRAME_SKIPPING, GAMEOPTION_FRAME_LIMITING, GAMEOPTION_CHEATS, GAMEOPTION_HIGH_RESOLUTION)
+#define GUI_OPTIONS_REMORSE	GUIO6(GUIO_NOMIDI, GAMEOPTION_FRAME_SKIPPING, GAMEOPTION_FRAME_LIMITING, GAMEOPTION_CHEATS, GAMEOPTION_HIGH_RESOLUTION, GAMEOPTION_CAMERA_WITH_SILENCER)
+#define GUI_OPTIONS_REGRET	GUIO7(GUIO_NOMIDI, GAMEOPTION_FRAME_SKIPPING, GAMEOPTION_FRAME_LIMITING, GAMEOPTION_CHEATS, GAMEOPTION_HIGH_RESOLUTION, GAMEOPTION_CAMERA_WITH_SILENCER, GAMEOPTION_ALWAYS_CHRISTMAS)
+#define GUI_OPTIONS_MARTIAN_DREAMS GUIO0()
+#define GUI_OPTIONS_SAVAGE_EMPIRE  GUIO0()
 
 static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 #ifndef RELEASE_BUILD
@@ -41,7 +58,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE,
-			GUIO0()
+			GUI_OPTIONS_ULTIMA1
 		},
 		GAME_ULTIMA1,
 		GF_VGA_ENHANCED
@@ -57,7 +74,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::JA_JPN,
 			Common::kPlatformPC98,
 			ADGF_UNSTABLE,
-			GUIO0()
+			GUI_OPTIONS_ULTIMA1
 		},
 		GAME_ULTIMA1,
 		0
@@ -72,7 +89,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE,
-			GUIO0()
+			GUI_OPTIONS_ULTIMA1
 		},
 		GAME_ULTIMA1,
 		0
@@ -88,7 +105,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
-			GUIO1(GUIO_NOSPEECH)
+			GUI_OPTIONS_ULTIMA4
 		},
 		GAME_ULTIMA4,
 		0
@@ -103,7 +120,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
-			GUIO1(GUIO_NOSPEECH)
+			GUI_OPTIONS_ULTIMA4
 		},
 		GAME_ULTIMA4,
 		GF_VGA_ENHANCED
@@ -118,7 +135,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
-			GUIO0()
+			GUI_OPTIONS_ULTIMA6
 		},
 		GAME_ULTIMA6,
 		0
@@ -133,7 +150,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
-			GUIO0()
+			GUI_OPTIONS_ULTIMA6
 		},
 		GAME_ULTIMA6,
 		GF_VGA_ENHANCED
@@ -149,7 +166,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::DE_DEU,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
-			GUIO0()
+			GUI_OPTIONS_ULTIMA6
 		},
 		GAME_ULTIMA6,
 		0
@@ -165,7 +182,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::DE_DEU,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
-			GUIO0()
+			GUI_OPTIONS_ULTIMA6
 		},
 		GAME_ULTIMA6,
 		GF_VGA_ENHANCED
@@ -181,7 +198,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::DE_DEU,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
-			GUIO0()
+			GUI_OPTIONS_ULTIMA6
 		},
 		GAME_ULTIMA6,
 		0
@@ -196,7 +213,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::JA_JPN,
 			Common::kPlatformPC98,
 			ADGF_UNSTABLE,
-			GUIO0()
+			GUI_OPTIONS_ULTIMA6
 		},
 		GAME_ULTIMA6,
 		0
@@ -211,7 +228,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
-			GUIO0()
+			GUI_OPTIONS_ULTIMA6
 		},
 		GAME_ULTIMA6,
 		0
@@ -224,7 +241,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
-			GUIO0()
+			GUI_OPTIONS_ULTIMA6
 		},
 		GAME_ULTIMA6,
 		GF_VGA_ENHANCED
@@ -239,7 +256,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
-			GUIO0()
+			GUI_OPTIONS_ULTIMA6
 		},
 		GAME_ULTIMA6,
 		0
@@ -252,7 +269,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
-			GUIO0()
+			GUI_OPTIONS_ULTIMA6
 		},
 		GAME_ULTIMA6,
 		GF_VGA_ENHANCED
@@ -401,7 +418,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_USECODE_DEFAULT,
-			GUIO1(GUIO_NOMIDI)
+			GUI_OPTIONS_REMORSE
 		},
 		GAME_CRUSADER_REM,
 		0
@@ -416,7 +433,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE,
-			GUIO1(GUIO_NOMIDI)
+			GUI_OPTIONS_REMORSE
 		},
 		GAME_CRUSADER_REM,
 		0
@@ -431,7 +448,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE | ADGF_USECODE_ORIG,
-			GUIO1(GUIO_NOMIDI)
+			GUI_OPTIONS_REMORSE
 		},
 		GAME_CRUSADER_REM,
 		0
@@ -446,7 +463,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::FR_FRA,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE | ADGF_USECODE_FR,
-			GUIO1(GUIO_NOMIDI)
+			GUI_OPTIONS_REMORSE
 		},
 		GAME_CRUSADER_REM,
 		0
@@ -461,7 +478,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::ES_ESP,
 			Common::kPlatformDOS,
 			ADGF_USECODE_ES,
-			GUIO1(GUIO_NOMIDI)
+			GUI_OPTIONS_REMORSE
 		},
 		GAME_CRUSADER_REM,
 		0
@@ -476,7 +493,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::ES_ESP,
 			Common::kPlatformDOS,
 			ADGF_USECODE_DEFAULT,
-			GUIO1(GUIO_NOMIDI)
+			GUI_OPTIONS_REMORSE
 		},
 		GAME_CRUSADER_REM,
 		0
@@ -491,7 +508,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::JA_JPN,
 			Common::kPlatformWindows,
 			ADGF_UNSTABLE | ADGF_USECODE_JA,
-			GUIO1(GUIO_NOMIDI)
+			GUI_OPTIONS_REMORSE
 		},
 		GAME_CRUSADER_REM,
 		0
@@ -506,7 +523,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_DEMO,
-			GUIO1(GUIO_NOMIDI)
+			GUI_OPTIONS_REMORSE
 		},
 		GAME_CRUSADER_REM,
 		0
@@ -521,7 +538,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE | ADGF_USECODE_DEFAULT,
-			GUIO1(GUIO_NOMIDI)
+			GUI_OPTIONS_REGRET
 		},
 		GAME_CRUSADER_REG,
 		0
@@ -536,7 +553,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::DE_DEU,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE | ADGF_USECODE_DE,
-			GUIO1(GUIO_NOMIDI)
+			GUI_OPTIONS_REGRET
 		},
 		GAME_CRUSADER_REG,
 		0
@@ -551,7 +568,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE | ADGF_DEMO,
-			GUIO1(GUIO_NOMIDI)
+			GUI_OPTIONS_REGRET
 		},
 		GAME_CRUSADER_REG,
 		0
@@ -566,7 +583,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::ES_ESP,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE | ADGF_USECODE_ES,
-			GUIO1(GUIO_NOMIDI)
+			GUI_OPTIONS_REGRET
 		},
 		GAME_CRUSADER_REG,
 		0
@@ -581,7 +598,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE,
-			GUIO0()
+			GUI_OPTIONS_MARTIAN_DREAMS
 		},
 		GAME_MARTIAN_DREAMS,
 		0
@@ -596,7 +613,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE,
-			GUIO0()
+			GUI_OPTIONS_MARTIAN_DREAMS
 		},
 		GAME_MARTIAN_DREAMS,
 		GF_VGA_ENHANCED
@@ -612,7 +629,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE,
-			GUIO0()
+			GUI_OPTIONS_SAVAGE_EMPIRE
 		},
 		GAME_SAVAGE_EMPIRE,
 		0
@@ -627,7 +644,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE,
-			GUIO0()
+			GUI_OPTIONS_SAVAGE_EMPIRE
 		},
 		GAME_SAVAGE_EMPIRE,
 		GF_VGA_ENHANCED
@@ -642,7 +659,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE,
-			GUIO0()
+			GUI_OPTIONS_SAVAGE_EMPIRE
 		},
 		GAME_SAVAGE_EMPIRE,
 		0
@@ -657,7 +674,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE,
-			GUIO0()
+			GUI_OPTIONS_SAVAGE_EMPIRE
 		},
 		GAME_SAVAGE_EMPIRE,
 		GF_VGA_ENHANCED


Commit: c0aa33528df6cf2e0fae99abdfb0938ec3e8857e
    https://github.com/scummvm/scummvm/commit/c0aa33528df6cf2e0fae99abdfb0938ec3e8857e
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2022-06-10T09:01:29+09:00

Commit Message:
ULTIMA8: The Christmas easter egg in No Regret is not in the demo version

Changed paths:
    engines/ultima/detection_tables.h
    engines/ultima/ultima8/audio/cru_music_process.cpp
    engines/ultima/ultima8/ultima8.h


diff --git a/engines/ultima/detection_tables.h b/engines/ultima/detection_tables.h
index 05c312726d0..b24c00e1039 100644
--- a/engines/ultima/detection_tables.h
+++ b/engines/ultima/detection_tables.h
@@ -39,6 +39,7 @@ namespace Ultima {
 #define GUI_OPTIONS_ULTIMA8	GUIO5(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FRAME_SKIPPING, GAMEOPTION_FRAME_LIMITING, GAMEOPTION_CHEATS, GAMEOPTION_HIGH_RESOLUTION)
 #define GUI_OPTIONS_REMORSE	GUIO6(GUIO_NOMIDI, GAMEOPTION_FRAME_SKIPPING, GAMEOPTION_FRAME_LIMITING, GAMEOPTION_CHEATS, GAMEOPTION_HIGH_RESOLUTION, GAMEOPTION_CAMERA_WITH_SILENCER)
 #define GUI_OPTIONS_REGRET	GUIO7(GUIO_NOMIDI, GAMEOPTION_FRAME_SKIPPING, GAMEOPTION_FRAME_LIMITING, GAMEOPTION_CHEATS, GAMEOPTION_HIGH_RESOLUTION, GAMEOPTION_CAMERA_WITH_SILENCER, GAMEOPTION_ALWAYS_CHRISTMAS)
+#define GUI_OPTIONS_REGRET_DEMO	GUIO6(GUIO_NOMIDI, GAMEOPTION_FRAME_SKIPPING, GAMEOPTION_FRAME_LIMITING, GAMEOPTION_CHEATS, GAMEOPTION_HIGH_RESOLUTION, GAMEOPTION_CAMERA_WITH_SILENCER)
 #define GUI_OPTIONS_MARTIAN_DREAMS GUIO0()
 #define GUI_OPTIONS_SAVAGE_EMPIRE  GUIO0()
 
@@ -568,7 +569,7 @@ static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE | ADGF_DEMO,
-			GUI_OPTIONS_REGRET
+			GUI_OPTIONS_REGRET_DEMO
 		},
 		GAME_CRUSADER_REG,
 		0
diff --git a/engines/ultima/ultima8/audio/cru_music_process.cpp b/engines/ultima/ultima8/audio/cru_music_process.cpp
index c0f8a515dbc..e76f50e9b13 100644
--- a/engines/ultima/ultima8/audio/cru_music_process.cpp
+++ b/engines/ultima/ultima8/audio/cru_music_process.cpp
@@ -119,10 +119,12 @@ void CruMusicProcess::playMusic(int track) {
 		}
 
 		// Regret has a Christmas music easter egg.
-		TimeDate t;
-		g_system->getTimeAndDate(t);
-		if ((t.tm_mon == 11 && t.tm_mday >= 24) || ConfMan.getBool("always_christmas")) {
-			track = 22;
+		if (!GAME_IS_DEMO) {
+			TimeDate t;
+			g_system->getTimeAndDate(t);
+			if ((t.tm_mon == 11 && t.tm_mday >= 24) || ConfMan.getBool("always_christmas")) {
+				track = 22;
+			}
 		}
 	}
 	playMusic_internal(track);
diff --git a/engines/ultima/ultima8/ultima8.h b/engines/ultima/ultima8/ultima8.h
index bb00ddb2b23..f53b8490300 100644
--- a/engines/ultima/ultima8/ultima8.h
+++ b/engines/ultima/ultima8/ultima8.h
@@ -61,6 +61,7 @@ struct GameInfo;
 #define GAME_IS_REMORSE (Ultima8Engine::get_instance()->getGameInfo()->_type == GameInfo::GAME_REMORSE)
 #define GAME_IS_REGRET (Ultima8Engine::get_instance()->getGameInfo()->_type == GameInfo::GAME_REGRET)
 #define GAME_IS_CRUSADER (GAME_IS_REMORSE || GAME_IS_REGRET)
+#define GAME_IS_DEMO (Ultima8Engine::get_instance()->getGameInfo()->_ucOffVariant == GameInfo::GAME_UC_DEMO)
 
 class Ultima8Engine : public Shared::UltimaEngine {
 	friend class Debugger;




More information about the Scummvm-git-logs mailing list