presets: clear blocks (#5098)

* presets: clear blocks

this avoids needing to list every new cvar in presets.h

* avoid resetting selected preset

* no cvar lists, clear less blocks on drop
This commit is contained in:
Philip Dubé 2025-02-28 03:34:16 +00:00 committed by GitHub
parent 2d78cb561a
commit eb6c0d9d29
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 12 additions and 506 deletions

View file

@ -6,12 +6,6 @@
#include "soh/SohGui/UIWidgets.hpp"
#include <libultraship/libultraship.h>
void clearCvars(std::vector<const char*> cvarsToClear) {
for(const char* cvar : cvarsToClear) {
CVarClear(cvar);
}
}
std::string FormatLocations(std::vector<RandomizerCheck> locs) {
std::string locString = "";
for (auto loc: locs) {
@ -69,10 +63,13 @@ void DrawPresetSelector(PresetType presetTypeId) {
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(6.0f, 4.0f));
if (ImGui::Button(("Apply Preset##" + presetTypeCvar).c_str())) {
clearCvars(presetTypeDef.cvarsToClear);
for(const char* block : presetTypeDef.blocksToClear) {
CVarClearBlock(block);
}
if (selectedPresetId != 0) {
applyPreset(selectedPresetDef.entries);
}
CVarSetInteger(presetTypeCvar.c_str(), selectedPresetId);
Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame();
if (presetTypeId == PRESET_TYPE_RANDOMIZER){
Rando::Settings::GetInstance()->ReloadOptions();

View file

@ -61,499 +61,6 @@ void applyPreset(std::vector<PresetEntry> entries);
// TODO: Ideally everything below this point will come from one/many JSON files
const std::vector<const char*> enhancementsCvars = {
CVAR_SETTING("DPadOnPause"),
CVAR_SETTING("DpadInText"),
CVAR_SETTING("OcarinaControl.Dpad"),
CVAR_SETTING("OcarinaControl.RStick"),
CVAR_ENHANCEMENT("DpadEquips"),
CVAR_ENHANCEMENT("PauseAnyCursor"),
CVAR_ENHANCEMENT("DpadNoDropOcarinaInput"),
CVAR_ENHANCEMENT("NaviOnL"),
CVAR_SETTING("FreeLook.InvertXAxis"),
CVAR_SETTING("FreeLook.InvertYAxis"),
CVAR_SETTING("Controls.RightStickAim"),
CVAR_SETTING("DisableFirstPersonAutoCenterView"),
CVAR_ENHANCEMENT("TextSpeed"),
CVAR_ENHANCEMENT("MweepSpeed"),
CVAR_ENHANCEMENT("ForgeTime"),
CVAR_ENHANCEMENT("ClimbSpeed"),
CVAR_ENHANCEMENT("FasterBlockPush"),
CVAR_ENHANCEMENT("CrawlSpeed"),
CVAR_ENHANCEMENT("FasterHeavyBlockLift"),
CVAR_ENHANCEMENT("NoForcedNavi"),
CVAR_ENHANCEMENT("SkulltulaFreeze"),
CVAR_ENHANCEMENT("MMBunnyHood"),
CVAR_ENHANCEMENT("AdultMasks"),
CVAR_ENHANCEMENT("FastChests"),
CVAR_ENHANCEMENT("ChestSizeAndTextureMatchContents"),
CVAR_ENHANCEMENT("FastDrops"),
CVAR_ENHANCEMENT("BetterOwl"),
CVAR_ENHANCEMENT("FastOcarinaPlayback"),
CVAR_ENHANCEMENT("InstantPutaway"),
CVAR_ENHANCEMENT("FastBoomerang"),
CVAR_ENHANCEMENT("AskToEquip"),
CVAR_ENHANCEMENT("MaskSelect"),
CVAR_ENHANCEMENT("RememberSaveLocation"),
CVAR_ENHANCEMENT("DamageMult"),
CVAR_ENHANCEMENT("FallDamageMult"),
CVAR_ENHANCEMENT("VoidDamageMult"),
CVAR_ENHANCEMENT("BonkDamageMult"),
CVAR_ENHANCEMENT("NoRandomDrops"),
CVAR_ENHANCEMENT("NoHeartDrops"),
CVAR_ENHANCEMENT("EnableBombchuDrops"),
CVAR_ENHANCEMENT("GoronPot"),
CVAR_ENHANCEMENT("FullHealthSpawn"),
CVAR_ENHANCEMENT("DampeWin"),
CVAR_ENHANCEMENT("CustomizeFishing"),
CVAR_ENHANCEMENT("InstantFishing"),
CVAR_ENHANCEMENT("GuaranteeFishingBite"),
CVAR_ENHANCEMENT("FishNeverEscape"),
CVAR_ENHANCEMENT("MinimumFishWeightChild"),
CVAR_ENHANCEMENT("MinimumFishWeightAdult"),
CVAR_ENHANCEMENT("LowHpAlarm"),
CVAR_ENHANCEMENT("MinimalUI"),
CVAR_ENHANCEMENT("DisableNaviCallAudio"),
CVAR_ENHANCEMENT("VisualAgony"),
CVAR_ENHANCEMENT("AssignableTunicsAndBoots"),
CVAR_ENHANCEMENT("EquipmentCanBeRemoved"),
CVAR_ENHANCEMENT("CowOfTime"),
CVAR_ENHANCEMENT("GuardVision"),
CVAR_ENHANCEMENT("TimeFlowFileSelect"),
CVAR_ENHANCEMENT("InjectItemCounts.GoldSkulltula"),
CVAR_ENHANCEMENT("InjectItemCounts.HeartPiece"),
CVAR_ENHANCEMENT("InjectItemCounts.HeartContainer"),
CVAR_ENHANCEMENT("DayGravePull"),
CVAR_ENHANCEMENT("DampeAllNight"),
CVAR_ENHANCEMENT("QuitFishingAtDoor"),
CVAR_ENHANCEMENT("SkipSwimDeepEndAnim"),
CVAR_ENHANCEMENT("InstantScarecrow"),
CVAR_ENHANCEMENT("BlueFireArrows"),
CVAR_ENHANCEMENT("SunlightArrows"),
CVAR_ENHANCEMENT("MinFrameCount"),
CVAR_ENHANCEMENT("NewDrops"),
CVAR_ENHANCEMENT("DisableBlackBars"),
CVAR_ENHANCEMENT("DynamicWalletIcon"),
CVAR_ENHANCEMENT("AlwaysShowDungeonMinimapIcon"),
CVAR_ENHANCEMENT("FixMenuLR"),
CVAR_ENHANCEMENT("NGCKaleidoSwitcher"),
CVAR_ENHANCEMENT("FixDungeonMinimapIcon"),
CVAR_ENHANCEMENT("TwoHandedIdle"),
CVAR_ENHANCEMENT("GravediggingTourFix"),
CVAR_ENHANCEMENT("DekuNutUpgradeFix"),
CVAR_ENHANCEMENT("NaviTextFix"),
CVAR_ENHANCEMENT("AnubisFix"),
CVAR_ENHANCEMENT("CrouchStabHammerFix"),
CVAR_ENHANCEMENT("CrouchStabFix"),
CVAR_ENHANCEMENT("GerudoWarriorClothingFix"),
CVAR_ENHANCEMENT("FixCameraDrift"),
CVAR_ENHANCEMENT("FixCameraSwing"),
CVAR_ENHANCEMENT("FixHangingLedgeSwingRate"),
CVAR_ENHANCEMENT("RedGanonBlood"),
CVAR_ENHANCEMENT("HoverFishing"),
CVAR_ENHANCEMENT("N64WeirdFrames"),
CVAR_ENHANCEMENT("BombchusOOB"),
CVAR_ENHANCEMENT("QuickPutaway"),
CVAR_ENHANCEMENT("GSCutscene"),
CVAR_ENHANCEMENT("RestoreRBAValues"),
CVAR_ENHANCEMENT("SkipSaveConfirmation"),
CVAR_ENHANCEMENT("DisableCritWiggle"),
CVAR_ENHANCEMENT("ChestSizeDependsStoneOfAgony"),
CVAR_ENHANCEMENT("SkipArrowAnimation"),
CVAR_ENHANCEMENT("SeparateArrows"),
CVAR_ENHANCEMENT("CustomizeShootingGallery"),
CVAR_ENHANCEMENT("InstantShootingGalleryWin"),
CVAR_ENHANCEMENT("ConstantAdultGallery"),
CVAR_ENHANCEMENT("ShootingGalleryAmmoChild"),
CVAR_ENHANCEMENT("ShootingGalleryAmmoAdult"),
CVAR_ENHANCEMENT("CustomizeBombchuBowling"),
CVAR_ENHANCEMENT("BombchuBowlingNoSmallCucco"),
CVAR_ENHANCEMENT("BombchuBowlingNoBigCucco"),
CVAR_ENHANCEMENT("BombchuBowlingAmmo"),
CVAR_ENHANCEMENT("CustomizeOcarinaGame"),
CVAR_ENHANCEMENT("InstantOcarinaGameWin"),
CVAR_ENHANCEMENT("OcarinaGame.NoteSpeed"),
CVAR_ENHANCEMENT("OcarinaUnlimitedFailTime"),
CVAR_ENHANCEMENT("OcarinaGame.StartingNotes"),
CVAR_ENHANCEMENT("OcarinaGame.RoundOneNotes"),
CVAR_ENHANCEMENT("OcarinaGame.RoundTwoNotes"),
CVAR_ENHANCEMENT("OcarinaGame.RoundThreeNotes"),
CVAR_ENHANCEMENT("CustomizeFrogsOcarinaGame"),
CVAR_ENHANCEMENT("InstantFrogsGameWin"),
CVAR_ENHANCEMENT("FrogsUnlimitedFailTime"),
CVAR_ENHANCEMENT("FrogsModifyFailTime"),
CVAR_ENHANCEMENT("CreditsFix"),
CVAR_ENHANCEMENT("SilverRupeeJingleExtend"),
CVAR_ENHANCEMENT("StaticExplosionRadius"),
CVAR_ENHANCEMENT("NoInputForCredits"),
CVAR_ENHANCEMENT("FastFarores"),
CVAR_ENHANCEMENT("NightGSAlwaysSpawn"),
CVAR_ENHANCEMENT("SkipText"),
CVAR_ENHANCEMENT("LinkDefaultName"),
CVAR_ENHANCEMENT("MarketSneak"),
CVAR_ENHANCEMENT("TimeTravel"),
CVAR_ENHANCEMENT("NutsExplodeBombs"),
CVAR_ENHANCEMENT("BowSlingshotAmmoFix"),
CVAR_ENHANCEMENT("BetterFarore"),
CVAR_ENHANCEMENT("DisableFirstPersonChus"),
CVAR_ENHANCEMENT("BetterBombchuShopping"),
CVAR_ENHANCEMENT("HyperBosses"),
CVAR_ENHANCEMENT("RupeeDash"),
CVAR_ENHANCEMENT("RupeeDashInterval"),
CVAR_ENHANCEMENT("DogFollowsEverywhere"),
CVAR_ENHANCEMENT("DisableTunicWarningText"),
CVAR_ENHANCEMENT("DisableLOD"),
CVAR_ENHANCEMENT("DisableDrawDistance"),
CVAR_ENHANCEMENT("DisableKokiriDrawDistance"),
CVAR_ENHANCEMENT("WidescreenActorCulling"),
CVAR_ENHANCEMENT("ExtendedCullingExcludeGlitchActors"),
CVAR_LOW_RES_MODE,
CVAR_ENHANCEMENT("DrawLineupTick"),
CVAR_ENHANCEMENT("QuickBongoKill"),
CVAR_ENHANCEMENT("FirstPersonGauntlets"),
CVAR_ENHANCEMENT("SceneSpecificDirtPathFix"),
CVAR_Z_FIGHTING_MODE,
CVAR_ENHANCEMENT("AuthenticLogo"),
CVAR_ENHANCEMENT("BowReticle"),
CVAR_ENHANCEMENT("BoomerangFirstPerson"),
CVAR_ENHANCEMENT("BoomerangReticle"),
CVAR_ENHANCEMENT("FixTexturesOOB"),
CVAR_ENHANCEMENT("IvanCoopModeEnabled"),
CVAR_ENHANCEMENT("EnemySpawnsOverWaterboxes"),
CVAR_ENHANCEMENT("TreesDropSticks"),
CVAR_ENHANCEMENT("ShadowTag"),
CVAR_ENHANCEMENT("RandomizedEnemySizes"),
CVAR_ENHANCEMENT("RandomizedEnemies"),
CVAR_ENHANCEMENT("MirroredWorldMode"),
CVAR_ENHANCEMENT("MirroredWorld"),
CVAR_ENHANCEMENT("HyperEnemies"),
CVAR_ENHANCEMENT("HookshotableReticle"),
CVAR_ENHANCEMENT("HideBunnyHood"),
CVAR_ENHANCEMENT("FixVineFall"),
CVAR_ENHANCEMENT("FileSelectMoreInfo"),
CVAR_ENHANCEMENT("EnemyHealthBar"),
CVAR_ENHANCEMENT("BushDropFix"),
CVAR_ENHANCEMENT("AllDogsRichard"),
CVAR_ENHANCEMENT("ExtraTraps.Enabled"),
CVAR_ENHANCEMENT("ExtraTraps.Ammo"),
CVAR_ENHANCEMENT("ExtraTraps.Bomb"),
CVAR_ENHANCEMENT("ExtraTraps.Burn"),
CVAR_ENHANCEMENT("ExtraTraps.Ice"),
CVAR_ENHANCEMENT("ExtraTraps.Kill"),
CVAR_ENHANCEMENT("ExtraTraps.Knockback"),
CVAR_ENHANCEMENT("ExtraTraps.Shock"),
CVAR_ENHANCEMENT("ExtraTraps.Speed"),
CVAR_ENHANCEMENT("ExtraTraps.Teleport"),
CVAR_ENHANCEMENT("ExtraTraps.Void"),
CVAR_ENHANCEMENT("ToTMedallionsColors"),
CVAR_ENHANCEMENT("CuccoStayDurationMult"),
CVAR_ENHANCEMENT("DeleteFileOnDeath"),
CVAR_ENHANCEMENT("EnemySizeScalesHealth"),
CVAR_ENHANCEMENT("BetterAmmoRendering"),
CVAR_ENHANCEMENT("EquipmentAlwaysVisible"),
CVAR_ENHANCEMENT("FixDaruniaDanceSpeed"),
CVAR_ENHANCEMENT("OpenAllHours"),
CVAR_ENHANCEMENT("ResetNaviTimer"),
CVAR_ENHANCEMENT("ScaleAdultEquipmentAsChild"),
CVAR_ENHANCEMENT("LeeverSpawnRate"),
CVAR_ENHANCEMENT("SwordToggle"),
CVAR_ENHANCEMENT("FixFloorSwitches"),
CVAR_ENHANCEMENT("FixZoraHintDialogue"),
CVAR_ENHANCEMENT("HurtContainer"),
CVAR_ENHANCEMENT("PauseWarp"),
CVAR_ENHANCEMENT("PermanentHeartLoss"),
CVAR_ENHANCEMENT("RemoveExplosiveLimit"),
CVAR_ENHANCEMENT("ToggleStrength"),
CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.Intro"),
CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.Entrances"),
CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.Story"),
CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.LearnSong"),
CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.BossIntro"),
CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.GlitchAiding"),
CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.OnePoint"),
CVAR_ENHANCEMENT("TimeSavers.NoForcedDialog"),
CVAR_ENHANCEMENT("TimeSavers.SkipOwlInteractions"),
CVAR_ENHANCEMENT("TimeSavers.SkipMiscInteractions"),
CVAR_ENHANCEMENT("TimeSavers.DisableTitleCard"),
CVAR_ENHANCEMENT("TimeSavers.SkipGetItemAnimation"),
CVAR_ENHANCEMENT("TimeSavers.SkipChildStealth"),
CVAR_ENHANCEMENT("TimeSavers.SkipTowerEscape"),
CVAR_ENHANCEMENT("TimeSavers.SkipForcedDialog"),
CVAR_ENHANCEMENT("TimeSavers.SleepingWaterfall"),
CVAR_ENHANCEMENT("SlowTextSpeed"),
};
const std::vector<const char*> cheatCvars = {
CVAR_CONSOLE_WINDOW_OPEN,
CVAR_WINDOW("ActorViewer"),
CVAR_WINDOW("CollisionViewer"),
CVAR_WINDOW("DLViewer"),
CVAR_WINDOW("SaveEditor"),
CVAR_SETTING("WalkModifier.Enabled"),
CVAR_SETTING("WalkModifier.SpeedToggle"),
CVAR_SETTING("WalkModifier.Mapping1"),
CVAR_SETTING("WalkModifier.Mapping2"),
CVAR_SETTING("WalkModifier.SwimMapping1"),
CVAR_SETTING("WalkModifier.SwimMapping2"),
CVAR_ENHANCEMENT("GoronPot"),
CVAR_ENHANCEMENT("DampeWin"),
CVAR_ENHANCEMENT("CustomizeShootingGallery"),
CVAR_ENHANCEMENT("CustomizeBombchuBowling"),
CVAR_ENHANCEMENT("CustomizeFishing"),
CVAR_CHEAT("InfiniteAmmo"),
CVAR_CHEAT("InfiniteEponaBoost"),
CVAR_CHEAT("InfiniteHealth"),
CVAR_CHEAT("InfiniteMagic"),
CVAR_CHEAT("InfiniteMoney"),
CVAR_CHEAT("InfiniteNayru"),
CVAR_CHEAT("NoClip"),
CVAR_CHEAT("ClimbEverything"),
CVAR_CHEAT("HookshotEverything"),
CVAR_CHEAT("HookshotReachMultiplier"),
CVAR_CHEAT("MoonJumpOnL"),
CVAR_CHEAT("SuperTunic"),
CVAR_CHEAT("EasyISG"),
CVAR_CHEAT("EasyQPA"),
CVAR_CHEAT("TimelessEquipment"),
CVAR_CHEAT("NoRestrictItems"),
CVAR_CHEAT("FreezeTime"),
CVAR_GENERAL("PrevTime"),
CVAR_CHEAT("DropsDontDie"),
CVAR_CHEAT("FireproofDekuShield"),
CVAR_CHEAT("ShieldTwoHanded"),
CVAR_CHEAT("TimeSync"),
CVAR_DEVELOPER_TOOLS("DebugEnabled"),
CVAR_DEVELOPER_TOOLS("SkulltulaDebugEnabled"),
CVAR_DEVELOPER_TOOLS("SkipLogoTitle"),
CVAR_DEVELOPER_TOOLS("SaveFileID"),
CVAR_CHEAT("EnableBetaQuest"),
CVAR_DEVELOPER_TOOLS("BetterDebugWarpScreen"),
CVAR_CHEAT("NoRedeadFreeze"),
CVAR_CHEAT("NoKeeseGuayTarget"),
CVAR_CHEAT("BombTimerMultiplier"),
CVAR_CHEAT("NoFishDespawn"),
CVAR_CHEAT("NoBugsDespawn"),
CVAR_SETTING("WalkModifier.DoesntChangeJump"),
CVAR_STATS_WINDOW_OPEN,
CVAR_CHEAT("SaveStatesEnabled"),
CVAR_CHEAT("SaveStatePromise"),
CVAR_DEVELOPER_TOOLS("RegEditEnabled"),
CVAR_CHEAT("DekuStick"),
CVAR_DEVELOPER_TOOLS("DebugWarpScreenTranslation"),
CVAR_DEVELOPER_TOOLS("DebugSaveFileMode"),
CVAR_COSMETIC("Link.BodyScale.Changed"),
CVAR_COSMETIC("Link.BodyScale.Value"),
CVAR_COSMETIC("Link.HeadScale.Changed"),
CVAR_COSMETIC("Link.HeadScale.Value"),
CVAR_COSMETIC("Link.SwordScale.Changed"),
CVAR_COSMETIC("Link.SwordScale.Value"),
CVAR_ENHANCEMENT("RememberMapToggleState"),
};
const std::vector<const char*> randomizerCvars = {
CVAR_RANDOMIZER_ENHANCEMENT("MatchKeyColors"),
CVAR_RANDOMIZER_ENHANCEMENT("QuestItemFanfares"),
CVAR_RANDOMIZER_ENHANCEMENT("RandoRelevantNavi"),
CVAR_RANDOMIZER_ENHANCEMENT("MysteriousShuffle"),
CVAR_RANDOMIZER_ENHANCEMENT("RandomizeRupeeNames"),
CVAR_RANDOMIZER_SETTING("100GSHint"),
CVAR_RANDOMIZER_SETTING("10GSHint"),
CVAR_RANDOMIZER_SETTING("20GSHint"),
CVAR_RANDOMIZER_SETTING("30GSHint"),
CVAR_RANDOMIZER_SETTING("40GSHint"),
CVAR_RANDOMIZER_SETTING("50GSHint"),
CVAR_RANDOMIZER_SETTING("AllLocationsReachable"),
CVAR_RANDOMIZER_SETTING("AltarHint"),
CVAR_RANDOMIZER_SETTING("BigPoeTargetCount"),
CVAR_RANDOMIZER_SETTING("BigPoesHint"),
CVAR_RANDOMIZER_SETTING("BiggoronHint"),
CVAR_RANDOMIZER_SETTING("BlueFireArrows"),
CVAR_RANDOMIZER_SETTING("BombchuBag"),
CVAR_RANDOMIZER_SETTING("BossKeysanity"),
CVAR_RANDOMIZER_SETTING("BridgeRewardOptions"),
CVAR_RANDOMIZER_SETTING("ChickensHint"),
CVAR_RANDOMIZER_SETTING("CompleteMaskQuest"),
CVAR_RANDOMIZER_SETTING("CuccosToReturn"),
CVAR_RANDOMIZER_SETTING("DampeHint"),
CVAR_RANDOMIZER_SETTING("DecoupleEntrances"),
CVAR_RANDOMIZER_SETTING("DoorOfTime"),
CVAR_RANDOMIZER_SETTING("DungeonCount"),
CVAR_RANDOMIZER_SETTING("EnableBombchuDrops"),
CVAR_RANDOMIZER_SETTING("FishingPoleHint"),
CVAR_RANDOMIZER_SETTING("Fishsanity"),
CVAR_RANDOMIZER_SETTING("FishsanityAgeSplit"),
CVAR_RANDOMIZER_SETTING("FishsanityPondCount"),
CVAR_RANDOMIZER_SETTING("ClosedForest"),
CVAR_RANDOMIZER_SETTING("FrogsHint"),
CVAR_RANDOMIZER_SETTING("FullWallets"),
CVAR_RANDOMIZER_SETTING("GanonTrial"),
CVAR_RANDOMIZER_SETTING("GanonTrialCount"),
CVAR_RANDOMIZER_SETTING("GanondorfHint"),
CVAR_RANDOMIZER_SETTING("FortressCarpenters"),
CVAR_RANDOMIZER_SETTING("GerudoKeys"),
CVAR_RANDOMIZER_SETTING("GossipStoneHints"),
CVAR_RANDOMIZER_SETTING("GregHint"),
CVAR_RANDOMIZER_SETTING("GsExpectSunsSong"),
CVAR_RANDOMIZER_SETTING("HBAHint"),
CVAR_RANDOMIZER_SETTING("HintClarity"),
CVAR_RANDOMIZER_SETTING("HintDistribution"),
CVAR_RANDOMIZER_SETTING("IceTraps"),
CVAR_RANDOMIZER_SETTING("IncludeTycoonWallet"),
CVAR_RANDOMIZER_SETTING("InfiniteUpgrades"),
CVAR_RANDOMIZER_SETTING("ItemPool"),
CVAR_RANDOMIZER_SETTING("KakarikoGate"),
CVAR_RANDOMIZER_SETTING("Keysanity"),
CVAR_RANDOMIZER_SETTING("LacsDungeonCount"),
CVAR_RANDOMIZER_SETTING("LacsMedallionCount"),
CVAR_RANDOMIZER_SETTING("LacsRewardCount"),
CVAR_RANDOMIZER_SETTING("LacsRewardOptions"),
CVAR_RANDOMIZER_SETTING("LacsStoneCount"),
CVAR_RANDOMIZER_SETTING("LacsTokenCount"),
CVAR_RANDOMIZER_SETTING("LinksPocket"),
CVAR_RANDOMIZER_SETTING("LoachHint"),
CVAR_RANDOMIZER_SETTING("LogicRules"),
CVAR_RANDOMIZER_SETTING("MQDungeonCount"),
CVAR_RANDOMIZER_SETTING("MQDungeons"),
CVAR_RANDOMIZER_SETTING("MQDungeonsBottomOfTheWell"),
CVAR_RANDOMIZER_SETTING("MQDungeonsDekuTree"),
CVAR_RANDOMIZER_SETTING("MQDungeonsDodongosCavern"),
CVAR_RANDOMIZER_SETTING("MQDungeonsFireTemple"),
CVAR_RANDOMIZER_SETTING("MQDungeonsForestTemple"),
CVAR_RANDOMIZER_SETTING("MQDungeonsGTG"),
CVAR_RANDOMIZER_SETTING("MQDungeonsGanonsCastle"),
CVAR_RANDOMIZER_SETTING("MQDungeonsIceCavern"),
CVAR_RANDOMIZER_SETTING("MQDungeonsJabuJabu"),
CVAR_RANDOMIZER_SETTING("MQDungeonsSelection"),
CVAR_RANDOMIZER_SETTING("MQDungeonsShadowTemple"),
CVAR_RANDOMIZER_SETTING("MQDungeonsSpiritTemple"),
CVAR_RANDOMIZER_SETTING("MQDungeonsWaterTemple"),
CVAR_RANDOMIZER_SETTING("MalonHint"),
CVAR_RANDOMIZER_SETTING("MaskShopHint"),
CVAR_RANDOMIZER_SETTING("MedallionCount"),
CVAR_RANDOMIZER_SETTING("MerchantAdultWalletWeight"),
CVAR_RANDOMIZER_SETTING("MerchantChildWalletWeight"),
CVAR_RANDOMIZER_SETTING("MerchantFixedPrice"),
CVAR_RANDOMIZER_SETTING("MerchantGiantWalletWeight"),
CVAR_RANDOMIZER_SETTING("MerchantNoWalletWeight"),
CVAR_RANDOMIZER_SETTING("MerchantPriceRange1"),
CVAR_RANDOMIZER_SETTING("MerchantPriceRange2"),
CVAR_RANDOMIZER_SETTING("MerchantPrices"),
CVAR_RANDOMIZER_SETTING("MerchantPricesAffordable"),
CVAR_RANDOMIZER_SETTING("MerchantText"),
CVAR_RANDOMIZER_SETTING("MerchantTycoonWalletWeight"),
CVAR_RANDOMIZER_SETTING("MixBosses"),
CVAR_RANDOMIZER_SETTING("MixDungeons"),
CVAR_RANDOMIZER_SETTING("MixGrottos"),
CVAR_RANDOMIZER_SETTING("MixInteriors"),
CVAR_RANDOMIZER_SETTING("MixOverworld"),
CVAR_RANDOMIZER_SETTING("MixedEntrances"),
CVAR_RANDOMIZER_SETTING("OoTHint"),
CVAR_RANDOMIZER_SETTING("RainbowBridge"),
CVAR_RANDOMIZER_SETTING("RewardCount"),
CVAR_RANDOMIZER_SETTING("SariaHint"),
CVAR_RANDOMIZER_SETTING("ScrubText"),
CVAR_RANDOMIZER_SETTING("ScrubsAdultWalletWeight"),
CVAR_RANDOMIZER_SETTING("ScrubsChildWalletWeight"),
CVAR_RANDOMIZER_SETTING("ScrubsFixedPrice"),
CVAR_RANDOMIZER_SETTING("ScrubsGiantWalletWeight"),
CVAR_RANDOMIZER_SETTING("ScrubsNoWalletWeight"),
CVAR_RANDOMIZER_SETTING("ScrubsPriceRange1"),
CVAR_RANDOMIZER_SETTING("ScrubsPriceRange2"),
CVAR_RANDOMIZER_SETTING("ScrubsPrices"),
CVAR_RANDOMIZER_SETTING("ScrubsPricesAffordable"),
CVAR_RANDOMIZER_SETTING("ScrubsTycoonWalletWeight"),
CVAR_RANDOMIZER_SETTING("SheikLAHint"),
CVAR_RANDOMIZER_SETTING("Shopsanity"),
CVAR_RANDOMIZER_SETTING("ShopsanityAdultWalletWeight"),
CVAR_RANDOMIZER_SETTING("ShopsanityChildWalletWeight"),
CVAR_RANDOMIZER_SETTING("ShopsanityCount"),
CVAR_RANDOMIZER_SETTING("ShopsanityFixedPrice"),
CVAR_RANDOMIZER_SETTING("ShopsanityGiantWalletWeight"),
CVAR_RANDOMIZER_SETTING("ShopsanityNoWalletWeight"),
CVAR_RANDOMIZER_SETTING("ShopsanityPriceRange1"),
CVAR_RANDOMIZER_SETTING("ShopsanityPriceRange2"),
CVAR_RANDOMIZER_SETTING("ShopsanityPrices"),
CVAR_RANDOMIZER_SETTING("ShopsanityPricesAffordable"),
CVAR_RANDOMIZER_SETTING("ShopsanityTycoonWalletWeight"),
CVAR_RANDOMIZER_SETTING("Shuffle100GSReward"),
CVAR_RANDOMIZER_SETTING("ShuffleAdultTrade"),
CVAR_RANDOMIZER_SETTING("ShuffleBeehives"),
CVAR_RANDOMIZER_SETTING("ShuffleBossEntrances"),
CVAR_RANDOMIZER_SETTING("ShuffleBossSouls"),
CVAR_RANDOMIZER_SETTING("ShuffleChildWallet"),
CVAR_RANDOMIZER_SETTING("ShuffleCows"),
CVAR_RANDOMIZER_SETTING("ShuffleDekuNutBag"),
CVAR_RANDOMIZER_SETTING("ShuffleDekuStickBag"),
CVAR_RANDOMIZER_SETTING("ShuffleDungeonReward"),
CVAR_RANDOMIZER_SETTING("ShuffleDungeonsEntrances"),
CVAR_RANDOMIZER_SETTING("ShuffleFishingPole"),
CVAR_RANDOMIZER_SETTING("ShuffleFrogSongRupees"),
CVAR_RANDOMIZER_SETTING("ShuffleGanonBossKey"),
CVAR_RANDOMIZER_SETTING("ShuffleGerudoToken"),
CVAR_RANDOMIZER_SETTING("ShuffleGrottosEntrances"),
CVAR_RANDOMIZER_SETTING("ShuffleInteriorsEntrances"),
CVAR_RANDOMIZER_SETTING("ShuffleKeyRings"),
CVAR_RANDOMIZER_SETTING("ShuffleKeyRingsBottomOfTheWell"),
CVAR_RANDOMIZER_SETTING("ShuffleKeyRingsFireTemple"),
CVAR_RANDOMIZER_SETTING("ShuffleKeyRingsForestTemple"),
CVAR_RANDOMIZER_SETTING("ShuffleKeyRingsGTG"),
CVAR_RANDOMIZER_SETTING("ShuffleKeyRingsGanonsCastle"),
CVAR_RANDOMIZER_SETTING("ShuffleKeyRingsGerudoFortress"),
CVAR_RANDOMIZER_SETTING("ShuffleKeyRingsRandomCount"),
CVAR_RANDOMIZER_SETTING("ShuffleKeyRingsShadowTemple"),
CVAR_RANDOMIZER_SETTING("ShuffleKeyRingsSpiritTemple"),
CVAR_RANDOMIZER_SETTING("ShuffleKeyRingsWaterTemple"),
CVAR_RANDOMIZER_SETTING("ShuffleKokiriSword"),
CVAR_RANDOMIZER_SETTING("ShuffleMasterSword"),
CVAR_RANDOMIZER_SETTING("ShuffleMerchants"),
CVAR_RANDOMIZER_SETTING("ShuffleOcarinaButtons"),
CVAR_RANDOMIZER_SETTING("ShuffleOcarinas"),
CVAR_RANDOMIZER_SETTING("ShuffleOverworldEntrances"),
CVAR_RANDOMIZER_SETTING("ShuffleOverworldSpawns"),
CVAR_RANDOMIZER_SETTING("ShuffleOwlDrops"),
CVAR_RANDOMIZER_SETTING("ShuffleScrubs"),
CVAR_RANDOMIZER_SETTING("ShuffleSongs"),
CVAR_RANDOMIZER_SETTING("ShuffleSwim"),
CVAR_RANDOMIZER_SETTING("ShuffleTokens"),
CVAR_RANDOMIZER_SETTING("ShuffleWarpSongs"),
CVAR_RANDOMIZER_SETTING("ShuffleWeirdEgg"),
CVAR_RANDOMIZER_SETTING("SkeletonKey"),
CVAR_RANDOMIZER_SETTING("SkipChildStealth"),
CVAR_RANDOMIZER_SETTING("SkipChildZelda"),
CVAR_RANDOMIZER_SETTING("SkipEponaRace"),
CVAR_RANDOMIZER_SETTING("SkipScarecrowsSong"),
CVAR_RANDOMIZER_SETTING("SleepingWaterfall"),
CVAR_RANDOMIZER_SETTING("StartingAge"),
CVAR_RANDOMIZER_SETTING("StartingBoleroOfFire"),
CVAR_RANDOMIZER_SETTING("StartingConsumables"),
CVAR_RANDOMIZER_SETTING("StartingDekuShield"),
CVAR_RANDOMIZER_SETTING("StartingEponasSong"),
CVAR_RANDOMIZER_SETTING("StartingHearts"),
CVAR_RANDOMIZER_SETTING("StartingKokiriSword"),
CVAR_RANDOMIZER_SETTING("StartingMapsCompasses"),
CVAR_RANDOMIZER_SETTING("StartingMasterSword"),
CVAR_RANDOMIZER_SETTING("StartingMinuetOfForest"),
CVAR_RANDOMIZER_SETTING("StartingNocturneOfShadow"),
CVAR_RANDOMIZER_SETTING("StartingOcarina"),
CVAR_RANDOMIZER_SETTING("StartingPreludeOfLight"),
CVAR_RANDOMIZER_SETTING("StartingRequiemOfSpirit"),
CVAR_RANDOMIZER_SETTING("StartingSariasSong"),
CVAR_RANDOMIZER_SETTING("StartingSerenadeOfWater"),
CVAR_RANDOMIZER_SETTING("StartingSkulltulaToken"),
CVAR_RANDOMIZER_SETTING("StartingSongOfStorms"),
CVAR_RANDOMIZER_SETTING("StartingSongOfTime"),
CVAR_RANDOMIZER_SETTING("StartingSunsSong"),
CVAR_RANDOMIZER_SETTING("StartingZeldasLullaby"),
CVAR_RANDOMIZER_SETTING("StoneCount"),
CVAR_RANDOMIZER_SETTING("SunlightArrows"),
CVAR_RANDOMIZER_SETTING("TokenCount"),
CVAR_RANDOMIZER_SETTING("TriforceHunt"),
CVAR_RANDOMIZER_SETTING("TriforceHuntRequiredPieces"),
CVAR_RANDOMIZER_SETTING("TriforceHuntTotalPieces"),
CVAR_RANDOMIZER_SETTING("WarpSongText"),
CVAR_RANDOMIZER_SETTING("ZorasFountain"),
};
const std::vector<PresetEntry> vanillaPlusPresetEntries = {
// D-pad Support in text and file select
PRESET_ENTRY_S32(CVAR_SETTING("DpadInText"), 1),
@ -1325,12 +832,12 @@ typedef struct PresetDefinition {
} PresetDefinition;
typedef struct PresetTypeDefinition {
std::vector<const char*> cvarsToClear;
std::vector<const char*> blocksToClear;
std::map<uint16_t, PresetDefinition> presets;
} PresetTypeDefinition;
const std::map<PresetType, PresetTypeDefinition> presetTypes = {
{ PRESET_TYPE_ENHANCEMENTS, { enhancementsCvars, {
{ PRESET_TYPE_ENHANCEMENTS, { { CVAR_PREFIX_ENHANCEMENT, CVAR_PREFIX_CHEAT }, {
{ ENHANCEMENT_PRESET_DEFAULT, {
"Default",
"Reset all options to their default values.",
@ -1352,7 +859,7 @@ const std::map<PresetType, PresetTypeDefinition> presetTypes = {
randomizerPresetEntries
} },
} } },
{ PRESET_TYPE_RANDOMIZER, { randomizerCvars, {
{ PRESET_TYPE_RANDOMIZER, { { CVAR_PREFIX_RANDOMIZER_SETTING, CVAR_PREFIX_RANDOMIZER_ENHANCEMENT }, {
{ RANDOMIZER_PRESET_DEFAULT, {
"Default",
"Reset all options to their default values.",

View file

@ -2437,9 +2437,11 @@ void SoH_ProcessDroppedFiles(std::string filePath) {
return;
}
clearCvars(enhancementsCvars);
clearCvars(cheatCvars);
clearCvars(randomizerCvars);
CVarClearBlock(CVAR_PREFIX_ENHANCEMENT);
CVarClearBlock(CVAR_PREFIX_CHEAT);
CVarClearBlock(CVAR_PREFIX_RANDOMIZER_SETTING);
CVarClearBlock(CVAR_PREFIX_RANDOMIZER_ENHANCEMENT);
CVarClearBlock(CVAR_PREFIX_DEVELOPER_TOOLS);
// Flatten everything under CVars into a single array
auto cvars = configJson["CVars"].flatten();