diff --git a/soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp b/soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp index 2351a8165..45e097df7 100644 --- a/soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp +++ b/soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp @@ -32,7 +32,6 @@ extern "C" { #include "objects/object_st/object_st.h" #include "objects/object_gi_boomerang/object_gi_boomerang.h" #include "objects/object_gi_liquid/object_gi_liquid.h" -#include "objects/object_gi_bow/object_gi_bow.h" #include "objects/object_gi_hearts/object_gi_hearts.h" #include "objects/gameplay_keep/gameplay_keep.h" #include "objects/object_gi_sword_1/object_gi_sword_1.h" @@ -47,9 +46,8 @@ extern "C" { #include "objects/object_gjyo_objects/object_gjyo_objects.h" #include "textures/nintendo_rogo_static/nintendo_rogo_static.h" #include "objects/object_gi_rabit_mask/object_gi_rabit_mask.h" -#include "overlays/ovl_Boss_Ganon2/ovl_Boss_Ganon2.h" #include "overlays/ovl_Magic_Wind/ovl_Magic_Wind.h" -#include "textures/nintendo_rogo_static/nintendo_rogo_static.h" + extern PlayState* gPlayState; void ResourceMgr_PatchGfxByName(const char* path, const char* patchName, int index, Gfx instruction); void ResourceMgr_PatchGfxCopyCommandByName(const char* path, const char* patchName, int destinationIndex, int sourceIndex); @@ -74,7 +72,9 @@ std::map groupLabels = { { COSMETICS_GROUP_SWORDS, "Swords" }, { COSMETICS_GROUP_GLOVES, "Gloves" }, { COSMETICS_GROUP_EQUIPMENT, "Equipment" }, - { COSMETICS_GROUP_KEY, "Keys" }, + { COSMETICS_GROUP_KEYRING, "Keyring" }, + { COSMETICS_GROUP_SMALL_KEYS, "Small Keys" }, + { COSMETICS_GROUP_BOSS_KEYS, "Boss Keys" }, { COSMETICS_GROUP_CONSUMABLE, "Consumables" }, { COSMETICS_GROUP_HUD, "HUD" }, { COSMETICS_GROUP_KALEIDO, "Pause Menu" }, @@ -253,34 +253,41 @@ static std::map cosmeticOptions = { COSMETIC_OPTION("Consumable.GoldRupee", "Gold Rupee", COSMETICS_GROUP_CONSUMABLE, ColorRGBA8(255, 190, 55, 255), false, true, true), COSMETIC_OPTION("Consumable.SilverRupee", "Silver Rupee", COSMETICS_GROUP_CONSUMABLE, ColorRGBA8(255, 255, 255, 255), false, true, true), - COSMETIC_OPTION("Key.KeyringRing", "Key Ring Ring", COSMETICS_GROUP_KEY, ColorRGBA8(255, 255, 255, 255), false, true, false), - COSMETIC_OPTION("Key.ForestSmallBase", "Forest Small Key", COSMETICS_GROUP_KEY, ColorRGBA8(255, 255, 255, 255), false, true, false), - COSMETIC_OPTION("Key.ForestEmblem", "Forest Key Gem/Emblem", COSMETICS_GROUP_KEY, ColorRGBA8(255, 0, 0, 255), false, true, true), - COSMETIC_OPTION("Key.ForestBossBase", "Forest Boss Key", COSMETICS_GROUP_KEY, ColorRGBA8(255, 255, 0, 255), false, true, false), - COSMETIC_OPTION("Key.FireSmallBase", "Fire Small Key", COSMETICS_GROUP_KEY, ColorRGBA8(255, 255, 255, 255), false, true, false), - COSMETIC_OPTION("Key.FireEmblem", "Fire Key Gem/Emblem", COSMETICS_GROUP_KEY, ColorRGBA8(255, 0, 0, 255), false, true, true), - COSMETIC_OPTION("Key.FireBossBase", "Fire Boss Key", COSMETICS_GROUP_KEY, ColorRGBA8(255, 255, 0, 255), false, true, false), - COSMETIC_OPTION("Key.WaterSmallBase", "Water Small Key", COSMETICS_GROUP_KEY, ColorRGBA8(255, 255, 255, 255), false, true, false), - COSMETIC_OPTION("Key.WaterEmblem", "Water Key Gem/Emblem", COSMETICS_GROUP_KEY, ColorRGBA8(255, 0, 0, 255), false, true, true), - COSMETIC_OPTION("Key.WaterBossBase", "Water Boss Key", COSMETICS_GROUP_KEY, ColorRGBA8(255, 255, 0, 255), false, true, false), - COSMETIC_OPTION("Key.SpiritSmallBase", "Spirit Small Key", COSMETICS_GROUP_KEY, ColorRGBA8(255, 255, 255, 255), false, true, false), - COSMETIC_OPTION("Key.SpiritEmblem", "Spirit Key Gem/Emblem", COSMETICS_GROUP_KEY, ColorRGBA8(255, 0, 0, 255), false, true, true), - COSMETIC_OPTION("Key.SpiritBossBase", "Spirit Boss Key", COSMETICS_GROUP_KEY, ColorRGBA8(255, 255, 0, 255), false, true, false), - COSMETIC_OPTION("Key.ShadowSmallBase", "Shadow Small Key", COSMETICS_GROUP_KEY, ColorRGBA8(255, 255, 255, 255), false, true, false), - COSMETIC_OPTION("Key.ShadowEmblem", "Shadow Key Gem/Emblem", COSMETICS_GROUP_KEY, ColorRGBA8(255, 0, 0, 255), false, true, true), - COSMETIC_OPTION("Key.ShadowBossBase", "Shadow Boss Key", COSMETICS_GROUP_KEY, ColorRGBA8(255, 255, 0, 255), false, true, false), - COSMETIC_OPTION("Key.WellSmallBase", "Well Small Key", COSMETICS_GROUP_KEY, ColorRGBA8(255, 255, 255, 255), false, true, false), - COSMETIC_OPTION("Key.WellEmblem", "Well Key Emblem", COSMETICS_GROUP_KEY, ColorRGBA8(255, 0, 0, 255), false, true, true), - COSMETIC_OPTION("Key.FortSmallBase", "Fortress Small Key", COSMETICS_GROUP_KEY, ColorRGBA8(255, 255, 255, 255), false, true, false), - COSMETIC_OPTION("Key.FortEmblem", "Fortress Key Emblem", COSMETICS_GROUP_KEY, ColorRGBA8(255, 0, 0, 255), false, true, true), - COSMETIC_OPTION("Key.GTGSmallBase", "GTG Small Key", COSMETICS_GROUP_KEY, ColorRGBA8(255, 255, 255, 255), false, true, false), - COSMETIC_OPTION("Key.GTGEmblem", "GTG Key Emblem", COSMETICS_GROUP_KEY, ColorRGBA8(255, 0, 0, 255), false, true, true), - COSMETIC_OPTION("Key.GanonsSmallBase", "Ganon's Small Key", COSMETICS_GROUP_KEY, ColorRGBA8(255, 255, 255, 255), false, true, false), - COSMETIC_OPTION("Key.GanonsEmblem", "Ganon's Key Gem/Emblem", COSMETICS_GROUP_KEY, ColorRGBA8(255, 0, 0, 255), false, true, true), - COSMETIC_OPTION("Key.GanonsBossBase", "Ganon's Boss Key", COSMETICS_GROUP_KEY, ColorRGBA8(255, 255, 0, 255), false, true, false), - //COSMETIC_OPTION("Key.ChestGameSmallBase", "Chest Game Key", COSMETICS_GROUP_KEY, ColorRGBA8(255, 255, 255, 255), false, true, false), - //COSMETIC_OPTION("Key.ChestGameEmblem", "Chest Game Key Emblem", COSMETICS_GROUP_KEY, ColorRGBA8(255, 0, 0, 255), false, true, true), - COSMETIC_OPTION("Key.Skeleton", "Skeleton Key", COSMETICS_GROUP_KEY, ColorRGBA8(255, 255, 170, 255), false, true, false), + COSMETIC_OPTION("Key.KeyringRing", "Key Ring Ring", COSMETICS_GROUP_KEYRING, ColorRGBA8(255, 255, 255, 255), false, true, false), + COSMETIC_OPTION("Key.ForestSmallBody", "Forest Small Key Body", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(255, 255, 255, 255), false, true, false), + COSMETIC_OPTION("Key.ForestSmallEmblem", "Forest Small Key Emblem", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(4, 195, 46, 255), false, true, false), + COSMETIC_OPTION("Key.ForestBossBody", "Forest Boss Key Body", COSMETICS_GROUP_BOSS_KEYS, ColorRGBA8(255, 255, 0, 255), false, true, false), + COSMETIC_OPTION("Key.ForestBossGem", "Forest Boss Key Gem", COSMETICS_GROUP_BOSS_KEYS, ColorRGBA8(255, 0, 0, 255), false, true, false), + COSMETIC_OPTION("Key.FireSmallBody", "Fire Small Key Body", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(255, 255, 255, 255), false, true, false), + COSMETIC_OPTION("Key.FireSmallEmblem", "Fire Small Key Emblem", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(237, 95, 95, 255), false, true, false), + COSMETIC_OPTION("Key.FireBossBody", "Fire Boss Key Body", COSMETICS_GROUP_BOSS_KEYS, ColorRGBA8(255, 255, 0, 255), false, true, false), + COSMETIC_OPTION("Key.FireBossGem", "Fire Boss Key Gem", COSMETICS_GROUP_BOSS_KEYS, ColorRGBA8(255, 0, 0, 255), false, true, false), + COSMETIC_OPTION("Key.WaterSmallBody", "Water Small Key Body", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(255, 255, 255, 255), false, true, false), + COSMETIC_OPTION("Key.WaterSmallEmblem", "Water Small Key Emblem", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(85, 180, 223, 255), false, true, false), + COSMETIC_OPTION("Key.WaterBossBody", "Water Boss Key Body", COSMETICS_GROUP_BOSS_KEYS, ColorRGBA8(255, 255, 0, 255), false, true, false), + COSMETIC_OPTION("Key.WaterBossGem", "Water Boss Key Gem", COSMETICS_GROUP_BOSS_KEYS, ColorRGBA8(255, 0, 0, 255), false, true, false), + COSMETIC_OPTION("Key.SpiritSmallBody", "Spirit Small Key Body", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(255, 255, 255, 255), false, true, false), + COSMETIC_OPTION("Key.SpiritSmallEmblem", "Spirit Small Key Emblem", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(222, 158, 47, 255), false, true, false), + COSMETIC_OPTION("Key.SpiritBossBody", "Spirit Boss Key Body", COSMETICS_GROUP_BOSS_KEYS, ColorRGBA8(255, 255, 0, 255), false, true, false), + COSMETIC_OPTION("Key.SpiritBossGem", "Spirit Boss Key Gem", COSMETICS_GROUP_BOSS_KEYS, ColorRGBA8(255, 0, 0, 255), false, true, false), + COSMETIC_OPTION("Key.ShadowSmallBody", "Shadow Small Key Body", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(255, 255, 255, 255), false, true, false), + COSMETIC_OPTION("Key.ShadowSmallEmblem", "Shadow Small Key Emblem", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(126, 16, 177, 255), false, true, false), + COSMETIC_OPTION("Key.ShadowBossBody", "Shadow Boss Key Body", COSMETICS_GROUP_BOSS_KEYS, ColorRGBA8(255, 255, 0, 255), false, true, false), + COSMETIC_OPTION("Key.ShadowBossGem", "Shadow Boss Key Gem", COSMETICS_GROUP_BOSS_KEYS, ColorRGBA8(255, 0, 0, 255), false, true, false), + COSMETIC_OPTION("Key.GanonsSmallBody", "Ganons Small Key Body", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(255, 255, 255, 255), false, true, false), + COSMETIC_OPTION("Key.GanonsSmallEmblem", "Ganons Small Key Emblem", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(80, 80, 80, 255), false, true, false), + COSMETIC_OPTION("Key.GanonsBossBody", "Ganons Boss Key Body", COSMETICS_GROUP_BOSS_KEYS, ColorRGBA8(255, 255, 0, 255), false, true, false), + COSMETIC_OPTION("Key.GanonsBossGem", "Ganons Boss Key Gem", COSMETICS_GROUP_BOSS_KEYS, ColorRGBA8(255, 0, 0, 255), false, true, false), + + COSMETIC_OPTION("Key.WellSmallBody", "Well Small Key", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(255, 255, 255, 255), false, true, false), + COSMETIC_OPTION("Key.WellSmallEmblem", "Well Small Key Emblem", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(227, 110, 255, 255), false, true, true), + COSMETIC_OPTION("Key.FortSmallBody", "Fortress Small Key", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(255, 255, 255, 255), false, true, false), + COSMETIC_OPTION("Key.FortSmallEmblem", "Fortress Small Key Emblem",COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(255, 255, 255, 255), false, true, true), + COSMETIC_OPTION("Key.GTGSmallBody", "GTG Small Key", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(255, 255, 255, 255), false, true, false), + COSMETIC_OPTION("Key.GTGSmallEmblem", "GTG Small Key Emblem", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(221, 212, 60, 255), false, true, true), + //COSMETIC_OPTION("Key.ChestGameSmallBody", "Chest Game Key", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(255, 255, 255, 255), false, true, false), + //COSMETIC_OPTION("Key.ChestGameEmblem", "Chest Game Key Emblem", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(255, 0, 0, 255), false, true, true), + COSMETIC_OPTION("Key.Skeleton", "Skeleton Key", COSMETICS_GROUP_SMALL_KEYS, ColorRGBA8(255, 255, 170, 255), false, true, false), COSMETIC_OPTION("HUD.AButton", "A Button", COSMETICS_GROUP_HUD, ColorRGBA8( 90, 90, 255, 255), false, true, false), COSMETIC_OPTION("HUD.BButton", "B Button", COSMETICS_GROUP_HUD, ColorRGBA8( 0, 150, 0, 255), false, true, false), @@ -1475,10 +1482,16 @@ void Reset_Option_Double(const char* Button_Title, const char* name) { void DrawSillyTab() { ImGui::BeginDisabled(CVarGetInteger(CVAR_SETTING("DisableChanges"), 0)); + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + if (UIWidgets::EnhancementCheckbox("Let It Snow", CVAR_GENERAL("LetItSnow"))) { Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame(); } UIWidgets::Tooltip("Makes snow fall, changes chest texture colors to red and green, etc, for December holidays.\nWill reset on restart outside of December 23-25."); + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + if (UIWidgets::EnhancementSliderFloat("Link Body Scale: %.3fx", "##Link_BodyScale", CVAR_COSMETIC("Link.BodyScale.Value"), 0.001f, 0.025f, "", 0.01f, true)) { CVarSetInteger(CVAR_COSMETIC("Link.BodyScale.Changed"), 1); } @@ -1494,31 +1507,64 @@ void DrawSillyTab() { player->actor.scale.z = 0.01f; } } + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + if (UIWidgets::EnhancementSliderFloat("Link Head Scale: %.2fx", "##Link_HeadScale", CVAR_COSMETIC("Link.HeadScale.Value"), 0.4f, 4.0f, "", 1.0f, false)) { CVarSetInteger(CVAR_COSMETIC("Link.HeadScale.Changed"), 1); } Reset_Option_Double("Reset##Link_HeadScale", CVAR_COSMETIC("Link.HeadScale")); + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + if (UIWidgets::EnhancementSliderFloat("Link Sword Scale: %f", "##Link_SwordScale", CVAR_COSMETIC("Link.SwordScale.Value"), 1.0f, 2.5f, "", 1.0f, false)) { CVarSetInteger(CVAR_COSMETIC("Link.SwordScale.Changed"), 1); } Reset_Option_Double("Reset##Link_SwordScale", CVAR_COSMETIC("Link.SwordScale")); + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + UIWidgets::EnhancementSliderFloat("Bunny Hood Length: %f", "##BunnyHood_EarLength", CVAR_COSMETIC("BunnyHood.EarLength"), -300.0f, 1000.0f, "", 0.0f, false); Reset_Option_Single("Reset##BunnyHood_EarLength", CVAR_COSMETIC("BunnyHood.EarLength")); + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + UIWidgets::EnhancementSliderFloat("Bunny Hood Spread: %f", "##BunnyHood_EarSpread", CVAR_COSMETIC("BunnyHood.EarSpread"), -300.0f, 500.0f, "", 0.0f, false); Reset_Option_Single("Reset##BunnyHood_EarSpread", CVAR_COSMETIC("BunnyHood.EarSpread")); + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + UIWidgets::EnhancementSliderFloat("Goron Neck Length: %f", "##Goron_NeckLength", CVAR_COSMETIC("Goron.NeckLength"), 0.0f, 5000.0f, "", 0.0f, false); Reset_Option_Single("Reset##Goron_NeckLength", CVAR_COSMETIC("Goron.NeckLength")); + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + UIWidgets::EnhancementCheckbox("Unfix Goron Spin", CVAR_COSMETIC("UnfixGoronSpin")); + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + UIWidgets::EnhancementSliderFloat("Fairies Size: %f", "##Fairies_Size", CVAR_COSMETIC("Fairies.Size"), 0.25f, 5.0f, "", 1.0f, false); Reset_Option_Single("Reset##Fairies_Size", CVAR_COSMETIC("Fairies.Size")); + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + UIWidgets::EnhancementSliderFloat("N64 Logo Spin Speed: %f", "##N64Logo_SpinSpeed", CVAR_COSMETIC("N64Logo.SpinSpeed"), 0.25f, 5.0f, "", 1.0f, false); Reset_Option_Single("Reset##N64Logo_SpinSpeed", CVAR_COSMETIC("N64Logo.SpinSpeed")); + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + UIWidgets::EnhancementSliderFloat("Moon Size: %f", "##Moon_Size", CVAR_COSMETIC("Moon.Size"), 0.5f, 2.0f, "", 1.0f, false); Reset_Option_Single("Reset##Moon_Size", CVAR_COSMETIC("Moon.Size")); + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + if (UIWidgets::EnhancementSliderFloat("Kak Windmill Speed: %f", "##Kak_Windmill_Speed", CVAR_COSMETIC("Kak.Windmill_Speed.Value"), 100.0f, 6000.0f, "", 100.0f, false)) { CVarSetInteger(CVAR_COSMETIC("Kak.Windmill_Speed.Changed"), 1); } Reset_Option_Double("Reset##Kak_Windmill_Speed", CVAR_COSMETIC("Kak.Windmill_Speed")); + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + ImGui::EndDisabled(); } @@ -1748,6 +1794,7 @@ void DrawCosmeticGroup(CosmeticGroup cosmeticGroup) { DrawCosmeticRow(cosmeticOption); } } + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); } static const char* colorSchemes[2] = { @@ -1755,92 +1802,95 @@ static const char* colorSchemes[2] = { "Gamecube", }; -void CosmeticsEditorWindow::ApplyDungeonEmblemColors(){ - CVarSetColor(cosmeticOptions["Key.ForestEmblem"].cvar, {0, 255, 0, 255}); - CVarSetInteger(cosmeticOptions["Key.ForestEmblem"].changedCvar, 1); - cosmeticOptions["Key.ForestEmblem"].currentColor = {0, 255/255.0f, 0, 255/255.0f}; +void CosmeticsEditorWindow::ApplyDungeonKeyColors() { + // Keyring + ResetColor(cosmeticOptions.at("Key.KeyringRing")); - CVarSetColor(cosmeticOptions["Key.FireEmblem"].cvar, {255, 30, 0, 255}); - CVarSetInteger(cosmeticOptions["Key.FireEmblem"].changedCvar, 1); - cosmeticOptions["Key.FireEmblem"].currentColor = {255/255.0f, 30/255.0f, 0, 255/255.0f}; + // Forest Temple + CVarSetColor(cosmeticOptions["Key.ForestSmallBody"].cvar, { 4, 195, 46, 255 }); + CVarSetInteger(cosmeticOptions["Key.ForestSmallBody"].changedCvar, 1); + cosmeticOptions["Key.ForestSmallBody"].currentColor = { 4 / 255.0f, 195 / 255.0f, 46 / 255.0f, 255 / 255.0f }; + ResetColor(cosmeticOptions.at("Key.ForestSmallEmblem")); + + ResetColor(cosmeticOptions.at("Key.ForestBossBody")); + CVarSetColor(cosmeticOptions["Key.ForestBossGem"].cvar, { 0, 255, 0, 255 }); + CVarSetInteger(cosmeticOptions["Key.ForestBossGem"].changedCvar, 1); + cosmeticOptions["Key.ForestBossGem"].currentColor = { 0, 255 / 255.0f, 0, 255 / 255.0f }; + + // Fire Temple + CVarSetColor(cosmeticOptions["Key.FireSmallBody"].cvar, { 237, 95, 95, 255 }); + CVarSetInteger(cosmeticOptions["Key.FireSmallBody"].changedCvar, 1); + cosmeticOptions["Key.FireSmallBody"].currentColor = { 237 / 255.0f, 95 / 255.0f, 95 / 255.0f, 255 / 255.0f }; + ResetColor(cosmeticOptions.at("Key.FireSmallEmblem")); + + ResetColor(cosmeticOptions.at("Key.FireBossBody")); + CVarSetColor(cosmeticOptions["Key.FireBossGem"].cvar, { 255, 30, 0, 255 }); + CVarSetInteger(cosmeticOptions["Key.FireBossGem"].changedCvar, 1); + cosmeticOptions["Key.FireBossGem"].currentColor = { 255 / 255.0f, 30 / 255.0f, 0, 255 / 255.0f }; + + // Water Temple + CVarSetColor(cosmeticOptions["Key.WaterSmallBody"].cvar, { 85, 180, 223, 255 }); + CVarSetInteger(cosmeticOptions["Key.WaterSmallBody"].changedCvar, 1); + cosmeticOptions["Key.WaterSmallBody"].currentColor = { 85 / 255.0f, 180 / 255.0f, 223 / 255.0f, 255 / 255.0f }; + ResetColor(cosmeticOptions.at("Key.WaterSmallEmblem")); + + ResetColor(cosmeticOptions.at("Key.WaterBossBody")); + CVarSetColor(cosmeticOptions["Key.WaterBossGem"].cvar, { 0, 137, 255, 255 }); + CVarSetInteger(cosmeticOptions["Key.WaterBossGem"].changedCvar, 1); + cosmeticOptions["Key.WaterBossGem"].currentColor = { 0, 137 / 255.0f, 255 / 255.0f, 255 / 255.0f }; + + // Spirit Temple + CVarSetColor(cosmeticOptions["Key.SpiritSmallBody"].cvar, { 222, 158, 47, 255 }); + CVarSetInteger(cosmeticOptions["Key.SpiritSmallBody"].changedCvar, 1); + cosmeticOptions["Key.SpiritSmallBody"].currentColor = { 222 / 255.0f, 158 / 255.0f, 47 / 255.0f, 255 / 255.0f }; + ResetColor(cosmeticOptions.at("Key.SpiritSmallEmblem")); + + ResetColor(cosmeticOptions.at("Key.SpiritBossBody")); + CVarSetColor(cosmeticOptions["Key.SpiritBossGem"].cvar, { 255, 85, 0, 255 }); + CVarSetInteger(cosmeticOptions["Key.SpiritBossGem"].changedCvar, 1); + cosmeticOptions["Key.SpiritBossGem"].currentColor = { 255 / 255.0f, 85 / 255.0f, 0, 255 / 255.0f }; + + // Shadow Temple + CVarSetColor(cosmeticOptions["Key.ShadowSmallBody"].cvar, { 126, 16, 177, 255 }); + CVarSetInteger(cosmeticOptions["Key.ShadowSmallBody"].changedCvar, 1); + cosmeticOptions["Key.ShadowSmallBody"].currentColor = { 126 / 255.0f, 16 / 255.0f, 177 / 255.0f, 255 / 255.0f }; + ResetColor(cosmeticOptions.at("Key.ShadowSmallEmblem")); + + ResetColor(cosmeticOptions.at("Key.ShadowBossBody")); + CVarSetColor(cosmeticOptions["Key.ShadowBossGem"].cvar, { 153, 0, 255, 255 }); + CVarSetInteger(cosmeticOptions["Key.ShadowBossGem"].changedCvar, 1); + cosmeticOptions["Key.ShadowBossGem"].currentColor = { 153 / 255.0f, 0, 255 / 255.0f, 255 / 255.0f }; + + // Ganon's Tower + CVarSetColor(cosmeticOptions["Key.GanonsSmallBody"].cvar, { 80, 80, 80, 255 }); + CVarSetInteger(cosmeticOptions["Key.GanonsSmallBody"].changedCvar, 1); + cosmeticOptions["Key.GanonsSmallBody"].currentColor = { 80 / 255.0f, 80 / 255.0f, 80 / 255.0f, 255 / 255.0f }; + ResetColor(cosmeticOptions.at("Key.GanonsSmallEmblem")); + + CVarSetColor(cosmeticOptions["Key.GanonsBossBody"].cvar, { 80, 80, 80, 255 }); + CVarSetInteger(cosmeticOptions["Key.GanonsBossBody"].changedCvar, 1); + cosmeticOptions["Key.GanonsBossBody"].currentColor = { 80 / 255.0f, 80 / 255.0f, 80 / 255.0f, 255 / 255.0f }; + CVarSetColor(cosmeticOptions["Key.GanonsBossGem"].cvar, { 255, 0, 0, 255 }); + CVarSetInteger(cosmeticOptions["Key.GanonsBossGem"].changedCvar, 1); + cosmeticOptions["Key.GanonsBossGem"].currentColor = { 255 / 255.0f, 0, 0, 255 / 255.0f }; - CVarSetColor(cosmeticOptions["Key.WaterEmblem"].cvar, {0, 137, 255, 255}); - CVarSetInteger(cosmeticOptions["Key.WaterEmblem"].changedCvar, 1); - cosmeticOptions["Key.WaterEmblem"].currentColor = {0, 137/255.0f, 255/255.0f, 255/255.0f}; + // Bottom of the Well + CVarSetColor(cosmeticOptions["Key.WellSmallBody"].cvar, { 227, 110, 255, 255 }); + CVarSetInteger(cosmeticOptions["Key.WellSmallBody"].changedCvar, 1); + cosmeticOptions["Key.WellSmallBody"].currentColor = { 227 / 255.0f, 110 / 255.0f, 255 / 255.0f, 255 / 255.0f }; + ResetColor(cosmeticOptions.at("Key.WellSmallEmblem")); + + // Gerudo Training Ground + CVarSetColor(cosmeticOptions["Key.GTGSmallBody"].cvar, { 221, 212, 60, 255 }); + CVarSetInteger(cosmeticOptions["Key.GTGSmallBody"].changedCvar, 1); + cosmeticOptions["Key.GTGSmallBody"].currentColor = { 221 / 255.0f, 212 / 255.0f, 60 / 255.0f, 255 / 255.0f }; + ResetColor(cosmeticOptions.at("Key.GTGSmallEmblem")); - CVarSetColor(cosmeticOptions["Key.SpiritEmblem"].cvar, {255, 85, 0, 255}); - CVarSetInteger(cosmeticOptions["Key.SpiritEmblem"].changedCvar, 1); - cosmeticOptions["Key.SpiritEmblem"].currentColor = {255/255.0f, 85/255.0f, 0, 255/255.0f}; - - CVarSetColor(cosmeticOptions["Key.ShadowEmblem"].cvar, {153, 0, 255, 255}); - CVarSetInteger(cosmeticOptions["Key.ShadowEmblem"].changedCvar, 1); - cosmeticOptions["Key.ShadowEmblem"].currentColor = {153/255.0f, 0, 255/255.0f, 255/255.0f}; - - CVarSetColor(cosmeticOptions["Key.WellEmblem"].cvar, { 255, 0, 188, 255}); - CVarSetInteger(cosmeticOptions["Key.WellEmblem"].changedCvar, 1); - cosmeticOptions["Key.WellEmblem"].currentColor = {255/255.0f, 0, 188/255.0f, 255/255.0f}; - - CVarSetColor(cosmeticOptions["Key.GTGEmblem"].cvar, {255, 255, 0, 255}); - CVarSetInteger(cosmeticOptions["Key.GTGEmblem"].changedCvar, 1); - cosmeticOptions["Key.GTGEmblem"].currentColor = {255/255.0f, 255/255.0f, 0, 255/255.0f}; - - CVarSetColor(cosmeticOptions["Key.FortEmblem"].cvar, {255, 255, 203, 255}); - CVarSetInteger(cosmeticOptions["Key.FortEmblem"].changedCvar, 1); - cosmeticOptions["Key.FortEmblem"].currentColor = { 255/255.0f, 255/255.0f, 203/255.0f, 255/255.0f}; - - CVarSetColor(cosmeticOptions["Key.GanonsEmblem"].cvar, {255, 0, 0, 255}); - CVarSetInteger(cosmeticOptions["Key.GanonsEmblem"].changedCvar, 1); - cosmeticOptions["Key.GanonsEmblem"].currentColor = {255/255.0f, 0, 0, 255/255.0f}; - - //CVarSetColor(cosmeticOptions["Key.ChestGameEmblem"].cvar, {255, 255, 0, 255}); - //CVarSetInteger(cosmeticOptions["Key.ChestGameEmblem"].changedCvar, 1); - //cosmeticOptions["Key.ChestGameEmblem"].currentColor = {255/255.0f, 255/255.0f, 0, 255/255.0f}; -} - -void CosmeticsEditorWindow::ApplyDungeonBaseColors(){ - CVarSetColor(cosmeticOptions["Key.ForestSmallBase"].cvar, {4, 195, 46, 255}); - CVarSetInteger(cosmeticOptions["Key.ForestSmallBase"].changedCvar, 1); - cosmeticOptions["Key.ForestSmallBase"].currentColor = {4/255.0f, 195/255.0f, 46/255.0f, 255/255.0f}; - - CVarSetColor(cosmeticOptions["Key.FireSmallBase"].cvar, {237, 95, 95, 255}); - CVarSetInteger(cosmeticOptions["Key.FireSmallBase"].changedCvar, 1); - cosmeticOptions["Key.FireSmallBase"].currentColor = {237/255.0f, 95/255.0f, 95/255.0f, 255/255.0f}; - - CVarSetColor(cosmeticOptions["Key.WaterSmallBase"].cvar, {85, 180, 223, 255}); - CVarSetInteger(cosmeticOptions["Key.WaterSmallBase"].changedCvar, 1); - cosmeticOptions["Key.WaterSmallBase"].currentColor = {85/255.0f, 180/255.0f, 223/255.0f, 255/255.0f}; - - CVarSetColor(cosmeticOptions["Key.SpiritSmallBase"].cvar, {222, 158, 47, 255}); - CVarSetInteger(cosmeticOptions["Key.SpiritSmallBase"].changedCvar, 1); - cosmeticOptions["Key.SpiritSmallBase"].currentColor = {222/255.0f, 158/255.0f, 47/255.0f, 255/255.0f}; - - CVarSetColor(cosmeticOptions["Key.ShadowSmallBase"].cvar, {126, 16, 177, 255}); - CVarSetInteger(cosmeticOptions["Key.ShadowSmallBase"].changedCvar, 1); - cosmeticOptions["Key.ShadowSmallBase"].currentColor = {126/255.0f, 16/255.0f, 177/255.0f, 255/255.0f}; - - CVarSetColor(cosmeticOptions["Key.WellSmallBase"].cvar, {227, 110, 255, 255}); - CVarSetInteger(cosmeticOptions["Key.WellSmallBase"].changedCvar, 1); - cosmeticOptions["Key.WellSmallBase"].currentColor = {227/255.0f, 110/255.0f, 255/255.0f, 255/255.0f}; - - CVarSetColor(cosmeticOptions["Key.GTGSmallBase"].cvar, {221, 212, 60, 255}); - CVarSetInteger(cosmeticOptions["Key.GTGSmallBase"].changedCvar, 1); - cosmeticOptions["Key.GTGSmallBase"].currentColor = {221/255.0f, 212/255.0f, 60/255.0f, 255/255.0f}; - - CVarSetColor(cosmeticOptions["Key.FortSmallBase"].cvar, {255, 255, 255, 255}); - CVarSetInteger(cosmeticOptions["Key.FortSmallBase"].changedCvar, 1); - cosmeticOptions["Key.FortSmallBase"].currentColor = {255/255.0f, 255/255.0f, 255/255.0f, 255/255.0f}; - - CVarSetColor(cosmeticOptions["Key.GanonsSmallBase"].cvar, {80, 80, 80, 255}); - CVarSetInteger(cosmeticOptions["Key.GanonsSmallBase"].changedCvar, 1); - cosmeticOptions["Key.GanonsSmallBase"].currentColor = {80/255.0f, 80/255.0f, 80/255.0f, 255/255.0f}; - - CVarSetColor(cosmeticOptions["Key.GanonsBossBase"].cvar, {80, 80, 80, 255}); - CVarSetInteger(cosmeticOptions["Key.GanonsBossBase"].changedCvar, 1); - cosmeticOptions["Key.GanonsBossBase"].currentColor = {80/255.0f, 80/255.0f, 80/255.0f, 255/255.0f}; - - //CVarSetColor(cosmeticOptions["Key.ChestGameSmallBase"].cvar, {255, 255, 0, 255}); - //CVarSetInteger(cosmeticOptions["Key.ChestGameSmallBase"].changedCvar, 1); - //cosmeticOptions["Key.ChestGameSmallBase"].currentColor = {255/255.0f, 255/255.0f, 0, 255/255.0f}; + // Gerudo Fortress + CVarSetColor(cosmeticOptions["Key.FortSmallBody"].cvar, { 255, 255, 255, 255 }); + CVarSetInteger(cosmeticOptions["Key.FortSmallBody"].changedCvar, 1); + cosmeticOptions["Key.FortSmallBody"].currentColor = { 255 / 255.0f, 255 / 255.0f, 255 / 255.0f, 255 / 255.0f }; + ResetColor(cosmeticOptions.at("Key.FortSmallEmblem")); } void CosmeticsEditorWindow::DrawElement() { @@ -1853,15 +1903,6 @@ void CosmeticsEditorWindow::DrawElement() { "For example, if you have custom Link model, then the Link's Hair color option will most likely not apply." ); - if (ImGui::Button("Apply Dungeon Gem/Emblem Colors", ImVec2(ImGui::GetContentRegionAvail().x / 2, 30.0f))) { - ApplyDungeonEmblemColors(); - Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame(); - } - ImGui::SameLine(); - if (ImGui::Button("Apply Dungeon Base Colors", ImVec2(ImGui::GetContentRegionAvail().x, 30.0f))) { - ApplyDungeonBaseColors(); - Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame(); - } if (CVarGetInteger(CVAR_COSMETIC("AdvancedMode"), 0)) { if (ImGui::Button("Lock All Advanced", ImVec2(ImGui::GetContentRegionAvail().x / 2, 30.0f))) { for (auto& [id, cosmeticOption] : cosmeticOptions) { @@ -1950,16 +1991,40 @@ void CosmeticsEditorWindow::DrawElement() { if (ImGui::BeginTabBar("CosmeticsContextTabBar", ImGuiTabBarFlags_NoCloseWithMiddleMouseButton)) { if (ImGui::BeginTabItem("Link & Items")) { + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + DrawCosmeticGroup(COSMETICS_GROUP_LINK); DrawCosmeticGroup(COSMETICS_GROUP_GLOVES); DrawCosmeticGroup(COSMETICS_GROUP_MIRRORSHIELD); DrawCosmeticGroup(COSMETICS_GROUP_EQUIPMENT); DrawCosmeticGroup(COSMETICS_GROUP_SWORDS); - DrawCosmeticGroup(COSMETICS_GROUP_KEY); DrawCosmeticGroup(COSMETICS_GROUP_CONSUMABLE); ImGui::EndTabItem(); } + + if (ImGui::BeginTabItem("Keys")) { + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + + if (ImGui::Button("Give all keys dungeon-specific colors", ImVec2(300.0f, 30.0f))) { + ApplyDungeonKeyColors(); + Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame(); + } + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + + DrawCosmeticGroup(COSMETICS_GROUP_KEYRING); + DrawCosmeticGroup(COSMETICS_GROUP_SMALL_KEYS); + DrawCosmeticGroup(COSMETICS_GROUP_BOSS_KEYS); + + ImGui::EndTabItem(); + } + if (ImGui::BeginTabItem("Effects")) { + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + DrawCosmeticGroup(COSMETICS_GROUP_MAGIC); DrawCosmeticGroup(COSMETICS_GROUP_ARROWS); DrawCosmeticGroup(COSMETICS_GROUP_SPIN_ATTACK); @@ -1973,9 +2038,15 @@ void CosmeticsEditorWindow::DrawElement() { CVarClear(CVAR_COSMETIC("Trails.Duration.Changed")); Ship::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesNextFrame(); } + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + ImGui::EndTabItem(); } if (ImGui::BeginTabItem("World & NPCs")) { + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + DrawCosmeticGroup(COSMETICS_GROUP_WORLD); DrawCosmeticGroup(COSMETICS_GROUP_NAVI); DrawCosmeticGroup(COSMETICS_GROUP_IVAN); @@ -1987,6 +2058,9 @@ void CosmeticsEditorWindow::DrawElement() { ImGui::EndTabItem(); } if (ImGui::BeginTabItem("HUD")) { + + UIWidgets::PaddedSeparator(true, true, 2.0f, 2.0f); + DrawCosmeticGroup(COSMETICS_GROUP_HUD); DrawCosmeticGroup(COSMETICS_GROUP_TITLE); ImGui::EndTabItem(); diff --git a/soh/soh/Enhancements/cosmetics/CosmeticsEditor.h b/soh/soh/Enhancements/cosmetics/CosmeticsEditor.h index c9d395791..c9a28ef29 100644 --- a/soh/soh/Enhancements/cosmetics/CosmeticsEditor.h +++ b/soh/soh/Enhancements/cosmetics/CosmeticsEditor.h @@ -9,7 +9,9 @@ typedef enum { COSMETICS_GROUP_SWORDS, COSMETICS_GROUP_GLOVES, COSMETICS_GROUP_EQUIPMENT, - COSMETICS_GROUP_KEY, + COSMETICS_GROUP_KEYRING, + COSMETICS_GROUP_SMALL_KEYS, + COSMETICS_GROUP_BOSS_KEYS, COSMETICS_GROUP_CONSUMABLE, COSMETICS_GROUP_HUD, COSMETICS_GROUP_KALEIDO, @@ -63,8 +65,7 @@ class CosmeticsEditorWindow : public Ship::GuiWindow { void InitElement() override; void DrawElement() override; - void ApplyDungeonEmblemColors(); - void ApplyDungeonBaseColors(); + void ApplyDungeonKeyColors(); void UpdateElement() override {}; }; #endif //__cplusplus \ No newline at end of file diff --git a/soh/soh/Enhancements/debugconsole.cpp b/soh/soh/Enhancements/debugconsole.cpp index 9e4b4b0e4..903984f12 100644 --- a/soh/soh/Enhancements/debugconsole.cpp +++ b/soh/soh/Enhancements/debugconsole.cpp @@ -1297,7 +1297,9 @@ static constexpr std::array, COSMETICS_GRO {"swords", COSMETICS_GROUP_SWORDS}, {"gloves", COSMETICS_GROUP_GLOVES}, {"equipment", COSMETICS_GROUP_EQUIPMENT}, - {"key", COSMETICS_GROUP_KEY}, + {"keyring", COSMETICS_GROUP_KEYRING}, + {"small_keys", COSMETICS_GROUP_SMALL_KEYS }, + {"boss_keys", COSMETICS_GROUP_BOSS_KEYS }, {"consumable", COSMETICS_GROUP_CONSUMABLE}, {"hud", COSMETICS_GROUP_HUD}, {"kaleido", COSMETICS_GROUP_KALEIDO}, diff --git a/soh/soh/Enhancements/randomizer/draw.cpp b/soh/soh/Enhancements/randomizer/draw.cpp index c45719e95..0a1e0d46a 100644 --- a/soh/soh/Enhancements/randomizer/draw.cpp +++ b/soh/soh/Enhancements/randomizer/draw.cpp @@ -38,32 +38,45 @@ extern PlayState* gPlayState; extern SaveContext gSaveContext; } -const char* SmallBaseCvarValue[10] = { - CVAR_COSMETIC("Key.ForestSmallBase.Value"), - CVAR_COSMETIC("Key.FireSmallBase.Value"), - CVAR_COSMETIC("Key.WaterSmallBase.Value"), - CVAR_COSMETIC("Key.SpiritSmallBase.Value"), - CVAR_COSMETIC("Key.ShadowSmallBase.Value"), - CVAR_COSMETIC("Key.WellSmallBase.Value"), - CVAR_COSMETIC("Key.GTGSmallBase.Value"), - CVAR_COSMETIC("Key.FortSmallBase.Value"), - CVAR_COSMETIC("Key.GanonsSmallBase.Value"), - CVAR_COSMETIC("Key.ChestGameSmallBase.Value"), +const char* SmallBodyCvarValue[10] = { + CVAR_COSMETIC("Key.ForestSmallBody.Value"), + CVAR_COSMETIC("Key.FireSmallBody.Value"), + CVAR_COSMETIC("Key.WaterSmallBody.Value"), + CVAR_COSMETIC("Key.SpiritSmallBody.Value"), + CVAR_COSMETIC("Key.ShadowSmallBody.Value"), + CVAR_COSMETIC("Key.WellSmallBody.Value"), + CVAR_COSMETIC("Key.GTGSmallBody.Value"), + CVAR_COSMETIC("Key.FortSmallBody.Value"), + CVAR_COSMETIC("Key.GanonsSmallBody.Value"), + CVAR_COSMETIC("Key.ChestGameSmallBody.Value"), }; const char* SmallEmblemCvarValue[10] = { - CVAR_COSMETIC("Key.ForestEmblem.Value"), - CVAR_COSMETIC("Key.FireEmblem.Value"), - CVAR_COSMETIC("Key.WaterEmblem.Value"), - CVAR_COSMETIC("Key.SpiritEmblem.Value"), - CVAR_COSMETIC("Key.ShadowEmblem.Value"), - CVAR_COSMETIC("Key.WellEmblem.Value"), - CVAR_COSMETIC("Key.GTGEmblem.Value"), - CVAR_COSMETIC("Key.FortEmblem.Value"), - CVAR_COSMETIC("Key.GanonsEmblem.Value"), + CVAR_COSMETIC("Key.ForestSmallEmblem.Value"), + CVAR_COSMETIC("Key.FireSmallEmblem.Value"), + CVAR_COSMETIC("Key.WaterSmallEmblem.Value"), + CVAR_COSMETIC("Key.SpiritSmallEmblem.Value"), + CVAR_COSMETIC("Key.ShadowSmallEmblem.Value"), + CVAR_COSMETIC("Key.WellSmallEmblem.Value"), + CVAR_COSMETIC("Key.GTGSmallEmblem.Value"), + CVAR_COSMETIC("Key.FortSmallEmblem.Value"), + CVAR_COSMETIC("Key.GanonsSmallEmblem.Value"), CVAR_COSMETIC("Key.ChestGameEmblem.Value"), }; +Color_RGB8 SmallEmblemDefaultValue[10] = { + { 4, 195, 46 }, // Forest + { 237, 95, 95 }, // Fire + { 85, 180, 223 }, // Water + { 222, 158, 47 }, // Spirit + { 126, 16, 177 }, // Shadow + { 227, 110, 255 }, // Well + { 221, 212, 60 }, // GTG + { 255, 255, 255 }, // Fortress + { 80, 80, 80 }, // Ganons + { 255, 255, 255 }, // Chest Game +}; + extern "C" u8 Randomizer_GetSettingValue(RandomizerSettingKey randoSettingKey); extern "C" void Randomizer_DrawSmallKey(PlayState* play, GetItemEntry* getItemEntry) { @@ -91,7 +104,7 @@ extern "C" void Randomizer_DrawSmallKey(PlayState* play, GetItemEntry* getItemEn G_MTX_MODELVIEW | G_MTX_LOAD); Color_RGB8 keyColor = { 255, 255, 255 }; - keyColor = CVarGetColor24(SmallBaseCvarValue[slot], keyColor); + keyColor = CVarGetColor24(SmallBodyCvarValue[slot], keyColor); if (isCustomKeysEnabled) { gDPSetEnvColor(POLY_OPA_DISP++, keyColor.r, keyColor.g, keyColor.b, 255); @@ -99,7 +112,7 @@ extern "C" void Randomizer_DrawSmallKey(PlayState* play, GetItemEntry* getItemEn Gfx_SetupDL_25Xlu(play->state.gfxCtx); - Color_RGB8 emblemColor = { 255, 0, 0 }; + Color_RGB8 emblemColor = SmallEmblemDefaultValue[slot]; emblemColor = CVarGetColor24(SmallEmblemCvarValue[slot], emblemColor); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__), @@ -166,12 +179,12 @@ extern "C" void Randomizer_DrawBossKey(PlayState* play, GetItemEntry* getItemEnt s16 slot = getItemEntry->getItemId - RG_FOREST_TEMPLE_BOSS_KEY; std::string CvarValue[6] = { - "gCosmetics.Key.Forest", - "gCosmetics.Key.Fire", - "gCosmetics.Key.Water", - "gCosmetics.Key.Spirit", - "gCosmetics.Key.Shadow", - "gCosmetics.Key.Ganons", + "gCosmetics.Key.ForestBoss", + "gCosmetics.Key.FireBoss", + "gCosmetics.Key.WaterBoss", + "gCosmetics.Key.SpiritBoss", + "gCosmetics.Key.ShadowBoss", + "gCosmetics.Key.GanonsBoss", }; Gfx* CustomdLists[] = { @@ -192,13 +205,13 @@ extern "C" void Randomizer_DrawBossKey(PlayState* play, GetItemEntry* getItemEnt Color_RGB8 keyColor = { 255, 255, 0 }; //Supposed to use CVAR_COSMETIC but I can't figure out the syntax - keyColor = CVarGetColor24((CvarValue[slot] + "BossBase.Value").c_str(), keyColor); + keyColor = CVarGetColor24((CvarValue[slot] + "Body.Value").c_str(), keyColor); if (isCustomKeysEnabled){ gDPSetEnvColor(POLY_OPA_DISP++, keyColor.r, keyColor.g, keyColor.b, 255); gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gBossKeyCustomDL); } else { - if (CVarGetInteger((CvarValue[slot] + "BossBase.Changed").c_str(), false)){ + if (CVarGetInteger((CvarValue[slot] + "Body.Changed").c_str(), false)){ gDPSetGrayscaleColor(POLY_OPA_DISP++, keyColor.r, keyColor.g, keyColor.b, 255); gSPGrayscale(POLY_OPA_DISP++, true); gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gGiBossKeyDL); @@ -213,15 +226,15 @@ extern "C" void Randomizer_DrawBossKey(PlayState* play, GetItemEntry* getItemEnt gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__), G_MTX_MODELVIEW | G_MTX_LOAD); - Color_RGB8 emblemColor = { 255, 0, 0 }; - emblemColor = CVarGetColor24((CvarValue[slot] + "Emblem.Value").c_str(), emblemColor); + Color_RGB8 gemColor = { 255, 0, 0 }; + gemColor = CVarGetColor24((CvarValue[slot] + "Gem.Value").c_str(), gemColor); if (isCustomKeysEnabled){ - gDPSetEnvColor(POLY_XLU_DISP++, emblemColor.r, emblemColor.g, emblemColor.b, 255); + gDPSetEnvColor(POLY_XLU_DISP++, gemColor.r, gemColor.g, gemColor.b, 255); gSPDisplayList(POLY_XLU_DISP++, CustomdLists[slot]); } else { - if (CVarGetInteger((CvarValue[slot] + "Emblem.Changed").c_str(), false)){ - gDPSetGrayscaleColor(POLY_XLU_DISP++, emblemColor.r, emblemColor.g, emblemColor.b, 255); + if (CVarGetInteger((CvarValue[slot] + "Gem.Changed").c_str(), false)){ + gDPSetGrayscaleColor(POLY_XLU_DISP++, gemColor.r, gemColor.g, gemColor.b, 255); gSPGrayscale(POLY_XLU_DISP++, true); gSPDisplayList(POLY_XLU_DISP++, (Gfx*)gGiBossKeyGemDL); gSPGrayscale(POLY_XLU_DISP++, false); @@ -296,7 +309,7 @@ extern "C" void Randomizer_DrawKeyRing(PlayState* play, GetItemEntry* getItemEnt Gfx_SetupDL_25Opa(play->state.gfxCtx); Color_RGB8 keyColor = { 255, 255, 255 }; - keyColor = CVarGetColor24(SmallBaseCvarValue[slot], keyColor); + keyColor = CVarGetColor24(SmallBodyCvarValue[slot], keyColor); if (isCustomKeysEnabled) { gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__), @@ -314,7 +327,7 @@ extern "C" void Randomizer_DrawKeyRing(PlayState* play, GetItemEntry* getItemEnt gDPSetEnvColor(POLY_OPA_DISP++, ringColor.r, ringColor.g, ringColor.b, 255); gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gKeyringRingDL); - Color_RGB8 emblemColor = { 255, 0, 0 }; + Color_RGB8 emblemColor = SmallEmblemDefaultValue[slot]; emblemColor = CVarGetColor24(SmallEmblemCvarValue[slot], emblemColor); Gfx_SetupDL_25Opa(play->state.gfxCtx);