diff --git a/asm/include/main_0204B018.inc b/asm/include/main_0204B018.inc index a31ca5a8..d6faacee 100644 --- a/asm/include/main_0204B018.inc +++ b/asm/include/main_0204B018.inc @@ -13,3 +13,4 @@ .public SCRIPT_VARS_VALUES .public ZeroInitScriptVariable .public DefaultInitScriptVariable +.public InitEventFlagScriptVars diff --git a/asm/main_0204B018.s b/asm/main_0204B018.s index 98723787..ba0eda2c 100644 --- a/asm/main_0204B018.s +++ b/asm/main_0204B018.s @@ -232,75 +232,3 @@ _0204B300: .word 0x00000143 _0204B300: .word 0x00000137 #endif arm_func_end InitScriptVariableValues - - arm_func_start InitEventFlagScriptVars -InitEventFlagScriptVars: ; 0x0204B304 - stmdb sp!, {r3, lr} -#ifdef JAPAN - mov r0, #0 - mov r1, #0x1c - mov r2, #0x13c -#else - ldr r2, _0204B3CC ; =0x00000137 - mov r0, #0 - mov r1, #0x1c -#endif - bl SaveScriptVariableValue - mov r0, #0 - mov r2, r0 - mov r1, #0x1d - bl SaveScriptVariableValue -#ifdef JAPAN - mov r0, #0 - mov r1, #0x1e - mov r2, #0x13c -#else - ldr r2, _0204B3CC ; =0x00000137 - mov r0, #0 - mov r1, #0x1e -#endif - bl SaveScriptVariableValue - mov r1, #0x1f - sub r2, r1, #0x20 - mov r0, #0 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x20 - mov r2, #0xbb - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x27 - mov r2, r0 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x29 - sub r2, r1, #0x2a - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x2b - mov r2, r0 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x2c - mov r2, r0 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x34 - mov r2, r0 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x35 - mov r2, #2 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x36 - mov r2, r0 - bl SaveScriptVariableValue - ldmia sp!, {r3, pc} - .align 2, 0 -#if defined(EUROPE) -_0204B3CC: .word 0x00000143 -#elif !defined(JAPAN) -_0204B3CC: .word 0x00000137 -#endif - arm_func_end InitEventFlagScriptVars diff --git a/include/script_variable.h b/include/script_variable.h index daabc3ea..95d8e36b 100644 --- a/include/script_variable.h +++ b/include/script_variable.h @@ -29,6 +29,7 @@ struct script_var_raw { union script_var_value *value; }; +void InitEventFlagScriptVars(); 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); diff --git a/src/script_variable.c b/src/script_variable.c index e4025712..f1b4557a 100644 --- a/src/script_variable.c +++ b/src/script_variable.c @@ -10,6 +10,14 @@ #define LOCAL_SCRIPT_VAR_OFFSET (s16) 0x400 +#ifdef JAPAN +#define VAR_GROUND_ENTER_VALUE 0x13C +#elif EUROPE +#define VAR_GROUND_ENTER_VALUE 0x143 +#else +#define VAR_GROUND_ENTER_VALUE 0x137 +#endif + // Global script variable definitions extern struct script_var_def SCRIPT_VARS[]; // Local script variable definitions @@ -40,6 +48,21 @@ extern s32 SetMoneyCarried(s32 arg0); extern s32 SetMoneyStored(s32 arg0); extern s32 SetNotifyNote(s32 arg0); +void InitEventFlagScriptVars() { + SaveScriptVariableValue(0, VAR_GROUND_ENTER, VAR_GROUND_ENTER_VALUE); + SaveScriptVariableValue(0, VAR_GROUND_ENTER_LINK, 0); + SaveScriptVariableValue(0, VAR_GROUND_GETOUT, VAR_GROUND_ENTER_VALUE); + SaveScriptVariableValue(0, VAR_GROUND_MAP, -1); + SaveScriptVariableValue(0, VAR_GROUND_PLACE, 0xBB); + SaveScriptVariableValue(0, VAR_DUNGEON_ENTER, 0); + SaveScriptVariableValue(0, VAR_DUNGEON_ENTER_INDEX, -1); + SaveScriptVariableValue(0, VAR_DUNGEON_RESULT, 0); + SaveScriptVariableValue(0, VAR_GROUND_START_MODE, 0); + SaveScriptVariableValue(0, VAR_PLAYER_KIND, 0); + SaveScriptVariableValue(0, VAR_ATTENDANT1_KIND, 2); + SaveScriptVariableValue(0, VAR_ATTENDANT2_KIND, 0); +} + void DefaultInitScriptVariable(union script_var_value sv_locals[], enum script_var_id sv_id) { struct script_var_def* def;