Add an option to Rupee Dash to disable rupee reduction scaling (#6778)

This commit is contained in:
jdperos
2026-06-21 14:25:34 -04:00
committed by GitHub
parent 1a203727fa
commit 5926476496
2 changed files with 14 additions and 2 deletions
+10 -2
View File
@@ -12,6 +12,10 @@ static constexpr int32_t CVAR_RUPEE_DASH_DEFAULT = 0;
#define CVAR_RUPEE_DASH_NAME CVAR_ENHANCEMENT("RupeeDash")
#define CVAR_RUPEE_DASH_VALUE CVarGetInteger(CVAR_RUPEE_DASH_NAME, CVAR_RUPEE_DASH_DEFAULT)
static constexpr int32_t CVAR_RUPEE_DASH_SCALING_DEFAULT = 1;
#define CVAR_RUPEE_DASH_SCALING_NAME CVAR_ENHANCEMENT("RupeeDashScaling")
#define CVAR_RUPEE_DASH_SCALING_VALUE CVarGetInteger(CVAR_RUPEE_DASH_SCALING_NAME, CVAR_RUPEE_DASH_SCALING_DEFAULT)
static constexpr int32_t CVAR_RUPEE_DASH_INTERVAL_DEFAULT = 5;
#define CVAR_RUPEE_DASH_INTERVAL_NAME CVAR_ENHANCEMENT("RupeeDashInterval")
#define CVAR_RUPEE_DASH_INTERVAL_TIME \
@@ -29,8 +33,12 @@ static void UpdateRupeeDash() {
rupeeDashTimer = 0;
if (gSaveContext.rupees > 0) {
uint16_t walletSize = (CUR_UPG_VALUE(UPG_WALLET) + 1) * -1;
Rupees_ChangeBy(walletSize);
uint16_t rupeeChange = -1;
if (CVAR_RUPEE_DASH_SCALING_VALUE) {
const uint16_t walletSize = (CUR_UPG_VALUE(UPG_WALLET) + 1);
rupeeChange = walletSize * -1;
}
Rupees_ChangeBy(rupeeChange);
} else {
Health_ChangeBy(gPlayState, -16);
}
+4
View File
@@ -1660,6 +1660,10 @@ void SohMenu::AddMenuEnhancements() {
AddWidget(path, "Rupee Dash Mode", WIDGET_CVAR_CHECKBOX)
.CVar(CVAR_ENHANCEMENT("RupeeDash"))
.Options(CheckboxOptions().Tooltip("Rupees reduce over time, Link suffers damage when the count hits 0."));
AddWidget(path, "Rupee Dash Wallet Scaling", WIDGET_CVAR_CHECKBOX)
.CVar(CVAR_ENHANCEMENT("RupeeDashScaling"))
.PreFunc([](WidgetInfo& info) { info.isHidden = CVarGetInteger(CVAR_ENHANCEMENT("RupeeDash"), 0) == 0; })
.Options(CheckboxOptions().DefaultValue(true).Tooltip("The larger Link's wallet, the faster Rupees reduce."));
AddWidget(path, "Rupee Dash Interval %d seconds", WIDGET_CVAR_SLIDER_INT)
.CVar(CVAR_ENHANCEMENT("RupeeDashInterval"))
.PreFunc([](WidgetInfo& info) { info.isHidden = CVarGetInteger(CVAR_ENHANCEMENT("RupeeDash"), 0) == 0; })