diff --git a/soh/soh/Enhancements/presets.cpp b/soh/soh/Enhancements/presets.cpp index 4ba4b62be..2b1812d21 100644 --- a/soh/soh/Enhancements/presets.cpp +++ b/soh/soh/Enhancements/presets.cpp @@ -6,12 +6,6 @@ #include "soh/SohGui/UIWidgets.hpp" #include -void clearCvars(std::vector cvarsToClear) { - for(const char* cvar : cvarsToClear) { - CVarClear(cvar); - } -} - std::string FormatLocations(std::vector 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(); diff --git a/soh/soh/Enhancements/presets.h b/soh/soh/Enhancements/presets.h index 329fbcdc8..2922ec589 100644 --- a/soh/soh/Enhancements/presets.h +++ b/soh/soh/Enhancements/presets.h @@ -61,499 +61,6 @@ void applyPreset(std::vector entries); // TODO: Ideally everything below this point will come from one/many JSON files -const std::vector 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 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 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 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 cvarsToClear; + std::vector blocksToClear; std::map presets; } PresetTypeDefinition; const std::map 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 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.", diff --git a/soh/soh/OTRGlobals.cpp b/soh/soh/OTRGlobals.cpp index dc745b0b5..2acc01d7f 100644 --- a/soh/soh/OTRGlobals.cpp +++ b/soh/soh/OTRGlobals.cpp @@ -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();