From 795a10f0eb3d8463de59b0a785400c9605cc0cf8 Mon Sep 17 00:00:00 2001 From: Thomas Achatz <30968528+shadeRed@users.noreply.github.com> Date: Wed, 30 Mar 2022 20:34:16 -0500 Subject: [PATCH] dynamic_wallet_icon cvar --- libultraship/libultraship/GameSettings.cpp | 4 ++ libultraship/libultraship/GameSettings.h | 1 + libultraship/libultraship/SohImGuiImpl.cpp | 5 +++ soh/src/code/z_parameter.c | 45 +++++++++++++--------- 4 files changed, 37 insertions(+), 18 deletions(-) diff --git a/libultraship/libultraship/GameSettings.cpp b/libultraship/libultraship/GameSettings.cpp index c638468af..16aa14ecc 100644 --- a/libultraship/libultraship/GameSettings.cpp +++ b/libultraship/libultraship/GameSettings.cpp @@ -58,6 +58,9 @@ namespace Game { Settings.enhancements.animated_pause_menu = stob(Conf[EnhancementSection]["animated_pause_menu"]); CVar_SetS32(const_cast("gPauseLiveLink"), Settings.enhancements.animated_pause_menu); + Settings.enhancements.dynamic_wallet_icon = stob(Conf[EnhancementSection]["dynamic_wallet_icon"]); + CVar_SetS32(const_cast("gDynamicWalletIcon"), Settings.enhancements.dynamic_wallet_icon); + // Audio Settings.audio.master = Ship::stof(Conf[AudioSection]["master"]); CVar_SetFloat(const_cast("gGameMasterVolume"), Settings.audio.master); @@ -139,6 +142,7 @@ namespace Game { Conf[EnhancementSection]["fast_text"] = std::to_string(Settings.enhancements.fast_text); Conf[EnhancementSection]["disable_lod"] = std::to_string(Settings.enhancements.disable_lod); Conf[EnhancementSection]["animated_pause_menu"] = std::to_string(Settings.enhancements.animated_pause_menu); + Conf[EnhancementSection]["dynamic_wallet_icon"] = std::to_string(Settings.enhancements.dynamic_wallet_icon); // Controllers diff --git a/libultraship/libultraship/GameSettings.h b/libultraship/libultraship/GameSettings.h index be974fd80..d83d32c92 100644 --- a/libultraship/libultraship/GameSettings.h +++ b/libultraship/libultraship/GameSettings.h @@ -23,6 +23,7 @@ struct SoHConfigType { bool fast_text = false; bool disable_lod = false; bool animated_pause_menu = false; + bool dynamic_wallet_icon = false; } enhancements; // Controller diff --git a/libultraship/libultraship/SohImGuiImpl.cpp b/libultraship/libultraship/SohImGuiImpl.cpp index abc51a535..16e7a810d 100644 --- a/libultraship/libultraship/SohImGuiImpl.cpp +++ b/libultraship/libultraship/SohImGuiImpl.cpp @@ -358,6 +358,11 @@ namespace SohImGui { needs_save = true; } + if (ImGui::Checkbox("Dynamic Wallet Icon", &Game::Settings.enhancements.dynamic_wallet_icon)) { + CVar_SetS32(const_cast("gDynamicWalletIcon"), Game::Settings.enhancements.dynamic_wallet_icon); + needs_save = true; + } + ImGui::EndMenu(); } diff --git a/soh/src/code/z_parameter.c b/soh/src/code/z_parameter.c index 24a9223f2..21f2bf323 100644 --- a/soh/src/code/z_parameter.c +++ b/soh/src/code/z_parameter.c @@ -3169,24 +3169,33 @@ void Interface_Draw(GlobalContext* globalCtx) { s16 rupeeR; s16 rupeeG; s16 rupeeB; - switch (CUR_UPG_VALUE(UPG_WALLET)) { - case 0: - rupeeR = rupeeIconGreen[0]; - rupeeG = rupeeIconGreen[1]; - rupeeB = rupeeIconGreen[2]; - break; - case 1: - rupeeR = rupeeIconBlue[0]; - rupeeG = rupeeIconBlue[1]; - rupeeB = rupeeIconBlue[2]; - break; - case 2: - rupeeR = rupeeIconRed[0]; - rupeeG = rupeeIconRed[1]; - rupeeB = rupeeIconRed[2]; - break; - default: - break; + + if (CVar_GetS32("gDynamicWalletIcon", 0)) { + switch (CUR_UPG_VALUE(UPG_WALLET)) { + case 0: + rupeeR = rupeeIconGreen[0]; + rupeeG = rupeeIconGreen[1]; + rupeeB = rupeeIconGreen[2]; + break; + case 1: + rupeeR = rupeeIconBlue[0]; + rupeeG = rupeeIconBlue[1]; + rupeeB = rupeeIconBlue[2]; + break; + case 2: + rupeeR = rupeeIconRed[0]; + rupeeG = rupeeIconRed[1]; + rupeeB = rupeeIconRed[2]; + break; + default: + break; + } + } + + else { + rupeeR = rupeeIconGreen[0]; + rupeeG = rupeeIconGreen[1]; + rupeeB = rupeeIconGreen[2]; } gDPSetPrimColor(OVERLAY_DISP++, 0, 0, rupeeR, rupeeG, rupeeB, interfaceCtx->magicAlpha);