From e208083c73c2d3de4af2ed9eddeec0666a73a65e Mon Sep 17 00:00:00 2001 From: Kalaay Date: Tue, 3 Feb 2026 13:26:50 -0800 Subject: [PATCH] Make variable checking for scrcmd macros more accurate (#920) --- asm/macros/scrcmd.inc | 24 ++++++++++++------------ generated/vars_flags.txt | 1 + 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/asm/macros/scrcmd.inc b/asm/macros/scrcmd.inc index 081436fc6f..658a0f9450 100644 --- a/asm/macros/scrcmd.inc +++ b/asm/macros/scrcmd.inc @@ -163,10 +163,10 @@ .endm .macro CompareVar varID, valueOrVarID - .if \valueOrVarID < VARS_START - CompareVarToValue \varID, \valueOrVarID - .else + .if ((\valueOrVarID >= VARS_START && \valueOrVarID <= VARS_END) || (\valueOrVarID >= SCRIPT_LOCAL_VARS_START && \valueOrVarID <= SCRIPT_LOCAL_VARS_END)) CompareVarToVar \varID, \valueOrVarID + .else + CompareVarToValue \varID, \valueOrVarID .endif .endm @@ -294,10 +294,10 @@ .endm .macro SetVar destVarID, valueOrVarID - .if \valueOrVarID < VARS_START - SetVarFromValue \destVarID, \valueOrVarID - .else + .if ((\valueOrVarID >= VARS_START && \valueOrVarID <= VARS_END) || (\valueOrVarID >= SCRIPT_LOCAL_VARS_START && \valueOrVarID <= SCRIPT_LOCAL_VARS_END)) SetVarFromVar \destVarID, \valueOrVarID + .else + SetVarFromValue \destVarID, \valueOrVarID .endif .endm @@ -4060,10 +4060,10 @@ .endm .macro SubtractCoins valueOrVarID - .if \valueOrVarID < VARS_START - SubtractCoinsFromValue \valueOrVarID - .else + .if ((\valueOrVarID >= VARS_START && \valueOrVarID <= VARS_END) || (\valueOrVarID >= SCRIPT_LOCAL_VARS_START && \valueOrVarID <= SCRIPT_LOCAL_VARS_END)) SubtractCoinsFromVar \valueOrVarID + .else + SubtractCoinsFromValue \valueOrVarID .endif .endm @@ -4074,10 +4074,10 @@ .endm .macro HasCoins varID, valueOrVarID - .if \valueOrVarID < VARS_START - HasCoinsFromValue \varID, \valueOrVarID - .else + .if ((\valueOrVarID >= VARS_START && \valueOrVarID <= VARS_END) || (\valueOrVarID >= SCRIPT_LOCAL_VARS_START && \valueOrVarID <= SCRIPT_LOCAL_VARS_END)) HasCoinsFromVar \varID, \valueOrVarID + .else + HasCoinsFromValue \varID, \valueOrVarID .endif .endm diff --git a/generated/vars_flags.txt b/generated/vars_flags.txt index bda752f071..1abb39f780 100644 --- a/generated/vars_flags.txt +++ b/generated/vars_flags.txt @@ -4403,3 +4403,4 @@ VAR_0x800A VAR_0x800B VAR_RESULT VAR_LAST_TALKED +SCRIPT_LOCAL_VARS_END = VAR_LAST_TALKED