From 7d41421702addb242bf5154bd1cf895bc3eb6b5a Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Sat, 4 Apr 2026 02:37:59 -0700 Subject: [PATCH] couple of hd qol toggles --- extern/aurora | 2 +- include/dusk/settings.h | 3 +++ src/d/actor/d_a_alink_demo.inc | 8 ++++++++ src/d/d_s_name.cpp | 7 +++++++ src/d/d_save.cpp | 14 ++++++++++++++ src/dusk/imgui/ImGuiMenuEnhancements.cpp | 16 ++++++++++++++++ src/dusk/settings.cpp | 3 +++ 7 files changed, 52 insertions(+), 1 deletion(-) diff --git a/extern/aurora b/extern/aurora index 37631c3bf3..b17da31593 160000 --- a/extern/aurora +++ b/extern/aurora @@ -1 +1 @@ -Subproject commit 37631c3bf382c1564d3f29c4c3f2dc6cf7617fa9 +Subproject commit b17da315932b85d7d708eaf3e44914f70045a44e diff --git a/include/dusk/settings.h b/include/dusk/settings.h index db49560fff..fddcd3b0f0 100644 --- a/include/dusk/settings.h +++ b/include/dusk/settings.h @@ -28,6 +28,9 @@ struct UserSettings { // QoL bool enableQuickTransform; bool hideTvSettingsScreen; + bool biggerWallets; + bool noReturnRupees; + bool disableRupeeCutscenes; // Preferences bool enableMirrorMode; diff --git a/src/d/actor/d_a_alink_demo.inc b/src/d/actor/d_a_alink_demo.inc index 39387582cb..aa77b24129 100644 --- a/src/d/actor/d_a_alink_demo.inc +++ b/src/d/actor/d_a_alink_demo.inc @@ -23,6 +23,8 @@ #include "d/actor/d_a_npc_tkc.h" #include +#include "dusk/settings.h" + BOOL daAlink_c::checkEventRun() const { return dComIfGp_event_runCheck() || checkPlayerDemoMode(); } @@ -2230,6 +2232,12 @@ void daAlink_c::setGetSubBgm(int i_itemNo) { } BOOL daAlink_c::checkTreasureRupeeReturn(int i_itemNo) const { + #if TARGET_PC + if (dusk::getSettings().game.noReturnRupees) { + return FALSE; + } + #endif + static const int dummy = 0; if (i_itemNo == dItemNo_LINKS_SAVINGS_e) { diff --git a/src/d/d_s_name.cpp b/src/d/d_s_name.cpp index e001d97c71..735ce4d0ca 100644 --- a/src/d/d_s_name.cpp +++ b/src/d/d_s_name.cpp @@ -17,6 +17,7 @@ #include "m_Do/m_Do_main.h" #include "f_op/f_op_overlap_mng.h" #include "dusk/memory.h" +#include "dusk/settings.h" #if TARGET_PC #define SHOW_TV_SETTINGS_SCREEN (this->mShowTvSettingsScreen) @@ -367,6 +368,12 @@ void dScnName_c::doPreLoadSetup() { field_0x41f = 0; mProc = dScnName_PROC_ChangeGameScene; + #if TARGET_PC + if (dusk::getSettings().game.disableRupeeCutscenes) { + return; + } + #endif + // Reset rupee "first-time collection" flags so the collection cutscene will play again dComIfGs_offItemFirstBit(dItemNo_GREEN_RUPEE_e); dComIfGs_offItemFirstBit(dItemNo_BLUE_RUPEE_e); diff --git a/src/d/d_save.cpp b/src/d/d_save.cpp index 06b92994db..3289a49c64 100644 --- a/src/d/d_save.cpp +++ b/src/d/d_save.cpp @@ -25,6 +25,8 @@ #include "lingcod/lingcod.h" #endif +#include "dusk/settings.h" + static u8 dSv_item_rename(u8 i_itemNo) { switch (i_itemNo) { case dItemNo_OIL_BOTTLE_2_e: @@ -111,11 +113,23 @@ u16 dSv_player_status_a_c::getRupeeMax() const { if (mWalletSize < 3) { // if you make this a default, it wont match. Compiler, pls. switch (mWalletSize) { case WALLET: + #if TARGET_PC + return dusk::getSettings().game.biggerWallets ? 500 : 300; + #else return 300; + #endif case BIG_WALLET: + #if TARGET_PC + return dusk::getSettings().game.biggerWallets ? 1000 : 600; + #else return 600; + #endif case GIANT_WALLET: + #if TARGET_PC + return dusk::getSettings().game.biggerWallets ? 2000 : 1000; + #else return 1000; + #endif } } diff --git a/src/dusk/imgui/ImGuiMenuEnhancements.cpp b/src/dusk/imgui/ImGuiMenuEnhancements.cpp index eed938de69..8ed7b1d8c4 100644 --- a/src/dusk/imgui/ImGuiMenuEnhancements.cpp +++ b/src/dusk/imgui/ImGuiMenuEnhancements.cpp @@ -11,6 +11,22 @@ namespace dusk { if (ImGui::BeginMenu("Enhancements")) { if (ImGui::BeginMenu("Quality of Life")) { ImGui::Checkbox("Quick Transform (R+Y)", &getSettings().game.enableQuickTransform); + + ImGui::Checkbox("Bigger Wallets", &getSettings().game.biggerWallets); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("Wallet sizes are like in the HD version (500, 1000, 2000)"); + } + + ImGui::Checkbox("No Rupee Returns", &getSettings().game.noReturnRupees); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("Always collect Rupees even if your Wallet is too full"); + } + + ImGui::Checkbox("Disable Rupee Cutscenes", &getSettings().game.disableRupeeCutscenes); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("Rupees won't play cutscenes after you've collected them the first time"); + } + ImGui::Checkbox("Hide TV Settings Screen", &getSettings().game.hideTvSettingsScreen); if (ImGui::IsItemHovered()) { ImGui::SetTooltip("Hides the TV calibration screen shown when loading a save"); diff --git a/src/dusk/settings.cpp b/src/dusk/settings.cpp index d1ba67b585..734188987a 100644 --- a/src/dusk/settings.cpp +++ b/src/dusk/settings.cpp @@ -24,6 +24,9 @@ UserSettings g_userSettings = { // Quality of Life .enableQuickTransform = false, .hideTvSettingsScreen = false, + .biggerWallets = false, + .noReturnRupees = false, + .disableRupeeCutscenes = false, // Preferences .enableMirrorMode = false,