pmd-sky/asm/main_0204C408.s
2025-11-25 21:37:42 +00:00

409 lines
7.6 KiB
ArmAsm

.include "asm/macros.inc"
.include "main_0204C408.inc"
.text
arm_func_start DumpScriptVariableValues
DumpScriptVariableValues: ; 0x0204C408
stmdb sp!, {r4, lr}
mov r4, r0
bl EventFlagBackup
ldr r1, _0204C42C ; =SCRIPT_VARS_VALUES
mov r0, r4
mov r2, #0x400
bl MemcpySimple
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
_0204C42C: .word SCRIPT_VARS_VALUES
arm_func_end DumpScriptVariableValues
arm_func_start RestoreScriptVariableValues
RestoreScriptVariableValues: ; 0x0204C430
stmdb sp!, {r4, lr}
sub sp, sp, #8
mov r1, #0
mov r4, r0
add r0, sp, #0
mov r2, r1
bl LoadScriptVariableRaw
ldr r0, _0204C484 ; =SCRIPT_VARS_VALUES
mov r1, r4
mov r2, #0x400
bl MemcpySimple
ldr r1, [sp]
ldr r0, [sp, #4]
ldrsh r1, [r1, #0xa]
ldr r0, [r0]
cmp r1, r0
moveq r0, #1
movne r0, #0
and r0, r0, #0xff
add sp, sp, #8
ldmia sp!, {r4, pc}
.align 2, 0
_0204C484: .word SCRIPT_VARS_VALUES
arm_func_end RestoreScriptVariableValues
arm_func_start InitScenarioScriptVars
InitScenarioScriptVars: ; 0x0204C488
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r1, #0
mov r2, r1
mov r0, #2
bl SetScenarioScriptVar
mov r1, #0
mov r2, r1
mov r0, #3
bl SetScenarioScriptVar
mov r1, #0
mov r2, r1
mov r0, #4
bl SetScenarioScriptVar
mov r1, #0
mov r2, r1
mov r0, #5
bl SetScenarioScriptVar
mov r1, #0
mov r2, r1
mov r0, #6
bl SetScenarioScriptVar
mov r1, #0
mov r0, #7
mov r2, r1
bl SetScenarioScriptVar
mov r1, #0
mov r0, #8
mov r2, r1
bl SetScenarioScriptVar
mov r1, #0
mov r0, #9
mov r2, r1
bl SetScenarioScriptVar
mov r1, #0
mov r0, #0xa
mov r2, r1
bl SetScenarioScriptVar
mov r1, #0
mov r0, #0xb
mov r2, r1
bl SetScenarioScriptVar
mov r1, #0
mov r0, #0xc
mov r2, r1
bl SetScenarioScriptVar
mov r0, #0
mov r1, #0x11
bl ZinitScriptVariable
mov r0, #0
mov r1, #0x1b
bl ZinitScriptVariable
mov r8, #0
mov r6, #0x1a
mov r7, r8
mov r5, r8
mov r4, r6
_0204C568:
mov r2, r8, lsl #0x10
mov r0, r7
mov r1, r6
mov r3, r7
mov r2, r2, lsr #0x10
bl SaveScriptVariableValueAtIndex
add r0, r8, #4
mov r2, r0, lsl #0x10
mov r0, r5
mov r1, r4
mov r3, r5
mov r2, r2, lsr #0x10
bl SaveScriptVariableValueAtIndex
add r8, r8, #1
cmp r8, #4
blt _0204C568
mov r0, #0
mov r2, r0
mov r1, #0x13
bl SaveScriptVariableValue
mov r1, #0x14
sub r2, r1, #0x15
mov r0, #0
bl SaveScriptVariableValue
mov r0, #0
mov r2, r0
mov r1, #0x6f
bl SaveScriptVariableValue
ldmia sp!, {r4, r5, r6, r7, r8, pc}
arm_func_end InitScenarioScriptVars
arm_func_start sub_0204C5DC
sub_0204C5DC: ; 0x0204C5DC
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r5, r1
mov r0, #0
mov r4, r2
mov r1, r6
mov r2, r0
bl LoadScriptVariableValueAtIndex
str r0, [r5]
mov r1, r6
mov r0, #0
mov r2, #1
bl LoadScriptVariableValueAtIndex
str r0, [r4]
ldmia sp!, {r4, r5, r6, pc}
arm_func_end sub_0204C5DC
arm_func_start SetScenarioScriptVar
SetScenarioScriptVar: ; 0x0204C618
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
sub sp, sp, #0xc
mov r8, r0
mov r7, r1
mov r0, #0
mov r6, r2
mov r1, r8
mov r2, r0
bl LoadScriptVariableValueAtIndex
mov r5, r0
mov r1, r8
mov r0, #0
mov r2, #1
bl LoadScriptVariableValueAtIndex
mov r4, r0
stmia sp, {r4, r7}
ldr r1, _0204C6C4 ; =_0209DFA0
mov r0, #9
mov r2, r8
mov r3, r5
str r6, [sp, #8]
bl Debug_Print
cmp r8, #3
bne _0204C694
cmp r7, r5
cmpeq r6, r4
beq _0204C694
mov r0, #0
mov r2, r0
mov r1, #0x33
bl SaveScriptVariableValue
_0204C694:
mov r0, #0
mov r1, r8
mov r2, r0
mov r3, r7
bl SaveScriptVariableValueAtIndex
mov r1, r8
mov r3, r6
mov r0, #0
mov r2, #1
bl SaveScriptVariableValueAtIndex
add sp, sp, #0xc
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
.align 2, 0
_0204C6C4: .word _0209DFA0
arm_func_end SetScenarioScriptVar
arm_func_start sub_0204C6C8
sub_0204C6C8: ; 0x0204C6C8
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r0
mov r6, r1
mov r0, #0
mov r5, r2
mov r1, r7
mov r2, r0
bl LoadScriptVariableValueAtIndex
mov r4, r0
mov r1, r7
mov r0, #0
mov r2, #1
bl LoadScriptVariableValueAtIndex
cmp r4, #0x35
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
cmp r4, r6
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
bne _0204C72C
cmp r5, #0
blt _0204C72C
cmp r0, r5
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
_0204C72C:
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end sub_0204C6C8
arm_func_start sub_0204C734
sub_0204C734: ; 0x0204C734
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r0
mov r6, r1
mov r0, #0
mov r5, r2
mov r1, r7
mov r2, r0
bl LoadScriptVariableValueAtIndex
mov r4, r0
mov r1, r7
mov r0, #0
mov r2, #1
bl LoadScriptVariableValueAtIndex
cmp r4, #0x35
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
cmp r4, r6
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
bne _0204C7A4
cmp r5, #0
blt _0204C79C
cmp r0, r5
bgt _0204C7A4
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0204C79C:
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0204C7A4:
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end sub_0204C734
arm_func_start sub_0204C7AC
sub_0204C7AC: ; 0x0204C7AC
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r0
mov r6, r1
mov r0, #0
mov r5, r2
mov r1, r7
mov r2, r0
bl LoadScriptVariableValueAtIndex
mov r4, r0
mov r1, r7
mov r0, #0
mov r2, #1
bl LoadScriptVariableValueAtIndex
cmp r4, r6
bne _0204C800
cmp r5, #0
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
cmp r0, r5
moveq r0, #1
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
_0204C800:
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end sub_0204C7AC
arm_func_start sub_0204C808
sub_0204C808: ; 0x0204C808
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r0
mov r6, r1
mov r0, #0
mov r5, r2
mov r1, r7
mov r2, r0
bl LoadScriptVariableValueAtIndex
mov r4, r0
mov r1, r7
mov r0, #0
mov r2, #1
bl LoadScriptVariableValueAtIndex
cmp r4, #0x35
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
cmp r4, r6
movgt r0, #1
ldmgtia sp!, {r3, r4, r5, r6, r7, pc}
bne _0204C878
cmp r5, #0
blt _0204C870
cmp r0, r5
blt _0204C878
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0204C870:
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0204C878:
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end sub_0204C808
arm_func_start sub_0204C880
sub_0204C880: ; 0x0204C880
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r0
mov r6, r1
mov r0, #0
mov r5, r2
mov r1, r7
mov r2, r0
bl LoadScriptVariableValueAtIndex
mov r4, r0
mov r1, r7
mov r0, #0
mov r2, #1
bl LoadScriptVariableValueAtIndex
cmp r4, #0x35
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
cmp r4, r6
movgt r0, #1
ldmgtia sp!, {r3, r4, r5, r6, r7, pc}
bne _0204C8E4
cmp r5, #0
blt _0204C8E4
cmp r0, r5
movgt r0, #1
ldmgtia sp!, {r3, r4, r5, r6, r7, pc}
_0204C8E4:
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end sub_0204C880
arm_func_start GetSpecialEpisodeType
GetSpecialEpisodeType: ; 0x0204C8EC
ldr ip, _0204C8FC ; =LoadScriptVariableValue
mov r0, #0
mov r1, #0x4a
bx ip
.align 2, 0
_0204C8FC: .word LoadScriptVariableValue
arm_func_end GetSpecialEpisodeType
arm_func_start SetSpecialEpisodeType
SetSpecialEpisodeType: ; 0x0204C900
ldr ip, _0204C914 ; =SaveScriptVariableValue
mov r2, r0
mov r0, #0
mov r1, #0x4a
bx ip
.align 2, 0
_0204C914: .word SaveScriptVariableValue
arm_func_end SetSpecialEpisodeType
arm_func_start sub_0204C918
sub_0204C918: ; 0x0204C918
ldr r0, _0204C924 ; =DEBUG_SPECIAL_EPISODE_NUMBER
ldr r0, [r0]
bx lr
.align 2, 0
_0204C924: .word DEBUG_SPECIAL_EPISODE_NUMBER
arm_func_end sub_0204C918
arm_func_start sub_0204C928
sub_0204C928: ; 0x0204C928
ldr r1, _0204C934 ; =DEBUG_SPECIAL_EPISODE_NUMBER
str r0, [r1]
bx lr
.align 2, 0
_0204C934: .word DEBUG_SPECIAL_EPISODE_NUMBER
arm_func_end sub_0204C928