Decomp UpdateScriptVarWithVar

This commit is contained in:
slaw-22 2025-11-22 07:30:26 +00:00
parent 86c6e15f7c
commit 40adda7593
7 changed files with 22 additions and 42 deletions

View File

@ -1,5 +1,4 @@
#pragma once
.public CalcScriptVariables
.public CompareScriptVariables
.public DEBUG_SPECIAL_EPISODE_NUMBER
.public Debug_Print

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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));
}
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);
}