diff --git a/CMake/2ship-cvars.cmake b/CMake/2ship-cvars.cmake index e7e6ae0f1e..a8192bcd90 100644 --- a/CMake/2ship-cvars.cmake +++ b/CMake/2ship-cvars.cmake @@ -1,5 +1,4 @@ -set(CVAR_PREFIX_RANDOMIZER_ENHANCEMENT "gRandoEnhancements") -set(CVAR_PREFIX_RANDOMIZER_SETTING "gRandoSettings") +set(CVAR_PREFIX_RANDOMIZER "gRando") set(CVAR_PREFIX_COSMETIC "gCosmetics") set(CVAR_PREFIX_AUDIO "gAudioEditor") set(CVAR_PREFIX_CHEAT "gCheats") @@ -10,9 +9,10 @@ set(CVAR_PREFIX_TRACKER "gTrackers") set(CVAR_PREFIX_DEVELOPER_TOOLS "gDeveloperTools") set(CVAR_PREFIX_GENERAL "gGeneral") set(CVAR_PREFIX_REMOTE "gRemote") +set(CVAR_PREFIX_GAMEPLAY_STATS "gGameplayStats") +set(CVAR_PREFIX_TIME_DISPLAY "gTimeDisplay") add_compile_definitions( - CVAR_PREFIX_RANDOMIZER_ENHANCEMENT="${CVAR_PREFIX_RANDOMIZER_ENHANCEMENT}" - CVAR_PREFIX_RANDOMIZER_SETTING="${CVAR_PREFIX_RANDOMIZER_SETTING}" + CVAR_PREFIX_RANDOMIZER="${CVAR_PREFIX_RANDOMIZER}" CVAR_PREFIX_COSMETIC="${CVAR_PREFIX_COSMETIC}" CVAR_PREFIX_AUDIO="${CVAR_PREFIX_AUDIO}" CVAR_PREFIX_CHEAT="${CVAR_PREFIX_CHEAT}" @@ -23,4 +23,6 @@ add_compile_definitions( CVAR_PREFIX_DEVELOPER_TOOLS="${CVAR_PREFIX_DEVELOPER_TOOLS}" CVAR_PREFIX_GENERAL="${CVAR_PREFIX_GENERAL}" CVAR_PREFIX_REMOTE="${CVAR_PREFIX_REMOTE}" + CVAR_PREFIX_GAMEPLAY_STATS="${CVAR_PREFIX_GAMEPLAY_STATS}" + CVAR_PREFIX_TIME_DISPLAY="${CVAR_PREFIX_TIME_DISPLAY}" ) diff --git a/mm/2s2h/BenGui/BenGui.cpp b/mm/2s2h/BenGui/BenGui.cpp index f7c9d8d077..46d53a69b2 100644 --- a/mm/2s2h/BenGui/BenGui.cpp +++ b/mm/2s2h/BenGui/BenGui.cpp @@ -9,6 +9,7 @@ #include "CosmeticEditor.h" #include "Notification.h" #include "2s2h/Rando/CheckTracker/CheckTracker.h" +#include "2s2h/cvar_prefixes.h" #ifdef __APPLE__ #include @@ -83,7 +84,7 @@ void SetupGuiElements() { mBenMenuBar = std::make_shared(CVAR_MENU_BAR_OPEN, CVarGetInteger(CVAR_MENU_BAR_OPEN, 0)); gui->SetMenuBar(std::reinterpret_pointer_cast(mBenMenuBar)); - if (!gui->GetMenuBar() && !CVarGetInteger("gSettings.DisableMenuShortcutNotify", 0)) { + if (!gui->GetMenuBar() && !CVarGetInteger(CVAR_SETTING("DisableMenuShortcutNotify"), 0)) { #if defined(__SWITCH__) || defined(__WIIU__) gui->GetGameOverlay()->TextDrawNotification(30.0f, true, "Press - to access enhancements menu"); #else @@ -91,7 +92,7 @@ void SetupGuiElements() { #endif } - mBenMenu = std::make_shared("gWindows.Menu", "Settings Menu"); + mBenMenu = std::make_shared(CVAR_WINDOW("Menu"), "Settings Menu"); gui->SetMenu(mBenMenu); mStatsWindow = gui->GetGuiWindow("Stats"); @@ -115,73 +116,74 @@ void SetupGuiElements() { } mHookDebuggerWindow = - std::make_shared("gWindows.HookDebugger", "Hook Debugger", ImVec2(480, 600)); + std::make_shared(CVAR_WINDOW("HookDebugger"), "Hook Debugger", ImVec2(480, 600)); gui->AddGuiWindow(mHookDebuggerWindow); - mSaveEditorWindow = std::make_shared("gWindows.SaveEditor", "Save Editor", ImVec2(480, 600)); + mSaveEditorWindow = std::make_shared(CVAR_WINDOW("SaveEditor"), "Save Editor", ImVec2(480, 600)); gui->AddGuiWindow(mSaveEditorWindow); - mHudEditorWindow = std::make_shared("gWindows.HudEditor", "HUD Editor", ImVec2(480, 600)); + mHudEditorWindow = std::make_shared(CVAR_WINDOW("HudEditor"), "HUD Editor", ImVec2(480, 600)); gui->AddGuiWindow(mHudEditorWindow); mCosmeticEditorWindow = - std::make_shared("gWindows.CosmeticEditor", "Cosmetic Editor", ImVec2(480, 600)); + std::make_shared(CVAR_WINDOW("CosmeticEditor"), "Cosmetic Editor", ImVec2(480, 600)); gui->AddGuiWindow(mCosmeticEditorWindow); - mActorViewerWindow = std::make_shared("gWindows.ActorViewer", "Actor Viewer", ImVec2(520, 600)); + mActorViewerWindow = + std::make_shared(CVAR_WINDOW("ActorViewer"), "Actor Viewer", ImVec2(520, 600)); gui->AddGuiWindow(mActorViewerWindow); mCollisionViewerWindow = - std::make_shared("gWindows.CollisionViewer", "Collision Viewer", ImVec2(390, 475)); + std::make_shared(CVAR_WINDOW("CollisionViewer"), "Collision Viewer", ImVec2(390, 475)); gui->AddGuiWindow(mCollisionViewerWindow); - mEventLogWindow = std::make_shared("gWindows.EventLog", "Event Log", ImVec2(520, 600)); + mEventLogWindow = std::make_shared(CVAR_WINDOW("EventLog"), "Event Log", ImVec2(520, 600)); gui->AddGuiWindow(mEventLogWindow); - mDLViewerWindow = std::make_shared("gWindows.DLViewer", "DL Viewer", ImVec2(520, 600)); + mDLViewerWindow = std::make_shared(CVAR_WINDOW("DLViewer"), "DL Viewer", ImVec2(520, 600)); gui->AddGuiWindow(mDLViewerWindow); mMessageViewerWindow = - std::make_shared("gWindows.MessageViewer", "Message Viewer", ImVec2(520, 600)); + std::make_shared(CVAR_WINDOW("MessageViewer"), "Message Viewer", ImVec2(520, 600)); gui->AddGuiWindow(mMessageViewerWindow); - mAudioEditorWindow = std::make_shared("gWindows.AudioEditor", "Audio Editor", ImVec2(520, 600)); + mAudioEditorWindow = std::make_shared(CVAR_WINDOW("AudioEditor"), "Audio Editor", ImVec2(520, 600)); gui->AddGuiWindow(mAudioEditorWindow); - mItemTrackerWindow = std::make_shared("gWindows.ItemTracker", "Item Tracker"); + mItemTrackerWindow = std::make_shared(CVAR_WINDOW("ItemTracker"), "Item Tracker"); gui->AddGuiWindow(mItemTrackerWindow); - mItemTrackerSettingsWindow = std::make_shared("gWindows.ItemTrackerSettings", + mItemTrackerSettingsWindow = std::make_shared(CVAR_WINDOW("ItemTrackerSettings"), "Item Tracker Settings", ImVec2(800, 400)); gui->AddGuiWindow(mItemTrackerSettingsWindow); - mDisplayOverlayWindow = std::make_shared("gWindows.DisplayOverlay", "Display Overlay"); + mDisplayOverlayWindow = std::make_shared(CVAR_WINDOW("DisplayOverlay"), "Display Overlay"); gui->AddGuiWindow(mDisplayOverlayWindow); - mTimesplitsWindow = std::make_shared("gWindows.Timesplits", "Time Splits Window"); + mTimesplitsWindow = std::make_shared(CVAR_WINDOW("Timesplits"), "Time Splits Window"); gui->AddGuiWindow(mTimesplitsWindow); mTimesplitsSettingsWindow = std::make_shared( - "gWindows.Timesplits.Settings", "Time Splits Settings Window", ImVec2(567, 97)); + CVAR_WINDOW("Timesplits.Settings"), "Time Splits Settings Window", ImVec2(567, 97)); gui->AddGuiWindow(mTimesplitsSettingsWindow); - mNotificationWindow = std::make_shared("gWindows.Notifications", "Notifications Window"); + mNotificationWindow = std::make_shared(CVAR_WINDOW("Notifications"), "Notifications Window"); gui->AddGuiWindow(mNotificationWindow); mNotificationWindow->Show(); mRandoCheckTrackerWindow = std::make_shared( - "gWindows.CheckTracker", "Check Tracker", ImVec2(375, 460)); + CVAR_WINDOW("CheckTracker"), "Check Tracker", ImVec2(375, 460)); gui->AddGuiWindow(mRandoCheckTrackerWindow); mRandoCheckTrackerSettingsWindow = std::make_shared( - "gWindows.CheckTrackerSettings", "Check Tracker Settings"); + CVAR_WINDOW("CheckTrackerSettings"), "Check Tracker Settings"); gui->AddGuiWindow(mRandoCheckTrackerSettingsWindow); - mInputViewer = std::make_shared("gWindows.InputViewer", "Input Viewer"); + mInputViewer = std::make_shared(CVAR_WINDOW("InputViewer"), "Input Viewer"); gui->AddGuiWindow(mInputViewer); - mInputViewerSettings = std::make_shared("gWindows.InputViewerSettings", + mInputViewerSettings = std::make_shared(CVAR_WINDOW("InputViewerSettings"), "Input Viewer Settings", ImVec2(500, 525)); gui->AddGuiWindow(mInputViewerSettings); - mModalWindow = std::make_shared("gWindows.ModalWindow", "Modal Window"); + mModalWindow = std::make_shared(CVAR_WINDOW("ModalWindow"), "Modal Window"); gui->AddGuiWindow(mModalWindow); mModalWindow->Show(); } diff --git a/mm/2s2h/BenGui/BenInputEditorWindow.cpp b/mm/2s2h/BenGui/BenInputEditorWindow.cpp index 422c858fb0..d60eb0c878 100644 --- a/mm/2s2h/BenGui/BenInputEditorWindow.cpp +++ b/mm/2s2h/BenGui/BenInputEditorWindow.cpp @@ -1205,20 +1205,20 @@ void BenInputEditorWindow::DrawModifierButtonsSection(uint8_t port) { DrawButtonLine("M1", port, BTN_CUSTOM_MODIFIER1); DrawButtonLine("M2", port, BTN_CUSTOM_MODIFIER2); - ImGui::BeginDisabled(CVarGetInteger("gSettings.DisableChanges", 0)); - CVarCheckbox("Enable Speed Modifiers", "gSettings.SpeedModifier.Enable", + ImGui::BeginDisabled(CVarGetInteger(CVAR_SETTING("DisableChanges"), 0)); + CVarCheckbox("Enable Speed Modifiers", CVAR_SETTING("SpeedModifier.Enable"), CheckboxOptions() .Color(THEME_COLOR) .Tooltip("Hold the assigned button to change the maximum walking or swimming speed.")); - if (CVarGetInteger("gSettings.SpeedModifier.Enable", 0)) { + if (CVarGetInteger(CVAR_SETTING("SpeedModifier.Enable"), 0)) { UIWidgets::Spacer(5); Ship::GuiWindow::BeginGroupPanel("Speed Modifier", ImGui::GetContentRegionAvail()); - CVarCheckbox("Toggle modifier instead of holding", "gSettings.SpeedModifier.Toggle", + CVarCheckbox("Toggle modifier instead of holding", CVAR_SETTING("SpeedModifier.Toggle"), CheckboxOptions().Color(THEME_COLOR)); Ship::GuiWindow::BeginGroupPanel("Walk Modifier", ImGui::GetContentRegionAvail()); - CVarCheckbox("Enable Walk Speed Modifier", "gSettings.SpeedModifier.WalkEnable", + CVarCheckbox("Enable Walk Speed Modifier", CVAR_SETTING("SpeedModifier.WalkEnable"), CheckboxOptions().Color(THEME_COLOR)); - CVarSliderFloat("Walk Modifier 1: %.0f %%", "gSettings.SpeedModifier.WalkMapping1", + CVarSliderFloat("Walk Modifier 1: %.0f %%", CVAR_SETTING("SpeedModifier.WalkMapping1"), FloatSliderOptions() .Color(THEME_COLOR) .IsPercentage() @@ -1226,7 +1226,7 @@ void BenInputEditorWindow::DrawModifierButtonsSection(uint8_t port) { .Max(15.0f) .DefaultValue(1.0f) .ShowAdjustmentButtons(true)); - CVarSliderFloat("Walk Modifier 2: %.0f %%", "gSettings.SpeedModifier.WalkMapping2", + CVarSliderFloat("Walk Modifier 2: %.0f %%", CVAR_SETTING("SpeedModifier.WalkMapping2"), FloatSliderOptions() .Color(THEME_COLOR) .IsPercentage() @@ -1236,9 +1236,9 @@ void BenInputEditorWindow::DrawModifierButtonsSection(uint8_t port) { .ShowAdjustmentButtons(true)); Ship::GuiWindow::EndGroupPanel(0); Ship::GuiWindow::BeginGroupPanel("Swim Modifier", ImGui::GetContentRegionAvail()); - CVarCheckbox("Enable Swim Speed Modifier", "gSettings.SpeedModifier.SwimEnable", + CVarCheckbox("Enable Swim Speed Modifier", CVAR_SETTING("SpeedModifier.SwimEnable"), CheckboxOptions().Color(THEME_COLOR)); - CVarSliderFloat("Swim Modifier 1: %.0f %%", "gSettings.SpeedModifier.SwimMapping1", + CVarSliderFloat("Swim Modifier 1: %.0f %%", CVAR_SETTING("SpeedModifier.SwimMapping1"), FloatSliderOptions() .Color(THEME_COLOR) .IsPercentage() @@ -1246,7 +1246,7 @@ void BenInputEditorWindow::DrawModifierButtonsSection(uint8_t port) { .Max(8.75f) .DefaultValue(1.0f) .ShowAdjustmentButtons(true)); - CVarSliderFloat("Swim Modifier 2: %.0f %%", "gSettings.SpeedModifier.SwimMapping2", + CVarSliderFloat("Swim Modifier 2: %.0f %%", CVAR_SETTING("SpeedModifier.SwimMapping2"), FloatSliderOptions() .Color(THEME_COLOR) .IsPercentage() diff --git a/mm/2s2h/BenGui/BenMenu.cpp b/mm/2s2h/BenGui/BenMenu.cpp index 9361ca0360..a917f38855 100644 --- a/mm/2s2h/BenGui/BenMenu.cpp +++ b/mm/2s2h/BenGui/BenMenu.cpp @@ -1,6 +1,7 @@ #include "BenMenu.h" #include "UIWidgets.hpp" #include "BenPort.h" +#include "2s2h/cvar_prefixes.h" #include "BenInputEditorWindow.h" #include "DeveloperTools/SaveEditor.h" #include "DeveloperTools/CollisionViewer.h" @@ -157,10 +158,10 @@ static const std::unordered_map damageMultiplierOptions = namespace BenGui { extern std::shared_ptr mBenMenu; void FreeLookPitchMinMax() { - f32 maxY = CVarGetFloat("gEnhancements.Camera.FreeLook.MaxPitch", 72.0f); - f32 minY = CVarGetFloat("gEnhancements.Camera.FreeLook.MinPitch", -49.0f); - CVarSetFloat("gEnhancements.Camera.FreeLook.MaxPitch", std::max(maxY, minY)); - CVarSetFloat("gEnhancements.Camera.FreeLook.MinPitch", std::min(maxY, minY)); + f32 maxY = CVarGetFloat(CVAR_ENHANCEMENT("Camera.FreeLook.MaxPitch"), 72.0f); + f32 minY = CVarGetFloat(CVAR_ENHANCEMENT("Camera.FreeLook.MinPitch"), -49.0f); + CVarSetFloat(CVAR_ENHANCEMENT("Camera.FreeLook.MaxPitch"), std::max(maxY, minY)); + CVarSetFloat(CVAR_ENHANCEMENT("Camera.FreeLook.MinPitch"), std::min(maxY, minY)); } using namespace UIWidgets; @@ -287,12 +288,12 @@ std::vector contributors = { void BenMenu::AddSettings() { // Add Settings menu - AddMenuEntry("Settings", "gSettings.Menu.SettingsSidebarSection"); + AddMenuEntry("Settings", CVAR_SETTING("Menu.SettingsSidebarSection")); // General Settings AddSidebarEntry("Settings", "General", 2); WidgetPath path = { "Settings", "General", SECTION_COLUMN_1 }; AddWidget(path, "Menu Theme", WIDGET_CVAR_COMBOBOX) - .CVar("gSettings.Menu.Theme") + .CVar(CVAR_SETTING("Menu.Theme")) .Options(ComboboxOptions() .Tooltip("Changes the Theme of the Menu Widgets.") .ComboMap(&menuThemeOptions) @@ -305,17 +306,17 @@ void BenMenu::AddSettings() { "This will disable game inputs while the menu is visible.\n\nD-pad to move between " "items, A to select, B to move up in scope.")); AddWidget(path, "Cursor Always Visible", WIDGET_CVAR_CHECKBOX) - .CVar("gSettings.CursorVisibility") + .CVar(CVAR_SETTING("CursorVisibility")) .Callback([](WidgetInfo& info) { Ship::Context::GetInstance()->GetWindow()->SetForceCursorVisibility( - CVarGetInteger("gSettings.CursorVisibility", 0)); + CVarGetInteger(CVAR_SETTING("CursorVisibility"), 0)); }) .Options(CheckboxOptions().Tooltip("Makes the cursor always visible, even in full screen.")); #endif AddWidget(path, "Search In Sidebar", WIDGET_CVAR_CHECKBOX) - .CVar("gSettings.Menu.SidebarSearch") + .CVar(CVAR_SETTING("Menu.SidebarSearch")) .Callback([](WidgetInfo& info) { - if (CVarGetInteger("gSettings.Menu.SidebarSearch", 0)) { + if (CVarGetInteger(CVAR_SETTING("Menu.SidebarSearch"), 0)) { mBenMenu->InsertSidebarSearch(); } else { mBenMenu->RemoveSidebarSearch(); @@ -324,11 +325,11 @@ void BenMenu::AddSettings() { .Options(CheckboxOptions().Tooltip( "Displays the Search menu as a sidebar entry in Settings instead of in the header.")); AddWidget(path, "Search Input Autofocus", WIDGET_CVAR_CHECKBOX) - .CVar("gSettings.Menu.SearchAutofocus") + .CVar(CVAR_SETTING("Menu.SearchAutofocus")) .Options(CheckboxOptions().Tooltip( "Search input box gets autofocus when visible. Does not affect using other widgets.")); AddWidget(path, "Alt Assets Tab hotkey", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Mods.AlternateAssetsHotkey") + .CVar(CVAR_ENHANCEMENT("Mods.AlternateAssetsHotkey")) .Options( CheckboxOptions().Tooltip("Allows pressing the Tab key to toggle alternate assets.").DefaultValue(true)); AddWidget(path, "Open App Files Folder", WIDGET_BUTTON) @@ -388,16 +389,16 @@ void BenMenu::AddSettings() { path.column = SECTION_COLUMN_1; AddSidebarEntry("Settings", "Audio", 3); AddWidget(path, "Master Volume: %.0f%%", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gSettings.Audio.MasterVolume") + .CVar(CVAR_SETTING("Audio.MasterVolume")) .Options(FloatSliderOptions() .Tooltip("Adjust the overall sound volume.") .ShowAdjustmentButtons(false) .Format("") .IsPercentage()); AddWidget(path, "Main Music Volume: %.0f%%", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gSettings.Audio.MainMusicVolume") + .CVar(CVAR_SETTING("Audio.MainMusicVolume")) .Callback([](WidgetInfo& info) { - AudioSeq_SetPortVolumeScale(SEQ_PLAYER_BGM_MAIN, CVarGetFloat("gSettings.Audio.MainMusicVolume", 1.0f)); + AudioSeq_SetPortVolumeScale(SEQ_PLAYER_BGM_MAIN, CVarGetFloat(CVAR_SETTING("Audio.MainMusicVolume"), 1.0f)); }) .Options(FloatSliderOptions() .Tooltip("Adjust the background music volume.") @@ -405,9 +406,9 @@ void BenMenu::AddSettings() { .Format("") .IsPercentage()); AddWidget(path, "Sub Music Volume: %.0f%%", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gSettings.Audio.SubMusicVolume") + .CVar(CVAR_SETTING("Audio.SubMusicVolume")) .Callback([](WidgetInfo& info) { - AudioSeq_SetPortVolumeScale(SEQ_PLAYER_BGM_SUB, CVarGetFloat("gSettings.Audio.SubMusicVolume", 1.0f)); + AudioSeq_SetPortVolumeScale(SEQ_PLAYER_BGM_SUB, CVarGetFloat(CVAR_SETTING("Audio.SubMusicVolume"), 1.0f)); }) .Options(FloatSliderOptions() .Tooltip("Adjust the sub music volume.") @@ -415,9 +416,9 @@ void BenMenu::AddSettings() { .Format("") .IsPercentage()); AddWidget(path, "Sound Effects Volume: %.0f%%", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gSettings.Audio.SoundEffectsVolume") + .CVar(CVAR_SETTING("Audio.SoundEffectsVolume")) .Callback([](WidgetInfo& info) { - AudioSeq_SetPortVolumeScale(SEQ_PLAYER_SFX, CVarGetFloat("gSettings.Audio.SoundEffectsVolume", 1.0f)); + AudioSeq_SetPortVolumeScale(SEQ_PLAYER_SFX, CVarGetFloat(CVAR_SETTING("Audio.SoundEffectsVolume"), 1.0f)); }) .Options(FloatSliderOptions() .Tooltip("Adjust the sound effects volume.") @@ -425,9 +426,9 @@ void BenMenu::AddSettings() { .Format("") .IsPercentage()); AddWidget(path, "Fanfare Volume: %.0f%%", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gSettings.Audio.FanfareVolume") + .CVar(CVAR_SETTING("Audio.FanfareVolume")) .Callback([](WidgetInfo& info) { - AudioSeq_SetPortVolumeScale(SEQ_PLAYER_FANFARE, CVarGetFloat("gSettings.Audio.FanfareVolume", 1.0f)); + AudioSeq_SetPortVolumeScale(SEQ_PLAYER_FANFARE, CVarGetFloat(CVAR_SETTING("Audio.FanfareVolume"), 1.0f)); }) .Options(FloatSliderOptions() .Tooltip("Adjust the fanfare volume.") @@ -435,9 +436,9 @@ void BenMenu::AddSettings() { .Format("") .IsPercentage()); AddWidget(path, "Ambience Volume: %.0f%%", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gSettings.Audio.AmbienceVolume") + .CVar(CVAR_SETTING("Audio.AmbienceVolume")) .Callback([](WidgetInfo& info) { - AudioSeq_SetPortVolumeScale(SEQ_PLAYER_AMBIENCE, CVarGetFloat("gSettings.Audio.AmbienceVolume", 1.0f)); + AudioSeq_SetPortVolumeScale(SEQ_PLAYER_AMBIENCE, CVarGetFloat(CVAR_SETTING("Audio.AmbienceVolume"), 1.0f)); }) .Options(FloatSliderOptions() .Tooltip("Adjust the ambient sound volume.") @@ -495,7 +496,7 @@ void BenMenu::AddSettings() { #endif AddWidget(path, "Current FPS: %d", WIDGET_CVAR_SLIDER_INT) - .CVar("gInterpolationFPS") + .CVar(CVAR_SETTING("Graphics.InterpolationFPS")) .Callback([](WidgetInfo& info) { int32_t defaultValue = std::static_pointer_cast(info.options)->defaultValue; if (CVarGetInteger(info.cVar, defaultValue) == defaultValue) { @@ -514,7 +515,7 @@ void BenMenu::AddSettings() { "A higher target FPS than your monitor's refresh rate will waste resources, and might give a worse " "result.")); AddWidget(path, "Match Refresh Rate", WIDGET_CVAR_CHECKBOX) - .CVar("gMatchRefreshRate") + .CVar(CVAR_SETTING("Graphics.MatchRefreshRate")) .Options(CheckboxOptions().Tooltip("Matches interpolation value to the refresh rate of your display.")); AddWidget(path, "Renderer API (Needs reload)", WIDGET_VIDEO_BACKEND); AddWidget(path, "Enable Vsync", WIDGET_CVAR_CHECKBOX) @@ -546,7 +547,7 @@ void BenMenu::AddSettings() { path.sidebarName = "Controls"; AddSidebarEntry("Settings", "Controls", 1); AddWidget(path, "Popout Bindings Window", WIDGET_WINDOW_BUTTON) - .CVar("gWindows.BenInputEditor") + .CVar(CVAR_WINDOW("BenInputEditor")) .WindowName("2S2H Input Editor") .Options(ButtonOptions().Tooltip("Enables the separate Bindings Window.").Size(Sizes::Inline)); @@ -554,13 +555,13 @@ void BenMenu::AddSettings() { AddSidebarEntry("Settings", "Overlay", 2); AddWidget(path, "Notifications", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Position", WIDGET_CVAR_COMBOBOX) - .CVar("gNotifications.Position") + .CVar(CVAR_SETTING("Notifications.Position")) .Options(ComboboxOptions() .Tooltip("Which corner of the screen notifications appear in.") .ComboVec(¬ificationPosition) .DefaultIndex(3)); AddWidget(path, "Duration: %.1f seconds", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gNotifications.Duration") + .CVar(CVAR_SETTING("Notifications.Duration")) .Options(FloatSliderOptions() .Tooltip("How long notifications are displayed for.") .Format("%.1f") @@ -569,13 +570,13 @@ void BenMenu::AddSettings() { .Max(30.0f) .DefaultValue(10.0f)); AddWidget(path, "Background Opacity: %.0f%%", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gNotifications.BgOpacity") + .CVar(CVAR_SETTING("Notifications.BgOpacity")) .Options(FloatSliderOptions() .Tooltip("How opaque the background of notifications is.") .DefaultValue(0.5f) .IsPercentage()); AddWidget(path, "Size %.1f", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gNotifications.Size") + .CVar(CVAR_SETTING("Notifications.Size")) .Options(FloatSliderOptions() .Tooltip("How large notifications are.") .Format("%.1f") @@ -596,7 +597,7 @@ void BenMenu::AddSettings() { path.column = SECTION_COLUMN_2; AddWidget(path, "In-Game Timer", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Display", WIDGET_CVAR_COMBOBOX) - .CVar("gWindows.DisplayOverlay") + .CVar(CVAR_WINDOW("DisplayOverlay")) .WindowName("Display Overlay") .Options( ComboboxOptions() @@ -607,10 +608,10 @@ void BenMenu::AddSettings() { "- In-Game Time: Display the time spent playing the save file") .ComboVec(&timerDisplayOptions)); AddWidget(path, "Hide Window Background", WIDGET_CVAR_CHECKBOX) - .CVar("gDisplayOverlay.Background") + .CVar(CVAR_SETTING("DisplayOverlay.Background")) .Options(CheckboxOptions().Tooltip("Hides the background of the Display Overlay window.")); AddWidget(path, "Scale: %.1fx", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gDisplayOverlay.Scale") + .CVar(CVAR_SETTING("DisplayOverlay.Scale")) .Options(FloatSliderOptions() .Tooltip("Adjust the Scale for the Display Overlay window.") .Min(1.0f) @@ -630,45 +631,45 @@ void BenMenu::AddSettings() { AddSidebarEntry("Settings", path.sidebarName, 2); AddWidget(path, "Input Viewer", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Toggle Input Viewer", WIDGET_WINDOW_BUTTON) - .CVar("gWindows.InputViewer") + .CVar(CVAR_WINDOW("InputViewer")) .WindowName("Input Viewer") .Options(ButtonOptions().Tooltip("Toggles the Input Viewer.")); AddWidget(path, "Input Viewer Settings", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Popout Input Viewer Settings", WIDGET_WINDOW_BUTTON) - .CVar("gWindows.InputViewerSettings") + .CVar(CVAR_WINDOW("InputViewerSettings")) .WindowName("Input Viewer Settings") .Options(ButtonOptions().Tooltip("Enables the separate Input Viewer Settings Window.")); } int32_t motionBlurStrength; void BenMenu::AddEnhancements() { - AddMenuEntry("Enhancements", "gSettings.Menu.EnhancementsSidebarSection"); + AddMenuEntry("Enhancements", CVAR_SETTING("Menu.EnhancementsSidebarSection")); WidgetPath path = { "Enhancements", "Camera", SECTION_COLUMN_1 }; AddSidebarEntry("Enhancements", "Camera", 3); // Camera Snap Fix AddWidget(path, "Fixes", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Fix Targeting Camera Snap", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Camera.FixTargettingCameraSnap") + .CVar(CVAR_ENHANCEMENT("Camera.FixTargettingCameraSnap")) .Options(CheckboxOptions().Tooltip( "Fixes the camera snap that occurs when you are moving and press the targeting button.")); AddWidget(path, "First Person", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Disable Auto-Centering", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Camera.FirstPerson.DisableFirstPersonAutoCenterView") + .CVar(CVAR_ENHANCEMENT("Camera.FirstPerson.DisableFirstPersonAutoCenterView")) .PreFunc([](WidgetInfo& info) { if (mBenMenu->disabledMap.at(DISABLE_FOR_GYRO_ON).active) info.activeDisables.push_back(DISABLE_FOR_GYRO_ON); }) .Options(CheckboxOptions().Tooltip("Disables the auto-centering of the camera in first person mode.")); AddWidget(path, "Invert X Axis", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Camera.FirstPerson.InvertX") + .CVar(CVAR_ENHANCEMENT("Camera.FirstPerson.InvertX")) .Options(CheckboxOptions().Tooltip("Inverts the X Axis of the Camera in First Person Mode.")); AddWidget(path, "Invert Y Axis", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Camera.FirstPerson.InvertY") + .CVar(CVAR_ENHANCEMENT("Camera.FirstPerson.InvertY")) .Options( CheckboxOptions().Tooltip("Inverts the Y Axis of the Camera in First Person Mode.").DefaultValue(true)); AddWidget(path, "X Axis Sensitivity: %.0f%%", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gEnhancements.Camera.FirstPerson.SensitivityX") + .CVar(CVAR_ENHANCEMENT("Camera.FirstPerson.SensitivityX")) .Options(FloatSliderOptions() .Tooltip("Adjusts the Sensitivity of the X Axis in First Person Mode.") .DefaultValue(1.0f) @@ -676,7 +677,7 @@ void BenMenu::AddEnhancements() { .Min(0.01f) .Max(2.0f)); AddWidget(path, "Y Axis Sensitivity: %.0f%%", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gEnhancements.Camera.FirstPerson.SensitivityY") + .CVar(CVAR_ENHANCEMENT("Camera.FirstPerson.SensitivityY")) .Options(FloatSliderOptions() .Tooltip("Adjusts the Sensitivity of the Y Axis in First Person Mode.") .DefaultValue(1.0f) @@ -684,18 +685,18 @@ void BenMenu::AddEnhancements() { .Min(0.01f) .Max(2.0f)); AddWidget(path, "Gyro Aiming", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Camera.FirstPerson.GyroEnabled") + .CVar(CVAR_ENHANCEMENT("Camera.FirstPerson.GyroEnabled")) .Options(CheckboxOptions().Tooltip("Enables Gyro Aiming in First Person Mode.")); AddWidget(path, "Invert Gyro X Axis", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Camera.FirstPerson.GyroInvertX") + .CVar(CVAR_ENHANCEMENT("Camera.FirstPerson.GyroInvertX")) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_GYRO_OFF).active; }) .Options(CheckboxOptions().Tooltip("Inverts the X Axis of the Gyro in First Person Mode.")); AddWidget(path, "Invert Gyro Y Axis", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Camera.FirstPerson.GyroInvertY") + .CVar(CVAR_ENHANCEMENT("Camera.FirstPerson.GyroInvertY")) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_GYRO_OFF).active; }) .Options(CheckboxOptions().Tooltip("Inverts the Y Axis of the Gyro in First Person Mode.")); AddWidget(path, "Gyro X Axis Sensitivity: %.0f%%", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gEnhancements.Camera.FirstPerson.GyroSensitivityX") + .CVar(CVAR_ENHANCEMENT("Camera.FirstPerson.GyroSensitivityX")) .Options(FloatSliderOptions() .Tooltip("Adjusts the Sensitivity of the X Axis of the Gyro in First Person Mode.") .DefaultValue(1.0f) @@ -704,7 +705,7 @@ void BenMenu::AddEnhancements() { .Max(2.0f)) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_GYRO_OFF).active; }); AddWidget(path, "Gyro Y Axis Sensitivity: %.0f%%", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gEnhancements.Camera.FirstPerson.GyroSensitivityY") + .CVar(CVAR_ENHANCEMENT("Camera.FirstPerson.GyroSensitivityY")) .Options(FloatSliderOptions() .Tooltip("Adjusts the Sensitivity of the Y Axis of the Gyro in First Person Mode.") .DefaultValue(1.0f) @@ -713,27 +714,27 @@ void BenMenu::AddEnhancements() { .Max(2.0f)) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_GYRO_OFF).active; }); AddWidget(path, "Right Stick Aiming", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Camera.FirstPerson.RightStickEnabled") + .CVar(CVAR_ENHANCEMENT("Camera.FirstPerson.RightStickEnabled")) .Options(CheckboxOptions().Tooltip("Enables Right Stick Aiming in First Person Mode.")); AddWidget(path, "Move while aiming", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Camera.FirstPerson.MoveInFirstPerson") + .CVar(CVAR_ENHANCEMENT("Camera.FirstPerson.MoveInFirstPerson")) .PreFunc([](WidgetInfo& info) { if (mBenMenu->disabledMap.at(DISABLE_FOR_RIGHT_STICK_OFF).active) info.activeDisables.push_back(DISABLE_FOR_RIGHT_STICK_OFF); }) .Options(CheckboxOptions().Tooltip("Allows movement with the left stick while in first person mode.")); AddWidget(path, "Invert Right Stick X Axis", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Camera.FirstPerson.RightStickInvertX") + .CVar(CVAR_ENHANCEMENT("Camera.FirstPerson.RightStickInvertX")) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_RIGHT_STICK_OFF).active; }) .Options(CheckboxOptions().Tooltip("Inverts the X Axis of the Right Stick in First Person Mode.")); AddWidget(path, "Invert Right Stick Y Axis", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Camera.FirstPerson.RightStickInvertY") + .CVar(CVAR_ENHANCEMENT("Camera.FirstPerson.RightStickInvertY")) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_RIGHT_STICK_OFF).active; }) .Options(CheckboxOptions() .Tooltip("Inverts the Y Axis of the Right Stick in First Person Mode.") .DefaultValue(true)); AddWidget(path, "Right Stick X Axis Sensitivity: %.0f%%", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gEnhancements.Camera.FirstPerson.RightStickSensitivityX") + .CVar(CVAR_ENHANCEMENT("Camera.FirstPerson.RightStickSensitivityX")) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_RIGHT_STICK_OFF).active; }) .Options(FloatSliderOptions() .Tooltip("Adjusts the Sensitivity of the X Axis of the Right Stick in First Person Mode.") @@ -742,7 +743,7 @@ void BenMenu::AddEnhancements() { .Min(0.01f) .Max(2.0f)); AddWidget(path, "Right Stick Y Axis Sensitivity: %.0f%%", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gEnhancements.Camera.FirstPerson.RightStickSensitivityY") + .CVar(CVAR_ENHANCEMENT("Camera.FirstPerson.RightStickSensitivityY")) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_RIGHT_STICK_OFF).active; }) .Options(FloatSliderOptions() .Tooltip("Adjusts the Sensitivity of the Y Axis of the Right Stick in First Person Mode.") @@ -754,7 +755,7 @@ void BenMenu::AddEnhancements() { path.column = SECTION_COLUMN_2; AddWidget(path, "Cameras", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Free Look", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Camera.FreeLook.Enable") + .CVar(CVAR_ENHANCEMENT("Camera.FreeLook.Enable")) .PreFunc([](WidgetInfo& info) { if (mBenMenu->disabledMap.at(DISABLE_FOR_DEBUG_CAM_ON).active) info.activeDisables.push_back(DISABLE_FOR_DEBUG_CAM_ON); @@ -763,18 +764,18 @@ void BenMenu::AddEnhancements() { "Enables free look camera control.\nNote: You must remap C buttons off of the right " "stick in the controller config menu, and map the camera stick to the right stick.")); AddWidget(path, "Camera Distance: %d", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Camera.FreeLook.MaxCameraDistance") + .CVar(CVAR_ENHANCEMENT("Camera.FreeLook.MaxCameraDistance")) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_FREE_LOOK_OFF).active; }) .Options( IntSliderOptions().Tooltip("Maximum Camera Distance for Free Look.").Min(100).Max(900).DefaultValue(185)); AddWidget(path, "Camera Transition Speed: %d", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Camera.FreeLook.TransitionSpeed") + .CVar(CVAR_ENHANCEMENT("Camera.FreeLook.TransitionSpeed")) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_FREE_LOOK_OFF).active; }) .Options(IntSliderOptions().Tooltip("Can someone help me?").Min(1).Max(900).DefaultValue(25)); AddWidget(path, "Max Camera Height Angle: %.0f\xC2\xB0", WIDGET_CVAR_SLIDER_FLOAT) .Callback([](WidgetInfo& info) { FreeLookPitchMinMax(); }) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_FREE_LOOK_OFF).active; }) - .CVar("gEnhancements.Camera.FreeLook.MaxPitch") + .CVar(CVAR_ENHANCEMENT("Camera.FreeLook.MaxPitch")) .Options(FloatSliderOptions() .Tooltip("Maximum Height of the Camera.") .Format("%.0f\xC2\xB0") @@ -782,7 +783,7 @@ void BenMenu::AddEnhancements() { .Max(89.0f) .DefaultValue(72.0f)); AddWidget(path, "Min Camera Height Angle: %.0f\xC2\xB0", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gEnhancements.Camera.FreeLook.MinPitch") + .CVar(CVAR_ENHANCEMENT("Camera.FreeLook.MinPitch")) .Callback([](WidgetInfo& info) { FreeLookPitchMinMax(); }) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_FREE_LOOK_OFF).active; }) .Options(FloatSliderOptions() @@ -792,7 +793,7 @@ void BenMenu::AddEnhancements() { .Max(89.0f) .DefaultValue(-49.0f)); AddWidget(path, "Debug Camera", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Camera.DebugCam.Enable") + .CVar(CVAR_ENHANCEMENT("Camera.DebugCam.Enable")) .PreFunc([](WidgetInfo& info) { if (mBenMenu->disabledMap.at(DISABLE_FOR_FREE_LOOK_ON).active) { info.activeDisables.push_back(DISABLE_FOR_FREE_LOOK_ON); @@ -800,7 +801,7 @@ void BenMenu::AddEnhancements() { }) .Options(CheckboxOptions().Tooltip("Enables debug camera control.")); AddWidget(path, "Invert Camera X Axis", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Camera.RightStick.InvertXAxis") + .CVar(CVAR_ENHANCEMENT("Camera.RightStick.InvertXAxis")) .PreFunc([](WidgetInfo& info) { if (mBenMenu->disabledMap.at(DISABLE_FOR_CAMERAS_OFF).active) { info.activeDisables.push_back(DISABLE_FOR_CAMERAS_OFF); @@ -808,7 +809,7 @@ void BenMenu::AddEnhancements() { }) .Options(CheckboxOptions().Tooltip("Inverts the Camera X Axis")); AddWidget(path, "Invert Camera Y Axis", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Camera.RightStick.InvertYAxis") + .CVar(CVAR_ENHANCEMENT("Camera.RightStick.InvertYAxis")) .PreFunc([](WidgetInfo& info) { if (mBenMenu->disabledMap.at(DISABLE_FOR_CAMERAS_OFF).active) { info.activeDisables.push_back(DISABLE_FOR_CAMERAS_OFF); @@ -816,7 +817,7 @@ void BenMenu::AddEnhancements() { }) .Options(CheckboxOptions().Tooltip("Inverts the Camera Y Axis").DefaultValue(true)); AddWidget(path, "Third-Person Camera\nHorizontal Sensitivity: %.0f%%", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gEnhancements.Camera.RightStick.CameraSensitivity.X") + .CVar(CVAR_ENHANCEMENT("Camera.RightStick.CameraSensitivity.X")) .PreFunc([](WidgetInfo& info) { if (mBenMenu->disabledMap.at(DISABLE_FOR_CAMERAS_OFF).active) { info.activeDisables.push_back(DISABLE_FOR_CAMERAS_OFF); @@ -830,7 +831,7 @@ void BenMenu::AddEnhancements() { .Min(0.01f) .Max(5.0f)); AddWidget(path, "Third-Person Camera\nVertical Sensitivity: %.0f%%", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gEnhancements.Camera.RightStick.CameraSensitivity.Y") + .CVar(CVAR_ENHANCEMENT("Camera.RightStick.CameraSensitivity.Y")) .PreFunc([](WidgetInfo& info) { if (mBenMenu->disabledMap.at(DISABLE_FOR_CAMERAS_OFF).active) { info.activeDisables.push_back(DISABLE_FOR_CAMERAS_OFF); @@ -844,13 +845,13 @@ void BenMenu::AddEnhancements() { .Min(0.01f) .Max(5.0f)); AddWidget(path, "Enable Roll (6\xC2\xB0 of Freedom)", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Camera.DebugCam.6DOF") + .CVar(CVAR_ENHANCEMENT("Camera.DebugCam.6DOF")) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_DEBUG_CAM_OFF).active; }) .Options(CheckboxOptions().Tooltip( "This allows for all six degrees of movement with the camera, NOTE: Yaw will work " "differently in this system, instead rotating around the focal point, rather than a polar axis.")); AddWidget(path, "Camera Speed: %.0f", WIDGET_CVAR_SLIDER_FLOAT) - .CVar("gEnhancements.Camera.DebugCam.CameraSpeed") + .CVar(CVAR_ENHANCEMENT("Camera.DebugCam.CameraSpeed")) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_DEBUG_CAM_OFF).active; }) .Options(FloatSliderOptions() .Tooltip("Adjusts the speed of the Camera.") @@ -863,49 +864,49 @@ void BenMenu::AddEnhancements() { path = { "Enhancements", "Cheats", SECTION_COLUMN_1 }; AddSidebarEntry("Enhancements", "Cheats", 3); AddWidget(path, "Infinite Health", WIDGET_CVAR_CHECKBOX) - .CVar("gCheats.InfiniteHealth") + .CVar(CVAR_CHEAT("InfiniteHealth")) .Options(CheckboxOptions().Tooltip("Always have full Hearts.")); AddWidget(path, "Infinite Magic", WIDGET_CVAR_CHECKBOX) - .CVar("gCheats.InfiniteMagic") + .CVar(CVAR_CHEAT("InfiniteMagic")) .Options(CheckboxOptions().Tooltip("Always have full Magic.")); AddWidget(path, "Infinite Rupees", WIDGET_CVAR_CHECKBOX) - .CVar("gCheats.InfiniteRupees") + .CVar(CVAR_CHEAT("InfiniteRupees")) .Options(CheckboxOptions().Tooltip("Always have a full Wallet.")); AddWidget(path, "Infinite Consumables", WIDGET_CVAR_CHECKBOX) - .CVar("gCheats.InfiniteConsumables") + .CVar(CVAR_CHEAT("InfiniteConsumables")) .Options( CheckboxOptions().Tooltip("Always have max Consumables, you must have collected the consumables first.")); AddWidget(path, "Easy Frame Advance", WIDGET_CVAR_CHECKBOX) - .CVar("gCheats.EasyFrameAdvance") + .CVar(CVAR_CHEAT("EasyFrameAdvance")) .Options(CheckboxOptions().Tooltip( "Continue holding START button when unpausing to only advance a single frame and then re-pause.")); AddWidget(path, "Longer Deku Flower Glide", WIDGET_CVAR_CHECKBOX) - .CVar("gCheats.LongerFlowerGlide") + .CVar(CVAR_CHEAT("LongerFlowerGlide")) .Options(CheckboxOptions().Tooltip( "Allows Deku Link to glide longer, no longer dropping after a certain distance.")); AddWidget(path, "No Clip", WIDGET_CVAR_CHECKBOX) - .CVar("gCheats.NoClip") + .CVar(CVAR_CHEAT("NoClip")) .Options(CheckboxOptions().Tooltip("Allows Link to phase through collision.")); AddWidget(path, "Unbreakable Razor Sword", WIDGET_CVAR_CHECKBOX) - .CVar("gCheats.UnbreakableRazorSword") + .CVar(CVAR_CHEAT("UnbreakableRazorSword")) .Options(CheckboxOptions().Tooltip("Allows to Razor Sword to be used indefinitely without dulling its blade.")); AddWidget(path, "Unrestricted Items", WIDGET_CVAR_CHECKBOX) - .CVar("gCheats.UnrestrictedItems") + .CVar(CVAR_CHEAT("UnrestrictedItems")) .Options(CheckboxOptions().Tooltip("Allows all Forms to use all Items.")); AddWidget(path, "Hookshot Anywhere", WIDGET_CVAR_CHECKBOX) - .CVar("gCheats.HookshotAnywhere") + .CVar(CVAR_CHEAT("HookshotAnywhere")) .Options(CheckboxOptions().Tooltip("Allows most surfaces to be hookshot-able.")); AddWidget(path, "Moon Jump on L", WIDGET_CVAR_CHECKBOX) - .CVar("gCheats.MoonJumpOnL") + .CVar(CVAR_CHEAT("MoonJumpOnL")) .Options(CheckboxOptions().Tooltip("Holding L makes you float into the air.")); AddWidget(path, "Elegy of Emptiness Anywhere", WIDGET_CVAR_CHECKBOX) - .CVar("gCheats.ElegyAnywhere") + .CVar(CVAR_CHEAT("ElegyAnywhere")) .Options(CheckboxOptions().Tooltip("Allows Elegy of Emptiness outside of Ikana.")); AddWidget(path, "Climb Anywhere", WIDGET_CVAR_CHECKBOX) - .CVar("gCheats.ClimbAnywhere") + .CVar(CVAR_CHEAT("ClimbAnywhere")) .Options(CheckboxOptions().Tooltip("Allows climbing on most walls regardless of vines.")); AddWidget(path, "Stop Time in Dungeons", WIDGET_CVAR_COMBOBOX) - .CVar("gCheats.TempleTimeStop") + .CVar(CVAR_CHEAT("TempleTimeStop")) .Options( ComboboxOptions() .Tooltip("Stops time from advancing in selected areas. Requires a room change to update.\n\n" @@ -920,100 +921,100 @@ void BenMenu::AddEnhancements() { AddSidebarEntry("Enhancements", "Gameplay", 3); AddWidget(path, "Player", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Fast Deku Flower Launch", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Player.FastFlowerLaunch") + .CVar(CVAR_ENHANCEMENT("Player.FastFlowerLaunch")) .Options(CheckboxOptions().Tooltip("Speeds up the time it takes to be able to get maximum height from" "launching out of a Deku Flower.")); AddWidget(path, "Infinite Deku Hopping", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Player.InfiniteDekuHopping") + .CVar(CVAR_ENHANCEMENT("Player.InfiniteDekuHopping")) .Options(CheckboxOptions().Tooltip("Allows Deku Link to hop indefinitely in water without drowning. This also " "prevents the velocity loss while in the air.")); AddWidget(path, "Instant Putaway", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Player.InstantPutaway") + .CVar(CVAR_ENHANCEMENT("Player.InstantPutaway")) .Options(CheckboxOptions().Tooltip("Allows Link to instantly puts away held item without waiting.")); AddWidget(path, "Fierce Deity Putaway", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Player.FierceDeityPutaway") + .CVar(CVAR_ENHANCEMENT("Player.FierceDeityPutaway")) .Options(CheckboxOptions().Tooltip("Allows Fierce Deity Link to put away his sword.")); AddWidget(path, "Climb speed", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Player.ClimbSpeed") + .CVar(CVAR_ENHANCEMENT("Player.ClimbSpeed")) .Options(IntSliderOptions() .Tooltip("Increases the speed at which Link climbs vines and ladders.") .Min(1) .Max(5) .DefaultValue(1)); AddWidget(path, "Faster Push/Pull", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Player.FasterPushAndPull") + .CVar(CVAR_ENHANCEMENT("Player.FasterPushAndPull")) .Options(CheckboxOptions().Tooltip("Speeds up the time it takes to push/pull various objects.")); AddWidget(path, "Prevent Diving Over Water", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Player.PreventDiveOverWater") + .CVar(CVAR_ENHANCEMENT("Player.PreventDiveOverWater")) .Options(CheckboxOptions().Tooltip("Prevents Link from automatically diving over bodies of water.")); AddWidget(path, "Underwater Ocarina", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Player.UnderwaterOcarina") + .CVar(CVAR_ENHANCEMENT("Player.UnderwaterOcarina")) .Options(CheckboxOptions().Tooltip("Allows Zora to use the Ocarina of Time when grounded underwater.")); AddWidget(path, "Manual Jump", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Player.ManualJump") + .CVar(CVAR_ENHANCEMENT("Player.ManualJump")) .Options(CheckboxOptions().Tooltip("Z + A to Jump and B while midair to Jump Attack.")); AddWidget(path, "Dpad Equips", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Dpad.DpadEquips") + .CVar(CVAR_ENHANCEMENT("Dpad.DpadEquips")) .Options(CheckboxOptions().Tooltip("Allows you to equip items to your D-pad.")); AddWidget(path, "Fast Magic Arrow Equip Animation", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Equipment.MagicArrowEquipSpeed") + .CVar(CVAR_ENHANCEMENT("Equipment.MagicArrowEquipSpeed")) .Options(CheckboxOptions().Tooltip("Removes the animation for equipping Magic Arrows.")); AddWidget(path, "Instant Fin Boomerangs Recall", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.PlayerActions.InstantRecall") + .CVar(CVAR_ENHANCEMENT("PlayerActions.InstantRecall")) .Options(CheckboxOptions().Tooltip( "Pressing B will instantly recall the fin boomerang back to Zora Link after they are thrown.")); AddWidget(path, "Two-Handed Sword Spin Attack", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Equipment.TwoHandedSwordSpinAttack") + .CVar(CVAR_ENHANCEMENT("Equipment.TwoHandedSwordSpinAttack")) .Options(CheckboxOptions().Tooltip( "Enables magic spin attacks for the Fierce Deity Sword and Great Fairy's Sword.")); AddWidget(path, "Better Picto Message", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Equipment.BetterPictoMessage") + .CVar(CVAR_ENHANCEMENT("Equipment.BetterPictoMessage")) .Options( CheckboxOptions().Tooltip("Inform the player what target if any is being captured in the pictograph.")); AddWidget(path, "Arrow Type Cycling", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.PlayerActions.ArrowCycle") + .CVar(CVAR_ENHANCEMENT("PlayerActions.ArrowCycle")) .Options(CheckboxOptions().Tooltip( "While aiming the bow, use R to cycle between Normal, Fire, Ice and Light arrows.")); AddWidget(path, "Remote Bombchu Control", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.PlayerActions.RemoteBombchu") + .CVar(CVAR_ENHANCEMENT("PlayerActions.RemoteBombchu")) .Options(CheckboxOptions().Tooltip( "Allows you to control the direction of the Bombchu while it is moving. Press B to detonate. Press A to " "stop controlling the Bombchu.")); AddWidget(path, "Bombchu Drops", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Equipment.ChuDrops") + .CVar(CVAR_ENHANCEMENT("Equipment.ChuDrops")) .Options( CheckboxOptions().Tooltip("When a bomb drop is spawned, it has a 50% chance to be a Bombchu instead.")); AddWidget(path, "Invert Shield Y Axis", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Equipment.InvertShieldY") + .CVar(CVAR_ENHANCEMENT("Equipment.InvertShieldY")) .Options(CheckboxOptions().Tooltip( "Invert the Y axis while holding the shield so that it moves up with the left stick.")); path.column = SECTION_COLUMN_2; AddWidget(path, "Modes", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Play as Kafei", WIDGET_CVAR_CHECKBOX) - .CVar("gModes.PlayAsKafei") + .CVar(CVAR_ENHANCEMENT("Modes.PlayAsKafei")) .Options(CheckboxOptions().Tooltip("Requires scene reload to take effect.")); AddWidget(path, "Hyrule Warriors Styled Link", WIDGET_CVAR_CHECKBOX) - .CVar("gModes.HyruleWarriorsStyledLink") + .CVar(CVAR_ENHANCEMENT("Modes.HyruleWarriorsStyledLink")) .Options(CheckboxOptions().Tooltip( "When acquired, places the Keaton and Fierce Deity masks on Link similarly to how he " "wears them in Hyrule Warriors.")); AddWidget(path, "Time Moves when you Move", WIDGET_CVAR_CHECKBOX) - .CVar("gModes.TimeMovesWhenYouMove") + .CVar(CVAR_ENHANCEMENT("Modes.TimeMovesWhenYouMove")) .Options(CheckboxOptions().Tooltip("Time only moves when Link is not standing still.")); AddWidget(path, "Mirrored World", WIDGET_CVAR_CHECKBOX) - .CVar("gModes.MirroredWorld.Mode") + .CVar(CVAR_ENHANCEMENT("Modes.MirroredWorld.Mode")) .Callback([](WidgetInfo& info) { - if (CVarGetInteger("gModes.MirroredWorld.Mode", 0)) { - CVarSetInteger("gModes.MirroredWorld.State", 1); + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.Mode"), 0)) { + CVarSetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 1); } else { - CVarClear("gModes.MirroredWorld.State"); + CVarClear(CVAR_ENHANCEMENT("Modes.MirroredWorld.State")); } }) .Options(CheckboxOptions().Tooltip("Mirrors the world horizontally.")); AddWidget(path, "Other", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Milk Run Reward Options", WIDGET_CVAR_COMBOBOX) - .CVar("gEnhancements.Minigames.CremiaHugs") + .CVar(CVAR_ENHANCEMENT("Minigames.CremiaHugs")) .Options(ComboboxOptions() .Tooltip("Choose what reward you get for winning the Milk Run minigame after the first time. \n" "-Vanilla: Reward is Random\n" @@ -1022,44 +1023,44 @@ void BenMenu::AddEnhancements() { .ComboVec(&cremiaRewardOptions)); AddWidget(path, "Accessibility", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Disable Screen Flash for Enemy Kills", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.A11y.NoScreenFlashForEnemyKill") + .CVar(CVAR_ENHANCEMENT("A11y.NoScreenFlashForEnemyKill")) .Options(CheckboxOptions().Tooltip("Disables the white screen flash on enemy kill.")); AddWidget(path, "Bow Reticle", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Graphics.BowReticle") + .CVar(CVAR_ENHANCEMENT("Graphics.BowReticle")) .Options(CheckboxOptions().Tooltip("Gives the bow a reticle when you draw an arrow.")); AddWidget(path, "Mark Shooting Gallery Octoroks", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Minigames.MarkShootingGalleryOctoroks") + .CVar(CVAR_ENHANCEMENT("Minigames.MarkShootingGalleryOctoroks")) .Options(CheckboxOptions().Tooltip("Places markers on the Town Shooting Gallery Octoroks, indicating whether " "they should be hit.")); path.column = SECTION_COLUMN_3; AddWidget(path, "Saving", WIDGET_SEPARATOR_TEXT); AddWidget(path, "3rd Save File Slot", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Saving.FileSlot3") + .CVar(CVAR_ENHANCEMENT("Saving.FileSlot3")) .Options(CheckboxOptions().Tooltip("Adds a 3rd file slot that can be used for saves").DefaultValue(true)); AddWidget(path, "Persistent Owl Saves", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Saving.PersistentOwlSaves") + .CVar(CVAR_ENHANCEMENT("Saving.PersistentOwlSaves")) .Options(CheckboxOptions().Tooltip("Continuing a save will not remove the owl save. Playing Song of " "Time, allowing the moon to crash or finishing the " "game will remove the owl save and become the new last save.")); AddWidget(path, "Pause Menu Save", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Saving.PauseSave") + .CVar(CVAR_ENHANCEMENT("Saving.PauseSave")) .Options(CheckboxOptions().Tooltip( "Re-introduce the pause menu save system. Pressing B in the pause menu will give you the " "option to create a persistent Owl Save from your current location.\n\nWhen loading back " "into the game, you will be placed either at the entrance of the dungeon you saved in, or " "in South Clock Town, unless Remember Save Location is enabled.")); AddWidget(path, "Remember Save Location", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Saving.RememberSaveLocation") + .CVar(CVAR_ENHANCEMENT("Saving.RememberSaveLocation")) .Options(CheckboxOptions().Tooltip("When loading a save, places Link at the last entrance he went through.")); AddWidget(path, "Autosave", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Saving.Autosave") + .CVar(CVAR_ENHANCEMENT("Saving.Autosave")) .Callback([](WidgetInfo& info) { RegisterAutosave(); }) .Options(CheckboxOptions().Tooltip( "Automatically create a persistent Owl Save on the chosen interval.\n\nWhen loading " "back into the game, you will be placed either at the entrance of the dungeon you " "saved in, or in South Clock Town, unless Remember Save Location is enabled.")); AddWidget(path, "Autosave Interval: %d minutes", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Saving.AutosaveInterval") + .CVar(CVAR_ENHANCEMENT("Saving.AutosaveInterval")) .PreFunc([](WidgetInfo& info) { if (mBenMenu->disabledMap.at(DISABLE_FOR_AUTO_SAVE_OFF).active) { info.activeDisables.push_back(DISABLE_FOR_AUTO_SAVE_OFF); @@ -1068,37 +1069,37 @@ void BenMenu::AddEnhancements() { .Options(IntSliderOptions().Tooltip("Sets the interval between Autosaves.").Min(1).Max(60).DefaultValue(5)); AddWidget(path, "Time Cycle", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Do not reset Bottle content", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Cycle.DoNotResetBottleContent") + .CVar(CVAR_ENHANCEMENT("Cycle.DoNotResetBottleContent")) .Options(CheckboxOptions().Tooltip("Playing the Song of Time will not reset the bottles' content.")); AddWidget(path, "Do not reset Consumables", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Cycle.DoNotResetConsumables") + .CVar(CVAR_ENHANCEMENT("Cycle.DoNotResetConsumables")) .Options(CheckboxOptions().Tooltip("Playing the Song of Time will not reset the consumables.")); AddWidget(path, "Do not reset Razor Sword", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Cycle.DoNotResetRazorSword") + .CVar(CVAR_ENHANCEMENT("Cycle.DoNotResetRazorSword")) .Options(CheckboxOptions().Tooltip("Playing the Song of Time will not reset the Sword back to Kokiri Sword.")); AddWidget(path, "Do not reset Rupees", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Cycle.DoNotResetRupees") + .CVar(CVAR_ENHANCEMENT("Cycle.DoNotResetRupees")) .Options(CheckboxOptions().Tooltip("Playing the Song of Time will not reset the your rupees.")); AddWidget(path, "Do not reset Time Speed", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Cycle.DoNotResetTimeSpeed") + .CVar(CVAR_ENHANCEMENT("Cycle.DoNotResetTimeSpeed")) .Options(CheckboxOptions().Tooltip( "Playing the Song of Time will not reset the current time speed set by Inverted Song of Time.")); AddWidget(path, "Keep Express Mail", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Cycle.KeepExpressMail") + .CVar(CVAR_ENHANCEMENT("Cycle.KeepExpressMail")) .Options(CheckboxOptions().Tooltip( "Allows the player to keep the Express Mail in their inventory after delivering it " "the first time, so that both deliveries can be done within one cycle.")); AddWidget(path, "Stop Oceanside Spider House squatter", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Cycle.StopOceansideSpiderHouseSquatter") + .CVar(CVAR_ENHANCEMENT("Cycle.StopOceansideSpiderHouseSquatter")) .Options( CheckboxOptions().Tooltip("The Oceanside Spider House squatter will not move in until the player interacts " "with him. Forced on for randomizers.")); AddWidget(path, "Oceanside wallet any day", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Cycle.OceansideWalletAnyDay") + .CVar(CVAR_ENHANCEMENT("Cycle.OceansideWalletAnyDay")) .Options(CheckboxOptions().Tooltip("Allows the wallet reward to be collected on any day.")); AddWidget(path, "Unstable", WIDGET_SEPARATOR_TEXT).Options(WidgetOptions().Color(Colors::Orange)); AddWidget(path, "Disable Save Delay", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Saving.DisableSaveDelay") + .CVar(CVAR_ENHANCEMENT("Saving.DisableSaveDelay")) .Options(CheckboxOptions().Tooltip( "Removes the arbitrary 2 second timer for saving from the original game. This is known to " "cause issues when attempting the 0th Day Glitch.")); @@ -1108,28 +1109,28 @@ void BenMenu::AddEnhancements() { AddSidebarEntry("Enhancements", "Graphics", 3); AddWidget(path, "Clock", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Clock Type", WIDGET_CVAR_COMBOBOX) - .CVar("gEnhancements.Graphics.ClockType") + .CVar(CVAR_ENHANCEMENT("Graphics.ClockType")) .Options(ComboboxOptions() .Tooltip("Swaps between Graphical and Text only Clock types.") .ComboVec(&clockTypeOptions)); AddWidget(path, "24 Hours Clock", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Graphics.24HoursClock") + .CVar(CVAR_ENHANCEMENT("Graphics.24HoursClock")) .Options(CheckboxOptions().Tooltip("Changes from a 12 Hour to a 24 Hour Clock.")); AddWidget(path, "Mods", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Use Alternate Assets", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Mods.AlternateAssets") + .CVar(CVAR_ENHANCEMENT("Mods.AlternateAssets")) .Options(CheckboxOptions().Tooltip( "Toggle between standard assets and alternate assets. Usually mods will indicate if " "this setting has to be used or not.")); AddWidget(path, "Motion Blur", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Motion Blur Mode", WIDGET_CVAR_COMBOBOX) - .CVar("gEnhancements.Graphics.MotionBlur.Mode") + .CVar(CVAR_ENHANCEMENT("Graphics.MotionBlur.Mode")) .Options(ComboboxOptions() .Tooltip("Selects the Mode for Motion Blur.") .LabelPosition(LabelPosition::None) .ComboVec(&motionBlurOptions)); AddWidget(path, "Interpolate", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Graphics.MotionBlur.Interpolate") + .CVar(CVAR_ENHANCEMENT("Graphics.MotionBlur.Interpolate")) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_MOTION_BLUR_MODE).value == MOTION_BLUR_ALWAYS_OFF; }) @@ -1143,7 +1144,7 @@ void BenMenu::AddEnhancements() { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_MOTION_BLUR_MODE).value != MOTION_BLUR_DYNAMIC; }); AddWidget(path, "Strength", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Graphics.MotionBlur.Strength") + .CVar(CVAR_ENHANCEMENT("Graphics.MotionBlur.Strength")) .Options(IntSliderOptions().Tooltip("Motion Blur strength.").Min(0).Max(255).DefaultValue(180)) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_MOTION_BLUR_MODE).value != MOTION_BLUR_ALWAYS_ON; @@ -1161,36 +1162,36 @@ void BenMenu::AddEnhancements() { path.column = SECTION_COLUMN_2; AddWidget(path, "Other", WIDGET_SEPARATOR_TEXT); AddWidget(path, "3D Item Drops", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Graphics.3DItemDrops") + .CVar(CVAR_ENHANCEMENT("Graphics.3DItemDrops")) .Options(CheckboxOptions().Tooltip("Makes item drops 3D")); AddWidget(path, "Authentic Logo", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Graphics.AuthenticLogo") + .CVar(CVAR_ENHANCEMENT("Graphics.AuthenticLogo")) .Options(CheckboxOptions().Tooltip("Hide the game version and build details and display the authentic " "model and texture on the boot logo start screen.")); AddWidget(path, "Disable Black Bar Letterboxes", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Graphics.DisableBlackBars") + .CVar(CVAR_ENHANCEMENT("Graphics.DisableBlackBars")) .Options(CheckboxOptions().Tooltip( "Disables Black Bar Letterboxes during cutscenes and Z-targeting.\nNote: There may be " "minor visual glitches that were covered up by the black bars.\nPlease disable this " "setting before reporting a bug.")); AddWidget(path, "Enemy Health Bars", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Graphics.EnemyHealthBars") + .CVar(CVAR_ENHANCEMENT("Graphics.EnemyHealthBars")) .Options(CheckboxOptions().Tooltip("Renders a health bar for enemies and bosses when Z-targeted.")); AddWidget(path, "Fix Scene Geometry Seams", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Graphics.FixSceneGeometrySeams") + .CVar(CVAR_ENHANCEMENT("Graphics.FixSceneGeometrySeams")) .Callback([](WidgetInfo& info) { GfxPatcher_ApplyGeometryIssuePatches(); }); AddWidget(path, "Disable Scene Geometry Distance Check", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Graphics.DisableSceneGeometryDistanceCheck") + .CVar(CVAR_ENHANCEMENT("Graphics.DisableSceneGeometryDistanceCheck")) .Callback([](WidgetInfo& info) { GfxPatcher_ApplyGeometryIssuePatches(); }) .Options(CheckboxOptions().Tooltip( "Disables the distance check for scene geometry, allowing it to be drawn no matter how far " "away it is from the player. This may have unintended side effects.")); AddWidget(path, "Widescreen Actor Culling", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Graphics.ActorCullingAccountsForWidescreen") + .CVar(CVAR_ENHANCEMENT("Graphics.ActorCullingAccountsForWidescreen")) .Options(CheckboxOptions().Tooltip("Adjusts the culling planes to account for widescreen resolutions. " "This may have unintended side effects.")); AddWidget(path, "Increase Actor Draw Distance: %dx", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Graphics.IncreaseActorDrawDistance") + .CVar(CVAR_ENHANCEMENT("Graphics.IncreaseActorDrawDistance")) .Options(IntSliderOptions() .Tooltip("Increase the range in which Actors are drawn. This may have unintended side effects.") .Min(1) @@ -1206,78 +1207,78 @@ void BenMenu::AddEnhancements() { // Mask Enhancements AddWidget(path, "Masks", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Blast Mask has Powder Keg Force", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Masks.BlastMaskKeg") + .CVar(CVAR_ENHANCEMENT("Masks.BlastMaskKeg")) .Options(CheckboxOptions().Tooltip("Blast Mask can also destroy objects only the Powder Keg can.")); AddWidget(path, "Fast Transformation", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Masks.FastTransformation") + .CVar(CVAR_ENHANCEMENT("Masks.FastTransformation")) .Options(CheckboxOptions().Tooltip("Removes the delay when using transformation masks.")); AddWidget(path, "Fierce Deity's Mask Anywhere", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Masks.FierceDeitysAnywhere") + .CVar(CVAR_ENHANCEMENT("Masks.FierceDeitysAnywhere")) .Options(CheckboxOptions().Tooltip("Allow using Fierce Deity's mask outside of boss rooms.")); AddWidget(path, "Persistent Bunny Hood", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Masks.PersistentBunnyHood.Enabled") + .CVar(CVAR_ENHANCEMENT("Masks.PersistentBunnyHood.Enabled")) .Options(CheckboxOptions().Tooltip( "Permanently toggle a speed boost from the bunny hood by pressing 'A' on it in the mask menu.")); AddWidget(path, "No Blast Mask Cooldown", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Masks.NoBlastMaskCooldown") + .CVar(CVAR_ENHANCEMENT("Masks.NoBlastMaskCooldown")) .Options(CheckboxOptions().Tooltip("Eliminates the Cooldown between Blast Mask usage.")); AddWidget(path, "Goron Rolling Ignores Magic", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Masks.GoronRollingIgnoresMagic") + .CVar(CVAR_ENHANCEMENT("Masks.GoronRollingIgnoresMagic")) .Options(CheckboxOptions().Tooltip( "Goron rolling will use spikes even when Link doesn't have magic, and doesn't consume any.")); AddWidget(path, "Goron Rolling Fast Spikes", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Masks.GoronRollingFastSpikes") + .CVar(CVAR_ENHANCEMENT("Masks.GoronRollingFastSpikes")) .Options(CheckboxOptions().Tooltip("Speeds up the wind-up towards spiky rolling to be near instant.")); // Song Enhancements path.column = SECTION_COLUMN_2; AddWidget(path, "Ocarina", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Better Song of Double Time", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Songs.BetterSongOfDoubleTime") + .CVar(CVAR_ENHANCEMENT("Songs.BetterSongOfDoubleTime")) .Options(CheckboxOptions().Tooltip( "When playing the Song of Double Time, you can now choose the exact time you want to go " "to, similar to the 3DS version.\n\n" "Holding Z allows decreasing the time adjustment factor, while holding R will increase the factor.")); AddWidget(path, "Enable Sun's Song", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Songs.EnableSunsSong") + .CVar(CVAR_ENHANCEMENT("Songs.EnableSunsSong")) .Options(CheckboxOptions().Tooltip( "Enables the partially implemented Sun's Song. RIGHT-DOWN-UP-RIGHT-DOWN-UP to play it. " "This song will make time move very fast until either Link moves to a different scene, " "or when the time switches to a new time period.")); AddWidget(path, "D-pad Ocarina", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Playback.DpadOcarina") + .CVar(CVAR_ENHANCEMENT("Playback.DpadOcarina")) .Options(CheckboxOptions().Tooltip("Enables using the D-pad for Ocarina playback.")); AddWidget(path, "Right Stick Ocarina", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Playback.RightStickOcarina") + .CVar(CVAR_ENHANCEMENT("Playback.RightStickOcarina")) .Options(CheckboxOptions().Tooltip("Enables using the Right Stick for Ocarina playback.")); AddWidget(path, "Pause Owl Warp", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Songs.PauseOwlWarp") + .CVar(CVAR_ENHANCEMENT("Songs.PauseOwlWarp")) .Options(CheckboxOptions().Tooltip( "Allows warping to registered Owl Statues from the pause menu map screen. " "Requires that you can play Song of Soaring normally.\n\n" "Accounts for Index-Warp being active, by presenting all valid warps for the registered " "map points. Great Bay Coast warp is always given for index 0 warp as a convenience.")); AddWidget(path, "Zora Eggs For Bossa Nova", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Songs.ZoraEggCount") + .CVar(CVAR_ENHANCEMENT("Songs.ZoraEggCount")) .Options(IntSliderOptions() .Tooltip("The number of eggs required to unlock New Wave Bossa Nova.") .Min(1) .Max(7) .DefaultValue(7)); AddWidget(path, "Prevent Dropped Ocarina Inputs", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Playback.NoDropOcarinaInput") + .CVar(CVAR_ENHANCEMENT("Playback.NoDropOcarinaInput")) .Options(CheckboxOptions().Tooltip("Prevent dropping inputs when playing the Ocarina quickly.")); AddWidget(path, "Skip Scarecrow Song", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Playback.SkipScarecrowSong") + .CVar(CVAR_ENHANCEMENT("Playback.SkipScarecrowSong")) .Options(CheckboxOptions().Tooltip("Pierre appears when the Ocarina is pulled out.")); AddWidget(path, "Faster Song Playback", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Songs.FasterSongPlayback") + .CVar(CVAR_ENHANCEMENT("Songs.FasterSongPlayback")) .Options(CheckboxOptions().Tooltip("Speeds up the playback of songs.")); AddWidget(path, "Skip Song of Time cutscenes", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Songs.SkipSoTCutscenes") + .CVar(CVAR_ENHANCEMENT("Songs.SkipSoTCutscenes")) .Options(CheckboxOptions().Tooltip("Skips the cutscenes when playing any of the Song of Time songs.")); AddWidget(path, "Skip Soaring cutscene", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Songs.SkipSoaringCutscene") + .CVar(CVAR_ENHANCEMENT("Songs.SkipSoaringCutscene")) .Options(CheckboxOptions().Tooltip("Skips the cutscene when using the Song of Soaring to warp.")); // Time Savers @@ -1286,25 +1287,25 @@ void BenMenu::AddEnhancements() { // Cutscene Skips AddWidget(path, "Cutscenes", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Hide Title Cards", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Cutscenes.HideTitleCards") + .CVar(CVAR_ENHANCEMENT("Cutscenes.HideTitleCards")) .Options(CheckboxOptions().Tooltip("Hides Title Cards when entering areas.")); AddWidget(path, "Skip One Point Cutscenes", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Cutscenes.SkipOnePointCutscenes") + .CVar(CVAR_ENHANCEMENT("Cutscenes.SkipOnePointCutscenes")) .Options(CheckboxOptions().Tooltip( "Skips freezing Link to focus on various events like chest spawning, door unlocking, switch pressed, etc")); AddWidget(path, "Skip Entrance Cutscenes", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Cutscenes.SkipEntranceCutscenes") + .CVar(CVAR_ENHANCEMENT("Cutscenes.SkipEntranceCutscenes")) .Options(CheckboxOptions().Tooltip("Skip cutscenes that occur when first entering a new area.")); AddWidget(path, "Skip to File Select", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Cutscenes.SkipToFileSelect") + .CVar(CVAR_ENHANCEMENT("Cutscenes.SkipToFileSelect")) .Options(CheckboxOptions().Tooltip( "Skip the opening title sequence and go straight to the file select menu after boot.")); AddWidget(path, "Skip Intro Sequence", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Cutscenes.SkipIntroSequence") + .CVar(CVAR_ENHANCEMENT("Cutscenes.SkipIntroSequence")) .Options(CheckboxOptions().Tooltip( "When starting a game you will be taken straight to South Clock Town as Deku Link.")); AddWidget(path, "Skip First Cycle", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Cutscenes.SkipFirstCycle") + .CVar(CVAR_ENHANCEMENT("Cutscenes.SkipFirstCycle")) .PreFunc([](WidgetInfo& info) { if (mBenMenu->disabledMap.at(DISABLE_FOR_INTRO_SKIP_OFF).active) { info.activeDisables.push_back(DISABLE_FOR_INTRO_SKIP_OFF); @@ -1314,16 +1315,16 @@ void BenMenu::AddEnhancements() { "When starting a game you will be taken straight to South Clock Town as Human Link " "with Deku Mask, Ocarina, Song of Time, and Song of Healing.")); AddWidget(path, "Skip Story Cutscenes", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Cutscenes.SkipStoryCutscenes") + .CVar(CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes")) .Options(CheckboxOptions().Tooltip("This skips many of the cutscenes associated with the main story.")); AddWidget(path, "Skip Misc Interactions", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Cutscenes.SkipMiscInteractions") + .CVar(CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions")) .Options(CheckboxOptions().Tooltip("This skips many minor cutscenes and interactions.")); AddWidget(path, "Skip Enemy Cutscenes", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Cutscenes.SkipEnemyCutscenes") + .CVar(CVAR_ENHANCEMENT("Cutscenes.SkipEnemyCutscenes")) .Options(CheckboxOptions().Tooltip("Skips cutscenes specific to enemies and boss battles.")); AddWidget(path, "Skip Item Get Cutscene", WIDGET_CVAR_COMBOBOX) - .CVar("gEnhancements.Cutscenes.SkipGetItemCutscenes") + .CVar(CVAR_ENHANCEMENT("Cutscenes.SkipGetItemCutscenes")) .Options(ComboboxOptions() .Tooltip("Note: This only works in Randomizer currently.") .ComboVec(&skipGetItemCutscenesOptions)); @@ -1332,46 +1333,46 @@ void BenMenu::AddEnhancements() { path.column = SECTION_COLUMN_2; AddWidget(path, "Dialogue", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Fast Bank Selection", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Dialogue.FastBankSelection") + .CVar(CVAR_ENHANCEMENT("Dialogue.FastBankSelection")) .Options(CheckboxOptions().Tooltip( "Pressing the Z or R buttons while the Deposit/Withdrawal Rupees dialogue is open will set " "the Rupees to Links current Rupees or 0 respectively.")); AddWidget(path, "Fast Text", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Dialogue.FastText") + .CVar(CVAR_ENHANCEMENT("Dialogue.FastText")) .Options( CheckboxOptions().Tooltip("Speeds up text rendering, and enables holding of B progress to next message.")); AddWidget(path, "Auto Bombers' Code", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Dialogue.AutoBombersCode") + .CVar(CVAR_ENHANCEMENT("Dialogue.AutoBombersCode")) .Options(CheckboxOptions().Tooltip("Automatically fill in the Bombers' code once you've got the notebook.")); path.column = SECTION_COLUMN_3; AddWidget(path, "Other", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Swamp Boat Timesaver", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Timesavers.SwampBoatSpeed") + .CVar(CVAR_ENHANCEMENT("Timesavers.SwampBoatSpeed")) .Options(CheckboxOptions().Tooltip("Hold Z to speed up the boat ride in through the Swamp.")); AddWidget(path, "Shooting Gallery Both Rewards", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Timesavers.GalleryTwofer") + .CVar(CVAR_ENHANCEMENT("Timesavers.GalleryTwofer")) .Options(CheckboxOptions().Tooltip("When getting a perfect score at the Shooting Gallery, receive both rewards " "back to back instead of having to play twice.")); AddWidget(path, "Fast Marine Lab Fish", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Timesavers.MarineLabHP") + .CVar(CVAR_ENHANCEMENT("Timesavers.MarineLabHP")) .Options(CheckboxOptions().Tooltip("Only requires a single fish to be fed for the Piece of Heart to spawn. " "Requires a Scene Reload to take effect.")); AddWidget(path, "Fast Dampe Flame Digging", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Timesavers.DampeDiggingSkip") + .CVar(CVAR_ENHANCEMENT("Timesavers.DampeDiggingSkip")) .Options(CheckboxOptions().Tooltip("Only requires digging up one flame to spawn the big poe.")); AddWidget(path, "Fast Chests", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Timesavers.FastChests") + .CVar(CVAR_ENHANCEMENT("Timesavers.FastChests")) .Options(CheckboxOptions().Tooltip("Uses the quick kick animation for all chests in vanilla gameplay.")); AddWidget(path, "Faster Scene Transitions", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Timesavers.FasterSceneTransitions") + .CVar(CVAR_ENHANCEMENT("Timesavers.FasterSceneTransitions")) .Options(CheckboxOptions().Tooltip("Fade in and out more quickly when moving between areas.")); AddWidget(path, "Skip Powder Keg Certification", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Timesavers.PowderKegCertification") + .CVar(CVAR_ENHANCEMENT("Timesavers.PowderKegCertification")) .Options(CheckboxOptions().Tooltip( "Skips requiring to take the Powder Keg Test before being given the Certification.")); AddWidget(path, "Skip Ballad of Windfish", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Timesavers.SkipBalladOfWindfish") + .CVar(CVAR_ENHANCEMENT("Timesavers.SkipBalladOfWindfish")) .Options(CheckboxOptions().Tooltip( "Play the complete Ballad after playing in one form if you have all three transformation masks.")); @@ -1380,7 +1381,7 @@ void BenMenu::AddEnhancements() { AddSidebarEntry("Enhancements", "Fixes", 3); AddWidget(path, "Fixes", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Fix Console Crashes", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Fixes.ConsoleCrashes") + .CVar(CVAR_ENHANCEMENT("Fixes.ConsoleCrashes")) .Options(CheckboxOptions() .Tooltip("Fixes crashes that would typically happen on Console. " "Disabling this option will simply soft reset 2Ship when encountering these " @@ -1392,33 +1393,33 @@ void BenMenu::AddEnhancements() { "- Remote Hookshot Hookslide crashes when over voids in Great Bay Temple") .DefaultValue(true)); AddWidget(path, "Fix Ammo Count Color", WIDGET_CVAR_CHECKBOX) - .CVar("gFixes.FixAmmoCountEnvColor") + .CVar(CVAR_ENHANCEMENT("Fixes.FixAmmoCountEnvColor")) .Options(CheckboxOptions().Tooltip("Fixes a missing gDPSetEnvColor, which causes the ammo count to be " "the wrong color prior to obtaining magic or other conditions.")); AddWidget(path, "Fix Epona stealing Sword", WIDGET_CVAR_CHECKBOX) - .CVar("gFixes.FixEponaStealingSword") + .CVar(CVAR_ENHANCEMENT("Fixes.FixEponaStealingSword")) .Options(CheckboxOptions().Tooltip( "This fixes a bug where Epona can steal your sword when you mount her without a bow in your inventory.")); AddWidget(path, "Fix Fierce Deity Z-Target movement", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Fixes.FierceDeityZTargetMovement") + .CVar(CVAR_ENHANCEMENT("Fixes.FierceDeityZTargetMovement")) .Options(CheckboxOptions().Tooltip("Fixes Fierce Deity movement being choppy when Z-targeting.")); AddWidget(path, "Fix Text Control Characters", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Fixes.ControlCharacters") + .CVar(CVAR_ENHANCEMENT("Fixes.ControlCharacters")) .Options(CheckboxOptions().Tooltip("Fixes certain control characters not functioning properly " "depending on their position within the text.")); AddWidget(path, "Fix Ikana Great Fairy Fountain Color", WIDGET_CVAR_CHECKBOX) - .CVar("gFixes.FixIkanaGreatFairyFountainColor") + .CVar(CVAR_ENHANCEMENT("Fixes.FixIkanaGreatFairyFountainColor")) .Options(CheckboxOptions().Tooltip( "Fixes a bug that results in the Ikana Great Fairy fountain looking green instead of " "yellow, this was fixed in the EU version.")); AddWidget(path, "Fix Texture overflow OOB", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Fixes.FixTexturesOOB") + .CVar(CVAR_ENHANCEMENT("Fixes.FixTexturesOOB")) .Options(CheckboxOptions() .Tooltip("Fixes textures that normally overflow to be patched with the correct size or format.") .DefaultValue(true)) .Callback([](WidgetInfo& info) { GfxPatcher_ApplyOverflowTexturePatches(); }); AddWidget(path, "Fix Completed Heart Container Audio", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Fixes.CompletedHeartContainerAudio") + .CVar(CVAR_ENHANCEMENT("Fixes.CompletedHeartContainerAudio")) .Options(CheckboxOptions().Tooltip( "Fixes a bug that results in the wrong audio playing upon receiving a 4th piece of heart to " "fill a new heart container.")); @@ -1428,10 +1429,10 @@ void BenMenu::AddEnhancements() { AddSidebarEntry("Enhancements", "Restorations", 3); AddWidget(path, "Restorations", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Constant Distance Backflips and Sidehops", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Restorations.ConstantFlipsHops") + .CVar(CVAR_ENHANCEMENT("Restorations.ConstantFlipsHops")) .Options(CheckboxOptions().Tooltip("Backflips and Sidehops travel a constant distance as they did in OoT.")); AddWidget(path, "Power Crouch Stab", WIDGET_CVAR_COMBOBOX) - .CVar("gEnhancements.Restorations.PowerCrouchStab") + .CVar(CVAR_ENHANCEMENT("Restorations.PowerCrouchStab")) .Options( ComboboxOptions() .Tooltip("Crouch stabs will use the power of Link's previous melee attack.\n" @@ -1442,21 +1443,21 @@ void BenMenu::AddEnhancements() { .DefaultIndex(0) .ComboVec(&powerCrouchStabOptions)); AddWidget(path, "Side Rolls", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Restorations.SideRoll") + .CVar(CVAR_ENHANCEMENT("Restorations.SideRoll")) .Options(CheckboxOptions().Tooltip("Restores side rolling from OoT.")); AddWidget(path, "Faster Swim", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Restorations.OoTFasterSwim") + .CVar(CVAR_ENHANCEMENT("Restorations.OoTFasterSwim")) .Options(CheckboxOptions().Tooltip("Restores the ability to swim faster by spamming the B button, as in OoT.")); AddWidget(path, "Tatl ISG", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Restorations.TatlISG") + .CVar(CVAR_ENHANCEMENT("Restorations.TatlISG")) .Options(CheckboxOptions().Tooltip("Restores Navi ISG from OoT, but now with Tatl.")); AddWidget(path, "Woodfall Mountain Appearance", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Restorations.WoodfallMountainAppearance") + .CVar(CVAR_ENHANCEMENT("Restorations.WoodfallMountainAppearance")) .Options(CheckboxOptions().Tooltip("Restores the appearance of Woodfall mountain to not look poisoned " "when viewed from Termina Field after clearing Woodfall Temple\n\n" "Requires a scene reload to take effect.")); AddWidget(path, "Bonk Collision", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Restorations.BonkCollision") + .CVar(CVAR_ENHANCEMENT("Restorations.BonkCollision")) .Options( CheckboxOptions().Tooltip("Corrects rolls to allow bonking trees near the end of the roll, as in OoT.")); AddWidget(path, "Simulated Input Lag", WIDGET_CVAR_SLIDER_INT) @@ -1467,7 +1468,7 @@ void BenMenu::AddEnhancements() { .Max(6) .DefaultValue(0)); AddWidget(path, "Pause Buffer Input Window", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Restorations.PauseBufferWindow") + .CVar(CVAR_ENHANCEMENT("Restorations.PauseBufferWindow")) .Options(IntSliderOptions() .Tooltip("Amount of time in frames you have to buffer an input while unpausing the game. Original " "hardware is around 20.") @@ -1480,25 +1481,25 @@ void BenMenu::AddEnhancements() { AddSidebarEntry("Enhancements", "Difficulty Options", 3); AddWidget(path, "Combat", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Hyper Enemies", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.DifficultyOptions.HyperEnemies") + .CVar(CVAR_ENHANCEMENT("DifficultyOptions.HyperEnemies")) .Options(CheckboxOptions().Tooltip("Double the rate at which enemies are updated, making them more difficult")); AddWidget(path, "Damage Multiplier", WIDGET_CVAR_COMBOBOX) - .CVar("gEnhancements.DifficultyOptions.DamageMultiplier") + .CVar(CVAR_ENHANCEMENT("DifficultyOptions.DamageMultiplier")) .Options(ComboboxOptions() .Tooltip("Adjusts the amount of damage Link takes from all sources.") .ComboMap(&damageMultiplierOptions)); AddWidget(path, "Permanent Heart Loss", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.DifficultyOptions.PermanentHeartLoss") + .CVar(CVAR_ENHANCEMENT("DifficultyOptions.PermanentHeartLoss")) .Options(CheckboxOptions().Tooltip( "When you lose 4 quarters of a heart you will permanently lose that heart container.\n\nDisabling this " "after the fact will not restore any received heart containers.")); AddWidget(path, "Delete File on Death", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.DifficultyOptions.DeleteFileOnDeath") + .CVar(CVAR_ENHANCEMENT("DifficultyOptions.DeleteFileOnDeath")) .Options(CheckboxOptions().Tooltip("Dying will delete your file\n\n " ICON_FA_EXCLAMATION_TRIANGLE " WARNING " ICON_FA_EXCLAMATION_TRIANGLE "\nTHIS IS NOT REVERSIBLE\nUSE AT YOUR OWN RISK!")); AddWidget(path, "Jinxed Timer: %d seconds", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.DifficultyOptions.JinxedTimer") + .CVar(CVAR_ENHANCEMENT("DifficultyOptions.JinxedTimer")) .Options( IntSliderOptions() .Tooltip("Set the duration of the Jinxed effect. Setting it to 0 will prevent the effect entirely.") @@ -1509,42 +1510,42 @@ void BenMenu::AddEnhancements() { path.column = SECTION_COLUMN_2; AddWidget(path, "Minigames", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Bombers Hide-and-Seek Count", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Minigames.BombersHideAndSeek") + .CVar(CVAR_ENHANCEMENT("Minigames.BombersHideAndSeek")) .Options(IntSliderOptions() .Tooltip("Sets the number of Bomber Kids you have to find to complete the hide-and-seek game.") .Min(1) .Max(5) .DefaultValue(5)); AddWidget(path, "Swordsman School Winning Score", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Minigames.SwordsmanSchoolScore") + .CVar(CVAR_ENHANCEMENT("Minigames.SwordsmanSchoolScore")) .Options(IntSliderOptions() .Tooltip("Sets the score required to win the Swordsman School.") .Min(1) .Max(30) .DefaultValue(30)); AddWidget(path, "Honey & Darling Day 1 (Bombchus)", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Minigames.HoneyAndDarlingDay1") + .CVar(CVAR_ENHANCEMENT("Minigames.HoneyAndDarlingDay1")) .Options(IntSliderOptions() .Tooltip("Sets the score required to win the Honey & Darling minigame on Day 1.") .Min(1) .Max(8) .DefaultValue(8)); AddWidget(path, "Honey & Darling Day 2 (Bombs)", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Minigames.HoneyAndDarlingDay2") + .CVar(CVAR_ENHANCEMENT("Minigames.HoneyAndDarlingDay2")) .Options(IntSliderOptions() .Tooltip("Sets the score required to win the Honey & Darling minigame on Day 2.") .Min(1) .Max(8) .DefaultValue(8)); AddWidget(path, "Honey & Darling Day 3 (Bow)", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Minigames.HoneyAndDarlingDay3") + .CVar(CVAR_ENHANCEMENT("Minigames.HoneyAndDarlingDay3")) .Options(IntSliderOptions() .Tooltip("Sets the score required to win the Honey & Darling minigame on Day 3.") .Min(1) .Max(16) .DefaultValue(16)); AddWidget(path, "Town Archery Perfect Score", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Minigames.TownArcheryScore") + .CVar(CVAR_ENHANCEMENT("Minigames.TownArcheryScore")) .Options(IntSliderOptions() .Tooltip("Sets the score required to win the Town Archery minigame. Reaching this score will end " "the minigame.") @@ -1552,7 +1553,7 @@ void BenMenu::AddEnhancements() { .Max(50) .DefaultValue(50)); AddWidget(path, "Swamp Archery Perfect Score", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Minigames.SwampArcheryScore") + .CVar(CVAR_ENHANCEMENT("Minigames.SwampArcheryScore")) .Options(IntSliderOptions() .Tooltip("Sets the score required to win the Swamp Archery minigame, if this is changed it also " "speeds up the final score counting.") @@ -1560,28 +1561,28 @@ void BenMenu::AddEnhancements() { .Max(2180) .DefaultValue(2180)); AddWidget(path, "Romani Target Practice Winning Score", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Minigames.RomaniTargetPractice") + .CVar(CVAR_ENHANCEMENT("Minigames.RomaniTargetPractice")) .Options(IntSliderOptions() .Tooltip("Sets the score required to win Romani's Target Practice.") .Min(1) .Max(10) .DefaultValue(10)); AddWidget(path, "Always Win Doggy Race", WIDGET_CVAR_COMBOBOX) - .CVar("gEnhancements.Minigames.AlwaysWinDoggyRace") + .CVar(CVAR_ENHANCEMENT("Minigames.AlwaysWinDoggyRace")) .Options(ComboboxOptions().Tooltip("Makes the Doggy Race easier to win.").ComboVec(&alwaysWinDoggyraceOptions)); AddWidget(path, "Cucco Shack Cucco Count", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Minigames.CuccoShackCuccoCount") + .CVar(CVAR_ENHANCEMENT("Minigames.CuccoShackCuccoCount")) .Options(IntSliderOptions() .Tooltip("Choose how many cuccos you need to raise to make Grog happy.") .Min(1) .Max(10) .DefaultValue(10)); AddWidget(path, "Skip Gorman Horse Race", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Minigames.SkipHorseRace") + .CVar(CVAR_ENHANCEMENT("Minigames.SkipHorseRace")) .Options(CheckboxOptions().Tooltip("Instantly win the Gorman Horse Race")); AddWidget(path, "Beaver Race Rings Collected", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Minigames.BeaverRaceRingsCollected") + .CVar(CVAR_ENHANCEMENT("Minigames.BeaverRaceRingsCollected")) .Options(IntSliderOptions() .Tooltip("Sets the number of rings required for both Beavers. If the slider is set to 20, the " "first Beaver will require 20 rings, and the second Beaver will require 25 rings, which " @@ -1590,7 +1591,7 @@ void BenMenu::AddEnhancements() { .Max(20) .DefaultValue(20)); AddWidget(path, "Goron Race", WIDGET_CVAR_COMBOBOX) - .CVar("gEnhancements.DifficultyOptions.GoronRace") + .CVar(CVAR_ENHANCEMENT("DifficultyOptions.GoronRace")) .Options(ComboboxOptions() .Tooltip("Set CPU behavior for the Goron Race:\n" "- Vanilla: Gorons ahead of Link slow down, and Gorons behind speed up.\n" @@ -1599,7 +1600,7 @@ void BenMenu::AddEnhancements() { .DefaultIndex(GoronRaceDifficultyOptions::GORON_RACE_DIFFICULTY_VANILLA) .ComboVec(&goronRaceDifficultyOptions)); AddWidget(path, "Swamp Boat Archery Target Score", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Minigames.BoatArcheryScore") + .CVar(CVAR_ENHANCEMENT("Minigames.BoatArcheryScore")) .Options(IntSliderOptions() .Tooltip("Sets the initial target score of the Swamp Boat Archery minigame. The target score " "gets set the first time you play the minigame in each cycle.") @@ -1607,7 +1608,7 @@ void BenMenu::AddEnhancements() { .Max(50) .DefaultValue(20)); AddWidget(path, "Koume's Health", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.Minigames.BoatArcheryHealth") + .CVar(CVAR_ENHANCEMENT("Minigames.BoatArcheryHealth")) .PreFunc([](WidgetInfo& info) { if (mBenMenu->disabledMap.at(DISABLE_FOR_KOUME_INVINCIBLE).active) { info.activeDisables.push_back(DISABLE_FOR_KOUME_INVINCIBLE); @@ -1620,24 +1621,24 @@ void BenMenu::AddEnhancements() { .Max(30) .DefaultValue(10)); AddWidget(path, "Invincible", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.Minigames.BoatArcheryInvincible") + .CVar(CVAR_ENHANCEMENT("Minigames.BoatArcheryInvincible")) .Options(CheckboxOptions().Tooltip("Koume's health does not decrease when hit.")); path.column = SECTION_COLUMN_3; AddWidget(path, "Other", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Lower Bank Reward Thresholds", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.DifficultyOptions.LowerBankRewardThresholds") + .CVar(CVAR_ENHANCEMENT("DifficultyOptions.LowerBankRewardThresholds")) .Options( CheckboxOptions().Tooltip("Reduces the amount of rupees required to receive the rewards from the bank.\n" "From: 200 -> 1000 -> 5000\n" "To: 100 -> 500 -> 1000")); AddWidget(path, "Disable Takkuri Steal", WIDGET_CVAR_CHECKBOX) - .CVar("gEnhancements.DifficultyOptions.DisableTakkuriSteal") + .CVar(CVAR_ENHANCEMENT("DifficultyOptions.DisableTakkuriSteal")) .Options(CheckboxOptions().Tooltip( "Prevents the Takkuri from stealing key items like bottles and swords. It may still steal " "other items.")); AddWidget(path, "Deku Guard Search Balls", WIDGET_CVAR_COMBOBOX) - .CVar("gEnhancements.DifficultyOptions.DekuGuardSearchBalls") + .CVar(CVAR_ENHANCEMENT("DifficultyOptions.DekuGuardSearchBalls")) .Options( ComboboxOptions() .Tooltip("Choose when to show the Deku Palace Guards' search balls:\n" @@ -1647,7 +1648,7 @@ void BenMenu::AddEnhancements() { .DefaultIndex(DekuGuardSearchBallsOptions::DEKU_GUARD_SEARCH_BALLS_NIGHT_ONLY) .ComboVec(&dekuGuardSearchBallsOptions)); AddWidget(path, "Gibdo Trade Sequence Options", WIDGET_CVAR_COMBOBOX) - .CVar("gEnhancements.DifficultyOptions.GibdoTradeSequence") + .CVar(CVAR_ENHANCEMENT("DifficultyOptions.GibdoTradeSequence")) .Options( ComboboxOptions() .Tooltip("Changes the way the Gibdo Trade Sequence works:\n" @@ -1658,7 +1659,7 @@ void BenMenu::AddEnhancements() { .DefaultIndex(GibdoTradeSequenceOptions::GIBDO_TRADE_SEQUENCE_VANILLA) .ComboVec(&gibdoTradeSequenceOptions)); AddWidget(path, "Hidden Grottos Visibility", WIDGET_CVAR_COMBOBOX) - .CVar("gEnhancements.DifficultyOptions.HiddenGrottosVisibility") + .CVar(CVAR_ENHANCEMENT("DifficultyOptions.HiddenGrottosVisibility")) .Options( ComboboxOptions() .Tooltip( @@ -1670,7 +1671,7 @@ void BenMenu::AddEnhancements() { .DefaultIndex(HiddenGrottosVisibilityOptions::HIDDEN_GROTTOS_VISIBLITY_OFF) .ComboVec(&maskOfTruthGrottoOptions)); AddWidget(path, "Frog Choir Count", WIDGET_CVAR_SLIDER_INT) - .CVar("gEnhancements.DifficultyOptions.FrogChoirCount") + .CVar(CVAR_ENHANCEMENT("DifficultyOptions.FrogChoirCount")) .Options(IntSliderOptions() .Tooltip("Choose how many frogs you need to save for the choir performance.") .Min(1) @@ -1681,7 +1682,7 @@ void BenMenu::AddEnhancements() { path = { "Enhancements", "HUD Editor", SECTION_COLUMN_1 }; AddSidebarEntry("Enhancements", "HUD Editor", 1); AddWidget(path, "Popout HUD Editor", WIDGET_WINDOW_BUTTON) - .CVar("gWindows.HudEditor") + .CVar(CVAR_WINDOW("HudEditor")) .WindowName("HUD Editor") .Options(ButtonOptions() .Tooltip("Enables the HUD Editor window, allowing you to modify your HUD.") @@ -1691,7 +1692,7 @@ void BenMenu::AddEnhancements() { path = { "Enhancements", "Cosmetic Editor", SECTION_COLUMN_1 }; AddSidebarEntry("Enhancements", "Cosmetic Editor", 1); AddWidget(path, "Popout Cosmetic Editor", WIDGET_WINDOW_BUTTON) - .CVar("gWindows.CosmeticEditor") + .CVar(CVAR_WINDOW("CosmeticEditor")) .WindowName("Cosmetic Editor") .Options(ButtonOptions() .Tooltip("Enables the Cosmetic Editor window, allowing you to modify various colors in the game.") @@ -1701,45 +1702,45 @@ void BenMenu::AddEnhancements() { path = { "Enhancements", "Item Tracker", SECTION_COLUMN_1 }; AddSidebarEntry("Enhancements", "Item Tracker", 1); AddWidget(path, "Popout Settings", WIDGET_WINDOW_BUTTON) - .CVar("gWindows.ItemTrackerSettings") + .CVar(CVAR_WINDOW("ItemTrackerSettings")) .WindowName("Item Tracker Settings"); // Timesplit Settings path = { "Enhancements", "Time Splits", SECTION_COLUMN_1 }; AddSidebarEntry("Enhancements", "Time Splits", 1); AddWidget(path, "Popout Timesplits Settings", WIDGET_WINDOW_BUTTON) - .CVar("gWindows.Timesplits.Settings") + .CVar(CVAR_WINDOW("Timesplits.Settings")) .WindowName("Time Splits Settings Window"); // Audio Editor path = { "Enhancements", "Audio Editor", SECTION_COLUMN_1 }; AddSidebarEntry("Enhancements", "Audio Editor", 1); AddWidget(path, "Popout Audio Editor", WIDGET_WINDOW_BUTTON) - .CVar("gWindows.AudioEditor") + .CVar(CVAR_WINDOW("AudioEditor")) .WindowName("Audio Editor"); } void BenMenu::AddDevTools() { - AddMenuEntry("Dev Tools", "gSettings.Menu.DevToolsSidebarSection"); + AddMenuEntry("Dev Tools", CVAR_SETTING("Menu.DevToolsSidebarSection")); AddSidebarEntry("Dev Tools", "General", 3); WidgetPath path = { "Dev Tools", "General", SECTION_COLUMN_1 }; AddWidget(path, "Popout Menu", WIDGET_CVAR_CHECKBOX) - .CVar("gSettings.Menu.Popout") + .CVar(CVAR_SETTING("Menu.Popout")) .Options(CheckboxOptions().Tooltip("Changes the menu display from overlay to windowed.")); AddWidget(path, "Debug Mode", WIDGET_CVAR_CHECKBOX) - .CVar("gDeveloperTools.DebugEnabled") + .CVar(CVAR_DEVELOPER_TOOLS("DebugEnabled")) .Options(CheckboxOptions().Tooltip("Enables Debug Mode, allowing the following:\n\n" "- Open debug warp menu with L + R + Z\n" "- Enable debug no-clip mode with L + D-Right\n" "- Open built-in debug inventory editor when paused with L\n" "- Saves created will inherit inventory from \"Debug Save File Mode\"")); AddWidget(path, "Better Map Select", WIDGET_CVAR_CHECKBOX) - .CVar("gDeveloperTools.BetterMapSelect.Enabled") + .CVar(CVAR_DEVELOPER_TOOLS("BetterMapSelect.Enabled")) .Options(CheckboxOptions().Tooltip( "Overrides the original map select with a translated, more user-friendly version.")) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_DEBUG_MODE_OFF).active; }); AddWidget(path, "Debug Save File Mode", WIDGET_CVAR_COMBOBOX) - .CVar("gDeveloperTools.DebugSaveFileMode") + .CVar(CVAR_DEVELOPER_TOOLS("DebugSaveFileMode")) .Options(ComboboxOptions() .Tooltip("Change the behavior of creating saves while debug mode is enabled:\n\n" "- Empty Save: The default 3 heart save file in first cycle.\n" @@ -1748,23 +1749,23 @@ void BenMenu::AddDevTools() { .ComboVec(&debugSaveOptions)) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_DEBUG_MODE_OFF).active; }); AddWidget(path, "Prevent Actor Update", WIDGET_CVAR_CHECKBOX) - .CVar("gDeveloperTools.PreventActorUpdate") + .CVar(CVAR_DEVELOPER_TOOLS("PreventActorUpdate")) .Options(CheckboxOptions().Tooltip("Prevents Actors from updating.")) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_DEBUG_MODE_OFF).active; }); AddWidget(path, "Prevent Actor Draw", WIDGET_CVAR_CHECKBOX) - .CVar("gDeveloperTools.PreventActorDraw") + .CVar(CVAR_DEVELOPER_TOOLS("PreventActorDraw")) .Options(CheckboxOptions().Tooltip("Prevents Actors from drawing.")) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_DEBUG_MODE_OFF).active; }); AddWidget(path, "Prevent Actor Init", WIDGET_CVAR_CHECKBOX) - .CVar("gDeveloperTools.PreventActorInit") + .CVar(CVAR_DEVELOPER_TOOLS("PreventActorInit")) .Options(CheckboxOptions().Tooltip("Prevents Actors from initializing.")) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_DEBUG_MODE_OFF).active; }); AddWidget(path, "Disable Object Dependency", WIDGET_CVAR_CHECKBOX) - .CVar("gDeveloperTools.DisableObjectDependency") + .CVar(CVAR_DEVELOPER_TOOLS("DisableObjectDependency")) .Options(CheckboxOptions().Tooltip("Disables dependencies when loading objects.")) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_DEBUG_MODE_OFF).active; }); AddWidget(path, "Log Level", WIDGET_CVAR_COMBOBOX) - .CVar("gDeveloperTools.LogLevel") + .CVar(CVAR_DEVELOPER_TOOLS("LogLevel")) .Options(ComboboxOptions() .Tooltip("The log level determines which messages are printed to the " "console. This does not affect the log file output.") @@ -1772,7 +1773,7 @@ void BenMenu::AddDevTools() { .DefaultIndex(defaultLogLevel)) .Callback([](WidgetInfo& info) { Ship::Context::GetInstance()->GetLogger()->set_level( - (spdlog::level::level_enum)CVarGetInteger("gDeveloperTools.LogLevel", defaultLogLevel)); + (spdlog::level::level_enum)CVarGetInteger(CVAR_DEVELOPER_TOOLS("LogLevel"), defaultLogLevel)); }) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_DEBUG_MODE_OFF).active; }); AddWidget(path, "Frame Advance", WIDGET_CHECKBOX) @@ -1791,7 +1792,7 @@ void BenMenu::AddDevTools() { }); AddWidget(path, "Advance 1", WIDGET_BUTTON) .Options(ButtonOptions().Tooltip("Advance 1 frame.").Size(Sizes::Inline)) - .Callback([](WidgetInfo& info) { CVarSetInteger("gDeveloperTools.FrameAdvanceTick", 1); }) + .Callback([](WidgetInfo& info) { CVarSetInteger(CVAR_DEVELOPER_TOOLS("FrameAdvanceTick"), 1); }) .PreFunc([](WidgetInfo& info) { info.isHidden = mBenMenu->disabledMap.at(DISABLE_FOR_FRAME_ADVANCE_OFF).active || mBenMenu->disabledMap.at(DISABLE_FOR_DEBUG_MODE_OFF).active; @@ -1804,7 +1805,7 @@ void BenMenu::AddDevTools() { }) .PostFunc([](WidgetInfo& info) { if (ImGui::IsItemActive()) { - CVarSetInteger("gDeveloperTools.FrameAdvanceTick", 1); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("FrameAdvanceTick"), 1); } }) .SameLine(true); @@ -1815,14 +1816,14 @@ void BenMenu::AddDevTools() { path = { "Dev Tools", "Collision Viewer", SECTION_COLUMN_1 }; AddSidebarEntry("Dev Tools", "Collision Viewer", 1); AddWidget(path, "Popout Collision Viewer", WIDGET_WINDOW_BUTTON) - .CVar("gWindows.CollisionViewer") + .CVar(CVAR_WINDOW("CollisionViewer")) .Options(ButtonOptions().Tooltip("Makes collision visible on screen.").Size(Sizes::Inline)) .WindowName("Collision Viewer"); path = { "Dev Tools", "Stats", SECTION_COLUMN_1 }; AddSidebarEntry("Dev Tools", "Stats", 1); AddWidget(path, "Popout Stats", WIDGET_WINDOW_BUTTON) - .CVar("gOpenWindows.Stats") + .CVar(CVAR_WINDOW("Stats")) .Options(ButtonOptions().Tooltip( "Shows the Stats window, with your FPS and frametimes, and the OS you're playing on.")) .WindowName("Stats"); @@ -1830,7 +1831,7 @@ void BenMenu::AddDevTools() { path = { "Dev Tools", "Console", SECTION_COLUMN_1 }; AddSidebarEntry("Dev Tools", "Console", 1); AddWidget(path, "Popout Console", WIDGET_WINDOW_BUTTON) - .CVar("gOpenWindows.Console") + .CVar(CVAR_WINDOW("Console")) .Options(ButtonOptions().Tooltip( "Enables the Console window, allowing you to input commands. Type help for some examples.")) .WindowName("Console"); @@ -1838,7 +1839,7 @@ void BenMenu::AddDevTools() { path = { "Dev Tools", "Gfx Debugger", SECTION_COLUMN_1 }; AddSidebarEntry("Dev Tools", "Gfx Debugger", 1); AddWidget(path, "Popout Gfx Debugger", WIDGET_WINDOW_BUTTON) - .CVar("gOpenWindows.GfxDebugger") + .CVar(CVAR_WINDOW("GfxDebugger")) .Options(ButtonOptions().Tooltip( "Enables the Gfx Debugger window, allowing you to input commands, type help for some examples.")) .WindowName("GfxDebuggerWindow"); @@ -1846,41 +1847,41 @@ void BenMenu::AddDevTools() { path = { "Dev Tools", "Hook Debugger", SECTION_COLUMN_1 }; AddSidebarEntry("Dev Tools", "Hook Debugger", 1); AddWidget(path, "Popout Hook Debugger", WIDGET_WINDOW_BUTTON) - .CVar("gWindows.HookDebugger") + .CVar(CVAR_WINDOW("HookDebugger")) .Options(ButtonOptions().Tooltip("Enables the Hook Debugger window, for viewing info about registered hooks.")) .WindowName("Hook Debugger"); path = { "Dev Tools", "Save Editor", SECTION_COLUMN_1 }; AddSidebarEntry("Dev Tools", "Save Editor", 1); AddWidget(path, "Popout Save Editor", WIDGET_WINDOW_BUTTON) - .CVar("gWindows.SaveEditor") + .CVar(CVAR_WINDOW("SaveEditor")) .Options(ButtonOptions().Tooltip("Enables the Save Editor window, allowing you to edit your save file.")) .WindowName("Save Editor"); path = { "Dev Tools", "Actor Viewer", SECTION_COLUMN_1 }; AddSidebarEntry("Dev Tools", "Actor Viewer", 1); AddWidget(path, "Popout Actor Viewer", WIDGET_WINDOW_BUTTON) - .CVar("gWindows.ActorViewer") + .CVar(CVAR_WINDOW("ActorViewer")) .Options(ButtonOptions().Tooltip("Enables the Actor Viewer window, allowing you to view actors in the world.")) .WindowName("Actor Viewer"); path = { "Dev Tools", "Event Log", SECTION_COLUMN_1 }; AddSidebarEntry("Dev Tools", "Event Log", 1); AddWidget(path, "Popout Event Log", WIDGET_WINDOW_BUTTON) - .CVar("gWindows.EventLog") + .CVar(CVAR_WINDOW("EventLog")) .Options(ButtonOptions().Tooltip("Enables the Event Log window.")) .WindowName("Event Log"); path = { "Dev Tools", "DL Viewer", SECTION_COLUMN_1 }; AddSidebarEntry("Dev Tools", "DL Viewer", 1); AddWidget(path, "Popout DL Viewer", WIDGET_WINDOW_BUTTON) - .CVar("gWindows.DLViewer") + .CVar(CVAR_WINDOW("DLViewer")) .Options(ButtonOptions().Tooltip("Enables the DL Viewer window for inspecting and editing display lists.")) .WindowName("DL Viewer"); path = { "Dev Tools", "Message Viewer", SECTION_COLUMN_1 }; AddSidebarEntry("Dev Tools", "Message Viewer", 1); AddWidget(path, "Popout Message Viewer", WIDGET_WINDOW_BUTTON) - .CVar("gWindows.MessageViewer") + .CVar(CVAR_WINDOW("MessageViewer")) .Options(ButtonOptions().Tooltip("Enables the Message Viewer window for testing in-game messages.")) .WindowName("Message Viewer"); } @@ -1895,7 +1896,7 @@ void BenMenu::InitElement() { AddEnhancements(); AddDevTools(); - if (CVarGetInteger("gSettings.Menu.SidebarSearch", 0)) { + if (CVarGetInteger(CVAR_SETTING("Menu.SidebarSearch"), 0)) { InsertSidebarSearch(); } @@ -1906,44 +1907,44 @@ void BenMenu::InitElement() { disabledMap = { { DISABLE_FOR_CAMERAS_OFF, { [](disabledInfo& info) -> bool { - return !CVarGetInteger("gEnhancements.Camera.DebugCam.Enable", 0) && - !CVarGetInteger("gEnhancements.Camera.FreeLook.Enable", 0); + return !CVarGetInteger(CVAR_ENHANCEMENT("Camera.DebugCam.Enable"), 0) && + !CVarGetInteger(CVAR_ENHANCEMENT("Camera.FreeLook.Enable"), 0); }, "Both Debug Camera and Free Look are Disabled" } }, { DISABLE_FOR_DEBUG_CAM_ON, - { [](disabledInfo& info) -> bool { return CVarGetInteger("gEnhancements.Camera.DebugCam.Enable", 0); }, + { [](disabledInfo& info) -> bool { return CVarGetInteger(CVAR_ENHANCEMENT("Camera.DebugCam.Enable"), 0); }, "Debug Camera is Enabled" } }, { DISABLE_FOR_DEBUG_CAM_OFF, - { [](disabledInfo& info) -> bool { return !CVarGetInteger("gEnhancements.Camera.DebugCam.Enable", 0); }, + { [](disabledInfo& info) -> bool { return !CVarGetInteger(CVAR_ENHANCEMENT("Camera.DebugCam.Enable"), 0); }, "Debug Camera is Disabled" } }, { DISABLE_FOR_FREE_LOOK_ON, - { [](disabledInfo& info) -> bool { return CVarGetInteger("gEnhancements.Camera.FreeLook.Enable", 0); }, + { [](disabledInfo& info) -> bool { return CVarGetInteger(CVAR_ENHANCEMENT("Camera.FreeLook.Enable"), 0); }, "Free Look is Enabled" } }, { DISABLE_FOR_FREE_LOOK_OFF, - { [](disabledInfo& info) -> bool { return !CVarGetInteger("gEnhancements.Camera.FreeLook.Enable", 0); }, + { [](disabledInfo& info) -> bool { return !CVarGetInteger(CVAR_ENHANCEMENT("Camera.FreeLook.Enable"), 0); }, "Free Look is Disabled" } }, { DISABLE_FOR_GYRO_OFF, { [](disabledInfo& info) -> bool { - return !CVarGetInteger("gEnhancements.Camera.FirstPerson.GyroEnabled", 0); + return !CVarGetInteger(CVAR_ENHANCEMENT("Camera.FirstPerson.GyroEnabled"), 0); }, "Gyro Aiming is Disabled" } }, { DISABLE_FOR_GYRO_ON, { [](disabledInfo& info) -> bool { - return CVarGetInteger("gEnhancements.Camera.FirstPerson.GyroEnabled", 0); + return CVarGetInteger(CVAR_ENHANCEMENT("Camera.FirstPerson.GyroEnabled"), 0); }, "Gyro Aiming is Enabled" } }, { DISABLE_FOR_RIGHT_STICK_OFF, { [](disabledInfo& info) -> bool { - return !CVarGetInteger("gEnhancements.Camera.FirstPerson.RightStickEnabled", 0); + return !CVarGetInteger(CVAR_ENHANCEMENT("Camera.FirstPerson.RightStickEnabled"), 0); }, "Right Stick Aiming is Disabled" } }, { DISABLE_FOR_AUTO_SAVE_OFF, - { [](disabledInfo& info) -> bool { return !CVarGetInteger("gEnhancements.Saving.Autosave", 0); }, + { [](disabledInfo& info) -> bool { return !CVarGetInteger(CVAR_ENHANCEMENT("Saving.Autosave"), 0); }, "AutoSave is Disabled" } }, { DISABLE_FOR_NULL_PLAY_STATE, { [](disabledInfo& info) -> bool { return gPlayState == NULL; }, "Not in game" } }, { DISABLE_FOR_DEBUG_MODE_OFF, - { [](disabledInfo& info) -> bool { return !CVarGetInteger("gDeveloperTools.DebugEnabled", 0); }, + { [](disabledInfo& info) -> bool { return !CVarGetInteger(CVAR_DEVELOPER_TOOLS("DebugEnabled"), 0); }, "Debug Mode is Disabled" } }, { DISABLE_FOR_NO_VSYNC, { [](disabledInfo& info) -> bool { @@ -1973,11 +1974,11 @@ void BenMenu::InitElement() { }, "Not Available on DirectX" } }, { DISABLE_FOR_MATCH_REFRESH_RATE_ON, - { [](disabledInfo& info) -> bool { return CVarGetInteger("gMatchRefreshRate", 0); }, + { [](disabledInfo& info) -> bool { return CVarGetInteger(CVAR_SETTING("Graphics.MatchRefreshRate"), 0); }, "Match Refresh Rate is Enabled" } }, { DISABLE_FOR_MOTION_BLUR_MODE, { [](disabledInfo& info) -> bool { - info.value = CVarGetInteger("gEnhancements.Graphics.MotionBlur.Mode", 0); + info.value = CVarGetInteger(CVAR_ENHANCEMENT("Graphics.MotionBlur.Mode"), 0); return !info.value; }, "Motion Blur Mode mismatch" } }, @@ -1987,34 +1988,38 @@ void BenMenu::InitElement() { { [](disabledInfo& info) -> bool { return !(gPlayState != nullptr && gPlayState->frameAdvCtx.enabled); }, "Frame Advance is Disabled" } }, { DISABLE_FOR_INTRO_SKIP_OFF, - { [](disabledInfo& info) -> bool { return !CVarGetInteger("gEnhancements.Cutscenes.SkipIntroSequence", 0); }, + { [](disabledInfo& info) -> bool { + return !CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipIntroSequence"), 0); + }, "Intro Skip Not Selected" } }, { DISABLE_FOR_ADVANCED_RESOLUTION_ON, - { [](disabledInfo& info) -> bool { return CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".Enabled", 0); }, + { [](disabledInfo& info) -> bool { + return CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.Enabled"), 0); + }, "Advanced Resolution Enabled" } }, { DISABLE_FOR_VERTICAL_RES_TOGGLE_ON, { [](disabledInfo& info) -> bool { - return CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".VerticalResolutionToggle", 0); + return CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.VerticalResolutionToggle"), 0); }, "Vertical Resolution Toggle Enabled" } }, { DISABLE_FOR_LOW_RES_MODE_ON, { [](disabledInfo& info) -> bool { return CVarGetInteger(CVAR_LOW_RES_MODE, 0); }, "N64 Mode is enabled" } }, { DISABLE_FOR_ADVANCED_RESOLUTION_OFF, - { [](disabledInfo& info) -> bool { return !CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".Enabled", 0); }, + { [](disabledInfo& info) -> bool { + return !CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.Enabled"), 0); + }, "Advanced Resolution is Disabled" } }, { DISABLE_FOR_VERTICAL_RESOLUTION_OFF, { [](disabledInfo& info) -> bool { - return !CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".VerticalResolutionToggle", 0); + return !CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.VerticalResolutionToggle"), 0); }, "Vertical Resolution Toggle is Off" } }, { DISABLE_FOR_LINKS_VOICE_PITCH_MULTIPLIER_OFF, - { [](disabledInfo& info) -> bool { - return !CVarGetInteger("gAudioEditor.LinkVoiceFreqMultiplier.Enable", 0); - }, + { [](disabledInfo& info) -> bool { return !CVarGetInteger(CVAR_AUDIO("LinkVoiceFreqMultiplier.Enable"), 0); }, "Enable Link's Voice Pitch Multiplier is Disabled" } }, { DISABLE_FOR_KOUME_INVINCIBLE, { [](disabledInfo& info) -> bool { - return CVarGetInteger("gEnhancements.Minigames.BoatArcheryInvincible", 0); + return CVarGetInteger(CVAR_ENHANCEMENT("Minigames.BoatArcheryInvincible"), 0); }, "Koume is Invincible" } }, }; diff --git a/mm/2s2h/BenGui/InputViewer.cpp b/mm/2s2h/BenGui/InputViewer.cpp index 4dead5bce7..863fba2d9f 100644 --- a/mm/2s2h/BenGui/InputViewer.cpp +++ b/mm/2s2h/BenGui/InputViewer.cpp @@ -10,6 +10,7 @@ #include "2s2h/BenGui/UIWidgets.hpp" #include "2s2h/BenGui/BenGui.hpp" +#include "2s2h/cvar_prefixes.h" using namespace UIWidgets; @@ -64,7 +65,7 @@ void InputViewer::Draw() { } void InputViewer::DrawElement() { - if (CVarGetInteger("gWindows.InputViewer", 0)) { + if (CVarGetInteger(CVAR_WINDOW("InputViewer"), 0)) { static bool sButtonTexturesLoaded = false; if (!sButtonTexturesLoaded) { Ship::Context::GetInstance()->GetWindow()->GetGui()->LoadTextureFromRawImage( diff --git a/mm/2s2h/BenGui/InputViewer.h b/mm/2s2h/BenGui/InputViewer.h index 2d587683cf..412554d5e2 100644 --- a/mm/2s2h/BenGui/InputViewer.h +++ b/mm/2s2h/BenGui/InputViewer.h @@ -2,8 +2,6 @@ #include -#define CVAR_INPUT_VIEWER(var) "gInputViewer." var - typedef enum { BUTTON_OUTLINE_ALWAYS_SHOWN, BUTTON_OUTLINE_NOT_PRESSED, diff --git a/mm/2s2h/BenGui/Menu.cpp b/mm/2s2h/BenGui/Menu.cpp index 510888b378..82c21697f6 100644 --- a/mm/2s2h/BenGui/Menu.cpp +++ b/mm/2s2h/BenGui/Menu.cpp @@ -10,6 +10,7 @@ #include "variables.h" #include #include +#include "2s2h/cvar_prefixes.h" extern "C" { #include "z64.h" @@ -123,17 +124,17 @@ Menu::Menu(const std::string& cVar, const std::string& name, uint8_t searchSideb } void Menu::InitElement() { - popped = CVarGetInteger("gSettings.Menu.Popout", 0); - poppedSize.x = CVarGetInteger("gSettings.Menu.PoppedWidth", 1280); - poppedSize.y = CVarGetInteger("gSettings.Menu.PoppedHeight", 800); - poppedPos.x = CVarGetInteger("gSettings.Menu.PoppedPos.x", 0); - poppedPos.y = CVarGetInteger("gSettings.Menu.PoppedPos.y", 0); + popped = CVarGetInteger(CVAR_SETTING("Menu.Popout"), 0); + poppedSize.x = CVarGetInteger(CVAR_SETTING("Menu.PoppedWidth"), 1280); + poppedSize.y = CVarGetInteger(CVAR_SETTING("Menu.PoppedHeight"), 800); + poppedPos.x = CVarGetInteger(CVAR_SETTING("Menu.PoppedPos.x"), 0); + poppedPos.y = CVarGetInteger(CVAR_SETTING("Menu.PoppedPos.y"), 0); UpdateWindowBackendObjects(); } void Menu::UpdateElement() { - menuThemeIndex = static_cast(CVarGetInteger("gSettings.Menu.Theme", defaultThemeIndex)); + menuThemeIndex = static_cast(CVarGetInteger(CVAR_SETTING("Menu.Theme"), defaultThemeIndex)); } bool ModernMenuSidebarEntry(std::string label) { @@ -185,7 +186,7 @@ bool ModernMenuHeaderEntry(std::string label) { } uint32_t Menu::DrawSearchResults(std::string& menuSearchText) { - auto menuThemeIndex = static_cast(CVarGetInteger("gSettings.Menu.Theme", defaultThemeIndex)); + auto menuThemeIndex = static_cast(CVarGetInteger(CVAR_SETTING("Menu.Theme"), defaultThemeIndex)); ImGui::BeginChild("Search Results"); int searchCount = 0; for (auto& menuLabel : menuOrder) { @@ -482,7 +483,7 @@ void Menu::MenuDrawItem(WidgetInfo& widget, uint32_t width, UIWidgets::Colors me menuSearch.Clear(); } ImGui::SameLine(); - if (CVarGetInteger("gSettings.Menu.SearchAutofocus", 0) && + if (CVarGetInteger(CVAR_SETTING("Menu.SearchAutofocus"), 0) && ImGui::IsWindowFocused(ImGuiFocusedFlags_RootAndChildWindows) && !ImGui::IsAnyItemActive() && !ImGui::IsMouseClicked(0)) { ImGui::SetKeyboardFocusHere(0); @@ -528,12 +529,12 @@ void Menu::DrawElement() { for (auto& [reason, info] : disabledMap) { info.active = info.evaluation(info); } - auto menuThemeIndex = static_cast(CVarGetInteger("gSettings.Menu.Theme", defaultThemeIndex)); + auto menuThemeIndex = static_cast(CVarGetInteger(CVAR_SETTING("Menu.Theme"), defaultThemeIndex)); windowHeight = ImGui::GetMainViewport()->WorkSize.y; windowWidth = ImGui::GetMainViewport()->WorkSize.x; auto windowFlags = ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoSavedSettings; - bool popout = CVarGetInteger("gSettings.Menu.Popout", 0) && allowPopout; + bool popout = CVarGetInteger(CVAR_SETTING("Menu.Popout"), 0) && allowPopout; if (popout) { windowFlags = ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoDocking; } @@ -545,8 +546,8 @@ void Menu::DrawElement() { ImGuiCond_Always); ImGui::SetNextWindowPos(poppedPos, ImGuiCond_Always); } else if (popped) { - CVarSetFloat("gSettings.Menu.PoppedWidth", poppedSize.x); - CVarSetFloat("gSettings.Menu.PoppedHeight", poppedSize.y); + CVarSetFloat(CVAR_SETTING("Menu.PoppedWidth"), poppedSize.x); + CVarSetFloat(CVAR_SETTING("Menu.PoppedHeight"), poppedSize.y); CVarSave(); } } @@ -569,11 +570,11 @@ void Menu::DrawElement() { if (!popout) { ImGui::PopStyleVar(); } - CVarSetInteger("gSettings.Menu.Popout", popped); - CVarSetFloat("gSettings.Menu.PoppedWidth", poppedSize.x); - CVarSetFloat("gSettings.Menu.PoppedHeight", poppedSize.y); - CVarSetFloat("gSettings.Menu.PoppedPos.x", poppedSize.x); - CVarSetFloat("gSettings.Menu.PoppedPos.y", poppedSize.y); + CVarSetInteger(CVAR_SETTING("Menu.Popout"), popped); + CVarSetFloat(CVAR_SETTING("Menu.PoppedWidth"), poppedSize.x); + CVarSetFloat(CVAR_SETTING("Menu.PoppedHeight"), poppedSize.y); + CVarSetFloat(CVAR_SETTING("Menu.PoppedPos.x"), poppedSize.x); + CVarSetFloat(CVAR_SETTING("Menu.PoppedPos.y"), poppedSize.y); CVarSave(); ImGui::End(); return; @@ -586,7 +587,7 @@ void Menu::DrawElement() { windowWidth = window->WorkRect.GetWidth(); ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(10.0f, 8.0f)); - const char* headerCvar = "gSettings.Menu.ActiveHeader"; + const char* headerCvar = CVAR_SETTING("Menu.ActiveHeader"); std::string headerIndex = CVarGetString(headerCvar, "Settings"); if (GetVectorIndexOf(menuOrder, headerIndex) == menuOrder.size()) { headerIndex = menuOrder.at(0); @@ -595,7 +596,7 @@ void Menu::DrawElement() { float centerX = pos.x + windowWidth / 2 - (style.ItemSpacing.x * (menuEntries.size() + 1)); std::vector headerSizes; float headerWidth = style.ItemSpacing.x; - bool headerSearch = !CVarGetInteger("gSettings.Menu.SidebarSearch", 0); + bool headerSearch = !CVarGetInteger(CVAR_SETTING("Menu.SidebarSearch"), 0); if (headerSearch) { headerWidth += 200.0f + style.ItemSpacing.x + style.FramePadding.x; } @@ -637,7 +638,7 @@ void Menu::DrawElement() { if (scrollbar) { headerSelSize.y += style.ScrollbarSize; } - bool autoFocus = CVarGetInteger("gSettings.Menu.SearchAutofocus", 0); + bool autoFocus = CVarGetInteger(CVAR_SETTING("Menu.SearchAutofocus"), 0); ImGui::BeginChild("Header Selection", headerSelSize, ImGuiChildFlags_AutoResizeX | ImGuiChildFlags_AutoResizeY | ImGuiChildFlags_AlwaysAutoResize, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_HorizontalScrollbar); diff --git a/mm/2s2h/BenGui/Notification.cpp b/mm/2s2h/BenGui/Notification.cpp index 619351a54d..46cbec6806 100644 --- a/mm/2s2h/BenGui/Notification.cpp +++ b/mm/2s2h/BenGui/Notification.cpp @@ -18,7 +18,7 @@ void Window::Draw() { const float margin = 30.0f; const float padding = 10.0f; - int position = CVarGetInteger("gNotifications.Position", 3); + int position = CVarGetInteger(CVAR_SETTING("Notifications.Position"), 3); // Top Left ImVec2 basePosition; @@ -39,11 +39,14 @@ void Window::Draw() { return; } - ImGui::PushStyleColor(ImGuiCol_WindowBg, ImVec4(0, 0, 0, CVarGetFloat("gNotifications.BgOpacity", 0.5f))); + ImGui::PushStyleColor(ImGuiCol_WindowBg, + ImVec4(0, 0, 0, CVarGetFloat(CVAR_SETTING("Notifications.BgOpacity"), 0.5f))); ImGui::PushStyleColor(ImGuiCol_Border, ImVec4(0, 0, 0, 0)); ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 4.0f); - ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(8.0f * CVarGetFloat("gNotifications.Size", 1.8f), 6.0f)); - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(8.0f * CVarGetFloat("gNotifications.Size", 1.8f), 8.0f)); + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, + ImVec2(8.0f * CVarGetFloat(CVAR_SETTING("Notifications.Size"), 1.8f), 6.0f)); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, + ImVec2(8.0f * CVarGetFloat(CVAR_SETTING("Notifications.Size"), 1.8f), 8.0f)); for (int index = 0; index < notifications.size(); ++index) { auto& notification = notifications[index]; @@ -62,7 +65,7 @@ void Window::Draw() { ImGuiWindowFlags_NoScrollWithMouse | ImGuiWindowFlags_NoInputs | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoScrollbar); - ImGui::SetWindowFontScale(CVarGetFloat("gNotifications.Size", 1.8f)); + ImGui::SetWindowFontScale(CVarGetFloat(CVAR_SETTING("Notifications.Size"), 1.8f)); ImVec2 notificationPos; switch (position) { @@ -88,9 +91,9 @@ void Window::Draw() { ImGui::AlignTextToFramePadding(); if (notification.itemIcon != nullptr) { - ImGui::Image( - Ship::Context::GetInstance()->GetWindow()->GetGui()->GetTextureByName(notification.itemIcon), - ImVec2(22 * CVarGetFloat("gNotifications.Size", 1.8f), 22 * CVarGetFloat("gNotifications.Size", 1.8f))); + ImGui::Image(Ship::Context::GetInstance()->GetWindow()->GetGui()->GetTextureByName(notification.itemIcon), + ImVec2(22 * CVarGetFloat(CVAR_SETTING("Notifications.Size"), 1.8f), + 22 * CVarGetFloat(CVAR_SETTING("Notifications.Size"), 1.8f))); ImGui::SameLine(); } if (!notification.prefix.empty()) { @@ -129,7 +132,7 @@ void Window::UpdateElement() { void Emit(Options notification) { notification.id = nextId++; if (notification.remainingTime == 0.0f) { - notification.remainingTime = CVarGetFloat("gNotifications.Duration", 10.0f); + notification.remainingTime = CVarGetFloat(CVAR_SETTING("Notifications.Duration"), 10.0f); } notifications.push_back(notification); if (!notification.mute) { diff --git a/mm/2s2h/BenGui/ResolutionEditor.cpp b/mm/2s2h/BenGui/ResolutionEditor.cpp index d4ab55d9c2..3ab9c55d49 100644 --- a/mm/2s2h/BenGui/ResolutionEditor.cpp +++ b/mm/2s2h/BenGui/ResolutionEditor.cpp @@ -5,9 +5,10 @@ #include #include "2s2h/BenPort.h" #include "2s2h/BenGui/BenMenu.h" +#include "2s2h/cvar_prefixes.h" #include "2s2h/BenGui/BenGui.hpp" -/* Console Variables are grouped under gAdvancedResolution. (e.g. CVAR_PREFIX_ADVANCED_RESOLUTION ".Enabled") +/* Console Variables are grouped under gAdvancedResolution. (e.g. CVAR_SETTING("Graphics.AdvancedResolution.Enabled")) The following cvars are used in Libultraship and can be edited here: - Enabled - Turns Advanced Resolution Mode on. @@ -100,7 +101,7 @@ void ResolutionCustomWidget(WidgetInfo& info) { // Vertical Resolution UIWidgets::CVarCheckbox( "Set fixed vertical resolution (disables Resolution slider)", - CVAR_PREFIX_ADVANCED_RESOLUTION ".VerticalResolutionToggle", + CVAR_SETTING("Graphics.AdvancedResolution.VerticalResolutionToggle"), UIWidgets::CheckboxOptions({ { .disabled = disabled_everything } }) .Tooltip("Override the resolution scale slider and use the settings below, irrespective of window size.") .Color(THEME_COLOR)); @@ -113,8 +114,8 @@ void ResolutionCustomWidget(WidgetInfo& info) { if (showHorizontalResField) { horizontalPixelCount = (verticalPixelCount / aspectRatioY) * aspectRatioX; } - CVarSetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".VerticalPixelCount", verticalPixelCount); - CVarSetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".UIComboItem.PixelCount", item_pixelCount); + CVarSetInteger(CVAR_SETTING("Graphics.AdvancedResolution.VerticalPixelCount"), verticalPixelCount); + CVarSetInteger(CVAR_SETTING("Graphics.AdvancedResolution.UIComboItem.PixelCount"), item_pixelCount); Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame(); } UIWidgets::PopStyleCombobox(); @@ -172,31 +173,32 @@ void ResolutionCustomWidget(WidgetInfo& info) { // Integer scaling settings group (Pixel Perfect Mode) static const ImGuiTreeNodeFlags IntegerScalingResolvedImGuiFlag = - CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".PixelPerfectMode", 0) ? ImGuiTreeNodeFlags_DefaultOpen - : ImGuiTreeNodeFlags_None; + CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.PixelPerfectMode"), 0) ? ImGuiTreeNodeFlags_DefaultOpen + : ImGuiTreeNodeFlags_None; UIWidgets::PushStyleHeader(THEME_COLOR); if (ImGui::CollapsingHeader("Integer Scaling Settings", IntegerScalingResolvedImGuiFlag)) { const bool disabled_pixelPerfectMode = - !CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".PixelPerfectMode", 0) || disabled_everything; + !CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.PixelPerfectMode"), 0) || disabled_everything; // Pixel Perfect Mode UIWidgets::CVarCheckbox( - "Pixel Perfect Mode", CVAR_PREFIX_ADVANCED_RESOLUTION ".PixelPerfectMode", + "Pixel Perfect Mode", CVAR_SETTING("Graphics.AdvancedResolution.PixelPerfectMode"), UIWidgets::CheckboxOptions({ { .disabled = disabled_pixelCount || disabled_everything } }) .Tooltip("Don't scale image to fill window.") .Color(THEME_COLOR)); - if (disabled_pixelCount && CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".PixelPerfectMode", 0)) { - CVarSetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".PixelPerfectMode", 0); + if (disabled_pixelCount && CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.PixelPerfectMode"), 0)) { + CVarSetInteger(CVAR_SETTING("Graphics.AdvancedResolution.PixelPerfectMode"), 0); Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame(); } // Integer Scaling UIWidgets::CVarSliderInt( fmt::format("Integer scale factor: {}", max_integerScaleFactor).c_str(), - CVAR_PREFIX_ADVANCED_RESOLUTION ".IntegerScale.Factor", + CVAR_SETTING("Graphics.AdvancedResolution.IntegerScale.Factor"), UIWidgets::IntSliderOptions( { { .disabled = disabled_pixelPerfectMode || - CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".IntegerScale.FitAutomatically", 0) } }) + CVarGetInteger( + CVAR_SETTING("Graphics.AdvancedResolution.IntegerScale.FitAutomatically"), 0) } }) .Min(1) .Max(max_integerScaleFactor) .DefaultValue(1) @@ -204,22 +206,23 @@ void ResolutionCustomWidget(WidgetInfo& info) { .Color(THEME_COLOR)); // Display warning if size is being clamped or if framebuffer is larger than viewport. if (!disabled_pixelPerfectMode && - (CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".IntegerScale.NeverExceedBounds", 1) && - CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".IntegerScale.Factor", 1) > integerScale_maximumBounds)) { + (CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.IntegerScale.NeverExceedBounds"), 1) && + CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.IntegerScale.Factor"), 1) > + integerScale_maximumBounds)) { ImGui::SameLine(); ImGui::TextColored(messageColor[MESSAGE_WARNING], ICON_FA_EXCLAMATION_TRIANGLE " Window exceeded."); } UIWidgets::CVarCheckbox( "Automatically scale image to fit viewport", - CVAR_PREFIX_ADVANCED_RESOLUTION ".IntegerScale.FitAutomatically", + CVAR_SETTING("Graphics.AdvancedResolution.IntegerScale.FitAutomatically"), UIWidgets::CheckboxOptions({ { .disabled = disabled_pixelPerfectMode } }) .DefaultValue(true) .Color(THEME_COLOR) .Tooltip("Automatically sets scale factor to fit window. Only available in Pixel Perfect Mode.")); - if (CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".IntegerScale.FitAutomatically", 0)) { + if (CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.IntegerScale.FitAutomatically"), 0)) { // This is just here to update the value shown on the slider. // The function in LUS to handle this setting will ignore IntegerScaleFactor while active. - CVarSetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".IntegerScale.Factor", integerScale_maximumBounds); + CVarSetInteger(CVAR_SETTING("Graphics.AdvancedResolution.IntegerScale.Factor"), integerScale_maximumBounds); Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame(); } } // End of integer scaling settings @@ -236,20 +239,20 @@ void ResolutionCustomWidget(WidgetInfo& info) { "Disable aspect correction and stretch the output image.\n" "(Might be useful for 4:3 televisions!)\n" "Not available in Pixel Perfect Mode.", - CVAR_PREFIX_ADVANCED_RESOLUTION ".IgnoreAspectCorrection", + CVAR_SETTING("Graphics.AdvancedResolution.IgnoreAspectCorrection", UIWidgets::CheckboxOptions( - { { .disabled = CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".PixelPerfectMode", 0) || + { { .disabled = CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.PixelPerfectMode"), 0) || disabled_everything } }) .Color(THEME_COLOR)); #else - if (CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".IgnoreAspectCorrection", 0)) { + if (CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.IgnoreAspectCorrection"), 0)) { // This setting is intentionally not exposed on PC platforms, // but may be accidentally activated for varying reasons. // Having this button should hopefully prevent support headaches. ImGui::TextColored(messageColor[MESSAGE_QUESTION], ICON_FA_QUESTION_CIRCLE " If the image is stretched and you don't know why, click this."); if (ImGui::Button("Click to reenable aspect correction.")) { - CVarSetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".IgnoreAspectCorrection", 0); + CVarSetInteger(CVAR_SETTING("Graphics.AdvancedResolution.IgnoreAspectCorrection"), 0); Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame(); } UIWidgets::Spacer(2); @@ -278,13 +281,13 @@ void ResolutionCustomWidget(WidgetInfo& info) { { // Integer Scaling - Never Exceed Bounds. const bool disabled_neverExceedBounds = - !CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".PixelPerfectMode", 0) || - CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".IntegerScale.FitAutomatically", 0) || + !CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.PixelPerfectMode"), 0) || + CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.IntegerScale.FitAutomatically"), 0) || disabled_everything; if (UIWidgets::CVarCheckbox( "Prevent integer scaling from exceeding screen bounds.\n" "(Makes screen bounds take priority over specified factor.)", - CVAR_PREFIX_ADVANCED_RESOLUTION ".IntegerScale.NeverExceedBounds", + CVAR_SETTING("Graphics.AdvancedResolution.IntegerScale.NeverExceedBounds"), UIWidgets::CheckboxOptions({ { .disabled = disabled_neverExceedBounds } }) .Tooltip("Prevents integer scaling factor from exceeding screen bounds.\n\n" "Enabled: Will clamp the scaling factor and display a gentle warning in the " @@ -296,8 +299,8 @@ void ResolutionCustomWidget(WidgetInfo& info) { .Color(THEME_COLOR) .DefaultValue(true))) { // Initialise the (currently unused) "Exceed Bounds By" cvar if it's been changed. - if (CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".IntegerScale.ExceedBoundsBy", 0)) { - CVarSetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".IntegerScale.ExceedBoundsBy", 0); + if (CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.IntegerScale.ExceedBoundsBy"), 0)) { + CVarSetInteger(CVAR_SETTING("Graphics.AdvancedResolution.IntegerScale.ExceedBoundsBy"), 0); Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame(); } } @@ -306,9 +309,9 @@ void ResolutionCustomWidget(WidgetInfo& info) { // A popular feature in some retro frontends/upscalers, sometimes called "crop overscan" or "1080p 5x". UIWidgets::CVarCheckbox( "Allow integer scale factor to go +1 above maximum screen bounds.", - CVAR_PREFIX_ADVANCED_RESOLUTION ".IntegerScale.ExceedBoundsBy", + CVAR_SETTING("Graphics.AdvancedResolution.IntegerScale.ExceedBoundsBy"), UIWidgets::CheckboxOptions( - { { .disabled = !CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".PixelPerfectMode", 0) || + { { .disabled = !CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.PixelPerfectMode"), 0) || disabled_everything } }) .Color(THEME_COLOR)); @@ -316,8 +319,8 @@ void ResolutionCustomWidget(WidgetInfo& info) { // I've ended up commenting this one out because of the scroll bar, and for simplicity. // Display an info message about the scroll bar. - if (!CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".IntegerScale.NeverExceedBounds", 1) || - CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".IntegerScale.ExceedBoundsBy", 0)) { + if (!CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.IntegerScale.NeverExceedBounds"), 1) || + CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.IntegerScale.ExceedBoundsBy"), 0)) { ImGui::TextColored(messageColor[MESSAGE_INFO], " " ICON_FA_INFO_CIRCLE " A scroll bar may become visible if screen bounds are exceeded."); @@ -335,13 +338,13 @@ void ResolutionCustomWidget(WidgetInfo& info) { if (aspectRatioX < 0.0f) { aspectRatioX = 0.0f; } - CVarSetFloat(CVAR_PREFIX_ADVANCED_RESOLUTION ".AspectRatioX", aspectRatioX); + CVarSetFloat(CVAR_SETTING("Graphics.AdvancedResolution.AspectRatioX"), aspectRatioX); } if (update[UPDATE_aspectRatioY]) { if (aspectRatioY < 0.0f) { aspectRatioY = 0.0f; } - CVarSetFloat(CVAR_PREFIX_ADVANCED_RESOLUTION ".AspectRatioY", aspectRatioY); + CVarSetFloat(CVAR_SETTING("Graphics.AdvancedResolution.AspectRatioY"), aspectRatioY); } if (update[UPDATE_verticalPixelCount]) { // There's a upper and lower clamp on the Libultraship side too, @@ -352,10 +355,10 @@ void ResolutionCustomWidget(WidgetInfo& info) { if (verticalPixelCount > maxVerticalPixelCount) { verticalPixelCount = maxVerticalPixelCount; } - CVarSetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".VerticalPixelCount", verticalPixelCount); + CVarSetInteger(CVAR_SETTING("Graphics.AdvancedResolution.VerticalPixelCount"), verticalPixelCount); } - CVarSetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".UIComboItem.AspectRatio", item_aspectRatio); - CVarSetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".UIComboItem.PixelCount", item_pixelCount); + CVarSetInteger(CVAR_SETTING("Graphics.AdvancedResolution.UIComboItem.AspectRatio"), item_aspectRatio); + CVarSetInteger(CVAR_SETTING("Graphics.AdvancedResolution.UIComboItem.PixelCount"), item_pixelCount); Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame(); } } @@ -380,7 +383,7 @@ void RegisterResolutionWidgets() { // Activator mBenMenu->AddWidget(path, "Enable advanced settings.", WIDGET_CVAR_CHECKBOX) - .CVar(CVAR_PREFIX_ADVANCED_RESOLUTION ".Enabled"); + .CVar(CVAR_SETTING("Graphics.AdvancedResolution.Enabled")); mBenMenu->AddWidget(path, ICON_FA_QUESTION_CIRCLE " \"N64 Mode\" is overriding these settings.", WIDGET_TEXT) .PreFunc([](WidgetInfo& info) { info.isHidden = !CVarGetInteger(CVAR_LOW_RES_MODE, 0); }) .Options(WidgetOptions().Color(Colors::LightBlue)); @@ -426,10 +429,10 @@ void RegisterResolutionWidgets() { horizontalPixelCount = (verticalPixelCount / aspectRatioY) * aspectRatioX; } - CVarSetFloat(CVAR_PREFIX_ADVANCED_RESOLUTION ".AspectRatioX", aspectRatioX); - CVarSetFloat(CVAR_PREFIX_ADVANCED_RESOLUTION ".AspectRatioY", aspectRatioY); + CVarSetFloat(CVAR_SETTING("Graphics.AdvancedResolution.AspectRatioX"), aspectRatioX); + CVarSetFloat(CVAR_SETTING("Graphics.AdvancedResolution.AspectRatioY"), aspectRatioY); } - CVarSetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".UIComboItem.AspectRatio", item_aspectRatio); + CVarSetInteger(CVAR_SETTING("Graphics.AdvancedResolution.UIComboItem.AspectRatio"), item_aspectRatio); CVarSave(); }) .Options(ComboboxOptions().ComboMap(&aspectRatioPresetLabels)); @@ -491,13 +494,13 @@ void UpdateResolutionVars() { if (aspectRatioX < 0.0f) { aspectRatioX = 0.0f; } - CVarSetFloat(CVAR_PREFIX_ADVANCED_RESOLUTION ".AspectRatioX", aspectRatioX); + CVarSetFloat(CVAR_SETTING("Graphics.AdvancedResolution.AspectRatioX"), aspectRatioX); } if (update[UPDATE_aspectRatioY]) { if (aspectRatioY < 0.0f) { aspectRatioY = 0.0f; } - CVarSetFloat(CVAR_PREFIX_ADVANCED_RESOLUTION ".AspectRatioY", aspectRatioY); + CVarSetFloat(CVAR_SETTING("Graphics.AdvancedResolution.AspectRatioY"), aspectRatioY); } if (update[UPDATE_verticalPixelCount]) { // There's a upper and lower clamp on the Libultraship side too, @@ -508,10 +511,10 @@ void UpdateResolutionVars() { if (verticalPixelCount > maxVerticalPixelCount) { verticalPixelCount = maxVerticalPixelCount; } - CVarSetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".VerticalPixelCount", verticalPixelCount); + CVarSetInteger(CVAR_SETTING("Graphics.AdvancedResolution.VerticalPixelCount"), verticalPixelCount); } - CVarSetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".UIComboItem.AspectRatio", item_aspectRatio); - CVarSetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".UIComboItem.PixelCount", item_pixelCount); + CVarSetInteger(CVAR_SETTING("Graphics.AdvancedResolution.UIComboItem.AspectRatio"), item_aspectRatio); + CVarSetInteger(CVAR_SETTING("Graphics.AdvancedResolution.UIComboItem.PixelCount"), item_pixelCount); Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame(); } // Initialise update flags. @@ -538,29 +541,33 @@ void UpdateResolutionVars() { // Lower-clamping maximum bounds value to 1 is no-longer necessary as that's accounted for in LUS. // Letting it go below 1 in this Editor will even allow for checking if screen bounds are being exceeded. if (default_maxIntegerScaleFactor < integerScale_maximumBounds) { - max_integerScaleFactor = integerScale_maximumBounds + - CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".IntegerScale.ExceedBoundsBy", 0); + max_integerScaleFactor = + integerScale_maximumBounds + + CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.IntegerScale.ExceedBoundsBy"), 0); } // Combo List defaults - item_aspectRatio = CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".UIComboItem.AspectRatio", 3); - item_pixelCount = CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".UIComboItem.PixelCount", default_pixelCount); + item_aspectRatio = CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.UIComboItem.AspectRatio"), 3); + item_pixelCount = + CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.UIComboItem.PixelCount"), default_pixelCount); // Stored Values for non-UIWidgets elements - aspectRatioX = CVarGetFloat(CVAR_PREFIX_ADVANCED_RESOLUTION ".AspectRatioX", aspectRatioPresetsX[item_aspectRatio]); - aspectRatioY = CVarGetFloat(CVAR_PREFIX_ADVANCED_RESOLUTION ".AspectRatioY", aspectRatioPresetsY[item_aspectRatio]); - verticalPixelCount = - CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".VerticalPixelCount", pixelCountPresets[item_pixelCount]); + aspectRatioX = + CVarGetFloat(CVAR_SETTING("Graphics.AdvancedResolution.AspectRatioX"), aspectRatioPresetsX[item_aspectRatio]); + aspectRatioY = + CVarGetFloat(CVAR_SETTING("Graphics.AdvancedResolution.AspectRatioY"), aspectRatioPresetsY[item_aspectRatio]); + verticalPixelCount = CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.VerticalPixelCount"), + pixelCountPresets[item_pixelCount]); // Additional settings horizontalPixelCount = (verticalPixelCount / aspectRatioY) * aspectRatioX; // Disabling flags - disabled_everything = !CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".Enabled", 0); - disabled_pixelCount = !CVarGetInteger(CVAR_PREFIX_ADVANCED_RESOLUTION ".VerticalResolutionToggle", 0); + disabled_everything = !CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.Enabled"), 0); + disabled_pixelCount = !CVarGetInteger(CVAR_SETTING("Graphics.AdvancedResolution.VerticalResolutionToggle"), 0); } bool IsDroppingFrames() { // a rather imprecise way of checking for frame drops. // but it's mostly there to inform the player of large drops. - const short targetFPS = CVarGetInteger("gInterpolationFPS", 20); + const short targetFPS = CVarGetInteger(CVAR_SETTING("Graphics.InterpolationFPS"), 20); const float threshold = targetFPS / 20.0f + 4.1f; return ImGui::GetIO().Framerate < targetFPS - threshold; } diff --git a/mm/2s2h/BenPort.cpp b/mm/2s2h/BenPort.cpp index d913c05920..1bde8685bc 100644 --- a/mm/2s2h/BenPort.cpp +++ b/mm/2s2h/BenPort.cpp @@ -61,7 +61,9 @@ CrowdControl* CrowdControl::Instance; #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/BenGui/Notification.h" #include "2s2h/ShipUtils.h" +#include "2s2h/Config/ConfigUpdaters.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" #include "2s2h/PresetManager/PresetManager.h" // Resource Types/Factories @@ -181,13 +183,13 @@ OTRGlobals::OTRGlobals() { #else auto defaultLogLevel = spdlog::level::info; #endif - auto logLevel = (spdlog::level::level_enum)CVarGetInteger("gDeveloperTools.LogLevel", defaultLogLevel); + auto logLevel = (spdlog::level::level_enum)CVarGetInteger(CVAR_DEVELOPER_TOOLS("LogLevel"), defaultLogLevel); context->InitLogging(logLevel, logLevel); Ship::Context::GetInstance()->GetLogger()->set_pattern("[%H:%M:%S.%e] [%s:%#] [%l] %v"); // tell LUS to reserve 3 SoH specific threads (Game, Audio, Save) context->InitResourceManager(archiveFiles, {}, 3); - prevAltAssets = CVarGetInteger("gEnhancements.Mods.AlternateAssets", 0); + prevAltAssets = CVarGetInteger(CVAR_ENHANCEMENT("Mods.AlternateAssets"), 0); context->GetResourceManager()->SetAltAssetsEnabled(prevAltAssets); auto controlDeck = std::make_shared(std::vector({ @@ -199,7 +201,8 @@ OTRGlobals::OTRGlobals() { context->InitCrashHandler(); context->InitConsole(); - auto benInputEditorWindow = std::make_shared("gWindows.BenInputEditor", "2S2H Input Editor"); + auto benInputEditorWindow = + std::make_shared(CVAR_WINDOW("BenInputEditor"), "2S2H Input Editor"); auto benFast3dWindow = std::make_shared(std::vector>({ benInputEditorWindow })); context->InitWindow(benFast3dWindow); @@ -316,14 +319,14 @@ OTRGlobals::~OTRGlobals() { } uint32_t OTRGlobals::GetInterpolationFPS() { - if (CVarGetInteger("gMatchRefreshRate", 0)) { + if (CVarGetInteger(CVAR_SETTING("Graphics.MatchRefreshRate"), 0)) { return Ship::Context::GetInstance()->GetWindow()->GetCurrentRefreshRate(); } else if (CVarGetInteger(CVAR_VSYNC_ENABLED, 1) || !Ship::Context::GetInstance()->GetWindow()->CanDisableVerticalSync()) { return std::min(Ship::Context::GetInstance()->GetWindow()->GetCurrentRefreshRate(), - CVarGetInteger("gInterpolationFPS", 20)); + CVarGetInteger(CVAR_SETTING("Graphics.InterpolationFPS"), 20)); } - return CVarGetInteger("gInterpolationFPS", 20); + return CVarGetInteger(CVAR_SETTING("Graphics.InterpolationFPS"), 20); } extern "C" uint32_t Ship_GetInterpolationFPS() { @@ -744,6 +747,9 @@ extern "C" void InitOTR() { #endif std::shared_ptr conf = OTRGlobals::Instance->context->GetConfig(); + conf->RegisterVersionUpdater(std::make_shared()); + conf->RunVersionUpdates(); + Ship::Context::GetInstance()->GetFileDropMgr()->RegisterDropHandler(BinarySaveConverter_HandleFileDropped); Ship::Context::GetInstance()->GetFileDropMgr()->RegisterDropHandler(SaveManager_HandleFileDropped); } @@ -889,9 +895,9 @@ extern "C" void Graph_StartFrame() { #endif case KbScancode::LUS_KB_TAB: { // Toggle HD Assets - if (CVarGetInteger("gEnhancements.Mods.AlternateAssetsHotkey", 1)) { - CVarSetInteger("gEnhancements.Mods.AlternateAssets", - !CVarGetInteger("gEnhancements.Mods.AlternateAssets", 0)); + if (CVarGetInteger(CVAR_ENHANCEMENT("Mods.AlternateAssetsHotkey"), 1)) { + CVarSetInteger(CVAR_ENHANCEMENT("Mods.AlternateAssets"), + !CVarGetInteger(CVAR_ENHANCEMENT("Mods.AlternateAssets"), 0)); } break; } @@ -975,7 +981,7 @@ extern "C" void Graph_ProcessGfxCommands(Gfx* commands) { } } - bool curAltAssets = CVarGetInteger("gEnhancements.Mods.AlternateAssets", 0); + bool curAltAssets = CVarGetInteger(CVAR_ENHANCEMENT("Mods.AlternateAssets"), 0); if (prevAltAssets != curAltAssets) { prevAltAssets = curAltAssets; Ship::Context::GetInstance()->GetResourceManager()->SetAltAssetsEnabled(curAltAssets); @@ -1686,17 +1692,17 @@ Color_RGB8 GetColorForControllerLED() { switch (CUR_EQUIP_VALUE(EQUIP_TUNIC) - 1) { case PLAYER_TUNIC_KOKIRI: color = source == LED_SOURCE_TUNIC_COSMETICS - ? CVarGetColor24("gCosmetics.Link_KokiriTunic.Value", kokiriColor) + ? CVarGetColor24(CVAR_COSMETIC("Link_KokiriTunic.Value"), kokiriColor) : kokiriColor; break; case PLAYER_TUNIC_GORON: color = source == LED_SOURCE_TUNIC_COSMETICS - ? CVarGetColor24("gCosmetics.Link_GoronTunic.Value", goronColor) + ? CVarGetColor24(CVAR_COSMETIC("Link_GoronTunic.Value"), goronColor) : goronColor; break; case PLAYER_TUNIC_ZORA: color = source == LED_SOURCE_TUNIC_COSMETICS - ? CVarGetColor24("gCosmetics.Link_ZoraTunic.Value", zoraColor) + ? CVarGetColor24(CVAR_COSMETIC("Link_ZoraTunic.Value"), zoraColor) : zoraColor; break; } @@ -1949,7 +1955,7 @@ extern "C" void Messagebox_ShowErrorBox(char* title, char* body) { // Helper to redirect the user to the boot screen in place of known console crash scenarios, and emits a notification extern "C" bool Ship_HandleConsoleCrashAsReset() { // If fix crashes is on, return false and let fallback handling process in source - if (CVarGetInteger("gEnhancements.Fixes.ConsoleCrashes", 1)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Fixes.ConsoleCrashes"), 1)) { return false; } diff --git a/mm/2s2h/Config/ConfigMigrators.h b/mm/2s2h/Config/ConfigMigrators.h new file mode 100644 index 0000000000..aac7b08501 --- /dev/null +++ b/mm/2s2h/Config/ConfigMigrators.h @@ -0,0 +1,186 @@ +#include +#include +#include + +namespace SOH { +enum class MigrationAction { + Rename, + Remove, +}; + +struct Migration { + MigrationAction action; + std::string from; + std::optional to = std::nullopt; +}; + +// clang-format off +std::vector version1Migrations = { + { MigrationAction::Rename, "gRando.CheckTracker.HideCollectedChecks", "gTrackers.CheckTracker.HideCollectedChecks" }, + { MigrationAction::Rename, "gRando.CheckTracker.HideSkippedChecks", "gTrackers.CheckTracker.HideSkippedChecks" }, + { MigrationAction::Rename, "gRando.CheckTracker.OnlyShowChecksInLogic", "gTrackers.CheckTracker.OnlyShowChecksInLogic" }, + { MigrationAction::Rename, "gRando.CheckTracker.Opacity", "gTrackers.CheckTracker.Opacity" }, + { MigrationAction::Rename, "gRando.CheckTracker.Scale", "gTrackers.CheckTracker.Scale" }, + { MigrationAction::Rename, "gRando.CheckTracker.ScrollToCurrentScene", "gTrackers.CheckTracker.ScrollToCurrentScene" }, + { MigrationAction::Rename, "gRando.CheckTracker.ShowCurrentScene", "gTrackers.CheckTracker.ShowCurrentScene" }, + { MigrationAction::Rename, "ItemTracker.BgColorR", "gTrackers.ItemTracker.BgColorR" }, + { MigrationAction::Rename, "ItemTracker.BgColorG", "gTrackers.ItemTracker.BgColorG" }, + { MigrationAction::Rename, "ItemTracker.BgColorB", "gTrackers.ItemTracker.BgColorB" }, + { MigrationAction::Rename, "ItemTracker.BgColorA", "gTrackers.ItemTracker.BgColorA" }, + { MigrationAction::Rename, "ItemTracker.IconSize", "gTrackers.ItemTracker.IconSize" }, + { MigrationAction::Rename, "ItemTracker.IconSpacing", "gTrackers.ItemTracker.IconSpacing" }, + { MigrationAction::Rename, "ItemTracker.TextSize", "gTrackers.ItemTracker.TextSize" }, + { MigrationAction::Rename, "ItemTracker.TextOffset", "gTrackers.ItemTracker.TextOffset" }, + { MigrationAction::Rename, "ItemTracker.WindowType", "gTrackers.ItemTracker.WindowType" }, + { MigrationAction::Rename, "ItemTracker.IsDraggable", "gTrackers.ItemTracker.IsDraggable" }, + { MigrationAction::Rename, "ItemTracker.OnlyDrawPaused", "gTrackers.ItemTracker.OnlyDrawPaused" }, + { MigrationAction::Rename, "ItemTracker.IncludeMapsAndCompasses", "gTrackers.ItemTracker.IncludeMapsAndCompasses" }, + { MigrationAction::Rename, "ItemTracker.DrawCurrentAmmo", "gTrackers.ItemTracker.DrawCurrentAmmo" }, + { MigrationAction::Rename, "ItemTracker.DrawMaxAmmo", "gTrackers.ItemTracker.DrawMaxAmmo" }, + { MigrationAction::Rename, "ItemTracker.DrawMaxCapacity", "gTrackers.ItemTracker.DrawMaxCapacity" }, + { MigrationAction::Rename, "ItemTracker.InventoryDrawMode", "gTrackers.ItemTracker.InventoryDrawMode" }, + { MigrationAction::Rename, "ItemTracker.MasksDrawMode", "gTrackers.ItemTracker.MasksDrawMode" }, + { MigrationAction::Rename, "ItemTracker.EquipmentDrawMode", "gTrackers.ItemTracker.EquipmentDrawMode" }, + { MigrationAction::Rename, "ItemTracker.MiscDrawMode", "gTrackers.ItemTracker.MiscDrawMode" }, + { MigrationAction::Rename, "ItemTracker.SongsDrawMode", "gTrackers.ItemTracker.SongsDrawMode" }, + { MigrationAction::Rename, "ItemTracker.StrayFairiesDrawMode", "gTrackers.ItemTracker.StrayFairiesDrawMode" }, + { MigrationAction::Rename, "ItemTracker.GoldSkulltulasDrawMode", "gTrackers.ItemTracker.GoldSkulltulasDrawMode" }, + { MigrationAction::Rename, "ItemTracker.DungeonDrawMode", "gTrackers.ItemTracker.DungeonDrawMode" }, + { MigrationAction::Rename, "gSettings.TimeSplits.Enable", "gTrackers.TimeSplitsTracker.Enable" }, + { MigrationAction::Rename, "gSettings.TimeSplits.Highlight", "gTrackers.TimeSplitsTracker.Highlight" }, + { MigrationAction::Rename, "gSettings.TimeSplits.Compare", "gTrackers.TimeSplitsTracker.Compare" }, + { MigrationAction::Rename, "gSettings.TimeSplits.Follow", "gTrackers.TimeSplitsTracker.Follow" }, + { MigrationAction::Rename, "gSettings.TimeSplits.ShowHeaders", "gTrackers.TimeSplitsTracker.ShowHeaders" }, + { MigrationAction::Rename, "gSettings.TimeSplits.Opacity", "gTrackers.TimeSplitsTracker.Opacity" }, + { MigrationAction::Rename, "gModes.PlayAsKafei", "gEnhancements.Modes.PlayAsKafei" }, + { MigrationAction::Rename, "gModes.HyruleWarriorsStyledLink", "gEnhancements.Modes.HyruleWarriorsStyledLink" }, + { MigrationAction::Rename, "gModes.TimeMovesWhenYouMove", "gEnhancements.Modes.TimeMovesWhenYouMove" }, + { MigrationAction::Rename, "gModes.MirroredWorld.Mode", "gEnhancements.Modes.MirroredWorld.Mode" }, + { MigrationAction::Rename, "gModes.MirroredWorld.State", "gEnhancements.Modes.MirroredWorld.State" }, + { MigrationAction::Rename, "gFixes.FixAmmoCountEnvColor", "gEnhancements.Fixes.FixAmmoCountEnvColor" }, + { MigrationAction::Rename, "gFixes.FixEponaStealingSword", "gEnhancements.Fixes.FixEponaStealingSword" }, + { MigrationAction::Rename, "gFixes.FixIkanaGreatFairyFountainColor", "gEnhancements.Fixes.FixIkanaGreatFairyFountainColor" }, + { MigrationAction::Rename, "gWindows.ItemTracker", "gOpenWindows.ItemTracker" }, + { MigrationAction::Rename, "gWindows.CheckTracker", "gOpenWindows.CheckTracker" }, + { MigrationAction::Rename, "gWindows.Notifications", "gOpenWindows.Notifications" }, + { MigrationAction::Rename, "gWindows.Menu", "gOpenWindows.Menu" }, + { MigrationAction::Rename, "gNotifications.BgOpacity", "gSettings.Notifications.BgOpacity" }, + { MigrationAction::Rename, "gNotifications.Duration", "gSettings.Notifications.Duration" }, + { MigrationAction::Rename, "gNotifications.Position", "gSettings.Notifications.Position" }, + { MigrationAction::Rename, "gNotifications.Size", "gSettings.Notifications.Size" }, + { MigrationAction::Rename, "gDisplayOverlay.Background", "gSettings.DisplayOverlay.Background" }, + { MigrationAction::Rename, "gDisplayOverlay.Scale", "gSettings.DisplayOverlay.Scale" }, + { MigrationAction::Rename, "gInterpolationFPS", "gSettings.Graphics.InterpolationFPS" }, + { MigrationAction::Rename, "gMatchRefreshRate", "gSettings.Graphics.MatchRefreshRate" }, + { MigrationAction::Rename, "gEventLog.Enabled", "gDeveloperTools.EventLog.Enabled" }, + { MigrationAction::Rename, "gEventLog.MaxEntries", "gDeveloperTools.EventLog.MaxEntries" }, + { MigrationAction::Rename, "gEventLog.Filter.ActorInit", "gDeveloperTools.EventLog.Filter.ActorInit" }, + { MigrationAction::Rename, "gEventLog.Filter.ActorKill", "gDeveloperTools.EventLog.Filter.ActorKill" }, + { MigrationAction::Rename, "gEventLog.Filter.FlagSet", "gDeveloperTools.EventLog.Filter.FlagSet" }, + { MigrationAction::Rename, "gEventLog.Filter.FlagUnset", "gDeveloperTools.EventLog.Filter.FlagUnset" }, + { MigrationAction::Rename, "gEventLog.Filter.ItemGive", "gDeveloperTools.EventLog.Filter.ItemGive" }, + { MigrationAction::Rename, "gEventLog.Filter.OpenText", "gDeveloperTools.EventLog.Filter.OpenText" }, + { MigrationAction::Rename, "gEventLog.Filter.RoomInit", "gDeveloperTools.EventLog.Filter.RoomInit" }, + { MigrationAction::Rename, "gEventLog.Filter.SceneFlagSet", "gDeveloperTools.EventLog.Filter.SceneFlagSet" }, + { MigrationAction::Rename, "gEventLog.Filter.SceneFlagUnset", "gDeveloperTools.EventLog.Filter.SceneFlagUnset" }, + { MigrationAction::Rename, "gEventLog.Filter.SceneInit", "gDeveloperTools.EventLog.Filter.SceneInit" }, + { MigrationAction::Rename, "gCollisionViewer.Enabled", "gDeveloperTools.CollisionViewer.Enabled" }, + { MigrationAction::Rename, "gCollisionViewer.ApplyShading", "gDeveloperTools.CollisionViewer.ApplyShading" }, + { MigrationAction::Rename, "gCollisionViewer.SceneCollisionMode", "gDeveloperTools.CollisionViewer.SceneCollisionMode" }, + { MigrationAction::Rename, "gCollisionViewer.BGActorsCollisionMode", "gDeveloperTools.CollisionViewer.BGActorsCollisionMode" }, + { MigrationAction::Rename, "gCollisionViewer.ColCheckCollisionMode", "gDeveloperTools.CollisionViewer.ColCheckCollisionMode" }, + { MigrationAction::Rename, "gCollisionViewer.WaterboxCollisionMode", "gDeveloperTools.CollisionViewer.WaterboxCollisionMode" }, + { MigrationAction::Rename, "gCollisionViewer.ACollisionColor", "gDeveloperTools.CollisionViewer.ACollisionColor" }, + { MigrationAction::Rename, "gCollisionViewer.ACollisionColor.Value", "gDeveloperTools.CollisionViewer.ACollisionColor.Value" }, + { MigrationAction::Rename, "gCollisionViewer.ACollisionColor.Value.A", "gDeveloperTools.CollisionViewer.ACollisionColor.Value.A" }, + { MigrationAction::Rename, "gCollisionViewer.ACollisionColor.Value.B", "gDeveloperTools.CollisionViewer.ACollisionColor.Value.B" }, + { MigrationAction::Rename, "gCollisionViewer.ACollisionColor.Value.G", "gDeveloperTools.CollisionViewer.ACollisionColor.Value.G" }, + { MigrationAction::Rename, "gCollisionViewer.ACollisionColor.Value.R", "gDeveloperTools.CollisionViewer.ACollisionColor.Value.R" }, + { MigrationAction::Rename, "gCollisionViewer.ACollisionColor.Value.Type", "gDeveloperTools.CollisionViewer.ACollisionColor.Value.Type" }, + { MigrationAction::Rename, "gCollisionViewer.ATCollisionColor", "gDeveloperTools.CollisionViewer.ATCollisionColor" }, + { MigrationAction::Rename, "gCollisionViewer.ATCollisionColor.Value", "gDeveloperTools.CollisionViewer.ATCollisionColor.Value" }, + { MigrationAction::Rename, "gCollisionViewer.ATCollisionColor.Value.A", "gDeveloperTools.CollisionViewer.ATCollisionColor.Value.A" }, + { MigrationAction::Rename, "gCollisionViewer.ATCollisionColor.Value.B", "gDeveloperTools.CollisionViewer.ATCollisionColor.Value.B" }, + { MigrationAction::Rename, "gCollisionViewer.ATCollisionColor.Value.G", "gDeveloperTools.CollisionViewer.ATCollisionColor.Value.G" }, + { MigrationAction::Rename, "gCollisionViewer.ATCollisionColor.Value.R", "gDeveloperTools.CollisionViewer.ATCollisionColor.Value.R" }, + { MigrationAction::Rename, "gCollisionViewer.ATCollisionColor.Value.Type", "gDeveloperTools.CollisionViewer.ATCollisionColor.Value.Type" }, + { MigrationAction::Rename, "gCollisionViewer.EntranceCollisionColor", "gDeveloperTools.CollisionViewer.EntranceCollisionColor" }, + { MigrationAction::Rename, "gCollisionViewer.EntranceCollisionColor.Value", "gDeveloperTools.CollisionViewer.EntranceCollisionColor.Value" }, + { MigrationAction::Rename, "gCollisionViewer.EntranceCollisionColor.Value.A", "gDeveloperTools.CollisionViewer.EntranceCollisionColor.Value.A" }, + { MigrationAction::Rename, "gCollisionViewer.EntranceCollisionColor.Value.B", "gDeveloperTools.CollisionViewer.EntranceCollisionColor.Value.B" }, + { MigrationAction::Rename, "gCollisionViewer.EntranceCollisionColor.Value.G", "gDeveloperTools.CollisionViewer.EntranceCollisionColor.Value.G" }, + { MigrationAction::Rename, "gCollisionViewer.EntranceCollisionColor.Value.R", "gDeveloperTools.CollisionViewer.EntranceCollisionColor.Value.R" }, + { MigrationAction::Rename, "gCollisionViewer.EntranceCollisionColor.Value.Type", "gDeveloperTools.CollisionViewer.EntranceCollisionColor.Value.Type" }, + { MigrationAction::Rename, "gCollisionViewer.HookshotCollisionColor", "gDeveloperTools.CollisionViewer.HookshotCollisionColor" }, + { MigrationAction::Rename, "gCollisionViewer.HookshotCollisionColor.Value", "gDeveloperTools.CollisionViewer.HookshotCollisionColor.Value" }, + { MigrationAction::Rename, "gCollisionViewer.HookshotCollisionColor.Value.A", "gDeveloperTools.CollisionViewer.HookshotCollisionColor.Value.A" }, + { MigrationAction::Rename, "gCollisionViewer.HookshotCollisionColor.Value.B", "gDeveloperTools.CollisionViewer.HookshotCollisionColor.Value.B" }, + { MigrationAction::Rename, "gCollisionViewer.HookshotCollisionColor.Value.G", "gDeveloperTools.CollisionViewer.HookshotCollisionColor.Value.G" }, + { MigrationAction::Rename, "gCollisionViewer.HookshotCollisionColor.Value.R", "gDeveloperTools.CollisionViewer.HookshotCollisionColor.Value.R" }, + { MigrationAction::Rename, "gCollisionViewer.HookshotCollisionColor.Value.Type", "gDeveloperTools.CollisionViewer.HookshotCollisionColor.Value.Type" }, + { MigrationAction::Rename, "gCollisionViewer.InteractableColor", "gDeveloperTools.CollisionViewer.InteractableColor" }, + { MigrationAction::Rename, "gCollisionViewer.InteractableColor.Value", "gDeveloperTools.CollisionViewer.InteractableColor.Value" }, + { MigrationAction::Rename, "gCollisionViewer.InteractableColor.Value.A", "gDeveloperTools.CollisionViewer.InteractableColor.Value.A" }, + { MigrationAction::Rename, "gCollisionViewer.InteractableColor.Value.B", "gDeveloperTools.CollisionViewer.InteractableColor.Value.B" }, + { MigrationAction::Rename, "gCollisionViewer.InteractableColor.Value.G", "gDeveloperTools.CollisionViewer.InteractableColor.Value.G" }, + { MigrationAction::Rename, "gCollisionViewer.InteractableColor.Value.R", "gDeveloperTools.CollisionViewer.InteractableColor.Value.R" }, + { MigrationAction::Rename, "gCollisionViewer.InteractableColor.Value.Type", "gDeveloperTools.CollisionViewer.InteractableColor.Value.Type" }, + { MigrationAction::Rename, "gCollisionViewer.OCollisionColor", "gDeveloperTools.CollisionViewer.OCollisionColor" }, + { MigrationAction::Rename, "gCollisionViewer.OCollisionColor.Value", "gDeveloperTools.CollisionViewer.OCollisionColor.Value" }, + { MigrationAction::Rename, "gCollisionViewer.OCollisionColor.Value.A", "gDeveloperTools.CollisionViewer.OCollisionColor.Value.A" }, + { MigrationAction::Rename, "gCollisionViewer.OCollisionColor.Value.B", "gDeveloperTools.CollisionViewer.OCollisionColor.Value.B" }, + { MigrationAction::Rename, "gCollisionViewer.OCollisionColor.Value.G", "gDeveloperTools.CollisionViewer.OCollisionColor.Value.G" }, + { MigrationAction::Rename, "gCollisionViewer.OCollisionColor.Value.R", "gDeveloperTools.CollisionViewer.OCollisionColor.Value.R" }, + { MigrationAction::Rename, "gCollisionViewer.OCollisionColor.Value.Type", "gDeveloperTools.CollisionViewer.OCollisionColor.Value.Type" }, + { MigrationAction::Rename, "gCollisionViewer.SceneCollisionColor", "gDeveloperTools.CollisionViewer.SceneCollisionColor" }, + { MigrationAction::Rename, "gCollisionViewer.SceneCollisionColor.Value", "gDeveloperTools.CollisionViewer.SceneCollisionColor.Value" }, + { MigrationAction::Rename, "gCollisionViewer.SceneCollisionColor.Value.A", "gDeveloperTools.CollisionViewer.SceneCollisionColor.Value.A" }, + { MigrationAction::Rename, "gCollisionViewer.SceneCollisionColor.Value.B", "gDeveloperTools.CollisionViewer.SceneCollisionColor.Value.B" }, + { MigrationAction::Rename, "gCollisionViewer.SceneCollisionColor.Value.G", "gDeveloperTools.CollisionViewer.SceneCollisionColor.Value.G" }, + { MigrationAction::Rename, "gCollisionViewer.SceneCollisionColor.Value.R", "gDeveloperTools.CollisionViewer.SceneCollisionColor.Value.R" }, + { MigrationAction::Rename, "gCollisionViewer.SceneCollisionColor.Value.Type", "gDeveloperTools.CollisionViewer.SceneCollisionColor.Value.Type" }, + { MigrationAction::Rename, "gCollisionViewer.SlopeCollisionColor", "gDeveloperTools.CollisionViewer.SlopeCollisionColor" }, + { MigrationAction::Rename, "gCollisionViewer.SlopeCollisionColor.Value", "gDeveloperTools.CollisionViewer.SlopeCollisionColor.Value" }, + { MigrationAction::Rename, "gCollisionViewer.SlopeCollisionColor.Value.A", "gDeveloperTools.CollisionViewer.SlopeCollisionColor.Value.A" }, + { MigrationAction::Rename, "gCollisionViewer.SlopeCollisionColor.Value.B", "gDeveloperTools.CollisionViewer.SlopeCollisionColor.Value.B" }, + { MigrationAction::Rename, "gCollisionViewer.SlopeCollisionColor.Value.G", "gDeveloperTools.CollisionViewer.SlopeCollisionColor.Value.G" }, + { MigrationAction::Rename, "gCollisionViewer.SlopeCollisionColor.Value.R", "gDeveloperTools.CollisionViewer.SlopeCollisionColor.Value.R" }, + { MigrationAction::Rename, "gCollisionViewer.SlopeCollisionColor.Value.Type", "gDeveloperTools.CollisionViewer.SlopeCollisionColor.Value.Type" }, + { MigrationAction::Rename, "gCollisionViewer.SpecialSurfaceColor", "gDeveloperTools.CollisionViewer.SpecialSurfaceColor" }, + { MigrationAction::Rename, "gCollisionViewer.SpecialSurfaceColor.Value", "gDeveloperTools.CollisionViewer.SpecialSurfaceColor.Value" }, + { MigrationAction::Rename, "gCollisionViewer.SpecialSurfaceColor.Value.A", "gDeveloperTools.CollisionViewer.SpecialSurfaceColor.Value.A" }, + { MigrationAction::Rename, "gCollisionViewer.SpecialSurfaceColor.Value.B", "gDeveloperTools.CollisionViewer.SpecialSurfaceColor.Value.B" }, + { MigrationAction::Rename, "gCollisionViewer.SpecialSurfaceColor.Value.G", "gDeveloperTools.CollisionViewer.SpecialSurfaceColor.Value.G" }, + { MigrationAction::Rename, "gCollisionViewer.SpecialSurfaceColor.Value.R", "gDeveloperTools.CollisionViewer.SpecialSurfaceColor.Value.R" }, + { MigrationAction::Rename, "gCollisionViewer.SpecialSurfaceColor.Value.Type", "gDeveloperTools.CollisionViewer.SpecialSurfaceColor.Value.Type" }, + { MigrationAction::Rename, "gCollisionViewer.VoidCollisionColor", "gDeveloperTools.CollisionViewer.VoidCollisionColor" }, + { MigrationAction::Rename, "gCollisionViewer.VoidCollisionColor.Value", "gDeveloperTools.CollisionViewer.VoidCollisionColor.Value" }, + { MigrationAction::Rename, "gCollisionViewer.VoidCollisionColor.Value.A", "gDeveloperTools.CollisionViewer.VoidCollisionColor.Value.A" }, + { MigrationAction::Rename, "gCollisionViewer.VoidCollisionColor.Value.B", "gDeveloperTools.CollisionViewer.VoidCollisionColor.Value.B" }, + { MigrationAction::Rename, "gCollisionViewer.VoidCollisionColor.Value.G", "gDeveloperTools.CollisionViewer.VoidCollisionColor.Value.G" }, + { MigrationAction::Rename, "gCollisionViewer.VoidCollisionColor.Value.R", "gDeveloperTools.CollisionViewer.VoidCollisionColor.Value.R" }, + { MigrationAction::Rename, "gCollisionViewer.VoidCollisionColor.Value.Type", "gDeveloperTools.CollisionViewer.VoidCollisionColor.Value.Type" }, + { MigrationAction::Rename, "gCollisionViewer.WaterboxCollisionColor", "gDeveloperTools.CollisionViewer.WaterboxCollisionColor" }, + { MigrationAction::Rename, "gCollisionViewer.WaterboxCollisionColor.Value", "gDeveloperTools.CollisionViewer.WaterboxCollisionColor.Value" }, + { MigrationAction::Rename, "gCollisionViewer.WaterboxCollisionColor.Value.A", "gDeveloperTools.CollisionViewer.WaterboxCollisionColor.Value.A" }, + { MigrationAction::Rename, "gCollisionViewer.WaterboxCollisionColor.Value.B", "gDeveloperTools.CollisionViewer.WaterboxCollisionColor.Value.B" }, + { MigrationAction::Rename, "gCollisionViewer.WaterboxCollisionColor.Value.G", "gDeveloperTools.CollisionViewer.WaterboxCollisionColor.Value.G" }, + { MigrationAction::Rename, "gCollisionViewer.WaterboxCollisionColor.Value.R", "gDeveloperTools.CollisionViewer.WaterboxCollisionColor.Value.R" }, + { MigrationAction::Rename, "gCollisionViewer.WaterboxCollisionColor.Value.Type", "gDeveloperTools.CollisionViewer.WaterboxCollisionColor.Value.Type" }, + { MigrationAction::Rename, "gSettings.AdvancedResolution.Enabled", "gSettings.Graphics.AdvancedResolution.Enabled" }, + { MigrationAction::Rename, "gSettings.AdvancedResolution.AspectRatioX", "gSettings.Graphics.AdvancedResolution.AspectRatioX" }, + { MigrationAction::Rename, "gSettings.AdvancedResolution.AspectRatioY", "gSettings.Graphics.AdvancedResolution.AspectRatioY" }, + { MigrationAction::Rename, "gSettings.AdvancedResolution.IntegerScale.ExceedBoundsBy", "gSettings.Graphics.AdvancedResolution.IntegerScale.ExceedBoundsBy" }, + { MigrationAction::Rename, "gSettings.AdvancedResolution.IntegerScale.Factor", "gSettings.Graphics.AdvancedResolution.IntegerScale.Factor" }, + { MigrationAction::Rename, "gSettings.AdvancedResolution.PixelPerfectMode", "gSettings.Graphics.AdvancedResolution.PixelPerfectMode" }, + { MigrationAction::Rename, "gSettings.AdvancedResolution.VerticalResolutionToggle", "gSettings.Graphics.AdvancedResolution.VerticalResolutionToggle" }, + { MigrationAction::Rename, "gSettings.AdvancedResolution.VerticalPixelCount", "gSettings.Graphics.AdvancedResolution.VerticalPixelCount" }, + { MigrationAction::Rename, "gSettings.AdvancedResolution.UIComboItem.AspectRatio", "gSettings.Graphics.AdvancedResolution.UIComboItem.AspectRatio" }, + { MigrationAction::Rename, "gSettings.AdvancedResolution.UIComboItem.PixelCount", "gSettings.Graphics.AdvancedResolution.UIComboItem.PixelCount" }, + { MigrationAction::Rename, "gEnhancements.Sfx.MuteCarpenterSfx", "gAudioEditor.MuteCarpenterSfx" }, + { MigrationAction::Rename, "gEnhancements.Sfx.ChildGoronCry", "gAudioEditor.ChildGoronCry" }, + { MigrationAction::Rename, "gEnhancements.Sfx.LowHpAlarm", "gAudioEditor.LowHpAlarm" }, +}; +// clang-format on + +} // namespace SOH diff --git a/mm/2s2h/Config/ConfigUpdaters.cpp b/mm/2s2h/Config/ConfigUpdaters.cpp new file mode 100644 index 0000000000..360c750cc9 --- /dev/null +++ b/mm/2s2h/Config/ConfigUpdaters.cpp @@ -0,0 +1,21 @@ +#include "ConfigUpdaters.h" +#include "ConfigMigrators.h" +#include + +namespace SOH { +ConfigVersion1Updater::ConfigVersion1Updater() : ConfigVersionUpdater(1) { +} + +void ConfigVersion1Updater::Update(Ship::Config* conf) { + + for (Migration migration : version1Migrations) { + if (migration.action == MigrationAction::Rename) { + // LUSLOG_INFO("ConfigVersionUpdaterV1: From: %s, To: %s", migration.from.c_str(), + // migration.to.value().c_str()); + CVarCopy(migration.from.c_str(), migration.to.value().c_str()); + } + CVarClear(migration.from.c_str()); + } +} + +} // namespace SOH \ No newline at end of file diff --git a/mm/2s2h/Config/ConfigUpdaters.h b/mm/2s2h/Config/ConfigUpdaters.h new file mode 100644 index 0000000000..70192119bb --- /dev/null +++ b/mm/2s2h/Config/ConfigUpdaters.h @@ -0,0 +1,10 @@ +#include "libultraship/libultraship.h" + +namespace SOH { +class ConfigVersion1Updater final : public Ship::ConfigVersionUpdater { + public: + ConfigVersion1Updater(); + void Update(Ship::Config* conf); +}; + +}; // namespace SOH diff --git a/mm/2s2h/DeveloperTools/ActorViewer.cpp b/mm/2s2h/DeveloperTools/ActorViewer.cpp index 6366cd013e..7a7536c5e3 100644 --- a/mm/2s2h/DeveloperTools/ActorViewer.cpp +++ b/mm/2s2h/DeveloperTools/ActorViewer.cpp @@ -3,6 +3,7 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/NameTag/NameTag.h" #include "2s2h/ObjectExtension/ActorListIndex.h" +#include "2s2h/cvar_prefixes.h" #include #include #include @@ -49,7 +50,7 @@ std::unordered_map actorDebugNames = { #undef DEFINE_ACTOR_UNSET #define DEBUG_ACTOR_NAMETAG_TAG "debug_actor_viewer" -#define CVAR_ACTOR_NAME_TAGS(val) "gDeveloperTools.ActorNameTags." val +#define CVAR_ACTOR_NAME_TAGS(val) CVAR_DEVELOPER_TOOLS("ActorNameTags.") val std::string GetActorDescription(u16 actorNum) { return actorDescriptions.contains(actorNum) ? actorDescriptions[actorNum] : "???"; @@ -402,7 +403,7 @@ void ActorViewerWindow::DrawElement() { ImGui::InputScalar("rZ", ImGuiDataType_S16, &newActor.rot.z); ImGui::EndGroup(); - UIWidgets::CVarCheckbox("Disable Object Dependency", "gDeveloperTools.DisableObjectDependency"); + UIWidgets::CVarCheckbox("Disable Object Dependency", CVAR_DEVELOPER_TOOLS("DisableObjectDependency")); if (ImGui::IsItemHovered()) { ImGui::BeginTooltip(); ImGui::TextColored( diff --git a/mm/2s2h/DeveloperTools/BetterMapSelect.c b/mm/2s2h/DeveloperTools/BetterMapSelect.c index 8b03130c67..7e5e88c427 100644 --- a/mm/2s2h/DeveloperTools/BetterMapSelect.c +++ b/mm/2s2h/DeveloperTools/BetterMapSelect.c @@ -3,6 +3,7 @@ #include "overlays/gamestates/ovl_file_choose/z_file_select.h" #include "overlays/gamestates/ovl_select/z_select.h" #include +#include "2s2h/cvar_prefixes.h" void BetterMapSelect_LoadGame(MapSelectState* mapSelectState, u32 entrance, s32 spawn); void BetterMapSelect_LoadFileSelect(MapSelectState* mapSelectState); @@ -166,10 +167,10 @@ BetterMapSelectGrottoRespawnInfo sBetterMapSelectCowGrottoInfo[] = { // clang-format on void BetterMapSelect_LoadGame(MapSelectState* mapSelectState, u32 entrance, s32 spawn) { - CVarSetInteger("gDeveloperTools.BetterMapSelect.CurrentScene", mapSelectState->currentScene); - CVarSetInteger("gDeveloperTools.BetterMapSelect.Opt", mapSelectState->opt); - CVarSetInteger("gDeveloperTools.BetterMapSelect.TopDisplayedScene", mapSelectState->topDisplayedScene); - CVarSetInteger("gDeveloperTools.BetterMapSelect.PageDownIndex", mapSelectState->pageDownIndex); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("BetterMapSelect.CurrentScene"), mapSelectState->currentScene); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("BetterMapSelect.Opt"), mapSelectState->opt); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("BetterMapSelect.TopDisplayedScene"), mapSelectState->topDisplayedScene); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("BetterMapSelect.PageDownIndex"), mapSelectState->pageDownIndex); CVarSave(); MapSelect_LoadGame(mapSelectState, entrance, spawn); @@ -224,10 +225,10 @@ void BetterMapSelect_LoadGame(MapSelectState* mapSelectState, u32 entrance, s32 } void BetterMapSelect_LoadFileSelect(MapSelectState* mapSelectState) { - CVarSetInteger("gDeveloperTools.BetterMapSelect.CurrentScene", mapSelectState->currentScene); - CVarSetInteger("gDeveloperTools.BetterMapSelect.Opt", mapSelectState->opt); - CVarSetInteger("gDeveloperTools.BetterMapSelect.TopDisplayedScene", mapSelectState->topDisplayedScene); - CVarSetInteger("gDeveloperTools.BetterMapSelect.PageDownIndex", mapSelectState->pageDownIndex); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("BetterMapSelect.CurrentScene"), mapSelectState->currentScene); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("BetterMapSelect.Opt"), mapSelectState->opt); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("BetterMapSelect.TopDisplayedScene"), mapSelectState->topDisplayedScene); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("BetterMapSelect.PageDownIndex"), mapSelectState->pageDownIndex); CVarSave(); gSaveContext.gameMode = GAMEMODE_FILE_SELECT; STOP_GAMESTATE(&mapSelectState->state); @@ -236,7 +237,7 @@ void BetterMapSelect_LoadFileSelect(MapSelectState* mapSelectState) { void BetterMapSelect_Init(MapSelectState* mapSelectState) { static bool sIsInitialized = false; - sIsBetterMapSelectEnabled = CVarGetInteger("gDeveloperTools.BetterMapSelect.Enabled", 0); + sIsBetterMapSelectEnabled = CVarGetInteger(CVAR_DEVELOPER_TOOLS("BetterMapSelect.Enabled"), 0); if (sIsBetterMapSelectEnabled) { if (!sIsInitialized) { @@ -249,10 +250,11 @@ void BetterMapSelect_Init(MapSelectState* mapSelectState) { mapSelectState->scenes = sBetterScenes; mapSelectState->count = ARRAY_COUNT(sBetterScenes); - mapSelectState->currentScene = CVarGetInteger("gDeveloperTools.BetterMapSelect.CurrentScene", 0); - mapSelectState->opt = CVarGetInteger("gDeveloperTools.BetterMapSelect.Opt", 0); - mapSelectState->topDisplayedScene = CVarGetInteger("gDeveloperTools.BetterMapSelect.TopDisplayedScene", 0); - mapSelectState->pageDownIndex = CVarGetInteger("gDeveloperTools.BetterMapSelect.PageDownIndex", 0); + mapSelectState->currentScene = CVarGetInteger(CVAR_DEVELOPER_TOOLS("BetterMapSelect.CurrentScene"), 0); + mapSelectState->opt = CVarGetInteger(CVAR_DEVELOPER_TOOLS("BetterMapSelect.Opt"), 0); + mapSelectState->topDisplayedScene = + CVarGetInteger(CVAR_DEVELOPER_TOOLS("BetterMapSelect.TopDisplayedScene"), 0); + mapSelectState->pageDownIndex = CVarGetInteger(CVAR_DEVELOPER_TOOLS("BetterMapSelect.PageDownIndex"), 0); gSaveContext.save.cutsceneIndex = STAGE_CURRENT_TIME; } else { @@ -270,7 +272,7 @@ void BetterMapSelect_Init(MapSelectState* mapSelectState) { } void BetterMapSelect_Update(MapSelectState* mapSelectState) { - if (sIsBetterMapSelectEnabled != CVarGetInteger("gDeveloperTools.BetterMapSelect.Enabled", 0)) { + if (sIsBetterMapSelectEnabled != CVarGetInteger(CVAR_DEVELOPER_TOOLS("BetterMapSelect.Enabled"), 0)) { BetterMapSelect_Init(mapSelectState); } @@ -450,7 +452,7 @@ void BetterMapSelect_PrintMenu(MapSelectState* mapSelectState, GfxPrint* printer char* minutePrefix = curMinutes < 10 ? "0" : ""; // Handle 24 or 12 hour time - if (CVarGetInteger("gEnhancements.Graphics.24HoursClock", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Graphics.24HoursClock"), 0)) { if (curHours < 10) { hourPrefix = "0"; } diff --git a/mm/2s2h/DeveloperTools/CollisionViewer.cpp b/mm/2s2h/DeveloperTools/CollisionViewer.cpp index 7eaf4904f8..1ef175f9bc 100644 --- a/mm/2s2h/DeveloperTools/CollisionViewer.cpp +++ b/mm/2s2h/DeveloperTools/CollisionViewer.cpp @@ -1,5 +1,6 @@ #include "CollisionViewer.h" #include "2s2h/BenGui/UIWidgets.hpp" +#include "2s2h/cvar_prefixes.h" #include #include @@ -39,69 +40,76 @@ static std::vector sphereVtx; // Draws the ImGui window for the collision viewer void CollisionViewerWindow::DrawElement() { - UIWidgets::CVarCheckbox("Enabled", "gCollisionViewer.Enabled"); + UIWidgets::CVarCheckbox("Enabled", CVAR_DEVELOPER_TOOLS("CollisionViewer.Enabled")); ImGui::SameLine(); - ImGui::BeginDisabled(CVarGetInteger("gCollisionViewer.Enabled", 0) == 0); + ImGui::BeginDisabled(CVarGetInteger(CVAR_DEVELOPER_TOOLS("CollisionViewer.Enabled"), 0) == 0); - UIWidgets::CVarCheckbox("Apply Shading", "gCollisionViewer.ApplyShading"); + UIWidgets::CVarCheckbox("Apply Shading", CVAR_DEVELOPER_TOOLS("CollisionViewer.ApplyShading")); ImGui::SameLine(); if (UIWidgets::Button("Reset Colors")) { - CVarClear("gCollisionViewer.SceneCollisionColor"); - CVarClear("gCollisionViewer.VoidCollisionColor"); - CVarClear("gCollisionViewer.EntranceCollisionColor"); - CVarClear("gCollisionViewer.SlopeCollisionColor"); - CVarClear("gCollisionViewer.HookshotCollisionColor"); - CVarClear("gCollisionViewer.WaterboxCollisionColor"); - CVarClear("gCollisionViewer.OCollisionColor"); - CVarClear("gCollisionViewer.ACollisionColor"); - CVarClear("gCollisionViewer.ATCollisionColor"); - CVarClear("gCollisionViewer.SpecialSurfaceColor"); - CVarClear("gCollisionViewer.InteractableColor"); + CVarClear(CVAR_DEVELOPER_TOOLS("CollisionViewer.SceneCollisionColor")); + CVarClear(CVAR_DEVELOPER_TOOLS("CollisionViewer.VoidCollisionColor")); + CVarClear(CVAR_DEVELOPER_TOOLS("CollisionViewer.EntranceCollisionColor")); + CVarClear(CVAR_DEVELOPER_TOOLS("CollisionViewer.SlopeCollisionColor")); + CVarClear(CVAR_DEVELOPER_TOOLS("CollisionViewer.HookshotCollisionColor")); + CVarClear(CVAR_DEVELOPER_TOOLS("CollisionViewer.WaterboxCollisionColor")); + CVarClear(CVAR_DEVELOPER_TOOLS("CollisionViewer.OCollisionColor")); + CVarClear(CVAR_DEVELOPER_TOOLS("CollisionViewer.ACollisionColor")); + CVarClear(CVAR_DEVELOPER_TOOLS("CollisionViewer.ATCollisionColor")); + CVarClear(CVAR_DEVELOPER_TOOLS("CollisionViewer.SpecialSurfaceColor")); + CVarClear(CVAR_DEVELOPER_TOOLS("CollisionViewer.InteractableColor")); Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame(); } ImGui::SeparatorText("Collision Types"); - UIWidgets::CVarCombobox("Scene", "gCollisionViewer.SceneCollisionMode", ColRenderSettingNames, - { .color = UIWidgets::Colors::Gray }); - UIWidgets::CVarCombobox("BG Actors", "gCollisionViewer.BGActorsCollisionMode", ColRenderSettingNames, - { .color = UIWidgets::Colors::Gray }); - UIWidgets::CVarCombobox("Col Check", "gCollisionViewer.ColCheckCollisionMode", ColRenderSettingNames, - { .color = UIWidgets::Colors::Gray }); - UIWidgets::CVarCombobox("Waterbox", "gCollisionViewer.WaterboxCollisionMode", ColRenderSettingNames, + UIWidgets::CVarCombobox("Scene", CVAR_DEVELOPER_TOOLS("CollisionViewer.SceneCollisionMode"), ColRenderSettingNames, { .color = UIWidgets::Colors::Gray }); + UIWidgets::CVarCombobox("BG Actors", CVAR_DEVELOPER_TOOLS("CollisionViewer.BGActorsCollisionMode"), + ColRenderSettingNames, { .color = UIWidgets::Colors::Gray }); + UIWidgets::CVarCombobox("Col Check", CVAR_DEVELOPER_TOOLS("CollisionViewer.ColCheckCollisionMode"), + ColRenderSettingNames, { .color = UIWidgets::Colors::Gray }); + UIWidgets::CVarCombobox("Waterbox", CVAR_DEVELOPER_TOOLS("CollisionViewer.WaterboxCollisionMode"), + ColRenderSettingNames, { .color = UIWidgets::Colors::Gray }); ImGui::SeparatorText("Colors"); if (ImGui::BeginTable("table table", 3, ImGuiTableFlags_NoBordersInBody)) { ImGui::TableNextColumn(); - UIWidgets::CVarColorPicker("Normal", "gCollisionViewer.SceneCollisionColor", { 255, 255, 255, 255 }); + UIWidgets::CVarColorPicker("Normal", CVAR_DEVELOPER_TOOLS("CollisionViewer.SceneCollisionColor"), + { 255, 255, 255, 255 }); ImGui::TableNextColumn(); - UIWidgets::CVarColorPicker("Void", "gCollisionViewer.VoidCollisionColor", { 255, 0, 0, 255 }); + UIWidgets::CVarColorPicker("Void", CVAR_DEVELOPER_TOOLS("CollisionViewer.VoidCollisionColor"), + { 255, 0, 0, 255 }); ImGui::TableNextColumn(); - UIWidgets::CVarColorPicker("Entrance", "gCollisionViewer.EntranceCollisionColor", { 0, 255, 0, 255 }); + UIWidgets::CVarColorPicker("Entrance", CVAR_DEVELOPER_TOOLS("CollisionViewer.EntranceCollisionColor"), + { 0, 255, 0, 255 }); ImGui::TableNextColumn(); - UIWidgets::CVarColorPicker("Slope", "gCollisionViewer.SlopeCollisionColor", { 255, 255, 128, 255 }); + UIWidgets::CVarColorPicker("Slope", CVAR_DEVELOPER_TOOLS("CollisionViewer.SlopeCollisionColor"), + { 255, 255, 128, 255 }); ImGui::TableNextColumn(); - UIWidgets::CVarColorPicker("Hookshotable", "gCollisionViewer.HookshotCollisionColor", { 128, 128, 255, 255 }); + UIWidgets::CVarColorPicker("Hookshotable", CVAR_DEVELOPER_TOOLS("CollisionViewer.HookshotCollisionColor"), + { 128, 128, 255, 255 }); ImGui::TableNextColumn(); - UIWidgets::CVarColorPicker("Waterbox", "gCollisionViewer.WaterboxCollisionColor", { 0, 0, 255, 255 }); + UIWidgets::CVarColorPicker("Waterbox", CVAR_DEVELOPER_TOOLS("CollisionViewer.WaterboxCollisionColor"), + { 0, 0, 255, 255 }); ImGui::TableNextColumn(); - UIWidgets::CVarColorPicker("OC", "gCollisionViewer.OCollisionColor", { 255, 255, 255, 255 }); + UIWidgets::CVarColorPicker("OC", CVAR_DEVELOPER_TOOLS("CollisionViewer.OCollisionColor"), + { 255, 255, 255, 255 }); ImGui::TableNextColumn(); - UIWidgets::CVarColorPicker("AC", "gCollisionViewer.ACollisionColor", { 0, 0, 255, 255 }); + UIWidgets::CVarColorPicker("AC", CVAR_DEVELOPER_TOOLS("CollisionViewer.ACollisionColor"), { 0, 0, 255, 255 }); ImGui::TableNextColumn(); - UIWidgets::CVarColorPicker("AT", "gCollisionViewer.ATCollisionColor", { 255, 0, 0, 255 }); + UIWidgets::CVarColorPicker("AT", CVAR_DEVELOPER_TOOLS("CollisionViewer.ATCollisionColor"), { 255, 0, 0, 255 }); ImGui::EndTable(); } - UIWidgets::CVarColorPicker("Special Surface (Grass/Sand/Etc)", "gCollisionViewer.SpecialSurfaceColor", - { 192, 255, 192, 255 }); - UIWidgets::CVarColorPicker("Interactable (Vines/Crawlspace/Etc)", "gCollisionViewer.InteractableColor", - { 192, 0, 192, 255 }); + UIWidgets::CVarColorPicker("Special Surface (Grass/Sand/Etc)", + CVAR_DEVELOPER_TOOLS("CollisionViewer.SpecialSurfaceColor"), { 192, 255, 192, 255 }); + UIWidgets::CVarColorPicker("Interactable (Vines/Crawlspace/Etc)", + CVAR_DEVELOPER_TOOLS("CollisionViewer.InteractableColor"), { 192, 0, 192, 255 }); ImGui::EndDisabled(); } @@ -312,7 +320,7 @@ void InitGfx(std::vector& gfx, ColRenderSetting setting) { } // Default decal mode to on, users can override it manually but there's not really a use case for the other modes - if (CVarGetInteger("gCollisionViewer.DecalMode", 1)) { + if (CVarGetInteger(CVAR_DEVELOPER_TOOLS("CollisionViewer.DecalMode"), 1)) { rm |= ZMODE_DEC; } else if (setting == ColRenderSetting::Transparent) { rm |= ZMODE_XLU; @@ -324,7 +332,7 @@ void InitGfx(std::vector& gfx, ColRenderSetting setting) { gfx.push_back(gsDPSetCycleType(G_CYC_1CYCLE)); gfx.push_back(gsDPSetRenderMode(rm | blc1, rm | blc2)); - if (CVarGetInteger("gCollisionViewer.ApplyShading", 0) != 0) { + if (CVarGetInteger(CVAR_DEVELOPER_TOOLS("CollisionViewer.ApplyShading"), 0) != 0) { gfx.push_back(gsDPSetCombineMode(G_CC_MODULATERGB_PRIM_ENVA, G_CC_MODULATERGB_PRIM_ENVA)); gfx.push_back(gsSPLoadGeometryMode(G_CULL_BACK | G_ZBUFFER | G_LIGHTING)); } else { @@ -337,14 +345,20 @@ void InitGfx(std::vector& gfx, ColRenderSetting setting) { // Draws a dynapoly structure (scenes or Bg Actors) void DrawDynapoly(std::vector& dl, CollisionHeader* col, int32_t bgId) { - Color_RGBA8 sceneCollisionColor = CVarGetColor("gCollisionViewer.SceneCollisionColor", { 255, 255, 255, 255 }); - Color_RGBA8 voidCollisionColor = CVarGetColor("gCollisionViewer.VoidCollisionColor", { 255, 0, 0, 255 }); - Color_RGBA8 entranceCollisionColor = CVarGetColor("gCollisionViewer.EntranceCollisionColor", { 0, 255, 0, 255 }); - Color_RGBA8 slopeCollisionColor = CVarGetColor("gCollisionViewer.SlopeCollisionColor", { 255, 255, 128, 255 }); + Color_RGBA8 sceneCollisionColor = + CVarGetColor(CVAR_DEVELOPER_TOOLS("CollisionViewer.SceneCollisionColor"), { 255, 255, 255, 255 }); + Color_RGBA8 voidCollisionColor = + CVarGetColor(CVAR_DEVELOPER_TOOLS("CollisionViewer.VoidCollisionColor"), { 255, 0, 0, 255 }); + Color_RGBA8 entranceCollisionColor = + CVarGetColor(CVAR_DEVELOPER_TOOLS("CollisionViewer.EntranceCollisionColor"), { 0, 255, 0, 255 }); + Color_RGBA8 slopeCollisionColor = + CVarGetColor(CVAR_DEVELOPER_TOOLS("CollisionViewer.SlopeCollisionColor"), { 255, 255, 128, 255 }); Color_RGBA8 hookshotCollisionColor = - CVarGetColor("gCollisionViewer.HookshotCollisionColor", { 128, 128, 255, 255 }); - Color_RGBA8 specialSurfaceColor = CVarGetColor("gCollisionViewer.SpecialSurfaceColor", { 192, 255, 192, 255 }); - Color_RGBA8 interactableColor = CVarGetColor("gCollisionViewer.InteractableColor", { 192, 0, 192, 255 }); + CVarGetColor(CVAR_DEVELOPER_TOOLS("CollisionViewer.HookshotCollisionColor"), { 128, 128, 255, 255 }); + Color_RGBA8 specialSurfaceColor = + CVarGetColor(CVAR_DEVELOPER_TOOLS("CollisionViewer.SpecialSurfaceColor"), { 192, 255, 192, 255 }); + Color_RGBA8 interactableColor = + CVarGetColor(CVAR_DEVELOPER_TOOLS("CollisionViewer.InteractableColor"), { 192, 0, 192, 255 }); uint32_t colorR = sceneCollisionColor.r; uint32_t colorG = sceneCollisionColor.g; uint32_t colorB = sceneCollisionColor.b; @@ -440,8 +454,8 @@ void DrawDynapoly(std::vector& dl, CollisionHeader* col, int32_t bgId) { // Draws the scene void DrawSceneCollision() { - ColRenderSetting showSceneColSetting = - (ColRenderSetting)CVarGetInteger("gCollisionViewer.SceneCollisionMode", (uint32_t)ColRenderSetting::Disabled); + ColRenderSetting showSceneColSetting = (ColRenderSetting)CVarGetInteger( + CVAR_DEVELOPER_TOOLS("CollisionViewer.SceneCollisionMode"), (uint32_t)ColRenderSetting::Disabled); if (showSceneColSetting == ColRenderSetting::Disabled) { return; @@ -456,8 +470,8 @@ void DrawSceneCollision() { // Draws all Bg Actors void DrawBgActorCollision() { - ColRenderSetting showBgActorSetting = (ColRenderSetting)CVarGetInteger("gCollisionViewer.BGActorsCollisionMode", - (uint32_t)ColRenderSetting::Disabled); + ColRenderSetting showBgActorSetting = (ColRenderSetting)CVarGetInteger( + CVAR_DEVELOPER_TOOLS("CollisionViewer.BGActorsCollisionMode"), (uint32_t)ColRenderSetting::Disabled); if (showBgActorSetting == ColRenderSetting::Disabled) { return; } @@ -582,11 +596,14 @@ void DrawColCheckList(std::vector& dl, Collider** objects, int32_t count) { // Draws all Col Check objects void DrawColCheckCollision() { - Color_RGBA8 oCollisionColor = CVarGetColor("gCollisionViewer.OCollisionColor", { 255, 255, 255, 255 }); - Color_RGBA8 aCollisionColor = CVarGetColor("gCollisionViewer.ACollisionColor", { 0, 0, 255, 255 }); - Color_RGBA8 aTCollisionColor = CVarGetColor("gCollisionViewer.ATCollisionColor", { 255, 0, 0, 255 }); - ColRenderSetting showColCheckSetting = (ColRenderSetting)CVarGetInteger("gCollisionViewer.ColCheckCollisionMode", - (uint32_t)ColRenderSetting::Disabled); + Color_RGBA8 oCollisionColor = + CVarGetColor(CVAR_DEVELOPER_TOOLS("CollisionViewer.OCollisionColor"), { 255, 255, 255, 255 }); + Color_RGBA8 aCollisionColor = + CVarGetColor(CVAR_DEVELOPER_TOOLS("CollisionViewer.ACollisionColor"), { 0, 0, 255, 255 }); + Color_RGBA8 aTCollisionColor = + CVarGetColor(CVAR_DEVELOPER_TOOLS("CollisionViewer.ATCollisionColor"), { 255, 0, 0, 255 }); + ColRenderSetting showColCheckSetting = (ColRenderSetting)CVarGetInteger( + CVAR_DEVELOPER_TOOLS("CollisionViewer.ColCheckCollisionMode"), (uint32_t)ColRenderSetting::Disabled); if (showColCheckSetting == ColRenderSetting::Disabled) { return; } @@ -633,9 +650,10 @@ void DrawWaterbox(std::vector& dl, WaterBox* water, float water_max_depth = // Draws all waterboxes void DrawWaterboxList() { - Color_RGBA8 waterboxCollisionColor = CVarGetColor("gCollisionViewer.WaterboxCollisionColor", { 0, 0, 255, 255 }); - ColRenderSetting showWaterboxSetting = (ColRenderSetting)CVarGetInteger("gCollisionViewer.WaterboxCollisionMode", - (uint32_t)ColRenderSetting::Disabled); + Color_RGBA8 waterboxCollisionColor = + CVarGetColor(CVAR_DEVELOPER_TOOLS("CollisionViewer.WaterboxCollisionColor"), { 0, 0, 255, 255 }); + ColRenderSetting showWaterboxSetting = (ColRenderSetting)CVarGetInteger( + CVAR_DEVELOPER_TOOLS("CollisionViewer.WaterboxCollisionMode"), (uint32_t)ColRenderSetting::Disabled); if (showWaterboxSetting == ColRenderSetting::Disabled) { return; } @@ -664,7 +682,7 @@ template size_t ResetVector(T& vec) { } extern "C" void DrawCollisionViewer() { - if (gPlayState == nullptr || !CVarGetInteger("gCollisionViewer.Enabled", 0)) { + if (gPlayState == nullptr || !CVarGetInteger(CVAR_DEVELOPER_TOOLS("CollisionViewer.Enabled"), 0)) { return; } diff --git a/mm/2s2h/DeveloperTools/DLViewer.cpp b/mm/2s2h/DeveloperTools/DLViewer.cpp index c89ba182b1..d3468a4bf3 100644 --- a/mm/2s2h/DeveloperTools/DLViewer.cpp +++ b/mm/2s2h/DeveloperTools/DLViewer.cpp @@ -4,6 +4,7 @@ #include #include #include "BenPort.h" +#include "2s2h/cvar_prefixes.h" #include extern "C" { @@ -227,13 +228,13 @@ void DrawViewOptions() { } if (ImGui::BeginPopup("dlViewerOptions")) { - UIWidgets::CVarCheckbox("Show Command Index", "gDeveloperTools.DLViewer.ShowCommandIndex", + UIWidgets::CVarCheckbox("Show Command Index", CVAR_DEVELOPER_TOOLS("DLViewer.ShowCommandIndex"), { .defaultValue = 1 }); - UIWidgets::CVarCheckbox("Show Raw Hex Values", "gDeveloperTools.DLViewer.ShowCommandHex", + UIWidgets::CVarCheckbox("Show Raw Hex Values", CVAR_DEVELOPER_TOOLS("DLViewer.ShowCommandHex"), { .defaultValue = 0 }); - UIWidgets::CVarCheckbox("Show Metadata", "gDeveloperTools.DLViewer.ShowMetadata", { .defaultValue = 1 }); - UIWidgets::CVarCheckbox("Color Preview", "gDeveloperTools.DLViewer.ColorPreview", { .defaultValue = 1 }); - UIWidgets::CVarCheckbox("Expanded View", "gDeveloperTools.DLViewer.ExpandedView", { .defaultValue = 0 }); + UIWidgets::CVarCheckbox("Show Metadata", CVAR_DEVELOPER_TOOLS("DLViewer.ShowMetadata"), { .defaultValue = 1 }); + UIWidgets::CVarCheckbox("Color Preview", CVAR_DEVELOPER_TOOLS("DLViewer.ColorPreview"), { .defaultValue = 1 }); + UIWidgets::CVarCheckbox("Expanded View", CVAR_DEVELOPER_TOOLS("DLViewer.ExpandedView"), { .defaultValue = 0 }); ImGui::EndPopup(); } } @@ -244,21 +245,21 @@ void DrawInstructionFilters() { } if (ImGui::BeginPopup("dlViewerFilters")) { - bool allChecked = CVarGetInteger("gDeveloperTools.DLViewer.Filter.Color", 1) && - CVarGetInteger("gDeveloperTools.DLViewer.Filter.Texture", 1) && - CVarGetInteger("gDeveloperTools.DLViewer.Filter.Geometry", 1) && - CVarGetInteger("gDeveloperTools.DLViewer.Filter.DisplayList", 1) && - CVarGetInteger("gDeveloperTools.DLViewer.Filter.Sync", 1) && - CVarGetInteger("gDeveloperTools.DLViewer.Filter.Other", 1) && - CVarGetInteger("gDeveloperTools.DLViewer.Filter.Unknown", 0); - - bool someChecked = CVarGetInteger("gDeveloperTools.DLViewer.Filter.Color", 0) || - CVarGetInteger("gDeveloperTools.DLViewer.Filter.Texture", 0) || - CVarGetInteger("gDeveloperTools.DLViewer.Filter.Geometry", 0) || - CVarGetInteger("gDeveloperTools.DLViewer.Filter.DisplayList", 0) || - CVarGetInteger("gDeveloperTools.DLViewer.Filter.Sync", 0) || - CVarGetInteger("gDeveloperTools.DLViewer.Filter.Other", 0) || - CVarGetInteger("gDeveloperTools.DLViewer.Filter.Unknown", 0); + bool allChecked = CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Color"), 1) && + CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Texture"), 1) && + CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Geometry"), 1) && + CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.DisplayList"), 1) && + CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Sync"), 1) && + CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Other"), 1) && + CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Unknown"), 0); + + bool someChecked = CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Color"), 0) || + CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Texture"), 0) || + CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Geometry"), 0) || + CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.DisplayList"), 0) || + CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Sync"), 0) || + CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Other"), 0) || + CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Unknown"), 0); ImGuiContext* g = ImGui::GetCurrentContext(); ImGuiItemFlags backup_item_flags = g->CurrentItemFlags; @@ -267,25 +268,28 @@ void DrawInstructionFilters() { bool allCheckedValue = allChecked; if (UIWidgets::Checkbox("All", &allCheckedValue)) { int value = allCheckedValue ? 1 : 0; - CVarSetInteger("gDeveloperTools.DLViewer.Filter.Color", value); - CVarSetInteger("gDeveloperTools.DLViewer.Filter.Texture", value); - CVarSetInteger("gDeveloperTools.DLViewer.Filter.Geometry", value); - CVarSetInteger("gDeveloperTools.DLViewer.Filter.DisplayList", value); - CVarSetInteger("gDeveloperTools.DLViewer.Filter.Sync", value); - CVarSetInteger("gDeveloperTools.DLViewer.Filter.Other", value); - CVarSetInteger("gDeveloperTools.DLViewer.Filter.Unknown", value); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Color"), value); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Texture"), value); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Geometry"), value); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.DisplayList"), value); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Sync"), value); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Other"), value); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Unknown"), value); Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame(); } g->CurrentItemFlags = backup_item_flags; - UIWidgets::CVarCheckbox("Color Commands", "gDeveloperTools.DLViewer.Filter.Color", { .defaultValue = 1 }); - UIWidgets::CVarCheckbox("Texture Commands", "gDeveloperTools.DLViewer.Filter.Texture", { .defaultValue = 1 }); - UIWidgets::CVarCheckbox("Geometry Commands", "gDeveloperTools.DLViewer.Filter.Geometry", { .defaultValue = 1 }); - UIWidgets::CVarCheckbox("Display List Commands", "gDeveloperTools.DLViewer.Filter.DisplayList", + UIWidgets::CVarCheckbox("Color Commands", CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Color"), { .defaultValue = 1 }); + UIWidgets::CVarCheckbox("Texture Commands", CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Texture"), { .defaultValue = 1 }); - UIWidgets::CVarCheckbox("Sync Commands", "gDeveloperTools.DLViewer.Filter.Sync", { .defaultValue = 1 }); - UIWidgets::CVarCheckbox("Other Commands", "gDeveloperTools.DLViewer.Filter.Other", { .defaultValue = 1 }); - UIWidgets::CVarCheckbox("Unknown Commands", "gDeveloperTools.DLViewer.Filter.Unknown", { .defaultValue = 0 }); + UIWidgets::CVarCheckbox("Geometry Commands", CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Geometry"), + { .defaultValue = 1 }); + UIWidgets::CVarCheckbox("Display List Commands", CVAR_DEVELOPER_TOOLS("DLViewer.Filter.DisplayList"), + { .defaultValue = 1 }); + UIWidgets::CVarCheckbox("Sync Commands", CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Sync"), { .defaultValue = 1 }); + UIWidgets::CVarCheckbox("Other Commands", CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Other"), { .defaultValue = 1 }); + UIWidgets::CVarCheckbox("Unknown Commands", CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Unknown"), + { .defaultValue = 0 }); ImGui::EndPopup(); } } @@ -294,19 +298,19 @@ bool ShouldShowCommand(int cmd) { CommandCategory category = GetCommandCategory(cmd); switch (category) { case CommandCategory::Color: - return CVarGetInteger("gDeveloperTools.DLViewer.Filter.Color", 1) != 0; + return CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Color"), 1) != 0; case CommandCategory::Texture: - return CVarGetInteger("gDeveloperTools.DLViewer.Filter.Texture", 1) != 0; + return CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Texture"), 1) != 0; case CommandCategory::Geometry: - return CVarGetInteger("gDeveloperTools.DLViewer.Filter.Geometry", 1) != 0; + return CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Geometry"), 1) != 0; case CommandCategory::DisplayList: - return CVarGetInteger("gDeveloperTools.DLViewer.Filter.DisplayList", 1) != 0; + return CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.DisplayList"), 1) != 0; case CommandCategory::Sync: - return CVarGetInteger("gDeveloperTools.DLViewer.Filter.Sync", 1) != 0; + return CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Sync"), 1) != 0; case CommandCategory::Other: - return CVarGetInteger("gDeveloperTools.DLViewer.Filter.Other", 1) != 0; + return CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Other"), 1) != 0; case CommandCategory::Unknown: - return CVarGetInteger("gDeveloperTools.DLViewer.Filter.Unknown", 0) != 0; + return CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Unknown"), 0) != 0; default: return true; } @@ -363,7 +367,7 @@ void DrawColorEditor(uint8_t& r, uint8_t& g, uint8_t& b, uint8_t& a, const std:: } // Color preview - vertically center with inputs - if (CVarGetInteger("gDeveloperTools.DLViewer.ColorPreview", 1)) { + if (CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.ColorPreview"), 1)) { ImGui::SameLine(); // Get the line height to match input fields float lineHeight = ImGui::GetTextLineHeight() + ImGui::GetStyle().FramePadding.y * 2.0f; @@ -509,8 +513,8 @@ void DrawInstructionRow(Gfx* gfx, size_t index, const std::string& activeDL, siz // Calculate column indices dynamically int colIdx = 0; - bool showIndex = CVarGetInteger("gDeveloperTools.DLViewer.ShowCommandIndex", 1) != 0; - bool showMetadata = CVarGetInteger("gDeveloperTools.DLViewer.ShowMetadata", 1) != 0; + bool showIndex = CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.ShowCommandIndex"), 1) != 0; + bool showMetadata = CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.ShowMetadata"), 1) != 0; // Index column if (showIndex) { @@ -579,7 +583,7 @@ void DrawInstructionRow(Gfx* gfx, size_t index, const std::string& activeDL, siz UIWidgets::PopStyleCheckbox(); ImGui::SameLine(); ImGui::TextWrapped("State: %s", state ? "On" : "Off"); - } else if (CVarGetInteger("gDeveloperTools.DLViewer.ShowCommandHex", 0)) { + } else if (CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.ShowCommandHex"), 0)) { ImGui::TextWrapped("w0: 0x%08X w1: 0x%08X", gfx->words.w0, gfx->words.w1); } @@ -653,9 +657,9 @@ void DrawInstructionTable(std::shared_ptr res) { // Determine column count based on CVars int columnCount = 3; // Command, Parameters, Actions (always visible) - if (CVarGetInteger("gDeveloperTools.DLViewer.ShowCommandIndex", 1)) + if (CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.ShowCommandIndex"), 1)) columnCount++; - if (CVarGetInteger("gDeveloperTools.DLViewer.ShowMetadata", 1)) + if (CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.ShowMetadata"), 1)) columnCount++; int columnIndex = 0; @@ -664,7 +668,7 @@ void DrawInstructionTable(std::shared_ptr res) { ImGuiTableFlags_Resizable | ImGuiTableFlags_SizingStretchProp)) { // Setup columns - if (CVarGetInteger("gDeveloperTools.DLViewer.ShowCommandIndex", 1)) { + if (CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.ShowCommandIndex"), 1)) { ImGui::TableSetupColumn("Idx", ImGuiTableColumnFlags_WidthFixed, IDX_COLUMN_WIDTH); } // Use cached width if available @@ -678,7 +682,7 @@ void DrawInstructionTable(std::shared_ptr res) { } ImGui::TableSetupColumn("Command", ImGuiTableColumnFlags_WidthFixed, maxCmdWidth); ImGui::TableSetupColumn("Parameters", ImGuiTableColumnFlags_WidthFixed, PARAMS_COLUMN_WIDTH); - if (CVarGetInteger("gDeveloperTools.DLViewer.ShowMetadata", 1)) { + if (CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.ShowMetadata"), 1)) { ImGui::TableSetupColumn("Metadata", ImGuiTableColumnFlags_WidthStretch); } // Auto-size Actions column to header text (use cached if available) @@ -696,7 +700,8 @@ void DrawInstructionTable(std::shared_ptr res) { int cmd = gfx->words.w0 >> 24; // Skip commands not in filter - if (cmdMap.find(cmd) == cmdMap.end() && !CVarGetInteger("gDeveloperTools.DLViewer.Filter.Unknown", 0)) { + if (cmdMap.find(cmd) == cmdMap.end() && + !CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.Filter.Unknown"), 0)) { continue; } @@ -721,7 +726,7 @@ void DrawInstructionTable(std::shared_ptr res) { if (i < totalInstructions) { ImGui::TableNextRow(); int colIdx = 0; - bool showIndex = CVarGetInteger("gDeveloperTools.DLViewer.ShowCommandIndex", 1) != 0; + bool showIndex = CVarGetInteger(CVAR_DEVELOPER_TOOLS("DLViewer.ShowCommandIndex"), 1) != 0; if (showIndex) { ImGui::TableSetColumnIndex(colIdx++); ImGui::Text("%zu", i); @@ -759,7 +764,7 @@ void DLViewerWindow::DrawElement() { cachedActionsHeaderWidth = ImGui::CalcTextSize("Actions").x + ImGui::GetStyle().FramePadding.x * 2.0f; } - ImGui::BeginDisabled(CVarGetInteger("gDeveloperTools.DisableChanges", 0)); + ImGui::BeginDisabled(CVarGetInteger(CVAR_DEVELOPER_TOOLS("DisableChanges"), 0)); if (OTRGlobals::Instance->fontMonoLarger != nullptr) { ImGui::PushFont(OTRGlobals::Instance->fontMonoLarger); diff --git a/mm/2s2h/DeveloperTools/DeveloperTools.cpp b/mm/2s2h/DeveloperTools/DeveloperTools.cpp index 2bcaeb9e89..7d2317d2bb 100644 --- a/mm/2s2h/DeveloperTools/DeveloperTools.cpp +++ b/mm/2s2h/DeveloperTools/DeveloperTools.cpp @@ -3,6 +3,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "macros.h" @@ -19,10 +20,10 @@ void Inventory_SetWorldMapCloudVisibility(s16 tingleIndex); extern u16 sPersistentCycleWeekEventRegs[ARRAY_COUNT(gSaveContext.save.saveInfo.weekEventReg)]; } -#define CVAR_DEBUG_MODE_NAME "gDeveloperTools.DebugEnabled" +#define CVAR_DEBUG_MODE_NAME CVAR_DEVELOPER_TOOLS("DebugEnabled") #define CVAR_DEBUG_MODE CVarGetInteger(CVAR_DEBUG_MODE_NAME, 0) -#define CVAR_SAVE_FILE_MODE_NAME "gDeveloperTools.DebugSaveFileMode" +#define CVAR_SAVE_FILE_MODE_NAME CVAR_DEVELOPER_TOOLS("DebugSaveFileMode") #define CVAR_SAVE_FILE_MODE CVarGetInteger(CVAR_SAVE_FILE_MODE_NAME, DEBUG_SAVE_INFO_NONE) void SetSaveFileInfo() { @@ -113,7 +114,7 @@ void RegisterDebugSaveCreate() { [](s16 fileNum) { SetSaveFileInfo(); }); } -#define CVAR_PREVENT_ACTOR_UPDATE_NAME "gDeveloperTools.PreventActorUpdate" +#define CVAR_PREVENT_ACTOR_UPDATE_NAME CVAR_DEVELOPER_TOOLS("PreventActorUpdate") #define CVAR_PREVENT_ACTOR_UPDATE CVarGetInteger(CVAR_PREVENT_ACTOR_UPDATE_NAME, 0) void RegisterPreventActorUpdateHooks() { @@ -121,7 +122,7 @@ void RegisterPreventActorUpdateHooks() { [](Actor* actor, bool* result) { *result = false; }); } -#define CVAR_PREVENT_ACTOR_DRAW_NAME "gDeveloperTools.PreventActorDraw" +#define CVAR_PREVENT_ACTOR_DRAW_NAME CVAR_DEVELOPER_TOOLS("PreventActorDraw") #define CVAR_PREVENT_ACTOR_DRAW CVarGetInteger(CVAR_PREVENT_ACTOR_DRAW_NAME, 0) void RegisterPreventActorDrawHooks() { @@ -129,7 +130,7 @@ void RegisterPreventActorDrawHooks() { [](Actor* actor, bool* result) { *result = false; }); } -#define CVAR_PREVENT_ACTOR_INIT_NAME "gDeveloperTools.PreventActorInit" +#define CVAR_PREVENT_ACTOR_INIT_NAME CVAR_DEVELOPER_TOOLS("PreventActorInit") #define CVAR_PREVENT_ACTOR_INIT CVarGetInteger(CVAR_PREVENT_ACTOR_INIT_NAME, 0) void RegisterPreventActorInitHooks() { @@ -152,7 +153,7 @@ void RegisterDebugMode() { CVarSetInteger(CVAR_PREVENT_ACTOR_UPDATE_NAME, 0); CVarSetInteger(CVAR_PREVENT_ACTOR_DRAW_NAME, 0); CVarSetInteger(CVAR_PREVENT_ACTOR_INIT_NAME, 0); - CVarSetInteger("gDeveloperTools.DisableObjectDependency", 0); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("DisableObjectDependency"), 0); if (gPlayState != NULL) { gPlayState->frameAdvCtx.enabled = false; diff --git a/mm/2s2h/DeveloperTools/DeveloperTools.h b/mm/2s2h/DeveloperTools/DeveloperTools.h index 751ee7ec53..965f67d318 100644 --- a/mm/2s2h/DeveloperTools/DeveloperTools.h +++ b/mm/2s2h/DeveloperTools/DeveloperTools.h @@ -1,7 +1,7 @@ #ifndef DEVELOPER_TOOLS_H #define DEVELOPER_TOOLS_H -#define WARP_POINT_CVAR "gDeveloperTools.WarpPoint." +#define WARP_POINT_CVAR CVAR_DEVELOPER_TOOLS("WarpPoint.") enum DebugSaveInfo { DEBUG_SAVE_INFO_NONE, diff --git a/mm/2s2h/DeveloperTools/EventLog.cpp b/mm/2s2h/DeveloperTools/EventLog.cpp index f61804295f..2a7f05fa1b 100644 --- a/mm/2s2h/DeveloperTools/EventLog.cpp +++ b/mm/2s2h/DeveloperTools/EventLog.cpp @@ -8,6 +8,7 @@ #include "2s2h/BenGui/UIWidgets.hpp" #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipUtils.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include @@ -78,7 +79,7 @@ std::string CurrentTime() { } void TrimEventLog() { - while (eventLogEntries.size() > CVarGetInteger("gEventLog.MaxEntries", 1000)) { + while (eventLogEntries.size() > CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.MaxEntries"), 1000)) { eventLogEntries.pop_back(); } } @@ -105,7 +106,7 @@ void RegisterEventLogHooks() { onOpenTextHookId = 0; onItemGiveHookId = 0; - if (!CVarGetInteger("gEventLog.Enabled", 0)) { + if (!CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Enabled"), 0)) { return; } @@ -257,7 +258,7 @@ void RegisterEventLogHooks() { } void EventLogWindow::DrawElement() { - if (UIWidgets::CVarCheckbox("Enable", "gEventLog.Enabled")) { + if (UIWidgets::CVarCheckbox("Enable", CVAR_DEVELOPER_TOOLS("EventLog.Enabled"))) { RegisterEventLogHooks(); } @@ -268,20 +269,26 @@ void EventLogWindow::DrawElement() { } if (ImGui::BeginPopup("eventLogFiltersPopup")) { - bool allChecked = - CVarGetInteger("gEventLog.Filter.FlagSet", 1) && CVarGetInteger("gEventLog.Filter.FlagUnset", 1) && - CVarGetInteger("gEventLog.Filter.SceneFlagSet", 1) && - CVarGetInteger("gEventLog.Filter.SceneFlagUnset", 1) && CVarGetInteger("gEventLog.Filter.ActorInit", 1) && - CVarGetInteger("gEventLog.Filter.ActorKill", 1) && CVarGetInteger("gEventLog.Filter.SceneInit", 1) && - CVarGetInteger("gEventLog.Filter.RoomInit", 1) && CVarGetInteger("gEventLog.Filter.OpenText", 1) && - CVarGetInteger("gEventLog.Filter.ItemGive", 1); - bool someChecked = - CVarGetInteger("gEventLog.Filter.FlagSet", 1) || CVarGetInteger("gEventLog.Filter.FlagUnset", 1) || - CVarGetInteger("gEventLog.Filter.SceneFlagSet", 1) || - CVarGetInteger("gEventLog.Filter.SceneFlagUnset", 1) || CVarGetInteger("gEventLog.Filter.ActorInit", 1) || - CVarGetInteger("gEventLog.Filter.ActorKill", 1) || CVarGetInteger("gEventLog.Filter.SceneInit", 1) || - CVarGetInteger("gEventLog.Filter.RoomInit", 1) || CVarGetInteger("gEventLog.Filter.OpenText", 1) || - CVarGetInteger("gEventLog.Filter.ItemGive", 1); + bool allChecked = CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.FlagSet"), 1) && + CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.FlagUnset"), 1) && + CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.SceneFlagSet"), 1) && + CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.SceneFlagUnset"), 1) && + CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.ActorInit"), 1) && + CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.ActorKill"), 1) && + CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.SceneInit"), 1) && + CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.RoomInit"), 1) && + CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.OpenText"), 1) && + CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.ItemGive"), 1); + bool someChecked = CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.FlagSet"), 1) || + CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.FlagUnset"), 1) || + CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.SceneFlagSet"), 1) || + CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.SceneFlagUnset"), 1) || + CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.ActorInit"), 1) || + CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.ActorKill"), 1) || + CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.SceneInit"), 1) || + CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.RoomInit"), 1) || + CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.OpenText"), 1) || + CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.ItemGive"), 1); ImGuiContext* g = ImGui::GetCurrentContext(); ImGuiItemFlags backup_item_flags = g->CurrentItemFlags; @@ -289,42 +296,44 @@ void EventLogWindow::DrawElement() { g->CurrentItemFlags |= ImGuiItemFlags_MixedValue; if (UIWidgets::Checkbox("All", &allChecked)) { if (allChecked) { - CVarSetInteger("gEventLog.Filter.FlagSet", 1); - CVarSetInteger("gEventLog.Filter.FlagUnset", 1); - CVarSetInteger("gEventLog.Filter.SceneFlagSet", 1); - CVarSetInteger("gEventLog.Filter.SceneFlagUnset", 1); - CVarSetInteger("gEventLog.Filter.ActorInit", 1); - CVarSetInteger("gEventLog.Filter.ActorKill", 1); - CVarSetInteger("gEventLog.Filter.SceneInit", 1); - CVarSetInteger("gEventLog.Filter.RoomInit", 1); - CVarSetInteger("gEventLog.Filter.OpenText", 1); - CVarSetInteger("gEventLog.Filter.ItemGive", 1); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.FlagSet"), 1); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.FlagUnset"), 1); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.SceneFlagSet"), 1); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.SceneFlagUnset"), 1); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.ActorInit"), 1); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.ActorKill"), 1); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.SceneInit"), 1); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.RoomInit"), 1); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.OpenText"), 1); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.ItemGive"), 1); } else { - CVarSetInteger("gEventLog.Filter.FlagSet", 0); - CVarSetInteger("gEventLog.Filter.FlagUnset", 0); - CVarSetInteger("gEventLog.Filter.SceneFlagSet", 0); - CVarSetInteger("gEventLog.Filter.SceneFlagUnset", 0); - CVarSetInteger("gEventLog.Filter.ActorInit", 0); - CVarSetInteger("gEventLog.Filter.ActorKill", 0); - CVarSetInteger("gEventLog.Filter.SceneInit", 0); - CVarSetInteger("gEventLog.Filter.RoomInit", 0); - CVarSetInteger("gEventLog.Filter.OpenText", 0); - CVarSetInteger("gEventLog.Filter.ItemGive", 0); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.FlagSet"), 0); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.FlagUnset"), 0); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.SceneFlagSet"), 0); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.SceneFlagUnset"), 0); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.ActorInit"), 0); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.ActorKill"), 0); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.SceneInit"), 0); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.RoomInit"), 0); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.OpenText"), 0); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.Filter.ItemGive"), 0); } Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame(); } g->CurrentItemFlags = backup_item_flags; - UIWidgets::CVarCheckbox("FlagSet", "gEventLog.Filter.FlagSet", { .defaultValue = 1 }); - UIWidgets::CVarCheckbox("FlagUnset", "gEventLog.Filter.FlagUnset", { .defaultValue = 1 }); - UIWidgets::CVarCheckbox("SceneFlagSet", "gEventLog.Filter.SceneFlagSet", { .defaultValue = 1 }); - UIWidgets::CVarCheckbox("SceneFlagUnset", "gEventLog.Filter.SceneFlagUnset", { .defaultValue = 1 }); - UIWidgets::CVarCheckbox("ActorInit", "gEventLog.Filter.ActorInit", { .defaultValue = 1 }); - UIWidgets::CVarCheckbox("ActorKill", "gEventLog.Filter.ActorKill", { .defaultValue = 1 }); - UIWidgets::CVarCheckbox("SceneInit", "gEventLog.Filter.SceneInit", { .defaultValue = 1 }); - UIWidgets::CVarCheckbox("RoomInit", "gEventLog.Filter.RoomInit", { .defaultValue = 1 }); - UIWidgets::CVarCheckbox("OpenText", "gEventLog.Filter.OpenText", { .defaultValue = 1 }); - UIWidgets::CVarCheckbox("ItemGive", "gEventLog.Filter.ItemGive", { .defaultValue = 1 }); + UIWidgets::CVarCheckbox("FlagSet", CVAR_DEVELOPER_TOOLS("EventLog.Filter.FlagSet"), { .defaultValue = 1 }); + UIWidgets::CVarCheckbox("FlagUnset", CVAR_DEVELOPER_TOOLS("EventLog.Filter.FlagUnset"), { .defaultValue = 1 }); + UIWidgets::CVarCheckbox("SceneFlagSet", CVAR_DEVELOPER_TOOLS("EventLog.Filter.SceneFlagSet"), + { .defaultValue = 1 }); + UIWidgets::CVarCheckbox("SceneFlagUnset", CVAR_DEVELOPER_TOOLS("EventLog.Filter.SceneFlagUnset"), + { .defaultValue = 1 }); + UIWidgets::CVarCheckbox("ActorInit", CVAR_DEVELOPER_TOOLS("EventLog.Filter.ActorInit"), { .defaultValue = 1 }); + UIWidgets::CVarCheckbox("ActorKill", CVAR_DEVELOPER_TOOLS("EventLog.Filter.ActorKill"), { .defaultValue = 1 }); + UIWidgets::CVarCheckbox("SceneInit", CVAR_DEVELOPER_TOOLS("EventLog.Filter.SceneInit"), { .defaultValue = 1 }); + UIWidgets::CVarCheckbox("RoomInit", CVAR_DEVELOPER_TOOLS("EventLog.Filter.RoomInit"), { .defaultValue = 1 }); + UIWidgets::CVarCheckbox("OpenText", CVAR_DEVELOPER_TOOLS("EventLog.Filter.OpenText"), { .defaultValue = 1 }); + UIWidgets::CVarCheckbox("ItemGive", CVAR_DEVELOPER_TOOLS("EventLog.Filter.ItemGive"), { .defaultValue = 1 }); ImGui::EndPopup(); } @@ -337,9 +346,9 @@ void EventLogWindow::DrawElement() { UIWidgets::PushStyleCombobox(); ImGui::PushItemWidth(50); - s32 maxEntries = CVarGetInteger("gEventLog.MaxEntries", 1000); + s32 maxEntries = CVarGetInteger(CVAR_DEVELOPER_TOOLS("EventLog.MaxEntries"), 1000); if (ImGui::InputScalar("##maxEntriesInput", ImGuiDataType_S32, &maxEntries)) { - CVarSetInteger("gEventLog.MaxEntries", MAX(0, maxEntries)); + CVarSetInteger(CVAR_DEVELOPER_TOOLS("EventLog.MaxEntries"), MAX(0, maxEntries)); Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame(); TrimEventLog(); } @@ -361,8 +370,10 @@ void EventLogWindow::DrawElement() { ImGui::TableHeadersRow(); for (int i = 0; i < eventLogEntries.size(); i++) { - if (!CVarGetInteger( - (std::string("gEventLog.Filter.") + eventLogEntryTypeNames[eventLogEntries[i].type]).c_str(), 1)) { + if (!CVarGetInteger((std::string(CVAR_DEVELOPER_TOOLS("EventLog.Filter.")) + + eventLogEntryTypeNames[eventLogEntries[i].type]) + .c_str(), + 1)) { continue; } diff --git a/mm/2s2h/DeveloperTools/ObjectDependency.cpp b/mm/2s2h/DeveloperTools/ObjectDependency.cpp index 6811df9df2..237808e6e7 100644 --- a/mm/2s2h/DeveloperTools/ObjectDependency.cpp +++ b/mm/2s2h/DeveloperTools/ObjectDependency.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" } -#define CVAR_NAME "gDeveloperTools.DisableObjectDependency" +#define CVAR_NAME CVAR_DEVELOPER_TOOLS("DisableObjectDependency") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterObjectDependency() { diff --git a/mm/2s2h/DeveloperTools/SaveEditor.cpp b/mm/2s2h/DeveloperTools/SaveEditor.cpp index 8fbdcddca0..2b24fda1d4 100644 --- a/mm/2s2h/DeveloperTools/SaveEditor.cpp +++ b/mm/2s2h/DeveloperTools/SaveEditor.cpp @@ -7,6 +7,7 @@ #include "2s2h/BenGui/Notification.h" #include "2s2h/Rando/Spoiler/Spoiler.h" #include "2s2h/ShipUtils.h" +#include "2s2h/cvar_prefixes.h" #include "interface/icon_item_dungeon_static/icon_item_dungeon_static.h" #include "archives/icon_item_24_static/icon_item_24_static_yar.h" @@ -406,7 +407,7 @@ void DrawGeneralTab() { std::string hours = ""; std::string ampm = ""; // Handle 24 or 12 hour time - if (CVarGetInteger("gEnhancements.Graphics.24HoursClock", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Graphics.24HoursClock"), 0)) { if (curHours < 10) { hours += "0"; } @@ -754,7 +755,7 @@ void DrawSlot(InventorySlot slot) { ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(1.0f, 1.0f, 1.0f, 0.1f)); if (GET_CUR_FORM_BTN_SLOT(EQUIP_SLOT_C_LEFT) == slot || GET_CUR_FORM_BTN_SLOT(EQUIP_SLOT_C_DOWN) == slot || GET_CUR_FORM_BTN_SLOT(EQUIP_SLOT_C_RIGHT) == slot || - (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0) && + (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0) && (DPAD_GET_CUR_FORM_BTN_SLOT(EQUIP_SLOT_D_RIGHT) == slot || DPAD_GET_CUR_FORM_BTN_SLOT(EQUIP_SLOT_D_LEFT) == slot || DPAD_GET_CUR_FORM_BTN_SLOT(EQUIP_SLOT_D_DOWN) == slot || @@ -1351,7 +1352,7 @@ void DrawDungeonItemTab() { SetDungeonItems(DUNGEON_BOSS_KEY, i); } if (ImGui::BeginPopup("strayFairies")) { - UIWidgets::PushStyleSlider(UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5))); + UIWidgets::PushStyleSlider(UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5))); s32 minStray = 0; s32 maxStray = 15; int currentStrays = gSaveContext.save.saveInfo.inventory.strayFairies[dungeonId]; @@ -1365,7 +1366,7 @@ void DrawDungeonItemTab() { ImGui::EndPopup(); } if (ImGui::BeginPopup("smallKeys")) { - UIWidgets::PushStyleSlider(UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5))); + UIWidgets::PushStyleSlider(UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5))); s32 minKey = -1; s32 maxKey = smallKeyCounts[dungeonId]; int currentKeys = gSaveContext.save.saveInfo.inventory.dungeonKeys[dungeonId]; @@ -2260,7 +2261,7 @@ void DrawRandoTab() { } void SaveEditorWindow::DrawElement() { - UIWidgets::PushStyleTabs(UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5))); + UIWidgets::PushStyleTabs(UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5))); if (ImGui::BeginTabBar("SaveContextTabBar", ImGuiTabBarFlags_NoCloseWithMiddleMouseButton)) { if (ImGui::BeginTabItem("General")) { DrawGeneralTab(); diff --git a/mm/2s2h/DeveloperTools/WarpPoint.cpp b/mm/2s2h/DeveloperTools/WarpPoint.cpp index c4f317bd30..abe87d5e6b 100644 --- a/mm/2s2h/DeveloperTools/WarpPoint.cpp +++ b/mm/2s2h/DeveloperTools/WarpPoint.cpp @@ -4,6 +4,7 @@ #include "2s2h/DeveloperTools/DeveloperTools.h" #include "2s2h/ShipInit.hpp" #include "2s2h/BenGui/BenGui.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "z64.h" @@ -96,7 +97,7 @@ void RegisterWarpPoint() { registered = true; GameInteractor::Instance->RegisterGameHook([]() { - if (!CVarGetInteger("gEnhancements.Cutscenes.SkipToFileSelect", 0) && + if (!CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipToFileSelect"), 0) && CVarGetInteger(WARP_POINT_CVAR "BootToWarpPoint", 0) && CVarGetInteger(WARP_POINT_CVAR "Saved", 0)) { // Normally called on console logo screen gSaveContext.seqId = NA_BGM_DISABLED; @@ -108,7 +109,7 @@ void RegisterWarpPoint() { } void RenderWarpPointSection() { - bool skipToFileSelect = (bool)CVarGetInteger("gEnhancements.Cutscenes.SkipToFileSelect", 0); + bool skipToFileSelect = (bool)CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipToFileSelect"), 0); UIWidgets::CVarCheckbox( "Boot to Warp Point on Launch", WARP_POINT_CVAR "BootToWarpPoint", UIWidgets::CheckboxOptions({ { .disabled = skipToFileSelect, diff --git a/mm/2s2h/Enhancements/Accessibility/NoScreenFlashForEnemyKill.cpp b/mm/2s2h/Enhancements/Accessibility/NoScreenFlashForEnemyKill.cpp index ba1384c808..a72b441f1f 100644 --- a/mm/2s2h/Enhancements/Accessibility/NoScreenFlashForEnemyKill.cpp +++ b/mm/2s2h/Enhancements/Accessibility/NoScreenFlashForEnemyKill.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.A11y.NoScreenFlashForEnemyKill" +#define CVAR_NAME CVAR_ENHANCEMENT("A11y.NoScreenFlashForEnemyKill") #define CVAR CVarGetInteger(CVAR_NAME, 0) static void RegisterDisableScreenFlash() { diff --git a/mm/2s2h/Enhancements/Audio/AudioCollection.cpp b/mm/2s2h/Enhancements/Audio/AudioCollection.cpp index 611671f9b1..92be1d775e 100644 --- a/mm/2s2h/Enhancements/Audio/AudioCollection.cpp +++ b/mm/2s2h/Enhancements/Audio/AudioCollection.cpp @@ -1,5 +1,6 @@ #include "AudioCollection.h" #include "sequence.h" +#include "2s2h/cvar_prefixes.h" #include #include #include @@ -226,7 +227,6 @@ AudioCollection::AudioCollection() { } } } -#define CVAR_AUDIO(var) CVAR_PREFIX_AUDIO "." var std::string AudioCollection::GetCvarKey(std::string sfxKey) { auto prefix = CVAR_AUDIO("ReplacedSequences."); return prefix + sfxKey + ".value"; diff --git a/mm/2s2h/Enhancements/Audio/AudioEditor.cpp b/mm/2s2h/Enhancements/Audio/AudioEditor.cpp index b215ea8967..d786ab5d7e 100644 --- a/mm/2s2h/Enhancements/Audio/AudioEditor.cpp +++ b/mm/2s2h/Enhancements/Audio/AudioEditor.cpp @@ -14,6 +14,7 @@ #include "2s2h/BenGui/BenGui.hpp" #include "AudioCollection.h" #include "2s2h/GameInteractor/GameInteractor.h" +#include "2s2h/cvar_prefixes.h" #include extern "C" Vec3f gZeroVec3f; @@ -54,8 +55,6 @@ size_t AuthenticCountBySequenceType(SeqType type) { return AudioCollection::Instance->CountSequencesByType(type); } -#define CVAR_AUDIO(var) CVAR_PREFIX_AUDIO "." var - // Grabs the current BGM sequence ID and replays it // which will lookup the proper override, or reset back to vanilla void ReplayCurrentBGM() { diff --git a/mm/2s2h/Enhancements/Audio/AudioHook.cpp b/mm/2s2h/Enhancements/Audio/AudioHook.cpp index f5411b079a..03a8204324 100644 --- a/mm/2s2h/Enhancements/Audio/AudioHook.cpp +++ b/mm/2s2h/Enhancements/Audio/AudioHook.cpp @@ -4,6 +4,7 @@ #include "2s2h/BenGui/BenMenu.h" #include "2s2h/Enhancements/Audio/AudioCollection.h" #include <2s2h/BenGui/Notification.h> +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -11,7 +12,7 @@ extern "C" { extern PlayState* gPlayState; } -#define CVAR_SEQOVERLAY_NAME "gAudioEditor.SeqNameNotification" +#define CVAR_SEQOVERLAY_NAME CVAR_AUDIO("SeqNameNotification") #define CVAR_SEQOVERLAY_DEFAULT 0 #define CVAR_SEQOVERLAY_VALUE CVarGetInteger(CVAR_SEQOVERLAY_NAME, CVAR_SEQOVERLAY_DEFAULT) @@ -31,7 +32,7 @@ void NotifySequenceName(int32_t playerIdx, int32_t seqId) { if (sequenceName != NULL) { Notification::Emit({ .message = ICON_FA_MUSIC " " + std::string(sequenceName), - .remainingTime = static_cast(CVarGetInteger("gAudioEditor.SeqNameNotificationDuration", 10)), + .remainingTime = static_cast(CVarGetInteger(CVAR_AUDIO("SeqNameNotificationDuration"), 10)), .mute = true, }); } diff --git a/mm/2s2h/Enhancements/Audio/Sfx/DisableEnemyProximityMusic.cpp b/mm/2s2h/Enhancements/Audio/Sfx/DisableEnemyProximityMusic.cpp index 8d37ca8949..6ecb1c34b8 100644 --- a/mm/2s2h/Enhancements/Audio/Sfx/DisableEnemyProximityMusic.cpp +++ b/mm/2s2h/Enhancements/Audio/Sfx/DisableEnemyProximityMusic.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gAudioEditor.EnemyBGMDisable" +#define CVAR_NAME CVAR_AUDIO("EnemyBGMDisable") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterDisableEnemyProximityMusic() { diff --git a/mm/2s2h/Enhancements/Audio/Sfx/DisableTatlCallAudio.cpp b/mm/2s2h/Enhancements/Audio/Sfx/DisableTatlCallAudio.cpp index 1d4c6f7aad..9a47c1c33c 100644 --- a/mm/2s2h/Enhancements/Audio/Sfx/DisableTatlCallAudio.cpp +++ b/mm/2s2h/Enhancements/Audio/Sfx/DisableTatlCallAudio.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gAudioEditor.DisableTatlCallAudio" +#define CVAR_NAME CVAR_AUDIO("DisableTatlCallAudio") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterDisableTatlCallAudio() { diff --git a/mm/2s2h/Enhancements/Audio/Sfx/LinksVoicePitchMultiplier.cpp b/mm/2s2h/Enhancements/Audio/Sfx/LinksVoicePitchMultiplier.cpp index 16bcca2043..12f84f9dd6 100644 --- a/mm/2s2h/Enhancements/Audio/Sfx/LinksVoicePitchMultiplier.cpp +++ b/mm/2s2h/Enhancements/Audio/Sfx/LinksVoicePitchMultiplier.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -9,7 +10,7 @@ extern "C" { // For Link's voice pitch SFX modifier static f32 freqMultiplier = 1; -#define CVAR_NAME "gAudioEditor.LinkVoiceFreqMultiplier.Enable" +#define CVAR_NAME CVAR_AUDIO("LinkVoiceFreqMultiplier.Enable") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterLinksVoicePitchMultiplier() { @@ -20,7 +21,7 @@ void RegisterLinksVoicePitchMultiplier() { if (sfxId >= NA_SE_VO_LI_SWORD_N && sfxId <= NA_SE_VO_DEMO_394 || sfxId == NA_SE_PL_TRANSFORM_VOICE) { *should = false; - freqMultiplier = CVarGetFloat("gAudioEditor.LinkVoiceFreqMultiplier.Scale", 1.0); + freqMultiplier = CVarGetFloat(CVAR_AUDIO("LinkVoiceFreqMultiplier.Scale"), 1.0); if (freqMultiplier <= 0) { freqMultiplier = 1; } diff --git a/mm/2s2h/Enhancements/Audio/Sfx/MuteCarpenterSfx.cpp b/mm/2s2h/Enhancements/Audio/Sfx/MuteCarpenterSfx.cpp index e0dbcb6ab2..ede463d03a 100644 --- a/mm/2s2h/Enhancements/Audio/Sfx/MuteCarpenterSfx.cpp +++ b/mm/2s2h/Enhancements/Audio/Sfx/MuteCarpenterSfx.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_Obj_Sound/z_obj_sound.h" } -#define CVAR_NAME "gAudioEditor.MuteCarpenterSfx" +#define CVAR_NAME CVAR_AUDIO("MuteCarpenterSfx") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterMuteCarpenterSfx() { diff --git a/mm/2s2h/Enhancements/Audio/Sfx/MuteCryingGoronChild.cpp b/mm/2s2h/Enhancements/Audio/Sfx/MuteCryingGoronChild.cpp index 74c9981723..6506f62f85 100644 --- a/mm/2s2h/Enhancements/Audio/Sfx/MuteCryingGoronChild.cpp +++ b/mm/2s2h/Enhancements/Audio/Sfx/MuteCryingGoronChild.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gAudioEditor.ChildGoronCry" +#define CVAR_NAME CVAR_AUDIO("ChildGoronCry") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterMuteCryingGoronChild() { diff --git a/mm/2s2h/Enhancements/Audio/Sfx/MuteLowHpAlarm.cpp b/mm/2s2h/Enhancements/Audio/Sfx/MuteLowHpAlarm.cpp index f5e1e565d3..91f1cc736a 100644 --- a/mm/2s2h/Enhancements/Audio/Sfx/MuteLowHpAlarm.cpp +++ b/mm/2s2h/Enhancements/Audio/Sfx/MuteLowHpAlarm.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gAudioEditor.LowHpAlarm" +#define CVAR_NAME CVAR_AUDIO("LowHpAlarm") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterMuteLowHpAlarm() { diff --git a/mm/2s2h/Enhancements/Camera/DebugCam.cpp b/mm/2s2h/Enhancements/Camera/DebugCam.cpp index e0f7748fb0..0c2b95a1c3 100644 --- a/mm/2s2h/Enhancements/Camera/DebugCam.cpp +++ b/mm/2s2h/Enhancements/Camera/DebugCam.cpp @@ -2,6 +2,7 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" #include "CameraUtils.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "macros.h" @@ -119,17 +120,17 @@ void Camera_DebugCam(Camera* camera) { sDebugCamRefreshParams = false; } - s32 controllerPort = CVarGetInteger("gEnhancements.Camera.DebugCam.Port", CAMERA_DEBUG_DEFAULT_PORT) - 1; + s32 controllerPort = CVarGetInteger(CVAR_ENHANCEMENT("Camera.DebugCam.Port"), CAMERA_DEBUG_DEFAULT_PORT) - 1; if (controllerPort > 3 || controllerPort < 0) { controllerPort = CAMERA_DEBUG_DEFAULT_PORT - 1; - CVarSetInteger("gEnhancements.Camera.DebugCam.Port", CAMERA_DEBUG_DEFAULT_PORT); + CVarSetInteger(CVAR_ENHANCEMENT("Camera.DebugCam.Port"), CAMERA_DEBUG_DEFAULT_PORT); } /* Camera Speed */ - f32 camSpeed = CVarGetFloat("gEnhancements.Camera.DebugCam.CameraSpeed", 0.5f); + f32 camSpeed = CVarGetFloat(CVAR_ENHANCEMENT("Camera.DebugCam.CameraSpeed"), 0.5f); if (CHECK_BTN_ANY(sCamPlayState->state.input[controllerPort].cur.button, BTN_A | BTN_B | BTN_L)) { camSpeed *= 3.0f; } @@ -152,15 +153,15 @@ void Camera_DebugCam(Camera* camera) { Set Camera Pitch and Yaw */ f32 yawDiff = -sCamPlayState->state.input[controllerPort].cur.right_stick_x * 10.0f * - (CVarGetFloat("gEnhancements.Camera.RightStick.CameraSensitivity.X", 1.0f)); + (CVarGetFloat(CVAR_ENHANCEMENT("Camera.RightStick.CameraSensitivity.X"), 1.0f)); f32 pitchDiff = sCamPlayState->state.input[controllerPort].cur.right_stick_y * 10.0f * - (CVarGetFloat("gEnhancements.Camera.RightStick.CameraSensitivity.Y", 1.0f)); + (CVarGetFloat(CVAR_ENHANCEMENT("Camera.RightStick.CameraSensitivity.Y"), 1.0f)); yawDiff *= GameInteractor_InvertControl(GI_INVERT_CAMERA_RIGHT_STICK_X); pitchDiff *= -GameInteractor_InvertControl(GI_INVERT_CAMERA_RIGHT_STICK_Y); // Setup new camera angle based on the calculations from right stick inputs - if (CVarGetInteger("gEnhancements.Camera.DebugCam.6DOF", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Camera.DebugCam.6DOF"), 0)) { Camera_Rotate6DOF(camera, pitchDiff, yawDiff); } else { Camera_RotateGeographic(camera, pitchDiff, yawDiff); @@ -169,7 +170,7 @@ void Camera_DebugCam(Camera* camera) { /* Camera Roll */ - if (CVarGetInteger("gEnhancements.Camera.DebugCam.6DOF", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Camera.DebugCam.6DOF"), 0)) { camera->roll += (CHECK_BTN_ANY(sCamPlayState->state.input[controllerPort].cur.button, BTN_DLEFT) - CHECK_BTN_ANY(sCamPlayState->state.input[controllerPort].cur.button, BTN_DRIGHT)) * 1200.0f * camSpeed * GameInteractor_InvertControl(GI_INVERT_DEBUG_DPAD_X); @@ -217,17 +218,17 @@ void Camera_DebugCam(Camera* camera) { void RegisterDebugCam() { sDebugCamRefreshParams = true; - COND_VB_SHOULD(VB_USE_CUSTOM_CAMERA, CVarGetInteger("gEnhancements.Camera.DebugCam.Enable", 0), { + COND_VB_SHOULD(VB_USE_CUSTOM_CAMERA, CVarGetInteger(CVAR_ENHANCEMENT("Camera.DebugCam.Enable"), 0), { Camera* camera = va_arg(args, Camera*); Camera_DebugCam(camera); *should = false; }); - COND_HOOK(OnPassPlayerInputs, CVarGetInteger("gEnhancements.Camera.DebugCam.Enable", 0), [](Input* input) { - s32 controllerPort = CVarGetInteger("gEnhancements.Camera.DebugCam.Port", CAMERA_DEBUG_DEFAULT_PORT) - 1; + COND_HOOK(OnPassPlayerInputs, CVarGetInteger(CVAR_ENHANCEMENT("Camera.DebugCam.Enable"), 0), [](Input* input) { + s32 controllerPort = CVarGetInteger(CVAR_ENHANCEMENT("Camera.DebugCam.Port"), CAMERA_DEBUG_DEFAULT_PORT) - 1; if (controllerPort > 3 || controllerPort < 0) { controllerPort = CAMERA_DEBUG_DEFAULT_PORT - 1; - CVarSetInteger("gEnhancements.Camera.DebugCam.Port", CAMERA_DEBUG_DEFAULT_PORT); + CVarSetInteger(CVAR_ENHANCEMENT("Camera.DebugCam.Port"), CAMERA_DEBUG_DEFAULT_PORT); } if (controllerPort == 0) { // Disable Link Inputs @@ -236,4 +237,4 @@ void RegisterDebugCam() { }); } -static RegisterShipInitFunc initFunc(RegisterDebugCam, { "gEnhancements.Camera.DebugCam.Enable" }); +static RegisterShipInitFunc initFunc(RegisterDebugCam, { CVAR_ENHANCEMENT("Camera.DebugCam.Enable") }); diff --git a/mm/2s2h/Enhancements/Camera/FreeLook.cpp b/mm/2s2h/Enhancements/Camera/FreeLook.cpp index 1b1127ff35..db384294f3 100644 --- a/mm/2s2h/Enhancements/Camera/FreeLook.cpp +++ b/mm/2s2h/Enhancements/Camera/FreeLook.cpp @@ -2,6 +2,7 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" #include "CameraUtils.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "macros.h" @@ -96,15 +97,15 @@ bool Camera_FreeLook(Camera* camera) { Camera_ResetActionFuncState(camera, camera->mode); f32 yawDiff = -sCamPlayState->state.input[0].cur.right_stick_x * 10.0f * - (CVarGetFloat("gEnhancements.Camera.RightStick.CameraSensitivity.X", 1.0f)); + (CVarGetFloat(CVAR_ENHANCEMENT("Camera.RightStick.CameraSensitivity.X"), 1.0f)); f32 pitchDiff = sCamPlayState->state.input[0].cur.right_stick_y * 10.0f * - (CVarGetFloat("gEnhancements.Camera.RightStick.CameraSensitivity.Y", 1.0f)); + (CVarGetFloat(CVAR_ENHANCEMENT("Camera.RightStick.CameraSensitivity.Y"), 1.0f)); yaw += yawDiff * GameInteractor_InvertControl(GI_INVERT_CAMERA_RIGHT_STICK_X); pitch += pitchDiff * -GameInteractor_InvertControl(GI_INVERT_CAMERA_RIGHT_STICK_Y); - s16 maxPitch = DEG_TO_BINANG(CVarGetFloat("gEnhancements.Camera.FreeLook.MaxPitch", 72.0f)); - s16 minPitch = DEG_TO_BINANG(CVarGetFloat("gEnhancements.Camera.FreeLook.MinPitch", -49.0f)); + s16 maxPitch = DEG_TO_BINANG(CVarGetFloat(CVAR_ENHANCEMENT("Camera.FreeLook.MaxPitch"), 72.0f)); + s16 minPitch = DEG_TO_BINANG(CVarGetFloat(CVAR_ENHANCEMENT("Camera.FreeLook.MinPitch"), -49.0f)); if (pitch > maxPitch) { pitch = maxPitch; @@ -113,8 +114,8 @@ bool Camera_FreeLook(Camera* camera) { pitch = minPitch; } - f32 distTarget = CVarGetInteger("gEnhancements.Camera.FreeLook.MaxCameraDistance", roData->unk_04); - f32 transitionSpeed = CVarGetInteger("gEnhancements.Camera.FreeLook.TransitionSpeed", 25); + f32 distTarget = CVarGetInteger(CVAR_ENHANCEMENT("Camera.FreeLook.MaxCameraDistance"), roData->unk_04); + f32 transitionSpeed = CVarGetInteger(CVAR_ENHANCEMENT("Camera.FreeLook.TransitionSpeed"), 25); // Smooth step camera away to max camera distance. Camera collision is calculated later camera->dist = Camera_ScaledStepToCeilF(distTarget, camera->dist, transitionSpeed / (ABS(distTarget - camera->dist) + transitionSpeed), 0.0f); @@ -163,7 +164,7 @@ bool Camera_CanFreeLook(Camera* camera) { } void RegisterCameraFreeLook() { - COND_VB_SHOULD(VB_USE_CUSTOM_CAMERA, CVarGetInteger("gEnhancements.Camera.FreeLook.Enable", 0), { + COND_VB_SHOULD(VB_USE_CUSTOM_CAMERA, CVarGetInteger(CVAR_ENHANCEMENT("Camera.FreeLook.Enable"), 0), { Camera* camera = va_arg(args, Camera*); switch (sCameraSettings[camera->setting].cameraModes[camera->mode].funcId) { case CAM_FUNC_NORMAL0: @@ -185,8 +186,8 @@ void RegisterCameraFreeLook() { } }); - COND_HOOK(OnCameraChangeModeFlags, CVarGetInteger("gEnhancements.Camera.FreeLook.Enable", 0), + COND_HOOK(OnCameraChangeModeFlags, CVarGetInteger(CVAR_ENHANCEMENT("Camera.FreeLook.Enable"), 0), [](Camera* camera) { UpdateFreeLookState(camera); }); } -static RegisterShipInitFunc initFunc(RegisterCameraFreeLook, { "gEnhancements.Camera.FreeLook.Enable" }); +static RegisterShipInitFunc initFunc(RegisterCameraFreeLook, { CVAR_ENHANCEMENT("Camera.FreeLook.Enable") }); diff --git a/mm/2s2h/Enhancements/Cheats/ClimbAnywhere.cpp b/mm/2s2h/Enhancements/Cheats/ClimbAnywhere.cpp index bc9e18f097..79a80bd4a0 100644 --- a/mm/2s2h/Enhancements/Cheats/ClimbAnywhere.cpp +++ b/mm/2s2h/Enhancements/Cheats/ClimbAnywhere.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gCheats.ClimbAnywhere" +#define CVAR_NAME CVAR_CHEAT("ClimbAnywhere") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterClimbAnywhere() { diff --git a/mm/2s2h/Enhancements/Cheats/EasyFrameAdvance.cpp b/mm/2s2h/Enhancements/Cheats/EasyFrameAdvance.cpp index cd2282a4ea..ce35fb25c7 100644 --- a/mm/2s2h/Enhancements/Cheats/EasyFrameAdvance.cpp +++ b/mm/2s2h/Enhancements/Cheats/EasyFrameAdvance.cpp @@ -1,13 +1,14 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope.h" } -#define CVAR_NAME "gCheats.EasyFrameAdvance" +#define CVAR_NAME CVAR_CHEAT("EasyFrameAdvance") #define CVAR CVarGetInteger(CVAR_NAME, 0) static int frameAdvanceTimer = 0; diff --git a/mm/2s2h/Enhancements/Cheats/ElegyAnywhere.cpp b/mm/2s2h/Enhancements/Cheats/ElegyAnywhere.cpp index 8070be194f..9471e210cb 100644 --- a/mm/2s2h/Enhancements/Cheats/ElegyAnywhere.cpp +++ b/mm/2s2h/Enhancements/Cheats/ElegyAnywhere.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gCheats.ElegyAnywhere" +#define CVAR_NAME CVAR_CHEAT("ElegyAnywhere") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterElegyAnywhere() { diff --git a/mm/2s2h/Enhancements/Cheats/HookshotAnywhere.cpp b/mm/2s2h/Enhancements/Cheats/HookshotAnywhere.cpp index 6667926da8..884436f560 100644 --- a/mm/2s2h/Enhancements/Cheats/HookshotAnywhere.cpp +++ b/mm/2s2h/Enhancements/Cheats/HookshotAnywhere.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gCheats.HookshotAnywhere" +#define CVAR_NAME CVAR_CHEAT("HookshotAnywhere") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterHookshotAnywhere() { diff --git a/mm/2s2h/Enhancements/Cheats/Infinite.cpp b/mm/2s2h/Enhancements/Cheats/Infinite.cpp index d47845c439..65302a8ae1 100644 --- a/mm/2s2h/Enhancements/Cheats/Infinite.cpp +++ b/mm/2s2h/Enhancements/Cheats/Infinite.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -8,15 +9,15 @@ extern "C" { static RegisterShipInitFunc healthInitFunc( []() { - COND_HOOK(OnGameStateUpdate, CVarGetInteger("gCheats.InfiniteHealth", 0), []() { + COND_HOOK(OnGameStateUpdate, CVarGetInteger(CVAR_CHEAT("InfiniteHealth"), 0), []() { gSaveContext.save.saveInfo.playerData.health = gSaveContext.save.saveInfo.playerData.healthCapacity; }); }, - { "gCheats.InfiniteHealth" }); + { CVAR_CHEAT("InfiniteHealth") }); static RegisterShipInitFunc magicInitFunc( []() { - COND_HOOK(OnGameStateUpdate, CVarGetInteger("gCheats.InfiniteMagic", 0), []() { + COND_HOOK(OnGameStateUpdate, CVarGetInteger(CVAR_CHEAT("InfiniteMagic"), 0), []() { uint8_t magicLevel = gSaveContext.save.saveInfo.playerData.magicLevel; if (magicLevel == 1) { gSaveContext.save.saveInfo.playerData.magic = MAGIC_NORMAL_METER; @@ -25,18 +26,18 @@ static RegisterShipInitFunc magicInitFunc( } }); }, - { "gCheats.InfiniteMagic" }); + { CVAR_CHEAT("InfiniteMagic") }); static RegisterShipInitFunc rupeesInitFunc( []() { - COND_HOOK(OnGameStateUpdate, CVarGetInteger("gCheats.InfiniteRupees", 0), + COND_HOOK(OnGameStateUpdate, CVarGetInteger(CVAR_CHEAT("InfiniteRupees"), 0), []() { gSaveContext.save.saveInfo.playerData.rupees = CUR_CAPACITY(UPG_WALLET); }); }, - { "gCheats.InfiniteRupees" }); + { CVAR_CHEAT("InfiniteRupees") }); static RegisterShipInitFunc consumeablesInitFunc( []() { - COND_HOOK(OnGameStateUpdate, CVarGetInteger("gCheats.InfiniteConsumables", 0), []() { + COND_HOOK(OnGameStateUpdate, CVarGetInteger(CVAR_CHEAT("InfiniteConsumables"), 0), []() { if (INV_CONTENT(ITEM_BOW) == ITEM_BOW) { AMMO(ITEM_BOW) = CUR_CAPACITY(UPG_QUIVER); } @@ -66,4 +67,4 @@ static RegisterShipInitFunc consumeablesInitFunc( } }); }, - { "gCheats.InfiniteConsumables" }); + { CVAR_CHEAT("InfiniteConsumables") }); diff --git a/mm/2s2h/Enhancements/Cheats/LongerFlowerGlide.cpp b/mm/2s2h/Enhancements/Cheats/LongerFlowerGlide.cpp index 7b9fe5072e..7eaf2683b4 100644 --- a/mm/2s2h/Enhancements/Cheats/LongerFlowerGlide.cpp +++ b/mm/2s2h/Enhancements/Cheats/LongerFlowerGlide.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" extern f32 D_8085D958[2]; } -#define CVAR_NAME "gCheats.LongerFlowerGlide" +#define CVAR_NAME CVAR_CHEAT("LongerFlowerGlide") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterLongerFlowerGlide() { diff --git a/mm/2s2h/Enhancements/Cheats/MoonJump.cpp b/mm/2s2h/Enhancements/Cheats/MoonJump.cpp index 0950ced148..42703c738c 100644 --- a/mm/2s2h/Enhancements/Cheats/MoonJump.cpp +++ b/mm/2s2h/Enhancements/Cheats/MoonJump.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" } -#define CVAR_NAME "gCheats.MoonJumpOnL" +#define CVAR_NAME CVAR_CHEAT("MoonJumpOnL") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterMoonJump() { diff --git a/mm/2s2h/Enhancements/Cheats/TimeStop.cpp b/mm/2s2h/Enhancements/Cheats/TimeStop.cpp index 9c7f84d77f..b56e64e24d 100644 --- a/mm/2s2h/Enhancements/Cheats/TimeStop.cpp +++ b/mm/2s2h/Enhancements/Cheats/TimeStop.cpp @@ -2,17 +2,18 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/Enhancements/Enhancements.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" } -#define CVAR_NAME "gCheats.TempleTimeStop" +#define CVAR_NAME CVAR_CHEAT("TempleTimeStop") #define CVAR CVarGetInteger(CVAR_NAME, TIME_STOP_OFF) void RegisterTimeStopInTemples() { COND_HOOK(AfterRoomSceneCommands, CVAR != TIME_STOP_OFF, [](s16 sceneId, s8 roomNum) { - uint8_t selectedOption = CVarGetInteger("gCheats.TempleTimeStop", TIME_STOP_OFF); + uint8_t selectedOption = CVarGetInteger(CVAR_CHEAT("TempleTimeStop"), TIME_STOP_OFF); switch (selectedOption) { case TIME_STOP_TEMPLES_DUNGEONS: diff --git a/mm/2s2h/Enhancements/Cheats/UnbreakableRazorSword.cpp b/mm/2s2h/Enhancements/Cheats/UnbreakableRazorSword.cpp index 1290416208..8f9e20bcc9 100644 --- a/mm/2s2h/Enhancements/Cheats/UnbreakableRazorSword.cpp +++ b/mm/2s2h/Enhancements/Cheats/UnbreakableRazorSword.cpp @@ -2,8 +2,9 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" #include "2s2h/Rando/Rando.h" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gCheats.UnbreakableRazorSword" +#define CVAR_NAME CVAR_CHEAT("UnbreakableRazorSword") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterUnbreakableRazorSword() { diff --git a/mm/2s2h/Enhancements/Cheats/UnrestrictedItems.cpp b/mm/2s2h/Enhancements/Cheats/UnrestrictedItems.cpp index fff408550e..c5bcf705ad 100644 --- a/mm/2s2h/Enhancements/Cheats/UnrestrictedItems.cpp +++ b/mm/2s2h/Enhancements/Cheats/UnrestrictedItems.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gCheats.UnrestrictedItems" +#define CVAR_NAME CVAR_CHEAT("UnrestrictedItems") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterUnrestrictedItems() { diff --git a/mm/2s2h/Enhancements/Cutscenes/HideTitleCards.cpp b/mm/2s2h/Enhancements/Cutscenes/HideTitleCards.cpp index 1c3c805124..7ea635dd72 100644 --- a/mm/2s2h/Enhancements/Cutscenes/HideTitleCards.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/HideTitleCards.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.Cutscenes.HideTitleCards" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.HideTitleCards") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterHideTitleCards() { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipAlienStartAndFail.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipAlienStartAndFail.cpp index ed9c0c0bfe..0179614616 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipAlienStartAndFail.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipAlienStartAndFail.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipAlienStartAndFail() { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipAlienWarning.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipAlienWarning.cpp index 3e0ce916ca..35876a34d4 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipAlienWarning.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipAlienWarning.cpp @@ -1,13 +1,14 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "functions.h" #include "variables.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipAlienWarning() { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipBankerDialogue.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipBankerDialogue.cpp index 316bac8f41..fd985881cc 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipBankerDialogue.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipBankerDialogue.cpp @@ -1,13 +1,14 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "overlays/actors/ovl_En_Ginko_Man/z_en_ginko_man.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) int16_t choiceIndex = 0; diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipBossWarpPrompt.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipBossWarpPrompt.cpp index 2884d9233f..1fab34819c 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipBossWarpPrompt.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipBossWarpPrompt.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "functions.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipBossWarpPrompt() { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipBothersomeMonkey.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipBothersomeMonkey.cpp index 260f96dccc..ffdcfe3db8 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipBothersomeMonkey.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipBothersomeMonkey.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -10,7 +11,7 @@ void EnMnk_Monkey_WaitToRun(EnMnk* thisx, PlayState* play); void EnMnk_Monkey_SetupRunAfterTalk(EnMnk* thisx, PlayState* play); } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipBothersomeMonkey() { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipDekuSalesman.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipDekuSalesman.cpp index ec7e52896c..1b87e9bf63 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipDekuSalesman.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipDekuSalesman.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "functions.h" @@ -13,7 +14,7 @@ void func_80BEF83C(EnAkindonuts* enAkindonuts, PlayState* play); void CutsceneManager_End(); } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipDekuSalesman() { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipDekuTelescope.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipDekuTelescope.cpp index bb81778ee3..95a8d1e797 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipDekuTelescope.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipDekuTelescope.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -12,7 +13,7 @@ void func_80BCB1C8(EnScopenuts* enScopenuts, PlayState* play); f32 func_80BCC448(Path* path, s32 arg1, Vec3f* arg2, Vec3s* arg3); } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) // has reached point diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipEponaReveal.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipEponaReveal.cpp index 9a34578380..a7faee510b 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipEponaReveal.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipEponaReveal.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_Bg_Umajump/z_bg_umajump.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipEponaReveal() { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipEvanSong.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipEvanSong.cpp index cb42df6ede..65a7ecf771 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipEvanSong.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipEvanSong.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipEvansSong() { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipFallingMoonsTear.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipFallingMoonsTear.cpp index af7a61a90f..4875a7b610 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipFallingMoonsTear.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipFallingMoonsTear.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "functions.h" @@ -10,7 +11,7 @@ extern "C" { #include "overlays/actors/ovl_En_Bji_01/z_en_bji_01.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) static int frames = 0; diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipGateGuards.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipGateGuards.cpp index 0fb7517198..4f3569d369 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipGateGuards.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipGateGuards.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "functions.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipGateGuards() { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipGivingBombersNotebook.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipGivingBombersNotebook.cpp index 250b3ed125..82a15286bd 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipGivingBombersNotebook.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipGivingBombersNotebook.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -13,7 +14,7 @@ void func_809C53A4(EnBomBowlMan* enBomBowlMan); void CutsceneManager_End(); } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) void EnBomBowlMan_WaitForPlayer(EnBomBowlMan* enBomBowlMan, PlayState* play) { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipGreatFairyCutscene.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipGreatFairyCutscene.cpp index b2d5f7eff9..d8fc7cef2b 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipGreatFairyCutscene.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipGreatFairyCutscene.cpp @@ -3,6 +3,7 @@ #include "2s2h/CustomMessage/CustomMessage.h" #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -14,7 +15,7 @@ s32 EnElfgrp_SummonStrayFairies(PlayState* play); void func_80A3A210(EnElfgrp* elfgrp, PlayState* play); } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) #define ELFGRP_STATE_0 (1 << 0) diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipHungryGoronDialogue.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipHungryGoronDialogue.cpp index 859b31b6d8..c523c20890 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipHungryGoronDialogue.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipHungryGoronDialogue.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) static void RegisterSkipHungryGoronDialogue() { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipKafeiReveal.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipKafeiReveal.cpp index 22f63c4bae..d48ebb61ae 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipKafeiReveal.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipKafeiReveal.cpp @@ -3,13 +3,14 @@ #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/CustomMessage/CustomMessage.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "functions.h" #include "variables.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) // Skips the interaction in which kafei reveals his secret to Link, and gives him the Pendant of Memories. diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipKamaroTeachDance.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipKamaroTeachDance.cpp index 9413acbd61..e9850bc73e 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipKamaroTeachDance.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipKamaroTeachDance.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Yb/z_en_yb.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipKamaroTeachDance() { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipKotakeFlying.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipKotakeFlying.cpp index 2de076cabc..2a5a021acf 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipKotakeFlying.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipKotakeFlying.cpp @@ -4,13 +4,14 @@ #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/Rando/Rando.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "functions.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipKotakeFlying() { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipMayorsOfficeCutscene.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipMayorsOfficeCutscene.cpp index ffca305c3d..4d6ee247e6 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipMayorsOfficeCutscene.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipMayorsOfficeCutscene.cpp @@ -1,13 +1,14 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Dt/z_en_dt.h" void EnDt_UpdateMeetingCutscene(EnDt* enDt, PlayState* play); } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) // These skips still allow the first textboxes to display, but they do ignore most of the scenes diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipOwlInteractions.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipOwlInteractions.cpp index 7fb46e72e8..50e66691d8 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipOwlInteractions.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipOwlInteractions.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Owl/z_en_owl.h" @@ -13,7 +14,7 @@ void EnOwl_ChangeMode(EnOwl* enOwl, EnOwlActionFunc actionFunc, EnOwlFunc unkFun AnimationHeader* animation, f32 morphFrames); } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) void flyOnApproach(EnOwl* enOwl, PlayState* play) { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipPushingMikau.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipPushingMikau.cpp index fa8da6eb13..6269af16ba 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipPushingMikau.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipPushingMikau.cpp @@ -3,12 +3,13 @@ #include "2s2h/ShipInit.hpp" #include "2s2h/Rando/Rando.h" #include "2s2h/Rando/Logic/Logic.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "functions.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipPushingMikau() { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipRosaSistersDance.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipRosaSistersDance.cpp index 44853c639c..f9dba1ba57 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipRosaSistersDance.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipRosaSistersDance.cpp @@ -4,6 +4,7 @@ #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/Rando/Rando.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Rz/z_en_rz.h" @@ -11,7 +12,7 @@ void func_80BFC270(EnRz* enRz, PlayState* play); void Player_StartTalking(PlayState* play, Actor* actor); } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipRosaSistersDance() { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipScarecrowDance.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipScarecrowDance.cpp index 9dfaf56b47..03af3b1185 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipScarecrowDance.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipScarecrowDance.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipScarecrowDance() { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipTatlInterrupts.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipTatlInterrupts.cpp index 8bfe2b754f..703406e334 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipTatlInterrupts.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipTatlInterrupts.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -10,7 +11,7 @@ extern "C" { #include "overlays/actors/ovl_Elf_Msg4/z_elf_msg4.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipTatlInterrupts() { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipTingleTime.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipTingleTime.cpp index 3aec6f1d1a..1994698ba9 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipTingleTime.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipTingleTime.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "functions.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipTingleTime() { diff --git a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipTurtleGoodbye.cpp b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipTurtleGoodbye.cpp index db35883eb7..76589321b4 100644 --- a/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipTurtleGoodbye.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/MiscInteractions/SkipTurtleGoodbye.cpp @@ -4,13 +4,14 @@ #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/Rando/Rando.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "functions.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipMiscInteractions" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipMiscInteractions") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipTurtleGoodbye() { diff --git a/mm/2s2h/Enhancements/Cutscenes/SkipEnemyCutscenes.cpp b/mm/2s2h/Enhancements/Cutscenes/SkipEnemyCutscenes.cpp index 9db5ea9413..46d7f42879 100644 --- a/mm/2s2h/Enhancements/Cutscenes/SkipEnemyCutscenes.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/SkipEnemyCutscenes.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -36,7 +37,7 @@ extern EnKnight* sThinKnightInstance; extern EnKnight* sWideKnightInstance; } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipEnemyCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipEnemyCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) // Set by enemy actors to control the camera override hooks diff --git a/mm/2s2h/Enhancements/Cutscenes/SkipEntranceCutscenes.cpp b/mm/2s2h/Enhancements/Cutscenes/SkipEntranceCutscenes.cpp index 0d41ce8918..c2dc6c1f32 100644 --- a/mm/2s2h/Enhancements/Cutscenes/SkipEntranceCutscenes.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/SkipEntranceCutscenes.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipEntranceCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipEntranceCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipEntranceCutscenes() { diff --git a/mm/2s2h/Enhancements/Cutscenes/SkipIntroSequence.cpp b/mm/2s2h/Enhancements/Cutscenes/SkipIntroSequence.cpp index 68141017f3..c4f3f33072 100644 --- a/mm/2s2h/Enhancements/Cutscenes/SkipIntroSequence.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/SkipIntroSequence.cpp @@ -1,15 +1,16 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" void Flags_SetWeekEventReg(s32 flag); } -#define INTRO_CVAR_NAME "gEnhancements.Cutscenes.SkipIntroSequence" +#define INTRO_CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipIntroSequence") #define INTRO_CVAR CVarGetInteger(INTRO_CVAR_NAME, 0) -#define FIRST_CYCLE_CVAR_NAME "gEnhancements.Cutscenes.SkipFirstCycle" +#define FIRST_CYCLE_CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipFirstCycle") #define FIRST_CYCLE_CVAR CVarGetInteger(FIRST_CYCLE_CVAR_NAME, 0) void RegisterSkipIntroSequence() { diff --git a/mm/2s2h/Enhancements/Cutscenes/SkipOnePointCutscenes.cpp b/mm/2s2h/Enhancements/Cutscenes/SkipOnePointCutscenes.cpp index 8411597684..b7c2378658 100644 --- a/mm/2s2h/Enhancements/Cutscenes/SkipOnePointCutscenes.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/SkipOnePointCutscenes.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipOnePointCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipOnePointCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipOnePointCutscenes() { diff --git a/mm/2s2h/Enhancements/Cutscenes/SkipToFileSelect.cpp b/mm/2s2h/Enhancements/Cutscenes/SkipToFileSelect.cpp index fbce23aabe..966412bbe9 100644 --- a/mm/2s2h/Enhancements/Cutscenes/SkipToFileSelect.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/SkipToFileSelect.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -8,7 +9,7 @@ extern "C" { #include "overlays/gamestates/ovl_title/z_title.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipToFileSelect" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipToFileSelect") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipToFileSelect() { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipBiggoronSnowheadLullaby.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipBiggoronSnowheadLullaby.cpp index 43dffd32cb..c0456c0980 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipBiggoronSnowheadLullaby.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipBiggoronSnowheadLullaby.cpp @@ -1,13 +1,14 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "functions.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) #define BIGGORON_GORON_LULLABY_CSID 11 diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipBombBagTheftCutscene.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipBombBagTheftCutscene.cpp index 4f2edce5ff..83fb6285db 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipBombBagTheftCutscene.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipBombBagTheftCutscene.cpp @@ -1,13 +1,14 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Suttari/z_en_suttari.h" void EnSuttari_TriggerTransition(PlayState* play, u16 entrance); } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipBombBagTheftCutscene() { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipClockTowerOpen.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipClockTowerOpen.cpp index d4b9980cf9..943c407645 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipClockTowerOpen.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipClockTowerOpen.cpp @@ -1,19 +1,20 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "functions.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipClockTowerOpen() { // This will handle skipping if you are around the Clock Town area, but not directly in south clock town COND_VB_SHOULD(VB_CLOCK_TOWER_OPENING_CONSIDER_THIS_FIRST_CYCLE, CVAR, { - if (CVarGetInteger("gEnhancements.Cutscenes.SkipStoryCutscenes", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes"), 0)) { *should = false; } }); @@ -23,7 +24,7 @@ void RegisterSkipClockTowerOpen() { if ((gSaveContext.save.entrance == ENTRANCE(SOUTH_CLOCK_TOWN, 0) || gSaveContext.save.entrance == ENTRANCE(TERMINA_FIELD, 0)) && gSaveContext.save.cutsceneIndex == 0xFFF1 && - CVarGetInteger("gEnhancements.Cutscenes.SkipStoryCutscenes", 0)) { + CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes"), 0)) { // Copied from ObjTokeidai_TowerOpening_EndCutscene SET_WEEKEVENTREG(WEEKEVENTREG_CLOCK_TOWER_OPENED); gSaveContext.save.cutsceneIndex = 0; diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipClockTowerSkullKidEncounter.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipClockTowerSkullKidEncounter.cpp index 7ba04395e6..14408f847d 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipClockTowerSkullKidEncounter.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipClockTowerSkullKidEncounter.cpp @@ -3,6 +3,7 @@ #include "2s2h/Rando/Rando.h" #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -19,7 +20,7 @@ void DmStk_ClockTower_Idle(DmStk* dmstk, PlayState* play); void DmStk_ChangeAnim(DmStk* dmstk, PlayState* play, SkelAnime* skelAnime, AnimationInfo* animInfo, u16 animIndex); } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) AnimationInfo moonLoop = { (AnimationHeader*)&gSkullKidCallDownMoonLoopAnim, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP, 0.0f }; diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipDefeatCaptainSequence.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipDefeatCaptainSequence.cpp index 6ef6456576..b7ee8bd301 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipDefeatCaptainSequence.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipDefeatCaptainSequence.cpp @@ -1,13 +1,14 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "functions.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void SkipDefeatCaptainTextbox() { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipFirstSongOfTimeFlashbacks.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipFirstSongOfTimeFlashbacks.cpp index f8e060a9ab..2f189c1986 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipFirstSongOfTimeFlashbacks.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipFirstSongOfTimeFlashbacks.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipFirstSongOfTimeFlashbacks() { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipGiantsChamber.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipGiantsChamber.cpp index 2d9481f0e9..7315739472 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipGiantsChamber.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipGiantsChamber.cpp @@ -4,13 +4,14 @@ #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/Rando/Rando.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "functions.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) /* @@ -101,7 +102,7 @@ void handleGiantsCheck(SceneId sceneId) { RANDO_SAVE_CHECKS[RC_GIANTS_CHAMBER_OATH_TO_ORDER].eligible = true; } else { GameInteractor::Instance->events.emplace_back(GIEventGiveItem{ - .showGetItemCutscene = !CVarGetInteger("gEnhancements.Cutscenes.SkipGetItemCutscenes", 0), + .showGetItemCutscene = !CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipGetItemCutscenes"), 0), .giveItem = [](Actor* actor, PlayState* play) { if (CUSTOM_ITEM_FLAGS & CustomItem::GIVE_ITEM_CUTSCENE) { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipHealingDarmani.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipHealingDarmani.cpp index 92baaca608..e625997f99 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipHealingDarmani.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipHealingDarmani.cpp @@ -3,12 +3,13 @@ #include "2s2h/CustomMessage/CustomMessage.h" #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "functions.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipHealingDarmani() { @@ -22,7 +23,7 @@ void RegisterSkipHealingDarmani() { if (gPlayState->sceneId == SCENE_GORON_HAKA && *csId == 9) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_DMCHAR05, true, ITEM_MASK_GORON)) { GameInteractor::Instance->events.emplace_back(GIEventGiveItem{ - .showGetItemCutscene = !CVarGetInteger("gEnhancements.Cutscenes.SkipGetItemCutscenes", 0), + .showGetItemCutscene = !CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipGetItemCutscenes"), 0), .param = GID_MASK_GORON, .giveItem = [](Actor* actor, PlayState* play) { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipHealingMikau.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipHealingMikau.cpp index 0f5e4e23b1..10bffb9206 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipHealingMikau.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipHealingMikau.cpp @@ -3,12 +3,13 @@ #include "2s2h/CustomMessage/CustomMessage.h" #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "functions.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipHealingMikau() { @@ -30,7 +31,7 @@ void RegisterSkipHealingMikau() { gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK; if (GameInteractor_Should(VB_GIVE_ITEM_FROM_DMCHAR05, true, ITEM_MASK_ZORA)) { GameInteractor::Instance->events.emplace_back(GIEventGiveItem{ - .showGetItemCutscene = !CVarGetInteger("gEnhancements.Cutscenes.SkipGetItemCutscenes", 0), + .showGetItemCutscene = !CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipGetItemCutscenes"), 0), .param = GID_MASK_ZORA, .giveItem = [](Actor* actor, PlayState* play) { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipIkanaCurseCutscenes.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipIkanaCurseCutscenes.cpp index 9b352371b6..c0d250dfca 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipIkanaCurseCutscenes.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipIkanaCurseCutscenes.cpp @@ -3,6 +3,7 @@ #include "2s2h/CustomMessage/CustomMessage.h" #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -14,7 +15,7 @@ void func_80B6DE80(BgHakaCurtain* bgHakaCurtain); void EnPoComposer_SetupPlayCurse(EnPoComposer* enPoComposer); } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void skipHealingPamelasFather() { @@ -81,7 +82,7 @@ void RegisterSkipIkanaCurseCutscenes() { skipHealingPamelasFather(); if (GameInteractor_Should(VB_GIVE_ITEM_FROM_DMCHAR05, true, ITEM_MASK_GIBDO)) { GameInteractor::Instance->events.emplace_back(GIEventGiveItem{ - .showGetItemCutscene = !CVarGetInteger("gEnhancements.Cutscenes.SkipGetItemCutscenes", 0), + .showGetItemCutscene = !CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipGetItemCutscenes"), 0), .param = GID_MASK_GIBDO, .giveItem = [](Actor* actor, PlayState* play) { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningElegyOfEmptiness.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningElegyOfEmptiness.cpp index 9b9f98971c..c23c92e552 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningElegyOfEmptiness.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningElegyOfEmptiness.cpp @@ -4,8 +4,9 @@ #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/Rando/Rando.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) // Forced on in rando for now @@ -15,7 +16,7 @@ void RegisterSkipLearningElegyOfEmptiness() { if (gPlayState->sceneId == SCENE_IKNINSIDE && *csId == 10) { // Defeated Igos, learn Elegy of Emptiness if (GameInteractor_Should(VB_GIVE_ITEM_FROM_KNIGHT, true)) { GameInteractor::Instance->events.emplace_back(GIEventGiveItem{ - .showGetItemCutscene = !CVarGetInteger("gEnhancements.Cutscenes.SkipGetItemCutscenes", 0), + .showGetItemCutscene = !CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipGetItemCutscenes"), 0), .giveItem = [](Actor* actor, PlayState* play) { if (CUSTOM_ITEM_FLAGS & CustomItem::GIVE_ITEM_CUTSCENE) { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningEponasSong.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningEponasSong.cpp index 0d02c52e72..54fde5cfeb 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningEponasSong.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningEponasSong.cpp @@ -4,13 +4,14 @@ #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/Rando/Rando.h" #include "2s2h/CustomMessage/CustomMessage.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Ma4/z_en_ma4.h" void EnMa4_SetupDialogueHandler(EnMa4* enMa4); } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipLearningEponasSong() { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningGoronLullaby.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningGoronLullaby.cpp index a9eb5f58e4..f92bff0fcc 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningGoronLullaby.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningGoronLullaby.cpp @@ -4,6 +4,7 @@ #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/Rando/Rando.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -15,7 +16,7 @@ void func_80B5227C(EnGk* enGkActor, PlayState* play); void EnGo_Sleep(EnGo* enGoActor, PlayState* play); } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) static bool isGoronSleepQueued = false; @@ -49,7 +50,7 @@ void RegisterSkipLearningGoronLullaby() { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_GK_LULLABY, !CHECK_QUEST_ITEM(QUEST_SONG_LULLABY))) { GameInteractor::Instance->events.emplace_back(GIEventGiveItem{ - .showGetItemCutscene = !CVarGetInteger("gEnhancements.Cutscenes.SkipGetItemCutscenes", 0), + .showGetItemCutscene = !CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipGetItemCutscenes"), 0), .giveItem = [](Actor* actor, PlayState* play) { if (CUSTOM_ITEM_FLAGS & CustomItem::GIVE_ITEM_CUTSCENE) { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningGoronLullabyIntro.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningGoronLullabyIntro.cpp index 01ea83d4ea..ed8d91f894 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningGoronLullabyIntro.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningGoronLullabyIntro.cpp @@ -4,6 +4,7 @@ #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/Rando/Rando.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -11,7 +12,7 @@ extern "C" { #include "overlays/actors/ovl_En_Jg/z_en_jg.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipLearningGoronLullabyIntro() { @@ -25,7 +26,7 @@ void RegisterSkipLearningGoronLullabyIntro() { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_JG, !CHECK_QUEST_ITEM(QUEST_SONG_LULLABY_INTRO))) { GameInteractor::Instance->events.emplace_back(GIEventGiveItem{ - .showGetItemCutscene = !CVarGetInteger("gEnhancements.Cutscenes.SkipGetItemCutscenes", 0), + .showGetItemCutscene = !CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipGetItemCutscenes"), 0), .giveItem = [](Actor* actor, PlayState* play) { if (CUSTOM_ITEM_FLAGS & CustomItem::GIVE_ITEM_CUTSCENE) { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningNewWaveBossaNova.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningNewWaveBossaNova.cpp index a2b4539a87..6453deb286 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningNewWaveBossaNova.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningNewWaveBossaNova.cpp @@ -4,12 +4,13 @@ #include "2s2h/Rando/Rando.h" #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) // Forced on in rando for now @@ -19,7 +20,7 @@ void RegisterSkipLearningNewWaveBossaNova() { if (gPlayState->sceneId == SCENE_LABO && *csId == 11) { if (GameInteractor_Should(VB_GIVE_NEW_WAVE_BOSSA_NOVA, true)) { GameInteractor::Instance->events.emplace_back(GIEventGiveItem{ - .showGetItemCutscene = !CVarGetInteger("gEnhancements.Cutscenes.SkipGetItemCutscenes", 0), + .showGetItemCutscene = !CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipGetItemCutscenes"), 0), .giveItem = [](Actor* actor, PlayState* play) { if (CUSTOM_ITEM_FLAGS & CustomItem::GIVE_ITEM_CUTSCENE) { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSonataOfAwakening.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSonataOfAwakening.cpp index 94686970e8..424981cbd4 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSonataOfAwakening.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSonataOfAwakening.cpp @@ -4,13 +4,14 @@ #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/Rando/Rando.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "functions.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipLearningSonataOfAwakening() { @@ -28,7 +29,7 @@ void RegisterSkipLearningSonataOfAwakening() { } else if (*csId == 12) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_MNK, true)) { GameInteractor::Instance->events.emplace_back(GIEventGiveItem{ - .showGetItemCutscene = !CVarGetInteger("gEnhancements.Cutscenes.SkipGetItemCutscenes", 0), + .showGetItemCutscene = !CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipGetItemCutscenes"), 0), .giveItem = [](Actor* actor, PlayState* play) { if (CUSTOM_ITEM_FLAGS & CustomItem::GIVE_ITEM_CUTSCENE) { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSongOfHealing.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSongOfHealing.cpp index 8ddba67ce8..d62650658c 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSongOfHealing.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSongOfHealing.cpp @@ -5,6 +5,7 @@ #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/ShipInit.hpp" #include +#include "2s2h/cvar_prefixes.h" extern "C" { #include "functions.h" @@ -20,7 +21,7 @@ void PlayerCall_Draw(Actor* thisx, PlayState* play); void Player_StopHorizontalMovement(Player* player); } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) #define OSN_STATE_END_CONVERSATION (1 << 5) diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSongOfSoaring.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSongOfSoaring.cpp index 8f33d59726..bbade9c12d 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSongOfSoaring.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSongOfSoaring.cpp @@ -4,6 +4,7 @@ #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/Rando/Rando.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -11,7 +12,7 @@ extern "C" { #include "overlays/actors/ovl_En_Time_Tag/z_en_time_tag.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) #define ENGRAVING_TEXT_ID 0xC02 @@ -36,7 +37,7 @@ void RegisterSkipLearningSongOfSoaring() { } else { if (!CHECK_QUEST_ITEM(QUEST_SONG_SOARING)) { GameInteractor::Instance->events.emplace_back(GIEventGiveItem{ - .showGetItemCutscene = !CVarGetInteger("gEnhancements.Cutscenes.SkipGetItemCutscenes", 0), + .showGetItemCutscene = !CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipGetItemCutscenes"), 0), .giveItem = [](Actor* actor, PlayState* play) { if (CUSTOM_ITEM_FLAGS & CustomItem::GIVE_ITEM_CUTSCENE) { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSongOfStorms.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSongOfStorms.cpp index 6dcdcd5d4e..e4b329f853 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSongOfStorms.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSongOfStorms.cpp @@ -4,13 +4,14 @@ #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/Rando/Rando.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "functions.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) // This is a song tutorial, so the skip is forced on in rando for now @@ -22,7 +23,7 @@ void RegisterSkipLearningSongOfStorms() { RANDO_SAVE_CHECKS[RC_BENEATH_THE_GRAVEYARD_SONG_OF_STORMS].eligible = true; } else { GameInteractor::Instance->events.emplace_back(GIEventGiveItem{ - .showGetItemCutscene = !CVarGetInteger("gEnhancements.Cutscenes.SkipGetItemCutscenes", 0), + .showGetItemCutscene = !CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipGetItemCutscenes"), 0), .giveItem = [](Actor* actor, PlayState* play) { if (CUSTOM_ITEM_FLAGS & CustomItem::GIVE_ITEM_CUTSCENE) { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSongOfTime.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSongOfTime.cpp index 17c4aac17a..6451d72723 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSongOfTime.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipLearningSongOfTime.cpp @@ -4,13 +4,14 @@ #include "2s2h/CustomMessage/CustomMessage.h" #include "2s2h/Rando/Rando.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "functions.h" #include "variables.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipLearningSongOfTime() { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipMilkRunCutscenes.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipMilkRunCutscenes.cpp index c7e258503b..3bcc18d227 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipMilkRunCutscenes.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipMilkRunCutscenes.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipMilkRunCutscenes() { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipMoonCrash.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipMoonCrash.cpp index cc92a9b420..cbed005f6e 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipMoonCrash.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipMoonCrash.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) /** diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipPrincessDelivery.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipPrincessDelivery.cpp index 82daacf2a2..52e9316a71 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipPrincessDelivery.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipPrincessDelivery.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -8,7 +9,7 @@ extern "C" { #include "overlays/actors/ovl_En_Dnp/z_en_dnp.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipPrincessDelivery() { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipRaisingWoodfall.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipRaisingWoodfall.cpp index b3a4863e4f..a382247ce2 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipRaisingWoodfall.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipRaisingWoodfall.cpp @@ -1,13 +1,14 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "functions.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipRaisingWoodfall() { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipStoppingMoonCutscene.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipStoppingMoonCutscene.cpp index 7f4eb7fcdf..1a59f0de97 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipStoppingMoonCutscene.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipStoppingMoonCutscene.cpp @@ -4,13 +4,14 @@ #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/Rando/Rando.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "functions.h" } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipStoppingMoon() { diff --git a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipWakingAndRidingTurtle.cpp b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipWakingAndRidingTurtle.cpp index af6254c406..5a942979c6 100644 --- a/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipWakingAndRidingTurtle.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/StoryCutscenes/SkipWakingAndRidingTurtle.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -10,7 +11,7 @@ extern "C" { void DmChar08_Init(Actor* thisx, PlayState* play2); } -#define CVAR_NAME "gEnhancements.Cutscenes.SkipStoryCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Cutscenes.SkipStoryCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipWakingAndRidingTurtle() { diff --git a/mm/2s2h/Enhancements/Cycle/EndOfCycle.cpp b/mm/2s2h/Enhancements/Cycle/EndOfCycle.cpp index a4329fde06..339c9e23d4 100644 --- a/mm/2s2h/Enhancements/Cycle/EndOfCycle.cpp +++ b/mm/2s2h/Enhancements/Cycle/EndOfCycle.cpp @@ -2,21 +2,22 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/Rando/Rando.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include #include } -#define CVAR_NAME_RUPEES "gEnhancements.Cycle.DoNotResetRupees" +#define CVAR_NAME_RUPEES CVAR_ENHANCEMENT("Cycle.DoNotResetRupees") #define CVAR_RUPEES CVarGetInteger(CVAR_NAME_RUPEES, 0) -#define CVAR_NAME_CONSUME "gEnhancements.Cycle.DoNotResetConsumables" +#define CVAR_NAME_CONSUME CVAR_ENHANCEMENT("Cycle.DoNotResetConsumables") #define CVAR_CONSUME CVarGetInteger(CVAR_NAME_CONSUME, 0) -#define CVAR_NAME_BOTTLE "gEnhancements.Cycle.DoNotResetBottleContent" +#define CVAR_NAME_BOTTLE CVAR_ENHANCEMENT("Cycle.DoNotResetBottleContent") #define CVAR_BOTTLE CVarGetInteger(CVAR_NAME_BOTTLE, 0) -#define CVAR_NAME_SWORD "gEnhancements.Cycle.DoNotResetRazorSword" +#define CVAR_NAME_SWORD CVAR_ENHANCEMENT("Cycle.DoNotResetRazorSword") #define CVAR_SWORD CVarGetInteger(CVAR_NAME_SWORD, 0) -#define CVAR_NAME_TIME "gEnhancements.Cycle.DoNotResetTimeSpeed" +#define CVAR_NAME_TIME CVAR_ENHANCEMENT("Cycle.DoNotResetTimeSpeed") #define CVAR_TIME CVarGetInteger(CVAR_NAME_TIME, 0) SaveInfo saveInfoCopy; diff --git a/mm/2s2h/Enhancements/Cycle/KeepExpressMail.cpp b/mm/2s2h/Enhancements/Cycle/KeepExpressMail.cpp index c04facea27..08372a4fc4 100644 --- a/mm/2s2h/Enhancements/Cycle/KeepExpressMail.cpp +++ b/mm/2s2h/Enhancements/Cycle/KeepExpressMail.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "z64save.h" @@ -8,7 +9,7 @@ extern "C" { #include "variables.h" } -#define CVAR_NAME "gEnhancements.Cycle.KeepExpressMail" +#define CVAR_NAME CVAR_ENHANCEMENT("Cycle.KeepExpressMail") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterKeepExpressMail() { diff --git a/mm/2s2h/Enhancements/Cycle/OceansideSpiderHouseSquatter.cpp b/mm/2s2h/Enhancements/Cycle/OceansideSpiderHouseSquatter.cpp index 56c900c7af..529865f030 100644 --- a/mm/2s2h/Enhancements/Cycle/OceansideSpiderHouseSquatter.cpp +++ b/mm/2s2h/Enhancements/Cycle/OceansideSpiderHouseSquatter.cpp @@ -2,12 +2,13 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" #include "2s2h/Rando/Rando.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "functions.h" } -#define CVAR_NAME "gEnhancements.Cycle.StopOceansideSpiderHouseSquatter" +#define CVAR_NAME CVAR_ENHANCEMENT("Cycle.StopOceansideSpiderHouseSquatter") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterOceansideSpiderHouseSquatter() { diff --git a/mm/2s2h/Enhancements/Cycle/OceansideWalletAnyDay.cpp b/mm/2s2h/Enhancements/Cycle/OceansideWalletAnyDay.cpp index a101d761fb..8ac5d13494 100644 --- a/mm/2s2h/Enhancements/Cycle/OceansideWalletAnyDay.cpp +++ b/mm/2s2h/Enhancements/Cycle/OceansideWalletAnyDay.cpp @@ -2,12 +2,13 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" #include "2s2h/Rando/Rando.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Sth/z_en_sth.h" } -#define CVAR_NAME "gEnhancements.Cycle.OceansideWalletAnyDay" +#define CVAR_NAME CVAR_ENHANCEMENT("Cycle.OceansideWalletAnyDay") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterOceansideWalletAnyDay() { diff --git a/mm/2s2h/Enhancements/Dialogue/AutoBombersCode.cpp b/mm/2s2h/Enhancements/Dialogue/AutoBombersCode.cpp index 389b61e119..f66ef66715 100644 --- a/mm/2s2h/Enhancements/Dialogue/AutoBombersCode.cpp +++ b/mm/2s2h/Enhancements/Dialogue/AutoBombersCode.cpp @@ -1,13 +1,14 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "functions.h" } -#define CVAR_NAME "gEnhancements.Dialogue.AutoBombersCode" +#define CVAR_NAME CVAR_ENHANCEMENT("Dialogue.AutoBombersCode") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterAutoBombersCode() { diff --git a/mm/2s2h/Enhancements/Dialogue/FastBankSelection.cpp b/mm/2s2h/Enhancements/Dialogue/FastBankSelection.cpp index 6cab766105..b84766b715 100644 --- a/mm/2s2h/Enhancements/Dialogue/FastBankSelection.cpp +++ b/mm/2s2h/Enhancements/Dialogue/FastBankSelection.cpp @@ -1,13 +1,14 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "overlays/actors/ovl_En_Ginko_Man/z_en_ginko_man.h" } -#define CVAR_NAME "gEnhancements.Dialogue.FastBankSelection" +#define CVAR_NAME CVAR_ENHANCEMENT("Dialogue.FastBankSelection") #define CVAR CVarGetInteger(CVAR_NAME, 0) static const char zeroRupees[3] = { '0', '0', '0' }; diff --git a/mm/2s2h/Enhancements/DifficultyOptions/CustomBankRewardThresholds.cpp b/mm/2s2h/Enhancements/DifficultyOptions/CustomBankRewardThresholds.cpp index 5c8d475bbb..6668b5fe86 100644 --- a/mm/2s2h/Enhancements/DifficultyOptions/CustomBankRewardThresholds.cpp +++ b/mm/2s2h/Enhancements/DifficultyOptions/CustomBankRewardThresholds.cpp @@ -2,13 +2,14 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" #include "2s2h/CustomMessage/CustomMessage.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "overlays/actors/ovl_En_Ginko_Man/z_en_ginko_man.h" } -#define CVAR_NAME "gEnhancements.DifficultyOptions.LowerBankRewardThresholds" +#define CVAR_NAME CVAR_ENHANCEMENT("DifficultyOptions.LowerBankRewardThresholds") #define CVAR CVarGetInteger(CVAR_NAME, 0) const int FIRST_BANK_THRESHOLD = 100; diff --git a/mm/2s2h/Enhancements/DifficultyOptions/DamageMultiplier.cpp b/mm/2s2h/Enhancements/DifficultyOptions/DamageMultiplier.cpp index 0b7681309c..55f4ad4f60 100644 --- a/mm/2s2h/Enhancements/DifficultyOptions/DamageMultiplier.cpp +++ b/mm/2s2h/Enhancements/DifficultyOptions/DamageMultiplier.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.DifficultyOptions.DamageMultiplier" +#define CVAR_NAME CVAR_ENHANCEMENT("DifficultyOptions.DamageMultiplier") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterDamageMultiplier() { diff --git a/mm/2s2h/Enhancements/DifficultyOptions/DekuGuardSearchBalls.cpp b/mm/2s2h/Enhancements/DifficultyOptions/DekuGuardSearchBalls.cpp index 8f838fb21a..9c9c8726ef 100644 --- a/mm/2s2h/Enhancements/DifficultyOptions/DekuGuardSearchBalls.cpp +++ b/mm/2s2h/Enhancements/DifficultyOptions/DekuGuardSearchBalls.cpp @@ -2,8 +2,9 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "Enhancements/Enhancements.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.DifficultyOptions.DekuGuardSearchBalls" +#define CVAR_NAME CVAR_ENHANCEMENT("DifficultyOptions.DekuGuardSearchBalls") #define CVAR CVarGetInteger(CVAR_NAME, DEKU_GUARD_SEARCH_BALLS_NIGHT_ONLY) void RegisterShowDekuGuardSearchBalls() { diff --git a/mm/2s2h/Enhancements/DifficultyOptions/DeleteFileOnDeath.cpp b/mm/2s2h/Enhancements/DifficultyOptions/DeleteFileOnDeath.cpp index a841961c5e..e72290e611 100644 --- a/mm/2s2h/Enhancements/DifficultyOptions/DeleteFileOnDeath.cpp +++ b/mm/2s2h/Enhancements/DifficultyOptions/DeleteFileOnDeath.cpp @@ -4,12 +4,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" } -#define CVAR_NAME "gEnhancements.DifficultyOptions.DeleteFileOnDeath" +#define CVAR_NAME CVAR_ENHANCEMENT("DifficultyOptions.DeleteFileOnDeath") #define CVAR CVarGetInteger(CVAR_NAME, 0) void SaveManager_DeleteSaveFile(const std::filesystem::path& fileName); diff --git a/mm/2s2h/Enhancements/DifficultyOptions/DisableTakkuriSteal.cpp b/mm/2s2h/Enhancements/DifficultyOptions/DisableTakkuriSteal.cpp index da22676ea6..4faafe6e1d 100644 --- a/mm/2s2h/Enhancements/DifficultyOptions/DisableTakkuriSteal.cpp +++ b/mm/2s2h/Enhancements/DifficultyOptions/DisableTakkuriSteal.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.DifficultyOptions.DisableTakkuriSteal" +#define CVAR_NAME CVAR_ENHANCEMENT("DifficultyOptions.DisableTakkuriSteal") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterDisableTakkuriSteal() { diff --git a/mm/2s2h/Enhancements/DifficultyOptions/GibdoTradeSequenceOptions.cpp b/mm/2s2h/Enhancements/DifficultyOptions/GibdoTradeSequenceOptions.cpp index ae184319ad..e825df89cb 100644 --- a/mm/2s2h/Enhancements/DifficultyOptions/GibdoTradeSequenceOptions.cpp +++ b/mm/2s2h/Enhancements/DifficultyOptions/GibdoTradeSequenceOptions.cpp @@ -3,8 +3,9 @@ #include "2s2h/Enhancements/Enhancements.h" #include "2s2h/ShipInit.hpp" #include +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.DifficultyOptions.GibdoTradeSequence" +#define CVAR_NAME CVAR_ENHANCEMENT("DifficultyOptions.GibdoTradeSequence") #define CVAR CVarGetInteger(CVAR_NAME, GIBDO_TRADE_SEQUENCE_VANILLA) extern "C" { diff --git a/mm/2s2h/Enhancements/DifficultyOptions/GoronRace.cpp b/mm/2s2h/Enhancements/DifficultyOptions/GoronRace.cpp index cd101bed6e..8121376bf9 100644 --- a/mm/2s2h/Enhancements/DifficultyOptions/GoronRace.cpp +++ b/mm/2s2h/Enhancements/DifficultyOptions/GoronRace.cpp @@ -8,7 +8,7 @@ extern "C" { #include "functions.h" } -#define CVAR_NAME "gEnhancements.DifficultyOptions.GoronRace" +#define CVAR_NAME CVAR_ENHANCEMENT("DifficultyOptions.GoronRace") #define CVAR CVarGetInteger(CVAR_NAME, GORON_RACE_DIFFICULTY_VANILLA) void RegisterGoronRaceDifficulty() { diff --git a/mm/2s2h/Enhancements/DifficultyOptions/HiddenGrottosVisibility.cpp b/mm/2s2h/Enhancements/DifficultyOptions/HiddenGrottosVisibility.cpp index 9b9110b371..60f5dbeee6 100644 --- a/mm/2s2h/Enhancements/DifficultyOptions/HiddenGrottosVisibility.cpp +++ b/mm/2s2h/Enhancements/DifficultyOptions/HiddenGrottosVisibility.cpp @@ -2,12 +2,13 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" #include "2s2h/Enhancements/Enhancements.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_Door_Ana/z_door_ana.h" } -#define CVAR_NAME "gEnhancements.DifficultyOptions.HiddenGrottosVisibility" +#define CVAR_NAME CVAR_ENHANCEMENT("DifficultyOptions.HiddenGrottosVisibility") #define CVAR CVarGetInteger(CVAR_NAME, 0) void drawHiddenGrottoMarker(Actor* actor) { diff --git a/mm/2s2h/Enhancements/DifficultyOptions/HyperEnemies.cpp b/mm/2s2h/Enhancements/DifficultyOptions/HyperEnemies.cpp index 0854634ad2..2161b71222 100644 --- a/mm/2s2h/Enhancements/DifficultyOptions/HyperEnemies.cpp +++ b/mm/2s2h/Enhancements/DifficultyOptions/HyperEnemies.cpp @@ -1,13 +1,14 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "functions.h" } -#define CVAR_NAME "gEnhancements.DifficultyOptions.HyperEnemies" +#define CVAR_NAME CVAR_ENHANCEMENT("DifficultyOptions.HyperEnemies") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterHyperEnemies() { diff --git a/mm/2s2h/Enhancements/DifficultyOptions/JinxedTimer.cpp b/mm/2s2h/Enhancements/DifficultyOptions/JinxedTimer.cpp index 625d8e5e90..70a6154f6e 100644 --- a/mm/2s2h/Enhancements/DifficultyOptions/JinxedTimer.cpp +++ b/mm/2s2h/Enhancements/DifficultyOptions/JinxedTimer.cpp @@ -2,8 +2,9 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" #include "variables.h" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.DifficultyOptions.JinxedTimer" +#define CVAR_NAME CVAR_ENHANCEMENT("DifficultyOptions.JinxedTimer") #define CVAR CVarGetInteger(CVAR_NAME, 60) void RegisterJinxedTimer() { diff --git a/mm/2s2h/Enhancements/DifficultyOptions/PermanentHeartLoss.cpp b/mm/2s2h/Enhancements/DifficultyOptions/PermanentHeartLoss.cpp index 6535c98c30..582f816bb3 100644 --- a/mm/2s2h/Enhancements/DifficultyOptions/PermanentHeartLoss.cpp +++ b/mm/2s2h/Enhancements/DifficultyOptions/PermanentHeartLoss.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" } -#define CVAR_NAME "gEnhancements.DifficultyOptions.PermanentHeartLoss" +#define CVAR_NAME CVAR_ENHANCEMENT("DifficultyOptions.PermanentHeartLoss") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterPermanentHeartLoss() { diff --git a/mm/2s2h/Enhancements/Equipment/ArrowCycle.cpp b/mm/2s2h/Enhancements/Equipment/ArrowCycle.cpp index 1bae348ced..dfbce08857 100644 --- a/mm/2s2h/Enhancements/Equipment/ArrowCycle.cpp +++ b/mm/2s2h/Enhancements/Equipment/ArrowCycle.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "macros.h" @@ -13,7 +14,7 @@ s32 Player_UpperAction_7(Player* thisx, PlayState* play); s32 Player_UpperAction_8(Player* thisx, PlayState* play); } -#define CVAR_NAME "gEnhancements.PlayerActions.ArrowCycle" +#define CVAR_NAME CVAR_ENHANCEMENT("PlayerActions.ArrowCycle") #define CVAR CVarGetInteger(CVAR_NAME, 0) // Magic arrow costs based on z_player.c diff --git a/mm/2s2h/Enhancements/Equipment/BetterPictoMessage.cpp b/mm/2s2h/Enhancements/Equipment/BetterPictoMessage.cpp index a017c11728..d0259fc108 100644 --- a/mm/2s2h/Enhancements/Equipment/BetterPictoMessage.cpp +++ b/mm/2s2h/Enhancements/Equipment/BetterPictoMessage.cpp @@ -2,6 +2,7 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" #include "2s2h/CustomMessage/CustomMessage.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -9,7 +10,7 @@ extern "C" { s32 Snap_RecordPictographedActors(PlayState* play); } -#define CVAR_NAME "gEnhancements.Equipment.BetterPictoMessage" +#define CVAR_NAME CVAR_ENHANCEMENT("Equipment.BetterPictoMessage") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterBetterPictoMessage() { diff --git a/mm/2s2h/Enhancements/Equipment/ChuDrops.cpp b/mm/2s2h/Enhancements/Equipment/ChuDrops.cpp index 40ddc22315..575b47afe0 100644 --- a/mm/2s2h/Enhancements/Equipment/ChuDrops.cpp +++ b/mm/2s2h/Enhancements/Equipment/ChuDrops.cpp @@ -3,6 +3,7 @@ #include "2s2h/ShipInit.hpp" #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -10,7 +11,7 @@ extern "C" { #include "objects/gameplay_keep/gameplay_keep.h" } -#define CVAR_NAME "gEnhancements.Equipment.ChuDrops" +#define CVAR_NAME CVAR_ENHANCEMENT("Equipment.ChuDrops") #define CVAR CVarGetInteger(CVAR_NAME, 0) static void ChuDrop_Give(Actor* actor, PlayState* play) { @@ -43,7 +44,7 @@ static void ChuDrop_Draw(Actor* actor, PlayState* play) { FrameInterpolation_RecordOpenChild(actor, (CUSTOM_ITEM_FLAGS & CustomItem::KEEP_ON_PLAYER) ? 1 : 0); FrameInterpolation_IgnoreActorMtx(); - if (CVarGetInteger("gEnhancements.Graphics.3DItemDrops", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Graphics.3DItemDrops"), 0)) { CUSTOM_ITEM_FLAGS &= ~CustomItem::STOP_SPINNING; Matrix_Scale(16.0f, 16.0f, 16.0f, MTXMODE_APPLY); diff --git a/mm/2s2h/Enhancements/Equipment/InstantRecall.cpp b/mm/2s2h/Enhancements/Equipment/InstantRecall.cpp index f9dfa089e6..d77aee692d 100644 --- a/mm/2s2h/Enhancements/Equipment/InstantRecall.cpp +++ b/mm/2s2h/Enhancements/Equipment/InstantRecall.cpp @@ -1,13 +1,14 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "src/overlays/actors/ovl_En_Boom/z_en_boom.h" } -#define CVAR_NAME "gEnhancements.PlayerActions.InstantRecall" +#define CVAR_NAME CVAR_ENHANCEMENT("PlayerActions.InstantRecall") #define CVAR CVarGetInteger(CVAR_NAME, 0) void ReturnBoomerang(Actor* actor) { diff --git a/mm/2s2h/Enhancements/Equipment/RemoteBombchu.cpp b/mm/2s2h/Enhancements/Equipment/RemoteBombchu.cpp index 356e25d2f1..dd61354a71 100644 --- a/mm/2s2h/Enhancements/Equipment/RemoteBombchu.cpp +++ b/mm/2s2h/Enhancements/Equipment/RemoteBombchu.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -11,7 +12,7 @@ void EnBomChu_Explode(EnBomChu*, PlayState*); void EnBomChu_UpdateRotation(EnBomChu*); } -#define CVAR_NAME "gEnhancements.PlayerActions.RemoteBombchu" +#define CVAR_NAME CVAR_ENHANCEMENT("PlayerActions.RemoteBombchu") #define CVAR CVarGetInteger(CVAR_NAME, 0) static bool focused = false; diff --git a/mm/2s2h/Enhancements/Equipment/SkipMagicArrowEquip.cpp b/mm/2s2h/Enhancements/Equipment/SkipMagicArrowEquip.cpp index c59f1f7f0e..7d5e8304e9 100644 --- a/mm/2s2h/Enhancements/Equipment/SkipMagicArrowEquip.cpp +++ b/mm/2s2h/Enhancements/Equipment/SkipMagicArrowEquip.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope.h" @@ -8,7 +9,7 @@ extern s16 sEquipState; extern s16 sEquipAnimTimer; } -#define CVAR_NAME "gEnhancements.Equipment.MagicArrowEquipSpeed" +#define CVAR_NAME CVAR_ENHANCEMENT("Equipment.MagicArrowEquipSpeed") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipMagicArrowEquip() { diff --git a/mm/2s2h/Enhancements/Equipment/TwoHandedSwordSpinAttack.cpp b/mm/2s2h/Enhancements/Equipment/TwoHandedSwordSpinAttack.cpp index c2c47438ad..00813173f5 100644 --- a/mm/2s2h/Enhancements/Equipment/TwoHandedSwordSpinAttack.cpp +++ b/mm/2s2h/Enhancements/Equipment/TwoHandedSwordSpinAttack.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -8,7 +9,7 @@ extern "C" { extern Input* sPlayerControlInput; } -#define CVAR_NAME "gEnhancements.Equipment.TwoHandedSwordSpinAttack" +#define CVAR_NAME CVAR_ENHANCEMENT("Equipment.TwoHandedSwordSpinAttack") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterTwoHandedSwordSpinAttack() { diff --git a/mm/2s2h/Enhancements/Fixes/BgmReplay.cpp b/mm/2s2h/Enhancements/Fixes/BgmReplay.cpp index 5e2831a3fb..c334719669 100644 --- a/mm/2s2h/Enhancements/Fixes/BgmReplay.cpp +++ b/mm/2s2h/Enhancements/Fixes/BgmReplay.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -8,9 +9,9 @@ extern "C" { extern u8 sStartSeqDisabled; } -#define CVAR_NAME_FASTER_SCENE_TRANSITIONS "gEnhancements.Timesavers.FasterSceneTransitions" -#define CVAR_NAME_PAUSE_SAVE "gEnhancements.Saving.PauseSave" -#define CVAR_NAME_DEBUG_MODE "gDeveloperTools.DebugEnabled" +#define CVAR_NAME_FASTER_SCENE_TRANSITIONS CVAR_ENHANCEMENT("Timesavers.FasterSceneTransitions") +#define CVAR_NAME_PAUSE_SAVE CVAR_ENHANCEMENT("Saving.PauseSave") +#define CVAR_NAME_DEBUG_MODE CVAR_DEVELOPER_TOOLS("DebugEnabled") #define CVAR_FASTER_SCENE_TRANSITIONS CVarGetInteger(CVAR_NAME_FASTER_SCENE_TRANSITIONS, 0) #define CVAR_PAUSE_SAVE CVarGetInteger(CVAR_NAME_PAUSE_SAVE, 0) diff --git a/mm/2s2h/Enhancements/Fixes/CompletedHeartContainerAudio.cpp b/mm/2s2h/Enhancements/Fixes/CompletedHeartContainerAudio.cpp index 5035e7446f..6cb4782459 100644 --- a/mm/2s2h/Enhancements/Fixes/CompletedHeartContainerAudio.cpp +++ b/mm/2s2h/Enhancements/Fixes/CompletedHeartContainerAudio.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" } -#define CVAR_NAME "gEnhancements.Fixes.CompletedHeartContainerAudio" +#define CVAR_NAME CVAR_ENHANCEMENT("Fixes.CompletedHeartContainerAudio") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterCompletedHeartContainerAudio() { diff --git a/mm/2s2h/Enhancements/Fixes/FierceDeityZTargetMovement.cpp b/mm/2s2h/Enhancements/Fixes/FierceDeityZTargetMovement.cpp index d3034cc8be..dced530823 100644 --- a/mm/2s2h/Enhancements/Fixes/FierceDeityZTargetMovement.cpp +++ b/mm/2s2h/Enhancements/Fixes/FierceDeityZTargetMovement.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" } -#define CVAR_NAME "gEnhancements.Fixes.FierceDeityZTargetMovement" +#define CVAR_NAME CVAR_ENHANCEMENT("Fixes.FierceDeityZTargetMovement") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterFierceDeityZTargetMovement() { diff --git a/mm/2s2h/Enhancements/Fixes/FixEponaStealingSword.cpp b/mm/2s2h/Enhancements/Fixes/FixEponaStealingSword.cpp index a5a3ac7b85..b7ba37bf29 100644 --- a/mm/2s2h/Enhancements/Fixes/FixEponaStealingSword.cpp +++ b/mm/2s2h/Enhancements/Fixes/FixEponaStealingSword.cpp @@ -1,9 +1,10 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" +#include "2s2h/cvar_prefixes.h" #include "2s2h/ShipInit.hpp" #include "variables.h" -#define CVAR_NAME "gFixes.FixEponaStealingSword" +#define CVAR_NAME CVAR_ENHANCEMENT("Fixes.FixEponaStealingSword") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterFixEponaStealingSword() { diff --git a/mm/2s2h/Enhancements/GfxPatcher/AuthenticGfxPatches.cpp b/mm/2s2h/Enhancements/GfxPatcher/AuthenticGfxPatches.cpp index 6a9d4326b1..ba94152e77 100644 --- a/mm/2s2h/Enhancements/GfxPatcher/AuthenticGfxPatches.cpp +++ b/mm/2s2h/Enhancements/GfxPatcher/AuthenticGfxPatches.cpp @@ -1,5 +1,7 @@ #include "AuthenticGfxPatches.h" #include +#include "2s2h/cvar_prefixes.h" + extern "C" { #include "gfx.h" #include "objects/gameplay_keep/gameplay_keep.h" @@ -84,7 +86,7 @@ void PatchArrowTipTexture() { G_TX_MIRROR | G_TX_WRAP, 5, 5, 1, 1), }; - bool fixTexturesOOB = CVarGetInteger("gEnhancements.Fixes.FixTexturesOOB", 0); + bool fixTexturesOOB = CVarGetInteger(CVAR_ENHANCEMENT("Fixes.FixTexturesOOB"), 0); for (const auto& patchInfo : arrowTipDListPatchInfos) { const char* dlist = patchInfo.dlist; @@ -136,7 +138,7 @@ void PatchFreezardBodyTexture() { G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), }; - bool fixTexturesOOB = CVarGetInteger("gEnhancements.Fixes.FixTexturesOOB", 0); + bool fixTexturesOOB = CVarGetInteger(CVAR_ENHANCEMENT("Fixes.FixTexturesOOB"), 0); for (const auto& patchInfo : freezardBodyDListPatchInfos) { const char* dlist = patchInfo.dlist; @@ -188,7 +190,7 @@ void PatchIronKnuckleFireTexture() { G_TX_MIRROR | G_TX_WRAP, 5, 6, G_TX_NOLOD, G_TX_NOLOD), }; - bool fixTexturesOOB = CVarGetInteger("gEnhancements.Fixes.FixTexturesOOB", 0); + bool fixTexturesOOB = CVarGetInteger(CVAR_ENHANCEMENT("Fixes.FixTexturesOOB"), 0); for (const auto& patchInfo : ironKnuckleDListPatchInfos) { const char* dlist = patchInfo.dlist; @@ -262,7 +264,7 @@ void PatchMiniGameCrossAndCircleSymbols() { } void PatchKnifeChamberRoomGeometry() { - if (CVarGetInteger("gEnhancements.Graphics.DisableSceneGeometryDistanceCheck", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Graphics.DisableSceneGeometryDistanceCheck"), 0)) { ResourceMgr_PatchGfxByName("scenes/nonmq/Z2_YADOYA/Z2_YADOYA_room_00DL_012280", "disableDistanceCheck1", 5, gsSPNoOp()); ResourceMgr_PatchGfxByName("scenes/nonmq/Z2_YADOYA/Z2_YADOYA_room_00DL_012280", "disableDistanceCheck2", 6, @@ -274,7 +276,7 @@ void PatchKnifeChamberRoomGeometry() { } void PatchClockTownBuildingGeometry() { - if (CVarGetInteger("gEnhancements.Graphics.DisableSceneGeometryDistanceCheck", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Graphics.DisableSceneGeometryDistanceCheck"), 0)) { ResourceMgr_PatchGfxByName("scenes/nonmq/Z2_00KEIKOKU/Z2_00KEIKOKU_room_00DL_00D490", "disableDistanceCheck1", 5, gsSPNoOp()); ResourceMgr_PatchGfxByName("scenes/nonmq/Z2_00KEIKOKU/Z2_00KEIKOKU_room_00DL_00D490", "disableDistanceCheck2", @@ -323,7 +325,7 @@ void PatchGeometrySeams() { 32, 0), gsSPEndDisplayList(), }; - if (CVarGetInteger("gEnhancements.Graphics.FixSceneGeometrySeams", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Graphics.FixSceneGeometrySeams"), 0)) { ResourceMgr_PatchGfxByName("scenes/nonmq/Z2_CLOCKTOWER/Z2_CLOCKTOWER_room_00DL_0032D0", "clockTownRampSeam", 49, gsSPDisplayList(southClockTownRampDL)); } else { diff --git a/mm/2s2h/Enhancements/Graphics/3DItemDrops.cpp b/mm/2s2h/Enhancements/Graphics/3DItemDrops.cpp index 977bd98707..63c39e35b1 100644 --- a/mm/2s2h/Enhancements/Graphics/3DItemDrops.cpp +++ b/mm/2s2h/Enhancements/Graphics/3DItemDrops.cpp @@ -2,6 +2,7 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -11,7 +12,7 @@ void EnItem00_Draw(Actor* thisx, PlayState* play); void EnTanron5_ItemDrop_Draw(Actor* thisx, PlayState* play); } -#define CVAR_NAME "gEnhancements.Graphics.3DItemDrops" +#define CVAR_NAME CVAR_ENHANCEMENT("Graphics.3DItemDrops") #define CVAR CVarGetInteger(CVAR_NAME, 0) bool ItemShouldSpinWhen3D(Actor* actor) { diff --git a/mm/2s2h/Enhancements/Graphics/3DSClock.cpp b/mm/2s2h/Enhancements/Graphics/3DSClock.cpp index e7d718d779..c678ccbaa3 100644 --- a/mm/2s2h/Enhancements/Graphics/3DSClock.cpp +++ b/mm/2s2h/Enhancements/Graphics/3DSClock.cpp @@ -4,6 +4,7 @@ #include "2s2h/Enhancements/Enhancements.h" #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" #include "2s2h_assets.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -22,7 +23,7 @@ Gfx* Gfx_DrawTexRectIA8_DropShadowOffset(Gfx* gfx, TexturePtr texture, s16 textu s16 r, s16 g, s16 b, s16 a, s32 masks, s32 rects); } -#define CVAR_NAME "gEnhancements.Graphics.ClockType" +#define CVAR_NAME CVAR_ENHANCEMENT("Graphics.ClockType") #define CVAR CVarGetInteger(CVAR_NAME, CLOCK_TYPE_ORIGINAL) #define SECONDS_IN_THREE_DAYS (3 * 24 * 60 * 60) @@ -271,7 +272,7 @@ void Draw3DSClock() { HudEditor_SetActiveElement(HUD_EDITOR_ELEMENT_CLOCK); OVERLAY_DISP = Gfx_DrawTexRectI8(OVERLAY_DISP, daynightmarker, 24, 24, counterX - 11, counterY - 2, 12, 12, 1 << 11, 1 << 11); - if (!CVarGetInteger("gEnhancements.Graphics.24HoursClock", 0)) { + if (!CVarGetInteger(CVAR_ENHANCEMENT("Graphics.24HoursClock"), 0)) { curHours %= 12; if (curHours == 0) { curHours = 12; @@ -298,7 +299,7 @@ void Draw3DSClock() { // Digital time u16 timerSpacing = 6; - if (curTensHours > 0 || CVarGetInteger("gEnhancements.Graphics.24HoursClock", 0)) { + if (curTensHours > 0 || CVarGetInteger(CVAR_ENHANCEMENT("Graphics.24HoursClock"), 0)) { timerSpacing = 4; HudEditor_SetActiveElement(HUD_EDITOR_ELEMENT_CLOCK); diff --git a/mm/2s2h/Enhancements/Graphics/BowReticle.cpp b/mm/2s2h/Enhancements/Graphics/BowReticle.cpp index 2e665c780e..982c63ca5d 100644 --- a/mm/2s2h/Enhancements/Graphics/BowReticle.cpp +++ b/mm/2s2h/Enhancements/Graphics/BowReticle.cpp @@ -2,6 +2,7 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "functions.h" @@ -9,7 +10,7 @@ extern "C" { #include "objects/gameplay_keep/gameplay_keep.h" } -#define CVAR_NAME "gEnhancements.Graphics.BowReticle" +#define CVAR_NAME CVAR_ENHANCEMENT("Graphics.BowReticle") #define CVAR CVarGetInteger(CVAR_NAME, 0) void DrawBowReticle(PlayState* play, Player* player, f32 bowDistance) { diff --git a/mm/2s2h/Enhancements/Graphics/DisableBlackBars.cpp b/mm/2s2h/Enhancements/Graphics/DisableBlackBars.cpp index aba718e261..02fea9339d 100644 --- a/mm/2s2h/Enhancements/Graphics/DisableBlackBars.cpp +++ b/mm/2s2h/Enhancements/Graphics/DisableBlackBars.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.Graphics.DisableBlackBars" +#define CVAR_NAME CVAR_ENHANCEMENT("Graphics.DisableBlackBars") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterDisableBlackBars() { diff --git a/mm/2s2h/Enhancements/Graphics/EnemyHealthBars.cpp b/mm/2s2h/Enhancements/Graphics/EnemyHealthBars.cpp index 660859a0b1..008de83c87 100644 --- a/mm/2s2h/Enhancements/Graphics/EnemyHealthBars.cpp +++ b/mm/2s2h/Enhancements/Graphics/EnemyHealthBars.cpp @@ -5,6 +5,7 @@ #include "2s2h/ShipUtils.h" #include #include +#include "2s2h/cvar_prefixes.h" extern "C" { #include "assets/interface/parameter_static/parameter_static.h" @@ -16,7 +17,7 @@ extern "C" { #include "variables.h" } -#define CVAR_NAME "gEnhancements.Graphics.EnemyHealthBars" +#define CVAR_NAME CVAR_ENHANCEMENT("Graphics.EnemyHealthBars") #define CVAR CVarGetInteger(CVAR_NAME, 0) typedef enum { @@ -87,7 +88,8 @@ void Interface_DrawEnemyHealthBar(Attention* attention, PlayState* play) { Actor_GetProjectedPos(play, &actor->focus.pos, &projTargetCenter, &projTargetCappedInvW); projTargetCenter.x = (SCREEN_WIDTH / 2) * (projTargetCenter.x * projTargetCappedInvW); - projTargetCenter.x = projTargetCenter.x * (CVarGetInteger("gModes.MirroredWorld.State", 0) ? -1 : 1); + projTargetCenter.x = + projTargetCenter.x * (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0) ? -1 : 1); projTargetCenter.x = CLAMP(projTargetCenter.x, (-SCREEN_WIDTH / 2) + halfBarWidth, (SCREEN_WIDTH / 2) - halfBarWidth); diff --git a/mm/2s2h/Enhancements/Graphics/MotionBlur.cpp b/mm/2s2h/Enhancements/Graphics/MotionBlur.cpp index 0e3b7b492b..065c091a3b 100644 --- a/mm/2s2h/Enhancements/Graphics/MotionBlur.cpp +++ b/mm/2s2h/Enhancements/Graphics/MotionBlur.cpp @@ -1,5 +1,6 @@ #include #include "2s2h/BenGui/UIWidgets.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -9,16 +10,16 @@ const char* motionBlurOptions[] = { "Dynamic (default)", "Always Off", "Always O void MotionBlur_RenderMenuOptions() { ImGui::SeparatorText("Motion Blur"); - UIWidgets::CVarCombobox("Motion Blur Mode", "gEnhancements.Graphics.MotionBlur.Mode", motionBlurOptions, + UIWidgets::CVarCombobox("Motion Blur Mode", CVAR_ENHANCEMENT("Graphics.MotionBlur.Mode"), motionBlurOptions, UIWidgets::ComboboxOptions().LabelPosition(UIWidgets::LabelPosition::None)); UIWidgets::CVarCheckbox( - "Interpolate", "gEnhancements.Graphics.MotionBlur.Interpolate", + "Interpolate", CVAR_ENHANCEMENT("Graphics.MotionBlur.Interpolate"), UIWidgets::CheckboxOptions().Tooltip( "Change motion blur capture to also happen on interpolated frames instead of only on game frames.\n" "This notably reduces the overall motion blur strength but smooths out the trails.")); - if (CVarGetInteger("gEnhancements.Graphics.MotionBlur.Mode", 0) == 0) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Graphics.MotionBlur.Mode"), 0) == 0) { UIWidgets::Checkbox("On/Off", (bool*)&R_MOTION_BLUR_ENABLED); if (R_MOTION_BLUR_ENABLED) { int32_t motionBlurStrength = R_MOTION_BLUR_ALPHA; @@ -27,19 +28,19 @@ void MotionBlur_RenderMenuOptions() { } } } - if (CVarGetInteger("gEnhancements.Graphics.MotionBlur.Mode", 0) == 2) { - UIWidgets::CVarSliderInt("Strength", "gEnhancements.Graphics.MotionBlur.Strength", + if (CVarGetInteger(CVAR_ENHANCEMENT("Graphics.MotionBlur.Mode"), 0) == 2) { + UIWidgets::CVarSliderInt("Strength", CVAR_ENHANCEMENT("Graphics.MotionBlur.Strength"), UIWidgets::IntSliderOptions().Min(0).Max(255).DefaultValue(180)); } } extern "C" void MotionBlur_Override(u8* status, s32* alpha) { - if (CVarGetInteger("gEnhancements.Graphics.MotionBlur.Mode", 0) == 1) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Graphics.MotionBlur.Mode"), 0) == 1) { *status = 0; *alpha = 0; - } else if (CVarGetInteger("gEnhancements.Graphics.MotionBlur.Mode", 0) == 2) { + } else if (CVarGetInteger(CVAR_ENHANCEMENT("Graphics.MotionBlur.Mode"), 0) == 2) { if (*status == 0) *status = 2; - *alpha = CVarGetInteger("gEnhancements.Graphics.MotionBlur.Strength", 180); + *alpha = CVarGetInteger(CVAR_ENHANCEMENT("Graphics.MotionBlur.Strength"), 180); } } diff --git a/mm/2s2h/Enhancements/Graphics/TextBasedClock.cpp b/mm/2s2h/Enhancements/Graphics/TextBasedClock.cpp index e0acc95bc1..ef30a99f4d 100644 --- a/mm/2s2h/Enhancements/Graphics/TextBasedClock.cpp +++ b/mm/2s2h/Enhancements/Graphics/TextBasedClock.cpp @@ -3,13 +3,14 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/Enhancements/Enhancements.h" #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope.h" } -#define CVAR_NAME "gEnhancements.Graphics.ClockType" +#define CVAR_NAME CVAR_ENHANCEMENT("Graphics.ClockType") #define CVAR CVarGetInteger(CVAR_NAME, CLOCK_TYPE_ORIGINAL) void DrawTextBasedClock() { @@ -63,7 +64,7 @@ void DrawTextBasedClock() { posX = std::max(posX / 8, 0); posY = std::max(posY / 8, 0); - if (CVarGetInteger("gEnhancements.Graphics.24HoursClock", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Graphics.24HoursClock"), 0)) { sprintf(formattedTime, "%02d:%02d", curHours, curMinutes); GfxPrint_SetPos(&printer, posX + 1, posY); } else { // Format hours and minutes for 12-hour AM/PM clock diff --git a/mm/2s2h/Enhancements/Masks/BlastMaskKeg.cpp b/mm/2s2h/Enhancements/Masks/BlastMaskKeg.cpp index e38e9023eb..9a54ab459e 100644 --- a/mm/2s2h/Enhancements/Masks/BlastMaskKeg.cpp +++ b/mm/2s2h/Enhancements/Masks/BlastMaskKeg.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -9,7 +10,7 @@ extern "C" { EquipSlot func_8082FDC4(void); } -#define CVAR_NAME "gEnhancements.Masks.BlastMaskKeg" +#define CVAR_NAME CVAR_ENHANCEMENT("Masks.BlastMaskKeg") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterBlastMaskKeg() { diff --git a/mm/2s2h/Enhancements/Masks/FastTransformation.cpp b/mm/2s2h/Enhancements/Masks/FastTransformation.cpp index b98e03abc5..ca432a4409 100644 --- a/mm/2s2h/Enhancements/Masks/FastTransformation.cpp +++ b/mm/2s2h/Enhancements/Masks/FastTransformation.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -12,7 +13,7 @@ void PlayerCall_Draw(Actor* thisx, PlayState* play); void TransitionFade_SetColor(void* thisx, u32 color); } -#define CVAR_NAME "gEnhancements.Masks.FastTransformation" +#define CVAR_NAME CVAR_ENHANCEMENT("Masks.FastTransformation") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterFastTransformation() { diff --git a/mm/2s2h/Enhancements/Masks/FierceDeityAnywhere.cpp b/mm/2s2h/Enhancements/Masks/FierceDeityAnywhere.cpp index c0b8aa5e56..4c0a5364d9 100644 --- a/mm/2s2h/Enhancements/Masks/FierceDeityAnywhere.cpp +++ b/mm/2s2h/Enhancements/Masks/FierceDeityAnywhere.cpp @@ -2,6 +2,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -14,7 +15,7 @@ extern "C" { #include "overlays/actors/ovl_En_Neo_Reeba/z_en_neo_reeba.h" } -#define CVAR_NAME "gEnhancements.Masks.FierceDeitysAnywhere" +#define CVAR_NAME CVAR_ENHANCEMENT("Masks.FierceDeitysAnywhere") #define CVAR CVarGetInteger(CVAR_NAME, 0) struct SwordBeamCollision { diff --git a/mm/2s2h/Enhancements/Masks/GoronRollingFastSpikes.cpp b/mm/2s2h/Enhancements/Masks/GoronRollingFastSpikes.cpp index e89c14c149..7debc2f3b5 100644 --- a/mm/2s2h/Enhancements/Masks/GoronRollingFastSpikes.cpp +++ b/mm/2s2h/Enhancements/Masks/GoronRollingFastSpikes.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.Masks.GoronRollingFastSpikes" +#define CVAR_NAME CVAR_ENHANCEMENT("Masks.GoronRollingFastSpikes") #define CVAR CVarGetInteger(CVAR_NAME, 0) extern "C" { diff --git a/mm/2s2h/Enhancements/Masks/GoronRollingIgnoresMagic.cpp b/mm/2s2h/Enhancements/Masks/GoronRollingIgnoresMagic.cpp index 3079952883..e19bb61160 100644 --- a/mm/2s2h/Enhancements/Masks/GoronRollingIgnoresMagic.cpp +++ b/mm/2s2h/Enhancements/Masks/GoronRollingIgnoresMagic.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.Masks.GoronRollingIgnoresMagic" +#define CVAR_NAME CVAR_ENHANCEMENT("Masks.GoronRollingIgnoresMagic") #define CVAR CVarGetInteger(CVAR_NAME, 0) extern "C" { diff --git a/mm/2s2h/Enhancements/Masks/NoBlastMaskCooldown.cpp b/mm/2s2h/Enhancements/Masks/NoBlastMaskCooldown.cpp index e8c2f844fe..11cdae06f7 100644 --- a/mm/2s2h/Enhancements/Masks/NoBlastMaskCooldown.cpp +++ b/mm/2s2h/Enhancements/Masks/NoBlastMaskCooldown.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.Masks.NoBlastMaskCooldown" +#define CVAR_NAME CVAR_ENHANCEMENT("Masks.NoBlastMaskCooldown") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterNoBlastMaskCooldown() { diff --git a/mm/2s2h/Enhancements/Masks/PersistentMasks.cpp b/mm/2s2h/Enhancements/Masks/PersistentMasks.cpp index 652dc6fe81..3a897486fb 100644 --- a/mm/2s2h/Enhancements/Masks/PersistentMasks.cpp +++ b/mm/2s2h/Enhancements/Masks/PersistentMasks.cpp @@ -2,6 +2,7 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -13,8 +14,8 @@ void Player_DrawBunnyHood(PlayState* play); extern const char* D_801C0B20[28]; } -#define CVAR_NAME "gEnhancements.Masks.PersistentBunnyHood.Enabled" -#define STATE_CVAR_NAME "gEnhancements.Masks.PersistentBunnyHood.State" +#define CVAR_NAME CVAR_ENHANCEMENT("Masks.PersistentBunnyHood.Enabled") +#define STATE_CVAR_NAME CVAR_ENHANCEMENT("Masks.PersistentBunnyHood.State") #define CVAR CVarGetInteger(CVAR_NAME, 0) #define STATE_CVAR CVarGetInteger(STATE_CVAR_NAME, 0) diff --git a/mm/2s2h/Enhancements/Minigames/AlwaysWinDoggyRace.cpp b/mm/2s2h/Enhancements/Minigames/AlwaysWinDoggyRace.cpp index beb82d07b1..91c091b989 100644 --- a/mm/2s2h/Enhancements/Minigames/AlwaysWinDoggyRace.cpp +++ b/mm/2s2h/Enhancements/Minigames/AlwaysWinDoggyRace.cpp @@ -2,12 +2,13 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/Enhancements/Enhancements.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" } -#define CVAR_NAME "gEnhancements.Minigames.AlwaysWinDoggyRace" +#define CVAR_NAME CVAR_ENHANCEMENT("Minigames.AlwaysWinDoggyRace") #define CVAR CVarGetInteger(CVAR_NAME, ALWAYS_WIN_DOGGY_RACE_OFF) void RegisterAlwaysWinDoggyRace() { diff --git a/mm/2s2h/Enhancements/Minigames/Archery.cpp b/mm/2s2h/Enhancements/Minigames/Archery.cpp index a01de3b880..12614ec5a1 100644 --- a/mm/2s2h/Enhancements/Minigames/Archery.cpp +++ b/mm/2s2h/Enhancements/Minigames/Archery.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.h" @@ -9,15 +10,15 @@ void EnSyatekiMan_Swamp_RunGame(EnSyatekiMan* enSyatekiMan, PlayState* play); void EnSyatekiMan_Town_RunGame(EnSyatekiMan* enSyatekiMan, PlayState* play); } -#define SWAMP_CVAR_NAME "gEnhancements.Minigames.SwampArcheryScore" +#define SWAMP_CVAR_NAME CVAR_ENHANCEMENT("Minigames.SwampArcheryScore") #define SWAMP_CVAR CVarGetInteger(SWAMP_CVAR_NAME, 2180) -#define TOWN_CVAR_NAME "gEnhancements.Minigames.TownArcheryScore" +#define TOWN_CVAR_NAME CVAR_ENHANCEMENT("Minigames.TownArcheryScore") #define TOWN_CVAR CVarGetInteger(TOWN_CVAR_NAME, 50) -#define BOAT_CVAR_NAME "gEnhancements.Minigames.BoatArcheryScore" +#define BOAT_CVAR_NAME CVAR_ENHANCEMENT("Minigames.BoatArcheryScore") #define BOAT_CVAR CVarGetInteger(BOAT_CVAR_NAME, 20) -#define BOAT_HEALTH_CVAR_NAME "gEnhancements.Minigames.BoatArcheryHealth" +#define BOAT_HEALTH_CVAR_NAME CVAR_ENHANCEMENT("Minigames.BoatArcheryHealth") #define BOAT_HEALTH_CVAR CVarGetInteger(BOAT_HEALTH_CVAR_NAME, 10) -#define BOAT_NO_DAMAGE_CVAR_NAME "gEnhancements.Minigames.BoatArcheryInvincible" +#define BOAT_NO_DAMAGE_CVAR_NAME CVAR_ENHANCEMENT("Minigames.BoatArcheryInvincible") #define BOAT_NO_DAMAGE_CVAR CVarGetInteger(BOAT_NO_DAMAGE_CVAR_NAME, 0) static void RegisterSwampArchery() { diff --git a/mm/2s2h/Enhancements/Minigames/BeaverRace.cpp b/mm/2s2h/Enhancements/Minigames/BeaverRace.cpp index 24c03b85f2..fc853a09f3 100644 --- a/mm/2s2h/Enhancements/Minigames/BeaverRace.cpp +++ b/mm/2s2h/Enhancements/Minigames/BeaverRace.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Az/z_en_az.h" @@ -9,7 +10,7 @@ void func_80A979DC(EnAz* thisx, PlayState* play); void func_80A97F9C(EnAz* thisx, PlayState* play); } -#define CVAR_NAME "gEnhancements.Minigames.BeaverRaceRingsCollected" +#define CVAR_NAME CVAR_ENHANCEMENT("Minigames.BeaverRaceRingsCollected") #define CVAR CVarGetInteger(CVAR_NAME, 20) static bool minigameScoreSet = false; // Flag to track if the score has been set diff --git a/mm/2s2h/Enhancements/Minigames/CremiaHugs.cpp b/mm/2s2h/Enhancements/Minigames/CremiaHugs.cpp index 42d17dbc9d..c59daf5703 100644 --- a/mm/2s2h/Enhancements/Minigames/CremiaHugs.cpp +++ b/mm/2s2h/Enhancements/Minigames/CremiaHugs.cpp @@ -2,8 +2,9 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/Enhancements/Enhancements.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.Minigames.CremiaHugs" +#define CVAR_NAME CVAR_ENHANCEMENT("Minigames.CremiaHugs") #define CVAR CVarGetInteger(CVAR_NAME, CREMIA_REWARD_RANDOM) void RegisterCremiaHugs() { diff --git a/mm/2s2h/Enhancements/Minigames/CuccoShackCuccoCount.cpp b/mm/2s2h/Enhancements/Minigames/CuccoShackCuccoCount.cpp index 4a766f9093..490c237080 100644 --- a/mm/2s2h/Enhancements/Minigames/CuccoShackCuccoCount.cpp +++ b/mm/2s2h/Enhancements/Minigames/CuccoShackCuccoCount.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Hs/z_en_hs.h" @@ -9,7 +10,7 @@ extern "C" { void func_8095345C(EnHs* enHs, PlayState* play); } -#define CVAR_NAME "gEnhancements.Minigames.CuccoShackCuccoCount" +#define CVAR_NAME CVAR_ENHANCEMENT("Minigames.CuccoShackCuccoCount") #define CVAR CVarGetInteger(CVAR_NAME, 10) void RegisterCuccoShackCuccoCount() { diff --git a/mm/2s2h/Enhancements/Minigames/FrogChoirCount.cpp b/mm/2s2h/Enhancements/Minigames/FrogChoirCount.cpp index 71cd5ea4f3..239c271623 100644 --- a/mm/2s2h/Enhancements/Minigames/FrogChoirCount.cpp +++ b/mm/2s2h/Enhancements/Minigames/FrogChoirCount.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Minifrog/z_en_minifrog.h" @@ -11,7 +12,7 @@ void EnMinifrog_SetupNextFrogInit(EnMinifrog* enMinifrog, PlayState* play); void EnMinifrog_UpdateMissingFrog(Actor* thisx, PlayState* play); } -#define CVAR_NAME "gEnhancements.DifficultyOptions.FrogChoirCount" +#define CVAR_NAME CVAR_ENHANCEMENT("DifficultyOptions.FrogChoirCount") #define CVAR CVarGetInteger(CVAR_NAME, 5) u8 SavedFrogs() { diff --git a/mm/2s2h/Enhancements/Minigames/HoneyAndDarling.cpp b/mm/2s2h/Enhancements/Minigames/HoneyAndDarling.cpp index de8b9057fa..36788a57bf 100644 --- a/mm/2s2h/Enhancements/Minigames/HoneyAndDarling.cpp +++ b/mm/2s2h/Enhancements/Minigames/HoneyAndDarling.cpp @@ -1,16 +1,17 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Fu/z_en_fu.h" } -#define DAY1_CVAR_NAME "gEnhancements.Minigames.HoneyAndDarlingDay1" +#define DAY1_CVAR_NAME CVAR_ENHANCEMENT("Minigames.HoneyAndDarlingDay1") #define DAY1_CVAR CVarGetInteger(DAY1_CVAR_NAME, 8) -#define DAY2_CVAR_NAME "gEnhancements.Minigames.HoneyAndDarlingDay2" +#define DAY2_CVAR_NAME CVAR_ENHANCEMENT("Minigames.HoneyAndDarlingDay2") #define DAY2_CVAR CVarGetInteger(DAY2_CVAR_NAME, 8) -#define DAY3_CVAR_NAME "gEnhancements.Minigames.HoneyAndDarlingDay3" +#define DAY3_CVAR_NAME CVAR_ENHANCEMENT("Minigames.HoneyAndDarlingDay3") #define DAY3_CVAR CVarGetInteger(DAY3_CVAR_NAME, 16) void RegisterHoneyAndDarling() { diff --git a/mm/2s2h/Enhancements/Minigames/MarkShootingGalleryOctoroks.cpp b/mm/2s2h/Enhancements/Minigames/MarkShootingGalleryOctoroks.cpp index 6283f07fa0..fad088fb33 100644 --- a/mm/2s2h/Enhancements/Minigames/MarkShootingGalleryOctoroks.cpp +++ b/mm/2s2h/Enhancements/Minigames/MarkShootingGalleryOctoroks.cpp @@ -2,6 +2,7 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Syateki_Okuta/z_en_syateki_okuta.h" @@ -9,7 +10,7 @@ extern "C" { extern void EnSyatekiOkuta_Die(EnSyatekiOkuta* enSyatekiOkuta, PlayState* play); } -#define CVAR_NAME "gEnhancements.Minigames.MarkShootingGalleryOctoroks" +#define CVAR_NAME CVAR_ENHANCEMENT("Minigames.MarkShootingGalleryOctoroks") #define CVAR CVarGetInteger(CVAR_NAME, 0) // This is almost identical to how EnSyatekiOkuta_Draw draws the symbols, except this draws a white symbol before the diff --git a/mm/2s2h/Enhancements/Minigames/RomaniTargetPractice.cpp b/mm/2s2h/Enhancements/Minigames/RomaniTargetPractice.cpp index 1a2afacf76..424ccde9c5 100644 --- a/mm/2s2h/Enhancements/Minigames/RomaniTargetPractice.cpp +++ b/mm/2s2h/Enhancements/Minigames/RomaniTargetPractice.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Ma4/z_en_ma4.h" } -#define CVAR_NAME "gEnhancements.Minigames.RomaniTargetPractice" +#define CVAR_NAME CVAR_ENHANCEMENT("Minigames.RomaniTargetPractice") #define CVAR CVarGetInteger(CVAR_NAME, 10) void RegisterRomaniTargetPractice() { diff --git a/mm/2s2h/Enhancements/Minigames/SkipBalladOfWindfish.cpp b/mm/2s2h/Enhancements/Minigames/SkipBalladOfWindfish.cpp index 7c07dbf50d..9436bcf3a6 100644 --- a/mm/2s2h/Enhancements/Minigames/SkipBalladOfWindfish.cpp +++ b/mm/2s2h/Enhancements/Minigames/SkipBalladOfWindfish.cpp @@ -1,13 +1,14 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "functions.h" #include "variables.h" } -#define CVAR_NAME "gEnhancements.Timesavers.SkipBalladOfWindfish" +#define CVAR_NAME CVAR_ENHANCEMENT("Timesavers.SkipBalladOfWindfish") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipBalladOfWindfish() { diff --git a/mm/2s2h/Enhancements/Minigames/SkipHorseRace.cpp b/mm/2s2h/Enhancements/Minigames/SkipHorseRace.cpp index 2fb75bca0a..d6d7e6b5fa 100644 --- a/mm/2s2h/Enhancements/Minigames/SkipHorseRace.cpp +++ b/mm/2s2h/Enhancements/Minigames/SkipHorseRace.cpp @@ -2,6 +2,7 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/Enhancements/Enhancements.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "functions.h" @@ -9,7 +10,7 @@ extern "C" { #include "z64horse.h" } -#define CVAR_NAME "gEnhancements.Minigames.SkipHorseRace" +#define CVAR_NAME CVAR_ENHANCEMENT("Minigames.SkipHorseRace") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipHorseRace() { diff --git a/mm/2s2h/Enhancements/Minigames/SkipPowderKegCertification.cpp b/mm/2s2h/Enhancements/Minigames/SkipPowderKegCertification.cpp index d36d2b2981..6d4b539f32 100644 --- a/mm/2s2h/Enhancements/Minigames/SkipPowderKegCertification.cpp +++ b/mm/2s2h/Enhancements/Minigames/SkipPowderKegCertification.cpp @@ -3,12 +3,13 @@ #include "2s2h/ShipInit.hpp" #include "2s2h/Rando/Rando.h" #include "2s2h/CustomMessage/CustomMessage.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Go/z_en_go.h" } -#define CVAR_NAME "gEnhancements.Timesavers.PowderKegCertification" +#define CVAR_NAME CVAR_ENHANCEMENT("Timesavers.PowderKegCertification") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterPowderKegCertification() { diff --git a/mm/2s2h/Enhancements/Minigames/SwordsmanSchool.cpp b/mm/2s2h/Enhancements/Minigames/SwordsmanSchool.cpp index 2de61d88d9..5d42b8eeeb 100644 --- a/mm/2s2h/Enhancements/Minigames/SwordsmanSchool.cpp +++ b/mm/2s2h/Enhancements/Minigames/SwordsmanSchool.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Kendo_Js/z_en_kendo_js.h" @@ -8,7 +9,7 @@ extern "C" { void func_80B274BC(EnKendoJs* thisx, PlayState* play); } -#define CVAR_NAME "gEnhancements.Minigames.SwordsmanSchoolScore" +#define CVAR_NAME CVAR_ENHANCEMENT("Minigames.SwordsmanSchoolScore") #define CVAR CVarGetInteger(CVAR_NAME, 30) void RegisterSwordsmanSchool() { diff --git a/mm/2s2h/Enhancements/Modes/HyruleWarriorsStyledLink.cpp b/mm/2s2h/Enhancements/Modes/HyruleWarriorsStyledLink.cpp index 8ddaba0cb7..df76d98e3f 100644 --- a/mm/2s2h/Enhancements/Modes/HyruleWarriorsStyledLink.cpp +++ b/mm/2s2h/Enhancements/Modes/HyruleWarriorsStyledLink.cpp @@ -2,6 +2,7 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "Enhancements/FrameInterpolation/FrameInterpolation.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -9,7 +10,7 @@ extern "C" { extern const char* D_801C0B20[28]; } -#define CVAR_NAME "gModes.HyruleWarriorsStyledLink" +#define CVAR_NAME CVAR_ENHANCEMENT("Modes.HyruleWarriorsStyledLink") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterHyruleWarriorsStyledLink() { diff --git a/mm/2s2h/Enhancements/Modes/PlayAsKafei.cpp b/mm/2s2h/Enhancements/Modes/PlayAsKafei.cpp index 18cd167336..0628662e9f 100644 --- a/mm/2s2h/Enhancements/Modes/PlayAsKafei.cpp +++ b/mm/2s2h/Enhancements/Modes/PlayAsKafei.cpp @@ -3,6 +3,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -18,7 +19,7 @@ extern TexturePtr sPlayerMouthTextures[PLAYER_FORM_MAX][PLAYER_MOUTH_MAX]; static SkeletonHeader gLinkHumanSkelBackup; static SkeletonHeader gKafeiSkelBackup; -#define CVAR_NAME "gModes.PlayAsKafei" +#define CVAR_NAME CVAR_ENHANCEMENT("Modes.PlayAsKafei") #define CVAR CVarGetInteger(CVAR_NAME, 0) void UpdatePlayAsKafei() { diff --git a/mm/2s2h/Enhancements/Modes/TimeMovesWhenYouMove.cpp b/mm/2s2h/Enhancements/Modes/TimeMovesWhenYouMove.cpp index 16291a263e..5f873fedd2 100644 --- a/mm/2s2h/Enhancements/Modes/TimeMovesWhenYouMove.cpp +++ b/mm/2s2h/Enhancements/Modes/TimeMovesWhenYouMove.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" } -#define CVAR_NAME "gModes.TimeMovesWhenYouMove" +#define CVAR_NAME CVAR_ENHANCEMENT("Modes.TimeMovesWhenYouMove") #define CVAR CVarGetInteger(CVAR_NAME, 0) // Arbitrary speed to determine the offset is unset diff --git a/mm/2s2h/Enhancements/Player/ClimbSpeed.cpp b/mm/2s2h/Enhancements/Player/ClimbSpeed.cpp index 4f70fbf9b9..51aa661ebd 100644 --- a/mm/2s2h/Enhancements/Player/ClimbSpeed.cpp +++ b/mm/2s2h/Enhancements/Player/ClimbSpeed.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.Player.ClimbSpeed" +#define CVAR_NAME CVAR_ENHANCEMENT("Player.ClimbSpeed") #define CVAR CVarGetInteger(CVAR_NAME, 1) void RegisterClimbSpeed() { diff --git a/mm/2s2h/Enhancements/Player/FastFlowerLaunch.cpp b/mm/2s2h/Enhancements/Player/FastFlowerLaunch.cpp index 705695a8cb..150ba396f2 100644 --- a/mm/2s2h/Enhancements/Player/FastFlowerLaunch.cpp +++ b/mm/2s2h/Enhancements/Player/FastFlowerLaunch.cpp @@ -1,13 +1,14 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" void Player_Action_93(Player* player, PlayState* play); } -#define CVAR_NAME "gEnhancements.Player.FastFlowerLaunch" +#define CVAR_NAME CVAR_ENHANCEMENT("Player.FastFlowerLaunch") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterFastFlowerLaunch() { diff --git a/mm/2s2h/Enhancements/Player/FasterPushAndPull.cpp b/mm/2s2h/Enhancements/Player/FasterPushAndPull.cpp index 84bc6c4ffa..5c1aa5475f 100644 --- a/mm/2s2h/Enhancements/Player/FasterPushAndPull.cpp +++ b/mm/2s2h/Enhancements/Player/FasterPushAndPull.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_Bg_Dblue_Movebg/z_bg_dblue_movebg.h" @@ -8,7 +9,7 @@ extern "C" { #include "overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.h" } -#define CVAR_NAME "gEnhancements.Player.FasterPushAndPull" +#define CVAR_NAME CVAR_ENHANCEMENT("Player.FasterPushAndPull") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterFasterPushAndPull() { diff --git a/mm/2s2h/Enhancements/Player/FierceDeityPutaway.cpp b/mm/2s2h/Enhancements/Player/FierceDeityPutaway.cpp index ced5649190..522f5be72b 100644 --- a/mm/2s2h/Enhancements/Player/FierceDeityPutaway.cpp +++ b/mm/2s2h/Enhancements/Player/FierceDeityPutaway.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" } -#define CVAR_NAME "gEnhancements.Player.FierceDeityPutaway" +#define CVAR_NAME CVAR_ENHANCEMENT("Player.FierceDeityPutaway") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterFierceDeityPutaway() { diff --git a/mm/2s2h/Enhancements/Player/InfiniteDekuHopping.cpp b/mm/2s2h/Enhancements/Player/InfiniteDekuHopping.cpp index 483dd6b3df..512eaa2ae3 100644 --- a/mm/2s2h/Enhancements/Player/InfiniteDekuHopping.cpp +++ b/mm/2s2h/Enhancements/Player/InfiniteDekuHopping.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" } -#define CVAR_NAME "gEnhancements.Player.InfiniteDekuHopping" +#define CVAR_NAME CVAR_ENHANCEMENT("Player.InfiniteDekuHopping") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterInfiniteDekuHopping() { diff --git a/mm/2s2h/Enhancements/Player/InstantPutaway.cpp b/mm/2s2h/Enhancements/Player/InstantPutaway.cpp index 7ae4461ae7..7408e48e48 100644 --- a/mm/2s2h/Enhancements/Player/InstantPutaway.cpp +++ b/mm/2s2h/Enhancements/Player/InstantPutaway.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.Player.InstantPutaway" +#define CVAR_NAME CVAR_ENHANCEMENT("Player.InstantPutaway") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterInstantPutaway() { diff --git a/mm/2s2h/Enhancements/Player/LinkSpeedModifier.cpp b/mm/2s2h/Enhancements/Player/LinkSpeedModifier.cpp index 142c43c244..ea1a2a92b6 100644 --- a/mm/2s2h/Enhancements/Player/LinkSpeedModifier.cpp +++ b/mm/2s2h/Enhancements/Player/LinkSpeedModifier.cpp @@ -8,10 +8,10 @@ extern "C" { extern Input* sPlayerControlInput; } -#define CVAR_SPEED_MODIFIER_NAME "gSettings.SpeedModifier.Enable" -#define CVAR_SPEED_MODIFIER_TOGGLE "gSettings.SpeedModifier.Toggle" -#define CVAR_WALK_MODIFIER_NAME "gSettings.SpeedModifier.WalkEnable" -#define CVAR_SWIM_MODIFIER_NAME "gSettings.SpeedModifier.SwimEnable" +#define CVAR_SPEED_MODIFIER_NAME CVAR_SETTING("SpeedModifier.Enable") +#define CVAR_SPEED_MODIFIER_TOGGLE CVAR_SETTING("SpeedModifier.Toggle") +#define CVAR_WALK_MODIFIER_NAME CVAR_SETTING("SpeedModifier.WalkEnable") +#define CVAR_SWIM_MODIFIER_NAME CVAR_SETTING("SpeedModifier.SwimEnable") #define CVAR_SPEED CVarGetInteger(CVAR_SPEED_MODIFIER_NAME, 0) #define CVAR_SPEED_TOGGLE CVarGetInteger(CVAR_SPEED_MODIFIER_TOGGLE, 0) #define CVAR_WALK CVarGetInteger(CVAR_WALK_MODIFIER_NAME, 0) @@ -27,15 +27,15 @@ void RegisterLinkSpeedModifier() { if (CVAR_SPEED_TOGGLE) { if (speedToggle1) { - *speedTarget *= CVarGetFloat("gSettings.SpeedModifier.WalkMapping1", 1.0f); + *speedTarget *= CVarGetFloat(CVAR_SETTING("SpeedModifier.WalkMapping1"), 1.0f); } else if (speedToggle2) { - *speedTarget *= CVarGetFloat("gSettings.SpeedModifier.WalkMapping2", 1.0f); + *speedTarget *= CVarGetFloat(CVAR_SETTING("SpeedModifier.WalkMapping2"), 1.0f); } } else { if (CHECK_BTN_ALL(sPlayerControlInput->cur.button, BTN_CUSTOM_MODIFIER1)) { - *speedTarget *= CVarGetFloat("gSettings.SpeedModifier.WalkMapping1", 1.0f); + *speedTarget *= CVarGetFloat(CVAR_SETTING("SpeedModifier.WalkMapping1"), 1.0f); } else if (CHECK_BTN_ALL(sPlayerControlInput->cur.button, BTN_CUSTOM_MODIFIER2)) { - *speedTarget *= CVarGetFloat("gSettings.SpeedModifier.WalkMapping2", 1.0f); + *speedTarget *= CVarGetFloat(CVAR_SETTING("SpeedModifier.WalkMapping2"), 1.0f); } } }); @@ -50,18 +50,18 @@ void RegisterLinkSpeedModifier() { if (CVAR_SPEED_TOGGLE) { if (speedToggle1) { - swimMod *= CVarGetFloat("gSettings.SpeedModifier.SwimMapping1", 1.0f); + swimMod *= CVarGetFloat(CVAR_SETTING("SpeedModifier.SwimMapping1"), 1.0f); } else if (speedToggle2) { - swimMod *= CVarGetFloat("gSettings.SpeedModifier.SwimMapping2", 1.0f); + swimMod *= CVarGetFloat(CVAR_SETTING("SpeedModifier.SwimMapping2"), 1.0f); } // sControlInput is NULL to prevent inputs while surfacing after obtaining an underwater item so we want // to ignore it for that case } else if (sPlayerControlInput != NULL) { if (CHECK_BTN_ALL(sPlayerControlInput->cur.button, BTN_CUSTOM_MODIFIER1)) { - swimMod *= CVarGetFloat("gSettings.SpeedModifier.SwimMapping1", 1.0f); + swimMod *= CVarGetFloat(CVAR_SETTING("SpeedModifier.SwimMapping1"), 1.0f); } else if (CHECK_BTN_ALL(sPlayerControlInput->cur.button, BTN_CUSTOM_MODIFIER2)) { - swimMod *= CVarGetFloat("gSettings.SpeedModifier.SwimMapping2", 1.0f); + swimMod *= CVarGetFloat(CVAR_SETTING("SpeedModifier.SwimMapping2"), 1.0f); } } diff --git a/mm/2s2h/Enhancements/Player/ManualJump.cpp b/mm/2s2h/Enhancements/Player/ManualJump.cpp index 19e6f197e9..6a8616468a 100644 --- a/mm/2s2h/Enhancements/Player/ManualJump.cpp +++ b/mm/2s2h/Enhancements/Player/ManualJump.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -11,7 +12,7 @@ void func_808395F0(PlayState* play, Player* player, PlayerMeleeWeaponAnimation m f32 yVelocity); } -#define CVAR_NAME "gEnhancements.Player.ManualJump" +#define CVAR_NAME CVAR_ENHANCEMENT("Player.ManualJump") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterManualJump() { diff --git a/mm/2s2h/Enhancements/Player/PreventDiveOverWater.cpp b/mm/2s2h/Enhancements/Player/PreventDiveOverWater.cpp index a4028826ee..3af20f72f0 100644 --- a/mm/2s2h/Enhancements/Player/PreventDiveOverWater.cpp +++ b/mm/2s2h/Enhancements/Player/PreventDiveOverWater.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.Player.PreventDiveOverWater" +#define CVAR_NAME CVAR_ENHANCEMENT("Player.PreventDiveOverWater") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterPreventDiveOverWater() { diff --git a/mm/2s2h/Enhancements/Player/UnderwaterOcarina.cpp b/mm/2s2h/Enhancements/Player/UnderwaterOcarina.cpp index 11aced431f..a1d8382139 100644 --- a/mm/2s2h/Enhancements/Player/UnderwaterOcarina.cpp +++ b/mm/2s2h/Enhancements/Player/UnderwaterOcarina.cpp @@ -1,13 +1,14 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "functions.h" } -#define CVAR_NAME "gEnhancements.Player.UnderwaterOcarina" +#define CVAR_NAME CVAR_ENHANCEMENT("Player.UnderwaterOcarina") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterUnderwaterOcarina() { diff --git a/mm/2s2h/Enhancements/Restorations/BonkCollision.cpp b/mm/2s2h/Enhancements/Restorations/BonkCollision.cpp index dcbbee6cd1..edcf661d43 100644 --- a/mm/2s2h/Enhancements/Restorations/BonkCollision.cpp +++ b/mm/2s2h/Enhancements/Restorations/BonkCollision.cpp @@ -2,7 +2,7 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" -#define CVAR_NAME "gEnhancements.Restorations.BonkCollision" +#define CVAR_NAME CVAR_ENHANCEMENT("Restorations.BonkCollision") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterBonkCollision() { diff --git a/mm/2s2h/Enhancements/Restorations/FlipHopVariable.cpp b/mm/2s2h/Enhancements/Restorations/FlipHopVariable.cpp index 621bd74128..8b7c0f40c3 100644 --- a/mm/2s2h/Enhancements/Restorations/FlipHopVariable.cpp +++ b/mm/2s2h/Enhancements/Restorations/FlipHopVariable.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" } -#define CVAR_NAME "gEnhancements.Restorations.ConstantFlipsHops" +#define CVAR_NAME CVAR_ENHANCEMENT("Restorations.ConstantFlipsHops") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterVariableFlipHop() { diff --git a/mm/2s2h/Enhancements/Restorations/N64WeirdFrames/N64WeirdFrames.cpp b/mm/2s2h/Enhancements/Restorations/N64WeirdFrames/N64WeirdFrames.cpp index bf2e4baa55..714f245f40 100644 --- a/mm/2s2h/Enhancements/Restorations/N64WeirdFrames/N64WeirdFrames.cpp +++ b/mm/2s2h/Enhancements/Restorations/N64WeirdFrames/N64WeirdFrames.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" #include #include @@ -17,7 +18,7 @@ int ResourceMgr_OTRSigCheck(char* imgData); AnimationHeaderCommon* ResourceMgr_LoadAnimByName(const char* path); } -#define CVAR_NAME "gEnhancements.Restorations.N64WeirdFrames" +#define CVAR_NAME CVAR_ENHANCEMENT("Restorations.N64WeirdFrames") // This CVAR is defaulted to on, because it is consistent with hardware, but able to be disabled if desired. #define CVAR CVarGetInteger(CVAR_NAME, 1) diff --git a/mm/2s2h/Enhancements/Restorations/OoTFasterSwim.cpp b/mm/2s2h/Enhancements/Restorations/OoTFasterSwim.cpp index 6812aee4ba..8cb4ee3079 100644 --- a/mm/2s2h/Enhancements/Restorations/OoTFasterSwim.cpp +++ b/mm/2s2h/Enhancements/Restorations/OoTFasterSwim.cpp @@ -1,13 +1,14 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" void Player_Action_57(Player* player, PlayState* play); } -#define CVAR_NAME "gEnhancements.Restorations.OoTFasterSwim" +#define CVAR_NAME CVAR_ENHANCEMENT("Restorations.OoTFasterSwim") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterOoTFasterSwim() { diff --git a/mm/2s2h/Enhancements/Restorations/PauseBufferInputs.cpp b/mm/2s2h/Enhancements/Restorations/PauseBufferInputs.cpp index 91d3d5fef3..3080383fac 100644 --- a/mm/2s2h/Enhancements/Restorations/PauseBufferInputs.cpp +++ b/mm/2s2h/Enhancements/Restorations/PauseBufferInputs.cpp @@ -1,13 +1,14 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope.h" } -#define CVAR_NAME "gEnhancements.Restorations.PauseBufferWindow" +#define CVAR_NAME CVAR_ENHANCEMENT("Restorations.PauseBufferWindow") #define CVAR CVarGetInteger(CVAR_NAME, 0) static u16 inputBufferTimer = 0; diff --git a/mm/2s2h/Enhancements/Restorations/PowerCrouchStab.cpp b/mm/2s2h/Enhancements/Restorations/PowerCrouchStab.cpp index 5d7889d784..1918f5f05b 100644 --- a/mm/2s2h/Enhancements/Restorations/PowerCrouchStab.cpp +++ b/mm/2s2h/Enhancements/Restorations/PowerCrouchStab.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.Restorations.PowerCrouchStab" +#define CVAR_NAME CVAR_ENHANCEMENT("Restorations.PowerCrouchStab") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterPowerCrouchStab() { diff --git a/mm/2s2h/Enhancements/Restorations/SideRoll.cpp b/mm/2s2h/Enhancements/Restorations/SideRoll.cpp index f3681b7c65..ffa8813282 100644 --- a/mm/2s2h/Enhancements/Restorations/SideRoll.cpp +++ b/mm/2s2h/Enhancements/Restorations/SideRoll.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.Restorations.SideRoll" +#define CVAR_NAME CVAR_ENHANCEMENT("Restorations.SideRoll") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSideRoll() { diff --git a/mm/2s2h/Enhancements/Restorations/TatlISG.cpp b/mm/2s2h/Enhancements/Restorations/TatlISG.cpp index 60a662af92..0c4599ee9d 100644 --- a/mm/2s2h/Enhancements/Restorations/TatlISG.cpp +++ b/mm/2s2h/Enhancements/Restorations/TatlISG.cpp @@ -1,8 +1,9 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.Restorations.TatlISG" +#define CVAR_NAME CVAR_ENHANCEMENT("Restorations.TatlISG") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterTatlISG() { diff --git a/mm/2s2h/Enhancements/Restorations/WoodfallMountainAppearance.cpp b/mm/2s2h/Enhancements/Restorations/WoodfallMountainAppearance.cpp index 4b99d26fbc..7c6f1b9e09 100644 --- a/mm/2s2h/Enhancements/Restorations/WoodfallMountainAppearance.cpp +++ b/mm/2s2h/Enhancements/Restorations/WoodfallMountainAppearance.cpp @@ -1,13 +1,14 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "z64save.h" #include "overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.h" } -#define CVAR_NAME "gEnhancements.Restorations.WoodfallMountainAppearance" +#define CVAR_NAME CVAR_ENHANCEMENT("Restorations.WoodfallMountainAppearance") #define CVAR CVarGetInteger(CVAR_NAME, 0) typedef enum { diff --git a/mm/2s2h/Enhancements/Saving/FileSlot3.cpp b/mm/2s2h/Enhancements/Saving/FileSlot3.cpp index 14a92acf23..d180f70e11 100644 --- a/mm/2s2h/Enhancements/Saving/FileSlot3.cpp +++ b/mm/2s2h/Enhancements/Saving/FileSlot3.cpp @@ -1,5 +1,6 @@ #include #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "src/overlays/gamestates/ovl_file_choose/z_file_select.h" @@ -7,7 +8,7 @@ extern "C" { extern FileSelectState* gFileSelectState; } -#define CVAR_NAME "gEnhancements.Saving.FileSlot3" +#define CVAR_NAME CVAR_ENHANCEMENT("Saving.FileSlot3") #define CVAR CVarGetInteger(CVAR_NAME, true) void RegisterFileSlot3() { diff --git a/mm/2s2h/Enhancements/Saving/PauseSave.cpp b/mm/2s2h/Enhancements/Saving/PauseSave.cpp index 7478792ca7..1b807d401e 100644 --- a/mm/2s2h/Enhancements/Saving/PauseSave.cpp +++ b/mm/2s2h/Enhancements/Saving/PauseSave.cpp @@ -1,10 +1,11 @@ #include #include "2s2h/ShipInit.hpp" #include "SavingEnhancements.h" +#include "2s2h/cvar_prefixes.h" extern "C" PlayState* gPlayState; -#define CVAR_NAME "gEnhancements.Saving.PauseSave" +#define CVAR_NAME CVAR_ENHANCEMENT("Saving.PauseSave") #define CVAR CVarGetInteger(CVAR_NAME, false) void RegisterPauseSave() { diff --git a/mm/2s2h/Enhancements/Saving/SavingEnhancements.cpp b/mm/2s2h/Enhancements/Saving/SavingEnhancements.cpp index 01d9e07da2..4ca223fa36 100644 --- a/mm/2s2h/Enhancements/Saving/SavingEnhancements.cpp +++ b/mm/2s2h/Enhancements/Saving/SavingEnhancements.cpp @@ -2,13 +2,14 @@ #include "BenPort.h" #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include #include } -#define CVAR_REMEMBER_SAVE_LOCATION_NAME "gEnhancements.Saving.RememberSaveLocation" +#define CVAR_REMEMBER_SAVE_LOCATION_NAME CVAR_ENHANCEMENT("Saving.RememberSaveLocation") #define CVAR_REMEMBER_SAVE_LOCATION CVarGetInteger(CVAR_REMEMBER_SAVE_LOCATION_NAME, 0) static uint32_t autosaveInterval = 0; @@ -140,7 +141,7 @@ void DrawAutosaveIcon() { void HandleAutoSave() { // Check if the interval has passed in minutes. - autosaveInterval = CVarGetInteger("gEnhancements.Saving.AutosaveInterval", 5) * 60000; + autosaveInterval = CVarGetInteger(CVAR_ENHANCEMENT("Saving.AutosaveInterval"), 5) * 60000; currentTimestamp = GetUnixTimestamp(); if ((currentTimestamp - lastSaveTimestamp) < autosaveInterval) { return; @@ -229,7 +230,7 @@ void skipEntranceCutsceneOnLoad(s16 fileNum) { void RegisterSavingEnhancements() { REGISTER_VB_SHOULD(VB_DELETE_OWL_SAVE, { - if (CVarGetInteger("gEnhancements.Saving.PersistentOwlSaves", 0) || + if (CVarGetInteger(CVAR_ENHANCEMENT("Saving.PersistentOwlSaves"), 0) || gSaveContext.save.shipSaveInfo.pauseSaveEntrance != -1) { *should = false; } @@ -277,7 +278,7 @@ void RegisterAutosave() { autosaveGameStateDrawFinishHookId = 0; } - if (CVarGetInteger("gEnhancements.Saving.Autosave", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Saving.Autosave"), 0)) { autosaveGameStateUpdateHookId = GameInteractor::Instance->RegisterGameHook([]() { if (gPlayState == nullptr) { diff --git a/mm/2s2h/Enhancements/Songs/BetterSongOfDoubleTime.cpp b/mm/2s2h/Enhancements/Songs/BetterSongOfDoubleTime.cpp index 6061fa6c30..3820571d42 100644 --- a/mm/2s2h/Enhancements/Songs/BetterSongOfDoubleTime.cpp +++ b/mm/2s2h/Enhancements/Songs/BetterSongOfDoubleTime.cpp @@ -3,6 +3,7 @@ #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -14,7 +15,7 @@ extern "C" { #include "assets/interface/nes_font_static/nes_font_static.h" } -#define CVAR_NAME "gEnhancements.Songs.BetterSongOfDoubleTime" +#define CVAR_NAME CVAR_ENHANCEMENT("Songs.BetterSongOfDoubleTime") #define CVAR CVarGetInteger(CVAR_NAME, 0) // Normalize's time so that 6am is considered 0, and anything before rolls over u16 diff --git a/mm/2s2h/Enhancements/Songs/EnableSunsSong.cpp b/mm/2s2h/Enhancements/Songs/EnableSunsSong.cpp index e9851e1cc1..f6238f031a 100644 --- a/mm/2s2h/Enhancements/Songs/EnableSunsSong.cpp +++ b/mm/2s2h/Enhancements/Songs/EnableSunsSong.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include } -#define CVAR_NAME "gEnhancements.Songs.EnableSunsSong" +#define CVAR_NAME CVAR_ENHANCEMENT("Songs.EnableSunsSong") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterEnableSunsSong() { diff --git a/mm/2s2h/Enhancements/Songs/FasterSongPlayback.cpp b/mm/2s2h/Enhancements/Songs/FasterSongPlayback.cpp index 2debe878a7..bf09678608 100644 --- a/mm/2s2h/Enhancements/Songs/FasterSongPlayback.cpp +++ b/mm/2s2h/Enhancements/Songs/FasterSongPlayback.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -9,7 +10,7 @@ extern u8 sPlaybackState; #include "overlays/actors/ovl_En_Torch2/z_en_torch2.h" } -#define CVAR_NAME "gEnhancements.Songs.FasterSongPlayback" +#define CVAR_NAME CVAR_ENHANCEMENT("Songs.FasterSongPlayback") #define CVAR CVarGetInteger(CVAR_NAME, 0) #define NOT_OCARINA_ACTION_BALAD_WIND_FISH \ diff --git a/mm/2s2h/Enhancements/Songs/PauseOwlWarp.cpp b/mm/2s2h/Enhancements/Songs/PauseOwlWarp.cpp index 9900fe4c95..467d59bbb6 100644 --- a/mm/2s2h/Enhancements/Songs/PauseOwlWarp.cpp +++ b/mm/2s2h/Enhancements/Songs/PauseOwlWarp.cpp @@ -2,6 +2,7 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" #include "2s2h/ShipUtils.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope.h" @@ -14,7 +15,7 @@ extern s16 sInDungeonScene; extern s32 gHorseIsMounted; } -#define CVAR_NAME "gEnhancements.Songs.PauseOwlWarp" +#define CVAR_NAME CVAR_ENHANCEMENT("Songs.PauseOwlWarp") #define CVAR CVarGetInteger(CVAR_NAME, 0) extern "C" bool PauseOwlWarp_IsOwlWarpEnabled() { @@ -80,7 +81,7 @@ void UpdateCursorForOwlWarpPoints(PauseContext* pauseCtx) { (pauseCtx->pageIndex == PAUSE_MAP)) { InterfaceContext* interfaceCtx = &gPlayState->interfaceCtx; s16 oldCursorPoint = pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; - bool mirrorWorldActive = CVarGetInteger("gModes.MirroredWorld.State", 0); + bool mirrorWorldActive = CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0); bool goingLeft = pauseCtx->stickAdjX < -30; bool goingRight = pauseCtx->stickAdjX > 30; diff --git a/mm/2s2h/Enhancements/Songs/SkipScarecrowSong.cpp b/mm/2s2h/Enhancements/Songs/SkipScarecrowSong.cpp index c5aac238bd..de8d641a23 100644 --- a/mm/2s2h/Enhancements/Songs/SkipScarecrowSong.cpp +++ b/mm/2s2h/Enhancements/Songs/SkipScarecrowSong.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -8,7 +9,7 @@ extern "C" { #include "src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.h" } -#define CVAR_NAME "gEnhancements.Playback.SkipScarecrowSong" +#define CVAR_NAME CVAR_ENHANCEMENT("Playback.SkipScarecrowSong") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipScarecrowSong() { diff --git a/mm/2s2h/Enhancements/Songs/SkipSoTCutscenes.cpp b/mm/2s2h/Enhancements/Songs/SkipSoTCutscenes.cpp index bd5e283ed7..b4cbc3d16d 100644 --- a/mm/2s2h/Enhancements/Songs/SkipSoTCutscenes.cpp +++ b/mm/2s2h/Enhancements/Songs/SkipSoTCutscenes.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "functions.h" @@ -13,7 +14,7 @@ void EnTest6_StopDoubleSoTCutscene(EnTest6* thisx, PlayState* play); void EnTest6_StopInvertedSoTCutscene(EnTest6* thisx, PlayState* play); } -#define CVAR_NAME "gEnhancements.Songs.SkipSoTCutscenes" +#define CVAR_NAME CVAR_ENHANCEMENT("Songs.SkipSoTCutscenes") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterSkipSoTCutscenes() { diff --git a/mm/2s2h/Enhancements/Songs/SkipSoaringCutscene.cpp b/mm/2s2h/Enhancements/Songs/SkipSoaringCutscene.cpp index 5a42346f7c..3d70f2756f 100644 --- a/mm/2s2h/Enhancements/Songs/SkipSoaringCutscene.cpp +++ b/mm/2s2h/Enhancements/Songs/SkipSoaringCutscene.cpp @@ -2,13 +2,14 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" #include "2s2h/ShipUtils.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" #include "overlays/actors/ovl_En_Test7/z_en_test7.h" } -#define CVAR_NAME "gEnhancements.Songs.SkipSoaringCutscene" +#define CVAR_NAME CVAR_ENHANCEMENT("Songs.SkipSoaringCutscene") #define CVAR CVarGetInteger(CVAR_NAME, 0) static void SkipSoaringCutscene(Actor* actor, bool* should) { diff --git a/mm/2s2h/Enhancements/Songs/ZoraEggCount.cpp b/mm/2s2h/Enhancements/Songs/ZoraEggCount.cpp index 1c696ee8b8..5536f0b6a7 100644 --- a/mm/2s2h/Enhancements/Songs/ZoraEggCount.cpp +++ b/mm/2s2h/Enhancements/Songs/ZoraEggCount.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "src/overlays/actors/ovl_En_Mk/z_en_mk.h" @@ -8,14 +9,14 @@ extern "C" { const uint32_t MAX_EGGS = 7; -#define CVAR_NAME "gEnhancements.Songs.ZoraEggCount" +#define CVAR_NAME CVAR_ENHANCEMENT("Songs.ZoraEggCount") #define CVAR CVarGetInteger(CVAR_NAME, MAX_EGGS) void RegisterZoraEggCount() { COND_ID_HOOK(OnActorUpdate, ACTOR_EN_MK, CVAR != MAX_EGGS, [](Actor* actor) { // complete quest if you have enough eggs if (gSaveContext.save.saveInfo.permanentSceneFlags[SCENE_LABO].unk_14 != MAX_EGGS && - CVarGetInteger("gEnhancements.Songs.ZoraEggCount", MAX_EGGS) <= + CVarGetInteger(CVAR_ENHANCEMENT("Songs.ZoraEggCount"), MAX_EGGS) <= gSaveContext.save.saveInfo.permanentSceneFlags[SCENE_LABO].unk_14) { gSaveContext.save.saveInfo.permanentSceneFlags[SCENE_LABO].unk_14 = MAX_EGGS; } diff --git a/mm/2s2h/Enhancements/Timesavers/BombersHideAndSeek.cpp b/mm/2s2h/Enhancements/Timesavers/BombersHideAndSeek.cpp index d79ee7efb8..a212f4313c 100644 --- a/mm/2s2h/Enhancements/Timesavers/BombersHideAndSeek.cpp +++ b/mm/2s2h/Enhancements/Timesavers/BombersHideAndSeek.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Bomjimb/z_en_bomjimb.h" @@ -8,7 +9,7 @@ void func_80C02CA4(EnBomjimb* thisx, PlayState* play); void func_80C02A14(EnBomjimb* thisx, PlayState* play); } -#define CVAR_NAME "gEnhancements.Minigames.BombersHideAndSeek" +#define CVAR_NAME CVAR_ENHANCEMENT("Minigames.BombersHideAndSeek") #define CVAR CVarGetInteger(CVAR_NAME, 5) void RegisterBombersHideAndSeek() { diff --git a/mm/2s2h/Enhancements/Timesavers/DampeDiggingSkip.cpp b/mm/2s2h/Enhancements/Timesavers/DampeDiggingSkip.cpp index b395f78afe..e269a6619e 100644 --- a/mm/2s2h/Enhancements/Timesavers/DampeDiggingSkip.cpp +++ b/mm/2s2h/Enhancements/Timesavers/DampeDiggingSkip.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Tk/z_en_tk.h" @@ -13,7 +14,7 @@ void EnBigpo_RevealedFireIdle(EnBigpo* thisx, PlayState* play); void EnBigpo_SetupSpawnCutscene(EnBigpo* thisx); } -#define CVAR_NAME "gEnhancements.Timesavers.DampeDiggingSkip" +#define CVAR_NAME CVAR_ENHANCEMENT("Timesavers.DampeDiggingSkip") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterDampeDiggingSkip() { diff --git a/mm/2s2h/Enhancements/Timesavers/FastChests.cpp b/mm/2s2h/Enhancements/Timesavers/FastChests.cpp index 41e4d340ba..3c50436e30 100644 --- a/mm/2s2h/Enhancements/Timesavers/FastChests.cpp +++ b/mm/2s2h/Enhancements/Timesavers/FastChests.cpp @@ -2,8 +2,9 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" #include "2s2h/Rando/Rando.h" +#include "2s2h/cvar_prefixes.h" -#define CVAR_NAME "gEnhancements.Timesavers.FastChests" +#define CVAR_NAME CVAR_ENHANCEMENT("Timesavers.FastChests") #define CVAR CVarGetInteger(CVAR_NAME, 0) void RegisterFastChests() { diff --git a/mm/2s2h/Enhancements/Timesavers/FasterSceneTransitions.cpp b/mm/2s2h/Enhancements/Timesavers/FasterSceneTransitions.cpp index 72a849be42..d930d0d0ee 100644 --- a/mm/2s2h/Enhancements/Timesavers/FasterSceneTransitions.cpp +++ b/mm/2s2h/Enhancements/Timesavers/FasterSceneTransitions.cpp @@ -1,6 +1,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -10,7 +11,7 @@ extern "C" { void Play_SetupTransition(PlayState* playState, s32 transitionType); }; -#define CVAR_NAME "gEnhancements.Timesavers.FasterSceneTransitions" +#define CVAR_NAME CVAR_ENHANCEMENT("Timesavers.FasterSceneTransitions") #define CVAR CVarGetInteger(CVAR_NAME, 0) static void SetupFasterSceneTransition() { diff --git a/mm/2s2h/Enhancements/Timesavers/GalleryTwofer.cpp b/mm/2s2h/Enhancements/Timesavers/GalleryTwofer.cpp index ed4ea3abab..de90a19b0a 100644 --- a/mm/2s2h/Enhancements/Timesavers/GalleryTwofer.cpp +++ b/mm/2s2h/Enhancements/Timesavers/GalleryTwofer.cpp @@ -4,16 +4,17 @@ #include "2s2h/Rando/Rando.h" #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/CustomMessage/CustomMessage.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.h" } -#define CVAR_NAME "gEnhancements.Timesavers.GalleryTwofer" +#define CVAR_NAME CVAR_ENHANCEMENT("Timesavers.GalleryTwofer") #define CVAR CVarGetInteger(CVAR_NAME, 0) -#define SWAMP_CVAR_NAME "gEnhancements.Minigames.SwampArcheryScore" +#define SWAMP_CVAR_NAME CVAR_ENHANCEMENT("Minigames.SwampArcheryScore") #define SWAMP_CVAR CVarGetInteger(SWAMP_CVAR_NAME, 2180) -#define TOWN_CVAR_NAME "gEnhancements.Minigames.TownArcheryScore" +#define TOWN_CVAR_NAME CVAR_ENHANCEMENT("Minigames.TownArcheryScore") #define TOWN_CVAR CVarGetInteger(TOWN_CVAR_NAME, 50) static s16 highestScore = 0; diff --git a/mm/2s2h/Enhancements/Timesavers/MarineLabHP.cpp b/mm/2s2h/Enhancements/Timesavers/MarineLabHP.cpp index 41732b31b1..d3c18c2f27 100644 --- a/mm/2s2h/Enhancements/Timesavers/MarineLabHP.cpp +++ b/mm/2s2h/Enhancements/Timesavers/MarineLabHP.cpp @@ -1,12 +1,13 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Fish2/z_en_fish2.h" } -#define CVAR_NAME "gEnhancements.Timesavers.MarineLabHP" +#define CVAR_NAME CVAR_ENHANCEMENT("Timesavers.MarineLabHP") #define CVAR CVarGetInteger(CVAR_NAME, 0) static f32 D_80B2B370[] = { 0.01f, 0.012f, 0.014f, 0.017f, 0.019f, 0.033f }; diff --git a/mm/2s2h/Enhancements/Timesavers/SwampBoatSkip.cpp b/mm/2s2h/Enhancements/Timesavers/SwampBoatSkip.cpp index 6e7dea2333..1cead8446b 100644 --- a/mm/2s2h/Enhancements/Timesavers/SwampBoatSkip.cpp +++ b/mm/2s2h/Enhancements/Timesavers/SwampBoatSkip.cpp @@ -1,14 +1,15 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_Bg_Ingate/z_bg_ingate.h" } -#define CVAR_NAME "gEnhancements.Timesavers.SwampBoatSpeed" +#define CVAR_NAME CVAR_ENHANCEMENT("Timesavers.SwampBoatSpeed") #define CVAR CVarGetInteger(CVAR_NAME, 0) -#define SCORE_CVAR_NAME "gEnhancements.Minigames.BoatArcheryScore" +#define SCORE_CVAR_NAME CVAR_ENHANCEMENT("Minigames.BoatArcheryScore") #define SCORE_CVAR CVarGetInteger(SCORE_CVAR_NAME, 20) void RegisterSwampBoatSpeed() { diff --git a/mm/2s2h/Enhancements/Trackers/DisplayOverlay.cpp b/mm/2s2h/Enhancements/Trackers/DisplayOverlay.cpp index 2dfde79389..7b642a1c55 100644 --- a/mm/2s2h/Enhancements/Trackers/DisplayOverlay.cpp +++ b/mm/2s2h/Enhancements/Trackers/DisplayOverlay.cpp @@ -13,13 +13,14 @@ uint64_t GetUnixTimestamp(); #include "ShipUtils.h" #include "interface/parameter_static/parameter_static.h" #include "2s2h/Enhancements/Enhancements.h" +#include "2s2h/cvar_prefixes.h" float windowScale = 1.0f; ImVec4 windowBG = ImVec4(0, 0, 0, 0.5f); static constexpr ImVec4 tintColor = {}; void DrawInGameTimer(uint32_t timer, ImVec4 color = ImVec4(1, 1, 1, 1)) { - float windowScale = MAX(CVarGetFloat("gDisplayOverlay.Scale", 1.0f), 1.0f); + float windowScale = MAX(CVarGetFloat(CVAR_SETTING("DisplayOverlay.Scale"), 1.0f), 1.0f); std::string timerStr = Ship_FormatTimeDisplay(timer); uint16_t textureIndex = 0; @@ -46,13 +47,14 @@ void DisplayOverlayWindow::Draw() { if (!gPlayState) { return; } - int displayOverlay = CVarGetInteger("gWindows.DisplayOverlay", 0); + int displayOverlay = CVarGetInteger(CVAR_WINDOW("DisplayOverlay"), 0); if (displayOverlay == TIMER_DISPLAY_NONE) { return; } - float windowScale = MAX(CVarGetFloat("gDisplayOverlay.Scale", 1.0f), 1.0f); - ImVec4 windowBG = !CVarGetInteger("gDisplayOverlay.Background", 0) ? ImVec4(0, 0, 0, 0.5f) : ImVec4(0, 0, 0, 0); + float windowScale = MAX(CVarGetFloat(CVAR_SETTING("DisplayOverlay.Scale"), 1.0f), 1.0f); + ImVec4 windowBG = + !CVarGetInteger(CVAR_SETTING("DisplayOverlay.Background"), 0) ? ImVec4(0, 0, 0, 0.5f) : ImVec4(0, 0, 0, 0); ImGui::PushStyleColor(ImGuiCol_WindowBg, windowBG); ImGui::PushStyleColor(ImGuiCol_Border, ImVec4(0, 0, 0, 0)); diff --git a/mm/2s2h/Enhancements/Trackers/ItemTracker/ItemTracker.cpp b/mm/2s2h/Enhancements/Trackers/ItemTracker/ItemTracker.cpp index e825bc62ad..c21c39920d 100644 --- a/mm/2s2h/Enhancements/Trackers/ItemTracker/ItemTracker.cpp +++ b/mm/2s2h/Enhancements/Trackers/ItemTracker/ItemTracker.cpp @@ -3,6 +3,7 @@ #include "2s2h/BenGui/UIWidgets.hpp" #include "Rando/Rando.h" +#include "2s2h/cvar_prefixes.h" #include "2s2h/ShipUtils.h" #include @@ -369,7 +370,7 @@ void DrawItemSlot(int16_t itemId, float scale, bool isRandoItem) { ImVec2(imageObject.textureDimensions.x * scale, imageObject.textureDimensions.y * scale), ImVec2(0, 0), ImVec2(1, 1), imageObject.textureColor, ImVec4(0, 0, 0, 0)); UIWidgets::Tooltip(GetItemTrackerItemName(itemId, isRandoItem).c_str()); - if (CVarGetInteger("gSettings.ItemTracker.ItemCounts", 0)) { + if (CVarGetInteger(CVAR_TRACKER_ITEM("ItemCounts"), 0)) { DrawItemCounts(itemId, isRandoItem, imageObject.textureDimensions * scale, scale, currentPos); } } @@ -409,10 +410,10 @@ void ItemTrackerWindow::Draw() { ImGuiWindowFlags_NoFocusOnAppearing | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollWithMouse | ImGuiWindowFlags_NoScrollbar; - if (!CVarGetInteger("gSettings.ItemTracker.WindowType", 0)) { + if (!CVarGetInteger(CVAR_TRACKER_ITEM("WindowType"), 0)) { windowFlags |= ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoDocking; } - shouldWindowSplit = CVarGetInteger("gSettings.ItemTracker.WindowGroup", 0); + shouldWindowSplit = CVarGetInteger(CVAR_TRACKER_ITEM("WindowGroup"), 0); std::vector*> itemTrackerWindows = { &BenGui::mItemTrackerWindow->namedItemWindows, diff --git a/mm/2s2h/Enhancements/Trackers/ItemTracker/ItemTrackerSettings.cpp b/mm/2s2h/Enhancements/Trackers/ItemTracker/ItemTrackerSettings.cpp index 2c457d240e..c3d78403b4 100644 --- a/mm/2s2h/Enhancements/Trackers/ItemTracker/ItemTrackerSettings.cpp +++ b/mm/2s2h/Enhancements/Trackers/ItemTracker/ItemTrackerSettings.cpp @@ -3,6 +3,7 @@ #include "2s2h/BenGui/UIWidgets.hpp" #include "ShipUtils.h" #include "ship/config/Config.h" +#include "2s2h/cvar_prefixes.h" namespace BenGui { extern std::shared_ptr mItemTrackerWindow; @@ -11,7 +12,7 @@ extern std::shared_ptr mItemTrackerWindow; void ItemTrackerSettingsWindow::UpdateElement() { } -#define WIDGET_COLOR UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)) +#define WIDGET_COLOR UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)) static const char* windowTypes[2] = { "Floating", "Window" }; @@ -543,13 +544,13 @@ void DrawTrackerOptions() { ImGui::SeparatorText("Custom Windows"); if (ImGui::BeginTable("OptionsList", 2)) { ImGui::TableNextColumn(); - UIWidgets::CVarCombobox("Window Type", "gSettings.ItemTracker.WindowType", windowTypes, + UIWidgets::CVarCombobox("Window Type", CVAR_TRACKER_ITEM("WindowType"), windowTypes, { .alignment = UIWidgets::ComponentAlignment::Right, .labelPosition = UIWidgets::LabelPosition::Near, .color = WIDGET_COLOR }); ImGui::TableNextColumn(); - UIWidgets::CVarCheckbox("Split Window Groups", "gSettings.ItemTracker.WindowGroup"); - UIWidgets::CVarCheckbox("Show Item Counts", "gSettings.ItemTracker.ItemCounts"); + UIWidgets::CVarCheckbox("Split Window Groups", CVAR_TRACKER_ITEM("WindowGroup")); + UIWidgets::CVarCheckbox("Show Item Counts", CVAR_TRACKER_ITEM("ItemCounts")); ImGui::EndTable(); } UIWidgets::InputString("Window Name", &trackerInputName, @@ -618,11 +619,11 @@ void ItemTrackerSettingsWindow::DrawElement() { ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(1.0f, 1.0f, 1.0f, 0.2f)); ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(1.0f, 1.0f, 1.0f, 0.1f)); - if (CVarGetInteger("gWindows.ItemTracker", 0)) { - UIWidgets::WindowButton("Hide Item Tracker", "gWindows.ItemTracker", BenGui::mItemTrackerWindow, + if (CVarGetInteger(CVAR_WINDOW("ItemTracker"), 0)) { + UIWidgets::WindowButton("Hide Item Tracker", CVAR_WINDOW("ItemTracker"), BenGui::mItemTrackerWindow, { .size = UIWidgets::Sizes::Inline, .color = WIDGET_COLOR }); } else { - UIWidgets::WindowButton("Show Item Tracker", "gWindows.ItemTracker", BenGui::mItemTrackerWindow, + UIWidgets::WindowButton("Show Item Tracker", CVAR_WINDOW("ItemTracker"), BenGui::mItemTrackerWindow, { .size = UIWidgets::Sizes::Inline, .color = WIDGET_COLOR }); } UIWidgets::Separator(); diff --git a/mm/2s2h/Enhancements/Trackers/TimeSplits/TimeSplitsActions.cpp b/mm/2s2h/Enhancements/Trackers/TimeSplits/TimeSplitsActions.cpp index 25883b8746..0915caae9d 100644 --- a/mm/2s2h/Enhancements/Trackers/TimeSplits/TimeSplitsActions.cpp +++ b/mm/2s2h/Enhancements/Trackers/TimeSplits/TimeSplitsActions.cpp @@ -2,6 +2,7 @@ #include #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" #include #include #include "2s2h/BenGui/UIWidgets.hpp" @@ -18,7 +19,7 @@ extern "C" { uint64_t GetUnixTimestamp(); } -#define CVAR_NAME "gSettings.TimeSplits.Enable" +#define CVAR_NAME CVAR_TRACKER_TIMESPLITS("Enable") #define CVAR CVarGetInteger(CVAR_NAME, 0) nlohmann::json TimesplitObject_to_json(const TimesplitObject& split) { diff --git a/mm/2s2h/Enhancements/Trackers/TimeSplits/Timesplits.cpp b/mm/2s2h/Enhancements/Trackers/TimeSplits/Timesplits.cpp index 5a497c7efa..b57296c284 100644 --- a/mm/2s2h/Enhancements/Trackers/TimeSplits/Timesplits.cpp +++ b/mm/2s2h/Enhancements/Trackers/TimeSplits/Timesplits.cpp @@ -4,6 +4,7 @@ #include #include #include "2s2h/BenGui/UIWidgets.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -186,7 +187,8 @@ void DrawSplitsList(bool isMain) { // Item Image Column ImGui::TableNextColumn(); - if (CVarGetInteger("gSettings.TimeSplits.Highlight", 0) && splitList[i].splitStatus == SPLIT_ACTIVE) { + if (CVarGetInteger(CVAR_TRACKER_TIMESPLITS("Highlight"), 0) && + splitList[i].splitStatus == SPLIT_ACTIVE) { ImGui::TableSetBgColor(ImGuiTableBgTarget_RowBg0, IM_COL32(47, 79, 90, 255)); } @@ -222,7 +224,7 @@ void DrawSplitsList(bool isMain) { GetTimeDiffTextDisplay(splitList[i]).colorDisplay, !gPlayState ? BLANK_SPLIT : Ship_FormatTimeDisplay(GetTimeDiffTextDisplay(splitList[i]).timeDisplay).c_str()); - if (CVarGetInteger("gSettings.TimeSplits.Compare", 0) && comparisonList.size() != 0) { + if (CVarGetInteger(CVAR_TRACKER_TIMESPLITS("Compare"), 0) && comparisonList.size() != 0) { !gPlayState ? ImGui::TextColored(COLOR_WHITE, BLANK_SPLIT) : i < comparisonList.size() ? ImGui::TextColored( @@ -236,7 +238,7 @@ void DrawSplitsList(bool isMain) { // Previous Best Column ImGui::TableNextColumn(); TableCellCenteredText(COLOR_WHITE, Ship_FormatTimeDisplay(splitList[i].splitPreviousBest).c_str()); - if (CVarGetInteger("gSettings.TimeSplits.Compare", 0) && comparisonList.size() != 0) { + if (CVarGetInteger(CVAR_TRACKER_TIMESPLITS("Compare"), 0) && comparisonList.size() != 0) { ImGui::TextColored(COLOR_GREY, i < comparisonList.size() ? Ship_FormatTimeDisplay(comparisonList[i].splitPreviousBest).c_str() @@ -245,7 +247,7 @@ void DrawSplitsList(bool isMain) { ImGui::PopID(); - if (CVarGetInteger("gSettings.TimeSplits.Follow", 0) && splitList[i].splitStatus == SPLIT_ACTIVE) { + if (CVarGetInteger(CVAR_TRACKER_TIMESPLITS("Follow"), 0) && splitList[i].splitStatus == SPLIT_ACTIVE) { ImGui::SetScrollHereY(); } } @@ -266,15 +268,15 @@ void DrawSplitsList(bool isMain) { void UpdateSplitSettings(uint32_t settingName) { switch (settingName) { case SPLIT_HEADERS: - tableColumnFlags = CVarGetInteger("gSettings.TimeSplits.ShowHeaders", 0) + tableColumnFlags = CVarGetInteger(CVAR_TRACKER_TIMESPLITS("ShowHeaders"), 0) ? ImGuiTableColumnFlags_NoHeaderLabel : ImGuiTableColumnFlags_None; break; case SPLIT_OPACITY: - splitOpacity.w = CVarGetInteger("gSettings.TimeSplits.Opacity", 0) ? 0 : 0.5f; + splitOpacity.w = CVarGetInteger(CVAR_TRACKER_TIMESPLITS("Opacity"), 0) ? 0 : 0.5f; break; case SPLIT_COMPARE: - if (CVarGetInteger("gSettings.TimeSplits.Compare", 0)) { + if (CVarGetInteger(CVAR_TRACKER_TIMESPLITS("Compare"), 0)) { SplitSaveFileAction(SPLIT_RETRIEVE, ""); if (savedLists.size() != 0) { SplitLoadComparisonList(); @@ -287,7 +289,7 @@ void UpdateSplitSettings(uint32_t settingName) { } void TimesplitsWindow::Draw() { - if (!CVarGetInteger("gSettings.TimeSplits.Enable", 0)) { + if (!CVarGetInteger(CVAR_TRACKER_TIMESPLITS("Enable"), 0)) { return; } ImGui::PushStyleColor(ImGuiCol_WindowBg, splitOpacity); diff --git a/mm/2s2h/Enhancements/Trackers/TimeSplits/TimesplitsSettings.cpp b/mm/2s2h/Enhancements/Trackers/TimeSplits/TimesplitsSettings.cpp index 130de5c767..537d09c6eb 100644 --- a/mm/2s2h/Enhancements/Trackers/TimeSplits/TimesplitsSettings.cpp +++ b/mm/2s2h/Enhancements/Trackers/TimeSplits/TimesplitsSettings.cpp @@ -5,6 +5,7 @@ #include #include #include "2s2h/BenGui/UIWidgets.hpp" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -385,25 +386,25 @@ void DrawOptions() { ImGui::TableSetupColumn("", ImGuiTableColumnFlags_WidthStretch); ImGui::TableNextColumn(); - UIWidgets::CVarCheckbox("Enable Time Splits", "gSettings.TimeSplits.Enable", + UIWidgets::CVarCheckbox("Enable Time Splits", CVAR_TRACKER_TIMESPLITS("Enable"), { - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), }); UIWidgets::Tooltip("Enables the Time Split system, splits will not occur with this unchecked."); ImGui::TableNextColumn(); - if (UIWidgets::CVarCheckbox("Show Headers", "gSettings.TimeSplits.ShowHeaders", + if (UIWidgets::CVarCheckbox("Show Headers", CVAR_TRACKER_TIMESPLITS("ShowHeaders"), { - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), })) { UpdateSplitSettings(SPLIT_HEADERS); }; UIWidgets::Tooltip("Shows the column names in the Split List."); ImGui::TableNextColumn(); - if (UIWidgets::CVarCheckbox("Hide Background", "gSettings.TimeSplits.Opacity", + if (UIWidgets::CVarCheckbox("Hide Background", CVAR_TRACKER_TIMESPLITS("Opacity"), { - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), })) { UpdateSplitSettings(SPLIT_OPACITY); }; @@ -411,16 +412,16 @@ void DrawOptions() { "Note: The background will display if the window extrudes from the main game window."); ImGui::TableNextColumn(); - UIWidgets::CVarCheckbox("Highlight Active Split", "gSettings.TimeSplits.Highlight", + UIWidgets::CVarCheckbox("Highlight Active Split", CVAR_TRACKER_TIMESPLITS("Highlight"), { - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), }); UIWidgets::Tooltip("Highlights the row with the current Active Split."); ImGui::TableNextColumn(); - UIWidgets::CVarCheckbox("Follow Active Split", "gSettings.TimeSplits.Follow", + UIWidgets::CVarCheckbox("Follow Active Split", CVAR_TRACKER_TIMESPLITS("Follow"), { - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), }); UIWidgets::Tooltip("Forces the Split List window to keep the Active Split visible.\n" "Note: This prevents user scrolling, disable to restore control."); @@ -428,15 +429,15 @@ void DrawOptions() { ImGui::EndTable(); } - UIWidgets::CVarCheckbox("Compare Splits", "gSettings.TimeSplits.Compare", + UIWidgets::CVarCheckbox("Compare Splits", CVAR_TRACKER_TIMESPLITS("Compare"), { - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), }); UIWidgets::Tooltip("Enables Split Comparisons between lists, this will integrate within the Split List."); - if (CVarGetInteger("gSettings.TimeSplits.Compare", 0)) { + if (CVarGetInteger(CVAR_TRACKER_TIMESPLITS("Compare"), 0)) { ImGui::SameLine(); - UIWidgets::PushStyleCombobox(UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5))); + UIWidgets::PushStyleCombobox(UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5))); ImGui::PushItemWidth(ImGui::GetContentRegionAvail().x); if (ImGui::BeginCombo("##compareSplits", savedLists[comparedIndex].c_str())) { for (int i = 0; i < savedLists.size(); i++) { @@ -462,20 +463,21 @@ void DrawActionButtons() { UIWidgets::InputString("New List", &listInputName, { .labelPosition = UIWidgets::LabelPosition::None, - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), .placeholder = "Enter new list name", }); ImGui::TableNextColumn(); - if (UIWidgets::Button("Create List", { - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), - })) { + if (UIWidgets::Button("Create List", + { + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), + })) { SplitSaveFileAction(SPLIT_SAVE, listInputName); SplitSaveFileAction(SPLIT_RETRIEVE, ""); } ImGui::TableNextColumn(); - UIWidgets::PushStyleCombobox(UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5))); + UIWidgets::PushStyleCombobox(UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5))); ImGui::PushItemWidth(ImGui::GetContentRegionAvail().x); if (ImGui::BeginCombo("##savedSplits", savedLists[selectedIndex].c_str())) { for (int i = 0; i < savedLists.size(); i++) { @@ -490,28 +492,31 @@ void DrawActionButtons() { UIWidgets::PopStyleCombobox(); ImGui::TableNextColumn(); - if (UIWidgets::Button("Save Splits", { - .size = { (ImGui::GetContentRegionAvail().x * 0.5f), 0 }, - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), - })) { + if (UIWidgets::Button("Save Splits", + { + .size = { (ImGui::GetContentRegionAvail().x * 0.5f), 0 }, + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), + })) { if (savedLists[0] != "Create a List First") { SplitSaveFileAction(SPLIT_SAVE, savedLists[selectedIndex]); } } ImGui::SameLine(); - if (UIWidgets::Button("Load Splits", { - .size = { (ImGui::GetContentRegionAvail().x), 0 }, - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), - })) { + if (UIWidgets::Button("Load Splits", + { + .size = { (ImGui::GetContentRegionAvail().x), 0 }, + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), + })) { if (savedLists[0] != "Create a List First") { SplitSaveFileAction(SPLIT_LOAD, savedLists[selectedIndex]); } } ImGui::TableNextColumn(); - if (UIWidgets::Button("New Attempt", { - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), - })) { + if (UIWidgets::Button("New Attempt", + { + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), + })) { if (splitList.size() == 0) { return; } @@ -525,7 +530,7 @@ void DrawActionButtons() { ImGui::TableNextColumn(); if (UIWidgets::Button("Update Splits", { - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), })) { UpdateSplitBests(); } @@ -535,7 +540,7 @@ void DrawActionButtons() { } void DrawEntranceList() { - UIWidgets::PushStyleCombobox(UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5))); + UIWidgets::PushStyleCombobox(UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5))); ImGui::PushItemWidth(ImGui::GetContentRegionAvail().x); if (ImGui::BeginCombo("##SceneFilter", sceneAreaNameMap[sceneFilterIndex])) { for (int i = 0; i < sceneAreaNameMap.size(); i++) { @@ -614,7 +619,7 @@ void TimesplitsSettingsWindow::DrawElement() { bool shouldRemoveEntry = false; uint32_t entryId = 0, entryIndex = 0; - UIWidgets::PushStyleTabs(UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5))); + UIWidgets::PushStyleTabs(UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5))); if (ImGui::BeginTabBar("Timesplit Settings Tabs")) { if (ImGui::BeginTabItem("List Options")) { DrawOptions(); @@ -634,9 +639,10 @@ void TimesplitsSettingsWindow::DrawElement() { ImGui::TableNextColumn(); ImGui::BeginDisabled(); - UIWidgets::Button("Preview", { - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), - }); + UIWidgets::Button("Preview", + { + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), + }); ImGui::EndDisabled(); ImGui::BeginChild("Preview List"); for (size_t i = 0; i < splitList.size(); i++) { @@ -668,7 +674,7 @@ void TimesplitsSettingsWindow::DrawElement() { ImGui::TableNextColumn(); if (UIWidgets::Button("Inventory", { - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), })) { range = GetIndexRange((uint32_t)ITEM_OCARINA_OF_TIME, (uint32_t)ITEM_BOTTLE); listName = "Inventory"; @@ -676,7 +682,7 @@ void TimesplitsSettingsWindow::DrawElement() { } if (UIWidgets::Button("Masks", { - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), })) { range = GetIndexRange((uint32_t)ITEM_MASK_POSTMAN, (uint32_t)ITEM_MASK_FIERCE_DEITY); listName = "Masks"; @@ -684,7 +690,7 @@ void TimesplitsSettingsWindow::DrawElement() { } if (UIWidgets::Button("Songs", { - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), })) { range = GetIndexRange((uint32_t)ITEM_SONG_TIME, (uint32_t)ITEM_SONG_OATH); listName = "Songs"; @@ -692,7 +698,7 @@ void TimesplitsSettingsWindow::DrawElement() { } if (UIWidgets::Button("Quest", { - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), })) { range = GetIndexRange((uint32_t)ITEM_REMAINS_ODOLWA, (uint32_t)ITEM_BOMBERS_NOTEBOOK); listName = "Quest"; @@ -700,7 +706,7 @@ void TimesplitsSettingsWindow::DrawElement() { } if (UIWidgets::Button("Bosses", { - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), })) { range = GetIndexRange((uint32_t)SPLIT_KILLED_ODOLWA, (uint32_t)SPLIT_KILLED_MAJORA); listName = "Bosses"; @@ -708,7 +714,7 @@ void TimesplitsSettingsWindow::DrawElement() { } if (UIWidgets::Button("Entrances", { - .color = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5)), + .color = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5)), })) { listName = "Entrances"; } diff --git a/mm/2s2h/GameInteractor/GameInteractor.cpp b/mm/2s2h/GameInteractor/GameInteractor.cpp index 7acfa594be..010f82446f 100644 --- a/mm/2s2h/GameInteractor/GameInteractor.cpp +++ b/mm/2s2h/GameInteractor/GameInteractor.cpp @@ -4,6 +4,7 @@ #include #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/CustomMessage/CustomMessage.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "z64actor.h" @@ -308,54 +309,54 @@ int GameInteractor_InvertControl(GIInvertType type) { switch (type) { case GI_INVERT_CAMERA_RIGHT_STICK_X: - if (CVarGetInteger("gEnhancements.Camera.RightStick.InvertXAxis", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Camera.RightStick.InvertXAxis"), 0)) { result *= -1; } break; case GI_INVERT_CAMERA_RIGHT_STICK_Y: - if (CVarGetInteger("gEnhancements.Camera.RightStick.InvertYAxis", 1)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Camera.RightStick.InvertYAxis"), 1)) { result *= -1; } break; case GI_INVERT_FIRST_PERSON_AIM_X: - if (CVarGetInteger("gEnhancements.Camera.FirstPerson.InvertX", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Camera.FirstPerson.InvertX"), 0)) { result *= -1; } break; case GI_INVERT_FIRST_PERSON_AIM_Y: - if (CVarGetInteger("gEnhancements.Camera.FirstPerson.InvertY", 1)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Camera.FirstPerson.InvertY"), 1)) { result *= -1; } break; case GI_INVERT_FIRST_PERSON_GYRO_X: - if (CVarGetInteger("gEnhancements.Camera.FirstPerson.GyroInvertX", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Camera.FirstPerson.GyroInvertX"), 0)) { result *= -1; } break; case GI_INVERT_FIRST_PERSON_GYRO_Y: - if (CVarGetInteger("gEnhancements.Camera.FirstPerson.GyroInvertY", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Camera.FirstPerson.GyroInvertY"), 0)) { result *= -1; } break; case GI_INVERT_FIRST_PERSON_RIGHT_STICK_X: - if (CVarGetInteger("gEnhancements.Camera.FirstPerson.RightStickInvertX", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Camera.FirstPerson.RightStickInvertX"), 0)) { result *= -1; } break; case GI_INVERT_FIRST_PERSON_RIGHT_STICK_Y: - if (CVarGetInteger("gEnhancements.Camera.FirstPerson.RightStickInvertY", 1)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Camera.FirstPerson.RightStickInvertY"), 1)) { result *= -1; } break; case GI_INVERT_SHIELD_Y: - if (CVarGetInteger("gEnhancements.Equipment.InvertShieldY", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Equipment.InvertShieldY"), 0)) { result *= -1; } break; } // Invert all X axis inputs if the Mirrored World mode is enabled - if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { switch (type) { case GI_INVERT_CAMERA_RIGHT_STICK_X: case GI_INVERT_MOVEMENT_X: @@ -390,12 +391,12 @@ uint32_t GameInteractor_Dpad(GIDpadType type, uint32_t buttonCombo) { switch (type) { case GI_DPAD_OCARINA: - if (CVarGetInteger("gEnhancements.Playback.DpadOcarina", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Playback.DpadOcarina"), 0)) { result = buttonCombo; } break; case GI_DPAD_EQUIP: - if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { result = buttonCombo; } break; @@ -407,7 +408,7 @@ uint32_t GameInteractor_Dpad(GIDpadType type, uint32_t buttonCombo) { uint32_t GameInteractor_RightStickOcarina(Input* input) { uint32_t result = 0; - if (!CVarGetInteger("gEnhancements.Playback.RightStickOcarina", 0)) { + if (!CVarGetInteger(CVAR_ENHANCEMENT("Playback.RightStickOcarina"), 0)) { return result; } diff --git a/mm/2s2h/NameTag/NameTag.cpp b/mm/2s2h/NameTag/NameTag.cpp index c383d0d8a3..359a15549c 100644 --- a/mm/2s2h/NameTag/NameTag.cpp +++ b/mm/2s2h/NameTag/NameTag.cpp @@ -5,6 +5,7 @@ #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/ShipUtils.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "z64actor.h" @@ -205,7 +206,7 @@ void UpdateNameTags() { return aDistToCamera > bDistToCamera; }); - sMirrorWorldActive = CVarGetInteger("gModes.MirroredWorld.State", 0); + sMirrorWorldActive = CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0); } extern "C" void NameTag_RegisterForActorWithOptions(Actor* actor, const char* text, NameTagOptions options) { diff --git a/mm/2s2h/PresetManager/PresetManager.cpp b/mm/2s2h/PresetManager/PresetManager.cpp index 63462833bb..c7f10d2b8e 100644 --- a/mm/2s2h/PresetManager/PresetManager.cpp +++ b/mm/2s2h/PresetManager/PresetManager.cpp @@ -9,15 +9,11 @@ #include std::unordered_map tagMap = { - { "gEventLog", "Developer Tools" }, { "gDeveloperTools", "Developer Tools" }, - { "gCollisionViewer", "Developer Tools" }, { "gCheats", "Enhancements" }, { "gEnhancements", "Enhancements" }, - { "gFixes", "Enhancements" }, - { "gModes", "Enhancements" }, { "gHudEditor", "HUD" }, - { "ItemTracker", "HUD" }, + { "gTrackers", "HUD" }, { "gRando", "Rando" }, }; @@ -25,19 +21,14 @@ nlohmann::json defaultsPresetJ = R"( { "ClearCVars": [ "gCheats", - "gCollisionViewer", "gDeveloperTools", "gDisplayOverlay", "gEnhancements", - "gEventLog", - "gFixes", "gHudEditor", - "gModes", + "gTrackers", "gNetwork", - "gNotifications", "gRando", - "gWindows", - "ItemTracker" + "gOpenWindows" ], "CVars": {}, "type": "2S2H_PRESET", @@ -97,7 +88,10 @@ nlohmann::json curatedPresetJ = R"( "Fixes": { "CompletedHeartContainerAudio": 1, "ControlCharacters": 1, - "FierceDeityZTargetMovement": 1 + "FierceDeityZTargetMovement": 1, + "FixAmmoCountEnvColor": 1, + "FixEponaStealingSword": 1, + "FixIkanaGreatFairyFountainColor": 1 }, "Graphics": { "3DItemDrops": 1, @@ -181,12 +175,10 @@ nlohmann::json curatedPresetJ = R"( "GalleryTwofer": 1, "MarineLabHP": 1, "SwampBoatSpeed": 1 - } - }, - "gFixes": { - "FixAmmoCountEnvColor": 1, - "FixEponaStealingSword": 1, - "FixIkanaGreatFairyFountainColor": 1 + }, + "Modes": { + "PlayAsKafei": 1 + } }, "gHudEditor": { "A": { @@ -246,9 +238,6 @@ nlohmann::json curatedPresetJ = R"( "Timers": { "Mode": 3 } - }, - "gModes": { - "PlayAsKafei": 1 } }, "type": "2S2H_PRESET", diff --git a/mm/2s2h/Rando/ActorBehavior/EnBox.cpp b/mm/2s2h/Rando/ActorBehavior/EnBox.cpp index 6525cead31..851d1cdb6b 100644 --- a/mm/2s2h/Rando/ActorBehavior/EnBox.cpp +++ b/mm/2s2h/Rando/ActorBehavior/EnBox.cpp @@ -3,6 +3,7 @@ #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" #include "2s2h/Rando/StaticData/StaticData.h" #include "2s2h/ShipInit.hpp" +#include "2s2h/cvar_prefixes.h" #include "assets/2s2h_assets.h" extern "C" { @@ -191,7 +192,7 @@ void Rando::ActorBehavior::InitEnBoxBehavior() { ENBOX_RC = randoCheckId; actor->params = ((actor->params & ~(0x7F << 5)) | ((GI_RECOVERY_HEART & 0x7F) << 5)); - if (CVarGetInteger("gRando.CSMC", 0)) { + if (CVarGetInteger(CVAR_RANDOMIZER("CSMC"), 0)) { actor->draw = EnBox_RandoDraw; } }); @@ -207,7 +208,7 @@ static RegisterShipInitFunc initFunc( while (actor != NULL) { if (actor->id == ACTOR_EN_BOX) { - if (CVarGetInteger("gRando.CSMC", 0) && IS_RANDO) { + if (CVarGetInteger(CVAR_RANDOMIZER("CSMC"), 0) && IS_RANDO) { actor->draw = EnBox_RandoDraw; } else if (actor->draw == EnBox_RandoDraw) { actor->draw = EnBox_Draw; @@ -217,7 +218,7 @@ static RegisterShipInitFunc initFunc( actor = actor->next; } }, - { "gRando.CSMC", "IS_RANDO" }); + { CVAR_RANDOMIZER("CSMC"), "IS_RANDO" }); static RegisterShipInitFunc initializeChestCopyDLs( []() { diff --git a/mm/2s2h/Rando/ActorBehavior/ObjGrass.cpp b/mm/2s2h/Rando/ActorBehavior/ObjGrass.cpp index f8fa23662f..4422c3a21a 100644 --- a/mm/2s2h/Rando/ActorBehavior/ObjGrass.cpp +++ b/mm/2s2h/Rando/ActorBehavior/ObjGrass.cpp @@ -6,6 +6,7 @@ #include "2s2h/ShipInit.hpp" #include "2s2h/ObjectExtension/ActorListIndex.h" #include "2s2h/ObjectExtension/ObjectExtension.h" +#include "2s2h/cvar_prefixes.h" #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" #include "assets/2s2h_assets.h" #include "assets/overlays/ovl_Obj_Grass/ovl_Obj_Grass.h" @@ -159,7 +160,7 @@ void SpawnGrassDrop(Vec3f pos, RandoCheckId randoCheckId) { } void EnKusaBush_RandoDraw(Actor* actor, PlayState* play) { - if (!CVarGetInteger("gRando.CSMC", 0)) { + if (!CVarGetInteger(CVAR_RANDOMIZER("CSMC"), 0)) { Gfx_DrawDListOpa(play, (Gfx*)gRandoBushDL); return; } @@ -203,7 +204,7 @@ void EnKusaBush_RandoDraw(Actor* actor, PlayState* play) { } Gfx* GetObjGrassDList(RandoCheckId randoCheckId) { - if (!CVarGetInteger("gRando.CSMC", 0)) { + if (!CVarGetInteger(CVAR_RANDOMIZER("CSMC"), 0)) { return (Gfx*)gRandoBushDL; } @@ -245,7 +246,7 @@ Gfx* GetObjGrassDList(RandoCheckId randoCheckId) { } Gfx* GetObjGrassXluDList(RandoCheckId randoCheckId) { - if (!CVarGetInteger("gRando.CSMC", 0)) { + if (!CVarGetInteger(CVAR_RANDOMIZER("CSMC"), 0)) { return (Gfx*)gRandoBushXluDL; } diff --git a/mm/2s2h/Rando/ActorBehavior/ObjKibako.cpp b/mm/2s2h/Rando/ActorBehavior/ObjKibako.cpp index 211309b2b8..6279b5f3d8 100644 --- a/mm/2s2h/Rando/ActorBehavior/ObjKibako.cpp +++ b/mm/2s2h/Rando/ActorBehavior/ObjKibako.cpp @@ -3,6 +3,7 @@ #include "2s2h/CustomItem/CustomItem.h" #include "2s2h/ObjectExtension/ActorListIndex.h" #include "assets/2s2h_assets.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -137,7 +138,7 @@ RandoCheckId IdentifyCrate(Actor* actor) { } void ObjKibako_RandoDraw(Actor* actor, PlayState* play) { - if (!CVarGetInteger("gRando.CSMC", 0)) { + if (!CVarGetInteger(CVAR_RANDOMIZER("CSMC"), 0)) { Gfx_DrawDListOpa(play, (Gfx*)gSmallJunkCrateDL); return; } @@ -178,7 +179,7 @@ void ObjKibako_RandoDraw(Actor* actor, PlayState* play) { } void ObjKibako2_RandoDraw(Actor* actor, PlayState* play) { - if (!CVarGetInteger("gRando.CSMC", 0)) { + if (!CVarGetInteger(CVAR_RANDOMIZER("CSMC"), 0)) { Gfx_DrawDListOpa(play, (Gfx*)gLargeJunkCrateDL); return; } diff --git a/mm/2s2h/Rando/ActorBehavior/ObjTaru.cpp b/mm/2s2h/Rando/ActorBehavior/ObjTaru.cpp index 19532e82a6..91bbfb72dd 100644 --- a/mm/2s2h/Rando/ActorBehavior/ObjTaru.cpp +++ b/mm/2s2h/Rando/ActorBehavior/ObjTaru.cpp @@ -3,6 +3,7 @@ #include "2s2h/ObjectExtension/ActorListIndex.h" #include "2s2h/CustomItem/CustomItem.h" #include "assets/2s2h_assets.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -60,7 +61,7 @@ std::map, RandoCheckId> barrelMap = { }; void ObjTaru_RandoDraw(Actor* actor, PlayState* play) { - if (!CVarGetInteger("gRando.CSMC", 0)) { + if (!CVarGetInteger(CVAR_RANDOMIZER("CSMC"), 0)) { Gfx_DrawDListOpa(play, (Gfx*)gBarrelJunkDL); return; } diff --git a/mm/2s2h/Rando/ActorBehavior/ObjTsubo.cpp b/mm/2s2h/Rando/ActorBehavior/ObjTsubo.cpp index 4517c1273f..9cdf87989e 100644 --- a/mm/2s2h/Rando/ActorBehavior/ObjTsubo.cpp +++ b/mm/2s2h/Rando/ActorBehavior/ObjTsubo.cpp @@ -5,6 +5,7 @@ #include "2s2h/Rando/Rando.h" #include "2s2h/ShipInit.hpp" #include "2s2h/ObjectExtension/ActorListIndex.h" +#include "2s2h/cvar_prefixes.h" #include "assets/2s2h_assets.h" extern "C" { @@ -334,7 +335,7 @@ void IdentifyPot(Actor* actor, bool* should) { } void ObjTsubo_RandoDraw(Actor* actor, PlayState* play) { - if (!CVarGetInteger("gRando.CSMC", 0)) { + if (!CVarGetInteger(CVAR_RANDOMIZER("CSMC"), 0)) { Gfx_DrawDListOpa(play, (Gfx*)gPotStandardDL); return; } diff --git a/mm/2s2h/Rando/CheckTracker/CheckTracker.cpp b/mm/2s2h/Rando/CheckTracker/CheckTracker.cpp index 2411b43d4e..6119e2329e 100644 --- a/mm/2s2h/Rando/CheckTracker/CheckTracker.cpp +++ b/mm/2s2h/Rando/CheckTracker/CheckTracker.cpp @@ -2,6 +2,7 @@ #include "CheckTracker.h" #include "2s2h/Rando/Logic/Logic.h" #include "2s2h/ShipUtils.h" +#include "2s2h/cvar_prefixes.h" #include "2s2h/BenGui/UIWidgets.hpp" #include "2s2h/Rando/StaticData/StaticData.h" #include @@ -32,14 +33,14 @@ static std::unordered_map betterSceneIndex = { #undef DEFINE_SCENE #undef DEFINE_SCENE_UNSET -#define CVAR_NAME_SHOW_CHECK_TRACKER "gWindows.CheckTracker" -#define CVAR_NAME_SHOW_LOGIC "gRando.CheckTracker.OnlyShowChecksInLogic" -#define CVAR_NAME_HIDE_COLLECTED "gRando.CheckTracker.HideCollectedChecks" -#define CVAR_NAME_HIDE_SKIPPED "gRando.CheckTracker.HideSkippedChecks" -#define CVAR_NAME_SCROLL_TO_SCENE "gRando.CheckTracker.ScrollToCurrentScene" -#define CVAR_NAME_TRACKER_OPACITY "gRando.CheckTracker.Opacity" -#define CVAR_NAME_TRACKER_SCALE "gRando.CheckTracker.Scale" -#define CVAR_NAME_SHOW_CURRENT_SCENE "gRando.CheckTracker.ShowCurrentScene" +#define CVAR_NAME_SHOW_CHECK_TRACKER CVAR_WINDOW("CheckTracker") +#define CVAR_NAME_SHOW_LOGIC CVAR_TRACKER_CHECK("OnlyShowChecksInLogic") +#define CVAR_NAME_HIDE_COLLECTED CVAR_TRACKER_CHECK("HideCollectedChecks") +#define CVAR_NAME_HIDE_SKIPPED CVAR_TRACKER_CHECK("HideSkippedChecks") +#define CVAR_NAME_SCROLL_TO_SCENE CVAR_TRACKER_CHECK("ScrollToCurrentScene") +#define CVAR_NAME_TRACKER_OPACITY CVAR_TRACKER_CHECK("Opacity") +#define CVAR_NAME_TRACKER_SCALE CVAR_TRACKER_CHECK("Scale") +#define CVAR_NAME_SHOW_CURRENT_SCENE CVAR_TRACKER_CHECK("ShowCurrentScene") #define CVAR_SHOW_CHECK_TRACKER CVarGetInteger(CVAR_NAME_SHOW_CHECK_TRACKER, 0) #define CVAR_SHOW_LOGIC CVarGetInteger(CVAR_NAME_SHOW_LOGIC, 0) #define CVAR_HIDE_COLLECTED CVarGetInteger(CVAR_NAME_HIDE_COLLECTED, 0) diff --git a/mm/2s2h/Rando/Menu.cpp b/mm/2s2h/Rando/Menu.cpp index a57ae24469..193e23f81a 100644 --- a/mm/2s2h/Rando/Menu.cpp +++ b/mm/2s2h/Rando/Menu.cpp @@ -4,6 +4,7 @@ #include "Rando/CheckTracker/CheckTracker.h" #include "build.h" #include "2s2h/BenGui/BenMenu.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Sth/z_en_sth.h" @@ -97,11 +98,11 @@ void SaveExcludedChecks() { excludedString += std::to_string(data); excludedString += ","; } - CVarSetString("gRando.ExcludedChecks", excludedString.c_str()); + CVarSetString(CVAR_RANDOMIZER("ExcludedChecks"), excludedString.c_str()); } void LoadExcludedChecks() { - std::string checksList = CVarGetString("gRando.ExcludedChecks", ""); + std::string checksList = CVarGetString(CVAR_RANDOMIZER("ExcludedChecks"), ""); if (checksList != "") { std::string word; @@ -121,25 +122,26 @@ static void DrawGeneralTab() { ImGui::PopStyleColor(); ImGui::SeparatorText("Seed Generation"); - UIWidgets::CVarCheckbox("Enable Rando (Randomizes new files upon creation)", "gRando.Enabled"); + UIWidgets::CVarCheckbox("Enable Rando (Randomizes new files upon creation)", CVAR_RANDOMIZER("Enabled")); - if (UIWidgets::CVarCombobox("Seed", "gRando.SpoilerFileIndex", Rando::Spoiler::spoilerOptions)) { - if (CVarGetInteger("gRando.SpoilerFileIndex", 0) == 0) { - CVarSetString("gRando.SpoilerFile", ""); + if (UIWidgets::CVarCombobox("Seed", CVAR_RANDOMIZER("SpoilerFileIndex"), Rando::Spoiler::spoilerOptions)) { + if (CVarGetInteger(CVAR_RANDOMIZER("SpoilerFileIndex"), 0) == 0) { + CVarSetString(CVAR_RANDOMIZER("SpoilerFile"), ""); } else { - CVarSetString("gRando.SpoilerFile", - Rando::Spoiler::spoilerOptions[CVarGetInteger("gRando.SpoilerFileIndex", 0)].c_str()); + CVarSetString( + CVAR_RANDOMIZER("SpoilerFile"), + Rando::Spoiler::spoilerOptions[CVarGetInteger(CVAR_RANDOMIZER("SpoilerFileIndex"), 0)].c_str()); } } - if (CVarGetInteger("gRando.SpoilerFileIndex", 0) == 0) { + if (CVarGetInteger(CVAR_RANDOMIZER("SpoilerFileIndex"), 0) == 0) { UIWidgets::PushStyleSlider(); static char seed[256]; - std::string stringSeed = CVarGetString("gRando.InputSeed", ""); + std::string stringSeed = CVarGetString(CVAR_RANDOMIZER("InputSeed"), ""); strcpy(seed, stringSeed.c_str()); ImGui::InputText("##Seed", seed, sizeof(seed), ImGuiInputTextFlags_CallbackAlways, [](ImGuiInputTextCallbackData* data) { - CVarSetString("gRando.InputSeed", data->Buf); + CVarSetString(CVAR_RANDOMIZER("InputSeed"), data->Buf); return 0; }); if (stringSeed.length() < 1) { @@ -148,13 +150,13 @@ static void DrawGeneralTab() { } UIWidgets::PopStyleSlider(); - UIWidgets::CVarCheckbox("Generate Spoiler File", "gRando.GenerateSpoiler"); + UIWidgets::CVarCheckbox("Generate Spoiler File", CVAR_RANDOMIZER("GenerateSpoiler")); } ImGui::SeparatorText("Enhancements"); - UIWidgets::CVarCheckbox("Container Style Matches Contents", "gRando.CSMC"); + UIWidgets::CVarCheckbox("Container Style Matches Contents", CVAR_RANDOMIZER("CSMC")); UIWidgets::Tooltip("This will make the contents of a container match the container itself. This currently only " "applies to chests and pots."); - UIWidgets::WindowButton("Check Tracker", "gWindows.CheckTracker", BenGui::mRandoCheckTrackerWindow, + UIWidgets::WindowButton("Check Tracker", CVAR_WINDOW("CheckTracker"), BenGui::mRandoCheckTrackerWindow, { .size = ImVec2((ImGui::GetContentRegionAvail().x - 48.0f), 40.0f) }); ImGui::SameLine(); if (UIWidgets::Button(ICON_FA_COG, { .size = ImVec2(40.0f, 40.0f) })) { @@ -338,45 +340,45 @@ static void DrawItemsTab() { .disabled = (bool)!CVarGetInteger(Rando::StaticData::Options[RO_SHUFFLE_TRAPS].cvar, 0), .disabledTooltip = "Shuffle Traps is disabled." } }) .LabelPosition(LabelPosition::None) - .Color(UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", 5))) + .Color(UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), 5))) .Format("Traps: %i") .Min(1) .Max(10) .DefaultValue(5)); ImGui::SeparatorText("Toggle Trap Types"); CVarCheckbox( - "Freeze Traps", "gRando.Traps.Freeze", + "Freeze Traps", CVAR_RANDOMIZER("Traps.Freeze"), CheckboxOptions({ { .tooltip = "Freezes Link in place.", .disabled = (bool)!CVarGetInteger(Rando::StaticData::Options[RO_SHUFFLE_TRAPS].cvar, 0), .disabledTooltip = "Shuffle Traps is disabled." } })); CVarCheckbox( - "Blast Traps", "gRando.Traps.Blast", + "Blast Traps", CVAR_RANDOMIZER("Traps.Blast"), CheckboxOptions({ { .tooltip = "Link explodes with Powder Keg force.", .disabled = (bool)!CVarGetInteger(Rando::StaticData::Options[RO_SHUFFLE_TRAPS].cvar, 0), .disabledTooltip = "Shuffle Traps is disabled." } })); CVarCheckbox( - "Shock Traps", "gRando.Traps.Shock", + "Shock Traps", CVAR_RANDOMIZER("Traps.Shock"), CheckboxOptions({ { .tooltip = "Shocks Link for a few seconds.", .disabled = (bool)!CVarGetInteger(Rando::StaticData::Options[RO_SHUFFLE_TRAPS].cvar, 0), .disabledTooltip = "Shuffle Traps is disabled." } })); CVarCheckbox( - "Jinx Traps", "gRando.Traps.Jinx", + "Jinx Traps", CVAR_RANDOMIZER("Traps.Jinx"), CheckboxOptions({ { .tooltip = "Afflicts Link with Jinx.", .disabled = (bool)!CVarGetInteger(Rando::StaticData::Options[RO_SHUFFLE_TRAPS].cvar, 0), .disabledTooltip = "Shuffle Traps is disabled." } })); CVarCheckbox( - "Wallet Traps", "gRando.Traps.Wallet", + "Wallet Traps", CVAR_RANDOMIZER("Traps.Wallet"), CheckboxOptions({ { .tooltip = "Links rupees scatter around him.", .disabled = (bool)!CVarGetInteger(Rando::StaticData::Options[RO_SHUFFLE_TRAPS].cvar, 0), .disabledTooltip = "Shuffle Traps is disabled." } })); CVarCheckbox( // This only spawns a Like Like, more enemies may be added in the future but each would need fine // tuning - "Like Like Traps", "gRando.Traps.Enemy", + "Like Like Traps", CVAR_RANDOMIZER("Traps.Enemy"), CheckboxOptions({ { .tooltip = "Spawns a Like Like on top of Link.", .disabled = (bool)!CVarGetInteger(Rando::StaticData::Options[RO_SHUFFLE_TRAPS].cvar, 0), .disabledTooltip = "Shuffle Traps is disabled." } })); CVarCheckbox( - "Time Traps", "gRando.Traps.Time", + "Time Traps", CVAR_RANDOMIZER("Traps.Time"), CheckboxOptions({ { .tooltip = "Advances Time 90 Minutes (Game Time).", .disabled = (bool)!CVarGetInteger(Rando::StaticData::Options[RO_SHUFFLE_TRAPS].cvar, 0), .disabledTooltip = "Shuffle Traps is disabled." } })); @@ -429,8 +431,8 @@ static void DrawStartingItemsTab() { ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(1.0f, 1.0f, 1.0f, 0.2f)); ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(1.0f, 1.0f, 1.0f, 0.1f)); - std::vector setStartingItemsList = - convertStartingItemsToRandoItemId(CVarGetString("gRando.StartingItems", RANDO_STARTING_ITEMS_DEFAULT), ","); + std::vector setStartingItemsList = convertStartingItemsToRandoItemId( + CVarGetString(CVAR_RANDOMIZER("StartingItems"), RANDO_STARTING_ITEMS_DEFAULT), ","); uint32_t listIndex = 0; for (auto& startingItem : setStartingItemsList) { ImGui::PushID(listIndex); @@ -453,7 +455,7 @@ static void DrawStartingItemsTab() { break; } } - CVarSetString("gRando.StartingItems", CreateStartingItemsToCvar(setStartingItemsList).c_str()); + CVarSetString(CVAR_RANDOMIZER("StartingItems"), CreateStartingItemsToCvar(setStartingItemsList).c_str()); Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame(); } UIWidgets::Tooltip(randoStaticItem.name); @@ -512,12 +514,12 @@ static void DrawStartingItemsTab() { ? ITEM_SONG_LULLABY : randoStaticItem.itemId))) { std::string currentStartingItems = - CVarGetString("gRando.StartingItems", RANDO_STARTING_ITEMS_DEFAULT); + CVarGetString(CVAR_RANDOMIZER("StartingItems"), RANDO_STARTING_ITEMS_DEFAULT); if (currentStartingItems.length() != 0) { currentStartingItems += ","; } currentStartingItems += std::to_string(item); - CVarSetString("gRando.StartingItems", currentStartingItems.c_str()); + CVarSetString(CVAR_RANDOMIZER("StartingItems"), currentStartingItems.c_str()); Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame(); } UIWidgets::Tooltip(randoStaticItem.name); @@ -577,7 +579,7 @@ static void DrawCheckFilterTab() { return; } - auto menuThemeColor = UIWidgets::Colors(CVarGetInteger("gSettings.Menu.Theme", LightBlue)); + auto menuThemeColor = UIWidgets::Colors(CVarGetInteger(CVAR_SETTING("Menu.Theme"), LightBlue)); bool excludeAllChecks = false; bool excludeFiltered = false; bool removeFiltered = false; @@ -768,7 +770,7 @@ static void DrawHintsTab() { } void Rando::RegisterMenu() { - mBenMenu->AddMenuEntry("Rando", "gSettings.Menu.RandoSidebarSection"); + mBenMenu->AddMenuEntry("Rando", CVAR_SETTING("Menu.RandoSidebarSection")); mBenMenu->AddSidebarEntry("Rando", "General", 1); WidgetPath path = { "Rando", "General", SECTION_COLUMN_1 }; mBenMenu->AddWidget(path, "General", WIDGET_CUSTOM).CustomFunction([](WidgetInfo& info) { DrawGeneralTab(); }); diff --git a/mm/2s2h/Rando/MiscBehavior/CheckQueue.cpp b/mm/2s2h/Rando/MiscBehavior/CheckQueue.cpp index de35190761..46f88db422 100644 --- a/mm/2s2h/Rando/MiscBehavior/CheckQueue.cpp +++ b/mm/2s2h/Rando/MiscBehavior/CheckQueue.cpp @@ -7,6 +7,7 @@ #include "2s2h/Rando/StaticData/StaticData.h" #include "2s2h/ShipUtils.h" #include "Traps.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -66,7 +67,7 @@ void Rando::MiscBehavior::CheckQueue() { message = GetTrapMessage(); // We need to remove the Color Codes if the player is skipping Item Get Cutscenes as the // Notification Emit doesnt support it. - if (CVarGetInteger("gEnhancements.Cutscenes.SkipGetItemCutscenes", 0) >= 2) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipGetItemCutscenes"), 0) >= 2) { message = CustomMessage::RemoveColorCodes(message); } } diff --git a/mm/2s2h/Rando/MiscBehavior/OnFileCreate.cpp b/mm/2s2h/Rando/MiscBehavior/OnFileCreate.cpp index ee22858a87..5c9305c7e5 100644 --- a/mm/2s2h/Rando/MiscBehavior/OnFileCreate.cpp +++ b/mm/2s2h/Rando/MiscBehavior/OnFileCreate.cpp @@ -2,6 +2,7 @@ #include "Rando/Spoiler/Spoiler.h" #include "Rando/Logic/Logic.h" #include "2s2h/ShipUtils.h" +#include "2s2h/cvar_prefixes.h" #include #include @@ -15,7 +16,7 @@ extern "C" { // Very primitive randomizer implementation, when a save is created, if rando is enabled // we set the save type to rando and shuffle all checks and persist the results to the save void Rando::MiscBehavior::OnFileCreate(s16 fileNum) { - if (CVarGetInteger("gRando.Enabled", 0)) { + if (CVarGetInteger(CVAR_RANDOMIZER("Enabled"), 0)) { gSaveContext.save.shipSaveInfo.saveType = SAVETYPE_RANDO; // Zero out the rando struct memset(&gSaveContext.save.shipSaveInfo.rando, 0, sizeof(gSaveContext.save.shipSaveInfo.rando)); @@ -42,9 +43,9 @@ void Rando::MiscBehavior::OnFileCreate(s16 fileNum) { try { // SpoilerFileIndex == 0 means we're generating a new one - if (CVarGetInteger("gRando.SpoilerFileIndex", 0) == 0) { + if (CVarGetInteger(CVAR_RANDOMIZER("SpoilerFileIndex"), 0) == 0) { bool hadInputSeed = true; - std::string inputSeed = Ship_RemoveSpecialCharacters(CVarGetString("gRando.InputSeed", "")); + std::string inputSeed = Ship_RemoveSpecialCharacters(CVarGetString(CVAR_RANDOMIZER("InputSeed"), "")); if (inputSeed.empty()) { inputSeed = std::to_string(Ship_Random(0, 1000000)); hadInputSeed = false; @@ -61,7 +62,7 @@ void Rando::MiscBehavior::OnFileCreate(s16 fileNum) { } std::vector startingItems = convertStartingItemsToRandoItemId( - CVarGetString("gRando.StartingItems", RANDO_STARTING_ITEMS_DEFAULT), ","); + CVarGetString(CVAR_RANDOMIZER("StartingItems"), RANDO_STARTING_ITEMS_DEFAULT), ","); std::string startingItemSave = CreateStartingItemsToCvar(startingItems); strncpy(RANDO_STARTING_ITEMS, startingItemSave.c_str(), startingItemSave.size() + 1); @@ -107,7 +108,7 @@ void Rando::MiscBehavior::OnFileCreate(s16 fileNum) { // Create Excluded Checks List to eliminate excluded checks from the pool std::vector excludedChecks; - std::string excludedChecksList = CVarGetString("gRando.ExcludedChecks", ""); + std::string excludedChecksList = CVarGetString(CVAR_RANDOMIZER("ExcludedChecks"), ""); std::string word; std::istringstream stream(excludedChecksList); while (std::getline(stream, word, ',')) { @@ -447,7 +448,7 @@ void Rando::MiscBehavior::OnFileCreate(s16 fileNum) { std::to_string(RANDO_SAVE_OPTIONS[RO_LOGIC])); } - if (CVarGetInteger("gRando.GenerateSpoiler", 0)) { + if (CVarGetInteger(CVAR_RANDOMIZER("GenerateSpoiler"), 0)) { nlohmann::json spoiler = Rando::Spoiler::GenerateFromSaveContext(); spoiler["inputSeed"] = inputSeed; @@ -455,14 +456,14 @@ void Rando::MiscBehavior::OnFileCreate(s16 fileNum) { Rando::Spoiler::SaveToFile(fileName, spoiler); if (hadInputSeed) { - CVarSetString("gRando.SpoilerFile", fileName.c_str()); + CVarSetString(CVAR_RANDOMIZER("SpoilerFile"), fileName.c_str()); } Rando::Spoiler::RefreshOptions(); } Audio_PlaySfx(NA_SE_SY_ATTENTION_SOUND); } else { - std::string fileName = CVarGetString("gRando.SpoilerFile", ""); + std::string fileName = CVarGetString(CVAR_RANDOMIZER("SpoilerFile"), ""); nlohmann::json spoiler = Rando::Spoiler::LoadFromFile(fileName); Rando::Spoiler::ApplyToSaveContext(spoiler); diff --git a/mm/2s2h/Rando/MiscBehavior/Traps.cpp b/mm/2s2h/Rando/MiscBehavior/Traps.cpp index 6a7528dc27..7ad3020e9d 100644 --- a/mm/2s2h/Rando/MiscBehavior/Traps.cpp +++ b/mm/2s2h/Rando/MiscBehavior/Traps.cpp @@ -3,6 +3,7 @@ #include "MiscBehavior.h" #include "Rando/ActorBehavior/ActorBehavior.h" #include "2s2h/DeveloperTools/SaveEditor.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "variables.h" @@ -24,10 +25,10 @@ int roll = TRAP_FREEZE; const u16 timeSkipInterval = 4000; std::map trapToCvarMap = { - { TRAP_FREEZE, "gRando.Traps.Freeze" }, { TRAP_BLAST, "gRando.Traps.Blast" }, - { TRAP_SHOCK, "gRando.Traps.Shock" }, { TRAP_JINX, "gRando.Traps.Jinx" }, - { TRAP_WALLET, "gRando.Traps.Wallet" }, { TRAP_ENEMY, "gRando.Traps.Enemy" }, - { TRAP_TIME, "gRando.Traps.Time" }, + { TRAP_FREEZE, CVAR_RANDOMIZER("Traps.Freeze") }, { TRAP_BLAST, CVAR_RANDOMIZER("Traps.Blast") }, + { TRAP_SHOCK, CVAR_RANDOMIZER("Traps.Shock") }, { TRAP_JINX, CVAR_RANDOMIZER("Traps.Jinx") }, + { TRAP_WALLET, CVAR_RANDOMIZER("Traps.Wallet") }, { TRAP_ENEMY, CVAR_RANDOMIZER("Traps.Enemy") }, + { TRAP_TIME, CVAR_RANDOMIZER("Traps.Time") }, }; std::vector getEnabledTrapTypes() { diff --git a/mm/2s2h/Rando/Spoiler/HandleFileDropped.cpp b/mm/2s2h/Rando/Spoiler/HandleFileDropped.cpp index 4a46a41784..bf7e824085 100644 --- a/mm/2s2h/Rando/Spoiler/HandleFileDropped.cpp +++ b/mm/2s2h/Rando/Spoiler/HandleFileDropped.cpp @@ -6,6 +6,7 @@ #include "BenPort.h" #include #include +#include "2s2h/cvar_prefixes.h" extern "C" { #include "sfx.h" @@ -43,7 +44,7 @@ bool Rando::Spoiler::HandleFileDropped(char* filePath) { std::filesystem::copy_file(filePath, spoilerFilePath, std::filesystem::copy_options::overwrite_existing); // Set the spoiler file to the new file - CVarSetString("gRando.SpoilerFile", spoilerFile.c_str()); + CVarSetString(CVAR_RANDOMIZER("SpoilerFile"), spoilerFile.c_str()); // Update the spoiler file options Rando::Spoiler::RefreshOptions(); diff --git a/mm/2s2h/Rando/Spoiler/RefreshOptions.cpp b/mm/2s2h/Rando/Spoiler/RefreshOptions.cpp index 831e6b6ef1..76860bfb69 100644 --- a/mm/2s2h/Rando/Spoiler/RefreshOptions.cpp +++ b/mm/2s2h/Rando/Spoiler/RefreshOptions.cpp @@ -2,6 +2,7 @@ #include #include #include "BenPort.h" +#include "2s2h/cvar_prefixes.h" #include @@ -29,7 +30,7 @@ void Rando::Spoiler::RefreshOptions() { Rando::Spoiler::spoilerOptions.push_back(fileName); // Check if the current file is the one set in the cvar - if (fileName == CVarGetString("gRando.SpoilerFile", "")) { + if (fileName == CVarGetString(CVAR_RANDOMIZER("SpoilerFile"), "")) { spoilerFileIndex = Rando::Spoiler::spoilerOptions.size() - 1; } } @@ -37,9 +38,9 @@ void Rando::Spoiler::RefreshOptions() { // If the current spoiler file is not in the randomizer folder, reset the cvar if (spoilerFileIndex == -1) { - CVarSetInteger("gRando.SpoilerFileIndex", 0); - CVarSetString("gRando.SpoilerFile", ""); + CVarSetInteger(CVAR_RANDOMIZER("SpoilerFileIndex"), 0); + CVarSetString(CVAR_RANDOMIZER("SpoilerFile"), ""); } else { - CVarSetInteger("gRando.SpoilerFileIndex", spoilerFileIndex); + CVarSetInteger(CVAR_RANDOMIZER("SpoilerFileIndex"), spoilerFileIndex); } } diff --git a/mm/2s2h/Rando/StaticData/Items.cpp b/mm/2s2h/Rando/StaticData/Items.cpp index 8afe1c06d1..28352127b8 100644 --- a/mm/2s2h/Rando/StaticData/Items.cpp +++ b/mm/2s2h/Rando/StaticData/Items.cpp @@ -3,6 +3,7 @@ #include "2s2h/ShipUtils.h" #include "2s2h/Rando/Rando.h" #include "2s2h_assets.h" +#include "2s2h/cvar_prefixes.h" extern "C" { extern s16 D_801CFF94[250]; @@ -369,21 +370,21 @@ const char* GetIconTexturePath(RandoItemId randoItemId) { } bool ShouldShowGetItemCutscene(RandoItemId itemId) { - if (!CVarGetInteger("gEnhancements.Cutscenes.SkipGetItemCutscenes", 0)) { + if (!CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipGetItemCutscenes"), 0)) { return true; } switch (Rando::StaticData::Items[itemId].randoItemType) { case RITYPE_JUNK: - return CVarGetInteger("gEnhancements.Cutscenes.SkipGetItemCutscenes", 0) < 1; + return CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipGetItemCutscenes"), 0) < 1; case RITYPE_HEALTH: case RITYPE_LESSER: case RITYPE_STRAY_FAIRY: case RITYPE_SKULLTULA_TOKEN: case RITYPE_SMALL_KEY: - return CVarGetInteger("gEnhancements.Cutscenes.SkipGetItemCutscenes", 0) < 2; + return CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipGetItemCutscenes"), 0) < 2; default: - return CVarGetInteger("gEnhancements.Cutscenes.SkipGetItemCutscenes", 0) < 3; + return CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipGetItemCutscenes"), 0) < 3; } } diff --git a/mm/2s2h/Rando/StaticData/Options.cpp b/mm/2s2h/Rando/StaticData/Options.cpp index 0b8f6f0629..2fa1bbb8bb 100644 --- a/mm/2s2h/Rando/StaticData/Options.cpp +++ b/mm/2s2h/Rando/StaticData/Options.cpp @@ -1,4 +1,5 @@ #include "StaticData.h" +#include "2s2h/cvar_prefixes.h" extern "C" { #include "overlays/actors/ovl_En_Sth/z_en_sth.h" @@ -8,11 +9,11 @@ namespace Rando { namespace StaticData { -#define RO(id, defaultValue) \ - { \ - id, { \ - id, #id, "gRando.Options." #id, defaultValue \ - } \ +#define RO(id, defaultValue) \ + { \ + id, { \ + id, #id, CVAR_RANDOMIZER("Options.") #id, defaultValue \ + } \ } // clang-format off diff --git a/mm/2s2h/ShipUtils.cpp b/mm/2s2h/ShipUtils.cpp index bb0b7a66dc..fb5c089e64 100644 --- a/mm/2s2h/ShipUtils.cpp +++ b/mm/2s2h/ShipUtils.cpp @@ -8,6 +8,7 @@ #include #include #include +#include "2s2h/cvar_prefixes.h" // Image Icons #include "assets/interface/parameter_static/parameter_static.h" #include "assets/archives/icon_item_24_static/icon_item_24_static_yar.h" @@ -284,7 +285,7 @@ extern "C" f32 Ship_GetExtendedAspectRatioMultiplier() { // to the projected Z value of the actor. This tricks distance checks without having to replace hardcoded values. // Requires that Ship_ExtendedCullingActorRestoreProjectedPos is called within the same function scope. extern "C" void Ship_ExtendedCullingActorAdjustProjectedZ(Actor* actor) { - s32 multiplier = CVarGetInteger("gEnhancements.Graphics.IncreaseActorDrawDistance", 1); + s32 multiplier = CVarGetInteger(CVAR_ENHANCEMENT("Graphics.IncreaseActorDrawDistance"), 1); multiplier = MAX(multiplier, 1); if (multiplier > 1) { actor->projectedPos.z /= multiplier; @@ -295,7 +296,7 @@ extern "C" void Ship_ExtendedCullingActorAdjustProjectedZ(Actor* actor) { // to the projected X value of the actor. This tricks distance checks without having to replace hardcoded values. // Requires that Ship_ExtendedCullingActorRestoreProjectedPos is called within the same function scope. extern "C" void Ship_ExtendedCullingActorAdjustProjectedX(Actor* actor) { - if (CVarGetInteger("gEnhancements.Graphics.ActorCullingAccountsForWidescreen", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Graphics.ActorCullingAccountsForWidescreen"), 0)) { f32 ratioAdjusted = Ship_GetExtendedAspectRatioMultiplier(); actor->projectedPos.x /= ratioAdjusted; } diff --git a/mm/2s2h/cvar_prefixes.h b/mm/2s2h/cvar_prefixes.h new file mode 100644 index 0000000000..93d15f1e8f --- /dev/null +++ b/mm/2s2h/cvar_prefixes.h @@ -0,0 +1,27 @@ +#ifndef CVAR_PREFIXES_H +#define CVAR_PREFIXES_H + +#define CVAR_RANDOMIZER(var) CVAR_PREFIX_RANDOMIZER "." var +#define CVAR_RANDOMIZER_ENHANCEMENT(var) CVAR_RANDOMIZER("Enhancement." var) +#define CVAR_RANDOMIZER_SETTING(var) CVAR_RANDOMIZER("Setting." var) +#define CVAR_COSMETIC(var) CVAR_PREFIX_COSMETIC "." var +#define CVAR_AUDIO(var) CVAR_PREFIX_AUDIO "." var +#define CVAR_CHEAT(var) CVAR_PREFIX_CHEAT "." var +#define CVAR_ENHANCEMENT(var) CVAR_PREFIX_ENHANCEMENT "." var +#define CVAR_SETTING(var) CVAR_PREFIX_SETTING "." var +#define CVAR_WINDOW(var) CVAR_PREFIX_WINDOW "." var +#define CVAR_TRACKER(var) CVAR_PREFIX_TRACKER "." var +#define CVAR_TRACKER_ITEM(var) CVAR_TRACKER("ItemTracker." var) +#define CVAR_TRACKER_CHECK(var) CVAR_TRACKER("CheckTracker." var) +#define CVAR_TRACKER_ENTRANCE(var) CVAR_TRACKER("EntranceTracker." var) +#define CVAR_TRACKER_TIMESPLITS(var) CVAR_TRACKER("TimeSplitsTracker." var) +#define CVAR_DEVELOPER_TOOLS(var) CVAR_PREFIX_DEVELOPER_TOOLS "." var +#define CVAR_GENERAL(var) CVAR_PREFIX_GENERAL "." var +#define CVAR_REMOTE(var) CVAR_PREFIX_REMOTE "." var +#define CVAR_REMOTE_CROWD_CONTROL(var) CVAR_REMOTE("CrowdControl." var) +#define CVAR_REMOTE_SAIL(var) CVAR_REMOTE("Sail." var) +#define CVAR_GAMEPLAY_STATS(var) CVAR_PREFIX_GAMEPLAY_STATS "." var +#define CVAR_TIME_DISPLAY(var) CVAR_PREFIX_TIME_DISPLAY "." var +#define CVAR_INPUT_VIEWER(var) "gInputViewer." var + +#endif // !CVAR_PREFIXES_H diff --git a/mm/include/z64save.h b/mm/include/z64save.h index 29a2c899a3..c767d0673b 100644 --- a/mm/include/z64save.h +++ b/mm/include/z64save.h @@ -8,6 +8,7 @@ #include "unk.h" #include "z64item.h" #include "Rando/Types.h" +#include "2s2h/cvar_prefixes.h" struct GameState; struct PlayState; @@ -648,7 +649,7 @@ typedef enum { #define BTN_DPAD_EQUIP (GameInteractor_Dpad(GI_DPAD_EQUIP, BTN_DPAD)) #define CHECK_BTN_DPAD(input) \ - (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0) && \ + (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0) && \ (CHECK_BTN_ALL(input, BTN_DRIGHT) || CHECK_BTN_ALL(input, BTN_DLEFT) || CHECK_BTN_ALL(input, BTN_DDOWN) || \ CHECK_BTN_ALL(input, BTN_DUP))) diff --git a/mm/src/audio/code_8019AF00.c b/mm/src/audio/code_8019AF00.c index 8bc60008bc..e7690ebdb5 100644 --- a/mm/src/audio/code_8019AF00.c +++ b/mm/src/audio/code_8019AF00.c @@ -3,6 +3,7 @@ #include "GameInteractor/GameInteractor.h" #include "2s2h/Enhancements/Audio/AudioEditor.h" +#include "2s2h/cvar_prefixes.h" #include typedef struct { @@ -2613,7 +2614,7 @@ void AudioOcarina_PlayControllerInput(u8 isOcarinaSfxSuppressedWhenCancelled) { // Prevents two different ocarina notes from being played on two consecutive frames if ((sOcarinaFlags != 0) && (sOcarinaDropInputTimer != 0)) { sOcarinaDropInputTimer--; - if (!CVarGetInteger("gEnhancements.Playback.NoDropOcarinaInput", 0)) { + if (!CVarGetInteger(CVAR_ENHANCEMENT("Playback.NoDropOcarinaInput"), 0)) { return; } } @@ -2639,7 +2640,7 @@ void AudioOcarina_PlayControllerInput(u8 isOcarinaSfxSuppressedWhenCancelled) { sOcarinaInputButtonPress &= ocarinaBtnsHeld; } - uint8_t dpadCvarActive = CVarGetInteger("gEnhancements.Playback.DpadOcarina", 0); + uint8_t dpadCvarActive = CVarGetInteger(CVAR_ENHANCEMENT("Playback.DpadOcarina"), 0); // Interprets and transforms controller input into ocarina buttons and notes if (CHECK_BTN_ANY(sOcarinaInputButtonPress, BTN_A)) { diff --git a/mm/src/audio/lib/playback.c b/mm/src/audio/lib/playback.c index 377e047804..dcbfa2f930 100644 --- a/mm/src/audio/lib/playback.c +++ b/mm/src/audio/lib/playback.c @@ -1,6 +1,7 @@ #include "global.h" #include "audio/effects.h" #include "BenPort.h" +#include "2s2h/cvar_prefixes.h" #include void AudioPlayback_NoteSetResamplingRate(NoteSampleState* sampleState, f32 resamplingRateInput); @@ -110,7 +111,7 @@ void AudioPlayback_InitSampleState(Note* note, NoteSampleState* sampleState, Not velocity = 0.0f > velocity ? 0.0f : velocity; velocity = 1.0f < velocity ? 1.0f : velocity; - float master_vol = CVarGetFloat("gSettings.Audio.MasterVolume", 1.0f); + float master_vol = CVarGetFloat(CVAR_SETTING("Audio.MasterVolume"), 1.0f); sampleState->targetVolLeft = (s32)((velocity * volLeft) * (0x1000 - 0.001f)) * master_vol; sampleState->targetVolRight = (s32)((velocity * volRight) * (0x1000 - 0.001f)) * master_vol; diff --git a/mm/src/audio/lib/synthesis.c b/mm/src/audio/lib/synthesis.c index c78a043b3d..dccfa0eb9f 100644 --- a/mm/src/audio/lib/synthesis.c +++ b/mm/src/audio/lib/synthesis.c @@ -1,6 +1,7 @@ #include "global.h" #include #include "2s2h/mixer.h" +#include "2s2h/cvar_prefixes.h" #include // DMEM Addresses for the RSP @@ -868,7 +869,7 @@ Acmd* AudioSynth_ProcessSamples(s16* aiBuf, s32 numSamplesPerUpdate, Acmd* cmd, } size = numSamplesPerUpdate * SAMPLE_SIZE; - if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { aInterleave(cmd++, DMEM_TEMP, DMEM_RIGHT_CH, DMEM_LEFT_CH, size); } else { aInterleave(cmd++, DMEM_TEMP, DMEM_LEFT_CH, DMEM_RIGHT_CH, size); diff --git a/mm/src/code/audio_thread_manager.c b/mm/src/code/audio_thread_manager.c index 6ba726e50a..236fa75dfc 100644 --- a/mm/src/code/audio_thread_manager.c +++ b/mm/src/code/audio_thread_manager.c @@ -2,6 +2,7 @@ #include "audiomgr.h" #include #include +#include "2s2h/cvar_prefixes.h" void AudioMgr_NotifyTaskDone(AudioMgr* audioMgr) { AudioTask* task = audioMgr->rspTask; @@ -123,11 +124,11 @@ void AudioMgr_Init(AudioMgr* audioMgr, void* stack, OSPri pri, OSId id, SchedCon Audio_InitSound(); osSendMesg(&audioMgr->lockQueue, OS_MESG_PTR(NULL), OS_MESG_BLOCK); - AudioSeq_SetPortVolumeScale(SEQ_PLAYER_BGM_MAIN, CVarGetFloat("gSettings.Audio.MainMusicVolume", 1.0f)); - AudioSeq_SetPortVolumeScale(SEQ_PLAYER_BGM_SUB, CVarGetFloat("gSettings.Audio.SubMusicVolume", 1.0f)); - AudioSeq_SetPortVolumeScale(SEQ_PLAYER_SFX, CVarGetFloat("gSettings.Audio.SoundEffectsVolume", 1.0f)); - AudioSeq_SetPortVolumeScale(SEQ_PLAYER_FANFARE, CVarGetFloat("gSettings.Audio.FanfareVolume", 1.0f)); - AudioSeq_SetPortVolumeScale(SEQ_PLAYER_AMBIENCE, CVarGetFloat("gSettings.Audio.AmbienceVolume", 1.0f)); + AudioSeq_SetPortVolumeScale(SEQ_PLAYER_BGM_MAIN, CVarGetFloat(CVAR_SETTING("Audio.MainMusicVolume"), 1.0f)); + AudioSeq_SetPortVolumeScale(SEQ_PLAYER_BGM_SUB, CVarGetFloat(CVAR_SETTING("Audio.SubMusicVolume"), 1.0f)); + AudioSeq_SetPortVolumeScale(SEQ_PLAYER_SFX, CVarGetFloat(CVAR_SETTING("Audio.SoundEffectsVolume"), 1.0f)); + AudioSeq_SetPortVolumeScale(SEQ_PLAYER_FANFARE, CVarGetFloat(CVAR_SETTING("Audio.FanfareVolume"), 1.0f)); + AudioSeq_SetPortVolumeScale(SEQ_PLAYER_AMBIENCE, CVarGetFloat(CVAR_SETTING("Audio.AmbienceVolume"), 1.0f)); // osCreateThread(&audioMgr->thread, id, AudioMgr_ThreadEntry, audioMgr, stack, pri); // osStartThread(&audioMgr->thread); diff --git a/mm/src/code/graph.c b/mm/src/code/graph.c index 414f4299bb..429dc74b88 100644 --- a/mm/src/code/graph.c +++ b/mm/src/code/graph.c @@ -29,6 +29,7 @@ OSTime sGraphPrevUpdateEndTime; #include "overlays/gamestates/ovl_title/z_title.h" #include "z_title_setup.h" #include "BenPort.h" +#include "2s2h/cvar_prefixes.h" void Graph_StartFrame(); void Graph_ProcessGfxCommands(Gfx* commands); @@ -360,7 +361,7 @@ void Graph_Update(GraphicsContext* gfxCtx, GameState* gameState) { Graph_ExecuteAndDraw(gfxCtx, gameState); // 2S2H [Debug] Decomp didn't contain the original code that would allow for this, so this is stolen from ship - if (CVarGetInteger("gDeveloperTools.DebugEnabled", 0)) { + if (CVarGetInteger(CVAR_DEVELOPER_TOOLS("DebugEnabled"), 0)) { if (CHECK_BTN_ALL(gameState->input[0].press.button, BTN_Z) && CHECK_BTN_ALL(gameState->input[0].cur.button, BTN_L | BTN_R)) { STOP_GAMESTATE(gameState); diff --git a/mm/src/code/z_actor.c b/mm/src/code/z_actor.c index 6fed8a8753..6ca265c556 100644 --- a/mm/src/code/z_actor.c +++ b/mm/src/code/z_actor.c @@ -28,6 +28,7 @@ #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/BenPort.h" #include "2s2h/ShipUtils.h" +#include "2s2h/cvar_prefixes.h" #include "2s2h/ObjectExtension/ObjectExtension.h" #include "2s2h/ObjectExtension/ActorListIndex.h" #include @@ -3309,7 +3310,7 @@ s32 Ship_CalcShouldDrawAndUpdate(PlayState* play, Actor* actor, Vec3f* projected return true; } - s32 distMultiplier = CVarGetInteger("gEnhancements.Graphics.IncreaseActorDrawDistance", 1); + s32 distMultiplier = CVarGetInteger(CVAR_ENHANCEMENT("Graphics.IncreaseActorDrawDistance"), 1); distMultiplier = MAX(distMultiplier, 1); // Apply distance scale to forward cullzone check @@ -3338,7 +3339,7 @@ s32 Ship_CalcShouldDrawAndUpdate(PlayState* play, Actor* actor, Vec3f* projected cullingVolumeScaleVertical = actor->cullingVolumeDownward; } - if (CVarGetInteger("gEnhancements.Graphics.ActorCullingAccountsForWidescreen", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Graphics.ActorCullingAccountsForWidescreen"), 0)) { aspectMultiplier = Ship_GetExtendedAspectRatioMultiplier(); } @@ -3400,8 +3401,8 @@ void Actor_DrawAll(PlayState* play, ActorContext* actorCtx) { // #region 2S2H [Enhancement] Extended culling updates bool shipShouldDraw = false; bool shipShouldUpdate = false; - if (CVarGetInteger("gEnhancements.Graphics.IncreaseActorDrawDistance", 1) > 1 || - CVarGetInteger("gEnhancements.Graphics.ActorCullingAccountsForWidescreen", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Graphics.IncreaseActorDrawDistance"), 1) > 1 || + CVarGetInteger(CVAR_ENHANCEMENT("Graphics.ActorCullingAccountsForWidescreen"), 0)) { Ship_CalcShouldDrawAndUpdate(play, actor, &actor->projectedPos, actor->projectedW, &shipShouldDraw, &shipShouldUpdate); diff --git a/mm/src/code/z_bgcheck.c b/mm/src/code/z_bgcheck.c index 5a8d40a341..379ac6f5e7 100644 --- a/mm/src/code/z_bgcheck.c +++ b/mm/src/code/z_bgcheck.c @@ -5,6 +5,7 @@ #include #include "2s2h/BenPort.h" +#include "2s2h/cvar_prefixes.h" #include "2s2h/GameInteractor/GameInteractor.h" #include @@ -1914,7 +1915,7 @@ s32 BgCheck_CheckWallImpl(CollisionContext* colCtx, u16 xpFlags, Vec3f* posResul dy = posNext->y - posPrev->y; dz = posNext->z - posPrev->z; - if (CVarGetInteger("gCheats.NoClip", 0) && actor != NULL && actor->id == ACTOR_PLAYER) { + if (CVarGetInteger(CVAR_CHEAT("NoClip"), 0) && actor != NULL && actor->id == ACTOR_PLAYER) { return false; } diff --git a/mm/src/code/z_game_over.c b/mm/src/code/z_game_over.c index 270ea471b1..3832cdd6ed 100644 --- a/mm/src/code/z_game_over.c +++ b/mm/src/code/z_game_over.c @@ -6,6 +6,7 @@ #include "variables.h" #include "macros.h" #include "overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope.h" +#include "2s2h/cvar_prefixes.h" #include void GameOver_Init(PlayState* play) { @@ -81,7 +82,7 @@ void GameOver_Update(PlayState* play) { break; case GAMEOVER_DEATH_FADE_OUT: - if (CVarGetInteger("gEnhancements.Kaleido.GameOver", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Kaleido.GameOver"), 0)) { sGameOverTimer--; if (sGameOverTimer == 0) { diff --git a/mm/src/code/z_kankyo.c b/mm/src/code/z_kankyo.c index 87129d15b0..a16d416df7 100644 --- a/mm/src/code/z_kankyo.c +++ b/mm/src/code/z_kankyo.c @@ -1,6 +1,7 @@ #include "ultra64.h" #include "z64light.h" #include "z64math.h" +#include "2s2h/cvar_prefixes.h" #include typedef enum { @@ -760,7 +761,7 @@ void Environment_Init(PlayState* play2, EnvironmentContext* envCtx, s32 arg2) { switch ((u32)gWeatherMode) { case WEATHER_MODE_2: if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_STONE_TOWER_TEMPLE) && - (!CVarGetInteger("gFixes.FixIkanaGreatFairyFountainColor", 0) || + (!CVarGetInteger(CVAR_ENHANCEMENT("Fixes.FixIkanaGreatFairyFountainColor"), 0) || (play->sceneId != SCENE_YOUSEI_IZUMI))) { play->skyboxId = SKYBOX_3; envCtx->lightConfig = 5; @@ -3422,7 +3423,7 @@ void Environment_DrawSkyboxStarsImpl(PlayState* play, Gfx** gfxP) { if ((scale >= 1.0f) && (imgX > -adjustedXBounds) && (imgX < adjustedXBounds) && (imgY > -1.0f) && (imgY < 1.0f)) { - if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { imgX *= -1.0f; } // #endregion diff --git a/mm/src/code/z_map_disp.c b/mm/src/code/z_map_disp.c index ed51b27dae..c8b2587115 100644 --- a/mm/src/code/z_map_disp.c +++ b/mm/src/code/z_map_disp.c @@ -12,6 +12,7 @@ #include "2s2h/BenGui/CosmeticEditor.h" #include "2s2h/BenGui/HudEditor.h" #include "assets/2s2h_assets.h" +#include "2s2h/cvar_prefixes.h" #include void MapDisp_DestroyMapI(PlayState* play); @@ -153,7 +154,7 @@ s32 Ship_MapModifyPosMirrorMode(s32 pos, s32 offset) { } void Ship_MapDispUpdateMirrorMode() { - sMirrorWorldActive = CVarGetInteger("gModes.MirroredWorld.State", 0); + sMirrorWorldActive = CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0); for (s32 i = 0; i < sSceneNumRooms; i++) { sMapDataRooms[i].flags = sOriginalMapDataRoomFlags[i]; diff --git a/mm/src/code/z_message.c b/mm/src/code/z_message.c index 4ce98b5bd8..9143a88fca 100644 --- a/mm/src/code/z_message.c +++ b/mm/src/code/z_message.c @@ -9,6 +9,7 @@ #include "z64save.h" #include "BenPort.h" #include "2s2h/GameInteractor/GameInteractor.h" +#include "2s2h/cvar_prefixes.h" #include "assets/archives/schedule_dma_static/schedule_dma_static_yar.h" #include "assets/archives/icon_item_static/icon_item_static_yar.h" #include "assets/archives/icon_item_24_static/icon_item_24_static_yar.h" @@ -306,7 +307,8 @@ bool Message_ShouldAdvance(PlayState* play) { return CHECK_BTN_ALL(controller->press.button, BTN_A) || CHECK_BTN_ALL(controller->press.button, BTN_B) || // 2S2H [Enhancement] When fast text is on, we want to check if B is held instead of only if it was just // pressed - (CVarGetInteger("gEnhancements.Dialogue.FastText", 0) && CHECK_BTN_ALL(controller->cur.button, BTN_B)) || + (CVarGetInteger(CVAR_ENHANCEMENT("Dialogue.FastText"), 0) && + CHECK_BTN_ALL(controller->cur.button, BTN_B)) || CHECK_BTN_ALL(controller->press.button, BTN_CUP); } } @@ -322,7 +324,8 @@ bool Message_ShouldAdvanceSilent(PlayState* play) { return CHECK_BTN_ALL(controller->press.button, BTN_A) || CHECK_BTN_ALL(controller->press.button, BTN_B) || // 2S2H [Enhancement] When fast text is on, we want to check if B is held instead of only if it was just // pressed - (CVarGetInteger("gEnhancements.Dialogue.FastText", 0) && CHECK_BTN_ALL(controller->cur.button, BTN_B)) || + (CVarGetInteger(CVAR_ENHANCEMENT("Dialogue.FastText"), 0) && + CHECK_BTN_ALL(controller->cur.button, BTN_B)) || CHECK_BTN_ALL(controller->press.button, BTN_CUP); } } @@ -5677,7 +5680,7 @@ void Message_Update(PlayState* play) { // 2S2H [Enhancement] When fast text is on, we want to check if B is held instead of only if it was // just pressed. Has an additional check that the textbox hasnt been skipped already to prevent the // message from failing to continue. - } else if ((CVarGetInteger("gEnhancements.Dialogue.FastText", 0) && + } else if ((CVarGetInteger(CVAR_ENHANCEMENT("Dialogue.FastText"), 0) && CHECK_BTN_ALL(input->cur.button, BTN_B)) && !msgCtx->textUnskippable && !msgCtx->textboxSkipped) { msgCtx->textboxSkipped = true; diff --git a/mm/src/code/z_message_nes.c b/mm/src/code/z_message_nes.c index 3cdd9a5fbb..02a6d56bc3 100644 --- a/mm/src/code/z_message_nes.c +++ b/mm/src/code/z_message_nes.c @@ -3,6 +3,7 @@ #include "message_data_static.h" #include "assets/interface/message_texture_static/message_texture_static.h" #include +#include "2s2h/cvar_prefixes.h" #include f32 sNESFontWidths[160] = { @@ -476,7 +477,8 @@ void Message_DrawTextNES(PlayState* play, Gfx** gfxP, u16 textDrawPos) { if ((i + 1) == msgCtx->textDrawPos || // 2S2H [Enhancement] To match how PAL and GC fixed character parsing, any code that checks for // (i + 1) == msgCtx->textDrawPos should also check for (i + 2) == msgCtx->textDrawPos - ((i + 2) == msgCtx->textDrawPos && CVarGetInteger("gEnhancements.Fixes.ControlCharacters", 0))) { + ((i + 2) == msgCtx->textDrawPos && + CVarGetInteger(CVAR_ENHANCEMENT("Fixes.ControlCharacters"), 0))) { msgCtx->textDrawPos++; } break; @@ -541,7 +543,8 @@ void Message_DrawTextNES(PlayState* play, Gfx** gfxP, u16 textDrawPos) { } if ((i + 1) == msgCtx->textDrawPos || - ((i + 2) == msgCtx->textDrawPos && CVarGetInteger("gEnhancements.Fixes.ControlCharacters", 0))) { + ((i + 2) == msgCtx->textDrawPos && + CVarGetInteger(CVAR_ENHANCEMENT("Fixes.ControlCharacters"), 0))) { msgCtx->textDrawPos++; } break; @@ -601,7 +604,8 @@ void Message_DrawTextNES(PlayState* play, Gfx** gfxP, u16 textDrawPos) { case MESSAGE_QUICKTEXT_ENABLE: if ((i + 1) == msgCtx->textDrawPos || - ((i + 2) == msgCtx->textDrawPos && CVarGetInteger("gEnhancements.Fixes.ControlCharacters", 0))) { + ((i + 2) == msgCtx->textDrawPos && + CVarGetInteger(CVAR_ENHANCEMENT("Fixes.ControlCharacters"), 0))) { if ((msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) || ((msgCtx->msgMode >= MSGMODE_OCARINA_STARTING) && (msgCtx->msgMode <= MSGMODE_26))) { j = i; @@ -672,14 +676,16 @@ void Message_DrawTextNES(PlayState* play, Gfx** gfxP, u16 textDrawPos) { case MESSAGE_SFX: if (((i + 1) == msgCtx->textDrawPos || - ((i + 2) == msgCtx->textDrawPos && CVarGetInteger("gEnhancements.Fixes.ControlCharacters", 0))) && + ((i + 2) == msgCtx->textDrawPos && + CVarGetInteger(CVAR_ENHANCEMENT("Fixes.ControlCharacters"), 0))) && (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING)) { stateTimerHi = msgCtx->decodedBuffer.schar[i + 1] << 8; stateTimerHi += (uint8_t)msgCtx->decodedBuffer.schar[i + 2]; Audio_PlaySfx(stateTimerHi); } if ((i + 1) == msgCtx->textDrawPos || - ((i + 2) == msgCtx->textDrawPos && CVarGetInteger("gEnhancements.Fixes.ControlCharacters", 0))) { + ((i + 2) == msgCtx->textDrawPos && + CVarGetInteger(CVAR_ENHANCEMENT("Fixes.ControlCharacters"), 0))) { msgCtx->textDrawPos += 2; } i += 2; @@ -687,7 +693,8 @@ void Message_DrawTextNES(PlayState* play, Gfx** gfxP, u16 textDrawPos) { case MESSAGE_DELAY: if (((i + 1) == msgCtx->textDrawPos || - ((i + 2) == msgCtx->textDrawPos && CVarGetInteger("gEnhancements.Fixes.ControlCharacters", 0))) && + ((i + 2) == msgCtx->textDrawPos && + CVarGetInteger(CVAR_ENHANCEMENT("Fixes.ControlCharacters"), 0))) && (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING)) { msgCtx->msgMode = MSGMODE_9; stateTimerHi = msgCtx->decodedBuffer.schar[i + 1] << 8; @@ -711,7 +718,7 @@ void Message_DrawTextNES(PlayState* play, Gfx** gfxP, u16 textDrawPos) { msgCtx->textDelay = (u8)character - 0x0; if ((i + 1) == msgCtx->textDrawPos || ((i + 2) == msgCtx->textDrawPos && - CVarGetInteger("gEnhancements.Fixes.ControlCharacters", 0))) { + CVarGetInteger(CVAR_ENHANCEMENT("Fixes.ControlCharacters"), 0))) { msgCtx->textDrawPos++; } break; @@ -910,7 +917,8 @@ void Message_DrawTextNES(PlayState* play, Gfx** gfxP, u16 textDrawPos) { } if ((msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) && ((i + 1) == msgCtx->textDrawPos || - ((i + 2) == msgCtx->textDrawPos && CVarGetInteger("gEnhancements.Fixes.ControlCharacters", 0)))) { + ((i + 2) == msgCtx->textDrawPos && + CVarGetInteger(CVAR_ENHANCEMENT("Fixes.ControlCharacters"), 0)))) { Audio_PlaySfx(NA_SE_NONE); } @@ -982,14 +990,14 @@ void Message_DrawTextNES(PlayState* play, Gfx** gfxP, u16 textDrawPos) { } if (msgCtx->textDelayTimer == 0) { - msgCtx->textDrawPos = i + (CVarGetInteger("gEnhancements.Dialogue.FastText", 0) ? 10 : 1); + msgCtx->textDrawPos = i + (CVarGetInteger(CVAR_ENHANCEMENT("Dialogue.FastText"), 0) ? 10 : 1); msgCtx->textDelayTimer = 0; if (msgCtx->msgMode == MSGMODE_9) { msgCtx->msgMode = MSGMODE_TEXT_DISPLAYING; } } else { msgCtx->textDelayTimer--; - if (CVarGetInteger("gEnhancements.Dialogue.FastText", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Dialogue.FastText"), 0)) { msgCtx->textDelayTimer = 0; } } diff --git a/mm/src/code/z_parameter.c b/mm/src/code/z_parameter.c index 9cea7ffcec..89459c9b1d 100644 --- a/mm/src/code/z_parameter.c +++ b/mm/src/code/z_parameter.c @@ -21,6 +21,7 @@ #include #include "2s2h/BenGui/HudEditor.h" #include "2s2h/BenGui/CosmeticEditor.h" +#include "2s2h/cvar_prefixes.h" #include "2s2h_assets.h" #include "2s2h/GameInteractor/GameInteractor.h" #include @@ -4939,7 +4940,7 @@ s32 Inventory_ConsumeFairy(PlayState* play) { } } // #region 2S2H [Dpad] - if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { for (u8 dpadBtn = EQUIP_SLOT_D_RIGHT; dpadBtn <= EQUIP_SLOT_D_UP; dpadBtn++) { if (DPAD_GET_CUR_FORM_BTN_ITEM(dpadBtn) == ITEM_FAIRY) { DPAD_SET_CUR_FORM_BTN_ITEM(dpadBtn, ITEM_BOTTLE); @@ -5537,7 +5538,7 @@ void Magic_Update(PlayState* play) { (BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_DOWN) != ITEM_LENS_OF_TRUTH) && (BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_RIGHT) != ITEM_LENS_OF_TRUTH) && // #region 2S2H [Dpad] - (!CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0) || + (!CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0) || (DPAD_BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_D_RIGHT) != ITEM_LENS_OF_TRUTH) && (DPAD_BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_D_LEFT) != ITEM_LENS_OF_TRUTH) && (DPAD_BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_D_DOWN) != ITEM_LENS_OF_TRUTH) && @@ -5898,7 +5899,7 @@ void Interface_DrawItemButtons(PlayState* play) { gDPSetCombineMode(OVERLAY_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); // #region 2S2H [Dpad] - if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { s16 dpadAlpha = MAX(MAX(MAX(interfaceCtx->shipInterface.dpad.dRightAlpha, interfaceCtx->shipInterface.dpad.dLeftAlpha), interfaceCtx->shipInterface.dpad.dDownAlpha), @@ -6287,7 +6288,7 @@ void Interface_DrawAmmoCount(PlayState* play, s16 button, s16 alpha) { //! but prior to that, when certain conditions are met, the color will have last been set by the wallet icon //! causing the ammo count to be drawn incorrectly. This is most obvious when you get deku nuts early on, and //! the ammo count is drawn with a shade of green. - if (CVarGetInteger("gFixes.FixAmmoCountEnvColor", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Fixes.FixAmmoCountEnvColor"), 0)) { gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 255); } @@ -7238,7 +7239,7 @@ void Interface_DrawClock(PlayState* play) { gSPVertex(OVERLAY_DISP++, &interfaceCtx->actionVtx[24], 8, 0); OVERLAY_DISP = - CVarGetInteger("gEnhancements.Graphics.24HoursClock", 0) + CVarGetInteger(CVAR_ENHANCEMENT("Graphics.24HoursClock"), 0) ? Gfx_DrawTexQuad4b(OVERLAY_DISP, sThreeDayClockHourTwentyFourHoursTextures[hourIndex], G_IM_FMT_I, 16, 11, 0) : Gfx_DrawTexQuad4b(OVERLAY_DISP, sThreeDayClockHourTextures[hourIndex], G_IM_FMT_I, 16, 11, 0); @@ -7281,7 +7282,7 @@ void Interface_DrawClock(PlayState* play) { gSPVertex(OVERLAY_DISP++, &interfaceCtx->actionVtx[32], 8, 0); OVERLAY_DISP = - CVarGetInteger("gEnhancements.Graphics.24HoursClock", 0) + CVarGetInteger(CVAR_ENHANCEMENT("Graphics.24HoursClock"), 0) ? Gfx_DrawTexQuad4b(OVERLAY_DISP, sThreeDayClockHourTwentyFourHoursTextures[hourIndex], G_IM_FMT_I, 16, 11, 0) : Gfx_DrawTexQuad4b(OVERLAY_DISP, sThreeDayClockHourTextures[hourIndex], G_IM_FMT_I, 16, 11, 0); @@ -9268,12 +9269,12 @@ void Interface_Draw(PlayState* play) { Map_DrawMinimap(play); if ((R_PAUSE_BG_PRERENDER_STATE != 2) && (R_PAUSE_BG_PRERENDER_STATE != 3)) { - if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { gSPMatrix(OVERLAY_DISP++, interfaceCtx->view.shipMirrorProjectionPtr, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); } Attention_Draw(&play->actorCtx.attention, play); - if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { gSPMatrix(OVERLAY_DISP++, interfaceCtx->view.projectionPtr, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); } @@ -9289,7 +9290,7 @@ void Interface_Draw(PlayState* play) { Interface_DrawCButtonIcons(play); // #region 2S2H [Dpad] - if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { Interface_DrawDButtonIcons(play); } // #endregion @@ -10061,7 +10062,7 @@ void Interface_Init(PlayState* play) { } // #region 2S2H [Dpad] - if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { if (DPAD_BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_D_RIGHT) < ITEM_F0) { Interface_Dpad_LoadItemIconImpl(play, EQUIP_SLOT_D_RIGHT); } diff --git a/mm/src/code/z_pause.c b/mm/src/code/z_pause.c index d4ecff4647..f1baa14d54 100644 --- a/mm/src/code/z_pause.c +++ b/mm/src/code/z_pause.c @@ -24,6 +24,7 @@ #include "controller.h" #include "padutils.h" #include +#include "2s2h/cvar_prefixes.h" void FrameAdvance_Init(FrameAdvanceContext* frameAdvCtx) { frameAdvCtx->timer = 0; @@ -34,17 +35,17 @@ void FrameAdvance_Init(FrameAdvanceContext* frameAdvCtx) { * Returns true when frame advance is not active (game will run normally) */ s32 FrameAdvance_Update(FrameAdvanceContext* frameAdvCtx, Input* input) { - if (CVarGetInteger("gDeveloperTools.DebugEnabled", 0)) { + if (CVarGetInteger(CVAR_DEVELOPER_TOOLS("DebugEnabled"), 0)) { if (CHECK_BTN_ALL(input->cur.button, BTN_R) && CHECK_BTN_ALL(input->press.button, BTN_DDOWN)) { frameAdvCtx->enabled = !frameAdvCtx->enabled; } } - if (!frameAdvCtx->enabled || CVarGetInteger("gDeveloperTools.FrameAdvanceTick", 0) || + if (!frameAdvCtx->enabled || CVarGetInteger(CVAR_DEVELOPER_TOOLS("FrameAdvanceTick"), 0) || (CHECK_BTN_ALL(input->cur.button, BTN_Z) && (CHECK_BTN_ALL(input->press.button, BTN_R) || (CHECK_BTN_ALL(input->cur.button, BTN_R) && (++frameAdvCtx->timer >= 9))))) { - CVarClear("gDeveloperTools.FrameAdvanceTick"); + CVarClear(CVAR_DEVELOPER_TOOLS("FrameAdvanceTick")); frameAdvCtx->timer = 0; return true; } diff --git a/mm/src/code/z_play.c b/mm/src/code/z_play.c index a0a3b3a994..ef9ecc884f 100644 --- a/mm/src/code/z_play.c +++ b/mm/src/code/z_play.c @@ -41,6 +41,7 @@ u8 sMotionBlurStatus; #include "overlays/gamestates/ovl_file_choose/z_file_select.h" #include "debug.h" #include "BenPort.h" +#include "2s2h/cvar_prefixes.h" #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" #include "2s2h/Enhancements/Graphics/Graphics.h" @@ -123,7 +124,7 @@ void Play_DrawMotionBlur(PlayState* this) { } hasCopiedForFrame = false; - u8 interpolate = CVarGetInteger("gEnhancements.Graphics.MotionBlur.Interpolate", 0); + u8 interpolate = CVarGetInteger(CVAR_ENHANCEMENT("Graphics.MotionBlur.Interpolate"), 0); // 2S2H [Port] Copy framebuffer, either once per game frame or all frames depending on interpolation setting FB_CopyToFramebuffer(&gfx, 0, gBlurFrameBuffer, !interpolate, &hasCopiedForFrame); @@ -1257,7 +1258,8 @@ void Play_DrawMain(PlayState* this) { View_Apply(&this->view, 0xF); // Setup mirror mode matrix handling when we are not drawing kaleido - if (R_PAUSE_BG_PRERENDER_STATE <= PAUSE_BG_PRERENDER_SETUP && CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (R_PAUSE_BG_PRERENDER_STATE <= PAUSE_BG_PRERENDER_SETUP && + CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { gSPSetExtraGeometryMode(POLY_OPA_DISP++, G_EX_INVERT_CULLING); gSPSetExtraGeometryMode(POLY_XLU_DISP++, G_EX_INVERT_CULLING); gSPMatrix(POLY_OPA_DISP++, this->view.shipMirrorProjectionPtr, @@ -1394,7 +1396,7 @@ void Play_DrawMain(PlayState* this) { //! FAKE: u32 roomDrawFlags = ((1) ? 1 : 0) | (((void)0, 1) ? 2 : 0); - if (CVarGetInteger("gEnhancements.Graphics.DisableSceneGeometryDistanceCheck", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Graphics.DisableSceneGeometryDistanceCheck"), 0)) { gSPSetExtraGeometryMode(POLY_OPA_DISP++, G_EX_ALWAYS_EXECUTE_BRANCH); gSPSetExtraGeometryMode(POLY_XLU_DISP++, G_EX_ALWAYS_EXECUTE_BRANCH); } @@ -1405,7 +1407,7 @@ void Play_DrawMain(PlayState* this) { Room_Draw(this, &this->roomCtx.prevRoom, roomDrawFlags & 3); } - if (CVarGetInteger("gEnhancements.Graphics.DisableSceneGeometryDistanceCheck", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Graphics.DisableSceneGeometryDistanceCheck"), 0)) { gSPClearExtraGeometryMode(POLY_OPA_DISP++, G_EX_ALWAYS_EXECUTE_BRANCH); gSPClearExtraGeometryMode(POLY_XLU_DISP++, G_EX_ALWAYS_EXECUTE_BRANCH); } @@ -1546,7 +1548,7 @@ void Play_DrawMain(PlayState* this) { } } - if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { gSPClearExtraGeometryMode(POLY_OPA_DISP++, G_EX_INVERT_CULLING); gSPClearExtraGeometryMode(POLY_XLU_DISP++, G_EX_INVERT_CULLING); } diff --git a/mm/src/code/z_player_lib.c b/mm/src/code/z_player_lib.c index f51d17cfd4..be3266b1de 100644 --- a/mm/src/code/z_player_lib.c +++ b/mm/src/code/z_player_lib.c @@ -45,6 +45,7 @@ #include "2s2h/BenPort.h" #include "2s2h/GameInteractor/GameInteractor.h" +#include "2s2h/cvar_prefixes.h" #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" #include @@ -859,7 +860,7 @@ PlayerItemAction func_80123810(PlayState* play) { } } // #region 2S2H [Dpad] - if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { for (i = 0; i < ARRAY_COUNT(sDItemButtons); i++) { if (CHECK_BTN_ALL(CONTROLLER1(&play->state)->press.button, sDItemButtons[i])) { itemId = Player_Dpad_GetItemOnButton(play, player, i); diff --git a/mm/src/code/z_sram_NES.c b/mm/src/code/z_sram_NES.c index 03c3c301ee..d5deb65b95 100644 --- a/mm/src/code/z_sram_NES.c +++ b/mm/src/code/z_sram_NES.c @@ -7,6 +7,7 @@ #include "2s2h/Enhancements/Saving/SavingEnhancements.h" #include "2s2h/GameInteractor/GameInteractor.h" +#include "2s2h/cvar_prefixes.h" #include void Sram_SyncWriteToFlash(SramContext* sramCtx, s32 curPage, s32 numPages); @@ -2080,7 +2081,7 @@ void Sram_UpdateWriteToFlashDefault(SramContext* sramCtx) { } } } else if (OSTIME_TO_TIMER(osGetTime() - sramCtx->startWriteOsTime) >= - SECONDS_TO_TIMER(CVarGetInteger("gEnhancements.Saving.DisableSaveDelay", 0) ? 0 : 2)) { + SECONDS_TO_TIMER(CVarGetInteger(CVAR_ENHANCEMENT("Saving.DisableSaveDelay"), 0) ? 0 : 2)) { // 2S2H [Port] Some tricks require a save delay so we can't just force it to zero // Finished status is hardcoded to 2 seconds instead of when the task finishes sramCtx->status = 0; @@ -2120,7 +2121,7 @@ void Sram_UpdateWriteToFlashOwlSave(SramContext* sramCtx) { } } } else if (OSTIME_TO_TIMER(osGetTime() - sramCtx->startWriteOsTime) >= - SECONDS_TO_TIMER(CVarGetInteger("gEnhancements.Saving.DisableSaveDelay", 0) ? 0 : 2)) { + SECONDS_TO_TIMER(CVarGetInteger(CVAR_ENHANCEMENT("Saving.DisableSaveDelay"), 0) ? 0 : 2)) { // 2S2H [Port] Some tricks require a save delay so we can't just force it to zero // Finished status is hardcoded to 2 seconds instead of when the task finishes sramCtx->status = 0; diff --git a/mm/src/code/z_view.c b/mm/src/code/z_view.c index 331de69567..de1baf6e50 100644 --- a/mm/src/code/z_view.c +++ b/mm/src/code/z_view.c @@ -3,6 +3,7 @@ #include "z64view.h" #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" #include "2s2h/GameInteractor/GameInteractor.h" +#include "2s2h/cvar_prefixes.h" #include s32 View_ApplyPerspective(View* view); @@ -354,7 +355,7 @@ s32 View_ApplyPerspective(View* view) { guPerspective(projection, &view->perspNorm, view->fovy, aspect, view->zNear, view->zFar, view->scale); - if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { MtxF flipF; SkinMatrix_Clear(&flipF); flipF.xx = -1.0; @@ -489,7 +490,7 @@ s32 View_ApplyOrtho(View* view) { guOrtho(projection, gScreenWidth * -0.5f, gScreenWidth * 0.5f, gScreenHeight * -0.5f, gScreenHeight * 0.5f, view->zNear, view->zFar, view->scale); - // if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + // if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { // MtxF flipF; // SkinMatrix_Clear(&flipF); // flipF.xx = -1.0; @@ -546,7 +547,7 @@ s32 View_ApplyOrthoToOverlay(View* view) { guOrtho(projection, gScreenWidth * -0.5f, gScreenWidth * 0.5f, gScreenHeight * -0.5f, gScreenHeight * 0.5f, view->zNear, view->zFar, view->scale); - if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { MtxF flipF; SkinMatrix_Clear(&flipF); flipF.xx = -1.0; diff --git a/mm/src/overlays/actors/ovl_En_Fsn/z_en_fsn.c b/mm/src/overlays/actors/ovl_En_Fsn/z_en_fsn.c index 2ed4e83dc9..7a18e25d5c 100644 --- a/mm/src/overlays/actors/ovl_En_Fsn/z_en_fsn.c +++ b/mm/src/overlays/actors/ovl_En_Fsn/z_en_fsn.c @@ -7,6 +7,7 @@ #include "z_en_fsn.h" #include "objects/gameplay_keep/gameplay_keep.h" #include "2s2h/GameInteractor/GameInteractor.h" +#include "2s2h/cvar_prefixes.h" #include #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED) @@ -458,7 +459,7 @@ void EnFsn_UpdateCursorPos(EnFsn* this, PlayState* play) { this->cursorPos.y = screenPosY + yOffset; this->cursorPos.z = 1.2f; - if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { this->cursorPos.x = SCREEN_WIDTH - this->cursorPos.x; } } @@ -1613,7 +1614,8 @@ void EnFsn_DrawStickDirectionPrompts(EnFsn* this, PlayState* play) { s32 drawStickRightPrompt = this->stickLeftPrompt.isEnabled; s32 drawStickLeftPrompt = this->stickRightPrompt.isEnabled; - if (CVarGetInteger("gModes.MirroredWorld.State", 0) && (drawStickLeftPrompt != drawStickRightPrompt)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0) && + (drawStickLeftPrompt != drawStickRightPrompt)) { drawStickLeftPrompt = !drawStickLeftPrompt; drawStickRightPrompt = !drawStickRightPrompt; } diff --git a/mm/src/overlays/actors/ovl_En_Gakufu/z_en_gakufu.c b/mm/src/overlays/actors/ovl_En_Gakufu/z_en_gakufu.c index 7b7e92c0de..bc4b0a8a65 100644 --- a/mm/src/overlays/actors/ovl_En_Gakufu/z_en_gakufu.c +++ b/mm/src/overlays/actors/ovl_En_Gakufu/z_en_gakufu.c @@ -6,6 +6,7 @@ #include "z_en_gakufu.h" #include "interface/parameter_static/parameter_static.h" +#include "2s2h/cvar_prefixes.h" #include #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA) @@ -267,7 +268,7 @@ void EnGakufu_Draw(Actor* thisx, PlayState* play) { gSPSegment(POLY_XLU_DISP++, 0x02, play->interfaceCtx.parameterSegment); // Invert the whole music staff, so the notes appear correctly in mirrored world - if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { Matrix_Scale(-1.0f, 1.0f, 1.0f, MTXMODE_APPLY); } diff --git a/mm/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c b/mm/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c index 8853817d98..adac497814 100644 --- a/mm/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c +++ b/mm/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c @@ -7,6 +7,7 @@ #include "z_en_ossan.h" #include "objects/gameplay_keep/gameplay_keep.h" #include "2s2h/GameInteractor/GameInteractor.h" +#include "2s2h/cvar_prefixes.h" #include #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED) @@ -298,7 +299,7 @@ void EnOssan_UpdateCursorPos(PlayState* play, EnOssan* this) { this->cursorPos.x = screenPosX; this->cursorPos.y = screenPosY; - if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { this->cursorPos.x = SCREEN_WIDTH - this->cursorPos.x; } } @@ -1688,7 +1689,8 @@ void EnOssan_DrawStickDirectionPrompts(PlayState* play, EnOssan* this) { s32 drawStickRightPrompt = this->stickLeftPrompt.isEnabled; s32 drawStickLeftPrompt = this->stickRightPrompt.isEnabled; - if (CVarGetInteger("gModes.MirroredWorld.State", 0) && (drawStickLeftPrompt != drawStickRightPrompt)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0) && + (drawStickLeftPrompt != drawStickRightPrompt)) { drawStickLeftPrompt = !drawStickLeftPrompt; drawStickRightPrompt = !drawStickRightPrompt; } diff --git a/mm/src/overlays/actors/ovl_En_Sob1/z_en_sob1.c b/mm/src/overlays/actors/ovl_En_Sob1/z_en_sob1.c index f3eb9e06a5..5d35125934 100644 --- a/mm/src/overlays/actors/ovl_En_Sob1/z_en_sob1.c +++ b/mm/src/overlays/actors/ovl_En_Sob1/z_en_sob1.c @@ -9,6 +9,7 @@ #include "objects/object_masterzoora/object_masterzoora.h" #include "objects/gameplay_keep/gameplay_keep.h" #include "2s2h/GameInteractor/GameInteractor.h" +#include "2s2h/cvar_prefixes.h" #include #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED) @@ -466,7 +467,7 @@ void EnSob1_UpdateCursorPos(PlayState* play, EnSob1* this) { this->cursorPos.y = screenPosY + yOffset; this->cursorPos.z = 1.2f; - if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { this->cursorPos.x = SCREEN_WIDTH - this->cursorPos.x; } } @@ -1594,7 +1595,8 @@ void EnSob1_DrawStickDirectionPrompt(PlayState* play, EnSob1* this) { s32 drawStickRightPrompt = this->stickLeftPrompt.isEnabled; s32 drawStickLeftPrompt = this->stickRightPrompt.isEnabled; - if (CVarGetInteger("gModes.MirroredWorld.State", 0) && (drawStickLeftPrompt != drawStickRightPrompt)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0) && + (drawStickLeftPrompt != drawStickRightPrompt)) { drawStickLeftPrompt = !drawStickLeftPrompt; drawStickRightPrompt = !drawStickRightPrompt; } diff --git a/mm/src/overlays/actors/ovl_En_Trt/z_en_trt.c b/mm/src/overlays/actors/ovl_En_Trt/z_en_trt.c index f4722dde74..fdeca14c89 100644 --- a/mm/src/overlays/actors/ovl_En_Trt/z_en_trt.c +++ b/mm/src/overlays/actors/ovl_En_Trt/z_en_trt.c @@ -8,6 +8,7 @@ #include "objects/object_trt/object_trt.h" #include "objects/gameplay_keep/gameplay_keep.h" #include "2s2h/GameInteractor/GameInteractor.h" +#include "2s2h/cvar_prefixes.h" #include #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) @@ -171,7 +172,7 @@ void EnTrt_UpdateCursorPos(PlayState* play, EnTrt* this) { this->cursorPos.y = screenPosY + yOffset; this->cursorPos.z = 1.2f; - if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { this->cursorPos.x = SCREEN_WIDTH - this->cursorPos.x; } } @@ -1666,7 +1667,8 @@ void EnTrt_DrawStickDirectionPrompt(PlayState* play, EnTrt* this) { s32 drawStickRightPrompt = this->stickLeftPrompt.isEnabled; s32 drawStickLeftPrompt = this->stickRightPrompt.isEnabled; - if (CVarGetInteger("gModes.MirroredWorld.State", 0) && (drawStickLeftPrompt != drawStickRightPrompt)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0) && + (drawStickLeftPrompt != drawStickRightPrompt)) { drawStickLeftPrompt = !drawStickLeftPrompt; drawStickRightPrompt = !drawStickRightPrompt; } diff --git a/mm/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c b/mm/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c index 4f859215f0..1bb006cffd 100644 --- a/mm/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c +++ b/mm/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c @@ -6,6 +6,7 @@ #include "z_en_wood02.h" #include "objects/object_wood02/object_wood02.h" +#include "2s2h/cvar_prefixes.h" #include #define FLAGS 0x00000000 @@ -103,8 +104,8 @@ s32 EnWood02_SpawnZoneCheck(EnWood02* this, PlayState* play, Vec3f* arg2) { SkinMatrix_Vec3fMtxFMultXYZW(&play->viewProjectionMtxF, arg2, &this->actor.projectedPos, &this->actor.projectedW); // 2S2H [Enhancement] Use the extended culling calculation - if (CVarGetInteger("gEnhancements.Graphics.IncreaseActorDrawDistance", 1) > 1 || - CVarGetInteger("gEnhancements.Graphics.ActorCullingAccountsForWidescreen", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Graphics.IncreaseActorDrawDistance"), 1) > 1 || + CVarGetInteger(CVAR_ENHANCEMENT("Graphics.ActorCullingAccountsForWidescreen"), 0)) { bool shipShouldDraw = false; bool shipShouldUpdate = false; return Ship_CalcShouldDrawAndUpdate(play, &this->actor, &this->actor.projectedPos, this->actor.projectedW, diff --git a/mm/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.c b/mm/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.c index 900659b1ae..de3b3a9ddf 100644 --- a/mm/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.c +++ b/mm/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.c @@ -13,6 +13,7 @@ #include "2s2h/ShipUtils.h" #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" +#include "2s2h/cvar_prefixes.h" #include #include "GameInteractor/GameInteractor.h" @@ -78,11 +79,11 @@ s32 func_809A9110(PlayState* play, Vec3f* pos) { SkinMatrix_Vec3fMtxFMultXYZW(&play->viewProjectionMtxF, pos, &projectedPos, &w); // #region 2S2H [Enhancement] Extended Culling handling for grass unit drawing - s32 distMultiplier = CVarGetInteger("gEnhancements.Graphics.IncreaseActorDrawDistance", 1); + s32 distMultiplier = CVarGetInteger(CVAR_ENHANCEMENT("Graphics.IncreaseActorDrawDistance"), 1); distMultiplier = MAX(distMultiplier, 1); f32 aspectMultiplier = 1.0f; - if (CVarGetInteger("gEnhancements.Graphics.ActorCullingAccountsForWidescreen", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Graphics.ActorCullingAccountsForWidescreen"), 0)) { aspectMultiplier = Ship_GetExtendedAspectRatioMultiplier(); } @@ -418,7 +419,7 @@ void ObjGrass_InitDraw(ObjGrass* this, PlayState* play) { // 2S2H [Enhancement] Extended Culling handling // Recompute the eyeDist and distSq values below with the inverse distance multiplier to trick the checks - s32 multiplier = CVarGetInteger("gEnhancements.Graphics.IncreaseActorDrawDistance", 1); + s32 multiplier = CVarGetInteger(CVAR_ENHANCEMENT("Graphics.IncreaseActorDrawDistance"), 1); multiplier = MAX(multiplier, 1); for (i = 0; i < this->activeGrassGroups; i++) { diff --git a/mm/src/overlays/actors/ovl_player_actor/z_player.c b/mm/src/overlays/actors/ovl_player_actor/z_player.c index 542af15de9..1511f0ddaf 100644 --- a/mm/src/overlays/actors/ovl_player_actor/z_player.c +++ b/mm/src/overlays/actors/ovl_player_actor/z_player.c @@ -46,6 +46,7 @@ #include "objects/object_link_child/object_link_child.h" #include "2s2h/BenPort.h" +#include "2s2h/cvar_prefixes.h" #include "2s2h/GameInteractor/GameInteractor.h" #include "2s2h/CustomMessage/CustomMessage.h" #include @@ -3857,7 +3858,7 @@ void Player_ProcessItemButtons(Player* this, PlayState* play) { // #region 2S2H [Dpad] - Changed from EquipSlot to s32 to allow for higher ranges s32 btn = func_8082FD0C(this, maskItemAction); - if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { if (btn <= EQUIP_SLOT_NONE) { DpadEquipSlot dpadBtn = func_Dpad_8082FD0C(this, maskItemAction); @@ -3899,7 +3900,7 @@ void Player_ProcessItemButtons(Player* this, PlayState* play) { !(((Player_GetHeldBButtonSword(this) == PLAYER_B_SWORD_NONE) || (gSaveContext.jinxTimer == 0)) && (Player_ItemIsInUse(this, (IREG(1) != 0) ? ITEM_FISHING_ROD : Inventory_GetBtnBItem(play)) || // #region 2S2H [Dpad] - (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0) && + (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0) && (Player_ItemIsInUse(this, DPAD_BTN_ITEM(EQUIP_SLOT_D_RIGHT)) || Player_ItemIsInUse(this, DPAD_BTN_ITEM(EQUIP_SLOT_D_LEFT)) || Player_ItemIsInUse(this, DPAD_BTN_ITEM(EQUIP_SLOT_D_DOWN)) || @@ -3923,7 +3924,7 @@ void Player_ProcessItemButtons(Player* this, PlayState* play) { item = Player_GetItemOnButton(play, this, i); // #region 2S2H [Dpad] - if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { if (i >= EQUIP_SLOT_A) { DpadEquipSlot j = func_Dpad_8082FDC4(); ItemId dpadItem = Player_Dpad_GetItemOnButton(play, this, j); @@ -3947,7 +3948,7 @@ void Player_ProcessItemButtons(Player* this, PlayState* play) { sPlayerHeldItemButtonIsHeldDown = true; } // #region 2S2H [Dpad] - else if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + else if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { for (i = 0; i < ARRAY_COUNT(sDpadItemButtons); i++) { if (CHECK_BTN_ALL(sPlayerControlInput->cur.button, sDpadItemButtons[i])) { break; @@ -4614,7 +4615,7 @@ void func_80831944(PlayState* play, Player* this) { func_808318C0(play); } // #region 2S2H [Dpad] - else if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + else if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { if (Player_Dpad_GetItemOnButton(play, this, func_Dpad_8082FDC4()) == ITEM_LENS_OF_TRUTH) { func_808318C0(play); } @@ -5058,7 +5059,7 @@ void Player_UpdateZTargeting(Player* this, PlayState* play) { this->zTargetActiveTimer--; } } else if (this->stateFlags1 & PLAYER_STATE1_PARALLEL && - !CVarGetInteger("gEnhancements.Camera.FixTargettingCameraSnap", 0)) { + !CVarGetInteger(CVAR_ENHANCEMENT("Camera.FixTargettingCameraSnap"), 0)) { // If the above code block which checks `zButtonHeld` is not taken, that means Z has been released. // In that case, setting `zTargetActiveTimer` to 0 will stop Parallel if it is currently active. this->zTargetActiveTimer = 0; @@ -13026,7 +13027,7 @@ static bool sNoclipEnabled; s32 Player_UpdateNoclip(Player* this, PlayState* play) { sPlayerControlInput = &play->state.input[0]; - if (!CVarGetInteger("gDeveloperTools.DebugEnabled", 0)) { + if (!CVarGetInteger(CVAR_DEVELOPER_TOOLS("DebugEnabled"), 0)) { sNoclipEnabled = false; return true; } @@ -13518,38 +13519,38 @@ s32 Ship_HandleFirstPersonAiming(PlayState* play, Player* this, s32 arg2) { float gyroX = 0.0f; float gyroY = 0.0f; - if (!(CVarGetInteger("gEnhancements.Camera.FirstPerson.MoveInFirstPerson", 0) && - CVarGetInteger("gEnhancements.Camera.FirstPerson.RightStickEnabled", 0))) { + if (!(CVarGetInteger(CVAR_ENHANCEMENT("Camera.FirstPerson.MoveInFirstPerson"), 0) && + CVarGetInteger(CVAR_ENHANCEMENT("Camera.FirstPerson.RightStickEnabled"), 0))) { s32 leftStickX = sPlayerControlInput->rel.stick_x; // -60 to 60 s32 leftStickY = sPlayerControlInput->rel.stick_y; // -60 to 60 leftStickX *= GameInteractor_InvertControl(GI_INVERT_FIRST_PERSON_AIM_X); leftStickY *= -GameInteractor_InvertControl(GI_INVERT_FIRST_PERSON_AIM_Y); - stickX += leftStickX * CVarGetFloat("gEnhancements.Camera.FirstPerson.SensitivityX", 1.0f); - stickY += leftStickY * CVarGetFloat("gEnhancements.Camera.FirstPerson.SensitivityY", 1.0f); + stickX += leftStickX * CVarGetFloat(CVAR_ENHANCEMENT("Camera.FirstPerson.SensitivityX"), 1.0f); + stickY += leftStickY * CVarGetFloat(CVAR_ENHANCEMENT("Camera.FirstPerson.SensitivityY"), 1.0f); } - if (CVarGetInteger("gEnhancements.Camera.FirstPerson.GyroEnabled", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Camera.FirstPerson.GyroEnabled"), 0)) { gyroX = sPlayerControlInput->cur.gyro_y * 720; // -40 to 40, avg -4 to 4 gyroY = sPlayerControlInput->cur.gyro_x * 720; // -20 to 20, avg -2 to 2 gyroX *= GameInteractor_InvertControl(GI_INVERT_FIRST_PERSON_GYRO_X); gyroY *= -GameInteractor_InvertControl(GI_INVERT_FIRST_PERSON_GYRO_Y); - gyroX *= CVarGetFloat("gEnhancements.Camera.FirstPerson.GyroSensitivityX", 1.0f); - gyroY *= CVarGetFloat("gEnhancements.Camera.FirstPerson.GyroSensitivityY", 1.0f); + gyroX *= CVarGetFloat(CVAR_ENHANCEMENT("Camera.FirstPerson.GyroSensitivityX"), 1.0f); + gyroY *= CVarGetFloat(CVAR_ENHANCEMENT("Camera.FirstPerson.GyroSensitivityY"), 1.0f); } - if (CVarGetInteger("gEnhancements.Camera.FirstPerson.RightStickEnabled", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Camera.FirstPerson.RightStickEnabled"), 0)) { s32 rightStickX = sPlayerControlInput->cur.right_stick_x; // -40 to 40, avg -4 to 4 s32 rightStickY = sPlayerControlInput->cur.right_stick_y; // -20 to 20, avg -2 to 2 rightStickX *= GameInteractor_InvertControl(GI_INVERT_FIRST_PERSON_RIGHT_STICK_X); rightStickY *= -GameInteractor_InvertControl(GI_INVERT_FIRST_PERSON_RIGHT_STICK_Y); - stickX += rightStickX * CVarGetFloat("gEnhancements.Camera.FirstPerson.RightStickSensitivityX", 1.0f); - stickY += rightStickY * CVarGetFloat("gEnhancements.Camera.FirstPerson.RightStickSensitivityY", 1.0f); + stickX += rightStickX * CVarGetFloat(CVAR_ENHANCEMENT("Camera.FirstPerson.RightStickSensitivityX"), 1.0f); + stickY += rightStickY * CVarGetFloat(CVAR_ENHANCEMENT("Camera.FirstPerson.RightStickSensitivityY"), 1.0f); } stickX = CLAMP(stickX, -60, 60); @@ -13557,8 +13558,8 @@ s32 Ship_HandleFirstPersonAiming(PlayState* play, Player* this, s32 arg2) { if (!func_800B7128(this) && !func_8082EF20(this) && !arg2) { // First person without weapon var_s0 = stickY * 0xF0; - if (CVarGetInteger("gEnhancements.Camera.FirstPerson.DisableFirstPersonAutoCenterView", 0) || - CVarGetInteger("gEnhancements.Camera.FirstPerson.GyroEnabled", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Camera.FirstPerson.DisableFirstPersonAutoCenterView"), 0) || + CVarGetInteger(CVAR_ENHANCEMENT("Camera.FirstPerson.GyroEnabled"), 0)) { this->actor.focus.rot.x += var_s0 * 0.1f; } else { Math_SmoothStepToS(&this->actor.focus.rot.x, var_s0, 0xE, 0xFA0, 0x1E); @@ -13592,8 +13593,8 @@ s32 Ship_HandleFirstPersonAiming(PlayState* play, Player* this, s32 arg2) { (this->actionFunc == Player_Action_80) || // Riding swamp boat (non-archery) (this->actionFunc == Player_Action_81); // Bow minigames - if (!playerMovementLocked && CVarGetInteger("gEnhancements.Camera.FirstPerson.MoveInFirstPerson", 0) && - CVarGetInteger("gEnhancements.Camera.FirstPerson.RightStickEnabled", 0)) { + if (!playerMovementLocked && CVarGetInteger(CVAR_ENHANCEMENT("Camera.FirstPerson.MoveInFirstPerson"), 0) && + CVarGetInteger(CVAR_ENHANCEMENT("Camera.FirstPerson.RightStickEnabled"), 0)) { f32 movementSpeed = 8.25f; // account for form if (GameInteractor_Should(VB_CONSIDER_BUNNY_HOOD_EQUIPPED, this->currentMask == PLAYER_MASK_BUNNY, this)) { movementSpeed *= 1.5f; @@ -17834,7 +17835,7 @@ void Player_Action_63(Player* this, PlayState* play) { (BEN_ANIM_EQUAL(this->skelAnime.animation, D_8085D17C[this->transformation]))) || ((this->skelAnime.mode == ANIMMODE_LOOP) && (this->av2.actionVar2 == 0)))) { func_808525C4(play, this); - if (!CVarGetInteger("gEnhancements.Playback.NoDropOcarinaInput", 0) || this->av2.actionVar2 == 1) { + if (!CVarGetInteger(CVAR_ENHANCEMENT("Playback.NoDropOcarinaInput"), 0) || this->av2.actionVar2 == 1) { if (!(this->actor.flags & ACTOR_FLAG_OCARINA_INTERACTION) || (this->ocarinaInteractionActor->id == ACTOR_EN_ZOT)) { Message_DisplayOcarinaStaff(play, OCARINA_ACTION_FREE_PLAY); @@ -18270,7 +18271,7 @@ void Player_Action_68(Player* this, PlayState* play) { } } // #region 2S2H [Dpad] - else if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + else if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { if (Player_Dpad_GetItemOnButton(play, this, HELD_ITEM_TO_DPAD(this->heldItemButton)) == ITEM_BOTTLE) { Actor* interactRangeActor = this->interactRangeActor; @@ -18679,7 +18680,7 @@ void Player_Action_80(Player* this, PlayState* play) { play->actorCtx.flags |= ACTORCTX_FLAG_PICTO_BOX_ON; } // #region 2S2H [Dpad] - else if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + else if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { if ((play->sceneId == SCENE_20SICHITAI) && (Player_Dpad_GetItemOnButton(play, this, func_Dpad_8082FDC4()) == ITEM_PICTOGRAPH_BOX)) { play->actorCtx.flags |= ACTORCTX_FLAG_PICTO_BOX_ON; diff --git a/mm/src/overlays/gamestates/ovl_file_choose/z_file_choose_NES.c b/mm/src/overlays/gamestates/ovl_file_choose/z_file_choose_NES.c index ea862369c5..6c49146d7f 100644 --- a/mm/src/overlays/gamestates/ovl_file_choose/z_file_choose_NES.c +++ b/mm/src/overlays/gamestates/ovl_file_choose/z_file_choose_NES.c @@ -14,6 +14,7 @@ #include "misc/title_static/title_static.h" #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" #include "2s2h/GameInteractor/GameInteractor.h" +#include "2s2h/cvar_prefixes.h" #include "2s2h_assets.h" #include #include "BenPort.h" @@ -29,7 +30,7 @@ FileSelectState* gFileSelectState = NULL; // 2S2H [Enhancement] To handle File 3 support and toggle, we undef the file num max and replace it for a CVar check #undef FILE_NUM_MAX -#define FILE_NUM_MAX (CVarGetInteger("gEnhancements.Saving.FileSlot3", true) ? 3 : 2) +#define FILE_NUM_MAX (CVarGetInteger(CVAR_ENHANCEMENT("Saving.FileSlot3"), true) ? 3 : 2) static Gfx sScreenFillSetupDL[] = { gsDPPipeSync(), @@ -334,7 +335,7 @@ void FileSelect_UpdateMainMenu(GameState* thisx) { Audio_PlaySfx(NA_SE_SY_FSEL_CURSOR); if (this->stickAdjY > 30) { this->buttonIndex--; - if (!CVarGetInteger("gEnhancements.Saving.FileSlot3", true) && + if (!CVarGetInteger(CVAR_ENHANCEMENT("Saving.FileSlot3"), true) && this->buttonIndex == FS_BTN_MAIN_FILE_3) { this->buttonIndex = FS_BTN_MAIN_FILE_2; } @@ -343,7 +344,7 @@ void FileSelect_UpdateMainMenu(GameState* thisx) { } } else { this->buttonIndex++; - if (!CVarGetInteger("gEnhancements.Saving.FileSlot3", true) && + if (!CVarGetInteger(CVAR_ENHANCEMENT("Saving.FileSlot3"), true) && this->buttonIndex == FS_BTN_MAIN_FILE_3) { this->buttonIndex = FS_BTN_MAIN_COPY; } diff --git a/mm/src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.c b/mm/src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.c index 2ab2e5e1b4..729b6b2565 100644 --- a/mm/src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.c +++ b/mm/src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.c @@ -6,6 +6,7 @@ #include "z_file_select.h" #include "z64rumble.h" +#include "2s2h/cvar_prefixes.h" #include // When choosing a file to copy or erase, the 6 main menu buttons are placed at these offsets @@ -105,7 +106,7 @@ void FileSelect_SelectCopySource(GameState* thisx) { if (this->stickAdjY >= 30) { this->buttonIndex--; // Instead of removing File 3 entirely, the index is manually adjusted to skip it - if (!CVarGetInteger("gEnhancements.Saving.FileSlot3", true) && + if (!CVarGetInteger(CVAR_ENHANCEMENT("Saving.FileSlot3"), true) && this->buttonIndex == FS_BTN_COPY_FILE_3) { this->buttonIndex = FS_BTN_COPY_FILE_2; } @@ -115,7 +116,7 @@ void FileSelect_SelectCopySource(GameState* thisx) { } else { this->buttonIndex++; // Instead of removing File 3 entirely, the index is manually adjusted to skip it - if (!CVarGetInteger("gEnhancements.Saving.FileSlot3", true) && + if (!CVarGetInteger(CVAR_ENHANCEMENT("Saving.FileSlot3"), true) && this->buttonIndex == FS_BTN_COPY_FILE_3) { this->buttonIndex = FS_BTN_COPY_QUIT; } @@ -241,7 +242,7 @@ void FileSelect_SelectCopyDest(GameState* thisx) { if (this->stickAdjY >= 30) { this->buttonIndex--; // Instead of removing File 3 entirely, the index is manually adjusted to skip it - if (!CVarGetInteger("gEnhancements.Saving.FileSlot3", true) && + if (!CVarGetInteger(CVAR_ENHANCEMENT("Saving.FileSlot3"), true) && this->buttonIndex == FS_BTN_COPY_FILE_3) { this->buttonIndex = FS_BTN_COPY_FILE_2; } @@ -251,7 +252,7 @@ void FileSelect_SelectCopyDest(GameState* thisx) { this->buttonIndex = FS_BTN_COPY_QUIT; } // Instead of removing File 3 entirely, the index is manually adjusted to skip it - if (!CVarGetInteger("gEnhancements.Saving.FileSlot3", true) && + if (!CVarGetInteger(CVAR_ENHANCEMENT("Saving.FileSlot3"), true) && this->buttonIndex == FS_BTN_COPY_FILE_3) { this->buttonIndex = FS_BTN_COPY_FILE_2; } @@ -267,7 +268,7 @@ void FileSelect_SelectCopyDest(GameState* thisx) { this->buttonIndex++; } // Instead of removing File 3 entirely, the index is manually adjusted to skip it - if (!CVarGetInteger("gEnhancements.Saving.FileSlot3", true) && + if (!CVarGetInteger(CVAR_ENHANCEMENT("Saving.FileSlot3"), true) && this->buttonIndex == FS_BTN_COPY_FILE_3) { this->buttonIndex = FS_BTN_COPY_QUIT; } @@ -828,7 +829,7 @@ void FileSelect_EraseSelect(GameState* thisx) { if (this->stickAdjY >= 30) { this->buttonIndex--; - if (!CVarGetInteger("gEnhancements.Saving.FileSlot3", true) && + if (!CVarGetInteger(CVAR_ENHANCEMENT("Saving.FileSlot3"), true) && this->buttonIndex == FS_BTN_ERASE_FILE_3) { this->buttonIndex = FS_BTN_ERASE_FILE_2; } @@ -837,7 +838,7 @@ void FileSelect_EraseSelect(GameState* thisx) { } } else { this->buttonIndex++; - if (!CVarGetInteger("gEnhancements.Saving.FileSlot3", true) && + if (!CVarGetInteger(CVAR_ENHANCEMENT("Saving.FileSlot3"), true) && this->buttonIndex == FS_BTN_ERASE_FILE_3) { this->buttonIndex = FS_BTN_ERASE_QUIT; } diff --git a/mm/src/overlays/gamestates/ovl_select/z_select.c b/mm/src/overlays/gamestates/ovl_select/z_select.c index ac4a8d6dbc..dcd4ed693b 100644 --- a/mm/src/overlays/gamestates/ovl_select/z_select.c +++ b/mm/src/overlays/gamestates/ovl_select/z_select.c @@ -12,6 +12,7 @@ #include #include "2s2h/DeveloperTools/BetterMapSelect.h" #include "2s2h/GameInteractor/GameInteractor.h" +#include "2s2h/cvar_prefixes.h" void MapSelect_LoadConsoleLogo(MapSelectState* this, u32 entrance, s32 spawn) { s32 unused1 = entrance ? 0 : 0; @@ -1034,7 +1035,7 @@ void MapSelect_DrawMenu(MapSelectState* this) { GfxPrint_Init(&printer); GfxPrint_Open(&printer, POLY_OPA_DISP); - if (CVarGetInteger("gDeveloperTools.BetterMapSelect.Enabled", 0)) { + if (CVarGetInteger(CVAR_DEVELOPER_TOOLS("BetterMapSelect.Enabled"), 0)) { BetterMapSelect_PrintMenu(this, &printer); } else { MapSelect_PrintMenu(this, &printer); @@ -1134,7 +1135,7 @@ void MapSelect_Init(GameState* thisx) { // 2S2H [Enhancement] Init better menu and abort early to retain player form BetterMapSelect_Init(this); - if (CVarGetInteger("gDeveloperTools.BetterMapSelect.Enabled", 0)) { + if (CVarGetInteger(CVAR_DEVELOPER_TOOLS("BetterMapSelect.Enabled"), 0)) { return; } diff --git a/mm/src/overlays/gamestates/ovl_title/z_title.c b/mm/src/overlays/gamestates/ovl_title/z_title.c index 49291f9827..860d4bdb70 100644 --- a/mm/src/overlays/gamestates/ovl_title/z_title.c +++ b/mm/src/overlays/gamestates/ovl_title/z_title.c @@ -15,6 +15,7 @@ #include "BenPort.h" #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" #include "2s2h/GameInteractor/GameInteractor.h" +#include "2s2h/cvar_prefixes.h" #include #include @@ -128,7 +129,7 @@ void ConsoleLogo_Draw(GameState* thisx) { char* logoDL = gNintendo64LogoNDL; char* logoText = gNintendo64LogoTextTex; - if (!CVarGetInteger("gEnhancements.Graphics.AuthenticLogo", 0)) { + if (!CVarGetInteger(CVAR_ENHANCEMENT("Graphics.AuthenticLogo"), 0)) { logoDL = gShipLogoDL; logoText = gLUSLogoTextTex; } @@ -185,7 +186,7 @@ void ConsoleLogo_Draw(GameState* thisx) { 1 << 10, 1 << 10); } - if (!CVarGetInteger("gEnhancements.Graphics.AuthenticLogo", 0)) { + if (!CVarGetInteger(CVAR_ENHANCEMENT("Graphics.AuthenticLogo"), 0)) { ConsoleLogo_PrintBuildInfo(this); } diff --git a/mm/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_item.c b/mm/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_item.c index 3a80dfda80..72cdc9408c 100644 --- a/mm/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_item.c +++ b/mm/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_item.c @@ -9,6 +9,7 @@ #include "2s2h/BenGui/HudEditor.h" #include "2s2h/GameInteractor/GameInteractor.h" +#include "2s2h/cvar_prefixes.h" #include s16 sEquipState = EQUIP_STATE_MAGIC_ARROW_GROW_ORB; @@ -272,7 +273,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { } } // #region 2S2H [Dpad] - if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { for (i = EQUIP_SLOT_D_RIGHT; i <= EQUIP_SLOT_D_UP; i++, j += 4) { if (DPAD_GET_CUR_FORM_BTN_ITEM(i) != ITEM_NONE) { if (DPAD_GET_CUR_FORM_BTN_SLOT(i) < ITEM_NUM_SLOTS) { @@ -650,7 +651,7 @@ void KaleidoScope_UpdateItemCursor(PlayState* play) { } } // #region 2S2H [Dpad] - else if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + else if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { if (CHECK_BTN_ALL(CONTROLLER1(&play->state)->press.button, BTN_DRIGHT)) { if (sPlayerFormItems[GET_PLAYER_FORM] == DPAD_BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_D_RIGHT)) { @@ -701,7 +702,7 @@ void KaleidoScope_UpdateItemCursor(PlayState* play) { pauseCtx->equipTargetCBtn = PAUSE_EQUIP_C_RIGHT; } // #region 2S2H [Dpad] - else if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + else if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { if (CHECK_BTN_ALL(CONTROLLER1(&play->state)->press.button, BTN_DRIGHT)) { if ((Player_GetCurMaskItemId(play) != ITEM_NONE) && (Player_GetCurMaskItemId(play) == DPAD_BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_D_RIGHT))) { @@ -1860,7 +1861,7 @@ void KaleidoScope_UpdateItemEquip(PlayState* play) { Interface_LoadItemIconImpl(play, EQUIP_SLOT_C_RIGHT); } // #region 2S2H [Dpad] - else if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + else if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { KaleidoScope_UpdateDpadItemEquip(play); } // #endregion diff --git a/mm/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_map.c b/mm/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_map.c index a1d254e5bf..015c866a51 100644 --- a/mm/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_map.c +++ b/mm/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_map.c @@ -14,6 +14,7 @@ #include "BenPort.h" #include "2s2h/Enhancements/Songs/Songs.h" +#include "2s2h/cvar_prefixes.h" #include // 2S2H [Port] (and line 26) don't do pointer math and access the list of digits directly. @@ -576,7 +577,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play) { OPEN_DISPS(play->state.gfxCtx); // Use matrix scaling to flip the entire overworld map for mirror world - if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { // Invert culling to counter act the matrix flip gSPSetExtraGeometryMode(POLY_OPA_DISP++, G_EX_INVERT_CULLING); Matrix_Push(); @@ -889,7 +890,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play) { gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, pauseCtx->alpha); - if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { POLY_OPA_DISP = Gfx_DrawTexRectRGBA16(POLY_OPA_DISP, gQuestIconLinkHumanFaceTex, 16, 16, (SCREEN_WIDTH - sWorldMapCursorsRectLeft[n] - 16 - 1), sWorldMapCursorsRectTop[n], 16, 16, 1 << 10, 1 << 10); @@ -903,7 +904,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play) { gDPPipeSync(POLY_OPA_DISP++); - if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { gSPClearExtraGeometryMode(POLY_OPA_DISP++, G_EX_INVERT_CULLING); } @@ -1036,7 +1037,7 @@ void KaleidoScope_UpdateWorldMapCursor(PlayState* play) { PauseContext* pauseCtx = &play->pauseCtx; s16 oldCursorPoint; - if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { Ship_UpdateWorldMapCursorMirrorWorld(play); return; } diff --git a/mm/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_mask.c b/mm/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_mask.c index 757678732c..5374ab1d22 100644 --- a/mm/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_mask.c +++ b/mm/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_mask.c @@ -9,6 +9,7 @@ #include "2s2h/BenGui/HudEditor.h" #include "2s2h/GameInteractor/GameInteractor.h" +#include "2s2h/cvar_prefixes.h" #include s16 sMaskEquipState = EQUIP_STATE_MAGIC_ARROW_GROW_ORB; @@ -220,7 +221,7 @@ void KaleidoScope_DrawMaskSelect(PlayState* play) { } } // #region 2S2H [Dpad] - if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { for (i = EQUIP_SLOT_D_RIGHT; i <= EQUIP_SLOT_D_UP; i++, j += 4) { if (DPAD_GET_CUR_FORM_BTN_ITEM(i) != ITEM_NONE) { if (DPAD_GET_CUR_FORM_BTN_SLOT(i) >= ITEM_NUM_SLOTS) { @@ -591,7 +592,7 @@ void KaleidoScope_UpdateMaskCursor(PlayState* play) { } } // #region 2S2H [Dpad] - else if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + else if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { if (CHECK_BTN_ALL(input->press.button, BTN_DRIGHT)) { if (((Player_GetCurMaskItemId(play) != ITEM_NONE) && (Player_GetCurMaskItemId(play) == DPAD_BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_D_RIGHT))) || @@ -648,7 +649,7 @@ void KaleidoScope_UpdateMaskCursor(PlayState* play) { pauseCtx->equipTargetCBtn = PAUSE_EQUIP_C_RIGHT; } // #region 2S2H [Dpad] - else if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + else if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { if (CHECK_BTN_ALL(input->press.button, BTN_DRIGHT)) { pauseCtx->equipTargetCBtn = PAUSE_EQUIP_D_RIGHT; } else if (CHECK_BTN_ALL(input->press.button, BTN_DLEFT)) { @@ -1231,7 +1232,7 @@ void KaleidoScope_UpdateMaskEquip(PlayState* play) { Interface_LoadItemIconImpl(play, EQUIP_SLOT_C_RIGHT); } // #region 2S2H [Dpad] - else if (CVarGetInteger("gEnhancements.Dpad.DpadEquips", 0)) { + else if (CVarGetInteger(CVAR_ENHANCEMENT("Dpad.DpadEquips"), 0)) { KaleidoScope_UpdateDpadMaskEquip(play); } // #endregion diff --git a/mm/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope_NES.c b/mm/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope_NES.c index 4209fc257b..b53e7e31c9 100644 --- a/mm/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope_NES.c +++ b/mm/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope_NES.c @@ -24,6 +24,7 @@ #include "2s2h_assets.h" #include "2s2h/GameInteractor/GameInteractor.h" +#include "2s2h/cvar_prefixes.h" #include "2s2h/Enhancements/Songs/Songs.h" #include @@ -531,7 +532,7 @@ void KaleidoScope_HandlePageToggles(PlayState* play, Input* input) { InterfaceContext* interfaceCtx = &play->interfaceCtx; // 2S2H [Debug] Restoring input check for debug inventory editor based on OOT debug - if (CVarGetInteger("gDeveloperTools.DebugEnabled", 0) && (pauseCtx->debugEditor == DEBUG_EDITOR_NONE) && + if (CVarGetInteger(CVAR_DEVELOPER_TOOLS("DebugEnabled"), 0) && (pauseCtx->debugEditor == DEBUG_EDITOR_NONE) && CHECK_BTN_ALL(input->press.button, BTN_L)) { pauseCtx->debugEditor = DEBUG_EDITOR_INVENTORY_INIT; return; @@ -952,7 +953,8 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { } } - if (CVarGetInteger("gEnhancements.Saving.PauseSave", 0) || CVarGetInteger("gEnhancements.Kaleido.GameOver", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Saving.PauseSave"), 0) || + CVarGetInteger(CVAR_ENHANCEMENT("Kaleido.GameOver"), 0)) { Gfx_SetupDL42_Opa(gfxCtx); if ((pauseCtx->state == PAUSE_STATE_SAVEPROMPT) || IS_PAUSE_STATE_GAMEOVER(pauseCtx)) { KaleidoScope_UpdatePrompt(play); @@ -2938,7 +2940,7 @@ void KaleidoScope_UpdateCursorSize(PlayState* play) { pauseCtx->cursorWidth = 15.0f; } // Flip the position of the cursor with an additional offset to align with flipped map points - if (CVarGetInteger("gModes.MirroredWorld.State", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Modes.MirroredWorld.State"), 0)) { pauseCtx->cursorX = (pauseCtx->cursorX * -1.0) + 5.0f; } } else { @@ -3568,7 +3570,7 @@ void KaleidoScope_Update(PlayState* play) { pauseCtx->savePromptState = PAUSE_SAVEPROMPT_STATE_RETURN_TO_MENU; } else { Audio_PlaySfx(NA_SE_SY_PIECE_OF_HEART); - if (CVarGetInteger("gEnhancements.Saving.PauseSave", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Saving.PauseSave"), 0)) { gSaveContext.save.isOwlSave = true; // 2S2H [Enhancement] Eventually we might allow them to load from their last entrance, // but we need to first identify and fix edge cases where that doesn't work properly @@ -3584,7 +3586,7 @@ void KaleidoScope_Update(PlayState* play) { 255) { // 2S2H [Enhancement] Don't let them save if they are in debug save pauseCtx->savePromptState = PAUSE_SAVEPROMPT_STATE_5; } else { - if (CVarGetInteger("gEnhancements.Saving.PauseSave", 0)) { + if (CVarGetInteger(CVAR_ENHANCEMENT("Saving.PauseSave"), 0)) { Sram_SetFlashPagesOwlSave( sramCtx, gFlashOwlSaveStartPages[gSaveContext.fileNum * FLASH_SAVE_MAIN_MULTIPLIER],