From af02623456a3401d6e27571d06c5a400c92dfad3 Mon Sep 17 00:00:00 2001 From: RaelCappra Date: Fri, 21 Oct 2022 01:05:08 -0300 Subject: [PATCH] Adds option to lock a cosmetic from being randomized (#1812) Resolves #1809 --- soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp | 6 +++++- soh/soh/UIWidgets.cpp | 10 ++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp b/soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp index 8f2db4c6d..a6bc28d2d 100644 --- a/soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp +++ b/soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp @@ -72,6 +72,10 @@ void GetRandomColorRGB(CosmeticsColorSection* ColorSection, int SectionSize){ ImVec4 colors = Element->ModifiedColor; Color_RGBA8 NewColors = { 0, 0, 0, 255 }; std::string cvarName = Element->CvarName; + std::string cvarLock = cvarName + "Lock"; + if(CVar_GetS32(cvarLock.c_str(), 0)) { + continue; + } std::string Cvar_RBM = cvarName + "RBM"; colors = RANDOMIZE_32(255); NewColors.r = fmin(fmax(colors.x * 255, 0), 255); @@ -893,7 +897,7 @@ void Draw_Placements(){ } } void Draw_HUDButtons(){ - if (CVar_GetS32("gHudColors",0) ==2 ){ + if (CVar_GetS32("gHudColors",0) == 2){ DrawRandomizeResetButton("every buttons", Buttons_section, SECTION_SIZE(Buttons_section)); if (ImGui::CollapsingHeader("A Button colors & A Cursors")) { if (ImGui::BeginTable("tableBTN_A", 1, FlagsTable)) { diff --git a/soh/soh/UIWidgets.cpp b/soh/soh/UIWidgets.cpp index de1bc175e..93f67e5b8 100644 --- a/soh/soh/UIWidgets.cpp +++ b/soh/soh/UIWidgets.cpp @@ -474,6 +474,15 @@ namespace UIWidgets { return changed; } + void DrawLockColorCheckbox(const char* cvarName) { + std::string Cvar_Lock = cvarName; + Cvar_Lock += "Lock"; + s32 lock = CVar_GetS32(Cvar_Lock.c_str(), 0); + std::string FullName = "Lock##" + Cvar_Lock; + EnhancementCheckbox(FullName.c_str(), Cvar_Lock.c_str()); + Tooltip("Prevents this color from being changed upon selecting \"Randomize all\""); + } + void RainbowColor(const char* cvarName, ImVec4* colors) { std::string Cvar_RBM = cvarName; Cvar_RBM += "RBM"; @@ -546,6 +555,7 @@ namespace UIWidgets { } RainbowColor(cvarName, &ColorRGBA); } + DrawLockColorCheckbox(cvarName); ImGui::NewLine(); ImGui::PopItemWidth();