mirror of
https://github.com/pret/pmd-sky.git
synced 2026-10-01 14:48:14 -05:00
Merge pull request #224 from slaw-22/Scripting7
Some checks are pending
build / build (push) Waiting to run
Some checks are pending
build / build (push) Waiting to run
Decomp more Script Variable functions
This commit is contained in:
@@ -11,3 +11,6 @@
|
||||
.public SCRIPT_VARS
|
||||
.public SCRIPT_VARS_LOCALS
|
||||
.public SCRIPT_VARS_VALUES
|
||||
.public ZeroInitScriptVariable
|
||||
.public DefaultInitScriptVariable
|
||||
.public InitEventFlagScriptVars
|
||||
|
||||
@@ -33,4 +33,4 @@
|
||||
.public sub_02050990
|
||||
.public sub_020509BC
|
||||
.public VERSION_EXCLUSIVE_MONSTERS
|
||||
.public ZinitScriptVariable
|
||||
.public ZeroInitScriptVariable
|
||||
@@ -550,4 +550,4 @@
|
||||
.public vsprintf
|
||||
.public WAN_TABLE
|
||||
.public ZINC_BAND_STAT_BOOST
|
||||
.public ZinitScriptVariable
|
||||
.public ZeroInitScriptVariable
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -232,140 +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
|
||||
|
||||
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
|
||||
|
||||
arm_func_start ZinitScriptVariable
|
||||
ZinitScriptVariable: ; 0x0204B434
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
||||
mov r5, r1
|
||||
cmp r5, #0x400
|
||||
mov r6, r0
|
||||
ldrlt r0, _0204B494 ; =SCRIPT_VARS
|
||||
mov r8, #0
|
||||
addlt r4, r0, r5, lsl #4
|
||||
ldrge r1, _0204B498 ; =SCRIPT_VARS_LOCALS
|
||||
subge r0, r5, #0x400
|
||||
addge r4, r1, r0, lsl #4
|
||||
mov r7, r8
|
||||
b _0204B484
|
||||
_0204B464:
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r2, r8
|
||||
mov r3, r7
|
||||
bl SaveScriptVariableValueAtIndex
|
||||
add r0, r8, #1
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r8, r0, lsr #0x10
|
||||
_0204B484:
|
||||
ldrsh r0, [r4, #8]
|
||||
cmp r8, r0
|
||||
blt _0204B464
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_0204B494: .word SCRIPT_VARS
|
||||
_0204B498: .word SCRIPT_VARS_LOCALS
|
||||
arm_func_end ZinitScriptVariable
|
||||
|
||||
@@ -1,32 +1,16 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "main_0204CD88.inc"
|
||||
.include "main_0204CDB8.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start InitWorldMapScriptVars
|
||||
InitWorldMapScriptVars: ; 0x0204CD88
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r0, #0
|
||||
mov r1, #0x55
|
||||
bl ZinitScriptVariable
|
||||
mov r0, #0
|
||||
mov r1, #0x56
|
||||
bl ZinitScriptVariable
|
||||
mov r0, #0
|
||||
mov r1, #0x57
|
||||
mov r2, #1
|
||||
bl SaveScriptVariableValue
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end InitWorldMapScriptVars
|
||||
|
||||
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
|
||||
@@ -103,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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
#ifndef PMDSKY_HAS_PLAYED_OLD_GAME_H
|
||||
#define PMDSKY_HAS_PLAYED_OLD_GAME_H
|
||||
|
||||
#include "util.h"
|
||||
|
||||
bool8 HasPlayedOldGame();
|
||||
|
||||
#endif //PMDSKY_HAS_PLAYED_OLD_GAME_H
|
||||
@@ -1,9 +0,0 @@
|
||||
#ifndef PMDSKY_PERFORMANCE_PROGRESS_H
|
||||
#define PMDSKY_PERFORMANCE_PROGRESS_H
|
||||
|
||||
#include "util.h"
|
||||
|
||||
bool8 GetResolvedPerformanceProgressFlag(u32 idx);
|
||||
void SetResolvedPerformanceProgressFlag(u32 idx, s32 value);
|
||||
|
||||
#endif //PMDSKY_PERFORMANCE_PROGRESS_H
|
||||
@@ -1,6 +1,11 @@
|
||||
#ifndef PMDSKY_MAIN_0204CB94_H
|
||||
#define PMDSKY_MAIN_0204CB94_H
|
||||
#ifndef PMDSKY_PROGRESSION_H
|
||||
#define PMDSKY_PROGRESSION_H
|
||||
|
||||
#include "util.h"
|
||||
|
||||
bool8 HasPlayedOldGame();
|
||||
bool8 GetResolvedPerformanceProgressFlag(u32 idx);
|
||||
void SetResolvedPerformanceProgressFlag(u32 idx, s32 value);
|
||||
// Returns the current SCENARIO_BALANCE value.
|
||||
// The exact value returned depends on multiple factors:
|
||||
// - If the first special episode is active, returns 1
|
||||
@@ -9,4 +14,4 @@
|
||||
// - In all other cases, the value of the SCENARIO_BALANCE_FLAG variable is returned
|
||||
u8 GetScenarioBalance();
|
||||
|
||||
#endif //PMDSKY_MAIN_0204CB94_H
|
||||
#endif //PMDSKY_PROGRESSION_H
|
||||
@@ -29,6 +29,9 @@ 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);
|
||||
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);
|
||||
|
||||
6
include/script_variable_2.h
Normal file
6
include/script_variable_2.h
Normal file
@@ -0,0 +1,6 @@
|
||||
#ifndef PMDSKY_SCRIPT_VARIABLE_2_H
|
||||
#define PMDSKY_SCRIPT_VARIABLE_2_H
|
||||
|
||||
void InitWorldMapScriptVars();
|
||||
|
||||
#endif PMDSKY_SCRIPT_VARIABLE_2_H
|
||||
7
main.lsf
7
main.lsf
@@ -88,11 +88,10 @@ Static main
|
||||
Object asm/main_rodata_020A18BC.o
|
||||
Object src/story_progress.o
|
||||
Object src/special_episode.o
|
||||
Object src/has_played_old_game.o
|
||||
Object src/performance_progress.o
|
||||
Object src/main_0204CB94.o
|
||||
Object src/progression.o
|
||||
Object src/scenario_flag.o
|
||||
Object asm/main_0204CD88.o
|
||||
Object src/script_variable_2.o
|
||||
Object asm/main_0204CDB8.o
|
||||
Object src/main_0204DA2C.o
|
||||
Object asm/main_0204DB08.o
|
||||
Object src/main_0204DD80.o
|
||||
|
||||
@@ -8,11 +8,9 @@
|
||||
#include "main_02058E68.h"
|
||||
#include "overlay_29_022FF898.h"
|
||||
#include "overlay_29_023000E4.h"
|
||||
#include "performance_progress.h"
|
||||
#include "progression.h"
|
||||
#include "pokemon.h"
|
||||
|
||||
extern bool8 GetPerformanceFlagWithChecks(s32 flag_id);
|
||||
|
||||
bool8 CanSeeInvisibleMonsters(struct entity *entity)
|
||||
{
|
||||
if (GetEntInfo(entity)->blinker_class_status.blinded == STATUS_BLINKER_EYEDROPS)
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
#include "dungeon_pokemon_attributes_1.h"
|
||||
#include "dungeon_recruitment.h"
|
||||
#include "dungeon_recruitment_2.h"
|
||||
#include "has_played_old_game.h"
|
||||
#include "dg_random.h"
|
||||
#include "dungeon_visibility.h"
|
||||
#include "enums.h"
|
||||
@@ -14,6 +13,7 @@
|
||||
#include "main_0208655C.h"
|
||||
#include "math.h"
|
||||
#include "overlay_29_0230E578.h" // ItemIsActive__0230E578
|
||||
#include "progression.h"
|
||||
|
||||
extern bool8 IsLegendaryChallengeFloor(void);
|
||||
extern bool8 IsCurrentMissionTypeExact(u32 mission_type, u32 mission_subtype);
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
#include "has_played_old_game.h"
|
||||
#include "enums.h"
|
||||
#include "script_variable.h"
|
||||
#include "util.h"
|
||||
|
||||
bool8 HasPlayedOldGame()
|
||||
{
|
||||
if(LoadScriptVariableValue(0, VAR_PLAY_OLD_GAME)) {
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,7 @@
|
||||
#include "main_0200EDC0.h"
|
||||
#include "item.h"
|
||||
#include "main_0204CB94.h"
|
||||
#include "main_020517D4.h"
|
||||
#include "performance_progress.h"
|
||||
#include "progression.h"
|
||||
#include "script_variable.h"
|
||||
#include "special_episode.h"
|
||||
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
#include "main_0204CB94.h"
|
||||
#include "script_variable.h"
|
||||
|
||||
u8 GetScenarioBalance()
|
||||
{
|
||||
s32 special_episode_type = LoadScriptVariableValue(0, VAR_EXECUTE_SPECIAL_EPISODE_TYPE);
|
||||
if (special_episode_type == EPISODE_NONE)
|
||||
{
|
||||
s32 scenario_balance = LoadScriptVariableValue(0, VAR_SCENARIO_BALANCE_DEBUG);
|
||||
if (scenario_balance < 0)
|
||||
scenario_balance = LoadScriptVariableValue(0, VAR_SCENARIO_BALANCE_FLAG);
|
||||
|
||||
return scenario_balance;
|
||||
}
|
||||
|
||||
if (special_episode_type == EPISODE_BIDOOFS_WISH)
|
||||
return 1;
|
||||
return 3;
|
||||
}
|
||||
@@ -1,9 +1,18 @@
|
||||
#include "enums.h"
|
||||
#include "performance_progress.h"
|
||||
#include "progression.h"
|
||||
#include "script_variable.h"
|
||||
|
||||
extern enum game_mode GetGameMode();
|
||||
|
||||
bool8 HasPlayedOldGame()
|
||||
{
|
||||
if(LoadScriptVariableValue(0, VAR_PLAY_OLD_GAME)) {
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 GetResolvedPerformanceProgressFlag(u32 idx) {
|
||||
switch (idx) {
|
||||
case 0:
|
||||
@@ -55,3 +64,20 @@ void SetResolvedPerformanceProgressFlag(u32 idx, s32 value) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
u8 GetScenarioBalance()
|
||||
{
|
||||
s32 special_episode_type = LoadScriptVariableValue(0, VAR_EXECUTE_SPECIAL_EPISODE_TYPE);
|
||||
if (special_episode_type == EPISODE_NONE)
|
||||
{
|
||||
s32 scenario_balance = LoadScriptVariableValue(0, VAR_SCENARIO_BALANCE_DEBUG);
|
||||
if (scenario_balance < 0)
|
||||
scenario_balance = LoadScriptVariableValue(0, VAR_SCENARIO_BALANCE_FLAG);
|
||||
|
||||
return scenario_balance;
|
||||
}
|
||||
|
||||
if (special_episode_type == EPISODE_BIDOOFS_WISH)
|
||||
return 1;
|
||||
return 3;
|
||||
}
|
||||
@@ -8,7 +8,15 @@
|
||||
#include "special_episode.h"
|
||||
#include "story_progress.h"
|
||||
|
||||
#define LOCAL_SCRIPT_VAR_OFFSET 0x400
|
||||
#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[];
|
||||
@@ -39,7 +47,49 @@ extern s32 AddMoneyCarried(s32 arg0);
|
||||
extern s32 SetMoneyCarried(s32 arg0);
|
||||
extern s32 SetMoneyStored(s32 arg0);
|
||||
extern s32 SetNotifyNote(s32 arg0);
|
||||
extern void ZinitScriptVariable(u32 param_1, u32 param_2);
|
||||
|
||||
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;
|
||||
|
||||
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) {
|
||||
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, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void LoadScriptVariableRaw(struct script_var_raw* sv_raw,
|
||||
union script_var_value sv_val_local[],
|
||||
@@ -594,8 +644,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);
|
||||
|
||||
9
src/script_variable_2.c
Normal file
9
src/script_variable_2.c
Normal file
@@ -0,0 +1,9 @@
|
||||
#include "script_variable.h"
|
||||
#include "script_variable_2.h"
|
||||
#include "enums.h"
|
||||
|
||||
void InitWorldMapScriptVars() {
|
||||
ZeroInitScriptVariable(0, VAR_WORLD_MAP_MARK_LIST_NORMAL);
|
||||
ZeroInitScriptVariable(0, VAR_WORLD_MAP_MARK_LIST_SPECIAL);
|
||||
SaveScriptVariableValue(0, VAR_WORLD_MAP_LEVEL, 1);
|
||||
}
|
||||
Reference in New Issue
Block a user