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();