mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-18 18:30:59 +00:00
SCUMM: Add "Enable copy protection" engine checkbox
The exposes the --copy-protection command line option to the engine settings dialog. This affects the following games: * Maniac Mansion v1 (DOS) and v2, but not NES or the demos * Zak McKracken v1 and v2 * Loom EGA (DOS) * Monkey Island 1, VGA floppy and Macintosh * Monkey Island 2, but not demos, FM Towns, or the Ultimate Talkie * Fate of Atlantis, Amiga and other floppy versions I don't have all of these versions myself, so I can't verify that it works. And in some cases, the checkbox will appear for games that don't have the copy protection in the scripts, e.g. the Mac CD Game Pack version of Fate of Atlantis. (Anyone want to re-insert that script like we do for that release of Monkey Island 2?)
This commit is contained in:
parent
009c090277
commit
ab991fa2f8
@ -35,6 +35,7 @@ namespace Scumm {
|
||||
#define GUIO_ORIGINALGUI GUIO_GAMEOPTIONS4
|
||||
#define GUIO_LOWLATENCYAUDIO GUIO_GAMEOPTIONS5
|
||||
#define GUIO_NETWORK GUIO_GAMEOPTIONS6
|
||||
#define GUIO_COPY_PROTECTION GUIO_GAMEOPTIONS7
|
||||
|
||||
/* Game enhancements */
|
||||
|
||||
|
@ -156,14 +156,14 @@ static const GameSettings gameVariantsTable[] = {
|
||||
{"maniac", "Apple II", 0, GID_MANIAC, 0, 0, MDT_APPLEIIGS, 0, Common::kPlatformApple2GS, GUIO3(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_ORIGINALGUI)},
|
||||
{"maniac", "C64", 0, GID_MANIAC, 0, 0, MDT_C64, 0, Common::kPlatformC64, GUIO3(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_ORIGINALGUI) },
|
||||
{"maniac", "C64 Demo", 0, GID_MANIAC, 0, 0, MDT_C64, GF_DEMO, Common::kPlatformC64, GUIO3(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_ORIGINALGUI) },
|
||||
{"maniac", "V1", "v1", GID_MANIAC, 1, 0, MDT_PCSPK | MDT_PCJR, 0, Common::kPlatformDOS, GUIO9(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGABW, GUIO_RENDERCGACOMP, GUIO_RENDERCGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"maniac", "V1", "v1", GID_MANIAC, 1, 0, MDT_PCSPK | MDT_PCJR, 0, Common::kPlatformDOS, GUIO10(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGABW, GUIO_RENDERCGACOMP, GUIO_RENDERCGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI, GUIO_COPY_PROTECTION)},
|
||||
{"maniac", "V1 Demo", "v1", GID_MANIAC, 1, 0, MDT_PCSPK | MDT_PCJR, GF_DEMO, Common::kPlatformDOS, GUIO8(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGABW, GUIO_RENDERCGACOMP, GUIO_RENDERCGA, GUIO_ORIGINALGUI)},
|
||||
{"maniac", "NES", 0, GID_MANIAC, 1, 0, MDT_NONE, 0, Common::kPlatformNES, GUIO5(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_NOASPECT, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"maniac", "V2", "v2", GID_MANIAC, 2, 0, MDT_PCSPK | MDT_PCJR, 0, UNK, GUIO8(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA, GUIO_RENDERAMIGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"maniac", "V2", "v2", GID_MANIAC, 2, 0, MDT_PCSPK | MDT_PCJR, 0, UNK, GUIO9(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA, GUIO_RENDERAMIGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI, GUIO_COPY_PROTECTION)},
|
||||
{"maniac", "V2 Demo", "v2", GID_MANIAC, 2, 0, MDT_PCSPK | MDT_PCJR, GF_DEMO, Common::kPlatformDOS, GUIO7(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA, GUIO_RENDERAMIGA, GUIO_ORIGINALGUI)},
|
||||
|
||||
{"zak", "V1", "v1", GID_ZAK, 1, 0, MDT_PCSPK | MDT_PCJR, 0, UNK, GUIO8(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGABW, GUIO_RENDERCGACOMP, GUIO_RENDERCGA, GUIO_ORIGINALGUI)},
|
||||
{"zak", "V2", "v2", GID_ZAK, 2, 0, MDT_PCSPK | MDT_PCJR, 0, UNK, GUIO7(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA, GUIO_RENDERAMIGA, GUIO_ORIGINALGUI)},
|
||||
{"zak", "V1", "v1", GID_ZAK, 1, 0, MDT_PCSPK | MDT_PCJR, 0, UNK, GUIO9(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGABW, GUIO_RENDERCGACOMP, GUIO_RENDERCGA, GUIO_ORIGINALGUI, GUIO_COPY_PROTECTION)},
|
||||
{"zak", "V2", "v2", GID_ZAK, 2, 0, MDT_PCSPK | MDT_PCJR, 0, UNK, GUIO8(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA, GUIO_RENDERAMIGA, GUIO_ORIGINALGUI, GUIO_COPY_PROTECTION)},
|
||||
{"zak", "FM-TOWNS", 0, GID_ZAK, 3, 0, MDT_TOWNS, GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns, GUIO6(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_MIDITOWNS, GUIO_TRIM_FMTOWNS_TO_200_PIXELS, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"zakloom", "FM-TOWNS", 0, GID_ZAK, 3, 0, MDT_TOWNS, GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns, GUIO5(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_MIDITOWNS, GUIO_TRIM_FMTOWNS_TO_200_PIXELS, GUIO_ORIGINALGUI)},
|
||||
{"indyloom", "FM-TOWNS", 0, GID_ZAK, 3, 0, MDT_TOWNS, GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns, GUIO5(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_MIDITOWNS, GUIO_TRIM_FMTOWNS_TO_200_PIXELS, GUIO_ORIGINALGUI)},
|
||||
@ -176,7 +176,7 @@ static const GameSettings gameVariantsTable[] = {
|
||||
{"indy3", "Steam", "steam", GID_INDY3, 3, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB, GF_OLD256 | GF_FEW_LOCALS, UNK, GUIO4(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"indy3", "FM-TOWNS", 0, GID_INDY3, 3, 0, MDT_TOWNS, GF_OLD256 | GF_FEW_LOCALS | GF_AUDIOTRACKS, Common::kPlatformFMTowns, GUIO6(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_MIDITOWNS, GUIO_TRIM_FMTOWNS_TO_200_PIXELS, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
|
||||
{"loom", "EGA", "ega", GID_LOOM, 3, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO4(GUIO_NOSPEECH, GUIO_RENDERCGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"loom", "EGA", "ega", GID_LOOM, 3, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO5(GUIO_NOSPEECH, GUIO_RENDERCGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI, GUIO_COPY_PROTECTION)},
|
||||
{"loom", "Mac", "ega", GID_LOOM, 3, 0, MDT_PCSPK | MDT_PCJR, 0, UNK, GUIO6(GUIO_NOSPEECH, GUIO_RENDERMACINTOSHBW, GUIO_NOMIDI, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI, GUIO_NOASPECT)},
|
||||
{"loom", "No AdLib", "ega", GID_LOOM, 3, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS, 0, UNK, GUIO4(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"loom", "PC-Engine", 0, GID_LOOM, 3, 0, MDT_NONE, GF_AUDIOTRACKS | GF_OLD256 | GF_16BIT_COLOR, Common::kPlatformPCEngine, GUIO3(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_ENHANCEMENTS)},
|
||||
@ -187,25 +187,25 @@ static const GameSettings gameVariantsTable[] = {
|
||||
|
||||
{"pass", 0, 0, GID_PASS, 4, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB, GF_16COLOR, Common::kPlatformDOS, GUIO4(GUIO_NOSPEECH, GUIO_RENDERCGA, GUIO_NOMIDI, GUIO_ORIGINALGUI)},
|
||||
|
||||
{"monkey", "VGA", "vga", GID_MONKEY_VGA, 4, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO4(GUIO_NOSPEECH, GUIO_RENDEREGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"monkey", "VGA", "vga", GID_MONKEY_VGA, 4, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO5(GUIO_NOSPEECH, GUIO_RENDEREGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI, GUIO_COPY_PROTECTION)},
|
||||
{"monkey", "VGA Demo", "vga", GID_MONKEY_VGA, 4, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, GF_DEMO, UNK, GUIO3(GUIO_NOSPEECH, GUIO_RENDEREGA, GUIO_ORIGINALGUI)},
|
||||
{"monkey", "EGA", "ega", GID_MONKEY_EGA, 4, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, GF_16COLOR, Common::kPlatformDOS, GUIO6(GUIO_NOSPEECH, GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"monkey", "No AdLib", "ega", GID_MONKEY_EGA, 4, 0, MDT_PCSPK | MDT_PCJR, GF_16COLOR, Common::kPlatformAtariST, GUIO4(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"monkey", "Demo", "ega", GID_MONKEY_EGA, 4, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB, GF_16COLOR | GF_DEMO, Common::kPlatformDOS, GUIO6(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA, GUIO_ORIGINALGUI)},
|
||||
{"monkey", "CD", 0, GID_MONKEY, 5, 0, MDT_ADLIB, GF_AUDIOTRACKS, UNK, GUIO5(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_RENDEREGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"monkey", "Mac", 0, GID_MONKEY, 5, 0, MDT_MACINTOSH, 0, UNK, GUIO4(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"monkey", "Mac", 0, GID_MONKEY, 5, 0, MDT_MACINTOSH, 0, UNK, GUIO5(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI, GUIO_COPY_PROTECTION)},
|
||||
{"monkey", "FM-TOWNS", 0, GID_MONKEY, 5, 0, MDT_TOWNS, GF_AUDIOTRACKS, Common::kPlatformFMTowns, GUIO6(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_MIDITOWNS, GUIO_TRIM_FMTOWNS_TO_200_PIXELS, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"monkey", "SEGA", 0, GID_MONKEY, 5, 0, MDT_NONE, GF_AUDIOTRACKS, Common::kPlatformSegaCD, GUIO4(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"monkey", "SE Talkie", 0, GID_MONKEY, 5, 0, MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, GF_AUDIOTRACKS | GF_ULTIMATE_TALKIE, UNK, GUIO2(GUIO_RENDEREGA, GUIO_ORIGINALGUI)},
|
||||
{"monkey2", "", 0, GID_MONKEY2, 5, 0, MDT_PCSPK | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO4(GUIO_NOSPEECH, GUIO_RENDEREGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"monkey2", "", 0, GID_MONKEY2, 5, 0, MDT_PCSPK | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO5(GUIO_NOSPEECH, GUIO_RENDEREGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI, GUIO_COPY_PROTECTION)},
|
||||
{"monkey2", "Demo", 0, GID_MONKEY2, 5, 0, MDT_PCSPK | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, GF_DEMO, UNK, GUIO2(GUIO_NOSPEECH, GUIO_ENHANCEMENTS)},
|
||||
{"monkey2", "Amiga", 0, GID_MONKEY2, 5, 0, MDT_AMIGA, 0, Common::kPlatformAmiga, GUIO4(GUIO_NOSPEECH, GUIO_MIDIAMIGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"monkey2", "Amiga", 0, GID_MONKEY2, 5, 0, MDT_AMIGA, 0, Common::kPlatformAmiga, GUIO5(GUIO_NOSPEECH, GUIO_MIDIAMIGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI, GUIO_COPY_PROTECTION)},
|
||||
{"monkey2", "FM-TOWNS", 0, GID_MONKEY2, 5, 0, MDT_PCSPK | MDT_TOWNS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, Common::kPlatformFMTowns, GUIO7(GUIO_NOSPEECH, GUIO_MIDITOWNS, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_TRIM_FMTOWNS_TO_200_PIXELS, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"monkey2", "SE Talkie",0, GID_MONKEY2, 5, 0, MDT_PCSPK | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, GF_ULTIMATE_TALKIE, UNK, GUIO2(GUIO_RENDEREGA, GUIO_ORIGINALGUI)},
|
||||
{"atlantis", "", 0, GID_INDY4, 5, 0, MDT_PCSPK | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO3(GUIO_RENDEREGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"atlantis", "Steam", "steam", GID_INDY4, 5, 0, MDT_PCSPK | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO3(GUIO_RENDEREGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"atlantis", "Floppy", 0, GID_INDY4, 5, 0, MDT_PCSPK | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO4(GUIO_NOSPEECH, GUIO_RENDEREGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"atlantis", "Amiga", 0, GID_INDY4, 5, 0, MDT_AMIGA, 0, Common::kPlatformAmiga, GUIO4(GUIO_NOSPEECH, GUIO_MIDIAMIGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
{"atlantis", "Floppy", 0, GID_INDY4, 5, 0, MDT_PCSPK | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO5(GUIO_NOSPEECH, GUIO_RENDEREGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI, GUIO_COPY_PROTECTION)},
|
||||
{"atlantis", "Amiga", 0, GID_INDY4, 5, 0, MDT_AMIGA, 0, Common::kPlatformAmiga, GUIO5(GUIO_NOSPEECH, GUIO_MIDIAMIGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI, GUIO_COPY_PROTECTION)},
|
||||
{"atlantis", "FM-TOWNS", 0, GID_INDY4, 5, 0, MDT_TOWNS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, Common::kPlatformFMTowns, GUIO6(GUIO_MIDITOWNS, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_TRIM_FMTOWNS_TO_200_PIXELS, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
|
||||
{"tentacle", "", 0, GID_TENTACLE, 6, 0, MDT_ADLIB | MDT_MIDI | MDT_PREFER_GM, GF_USE_KEY, UNK, GUIO3(GUIO_RENDEREGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
|
||||
|
@ -1183,6 +1183,13 @@ GUI::CheckboxWidget *ScummOptionsContainerWidget::createOriginalGUICheckbox(GuiO
|
||||
);
|
||||
}
|
||||
|
||||
GUI::CheckboxWidget *ScummOptionsContainerWidget::createCopyProtectionCheckbox(GuiObject *boss, const Common::String &name) {
|
||||
return new GUI::CheckboxWidget(boss, name,
|
||||
_("Enable copy protection"),
|
||||
_("Enable any copy protection that would otherwise be bypassed by default.")
|
||||
);
|
||||
}
|
||||
|
||||
void ScummOptionsContainerWidget::updateAdjustmentSlider(GUI::SliderWidget *slider, GUI::StaticTextWidget *value) {
|
||||
int adjustment = slider->getValue();
|
||||
const char *sign = "";
|
||||
@ -1314,6 +1321,7 @@ LoomEgaGameOptionsWidget::LoomEgaGameOptionsWidget(GuiObject *boss, const Common
|
||||
|
||||
createEnhancementsWidget(widgetsBoss(), "LoomEgaGameOptionsDialog");
|
||||
_enableOriginalGUICheckbox = createOriginalGUICheckbox(widgetsBoss(), "LoomEgaGameOptionsDialog.EnableOriginalGUI");
|
||||
_enableCopyProtectionCheckbox = createCopyProtectionCheckbox(widgetsBoss(), "LoomEgaGameOptionsDialog.EnableCopyProtection");
|
||||
}
|
||||
|
||||
void LoomEgaGameOptionsWidget::load() {
|
||||
@ -1328,6 +1336,7 @@ void LoomEgaGameOptionsWidget::load() {
|
||||
updateOvertureTicksValue();
|
||||
|
||||
_enableOriginalGUICheckbox->setState(ConfMan.getBool("original_gui", _domain));
|
||||
_enableCopyProtectionCheckbox->setState(ConfMan.getBool("copy_protection", _domain));
|
||||
}
|
||||
|
||||
bool LoomEgaGameOptionsWidget::save() {
|
||||
@ -1335,6 +1344,7 @@ bool LoomEgaGameOptionsWidget::save() {
|
||||
|
||||
ConfMan.setInt("loom_overture_ticks", _overtureTicksSlider->getValue(), _domain);
|
||||
ConfMan.setBool("original_gui", _enableOriginalGUICheckbox->getState(), _domain);
|
||||
ConfMan.setBool("copy_protection", _enableCopyProtectionCheckbox->getState(), _domain);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1344,7 +1354,8 @@ void LoomEgaGameOptionsWidget::defineLayout(GUI::ThemeEval &layouts, const Commo
|
||||
.addPadding(0, 0, 0, 0)
|
||||
.addLayout(GUI::ThemeLayout::kLayoutVertical, 4)
|
||||
.addPadding(0, 0, 10, 0)
|
||||
.addWidget("EnableOriginalGUI", "Checkbox");
|
||||
.addWidget("EnableOriginalGUI", "Checkbox")
|
||||
.addWidget("EnableCopyProtection", "Checkbox");
|
||||
addEnhancementsLayout(layouts)
|
||||
.closeLayout()
|
||||
.addLayout(GUI::ThemeLayout::kLayoutHorizontal, 12)
|
||||
@ -1376,7 +1387,7 @@ void LoomEgaGameOptionsWidget::updateOvertureTicksValue() {
|
||||
|
||||
// Mac Loom/MI1 options
|
||||
LoomMonkeyMacGameOptionsWidget::LoomMonkeyMacGameOptionsWidget(GuiObject *boss, const Common::String &name, const Common::String &domain, int gameId) :
|
||||
ScummOptionsContainerWidget(boss, name, "LoomMonkeyMacGameOptionsWidget", domain), _sndQualitySlider(nullptr), _sndQualityValue(nullptr), _enableOriginalGUICheckbox(nullptr), _quality(0) {
|
||||
ScummOptionsContainerWidget(boss, name, "LoomMonkeyMacGameOptionsWidget", domain), _sndQualitySlider(nullptr), _sndQualityValue(nullptr), _enableOriginalGUICheckbox(nullptr), _enableCopyProtectionCheckbox(nullptr), _quality(0) {
|
||||
GUI::StaticTextWidget *text = new GUI::StaticTextWidget(widgetsBoss(), "LoomMonkeyMacGameOptionsWidget.SndQualityLabel", _("Music Quality:"));
|
||||
text->setAlign(Graphics::TextAlign::kTextAlignEnd);
|
||||
|
||||
@ -1391,6 +1402,9 @@ LoomMonkeyMacGameOptionsWidget::LoomMonkeyMacGameOptionsWidget(GuiObject *boss,
|
||||
updateQualitySlider();
|
||||
createEnhancementsWidget(widgetsBoss(), "LoomMonkeyMacGameOptionsWidget");
|
||||
_enableOriginalGUICheckbox = createOriginalGUICheckbox(widgetsBoss(), "LoomMonkeyMacGameOptionsWidget.EnableOriginalGUI");
|
||||
|
||||
if (gameId == GID_MONKEY)
|
||||
_enableCopyProtectionCheckbox = createCopyProtectionCheckbox(widgetsBoss(), "LoomMonkeyMacGameOptionsWidget.EnableCopyProtection");
|
||||
}
|
||||
|
||||
void LoomMonkeyMacGameOptionsWidget::load() {
|
||||
@ -1411,12 +1425,19 @@ void LoomMonkeyMacGameOptionsWidget::load() {
|
||||
_sndQualitySlider->setValue(_quality);
|
||||
updateQualitySlider();
|
||||
_enableOriginalGUICheckbox->setState(ConfMan.getBool("original_gui", _domain));
|
||||
|
||||
if (_enableCopyProtectionCheckbox)
|
||||
_enableCopyProtectionCheckbox->setState(ConfMan.getBool("copy_protection", _domain));
|
||||
}
|
||||
|
||||
bool LoomMonkeyMacGameOptionsWidget::save() {
|
||||
bool res = ScummOptionsContainerWidget::save();
|
||||
ConfMan.setInt("mac_snd_quality", _quality, _domain);
|
||||
ConfMan.setBool("original_gui", _enableOriginalGUICheckbox->getState(), _domain);
|
||||
|
||||
if (_enableCopyProtectionCheckbox)
|
||||
ConfMan.setBool("copy_protection", _enableCopyProtectionCheckbox->getState(), _domain);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
@ -1427,6 +1448,10 @@ void LoomMonkeyMacGameOptionsWidget::defineLayout(GUI::ThemeEval &layouts, const
|
||||
.addLayout(GUI::ThemeLayout::kLayoutVertical, 4)
|
||||
.addPadding(0, 0, 10, 0)
|
||||
.addWidget("EnableOriginalGUI", "Checkbox");
|
||||
|
||||
if (_enableCopyProtectionCheckbox)
|
||||
layouts.addWidget("EnableCopyProtection", "Checkbox");
|
||||
|
||||
addEnhancementsLayout(layouts)
|
||||
.closeLayout()
|
||||
.addLayout(GUI::ThemeLayout::kLayoutHorizontal, 12)
|
||||
|
@ -239,6 +239,7 @@ protected:
|
||||
void createEnhancementsWidget(GuiObject *boss, const Common::String &name);
|
||||
GUI::ThemeEval &addEnhancementsLayout(GUI::ThemeEval &layouts) const;
|
||||
GUI::CheckboxWidget *createOriginalGUICheckbox(GuiObject *boss, const Common::String &name);
|
||||
GUI::CheckboxWidget *createCopyProtectionCheckbox(GuiObject *boss, const Common::String &name);
|
||||
void updateAdjustmentSlider(GUI::SliderWidget *slider, GUI::StaticTextWidget *value);
|
||||
|
||||
Common::Array<GUI::CheckboxWidget *> _enhancementsCheckboxes;
|
||||
@ -291,6 +292,7 @@ private:
|
||||
void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) override;
|
||||
|
||||
GUI::CheckboxWidget *_enableOriginalGUICheckbox;
|
||||
GUI::CheckboxWidget *_enableCopyProtectionCheckbox;
|
||||
|
||||
GUI::SliderWidget *_overtureTicksSlider;
|
||||
GUI::StaticTextWidget *_overtureTicksValue;
|
||||
@ -317,6 +319,7 @@ private:
|
||||
void updateQualitySlider();
|
||||
|
||||
GUI::CheckboxWidget *_enableOriginalGUICheckbox;
|
||||
GUI::CheckboxWidget *_enableCopyProtectionCheckbox;
|
||||
GUI::SliderWidget *_sndQualitySlider;
|
||||
GUI::StaticTextWidget *_sndQualityValue;
|
||||
int _quality;
|
||||
|
@ -741,6 +741,15 @@ static const ExtraGuiOption enableCOMISong = {
|
||||
0
|
||||
};
|
||||
|
||||
static const ExtraGuiOption enableCopyProtection = {
|
||||
_s("Enable copy protection"),
|
||||
_s("Enable any copy protection that would otherwise be bypassed by default."),
|
||||
"copy_protection",
|
||||
false,
|
||||
0,
|
||||
0
|
||||
};
|
||||
|
||||
const ExtraGuiOptions ScummMetaEngine::getExtraGuiOptions(const Common::String &target) const {
|
||||
ExtraGuiOptions options;
|
||||
// Query the GUI options
|
||||
@ -754,6 +763,9 @@ const ExtraGuiOptions ScummMetaEngine::getExtraGuiOptions(const Common::String &
|
||||
if (target.empty() || guiOptions.contains(GUIO_ORIGINALGUI)) {
|
||||
options.push_back(enableOriginalGUI);
|
||||
}
|
||||
if (target.empty() || guiOptions.contains(GUIO_COPY_PROTECTION)) {
|
||||
options.push_back(enableCopyProtection);
|
||||
}
|
||||
if (target.empty() || guiOptions.contains(GUIO_ENHANCEMENTS)) {
|
||||
options.push_back(enableEnhancements);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user