From 04c069737910289ac4aab75a9e30bb3d01a53a26 Mon Sep 17 00:00:00 2001 From: Pepper0ni <93387759+Pepper0ni@users.noreply.github.com> Date: Tue, 21 Jan 2025 05:46:52 +0000 Subject: [PATCH] Clean up settings and add boss soul files (#4891) * Clean up settings and add boss soul files * address reviews * didn't realise there was more * add comment for how to undummy stealth --- .../custom/objects/object_boss_soul/BarkOrHorns | Bin 0 -> 4188 bytes .../custom/objects/object_boss_soul/LightNoise | Bin 0 -> 4188 bytes .../gGIBossSoulSkullDL_vtx_cull | 10 ++++++++++ .../custom/objects/object_boss_soul/heart1 | Bin 0 -> 1116 bytes .../mat_gGIBossSoulSkullDL_Black | 11 +++++++++++ .../mat_gGIBossSoulSkullDL_Horns | 16 ++++++++++++++++ .../mat_gGIBossSoulSkullDL_Jewel | 16 ++++++++++++++++ .../mat_gGIBossSoulSkullDL_Skull1 | 15 +++++++++++++++ .../mat_gGIBossSoulSkullDL_f3dlite_material | 12 ++++++++++++ soh/soh/Enhancements/presets.h | 2 -- soh/soh/Enhancements/randomizer/entrance.cpp | 14 +++++--------- .../Enhancements/randomizer/location_access.h | 16 ++++------------ .../randomizer/option_descriptions.cpp | 3 --- soh/soh/Enhancements/randomizer/randomizer.cpp | 7 ------- .../Enhancements/randomizer/randomizerTypes.h | 2 -- soh/soh/Enhancements/randomizer/settings.cpp | 8 +++----- soh/soh/config/ConfigMigrators.h | 1 - 17 files changed, 92 insertions(+), 41 deletions(-) create mode 100644 soh/assets/custom/objects/object_boss_soul/BarkOrHorns create mode 100644 soh/assets/custom/objects/object_boss_soul/LightNoise create mode 100644 soh/assets/custom/objects/object_boss_soul/gGIBossSoulSkullDL_vtx_cull create mode 100644 soh/assets/custom/objects/object_boss_soul/heart1 create mode 100644 soh/assets/custom/objects/object_boss_soul/mat_gGIBossSoulSkullDL_Black create mode 100644 soh/assets/custom/objects/object_boss_soul/mat_gGIBossSoulSkullDL_Horns create mode 100644 soh/assets/custom/objects/object_boss_soul/mat_gGIBossSoulSkullDL_Jewel create mode 100644 soh/assets/custom/objects/object_boss_soul/mat_gGIBossSoulSkullDL_Skull1 create mode 100644 soh/assets/custom/objects/object_boss_soul/mat_gGIBossSoulSkullDL_f3dlite_material diff --git a/soh/assets/custom/objects/object_boss_soul/BarkOrHorns b/soh/assets/custom/objects/object_boss_soul/BarkOrHorns new file mode 100644 index 0000000000000000000000000000000000000000..d546ce9bdd19cad4f29a7215d4d0ede35d8c27aa GIT binary patch literal 4188 zcma*q$8wcN5C!1tH}E6)O}z5j8!!AgD&-6cDCY=50T9YLXMqY7K`uZgRcYl%81uC~ ztWDKl_rEhe-KWnvJy#S8g~Fe|{qg%x-#`Ceo%qZ1{q=wUbMBY_o_`M&{aPq|e||0$ zmY0{)@$qqb_3Bk>ZEa1})zxWbWhGr*U8Ty(%GA=*lIrX0Q*CW+T3cI7o12@dr>7@% zcXvme*yiTuw6U>~-n@B}K7IO>_V@QAW`2G?m6w;NXV0FcrKP2`v$K<4zI++)YE@NL zMZUws!#F!QI2iHjY;SL;g@uLG-rk-nDk=ik-rin1IXOu%!}Ip-+jM?@p6crA($>~i z)OF52%wuC?>FLv_sj;y!4Gj$iUicRm7gJ|vXVjXRnThq@-rnd#&+zMKbaXT|G&Ds0 zva+(keRp>kd)DFfsD;0gk&(2zx|-nZ=;%oO{rz#itE(&efbreCcY#mtrlzLIg)`rA zg%gyna^;FnL~vL_CA_@ZZDUti1y?0PgW_=Jg%r>3T&Z+xhOAO7ci zUePywJ-nhWFTucjFyKiaI5Pv|@Xi}>@(fLJXg=i92b^-k z1_O@ZriS3Rt+uLl;I!HX9?@-hGE zL!b6>hf8a6@VlPx@9*P#_BecU^Q}0!^ekRZ9^_rM^`)M&hav? zUc7kmBOY(!aAtmaMIKn>c1Awm`B5F3z()tX@UgXrhllWb_OG7BhkIT&JMZ7W4-ELgCrmdtH?j8m_3Px3 zQ;%X{#6SJe7vu^x`ZY zaO*7X2tyE_rj*7R;Z zeB$Wi$B#ei=idQ)cvDBOa>J~D>+-mtV9~c(;}P1z$lK=DJD%mkg?Xo;`PaX5`lB^3 zs6k7;!>%v&_)hW3_aW} zayf6-<)Arl(+NH``NM4Rt9<-hR8$ms%&R%$XZ-8O{f`GZ@kv+p@B@o_?k+ymE1u{9 zmmD-!A6~V2TQ0T5WRKuS9B$0CJ^W?=$@BU1=lEO4Y}ylJCfqCZ@IBv~xqr2A$#3o| z@ifr4`-Pw6^1z0dyr2CKgI@ft<5T~*_4fho^#;51`d7nQarXQM=U!lSmJe~sOU{aQ z_WJrdF!&UgeeOK{+!m+H!iF zv&M_=8}n_RVUULh?7^cxf4U3Ir#$&@PaK$IcZNhk)}5EfJqM53*QeTig=_bg82O!rpQh^K-#dQIAANAoUwlVzv&Q$n%SU%O^^IR1 z*N;BU@$Kzx;NnL)aU#yTeca(gJWTMY$$vPvC!aMv;S)Z1%><0JgV8*hZ`#12SN9BT z;@~!)F!*~|uky-i=3p>y-uVXi?o4@bi$@welj}Q+TeIeTzGL;KmOSv%K@PvGw4{OG hdK$=qM{D@i3r^`uu%>l6H{DXn-_Q!{6#r@PP5 zeRx@x<@=X!Uq77lpI<+Ji*xzk|JnQWFa9q5_`EFV__!>G!(n}Vd|Z#m)@Ev$<_`}K>)YGg1#9MP|Mm6tnql?KpP!#E7#wNIY1vCdwnrPUj7#3_c9#sZ z-EJ>+d@yP|_2S`GO)pJ2x?yD;Y2`z%HnVS6=(le+d;0wL2F~#I)h{nEm#h|c-7%j$ zJ2%e*Tp06q=fOIP3ESp9i^n!nz0CX0y5S#AOB(KcDvFPeZ@^+fm1x z9;|+z@&(sj)%tgLch|f026)oJ!I#Lx{r&y*jo|brCXM>C9xfSwUhJovmfY`_rgumS zULB8n2z%XCZMW!c=%%eF@+8x77qzgT7EkT;erEYftDF~ST+?5({NOde{hrtJfA;gK zZny8qj0gLAFlw6k;LW>}`^A@cvwE`qcGA~V!{XrGd*PoR?3v}Gop_ynL-EVF&GB}I z!_&-L(8`+`FZHUO)x61tzDO58P4n4vrXiaPd+^@3zH?e?ec{dHb?z-@FTOmOsp-zp z?IOTqWsf#Cln9eef-5akSjDA?XcJTC`Ve%s5f>o#4j!dKb zd#60h>B8Z07hHXt-L1QNzuWi0Vc&0?FFvOy`}00HXz1N~&@)d5r(Rxg=d<^SKMX&3 zdy_oY%ct}FX7Q!nuAabI^!H+7d9)L^9d(*<*T-e2Jvm+&XZ%yM+T8CI9@ZQ9ePy_* zr!Km07`r08H&pXo?YHVZ?A5mirziV9)V%>*+&FoY!af)lr^kzL#V%|)y)&(mK y?Y`md!t@5P_Vh)1d2QzG-u&|xHb1gmxU}?UZH~`7s?)~VF5dR4;qi2q?Ysjy|A!<1 literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_boss_soul/gGIBossSoulSkullDL_vtx_cull b/soh/assets/custom/objects/object_boss_soul/gGIBossSoulSkullDL_vtx_cull new file mode 100644 index 000000000..0e8c716c3 --- /dev/null +++ b/soh/assets/custom/objects/object_boss_soul/gGIBossSoulSkullDL_vtx_cull @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_boss_soul/heart1 b/soh/assets/custom/objects/object_boss_soul/heart1 new file mode 100644 index 0000000000000000000000000000000000000000..1fdc62cbd817fded965b1c359ada69fb5ef4fd39 GIT binary patch literal 1116 zcma)(Ax?xr3`V=KXpk6!L?Z}t6?&5mA>08;f<|x*u7JdHggpWl$q`E5?7q-U5Nz_L z|8)A=ud@*m_cyoeMaA!rw@*}`|Ng<9?6rfQR}rOU#6uk9td}^<*Gc5mT+g{P8Aq9$ zyI-B2WunS&V>xQ=vDwduf3G{{e! + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_boss_soul/mat_gGIBossSoulSkullDL_Horns b/soh/assets/custom/objects/object_boss_soul/mat_gGIBossSoulSkullDL_Horns new file mode 100644 index 000000000..28fdc0d1b --- /dev/null +++ b/soh/assets/custom/objects/object_boss_soul/mat_gGIBossSoulSkullDL_Horns @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_boss_soul/mat_gGIBossSoulSkullDL_Jewel b/soh/assets/custom/objects/object_boss_soul/mat_gGIBossSoulSkullDL_Jewel new file mode 100644 index 000000000..dbe5cfd53 --- /dev/null +++ b/soh/assets/custom/objects/object_boss_soul/mat_gGIBossSoulSkullDL_Jewel @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_boss_soul/mat_gGIBossSoulSkullDL_Skull1 b/soh/assets/custom/objects/object_boss_soul/mat_gGIBossSoulSkullDL_Skull1 new file mode 100644 index 000000000..c32c4ee24 --- /dev/null +++ b/soh/assets/custom/objects/object_boss_soul/mat_gGIBossSoulSkullDL_Skull1 @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_boss_soul/mat_gGIBossSoulSkullDL_f3dlite_material b/soh/assets/custom/objects/object_boss_soul/mat_gGIBossSoulSkullDL_f3dlite_material new file mode 100644 index 000000000..a3dd769f6 --- /dev/null +++ b/soh/assets/custom/objects/object_boss_soul/mat_gGIBossSoulSkullDL_f3dlite_material @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/soh/soh/Enhancements/presets.h b/soh/soh/Enhancements/presets.h index 965fa2678..78e754d58 100644 --- a/soh/soh/Enhancements/presets.h +++ b/soh/soh/Enhancements/presets.h @@ -408,7 +408,6 @@ const std::vector randomizerCvars = { CVAR_RANDOMIZER_SETTING("DoorOfTime"), CVAR_RANDOMIZER_SETTING("DungeonCount"), CVAR_RANDOMIZER_SETTING("EnableBombchuDrops"), - CVAR_RANDOMIZER_SETTING("EnableGlitchCutscenes"), CVAR_RANDOMIZER_SETTING("FishingPoleHint"), CVAR_RANDOMIZER_SETTING("Fishsanity"), CVAR_RANDOMIZER_SETTING("FishsanityAgeSplit"), @@ -1200,7 +1199,6 @@ const std::vector hellModePresetEntries = { PRESET_ENTRY_S32(CVAR_RANDOMIZER_SETTING("CuccosToReturn"), 1), PRESET_ENTRY_S32(CVAR_RANDOMIZER_SETTING("DoorOfTime"), RO_DOOROFTIME_OPEN), PRESET_ENTRY_S32(CVAR_RANDOMIZER_SETTING("EnableBombchuDrops"), 1), - PRESET_ENTRY_S32(CVAR_RANDOMIZER_SETTING("EnableGlitchCutscenes"), 1), PRESET_ENTRY_S32(CVAR_RANDOMIZER_SETTING("ClosedForest"), RO_CLOSED_FOREST_OFF), PRESET_ENTRY_S32(CVAR_RANDOMIZER_SETTING("GanonTrial"), RO_GANONS_TRIALS_SET_NUMBER), PRESET_ENTRY_S32(CVAR_RANDOMIZER_SETTING("GanonTrialCount"), 6), diff --git a/soh/soh/Enhancements/randomizer/entrance.cpp b/soh/soh/Enhancements/randomizer/entrance.cpp index 910467e81..876b22a7f 100644 --- a/soh/soh/Enhancements/randomizer/entrance.cpp +++ b/soh/soh/Enhancements/randomizer/entrance.cpp @@ -20,15 +20,11 @@ void Entrance::SetCondition(ConditionFn newCondition) { } bool Entrance::GetConditionsMet() const { - auto ctx = Rando::Context::GetInstance(); - if (ctx->GetOption(RSK_LOGIC_RULES).Is(RO_LOGIC_NO_LOGIC) || ctx->GetOption(RSK_LOGIC_RULES).Is(RO_LOGIC_VANILLA)) { - return true; - } else if (ctx->GetOption(RSK_LOGIC_RULES).Is(RO_LOGIC_GLITCHLESS)) { - return condition_function(); - } else if (ctx->GetOption(RSK_LOGIC_RULES).Is(RO_LOGIC_GLITCHED)) { - return condition_function(); - } - return false; + auto ctx = Rando::Context::GetInstance(); + if (ctx->GetOption(RSK_LOGIC_RULES).Is(RO_LOGIC_GLITCHLESS)) { + return condition_function(); + } + return true; } std::string Entrance::to_string() const { diff --git a/soh/soh/Enhancements/randomizer/location_access.h b/soh/soh/Enhancements/randomizer/location_access.h index 3af0a498d..986d08d6a 100644 --- a/soh/soh/Enhancements/randomizer/location_access.h +++ b/soh/soh/Enhancements/randomizer/location_access.h @@ -23,14 +23,10 @@ class EventAccess { bool ConditionsMet() const { auto ctx = Rando::Context::GetInstance(); - if (ctx->GetOption(RSK_LOGIC_RULES).Is(RO_LOGIC_NO_LOGIC) || ctx->GetOption(RSK_LOGIC_RULES).Is(RO_LOGIC_VANILLA)) { - return true; - } else if (ctx->GetOption(RSK_LOGIC_RULES).Is(RO_LOGIC_GLITCHLESS)) { - return condition_function(); - } else if (ctx->GetOption(RSK_LOGIC_RULES).Is(RO_LOGIC_GLITCHED)) { + if (ctx->GetOption(RSK_LOGIC_RULES).Is(RO_LOGIC_GLITCHLESS)) { return condition_function(); } - return false; + return true; } bool CheckConditionAtAgeTime(bool& age, bool& time) { @@ -71,14 +67,10 @@ class LocationAccess { bool GetConditionsMet() const { auto ctx = Rando::Context::GetInstance(); - if (ctx->GetOption(RSK_LOGIC_RULES).Is(RO_LOGIC_NO_LOGIC) || ctx->GetOption(RSK_LOGIC_RULES).Is(RO_LOGIC_VANILLA)) { - return true; - } else if (ctx->GetOption(RSK_LOGIC_RULES).Is(RO_LOGIC_GLITCHLESS)) { - return condition_function(); - } else if (ctx->GetOption(RSK_LOGIC_RULES).Is(RO_LOGIC_GLITCHED)) { + if (ctx->GetOption(RSK_LOGIC_RULES).Is(RO_LOGIC_GLITCHLESS)) { return condition_function(); } - return false; + return true; } bool CheckConditionAtAgeTime(bool& age, bool& time) const; diff --git a/soh/soh/Enhancements/randomizer/option_descriptions.cpp b/soh/soh/Enhancements/randomizer/option_descriptions.cpp index ee59b1be4..8abdd2634 100644 --- a/soh/soh/Enhancements/randomizer/option_descriptions.cpp +++ b/soh/soh/Enhancements/randomizer/option_descriptions.cpp @@ -698,9 +698,6 @@ void Settings::CreateOptionDescriptions() { "location is reachable. When disabled, only " "required items and locations to beat the game " "will be guaranteed reachable."; - mOptionDescriptions[RSK_ENABLE_GLITCH_CUTSCENES] = - "The cutscenes of the Poes in Forest Temple and Darunia in Fire Temple will not be skipped. " - "These cutscenes are only useful for glitched gameplay and can be safely skipped otherwise."; mOptionDescriptions[RSK_SHUFFLE_BOSS_SOULS] = "Shuffles 8 boss souls (one for each blue warp dungeon). A boss will not appear until you collect its respective soul." "\n\"On + Ganon\" will also hide Ganon and Ganondorf behind a boss soul."; } diff --git a/soh/soh/Enhancements/randomizer/randomizer.cpp b/soh/soh/Enhancements/randomizer/randomizer.cpp index 2d0ceb48a..1f44fe2f3 100644 --- a/soh/soh/Enhancements/randomizer/randomizer.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer.cpp @@ -2182,13 +2182,6 @@ void RandomizerSettingsWindow::DrawElement() { ImGui::SameLine(); ImGui::TextColored(ImVec4(1.0f, 0.0f, 0.0f, 1.0f), "Heads up! This will disable all rando settings except for entrance shuffle and starter items"); } - - UIWidgets::PaddedSeparator(); - - // Enable Glitch-Useful Cutscenes - if (mSettings->GetOption(RSK_ENABLE_GLITCH_CUTSCENES).RenderImGui()) { - mNeedsUpdate = true; - } ImGui::PopItemWidth(); ImGui::EndTable(); } diff --git a/soh/soh/Enhancements/randomizer/randomizerTypes.h b/soh/soh/Enhancements/randomizer/randomizerTypes.h index 811e0998b..34f89c240 100644 --- a/soh/soh/Enhancements/randomizer/randomizerTypes.h +++ b/soh/soh/Enhancements/randomizer/randomizerTypes.h @@ -5131,7 +5131,6 @@ typedef enum { RSK_SKIP_EPONA_RACE, RSK_COMPLETE_MASK_QUEST, RSK_SKIP_SCARECROWS_SONG, - RSK_ENABLE_GLITCH_CUTSCENES, RSK_SKULLS_SUNS_SONG, RSK_SHUFFLE_ADULT_TRADE, RSK_SHUFFLE_MERCHANTS, @@ -5575,7 +5574,6 @@ typedef enum { // Logic (glitchless/no logic) typedef enum { RO_LOGIC_GLITCHLESS, - RO_LOGIC_GLITCHED, RO_LOGIC_NO_LOGIC, RO_LOGIC_VANILLA, } RandoOptionLogic; diff --git a/soh/soh/Enhancements/randomizer/settings.cpp b/soh/soh/Enhancements/randomizer/settings.cpp index b29cccf97..13acce622 100644 --- a/soh/soh/Enhancements/randomizer/settings.cpp +++ b/soh/soh/Enhancements/randomizer/settings.cpp @@ -250,6 +250,8 @@ void Settings::CreateOptions() { mOptions[RSK_KEYRINGS_BOTTOM_OF_THE_WELL] = Option::U8("Bottom of the Well Keyring", {"No", "Random", "Yes"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("ShuffleKeyRingsBottomOfTheWell"), "", WidgetType::TristateCheckbox, 0); mOptions[RSK_KEYRINGS_GTG] = Option::U8("Gerudo Training Ground Keyring", {"No", "Random", "Yes"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("ShuffleKeyRingsGTG"), "", WidgetType::TristateCheckbox, 0); mOptions[RSK_KEYRINGS_GANONS_CASTLE] = Option::U8("Ganon's Castle Keyring", {"No", "Random", "Yes"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("ShuffleKeyRingsGanonsCastle"), "", WidgetType::TristateCheckbox, 0); + //Dummied out due to redundancy with TimeSavers.SkipChildStealth until such a time that logic needs to consider child stealth e.g. because it's freestanding checks are added to freestanding shuffle. + //To undo this dummying, readd this setting to an OptionGroup so it appears in the UI, then edit the timesaver check hooks to look at this, and the timesaver setting to lock itself as needed. mOptions[RSK_SKIP_CHILD_STEALTH] = Option::Bool("Skip Child Stealth", {"Don't Skip", "Skip"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("SkipChildStealth"), mOptionDescriptions[RSK_SKIP_CHILD_STEALTH], WidgetType::Checkbox, RO_GENERIC_DONT_SKIP); mOptions[RSK_SKIP_CHILD_ZELDA] = Option::Bool("Skip Child Zelda", {"Don't Skip", "Skip"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("SkipChildZelda"), mOptionDescriptions[RSK_SKIP_CHILD_ZELDA], WidgetType::Checkbox, RO_GENERIC_DONT_SKIP); mOptions[RSK_SKIP_EPONA_RACE] = Option::Bool("Skip Epona Race", {"Don't Skip", "Skip"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("SkipEponaRace"), mOptionDescriptions[RSK_SKIP_EPONA_RACE], WidgetType::Checkbox, RO_GENERIC_DONT_SKIP); @@ -257,7 +259,6 @@ void Settings::CreateOptions() { mOptions[RSK_BIG_POE_COUNT] = Option::U8("Big Poe Target Count", {NumOpts(1, 10)}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("BigPoeTargetCount"), mOptionDescriptions[RSK_BIG_POE_COUNT], WidgetType::Slider, 9); mOptions[RSK_CUCCO_COUNT] = Option::U8("Cuccos to return", {NumOpts(0, 7)}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("CuccosToReturn"), mOptionDescriptions[RSK_CUCCO_COUNT], WidgetType::Slider, 7); mOptions[RSK_COMPLETE_MASK_QUEST] = Option::Bool("Complete Mask Quest", CVAR_RANDOMIZER_SETTING("CompleteMaskQuest"), mOptionDescriptions[RSK_COMPLETE_MASK_QUEST]); - mOptions[RSK_ENABLE_GLITCH_CUTSCENES] = Option::Bool("Enable Glitch-Useful Cutscenes", CVAR_RANDOMIZER_SETTING("EnableGlitchCutscenes"), mOptionDescriptions[RSK_ENABLE_GLITCH_CUTSCENES]); mOptions[RSK_GOSSIP_STONE_HINTS] = Option::U8("Gossip Stone Hints", {"No Hints", "Need Nothing", "Mask of Truth", "Stone of Agony"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("GossipStoneHints"), mOptionDescriptions[RSK_GOSSIP_STONE_HINTS], WidgetType::Combobox, RO_GOSSIP_STONES_NEED_NOTHING, false, IMFLAG_NONE); mOptions[RSK_HINT_CLARITY] = Option::U8("Hint Clarity", {"Obscure", "Ambiguous", "Clear"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("HintClarity"), mOptionDescriptions[RSK_HINT_CLARITY], WidgetType::Combobox, RO_HINT_CLARITY_CLEAR, true, IMFLAG_INDENT); mOptions[RSK_HINT_DISTRIBUTION] = Option::U8("Hint Distribution", {"Useless", "Balanced", "Strong", "Very Strong"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("HintDistribution"), mOptionDescriptions[RSK_HINT_DISTRIBUTION], WidgetType::Combobox, RO_HINT_DIST_BALANCED, true, IMFLAG_UNINDENT); @@ -316,7 +317,7 @@ void Settings::CreateOptions() { mOptions[RSK_STARTING_SKULLTULA_TOKEN] = Option::U8("Gold Skulltula Tokens", {NumOpts(0, 100)}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("StartingSkulltulaToken"), "", WidgetType::Slider); mOptions[RSK_STARTING_HEARTS] = Option::U8("Starting Hearts", {NumOpts(1, 20)}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("StartingHearts"), "", WidgetType::Slider, 2); // TODO: Remainder of Starting Items - mOptions[RSK_LOGIC_RULES] = Option::U8("Logic", {"Glitchless", "Glitched", "No Logic", "Vanilla"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("LogicRules"), mOptionDescriptions[RSK_LOGIC_RULES], WidgetType::Combobox, RO_LOGIC_GLITCHLESS); + mOptions[RSK_LOGIC_RULES] = Option::U8("Logic", {"Glitchless", "No Logic", "Vanilla"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("LogicRules"), mOptionDescriptions[RSK_LOGIC_RULES], WidgetType::Combobox, RO_LOGIC_GLITCHLESS); mOptions[RSK_ALL_LOCATIONS_REACHABLE] = Option::Bool("All Locations Reachable", {"Off", "On"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("AllLocationsReachable"), mOptionDescriptions[RSK_ALL_LOCATIONS_REACHABLE], WidgetType::Checkbox, RO_GENERIC_ON); mOptions[RSK_SKULLS_SUNS_SONG] = Option::Bool("Night Skulltula's Expect Sun's Song", CVAR_RANDOMIZER_SETTING("GsExpectSunsSong"), mOptionDescriptions[RSK_SKULLS_SUNS_SONG]); mOptions[RSK_DAMAGE_MULTIPLIER] = Option::U8("Damage Multiplier", {"x1/2", "x1", "x2", "x4", "x8", "x16", "OHKO"}, OptionCategory::Setting, "", "", WidgetType::Slider, RO_DAMAGE_MULTIPLIER_DEFAULT); @@ -705,7 +706,6 @@ void Settings::CreateOptions() { mOptionGroups[RSG_TIMESAVERS_IMGUI] = OptionGroup::SubGroup("Timesavers", { &mOptions[RSK_CUCCO_COUNT], &mOptions[RSK_BIG_POE_COUNT], - &mOptions[RSK_SKIP_CHILD_STEALTH], &mOptions[RSK_SKIP_CHILD_ZELDA], &mOptions[RSK_SKIP_EPONA_RACE], &mOptions[RSK_COMPLETE_MASK_QUEST], @@ -979,14 +979,12 @@ void Settings::CreateOptions() { &mOptionGroups[RSG_STARTING_OTHER], }, OptionGroupType::DEFAULT); mOptionGroups[RSG_TIMESAVERS] = OptionGroup("Timesaver Settings", { - &mOptions[RSK_SKIP_CHILD_STEALTH], &mOptions[RSK_SKIP_CHILD_ZELDA], &mOptions[RSK_SKIP_EPONA_RACE], &mOptions[RSK_SKIP_SCARECROWS_SONG], &mOptions[RSK_BIG_POE_COUNT], &mOptions[RSK_CUCCO_COUNT], &mOptions[RSK_COMPLETE_MASK_QUEST], - &mOptions[RSK_ENABLE_GLITCH_CUTSCENES], }); mOptionGroups[RSG_MISC] = OptionGroup("Miscellaneous Settings", { &mOptions[RSK_GOSSIP_STONE_HINTS], diff --git a/soh/soh/config/ConfigMigrators.h b/soh/soh/config/ConfigMigrators.h index abfe9a6b1..48e1e708b 100644 --- a/soh/soh/config/ConfigMigrators.h +++ b/soh/soh/config/ConfigMigrators.h @@ -1319,7 +1319,6 @@ namespace SOH { { MigrationAction::Rename, "gRandomizeDoorOfTime", "gRandoSettings.DoorOfTime" }, { MigrationAction::Rename, "gRandomizeDungeonCount", "gRandoSettings.DungeonCount" }, { MigrationAction::Rename, "gRandomizeEnableBombchuDrops", "gRandoSettings.EnableBombchuDrops" }, - { MigrationAction::Rename, "gRandomizeEnableGlitchCutscenes", "gRandoSettings.EnableGlitchCutscenes" }, { MigrationAction::Rename, "gRandomizeEnabledTricks", "gRandoSettings.EnabledTricks" }, { MigrationAction::Rename, "gRandomizeForest", "gRandoSettings.ClosedForest" }, { MigrationAction::Rename, "gRandomizeFrogsHint", "gRandoSettings.FrogsHint" },