diff --git a/source/hint_list.cpp b/source/hint_list.cpp index 79bdd12..6f996ac 100644 --- a/source/hint_list.cpp +++ b/source/hint_list.cpp @@ -819,7 +819,7 @@ void HintTable_Init() { /*--------------------- | JUNK HINT TEXT | ---------------------*/ - hintTable[JUNK01] = HintText::Junk({Text{"That's no moon.", "", ""}}); + hintTable[JUNK01] = HintText::Junk({Text{"", "", ""}}); hintTable[JUNK02] = HintText::Junk({Text{"The moon is haunted.", "", ""}}); hintTable[JUNK03] = HintText::Junk({Text{"Majora has sick dance moves.", "", ""}}); hintTable[JUNK04] = HintText::Junk({Text{"Making hints is hard.", "", ""}}); @@ -892,7 +892,7 @@ void HintTable_Init() { hintTable[JUNK71] = HintText::Junk({Text{"These hints can be quite useful. This is an exception.", "", ""}}); hintTable[JUNK72] = HintText::Junk({Text{"Turns are more effective when you tilt the whole console.", "", ""}}); hintTable[JUNK73] = HintText::Junk({Text{"You ever been in a cockpit before?", "", ""}}); - hintTable[JUNK74] = HintText::Junk({Text{"It's a secret to everybody", "", ""}}); + hintTable[JUNK74] = HintText::Junk({Text{"Smash 10 pots in 12 seconds.", "", ""}}); hintTable[JUNK75] = HintText::Junk({Text{"You found me!", "", ""}}); hintTable[JUNK76] = HintText::Junk({Text{"I have it on my post-it note somewhere.", "", ""}}); hintTable[JUNK77] = HintText::Junk({Text{"Follow the rainbow.", "", ""}}); diff --git a/source/include/menu.hpp b/source/include/menu.hpp index 67066ca..ee78177 100644 --- a/source/include/menu.hpp +++ b/source/include/menu.hpp @@ -42,8 +42,10 @@ void PrintOptionSubMenu(); void PrintSubMenu(); void PrintPresetsMenu(); void PrintResetToDefaultsMenu(); +void PrintGenerateMenu(); void ClearDescription(); void PrintOptionDescription(); +void PrintVersionDescription(); void GenerateRandomizer(); std::string GetInput(const char* hintText); diff --git a/source/include/setting_descriptions.hpp b/source/include/setting_descriptions.hpp index 8c7d541..298c6ed 100644 --- a/source/include/setting_descriptions.hpp +++ b/source/include/setting_descriptions.hpp @@ -225,7 +225,4 @@ extern string_view compassShowWotHDesc; extern string_view skipHMSCutsceneDesc; extern string_view skipDarmaniCutsceneDesc; extern string_view skipMikauCutsceneDesc; -extern string_view skipBombersMinigameDesc; -extern string_view NARegionDesc; -extern string_view EURegionDesc; -extern string_view VersionDesc; \ No newline at end of file +extern string_view skipBombersMinigameDesc; \ No newline at end of file diff --git a/source/include/settings.hpp b/source/include/settings.hpp index 8cb4de4..455fa6f 100644 --- a/source/include/settings.hpp +++ b/source/include/settings.hpp @@ -419,7 +419,6 @@ namespace Settings { extern Option ChestSize; extern Option ChangeOverworldItems; extern Option IngameSpoilers; - extern Option RegionSelect; extern Option MenuOpeningButton; extern Option RsDurability; extern Option SkipBombersMinigame; @@ -530,10 +529,8 @@ namespace Settings { extern u32 LinksPocketRewardBitMask; extern std::array rDungeonRewardOverrides; - extern Option PlayOption; - extern Option Version; - extern std::vector gameOptions; - extern Menu gameSettings; + extern u8 PlayOption; + extern u8 Version; } diff --git a/source/menu.cpp b/source/menu.cpp index f90e9a1..166114f 100644 --- a/source/menu.cpp +++ b/source/menu.cpp @@ -20,6 +20,7 @@ using namespace Settings; namespace { bool seedChanged; + bool choosePlayOption; u16 pastSeedLength; u16 settingBound = 0; PrintConsole topScreen, bottomScreen; @@ -47,6 +48,7 @@ void MenuInit() { Settings::InitSettings(); seedChanged = false; + choosePlayOption = false; pastSeedLength = Settings::seed.length(); settingBound = 0; @@ -162,7 +164,7 @@ void MenuUpdate(u32 kDown) { } } //If they pressed B on any menu other than main, go backwards to the previous menu - else if (kDown & KEY_B && currentMenu->mode != MAIN_MENU) { + else if (kDown & KEY_B && currentMenu->mode != MAIN_MENU && !choosePlayOption) { //Want to reset generate menu when leaving if (currentMenu->mode == POST_GENERATE) { @@ -224,6 +226,9 @@ void MenuUpdate(u32 kDown) { PrintResetToDefaultsMenu(); } else if (currentMenu->mode == GENERATE_MODE) { UpdateGenerateMenu(kDown); + if (currentMenu->mode != POST_GENERATE) { + PrintGenerateMenu(); + } } else if (currentMenu->mode == SUB_MENU) { PrintSubMenu(); } @@ -317,12 +322,34 @@ void UpdateResetToDefaultsMenu(u32 kDown) { } u16 menuIdx2; void UpdateGenerateMenu(u32 kDown) { - //consoleSelect(&bottomScreen); - //consoleClear(); + if (!choosePlayOption) { + if ((kDown & KEY_A) != 0) { + Settings::PlayOption = currentMenu->menuIdx; + consoleSelect(&bottomScreen); + consoleClear(); + choosePlayOption = true; + menuIdx2 = currentMenu->menuIdx; + currentMenu->menuIdx = 0; + } + } + else { + if ((kDown & KEY_B) !=0) { + consoleSelect(&bottomScreen); + consoleClear(); + choosePlayOption = false; + currentMenu->menuIdx = menuIdx2; + } + else if ((kDown & KEY_A) !=0) { + Settings::Version = currentMenu->menuIdx; + consoleSelect(&bottomScreen); + consoleClear(); GenerateRandomizer(); //This is just a dummy mode to stop the prompt from appearing again currentMenu->mode = POST_GENERATE; - } + choosePlayOption = false; + } + } + } void PrintMainMenu() { printf("\x1b[0;%dHMain Settings", 1+(BOTTOM_WIDTH-13)/2); @@ -461,6 +488,47 @@ void PrintResetToDefaultsMenu() { printf("\x1b[12;4HPress B to return to the preset menu."); } +void PrintGenerateMenu() { + + consoleSelect(&bottomScreen); + + if (!choosePlayOption) { + printf("\x1b[3;%dHHow will you play?", 1+(BOTTOM_WIDTH-18)/2); + std::vector playOptions = {"3ds Console", "Citra Emulator"}; + + for (u8 i = 0; i < playOptions.size(); i++) { + + std::string option = playOptions[i]; + u8 row = 6 + (i * 2); + //make the current selection green + if (currentMenu->menuIdx == i) { + printf("\x1b[%d;%dH%s>", row, 14, GREEN); + printf("\x1b[%d;%dH%s%s", row, 15, option.c_str(), RESET); + } else { + printf("\x1b[%d;%dH%s", row, 15, option.c_str()); + } + } + } + else { + printf("\x1b[3;%dHSelect your game version", 1 + (BOTTOM_WIDTH -18) / 2); + std::vector versionOptions = {"1.0", "1.1"}; + + for (u8 j=0; j < versionOptions.size(); j++) { + std::string option = versionOptions[j]; + u8 row = 6 + (j * 2); + //make the current selection green + if (currentMenu->menuIdx == j) { + printf("\x1b[%d;%dH%s>", row, 14, GREEN); + printf("\x1b[%d;%dH%s%s", row, 15, option.c_str(), RESET); + } else { + printf("\x1b[%d;%dH%s", row, 15, option.c_str()); + } + } + ClearDescription(); + PrintVersionDescription(); + + } +} void ClearDescription() { consoleSelect(&topScreen); @@ -478,6 +546,15 @@ void PrintOptionDescription() { printf("\x1b[22;0H%s", description.data()); } +void PrintVersionDescription() { + ClearDescription(); //"Description must fit in this space ---------------//" + std::string_view description = "Due to patch size when using version 1.1 it can \n" + "take up to 30 seconds to launch the game, this is\n" + "expected and will not effect gameplay"; + + printf("\x1b[22;0H%s", description.data()); +} + void GenerateRandomizer() { consoleSelect(&topScreen); @@ -513,11 +590,11 @@ void GenerateRandomizer() { printf("\x1b[13;10HWriting Patch..."); if (WriteAllPatches()) { printf("Done"); - if (Settings::PlayOption.Value() == PATCH_CONSOLE) { + if (Settings::PlayOption == PATCH_CONSOLE) { printf("\x1b[15;10HQuit out using the home menu. Then\n"); printf("\x1b[16;10Henable game patching and launch MM3D!\n"); } - else if (Settings::PlayOption.Value() == PATCH_CITRA) { + else if (Settings::PlayOption == PATCH_CITRA) { printf("\x1b[15;10HCopy code.ips, exheader.bin and romfs to\n"); printf("\x1b[16;10Hthe MM3D mods folder, then launch MM3D!\n"); } diff --git a/source/patch.cpp b/source/patch.cpp index 91b4c1e..cf0ac4e 100644 --- a/source/patch.cpp +++ b/source/patch.cpp @@ -111,27 +111,15 @@ bool WriteAllPatches() { FSUSER_CreateDirectory(sdmcArchive, fsMakePath(PATH_ASCII, "/luma"), FS_ATTRIBUTE_DIRECTORY); //Create the titles directory if it doesn't exist FSUSER_CreateDirectory(sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles"), FS_ATTRIBUTE_DIRECTORY); - //Create the 0004000000125500 OR 0004000000125600 directory if it doesn't exist (mm3d game id: NA/EUR) - if (!Settings::RegionSelect){ - FSUSER_CreateDirectory(sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles/0004000000125500"), FS_ATTRIBUTE_DIRECTORY); - //Create the romfs directory if it doesn't exist (for LayeredFS) - FSUSER_CreateDirectory(sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles/0004000000125500/romfs"), FS_ATTRIBUTE_DIRECTORY); - //Create the actor directory if it doesn't exist - FSUSER_CreateDirectory(sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles/0004000000125500/romfs/actor"), FS_ATTRIBUTE_DIRECTORY); - //Create the actors directory if it doesn't exist - FSUSER_CreateDirectory(sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles/0004000000125500/romfs/actors"), FS_ATTRIBUTE_DIRECTORY); - } + //Create the 0004000000125500 directory if it doesn't exist (mm3d game id) + FSUSER_CreateDirectory(sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles/0004000000125500"), FS_ATTRIBUTE_DIRECTORY); + //Create the romfs directory if it doesn't exist (for LayeredFS) + FSUSER_CreateDirectory(sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles/0004000000125500/romfs"), FS_ATTRIBUTE_DIRECTORY); + //Create the actor directory if it doesn't exist + FSUSER_CreateDirectory(sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles/0004000000125500/romfs/actor"), FS_ATTRIBUTE_DIRECTORY); + //Create the actors directory if it doesn't exist + FSUSER_CreateDirectory(sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles/0004000000125500/romfs/actors"), FS_ATTRIBUTE_DIRECTORY); - //EU - if (Settings::RegionSelect){ - FSUSER_CreateDirectory(sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles/0004000000125600"), FS_ATTRIBUTE_DIRECTORY); - //Create the romfs directory if it doesn't exist (for LayeredFS) - FSUSER_CreateDirectory(sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles/0004000000125600/romfs"), FS_ATTRIBUTE_DIRECTORY); - //Create the actor directory if it doesn't exist - FSUSER_CreateDirectory(sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles/0004000000125600/romfs/actor"), FS_ATTRIBUTE_DIRECTORY); - //Create the actors directory if it doesn't exist - FSUSER_CreateDirectory(sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles/0004000000125600/romfs/actors"), FS_ATTRIBUTE_DIRECTORY); - } /*romfs is used to get files from the romfs folder.This allows us to copy //from basecode and write the exheader without the user needing to worry about //placing them manually on their SD card.*/ @@ -143,29 +131,17 @@ bool WriteAllPatches() { /*------------------------ - | basecode.ips | --------------------------*/ - //NA - if (!Settings::RegionSelect){ - // Delete code.ips if it exists - FSUSER_DeleteFile(sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles/0004000000125500/code.ips")); - - // Open code.ips - if (!R_SUCCEEDED(res = FSUSER_OpenFile(&code, sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles/0004000000125500/code.ips"), FS_OPEN_WRITE | FS_OPEN_CREATE, 0))) { - return false; - } - } - //EU - if (Settings::RegionSelect){ - // Delete code.ips if it exists - FSUSER_DeleteFile(sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles/0004000000125600/code.ips")); - - // Open code.ips - if (!R_SUCCEEDED(res = FSUSER_OpenFile(&code, sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles/0004000000125600/code.ips"), FS_OPEN_WRITE | FS_OPEN_CREATE, 0))) { - return false; - } + + // Delete code.ips if it exists + FSUSER_DeleteFile(sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles/0004000000125500/code.ips")); + + // Open code.ips + if (!R_SUCCEEDED(res = FSUSER_OpenFile(&code, sdmcArchive, fsMakePath(PATH_ASCII, "/luma/titles/0004000000125500/code.ips"), FS_OPEN_WRITE | FS_OPEN_CREATE, 0))) { + return false; } // Copy basecode to code - const char* basecodeFile = Settings::Version.Value() == 0 ? "romfs:/basecode.ips" : "romfs:/basecode1.1.ips"; + const char* basecodeFile = Settings::Version == 0 ? "romfs:/basecode.ips" : "romfs:/basecode1.1.ips"; if (auto basecode = FILEPtr{std::fopen(basecodeFile, "r"), std::fclose}) { // obtain basecode.ips file size fseek(basecode.get(), 0, SEEK_END); @@ -364,19 +340,13 @@ bool WriteAllPatches() { // Get exheader for proper playOption const char * filePath; - if (Settings::PlayOption.Value() == PATCH_CONSOLE) { + if (Settings::PlayOption == PATCH_CONSOLE) { filePath = "romfs:/exheader.bin"; } else { filePath = "romfs:/exheader_citra.bin"; } - //NA - if (!Settings::RegionSelect){ - CopyFile(sdmcArchive, "/luma/titles/0004000000125500/exheader.bin", filePath); - } - //EU - if (Settings::RegionSelect){ - CopyFile(sdmcArchive, "/luma/titles/0004000000125600/exheader.bin", filePath); - } + + CopyFile(sdmcArchive, "/luma/titles/0004000000125500/exheader.bin", filePath); /*------------------------ - | custom assets | @@ -428,102 +398,51 @@ bool WriteAllPatches() { // Delete assets if it exists Handle titleassetsOut; + const char* titleassetsOutPath = "/luma/titles/0004000000125500/romfs/actors/zelda2_mag.gar.lzs"; const char* titleassetsInPath = "romfs:/zelda2_mag.gar.lzs"; - //NA - if (!Settings::RegionSelect){ - const char* titleassetsOutPath = "/luma/titles/0004000000125500/romfs/actors/zelda2_mag.gar.lzs"; - FSUSER_DeleteFile(sdmcArchive, fsMakePath(PATH_ASCII, titleassetsOutPath)); - // Open assets destination - if (!R_SUCCEEDED(res = FSUSER_OpenFile(&titleassetsOut, sdmcArchive, fsMakePath(PATH_ASCII, titleassetsOutPath), FS_OPEN_WRITE | FS_OPEN_CREATE, 0))) { - return false; - } - - if (auto file = FILEPtr{std::fopen(titleassetsInPath, "r"), std::fclose}) { - // obtain assets size - fseek(file.get(), 0, SEEK_END); - const auto lSize = static_cast(ftell(file.get())); - rewind(file.get()); - - // copy assets into the buffer - std::vector buffer(lSize); - fread(buffer.data(), 1, buffer.size(), file.get()); + FSUSER_DeleteFile(sdmcArchive, fsMakePath(PATH_ASCII, titleassetsOutPath)); - // Write the assets to final destination - if (!R_SUCCEEDED(res = FSFILE_Write(titleassetsOut, &bytesWritten, 0, buffer.data(), buffer.size(), FS_WRITE_FLUSH))) { - return false; - } - } + // Open assets destination + if (!R_SUCCEEDED(res = FSUSER_OpenFile(&titleassetsOut, sdmcArchive, fsMakePath(PATH_ASCII, titleassetsOutPath), FS_OPEN_WRITE | FS_OPEN_CREATE, 0))) { + return false; } - //EU - if (Settings::RegionSelect){ - const char* titleassetsOutPath = "/luma/titles/0004000000125600/romfs/actors/zelda2_mag.gar.lzs"; - FSUSER_DeleteFile(sdmcArchive, fsMakePath(PATH_ASCII, titleassetsOutPath)); - // Open assets destination - if (!R_SUCCEEDED(res = FSUSER_OpenFile(&titleassetsOut, sdmcArchive, fsMakePath(PATH_ASCII, titleassetsOutPath), FS_OPEN_WRITE | FS_OPEN_CREATE, 0))) { - return false; - } - if (auto file = FILEPtr{std::fopen(titleassetsInPath, "r"), std::fclose}) { - // obtain assets size - fseek(file.get(), 0, SEEK_END); - const auto lSize = static_cast(ftell(file.get())); - rewind(file.get()); + if (auto file = FILEPtr{std::fopen(titleassetsInPath, "r"), std::fclose}) { + // obtain assets size + fseek(file.get(), 0, SEEK_END); + const auto lSize = static_cast(ftell(file.get())); + rewind(file.get()); - // copy assets into the buffer - std::vector buffer(lSize); - fread(buffer.data(), 1, buffer.size(), file.get()); + // copy assets into the buffer + std::vector buffer(lSize); + fread(buffer.data(), 1, buffer.size(), file.get()); - // Write the assets to final destination - if (!R_SUCCEEDED(res = FSFILE_Write(titleassetsOut, &bytesWritten, 0, buffer.data(), buffer.size(), FS_WRITE_FLUSH))) { - return false; - } + // Write the assets to final destination + if (!R_SUCCEEDED(res = FSFILE_Write(titleassetsOut, &bytesWritten, 0, buffer.data(), buffer.size(), FS_WRITE_FLUSH))) { + return false; } } - FSFILE_Close(titleassetsOut); /*------------------- | LOCALE EMULATION | -------------------*/ - if (Settings::PlayOption.Value() == PATCH_CONSOLE) { + if (Settings::PlayOption == PATCH_CONSOLE) { Handle localeOut; - //NA - if (!Settings::RegionSelect){ - const char* localeOutPath = "/luma/titles/0004000000125500/locale.txt"; - FSUSER_DeleteFile(sdmcArchive, fsMakePath(PATH_ASCII, localeOutPath)); - - if (!R_SUCCEEDED(res = FSUSER_OpenFile(&localeOut, sdmcArchive, fsMakePath(PATH_ASCII, localeOutPath), FS_OPEN_WRITE | FS_OPEN_CREATE, 0))) { - return false; - } - } - //EU - if (Settings::RegionSelect){ - const char* localeOutPath = "/luma/titles/0004000000125600/locale.txt"; - FSUSER_DeleteFile(sdmcArchive, fsMakePath(PATH_ASCII, localeOutPath)); - if (!R_SUCCEEDED(res = FSUSER_OpenFile(&localeOut, sdmcArchive, fsMakePath(PATH_ASCII, localeOutPath), FS_OPEN_WRITE | FS_OPEN_CREATE, 0))) { - return false; - } - } + const char* localeOutPath = "/luma/titles/0004000000125500/locale.txt"; + FSUSER_DeleteFile(sdmcArchive, fsMakePath(PATH_ASCII, localeOutPath)); - - //NA - if (!Settings::RegionSelect){ - std::vector buffer = { 'U', 'S', 'A', ' ', 'E', 'N' }; - if (!R_SUCCEEDED(res = FSFILE_Write(localeOut, &bytesWritten, 0, buffer.data(), buffer.size(), FS_WRITE_FLUSH))) { - return false; - } - FSFILE_Close(localeOut); - } - //EU - if (Settings::RegionSelect){ - std::vector buffer = { 'E', 'U', 'R', ' ', 'E', 'N' }; - if (!R_SUCCEEDED(res = FSFILE_Write(localeOut, &bytesWritten, 0, buffer.data(), buffer.size(), FS_WRITE_FLUSH))) { - return false; - } - FSFILE_Close(localeOut); + if (!R_SUCCEEDED(res = FSUSER_OpenFile(&localeOut, sdmcArchive, fsMakePath(PATH_ASCII, localeOutPath), FS_OPEN_WRITE | FS_OPEN_CREATE, 0))) { + return false; } + std::vector buffer = { 'U', 'S', 'A', ' ', 'E', 'N' }; + + if (!R_SUCCEEDED(res = FSFILE_Write(localeOut, &bytesWritten, 0, buffer.data(), buffer.size(), FS_WRITE_FLUSH))) { + return false; + } + FSFILE_Close(localeOut); } FSUSER_CloseArchive(sdmcArchive); diff --git a/source/setting_descriptions.cpp b/source/setting_descriptions.cpp index 1bb5a40..bd2384c 100644 --- a/source/setting_descriptions.cpp +++ b/source/setting_descriptions.cpp @@ -332,8 +332,10 @@ string_view changeOverworldItemsDesc = "**OPTION CURRENTLY WIP**\n" /*------------------------------ // | INGAME SPOILERS | // ------------------------------*/ // -string_view ingameSpoilersShowDesc = "Every spoiler is shown."; // -string_view ingameSpoilersHideDesc = "Hides the spheres page and only shows a\n" // +string_view ingameSpoilersShowDesc = "**OPTION CURRENTLY WIP**\n" // + "Every spoiler is shown."; // +string_view ingameSpoilersHideDesc = "**OPTION CURRENTLY WIP**\n" // + "Hides the spheres page and only shows a\n" // "location's item after it has been found."; // // string_view genSpoilerLogDesc = "Choose to Generate a Spoiler Log"; // @@ -636,23 +638,15 @@ string_view ingameSpoilersButtonDesc = "Change the button to open the ingame Spo -------------------------------*/ // string_view skipBombersMinigameDesc = "Skip Bomber's Minigame to get the code.\n" // "Sets the code to 12345."; // -/*------------------------------ // -| GLITCHES | // -------------------------------*/ // + +/*------------------------------ // +| GLITCHES | // +------------------------------*/ // const std::vector GlitchDifficulties{"Novice", "Intermediate", "Advanced", "Expert", "Hero"}; -/*------------------------------ // -| CUTSCENE OPTIONS | // -------------------------------*/ // + +/*------------------------------ // +| CUTSCENE OPTIONS | // +------------------------------*/ string_view skipHMSCutsceneDesc = "Skips the initial Happy Mask Salesman's cutscenes"; // string_view skipDarmaniCutsceneDesc = "Skips the Song of Healing Cutscene for Darmani"; // -string_view skipMikauCutsceneDesc = "Skips the Song of Healing Cutscene for Mikau"; // -/*------------------------------ // -| REGION OPTIONS | // -------------------------------*/ // -string_view NARegionDesc = " North America\n" // - "Currently only supports English Hints and Custom Text"; -string_view EURegionDesc = " Europe\n" // - "Currently only supports English Hints and Custom Text"; -string_view VersionDesc = "Due to patch size when using version 1.1 it can \n" // - "take up to 30 seconds to launch the game, this is\n"// - "expected and will not effect gameplay"; // \ No newline at end of file +string_view skipMikauCutsceneDesc = "Skips the Song of Healing Cutscene for Mikau"; // \ No newline at end of file diff --git a/source/settings.cpp b/source/settings.cpp index cdee5f2..6e469c7 100644 --- a/source/settings.cpp +++ b/source/settings.cpp @@ -66,24 +66,15 @@ namespace Settings { //Mode/Logic Settings Option Logic = Option::U8("Logic", { "Glitchless", "No Logic", "Vanilla", "Glitched" }, { logicGlitchless, logicNoLogic, logicVanilla, logicGlitched },OptionCategory::Setting, (u8)LogicSetting::LOGIC_GLITCHLESS); Option LocationsReachable = Option::Bool("All Locations Reachable", { "Off", "On" }, { locationsReachableDesc }, OptionCategory::Setting, 1); //All Locations Reachable On + Option IngameSpoilers = Option::Bool("Ingame Spoilers", { "Hide", "Show" }, { ingameSpoilersHideDesc, ingameSpoilersShowDesc }); + std::vector logicOptions = { &Logic, &LocationsReachable, - }; - - //Game Settings - Option GenerateSpoilerLog = Option::Bool("Generate Spoiler Log", { "No", "Yes" }, { genSpoilerLogDesc }, OptionCategory::Setting, 1); // On - Option IngameSpoilers = Option::Bool("Ingame Spoilers", { "Hide", "Show" }, { ingameSpoilersHideDesc, ingameSpoilersShowDesc }); - Option RegionSelect = Option::Bool("Game Region", {"NA", "EU"}, {NARegionDesc, EURegionDesc}); - Option PlayOption = Option::U8("Console/Emulator", {"3DS", "Citra"}, {"How will you Play?"}); - Option Version = Option::U8("Version", {"1.0", "1.1"}, {VersionDesc}); - std::vector