Decomp DefaultInitScriptVariable

This commit is contained in:
slaw-22 2025-12-06 22:14:23 +00:00 committed by slaw-22
parent 63b7e5c814
commit cbed3f6d79
12 changed files with 49 additions and 66 deletions

View File

@ -11,4 +11,5 @@
.public SCRIPT_VARS
.public SCRIPT_VARS_LOCALS
.public SCRIPT_VARS_VALUES
.public ZinitScriptVariable
.public ZeroInitScriptVariable
.public DefaultInitScriptVariable

View File

@ -33,4 +33,4 @@
.public sub_02050990
.public sub_020509BC
.public VERSION_EXCLUSIVE_MONSTERS
.public ZinitScriptVariable
.public ZeroInitScriptVariable

View File

@ -550,4 +550,4 @@
.public vsprintf
.public WAN_TABLE
.public ZINC_BAND_STAT_BOOST
.public ZinitScriptVariable
.public ZeroInitScriptVariable

View File

@ -639,7 +639,7 @@
.public sub_0204AE60
.public sub_0204AE80
.public sub_0204AEE0
.public sub_0204B3D0
.public DefaultInitScriptVariable
.public SetResolvedPerformanceProgressFlag
.public sub_0204CDE8
.public sub_0204CE48
@ -718,4 +718,4 @@
.public UpdateTeamStats
.public WorldMapSetCamera
.public WorldMapSetMode
.public ZinitScriptVariable
.public ZeroInitScriptVariable

View File

@ -74,7 +74,7 @@ _0204B0C4:
bl SaveScriptVariableValue
mov r0, #0
mov r1, #1
bl ZinitScriptVariable
bl ZeroInitScriptVariable
bl InitEventFlagScriptVars
mov sl, #0
#ifdef JAPAN
@ -212,13 +212,13 @@ _0204B118:
bl SaveScriptVariableValue
mov r0, #0
mov r1, #0x4b
bl ZinitScriptVariable
bl ZeroInitScriptVariable
mov r0, #0
mov r1, #0x4c
bl ZinitScriptVariable
bl ZeroInitScriptVariable
mov r0, #0
mov r1, #0x4d
bl ZinitScriptVariable
bl ZeroInitScriptVariable
bl InitScenarioProgressScriptVars
bl InitWorldMapScriptVars
bl InitDungeonListScriptVars
@ -304,36 +304,3 @@ _0204B3CC: .word 0x00000143
_0204B3CC: .word 0x00000137
#endif
arm_func_end InitEventFlagScriptVars
arm_func_start sub_0204B3D0
sub_0204B3D0: ; 0x0204B3D0
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r4, r1
cmp r4, #0x400
mov r5, r0
ldrlt r0, _0204B42C ; =SCRIPT_VARS
ldrge r1, _0204B430 ; =SCRIPT_VARS_LOCALS
addlt r7, r0, r4, lsl #4
subge r0, r4, #0x400
addge r7, r1, r0, lsl #4
mov r6, #0
b _0204B41C
_0204B3FC:
ldrsh r3, [r7, #0xa]
mov r0, r5
mov r1, r4
mov r2, r6
bl SaveScriptVariableValueAtIndex
add r0, r6, #1
mov r0, r0, lsl #0x10
mov r6, r0, lsr #0x10
_0204B41C:
ldrsh r0, [r7, #8]
cmp r6, r0
blt _0204B3FC
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0204B42C: .word SCRIPT_VARS
_0204B430: .word SCRIPT_VARS_LOCALS
arm_func_end sub_0204B3D0

View File

@ -5,12 +5,12 @@
arm_func_start sub_0204CDB8
sub_0204CDB8: ; 0x0204CDB8
ldr ip, _0204CDC8 ; =ZinitScriptVariable
ldr ip, _0204CDC8 ; =ZeroInitScriptVariable
mov r0, #0
mov r1, #0x56
bx ip
.align 2, 0
_0204CDC8: .word ZinitScriptVariable
_0204CDC8: .word ZeroInitScriptVariable
arm_func_end sub_0204CDB8
arm_func_start sub_0204CDCC
@ -87,22 +87,22 @@ InitDungeonListScriptVars: ; 0x0204CE90
stmdb sp!, {r3, lr}
mov r0, #0
mov r1, #0x4f
bl ZinitScriptVariable
bl ZeroInitScriptVariable
mov r0, #0
mov r1, #0x54
bl ZinitScriptVariable
bl ZeroInitScriptVariable
mov r0, #0
mov r1, #0x50
bl ZinitScriptVariable
bl ZeroInitScriptVariable
mov r0, #0
mov r1, #0x51
bl ZinitScriptVariable
bl ZeroInitScriptVariable
mov r0, #0
mov r1, #0x52
bl ZinitScriptVariable
bl ZeroInitScriptVariable
mov r0, #0
mov r1, #0x53
bl ZinitScriptVariable
bl ZeroInitScriptVariable
ldmia sp!, {r3, pc}
arm_func_end InitDungeonListScriptVars

View File

@ -15926,7 +15926,7 @@ _02065E54:
bl UnloadOverlay
mov r0, #0
mov r1, #0x5c
bl ZinitScriptVariable
bl ZeroInitScriptVariable
mov r0, #2
bl LoadOverlay
mov r0, #0xd

View File

@ -3160,7 +3160,7 @@ _022DED60: ; 0x022DED60
mov r1, r0, lsl #0x10
add r0, r4, #0x6c
mov r1, r1, asr #0x10
bl sub_0204B3D0
bl DefaultInitScriptVariable
b _022E2474
_022DED7C: ; 0x022DED7C
ldrh r0, [r6]
@ -3168,7 +3168,7 @@ _022DED7C: ; 0x022DED7C
mov r1, r0, lsl #0x10
add r0, r4, #0x6c
mov r1, r1, asr #0x10
bl ZinitScriptVariable
bl ZeroInitScriptVariable
b _022E2474
_022DED98: ; 0x022DED98
ldrh r0, [r6]
@ -12555,7 +12555,7 @@ ov11_022E6EE8: ; 0x022E6EE8
bl SaveScriptVariableValue
mov r0, #0
mov r1, #0x5c
bl ZinitScriptVariable
bl ZeroInitScriptVariable
cmp r4, #4
bne _022E6F80
bl sub_020573A0
@ -14116,7 +14116,7 @@ _022E82F0:
bne _022E832C
mov r0, #0
mov r1, #0x5c
bl ZinitScriptVariable
bl ZeroInitScriptVariable
mov r0, #0x12
bl GroundMainLoop
mov r4, r0
@ -14642,7 +14642,7 @@ _022E89FC:
bl Debug_Print0
mov r0, #0
mov r1, #0x5c
bl ZinitScriptVariable
bl ZeroInitScriptVariable
bl GroundMainNextDay
ldr r0, _022E91E8 ; =ov11_02324FA0
mov r1, #1
@ -14706,7 +14706,7 @@ _022E8AE4:
bl Debug_Print0
mov r0, #0
mov r1, #0x5c
bl ZinitScriptVariable
bl ZeroInitScriptVariable
bl GroundMainNextDay
mov r0, #0
mov r1, #0x2a
@ -14786,7 +14786,7 @@ _022E8C20:
bl Debug_Print0
mov r0, #0
mov r1, #0x5c
bl ZinitScriptVariable
bl ZeroInitScriptVariable
bl GroundMainNextDay
ldr r1, _022E91E8 ; =ov11_02324FA0
mov r0, #0
@ -15358,7 +15358,7 @@ GroundMainReturnDungeon: ; 0x022E9414
bl Debug_Print0
mov r0, #0
mov r1, #0x5c
bl ZinitScriptVariable
bl ZeroInitScriptVariable
bl GroundMainNextDay
ldmia sp!, {r3, pc}
.align 2, 0

View File

@ -29,7 +29,8 @@ struct script_var_raw {
union script_var_value *value;
};
void ZinitScriptVariable(union script_var_value sv_locals[], enum script_var_id sv_id);
void DefaultInitScriptVariable(union script_var_value sv_locals[], enum script_var_id sv_id);
void ZeroInitScriptVariable(union script_var_value sv_locals[], enum script_var_id sv_id);
void LoadScriptVariableRaw(struct script_var_raw* sv_raw, union script_var_value sv_val_local[], const enum script_var_id sv_id);
s32 LoadScriptVariableValue(union script_var_value sv_local[], enum script_var_id sv_id);
s32 LoadScriptVariableValueAtIndex(union script_var_value sv_local[], enum script_var_id id, u16 idx);

View File

@ -3,4 +3,4 @@
void InitWorldMapScriptVars();
#endif PMDSKY_SCRIPT_VARIABLE_2_H
#endif PMDSKY_SCRIPT_VARIABLE_2_H

View File

@ -40,7 +40,21 @@ extern s32 SetMoneyCarried(s32 arg0);
extern s32 SetMoneyStored(s32 arg0);
extern s32 SetNotifyNote(s32 arg0);
void ZinitScriptVariable(union script_var_value sv_locals[], enum script_var_id sv_id) {
void DefaultInitScriptVariable(union script_var_value sv_locals[], enum script_var_id sv_id) {
struct script_var_def* def;
if (sv_id < LOCAL_SCRIPT_VAR_OFFSET) {
def = &SCRIPT_VARS[sv_id];
} else {
def = &SCRIPT_VARS_LOCALS[sv_id - LOCAL_SCRIPT_VAR_OFFSET];
}
for(u16 idx = 0; idx < def->n_values; idx++) {
SaveScriptVariableValueAtIndex(sv_locals, sv_id, idx, def->default_val);
}
}
void ZeroInitScriptVariable(union script_var_value sv_locals[], enum script_var_id sv_id) {
struct script_var_def* def;
if (sv_id < LOCAL_SCRIPT_VAR_OFFSET) {
@ -607,8 +621,8 @@ void InitScenarioProgressScriptVars()
SetScenarioProgressScriptVar(VAR_SCENARIO_SUB6, 0, 0);
SetScenarioProgressScriptVar(VAR_SCENARIO_SUB7, 0, 0);
SetScenarioProgressScriptVar(VAR_SCENARIO_SUB8, 0, 0);
ZinitScriptVariable(0, VAR_SCENARIO_MAIN_BIT_FLAG);
ZinitScriptVariable(0, VAR_SCENARIO_MAIN_BIT_FLAG_BACKUP);
ZeroInitScriptVariable(0, VAR_SCENARIO_MAIN_BIT_FLAG);
ZeroInitScriptVariable(0, VAR_SCENARIO_MAIN_BIT_FLAG_BACKUP);
s32 idx = 0;
do {
SaveScriptVariableValueAtIndex(0, VAR_SCENARIO_SELECT_BACKUP, idx, 0);

View File

@ -3,7 +3,7 @@
#include "enums.h"
void InitWorldMapScriptVars() {
ZinitScriptVariable(0, VAR_WORLD_MAP_MARK_LIST_NORMAL);
ZinitScriptVariable(0, VAR_WORLD_MAP_MARK_LIST_SPECIAL);
ZeroInitScriptVariable(0, VAR_WORLD_MAP_MARK_LIST_NORMAL);
ZeroInitScriptVariable(0, VAR_WORLD_MAP_MARK_LIST_SPECIAL);
SaveScriptVariableValue(0, VAR_WORLD_MAP_LEVEL, 1);
}