[Scummvm-cvs-logs] scummvm master -> e862172460640188363873b9fa1fb46a3f4c7f78

bluegr bluegr at gmail.com
Sat Dec 27 13:31:17 CET 2014


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:
ba40b3ea49 ZVISION: Clean up the game settings
e862172460 ZVISION: Add some advanced engine features, and document the engine


Commit: ba40b3ea4905716fc8dd6f01bfec6d414b6b9a58
    https://github.com/scummvm/scummvm/commit/ba40b3ea4905716fc8dd6f01bfec6d414b6b9a58
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2014-12-27T14:29:56+02:00

Commit Message:
ZVISION: Clean up the game settings

Changed paths:
    engines/zvision/detection.cpp
    engines/zvision/zvision.cpp



diff --git a/engines/zvision/detection.cpp b/engines/zvision/detection.cpp
index 4fcb5c0..c613278 100644
--- a/engines/zvision/detection.cpp
+++ b/engines/zvision/detection.cpp
@@ -55,6 +55,10 @@ static const PlainGameDescriptor zVisionGames[] = {
 
 namespace ZVision {
 
+#define GAMEOPTION_ORIGINAL_SAVELOAD        GUIO_GAMEOPTIONS1
+#define GAMEOPTION_DOUBLE_FPS               GUIO_GAMEOPTIONS2
+#define GAMEOPTION_ENABLE_VENUS             GUIO_GAMEOPTIONS3
+
 static const ZVisionGameDescription gameDescriptions[] = {
 
 	{
@@ -66,7 +70,7 @@ static const ZVisionGameDescription gameDescriptions[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
-			GUIO1(GUIO_NONE)
+			GUIO3(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_DOUBLE_FPS, GAMEOPTION_ENABLE_VENUS)
 		},
 		GID_NEMESIS
 	},
@@ -80,7 +84,7 @@ static const ZVisionGameDescription gameDescriptions[] = {
 			Common::EN_ANY,
 			Common::kPlatformWindows,
 			ADGF_DEMO,
-			GUIO1(GUIO_NONE)
+			GUIO3(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_DOUBLE_FPS, GAMEOPTION_ENABLE_VENUS)
 		},
 		GID_NEMESIS
 	},
@@ -94,7 +98,7 @@ static const ZVisionGameDescription gameDescriptions[] = {
 			Common::EN_ANY,
 			Common::kPlatformWindows,
 			ADGF_NO_FLAGS,
-			GUIO1(GUIO_NONE)
+			GUIO2(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_DOUBLE_FPS)
 		},
 		GID_GRANDINQUISITOR
 	},
@@ -108,7 +112,7 @@ static const ZVisionGameDescription gameDescriptions[] = {
 			Common::EN_ANY,
 			Common::kPlatformWindows,
 			ADGF_NO_FLAGS,
-			GUIO1(GUIO_NONE)
+			GUIO2(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_DOUBLE_FPS)
 		},
 		GID_GRANDINQUISITOR
 	},
@@ -122,7 +126,7 @@ static const ZVisionGameDescription gameDescriptions[] = {
 			Common::EN_ANY,
 			Common::kPlatformWindows,
 			ADGF_DEMO,
-			GUIO1(GUIO_NONE)
+			GUIO2(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_DOUBLE_FPS)
 		},
 		GID_GRANDINQUISITOR
 	},
@@ -140,23 +144,43 @@ static const char *directoryGlobs[] = {
 	0
 };
 
-static const ExtraGuiOption ZVisionExtraGuiOption = {
-	_s("Use original save/load screens"),
-	_s("Use the original save/load screens, instead of the ScummVM ones"),
-	"originalsaveload",
-	false
-};
+static const ADExtraGuiOptionsMap optionsList[] = {
+	{
+		GAMEOPTION_ORIGINAL_SAVELOAD,
+		{
+			_s("Use original save/load screens"),
+			_s("Use the original save/load screens, instead of the ScummVM ones"),
+			"originalsaveload",
+			false
+		}
+	},
 
-static const ExtraGuiOption ZVisionExtraGuiOption2 = {
-	_s("Double FPS"),
-	_s("Halve the update delay"),
-	"doublefps",
-	false
+	{
+		GAMEOPTION_DOUBLE_FPS,
+		{
+			_s("Double FPS"),
+			_s("Halve the update delay"),
+			"doublefps",
+			false
+		}
+	},
+
+	{
+		GAMEOPTION_ENABLE_VENUS,
+		{
+			_s("Enable Venus"),
+			_s("Enable the Venus help system"),
+			"venusenabled",
+			true
+		}
+	},
+
+	AD_EXTRA_GUI_OPTIONS_TERMINATOR
 };
 
 class ZVisionMetaEngine : public AdvancedMetaEngine {
 public:
-	ZVisionMetaEngine() : AdvancedMetaEngine(ZVision::gameDescriptions, sizeof(ZVision::ZVisionGameDescription), zVisionGames) {
+	ZVisionMetaEngine() : AdvancedMetaEngine(ZVision::gameDescriptions, sizeof(ZVision::ZVisionGameDescription), zVisionGames, optionsList) {
 		_maxScanDepth = 2;
 		_directoryGlobs = directoryGlobs;
 		_singleid = "zvision";
@@ -172,7 +196,6 @@ public:
 
 	virtual bool hasFeature(MetaEngineFeature f) const;
 	virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
-	virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const;
 	SaveStateList listSaves(const char *target) const;
 	virtual int getMaximumSaveSlot() const;
 	void removeSaveState(const char *target, int slot) const;
@@ -223,13 +246,6 @@ bool ZVisionMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADG
 	return gd != 0;
 }
 
-const ExtraGuiOptions ZVisionMetaEngine::getExtraGuiOptions(const Common::String &target) const {
-	ExtraGuiOptions options;
-	options.push_back(ZVisionExtraGuiOption);
-	options.push_back(ZVisionExtraGuiOption2);
-	return options;
-}
-
 SaveStateList ZVisionMetaEngine::listSaves(const char *target) const {
 	Common::SaveFileManager *saveFileMan = g_system->getSavefileManager();
 	ZVision::SaveGameHeader header;
diff --git a/engines/zvision/zvision.cpp b/engines/zvision/zvision.cpp
index 7c26eba..5f4924d 100644
--- a/engines/zvision/zvision.cpp
+++ b/engines/zvision/zvision.cpp
@@ -57,25 +57,29 @@ namespace ZVision {
 struct zvisionIniSettings {
 	const char *name;
 	int16 slot;
-	int16 deflt;
+	int16 defaultValue;	// -1: use the bool value
+	bool defaultBoolValue;
+	bool allowEditing;
 } settingsKeys[ZVISION_SETTINGS_KEYS_COUNT] = {
-	{"ZVision_KeyboardTurnSpeed", StateKey_KbdRotateSpeed, 5},
-	{"ZVision_PanaRotateSpeed", StateKey_RotateSpeed, 540},
-	{"ZVision_QSoundEnabled", StateKey_Qsound, 1},
-	{"ZVision_VenusEnabled", StateKey_VenusEnable, 1},
-	{"ZVision_HighQuality", StateKey_HighQuality, 1},
-	{"ZVision_Platform", StateKey_Platform, 0},
-	{"ZVision_InstallLevel", StateKey_InstallLevel, 0},
-	{"ZVision_CountryCode", StateKey_CountryCode, 0},
-	{"ZVision_CPU", StateKey_CPU, 1},
-	{"ZVision_MovieCursor", StateKey_MovieCursor, 1},
-	{"ZVision_NoAnimWhileTurning", StateKey_NoTurnAnim, 0},
-	{"ZVision_Win958", StateKey_WIN958, 0},
-	{"ZVision_ShowErrorDialogs", StateKey_ShowErrorDlg, 0},
-	{"ZVision_ShowSubtitles", StateKey_Subtitles, 1},
-	{"ZVision_DebugCheats", StateKey_DebugCheats, 0},
-	{"ZVision_JapaneseFonts", StateKey_JapanFonts, 0},
-	{"ZVision_Brightness", StateKey_Brightness, 0}
+	// Hardcoded settings
+	{"qsoundenabled", StateKey_Qsound, 1, false, false},
+	{"highquality", StateKey_HighQuality, 1, false, false},
+	{"platform", StateKey_Platform, 0, false, false},
+	{"installlevel", StateKey_InstallLevel, 0, false, false},
+	{"countrycode", StateKey_CountryCode, 0, false, false},
+	{"cpu", StateKey_CPU, 1, false, false},
+	{"moviecursor", StateKey_MovieCursor, 1, false, false},
+	{"noanimwhileturning", StateKey_NoTurnAnim, 0, false, false},
+	{"win958", StateKey_WIN958, 0, false, false},
+	{"showerrordialogs", StateKey_ShowErrorDlg, 0, false, false},
+	{"japanesefonts", StateKey_JapanFonts, 0, false, false},
+	{"brightness", StateKey_Brightness, 0, false, false},
+	{"debugcheats", StateKey_DebugCheats, 1, false, false},
+	// Editable settings
+	{"keyboardturnspeed", StateKey_KbdRotateSpeed, 5, false, true},
+	{"panarotatespeed", StateKey_RotateSpeed, 540, false, true},
+	{"venusenabled", StateKey_VenusEnable, -1, true, true},
+	{"subtitles", StateKey_Subtitles, -1, true, true},
 };
 
 ZVision::ZVision(OSystem *syst, const ZVisionGameDescription *gameDesc)
@@ -139,14 +143,33 @@ ZVision::~ZVision() {
 }
 
 void ZVision::registerDefaultSettings() {
-	for (int i = 0; i < ZVISION_SETTINGS_KEYS_COUNT; i++)
-		ConfMan.registerDefault(settingsKeys[i].name, settingsKeys[i].deflt);
+	for (int i = 0; i < ZVISION_SETTINGS_KEYS_COUNT; i++) {
+		if (settingsKeys[i].allowEditing) {
+			if (settingsKeys[i].defaultValue >= 0)
+				ConfMan.registerDefault(settingsKeys[i].name, settingsKeys[i].defaultValue);
+			else
+				ConfMan.registerDefault(settingsKeys[i].name, settingsKeys[i].defaultBoolValue);
+		}
+	}
+
+	ConfMan.registerDefault("originalsaveload", false);
 	ConfMan.registerDefault("doublefps", false);
 }
 
 void ZVision::loadSettings() {
-	for (int i = 0; i < ZVISION_SETTINGS_KEYS_COUNT; i++)
-		_scriptManager->setStateValue(settingsKeys[i].slot, ConfMan.getInt(settingsKeys[i].name));
+	int16 value = 0;
+	bool boolValue = false;
+
+	for (int i = 0; i < ZVISION_SETTINGS_KEYS_COUNT; i++) {
+		if (settingsKeys[i].defaultValue >= 0) {
+			value = (settingsKeys[i].allowEditing) ? ConfMan.getInt(settingsKeys[i].name) : settingsKeys[i].defaultValue;
+		} else {
+			boolValue = value = (settingsKeys[i].allowEditing) ? ConfMan.getBool(settingsKeys[i].name) : settingsKeys[i].defaultBoolValue;
+			value = (boolValue) ? 1 : 0;
+		}
+
+		_scriptManager->setStateValue(settingsKeys[i].slot, value);
+	}
 
 	if (getGameId() == GID_NEMESIS)
 		_scriptManager->setStateValue(StateKey_ExecScopeStyle, 1);
@@ -155,8 +178,15 @@ void ZVision::loadSettings() {
 }
 
 void ZVision::saveSettings() {
-	for (int i = 0; i < ZVISION_SETTINGS_KEYS_COUNT; i++)
-		ConfMan.setInt(settingsKeys[i].name, _scriptManager->getStateValue(settingsKeys[i].slot));
+	for (int i = 0; i < ZVISION_SETTINGS_KEYS_COUNT; i++) {
+		if (settingsKeys[i].allowEditing) {
+			if (settingsKeys[i].defaultValue >= 0)
+				ConfMan.setInt(settingsKeys[i].name, _scriptManager->getStateValue(settingsKeys[i].slot));
+			else
+				ConfMan.setBool(settingsKeys[i].name, (_scriptManager->getStateValue(settingsKeys[i].slot) == 1));
+		}
+	}
+
 	ConfMan.flushToDisk();
 }
 


Commit: e862172460640188363873b9fa1fb46a3f4c7f78
    https://github.com/scummvm/scummvm/commit/e862172460640188363873b9fa1fb46a3f4c7f78
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2014-12-27T14:29:57+02:00

Commit Message:
ZVISION: Add some advanced engine features, and document the engine

Changed paths:
    engines/zvision/zvision.cpp
    engines/zvision/zvision.h



diff --git a/engines/zvision/zvision.cpp b/engines/zvision/zvision.cpp
index 5f4924d..0310355 100644
--- a/engines/zvision/zvision.cpp
+++ b/engines/zvision/zvision.cpp
@@ -345,6 +345,16 @@ bool ZVision::canRender() {
 	return _frameRenderDelay <= 0;
 }
 
+GUI::Debugger *ZVision::getDebugger() {
+	return _console;
+}
+
+void ZVision::syncSoundSettings() {
+	Engine::syncSoundSettings();
+
+	_scriptManager->setStateValue(StateKey_Subtitles, ConfMan.getBool("subtitles") ? 1 : 0);
+}
+
 void ZVision::fpsTimerCallback(void *refCon) {
 	((ZVision *)refCon)->fpsTimer();
 }
diff --git a/engines/zvision/zvision.h b/engines/zvision/zvision.h
index 5482060..ad22dda 100644
--- a/engines/zvision/zvision.h
+++ b/engines/zvision/zvision.h
@@ -41,6 +41,17 @@ namespace Video {
 class VideoDecoder;
 }
 
+/**
+ * This is the namespace of the ZVision engine.
+ *
+ * Status of this engine: complete
+ *
+ * Games using this engine:
+ * - Zork Nemesis: The Forbidden Lands
+ * - Zork: Grand Inquisitor
+ *
+ */
+
 namespace ZVision {
 
 struct ZVisionGameDescription;
@@ -205,6 +216,9 @@ public:
 		return _fps;
 	}
 
+	GUI::Debugger *getDebugger();
+	void syncSoundSettings();
+
 	void loadSettings();
 	void saveSettings();
 






More information about the Scummvm-git-logs mailing list