From 40adda7593498b48dabedf10d7ea024d4ba0e7ce Mon Sep 17 00:00:00 2001 From: slaw-22 <> Date: Sat, 22 Nov 2025 07:30:26 +0000 Subject: [PATCH] Decomp UpdateScriptVarWithVar --- .../{main_0204BF10.inc => main_0204BF5C.inc} | 1 - asm/include/overlay_11.inc | 4 +-- asm/{main_0204BF10.s => main_0204BF5C.s} | 25 +------------------ asm/overlay_11.s | 6 ++--- include/scripting.h | 3 ++- main.lsf | 2 +- src/scripting.c | 23 +++++++++-------- 7 files changed, 22 insertions(+), 42 deletions(-) rename asm/include/{main_0204BF10.inc => main_0204BF5C.inc} (94%) rename asm/{main_0204BF10.s => main_0204BF5C.s} (96%) diff --git a/asm/include/main_0204BF10.inc b/asm/include/main_0204BF5C.inc similarity index 94% rename from asm/include/main_0204BF10.inc rename to asm/include/main_0204BF5C.inc index bd8e154c..f9ef8022 100644 --- a/asm/include/main_0204BF10.inc +++ b/asm/include/main_0204BF5C.inc @@ -1,5 +1,4 @@ #pragma once -.public CalcScriptVariables .public CompareScriptVariables .public DEBUG_SPECIAL_EPISODE_NUMBER .public Debug_Print diff --git a/asm/include/overlay_11.inc b/asm/include/overlay_11.inc index d4e61381..0ab6e76f 100644 --- a/asm/include/overlay_11.inc +++ b/asm/include/overlay_11.inc @@ -627,8 +627,8 @@ .public sub_0204AEE0 .public sub_0204B3D0 .public CalcScriptVariablesVeneer -.public UpdateScriptVariable -.public sub_0204BF10 +.public UpdateScriptVarWithParam +.public UpdateScriptVarWithVar .public sub_0204BF5C .public sub_0204BF68 .public sub_0204BF88 diff --git a/asm/main_0204BF10.s b/asm/main_0204BF5C.s similarity index 96% rename from asm/main_0204BF10.s rename to asm/main_0204BF5C.s index d8a1f8d5..05b3102e 100644 --- a/asm/main_0204BF10.s +++ b/asm/main_0204BF5C.s @@ -1,31 +1,8 @@ .include "asm/macros.inc" - .include "main_0204BF10.inc" + .include "main_0204BF5C.inc" .text - arm_func_start sub_0204BF10 -sub_0204BF10: ; 0x0204BF10 - stmdb sp!, {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r6, r2 - mov r7, r1 - mov r5, r3 - bl LoadScriptVariableValue - mov r4, r0 - mov r0, r8 - mov r1, r6 - bl LoadScriptVariableValue - mov r1, r0 - mov r0, r4 - mov r2, r5 - bl CalcScriptVariables - mov r2, r0 - mov r0, r8 - mov r1, r7 - bl SaveScriptVariableValue - ldmia sp!, {r4, r5, r6, r7, r8, pc} - arm_func_end sub_0204BF10 - arm_func_start sub_0204BF5C sub_0204BF5C: ; 0x0204BF5C ldr ip, _0204BF64 ; =CompareScriptVariables diff --git a/asm/overlay_11.s b/asm/overlay_11.s index f149f8ad..ce95c24b 100644 --- a/asm/overlay_11.s +++ b/asm/overlay_11.s @@ -3196,7 +3196,7 @@ _022DEDC4: ; 0x022DEDC4 mov r3, r5 mov r2, r0 add r0, r4, #0x6c - bl UpdateScriptVariable + bl UpdateScriptVarWithParam b _022E2474 _022DEE00: ; 0x022DEE00 ldrh r0, [r6] @@ -3214,7 +3214,7 @@ _022DEE00: ; 0x022DEE00 add r0, r4, #0x6c mov r2, r2, lsl #0x10 mov r2, r2, asr #0x10 - bl sub_0204BF10 + bl UpdateScriptVarWithVar b _022E2474 _022DEE44: ; 0x022DEE44 ldrh r0, [r6] @@ -14712,7 +14712,7 @@ _022E8AE4: mov r1, #0x2a mov r2, #1 mov r3, #2 - bl UpdateScriptVariable + bl UpdateScriptVarWithParam bl sub_0204F034 mov r4, r0 bl sub_0204F050 diff --git a/include/scripting.h b/include/scripting.h index 7896277b..bc438ee5 100644 --- a/include/scripting.h +++ b/include/scripting.h @@ -44,6 +44,7 @@ s32 ScriptVariablesEqual(union script_var_value sv_val_ptr_local[], enum script_ s32 CalcScriptVariables(s32 param_1, s32 param_2, enum script_calc_operation operation); bool8 CompareScriptVariables(s32 param_1, s32 param_2, enum compare_operation operation); s32 CalcScriptVariablesVeneer(s32 param_1, s32 param_2, enum script_calc_operation operation); -void UpdateScriptVariable(union script_var_value sv_local[], const enum script_var_id script_var_id, s32 param, enum script_calc_operation operation); +void UpdateScriptVarWithParam(union script_var_value sv_local[], const enum script_var_id script_var_id, s32 param, enum script_calc_operation operation); +void UpdateScriptVarWithVar(union script_var_value sv_local[], enum script_var_id sv_id_1, enum script_var_id sv_id_2, enum script_calc_operation operation); #endif //PMDSKY_SCRIPTING_H diff --git a/main.lsf b/main.lsf index c9dfdb77..79442579 100644 --- a/main.lsf +++ b/main.lsf @@ -82,7 +82,7 @@ Static main Object asm/main_0204B018.o Object src/scripting.o Object asm/main_rodata_0209CECC.o - Object asm/main_0204BF10.o + Object asm/main_0204BF5C.o Object src/main_0204C938.o Object asm/main_0204C94C.o Object src/dungeon_recruitment_3.o diff --git a/src/scripting.c b/src/scripting.c index a5520f22..1d734f72 100644 --- a/src/scripting.c +++ b/src/scripting.c @@ -447,14 +447,17 @@ s32 CalcScriptVariablesVeneer(s32 param_1, s32 param_2, enum script_calc_operati return CalcScriptVariables(param_1, param_2, operation); } -void UpdateScriptVariable(union script_var_value sv_local[], const enum script_var_id script_var_id, s32 param, enum script_calc_operation operation) +void UpdateScriptVarWithParam(union script_var_value sv_local[], const enum script_var_id script_var_id, s32 param, enum script_calc_operation operation) { - SaveScriptVariableValue(sv_local, - script_var_id, - CalcScriptVariables( - LoadScriptVariableValue( - sv_local, - script_var_id), - param, - operation)); -} \ No newline at end of file + s32 value = LoadScriptVariableValue(sv_local, script_var_id); + s32 result = CalcScriptVariables(value, param, operation); + SaveScriptVariableValue(sv_local, script_var_id, result); +} + +void UpdateScriptVarWithVar(union script_var_value sv_local[], enum script_var_id sv_id_1, enum script_var_id sv_id_2, enum script_calc_operation operation) +{ + s32 value_1 = LoadScriptVariableValue(sv_local, sv_id_1); + s32 value_2 = LoadScriptVariableValue(sv_local, sv_id_2); + s32 result = CalcScriptVariables(value_1, value_2, operation); + SaveScriptVariableValue(sv_local, sv_id_1, result); +}