mirror of
https://github.com/pret/pmd-sky.git
synced 2026-08-25 03:55:29 -05:00
more decomp of script variable funcs
This commit is contained in:
@@ -3,139 +3,6 @@
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start sub_0204CDB8
|
||||
sub_0204CDB8: ; 0x0204CDB8
|
||||
ldr ip, _0204CDC8 ; =ZeroInitScriptVariable
|
||||
mov r0, #0
|
||||
mov r1, #0x56
|
||||
bx ip
|
||||
.align 2, 0
|
||||
_0204CDC8: .word ZeroInitScriptVariable
|
||||
arm_func_end sub_0204CDB8
|
||||
|
||||
arm_func_start sub_0204CDCC
|
||||
sub_0204CDCC: ; 0x0204CDCC
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r0, #0
|
||||
mov r1, #0x57
|
||||
bl LoadScriptVariableValue
|
||||
mov r0, r0, lsl #0x18
|
||||
mov r0, r0, asr #0x18
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end sub_0204CDCC
|
||||
|
||||
arm_func_start sub_0204CDE8
|
||||
sub_0204CDE8: ; 0x0204CDE8
|
||||
ldr ip, _0204CDFC ; =SaveScriptVariableValue
|
||||
mov r2, r0
|
||||
mov r0, #0
|
||||
mov r1, #0x57
|
||||
bx ip
|
||||
.align 2, 0
|
||||
_0204CDFC: .word SaveScriptVariableValue
|
||||
arm_func_end sub_0204CDE8
|
||||
|
||||
arm_func_start sub_0204CE00
|
||||
sub_0204CE00: ; 0x0204CE00
|
||||
stmdb sp!, {r4, lr}
|
||||
mov r4, r0
|
||||
bl GetGameMode
|
||||
cmp r0, #3
|
||||
mov r0, r4, lsl #0x10
|
||||
mov r2, r0, lsr #0x10
|
||||
mov r0, #0
|
||||
bne _0204CE2C
|
||||
mov r1, #0x56
|
||||
bl LoadScriptVariableValueAtIndex
|
||||
b _0204CE34
|
||||
_0204CE2C:
|
||||
mov r1, #0x55
|
||||
bl LoadScriptVariableValueAtIndex
|
||||
_0204CE34:
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
and r0, r0, #0xff
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end sub_0204CE00
|
||||
|
||||
arm_func_start sub_0204CE48
|
||||
sub_0204CE48: ; 0x0204CE48
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r5, r0
|
||||
mov r4, r1
|
||||
bl GetGameMode
|
||||
cmp r0, #3
|
||||
mov r0, r5, lsl #0x10
|
||||
mov r3, r4
|
||||
bne _0204CE7C
|
||||
mov r2, r0, lsr #0x10
|
||||
mov r0, #0
|
||||
mov r1, #0x56
|
||||
bl SaveScriptVariableValueAtIndex
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
_0204CE7C:
|
||||
mov r2, r0, lsr #0x10
|
||||
mov r0, #0
|
||||
mov r1, #0x55
|
||||
bl SaveScriptVariableValueAtIndex
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
arm_func_end sub_0204CE48
|
||||
|
||||
arm_func_start InitDungeonListScriptVars
|
||||
InitDungeonListScriptVars: ; 0x0204CE90
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r0, #0
|
||||
mov r1, #0x4f
|
||||
bl ZeroInitScriptVariable
|
||||
mov r0, #0
|
||||
mov r1, #0x54
|
||||
bl ZeroInitScriptVariable
|
||||
mov r0, #0
|
||||
mov r1, #0x50
|
||||
bl ZeroInitScriptVariable
|
||||
mov r0, #0
|
||||
mov r1, #0x51
|
||||
bl ZeroInitScriptVariable
|
||||
mov r0, #0
|
||||
mov r1, #0x52
|
||||
bl ZeroInitScriptVariable
|
||||
mov r0, #0
|
||||
mov r1, #0x53
|
||||
bl ZeroInitScriptVariable
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end InitDungeonListScriptVars
|
||||
|
||||
arm_func_start sub_0204CEE0
|
||||
sub_0204CEE0: ; 0x0204CEE0
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r2, r0, lsr #0x10
|
||||
mov r0, #0
|
||||
mov r1, #0x50
|
||||
bl LoadScriptVariableValueAtIndex
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
and r0, r0, #0xff
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end sub_0204CEE0
|
||||
|
||||
arm_func_start sub_0204CF0C
|
||||
sub_0204CF0C: ; 0x0204CF0C
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r2, r0, lsr #0x10
|
||||
mov r0, #0
|
||||
mov r1, #0x52
|
||||
bl LoadScriptVariableValueAtIndex
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
and r0, r0, #0xff
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end sub_0204CF0C
|
||||
|
||||
arm_func_start SetDungeonConquest
|
||||
SetDungeonConquest: ; 0x0204CF38
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
|
||||
@@ -2,5 +2,13 @@
|
||||
#define PMDSKY_SCRIPT_VARIABLE_2_H
|
||||
|
||||
void InitWorldMapScriptVars();
|
||||
void sub_0204CDB8(void);
|
||||
s8 sub_0204CDCC(void);
|
||||
void sub_0204CDE8(s32 value);
|
||||
bool8 sub_0204CE00(u32 idx);
|
||||
void sub_0204CE48(u32 idx, s32 value);
|
||||
void InitDungeonListScriptVars(void);
|
||||
bool8 sub_0204CEE0(u32 idx);
|
||||
bool8 sub_0204CF0C(u32 idx);
|
||||
|
||||
#endif PMDSKY_SCRIPT_VARIABLE_2_H
|
||||
|
||||
@@ -1,9 +1,60 @@
|
||||
#include "script_variable.h"
|
||||
#include "script_variable_2.h"
|
||||
#include "enums.h"
|
||||
#include "game_mode.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);
|
||||
}
|
||||
|
||||
void sub_0204CDB8(void) {
|
||||
ZeroInitScriptVariable(0, VAR_WORLD_MAP_MARK_LIST_SPECIAL);
|
||||
}
|
||||
|
||||
s8 sub_0204CDCC(void) {
|
||||
return LoadScriptVariableValue(0, VAR_WORLD_MAP_LEVEL);
|
||||
}
|
||||
|
||||
void sub_0204CDE8(s32 value) {
|
||||
SaveScriptVariableValue(0, VAR_WORLD_MAP_LEVEL, value);
|
||||
}
|
||||
|
||||
bool8 sub_0204CE00(u32 idx) {
|
||||
s32 var;
|
||||
|
||||
if (GetGameMode() == GAME_MODE_SPECIAL_EPISODE) {
|
||||
var = LoadScriptVariableValueAtIndex(0,VAR_WORLD_MAP_MARK_LIST_SPECIAL, idx);
|
||||
} else {
|
||||
var = LoadScriptVariableValueAtIndex(0,VAR_WORLD_MAP_MARK_LIST_NORMAL, idx);
|
||||
}
|
||||
return (var != 0);
|
||||
}
|
||||
|
||||
void sub_0204CE48(u32 idx, s32 value) {
|
||||
if (GetGameMode() == GAME_MODE_SPECIAL_EPISODE) {
|
||||
SaveScriptVariableValueAtIndex(0,VAR_WORLD_MAP_MARK_LIST_SPECIAL, idx, value);
|
||||
} else {
|
||||
SaveScriptVariableValueAtIndex(0,VAR_WORLD_MAP_MARK_LIST_NORMAL, idx, value);
|
||||
}
|
||||
}
|
||||
|
||||
void InitDungeonListScriptVars(void) {
|
||||
ZeroInitScriptVariable(0, VAR_DUNGEON_OPEN_LIST);
|
||||
ZeroInitScriptVariable(0, VAR_DUNGEON_REQUEST_LIST);
|
||||
ZeroInitScriptVariable(0, VAR_DUNGEON_ENTER_LIST);
|
||||
ZeroInitScriptVariable(0, VAR_DUNGEON_ARRIVE_LIST);
|
||||
ZeroInitScriptVariable(0, VAR_DUNGEON_CONQUEST_LIST);
|
||||
ZeroInitScriptVariable(0, VAR_DUNGEON_PRESENT_LIST);
|
||||
}
|
||||
|
||||
bool8 sub_0204CEE0(u32 idx) {
|
||||
return LoadScriptVariableValueAtIndex(0,VAR_DUNGEON_ENTER_LIST, idx) != 0;
|
||||
}
|
||||
|
||||
bool8 sub_0204CF0C(u32 idx) {
|
||||
return LoadScriptVariableValueAtIndex(0,VAR_DUNGEON_CONQUEST_LIST, idx) != 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user