[Scummvm-git-logs] scummvm master -> 589aabcb1902e92c71f7f435c3e84c0c8a096731
NMIError
noreply at scummvm.org
Mon Sep 29 19:50:26 UTC 2025
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
6d32eda8e2 DARKSEED: Register engine options defaults
589aabcb19 AGOS: Add MIDI mode GUI option
Commit: 6d32eda8e2f3b221069a66b8420502ad511cee38
https://github.com/scummvm/scummvm/commit/6d32eda8e2f3b221069a66b8420502ad511cee38
Author: Coen Rampen (crampen at gmail.com)
Date: 2025-09-29T21:48:57+02:00
Commit Message:
DARKSEED: Register engine options defaults
Changed paths:
engines/darkseed/metaengine.cpp
engines/darkseed/metaengine.h
diff --git a/engines/darkseed/metaengine.cpp b/engines/darkseed/metaengine.cpp
index 4a0aeb5c63a..cd48163c620 100644
--- a/engines/darkseed/metaengine.cpp
+++ b/engines/darkseed/metaengine.cpp
@@ -80,6 +80,14 @@ bool DarkseedMetaEngine::hasFeature(MetaEngineFeature f) const {
(f == kSupportsLoadingDuringStartup);
}
+void DarkseedMetaEngine::registerDefaultSettings(const Common::String &target) const {
+ for (const ADExtraGuiOptionsMap *entry = Darkseed::optionsList; entry->guioFlag; ++entry)
+ ConfMan.registerDefault(entry->option.configOption, entry->option.defaultState);
+
+ for (const Darkseed::PopUpOptionsMap *entry = Darkseed::popUpOptionsList; entry->guioFlag; ++entry)
+ ConfMan.registerDefault(entry->configOption, entry->defaultState);
+}
+
GUI::OptionsContainerWidget *DarkseedMetaEngine::buildEngineOptionsWidget(GUI::GuiObject *boss, const Common::String &name, const Common::String &target) const {
return new Darkseed::OptionsWidget(boss, name, target);
}
diff --git a/engines/darkseed/metaengine.h b/engines/darkseed/metaengine.h
index 895177c4962..1f6d04fb811 100644
--- a/engines/darkseed/metaengine.h
+++ b/engines/darkseed/metaengine.h
@@ -39,6 +39,7 @@ public:
bool hasFeature(MetaEngineFeature f) const override;
Common::KeymapArray initKeymaps(const char *target) const override;
+ void registerDefaultSettings(const Common::String &target) const override;
GUI::OptionsContainerWidget *buildEngineOptionsWidget(GUI::GuiObject *boss, const Common::String &name, const Common::String &target) const override;
};
Commit: 589aabcb1902e92c71f7f435c3e84c0c8a096731
https://github.com/scummvm/scummvm/commit/589aabcb1902e92c71f7f435c3e84c0c8a096731
Author: Coen Rampen (crampen at gmail.com)
Date: 2025-09-29T21:49:31+02:00
Commit Message:
AGOS: Add MIDI mode GUI option
Changed paths:
A engines/agos/dialogs.cpp
A engines/agos/dialogs.h
engines/agos/POTFILES
engines/agos/detection.h
engines/agos/detection_tables.h
engines/agos/metaengine.cpp
engines/agos/module.mk
diff --git a/engines/agos/POTFILES b/engines/agos/POTFILES
index 95027f8fe42..0c93690b03b 100644
--- a/engines/agos/POTFILES
+++ b/engines/agos/POTFILES
@@ -2,3 +2,4 @@ engines/agos/saveload.cpp
engines/agos/animation.cpp
engines/agos/metaengine.cpp
engines/agos/midi.cpp
+engines/agos/dialogs.h
diff --git a/engines/agos/detection.h b/engines/agos/detection.h
index 87a63a90852..c5cdffe5296 100644
--- a/engines/agos/detection.h
+++ b/engines/agos/detection.h
@@ -49,10 +49,19 @@ struct AGOSGameDescription {
#define GAMEOPTION_OPL3_MODE GUIO_GAMEOPTIONS1
#define GAMEOPTION_DOS_TEMPOS GUIO_GAMEOPTIONS2
-#define GAMEOPTION_WINDOWS_TEMPOS GUIO_GAMEOPTIONS3
-#define GAMEOPTION_PREFER_DIGITAL_SFX GUIO_GAMEOPTIONS4
-#define GAMEOPTION_DISABLE_FADE_EFFECTS GUIO_GAMEOPTIONS5
-#define GAMEOPTION_COPY_PROTECTION GUIO_GAMEOPTIONS6
+#define GAMEOPTION_PREFER_DIGITAL_SFX GUIO_GAMEOPTIONS3
+#define GAMEOPTION_DISABLE_FADE_EFFECTS GUIO_GAMEOPTIONS4
+#define GAMEOPTION_COPY_PROTECTION GUIO_GAMEOPTIONS5
+#define GAMEOPTION_MIDI_MODE GUIO_GAMEOPTIONS6
+
+/** MIDI devices */
+enum kMidiMode {
+ kMidiModeStandard,
+ kMidiModeFB01,
+ kMidiModeD110,
+ kMidiModeMT540,
+ kMidiModeCT460
+};
} // End of namespace AGOS
diff --git a/engines/agos/detection_tables.h b/engines/agos/detection_tables.h
index e43059299a8..679264a39b5 100644
--- a/engines/agos/detection_tables.h
+++ b/engines/agos/detection_tables.h
@@ -284,7 +284,7 @@ static const AGOSGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_DEMO,
- GUIO2(GUIO_NOSPEECH, GAMEOPTION_OPL3_MODE)
+ GUIO3(GUIO_NOSPEECH, GAMEOPTION_OPL3_MODE, GAMEOPTION_MIDI_MODE)
},
GType_ELVIRA1,
@@ -307,7 +307,7 @@ static const AGOSGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO2(GUIO_NOSPEECH, GAMEOPTION_OPL3_MODE)
+ GUIO3(GUIO_NOSPEECH, GAMEOPTION_OPL3_MODE, GAMEOPTION_MIDI_MODE)
},
GType_ELVIRA1,
@@ -330,7 +330,7 @@ static const AGOSGameDescription gameDescriptions[] = {
Common::CS_CZE,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO2(GUIO_NOSPEECH, GAMEOPTION_OPL3_MODE)
+ GUIO3(GUIO_NOSPEECH, GAMEOPTION_OPL3_MODE, GAMEOPTION_MIDI_MODE)
},
GType_ELVIRA1,
@@ -353,7 +353,7 @@ static const AGOSGameDescription gameDescriptions[] = {
Common::ES_ESP,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO2(GUIO_NOSPEECH, GAMEOPTION_OPL3_MODE)
+ GUIO3(GUIO_NOSPEECH, GAMEOPTION_OPL3_MODE, GAMEOPTION_MIDI_MODE)
},
GType_ELVIRA1,
@@ -376,7 +376,7 @@ static const AGOSGameDescription gameDescriptions[] = {
Common::FR_FRA,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO2(GUIO_NOSPEECH, GAMEOPTION_OPL3_MODE)
+ GUIO3(GUIO_NOSPEECH, GAMEOPTION_OPL3_MODE, GAMEOPTION_MIDI_MODE)
},
GType_ELVIRA1,
@@ -399,7 +399,7 @@ static const AGOSGameDescription gameDescriptions[] = {
Common::DE_DEU,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
- GUIO2(GUIO_NOSPEECH, GAMEOPTION_OPL3_MODE)
+ GUIO3(GUIO_NOSPEECH, GAMEOPTION_OPL3_MODE, GAMEOPTION_MIDI_MODE)
},
GType_ELVIRA1,
@@ -1132,7 +1132,7 @@ static const AGOSGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformAcorn,
ADGF_DEMO,
- GUIO3(GUIO_NOSUBTITLES, GAMEOPTION_WINDOWS_TEMPOS, GAMEOPTION_DISABLE_FADE_EFFECTS)
+ GUIO3(GUIO_NOSUBTITLES, GAMEOPTION_DOS_TEMPOS, GAMEOPTION_DISABLE_FADE_EFFECTS)
},
GType_SIMON1,
@@ -1157,7 +1157,7 @@ static const AGOSGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformAcorn,
ADGF_CD,
- GUIO3(GUIO_NOSUBTITLES, GAMEOPTION_WINDOWS_TEMPOS, GAMEOPTION_DISABLE_FADE_EFFECTS)
+ GUIO3(GUIO_NOSUBTITLES, GAMEOPTION_DOS_TEMPOS, GAMEOPTION_DISABLE_FADE_EFFECTS)
},
GType_SIMON1,
@@ -2015,7 +2015,7 @@ static const AGOSGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformWindows,
ADGF_CD,
- GUIO3(GUIO_NOSUBTITLES, GAMEOPTION_WINDOWS_TEMPOS, GAMEOPTION_DISABLE_FADE_EFFECTS)
+ GUIO3(GUIO_NOSUBTITLES, GAMEOPTION_DOS_TEMPOS, GAMEOPTION_DISABLE_FADE_EFFECTS)
},
GType_SIMON1,
@@ -2040,7 +2040,7 @@ static const AGOSGameDescription gameDescriptions[] = {
Common::DE_DEU,
Common::kPlatformWindows,
ADGF_CD,
- GUIO3(GUIO_NOSUBTITLES, GAMEOPTION_WINDOWS_TEMPOS, GAMEOPTION_DISABLE_FADE_EFFECTS)
+ GUIO3(GUIO_NOSUBTITLES, GAMEOPTION_DOS_TEMPOS, GAMEOPTION_DISABLE_FADE_EFFECTS)
},
GType_SIMON1,
@@ -2065,7 +2065,7 @@ static const AGOSGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformWindows,
ADGF_CD,
- GUIO3(GUIO_NOSUBTITLES, GAMEOPTION_WINDOWS_TEMPOS, GAMEOPTION_DISABLE_FADE_EFFECTS)
+ GUIO3(GUIO_NOSUBTITLES, GAMEOPTION_DOS_TEMPOS, GAMEOPTION_DISABLE_FADE_EFFECTS)
},
GType_SIMON1,
diff --git a/engines/agos/dialogs.cpp b/engines/agos/dialogs.cpp
new file mode 100644
index 00000000000..0211667a309
--- /dev/null
+++ b/engines/agos/dialogs.cpp
@@ -0,0 +1,91 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include "base/plugins.h"
+#include "common/file.h"
+#include "common/hashmap.h"
+#include "common/ptr.h"
+#include "common/translation.h"
+#include "engines/advancedDetector.h"
+
+#include "agos/detection.h"
+#include "agos/dialogs.h"
+
+namespace AGOS {
+
+OptionsWidget::OptionsWidget(GuiObject *boss, const Common::String &name, const Common::String &domain) : OptionsContainerWidget(boss, name, "AgosGameOptionsDialog", domain) {
+ _guiOptions = ConfMan.get("guioptions", domain);
+
+ for (const ADExtraGuiOptionsMap *entry = optionsList; entry->guioFlag; ++entry)
+ if (checkGameGUIOption(entry->guioFlag, _guiOptions))
+ _checkboxes[entry->option.configOption] = new GUI::CheckboxWidget(widgetsBoss(), _dialogLayout + "." + entry->option.configOption, _(entry->option.label), _(entry->option.tooltip));
+
+ for (const PopUpOptionsMap *entry = popUpOptionsList; entry->guioFlag; ++entry)
+ if (checkGameGUIOption(entry->guioFlag, _guiOptions)) {
+ GUI::StaticTextWidget *textWidget = new GUI::StaticTextWidget(widgetsBoss(), _dialogLayout + "." + entry->configOption + "_desc", _(entry->label), _(entry->tooltip));
+ textWidget->setAlign(Graphics::kTextAlignRight);
+
+ _popUps[entry->configOption] = new GUI::PopUpWidget(widgetsBoss(), _dialogLayout + "." + entry->configOption);
+
+ for (uint i = 0; entry->items[i].label; ++i)
+ _popUps[entry->configOption]->appendEntry(_(entry->items[i].label), entry->items[i].configValue);
+ }
+}
+
+void OptionsWidget::defineLayout(GUI::ThemeEval &layouts, const Common::String &layoutName, const Common::String &overlayedLayout) const {
+ layouts.addDialog(layoutName, overlayedLayout);
+ layouts.addLayout(GUI::ThemeLayout::kLayoutVertical).addPadding(0, 0, 0, 0);
+
+ for (const ADExtraGuiOptionsMap *entry = optionsList; entry->guioFlag; ++entry)
+ layouts.addWidget(entry->option.configOption, "Checkbox");
+
+ for (const PopUpOptionsMap *entry = popUpOptionsList; entry->guioFlag; ++entry) {
+ layouts.addLayout(GUI::ThemeLayout::kLayoutHorizontal).addPadding(0, 0, 0, 0);
+ layouts.addWidget(Common::String(entry->configOption) + "_desc", "OptionsLabel");
+ layouts.addWidget(entry->configOption, "PopUp").closeLayout();
+ }
+
+ layouts.closeLayout().closeDialog();
+}
+
+void OptionsWidget::load() {
+ for (const ADExtraGuiOptionsMap *entry = optionsList; entry->guioFlag; ++entry)
+ if (checkGameGUIOption(entry->guioFlag, _guiOptions))
+ _checkboxes[entry->option.configOption]->setState(ConfMan.getBool(entry->option.configOption, _domain));
+
+ for (const PopUpOptionsMap *entry = popUpOptionsList; entry->guioFlag; ++entry)
+ if (checkGameGUIOption(entry->guioFlag, _guiOptions))
+ _popUps[entry->configOption]->setSelectedTag(ConfMan.getInt(entry->configOption, _domain));
+}
+
+bool OptionsWidget::save() {
+ for (const ADExtraGuiOptionsMap *entry = optionsList; entry->guioFlag; ++entry)
+ if (checkGameGUIOption(entry->guioFlag, _guiOptions))
+ ConfMan.setBool(entry->option.configOption, _checkboxes[entry->option.configOption]->getState(), _domain);
+
+ for (const PopUpOptionsMap *entry = popUpOptionsList; entry->guioFlag; ++entry)
+ if (checkGameGUIOption(entry->guioFlag, _guiOptions))
+ ConfMan.setInt(entry->configOption, _popUps[entry->configOption]->getSelectedTag(), _domain);
+
+ return true;
+}
+
+} // End of namespace AGOS
diff --git a/engines/agos/dialogs.h b/engines/agos/dialogs.h
new file mode 100644
index 00000000000..ea678cb0dcd
--- /dev/null
+++ b/engines/agos/dialogs.h
@@ -0,0 +1,156 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef AGOS_DIALOGS_H
+#define AGOS_DIALOGS_H
+
+#include "gui/ThemeEval.h"
+#include "gui/widget.h"
+#include "gui/widgets/popup.h"
+
+namespace AGOS {
+
+struct PopUpOptionsItem {
+ const char *label;
+ int configValue;
+};
+
+#define POPUP_OPTIONS_ITEMS_TERMINATOR { nullptr, 0 }
+
+struct PopUpOptionsMap {
+ const char *guioFlag;
+ const char *label;
+ const char *tooltip;
+ const char *configOption;
+ int defaultState;
+ PopUpOptionsItem items[10];
+};
+
+#define POPUP_OPTIONS_TERMINATOR \
+ { \
+ nullptr, nullptr, nullptr, nullptr, 0, { POPUP_OPTIONS_ITEMS_TERMINATOR } \
+ }
+
+class OptionsWidget : public GUI::OptionsContainerWidget {
+public:
+ explicit OptionsWidget(GuiObject *boss, const Common::String &name, const Common::String &domain);
+
+ // OptionsContainerWidget API
+ void load() override;
+ bool save() override;
+
+private:
+ // OptionsContainerWidget API
+ void defineLayout(GUI::ThemeEval &layouts, const Common::String &layoutName, const Common::String &overlayedLayout) const override;
+
+ Common::String _guiOptions;
+ Common::HashMap<Common::String, GUI::CheckboxWidget *> _checkboxes;
+ Common::HashMap<Common::String, GUI::PopUpWidget *> _popUps;
+};
+
+static const ADExtraGuiOptionsMap optionsList[] = {
+ {
+ GAMEOPTION_COPY_PROTECTION,
+ {
+ _s("Enable copy protection"),
+ _s("Enable any copy protection that would otherwise be bypassed by default."),
+ "copy_protection",
+ false,
+ 0,
+ 0
+ },
+ },
+ {
+ GAMEOPTION_OPL3_MODE,
+ {
+ _s("AdLib OPL3 mode"),
+ _s("When AdLib is selected, OPL3 features will be used. Depending on the game, this will prevent cut-off notes, add extra notes or instruments and/or add stereo."),
+ "opl3_mode",
+ false,
+ 0,
+ 0
+ }
+ },
+ {
+ GAMEOPTION_DOS_TEMPOS,
+ {
+ _s("Use DOS version music tempos"),
+ _s("Selecting this option will play the music using the tempos used by the DOS version of the game. Otherwise, the faster tempos of the Windows version will be used."),
+ "dos_music_tempos",
+ true,
+ 0,
+ 0
+ }
+ },
+ {
+ GAMEOPTION_PREFER_DIGITAL_SFX,
+ {
+ _s("Prefer digital sound effects"),
+ _s("Prefer digital sound effects instead of synthesized ones"),
+ "prefer_digitalsfx",
+ true,
+ 0,
+ 0
+ }
+ },
+ {
+ GAMEOPTION_DISABLE_FADE_EFFECTS,
+ {
+ _s("Disable fade-out effects"),
+ _s("Don't fade every screen to black when leaving a room."),
+ "disable_fade_effects",
+ false,
+ 0,
+ 0
+ }
+ },
+ AD_EXTRA_GUI_OPTIONS_TERMINATOR
+};
+
+static const PopUpOptionsMap popUpOptionsList[] = {
+ {
+ GAMEOPTION_MIDI_MODE,
+ _s("MIDI mode:"),
+ _s("When using external MIDI devices (e.g. through USB-MIDI), select your device here"),
+ "midi_mode",
+ kMidiModeStandard,
+ {
+ {
+ _s("Standard (GM / MT-32)"),
+ kMidiModeStandard
+ },
+ {
+ _s("Casio MT-540"),
+ kMidiModeMT540
+ },
+ {
+ _s("Casio CT-460 / CSM-1"),
+ kMidiModeCT460
+ },
+ POPUP_OPTIONS_ITEMS_TERMINATOR
+ }
+ },
+ POPUP_OPTIONS_TERMINATOR
+};
+
+} // End of namespace AGOS
+
+#endif // AGOS_DIALOGS_H
diff --git a/engines/agos/metaengine.cpp b/engines/agos/metaengine.cpp
index d3195091e58..9c78f425e8d 100644
--- a/engines/agos/metaengine.cpp
+++ b/engines/agos/metaengine.cpp
@@ -34,80 +34,7 @@
#include "agos/intern.h"
#include "agos/agos.h"
#include "agos/detection.h"
-
-namespace AGOS {
-
-static const ADExtraGuiOptionsMap optionsList[] = {
- {
- GAMEOPTION_COPY_PROTECTION,
- {
- _s("Enable copy protection"),
- _s("Enable any copy protection that would otherwise be bypassed by default."),
- "copy_protection",
- false,
- 0,
- 0
- },
- },
- {
- GAMEOPTION_OPL3_MODE,
- {
- _s("AdLib OPL3 mode"),
- _s("When AdLib is selected, OPL3 features will be used. Depending on the game, this will prevent cut-off notes, add extra notes or instruments and/or add stereo."),
- "opl3_mode",
- false,
- 0,
- 0
- }
- },
- {
- GAMEOPTION_DOS_TEMPOS,
- {
- _s("Use DOS version music tempos"),
- _s("Selecting this option will play the music using the tempos used by the DOS version of the game. Otherwise, the faster tempos of the Windows version will be used."),
- "dos_music_tempos",
- true,
- 0,
- 0
- }
- },
- {
- GAMEOPTION_WINDOWS_TEMPOS,
- {
- _s("Use DOS version music tempos"),
- _s("Selecting this option will play the music using the tempos used by the DOS version of the game. Otherwise, the faster tempos of the Windows version will be used."),
- "dos_music_tempos",
- false,
- 0,
- 0
- }
- },
- {
- GAMEOPTION_PREFER_DIGITAL_SFX,
- {
- _s("Prefer digital sound effects"),
- _s("Prefer digital sound effects instead of synthesized ones"),
- "prefer_digitalsfx",
- true,
- 0,
- 0
- }
- },
- {
- GAMEOPTION_DISABLE_FADE_EFFECTS,
- {
- _s("Disable fade-out effects"),
- _s("Don't fade every screen to black when leaving a room."),
- "disable_fade_effects",
- false,
- 0,
- 0
- }
- },
- AD_EXTRA_GUI_OPTIONS_TERMINATOR
-};
-
-} // End of namespace AGOS
+#include "agos/dialogs.h"
class AgosMetaEngine : public AdvancedMetaEngine<AGOS::AGOSGameDescription> {
public:
@@ -115,10 +42,6 @@ public:
return "agos";
}
- const ADExtraGuiOptionsMap *getAdvancedExtraGuiOptions() const override {
- return AGOS::optionsList;
- }
-
bool hasFeature(MetaEngineFeature f) const override;
Common::Error createInstance(OSystem *syst, Engine **engine, const AGOS::AGOSGameDescription *desc) const override;
@@ -127,6 +50,9 @@ public:
int getMaximumSaveSlot() const override;
Common::KeymapArray initKeymaps(const char *target) const override;
+
+ void registerDefaultSettings(const Common::String &target) const override;
+ GUI::OptionsContainerWidget *buildEngineOptionsWidget(GUI::GuiObject *boss, const Common::String &name, const Common::String &target) const override;
};
bool AgosMetaEngine::hasFeature(MetaEngineFeature f) const {
@@ -406,6 +332,22 @@ Common::KeymapArray AgosMetaEngine::initKeymaps(const char *target) const {
return keymaps;
}
+void AgosMetaEngine::registerDefaultSettings(const Common::String &target) const {
+ for (const ADExtraGuiOptionsMap *entry = AGOS::optionsList; entry->guioFlag; ++entry)
+ ConfMan.registerDefault(entry->option.configOption, entry->option.defaultState);
+
+ for (const AGOS::PopUpOptionsMap *entry = AGOS::popUpOptionsList; entry->guioFlag; ++entry)
+ ConfMan.registerDefault(entry->configOption, entry->defaultState);
+
+ // DOS music tempos should default to true for DOS, false for Windows and Acorn
+ bool isDos = ConfMan.get("gameid", target) == "simon1" && ConfMan.get("platform", target) == "pc";
+ ConfMan.registerDefault("dos_music_tempos", isDos);
+}
+
+GUI::OptionsContainerWidget *AgosMetaEngine::buildEngineOptionsWidget(GUI::GuiObject *boss, const Common::String &name, const Common::String &target) const {
+ return new AGOS::OptionsWidget(boss, name, target);
+}
+
#if PLUGIN_ENABLED_DYNAMIC(AGOS)
REGISTER_PLUGIN_DYNAMIC(AGOS, PLUGIN_TYPE_ENGINE, AgosMetaEngine);
#else
diff --git a/engines/agos/module.mk b/engines/agos/module.mk
index 37432e1edde..2d11c9725f9 100644
--- a/engines/agos/module.mk
+++ b/engines/agos/module.mk
@@ -15,6 +15,7 @@ MODULE_OBJS := \
cursor.o \
debug.o \
debugger.o \
+ dialogs.o \
draw.o \
event.o \
gfx.o \
More information about the Scummvm-git-logs
mailing list