mirror of
https://github.com/pret/pokeheartgold.git
synced 2024-11-24 13:49:45 +00:00
28910 lines
507 KiB
ArmAsm
28910 lines
507 KiB
ArmAsm
#include "constants/abilities.h"
|
|
#include "constants/species.h"
|
|
#include "constants/sndseq.h"
|
|
#include "constants/items.h"
|
|
#include "constants/pokemon.h"
|
|
#include "constants/std_script.h"
|
|
.include "asm/macros.inc"
|
|
.include "overlay_02.inc"
|
|
.include "global.inc"
|
|
|
|
.text
|
|
|
|
thumb_func_start ov02_02245B80
|
|
ov02_02245B80: ; 0x02245B80
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
bl ov02_02245B9C
|
|
add r2, r0, #0
|
|
ldr r1, _02245B98 ; =ov02_02245BC8
|
|
add r0, r4, #0
|
|
bl TaskManager_Call
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_02245B98: .word ov02_02245BC8
|
|
thumb_func_end ov02_02245B80
|
|
|
|
thumb_func_start ov02_02245B9C
|
|
ov02_02245B9C: ; 0x02245B9C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #4
|
|
mov r1, #0xd0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
bne _02245BB4
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_02245BB4:
|
|
mov r1, #0
|
|
mov r2, #0xd0
|
|
bl MI_CpuFill8
|
|
str r5, [r4, #4]
|
|
mov r0, #4
|
|
str r0, [r4]
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02245B9C
|
|
|
|
thumb_func_start ov02_02245BC8
|
|
ov02_02245BC8: ; 0x02245BC8
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
bl TaskManager_GetEnv
|
|
add r4, r0, #0
|
|
ldrh r1, [r4, #8]
|
|
cmp r1, #4
|
|
bls _02245BDA
|
|
b _02245D06
|
|
_02245BDA:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02245BE6: ; jump table
|
|
.short _02245BF0 - _02245BE6 - 2 ; case 0
|
|
.short _02245C06 - _02245BE6 - 2 ; case 1
|
|
.short _02245C98 - _02245BE6 - 2 ; case 2
|
|
.short _02245CB0 - _02245BE6 - 2 ; case 3
|
|
.short _02245CF2 - _02245BE6 - 2 ; case 4
|
|
_02245BF0:
|
|
bl ov02_02245D18
|
|
mov r1, #0
|
|
add r0, r4, #0
|
|
strh r1, [r4, #0xa]
|
|
add r0, #0xcc
|
|
str r1, [r0]
|
|
ldrh r0, [r4, #8]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #8]
|
|
b _02245D06
|
|
_02245C06:
|
|
add r0, #0xcc
|
|
ldr r0, [r0]
|
|
cmp r0, #0xff
|
|
beq _02245C68
|
|
cmp r0, #0
|
|
beq _02245C26
|
|
cmp r0, #0x1e
|
|
beq _02245C26
|
|
cmp r0, #0x32
|
|
beq _02245C26
|
|
cmp r0, #0x3c
|
|
beq _02245C26
|
|
cmp r0, #0x46
|
|
beq _02245C26
|
|
cmp r0, #0x50
|
|
bne _02245C5A
|
|
_02245C26:
|
|
ldr r0, _02245D0C ; =SEQ_SE_DP_FW411
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
add r0, #0xcc
|
|
ldr r0, [r0]
|
|
cmp r0, #0x32
|
|
bne _02245C3C
|
|
ldr r0, _02245D10 ; =SEQ_SE_DP_F207
|
|
bl PlaySE
|
|
_02245C3C:
|
|
add r0, r4, #0
|
|
add r0, #0xcc
|
|
ldr r0, [r0]
|
|
cmp r0, #0x3c
|
|
blt _02245C5A
|
|
mov r1, #0xa
|
|
bl _s32_div_f
|
|
add r1, r0, #0
|
|
sub r1, r1, #5
|
|
lsl r1, r1, #0x16
|
|
ldr r0, _02245D0C ; =SEQ_SE_DP_FW411
|
|
asr r1, r1, #0x10
|
|
bl PlaySE_SetPitch
|
|
_02245C5A:
|
|
add r0, r4, #0
|
|
add r0, #0xcc
|
|
ldr r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0xcc
|
|
str r1, [r0]
|
|
_02245C68:
|
|
add r0, r4, #0
|
|
bl ov02_02245DE0
|
|
ldrh r1, [r4, #0xa]
|
|
add r0, r1, #1
|
|
strh r0, [r4, #0xa]
|
|
cmp r1, #0x5a
|
|
blo _02245D06
|
|
mov r0, #0x18
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
ldr r3, _02245D14 ; =0x00007FFF
|
|
mov r0, #3
|
|
add r2, r1, #0
|
|
bl BeginNormalPaletteFade
|
|
ldrh r0, [r4, #8]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #8]
|
|
b _02245D06
|
|
_02245C98:
|
|
bl ov02_02245DE0
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _02245D06
|
|
mov r0, #0
|
|
strh r0, [r4, #0xa]
|
|
ldrh r0, [r4, #8]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #8]
|
|
b _02245D06
|
|
_02245CB0:
|
|
ldrh r2, [r4, #0xa]
|
|
add r1, r2, #1
|
|
strh r1, [r4, #0xa]
|
|
cmp r2, #0x3c
|
|
blo _02245D06
|
|
bl ov02_02245DB0
|
|
ldr r0, [r4, #4]
|
|
add r0, #0x50
|
|
bl ov01_021EA284
|
|
ldr r0, [r4, #4]
|
|
mov r1, #4
|
|
ldr r0, [r0, #0x48]
|
|
bl ov01_021EA220
|
|
ldr r1, [r4, #4]
|
|
ldr r3, _02245D14 ; =0x00007FFF
|
|
str r0, [r1, #0x50]
|
|
mov r0, #0x12
|
|
mov r1, #1
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
ldr r0, [r4]
|
|
add r2, r1, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #3
|
|
bl BeginNormalPaletteFade
|
|
ldrh r0, [r4, #8]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #8]
|
|
b _02245D06
|
|
_02245CF2:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _02245D06
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r3, r4, pc}
|
|
_02245D06:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
_02245D0C: .word SEQ_SE_DP_FW411
|
|
_02245D10: .word SEQ_SE_DP_F207
|
|
_02245D14: .word 0x00007FFF
|
|
thumb_func_end ov02_02245BC8
|
|
|
|
thumb_func_start ov02_02245D18
|
|
ov02_02245D18: ; 0x02245D18
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
ldr r1, [r4]
|
|
add r0, #0xbc
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
add r0, r4, #0
|
|
ldr r3, [r4]
|
|
add r0, #0xc
|
|
mov r1, #0xae
|
|
mov r2, #0
|
|
bl ov01_021FBCD8
|
|
ldr r0, [r4]
|
|
add r1, r4, #0
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r0, #0xbc
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0x1c
|
|
add r1, #0xc
|
|
mov r2, #0xae
|
|
mov r3, #1
|
|
bl ov01_021FBE44
|
|
ldr r0, [r4]
|
|
add r1, r4, #0
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r0, #0xbc
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0x30
|
|
add r1, #0xc
|
|
mov r2, #0xae
|
|
mov r3, #2
|
|
bl ov01_021FBE44
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x44
|
|
add r1, #0xc
|
|
bl ov01_021FBF2C
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x44
|
|
add r1, #0x1c
|
|
bl ov01_021FBF50
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x44
|
|
add r1, #0x30
|
|
bl ov01_021FBF50
|
|
add r0, r4, #0
|
|
mov r1, #0x22
|
|
mov r3, #0xa
|
|
add r0, #0x44
|
|
lsl r1, r1, #0xe
|
|
mov r2, #0
|
|
lsl r3, r3, #0x10
|
|
bl ov01_021FC00C
|
|
add r4, #0x44
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov01_021FC004
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02245D18
|
|
|
|
thumb_func_start ov02_02245DB0
|
|
ov02_02245DB0: ; 0x02245DB0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0x44
|
|
mov r1, #0
|
|
bl ov01_021FC004
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x30
|
|
add r1, #0xbc
|
|
bl ov01_021FBE80
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x1c
|
|
add r1, #0xbc
|
|
bl ov01_021FBE80
|
|
add r4, #0xc
|
|
add r0, r4, #0
|
|
bl ov01_021FBDA8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02245DB0
|
|
|
|
thumb_func_start ov02_02245DE0
|
|
ov02_02245DE0: ; 0x02245DE0
|
|
push {r4, lr}
|
|
mov r1, #1
|
|
add r4, r0, #0
|
|
add r0, #0x1c
|
|
lsl r1, r1, #0xc
|
|
bl ov01_021FBEAC
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r0, #0x30
|
|
lsl r1, r1, #0xc
|
|
bl ov01_021FBEAC
|
|
add r4, #0x44
|
|
add r0, r4, #0
|
|
bl ov01_021FBF68
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_02245DE0
|
|
|
|
thumb_func_start ov02_02245E04
|
|
ov02_02245E04: ; 0x02245E04
|
|
push {r4, r5, r6, lr}
|
|
add r6, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r6, #0
|
|
mov r1, #0xa4
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
mov r2, #0xa4
|
|
bl MI_CpuFill8
|
|
add r0, r4, #0
|
|
add r0, #0xa0
|
|
str r6, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x8c
|
|
add r1, r6, #0
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
ldrh r1, [r5]
|
|
ldrb r2, [r5, #2]
|
|
add r0, r4, #0
|
|
add r3, r6, #0
|
|
bl ov01_021FBCD8
|
|
add r0, r4, #0
|
|
add r0, #0x10
|
|
add r1, r4, #0
|
|
bl ov01_021FBF2C
|
|
ldrh r1, [r5]
|
|
ldrb r3, [r5, #3]
|
|
ldr r2, [r5, #4]
|
|
add r0, r4, #0
|
|
bl ov02_02245ED8
|
|
add r0, r4, #0
|
|
add r0, #0x10
|
|
mov r1, #1
|
|
bl ov01_021FC004
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r0, #0x9e
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02245E04
|
|
|
|
thumb_func_start ov02_02245E68
|
|
ov02_02245E68: ; 0x02245E68
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r0, #0x10
|
|
mov r1, #0
|
|
bl ov01_021FC004
|
|
add r0, r5, #0
|
|
add r0, #0x9c
|
|
ldrb r0, [r0]
|
|
mov r6, #0
|
|
cmp r0, #0
|
|
ble _02245EB8
|
|
add r0, r5, #0
|
|
add r7, r5, #0
|
|
str r0, [sp]
|
|
add r0, #0x8c
|
|
add r4, r6, #0
|
|
add r7, #0x10
|
|
str r0, [sp]
|
|
_02245E8E:
|
|
add r1, r5, #0
|
|
add r1, #0x88
|
|
ldr r1, [r1]
|
|
add r0, r7, #0
|
|
add r1, r1, r4
|
|
bl ov01_021FBF5C
|
|
add r0, r5, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
ldr r1, [sp]
|
|
add r0, r0, r4
|
|
bl ov01_021FBE80
|
|
add r0, r5, #0
|
|
add r0, #0x9c
|
|
ldrb r0, [r0]
|
|
add r6, r6, #1
|
|
add r4, #0x14
|
|
cmp r6, r0
|
|
blt _02245E8E
|
|
_02245EB8:
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
add r0, #0x9c
|
|
strb r1, [r0]
|
|
add r0, r5, #0
|
|
bl ov01_021FBDA8
|
|
add r0, r5, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_02245E68
|
|
|
|
thumb_func_start ov02_02245ED8
|
|
ov02_02245ED8: ; 0x02245ED8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x20
|
|
add r5, r0, #0
|
|
str r3, [sp, #0xc]
|
|
add r0, #0x9c
|
|
ldrb r0, [r0]
|
|
add r7, r2, #0
|
|
str r1, [sp, #8]
|
|
cmp r0, #0
|
|
beq _02245F38
|
|
mov r6, #0
|
|
cmp r0, #0
|
|
ble _02245F2E
|
|
add r0, r5, #0
|
|
str r0, [sp, #0x10]
|
|
add r0, #0x10
|
|
str r0, [sp, #0x10]
|
|
add r0, r5, #0
|
|
str r0, [sp, #0x14]
|
|
add r0, #0x8c
|
|
add r4, r6, #0
|
|
str r0, [sp, #0x14]
|
|
_02245F04:
|
|
add r1, r5, #0
|
|
add r1, #0x88
|
|
ldr r1, [r1]
|
|
ldr r0, [sp, #0x10]
|
|
add r1, r1, r4
|
|
bl ov01_021FBF5C
|
|
add r0, r5, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
ldr r1, [sp, #0x14]
|
|
add r0, r0, r4
|
|
bl ov01_021FBE80
|
|
add r0, r5, #0
|
|
add r0, #0x9c
|
|
ldrb r0, [r0]
|
|
add r6, r6, #1
|
|
add r4, #0x14
|
|
cmp r6, r0
|
|
blt _02245F04
|
|
_02245F2E:
|
|
add r0, r5, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl FreeToHeap
|
|
_02245F38:
|
|
add r1, r5, #0
|
|
ldr r0, [sp, #0xc]
|
|
add r1, #0x9c
|
|
strb r0, [r1]
|
|
add r1, r5, #0
|
|
add r1, #0x9c
|
|
add r0, r5, #0
|
|
ldrb r2, [r1]
|
|
add r0, #0xa0
|
|
mov r1, #0x14
|
|
ldr r0, [r0]
|
|
mul r1, r2
|
|
bl AllocFromHeap
|
|
add r1, r5, #0
|
|
add r1, #0x88
|
|
str r0, [r1]
|
|
add r2, r5, #0
|
|
add r2, #0x9c
|
|
add r0, r5, #0
|
|
ldrb r3, [r2]
|
|
add r0, #0x88
|
|
mov r2, #0x14
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
mul r2, r3
|
|
bl MI_CpuFill8
|
|
add r0, r5, #0
|
|
add r0, #0x9c
|
|
ldrb r0, [r0]
|
|
mov r6, #0
|
|
cmp r0, #0
|
|
ble _02245FCA
|
|
add r0, r5, #0
|
|
str r0, [sp, #0x18]
|
|
add r0, #0x8c
|
|
str r0, [sp, #0x18]
|
|
add r0, r5, #0
|
|
str r0, [sp, #0x1c]
|
|
add r0, #0x10
|
|
add r4, r6, #0
|
|
str r0, [sp, #0x1c]
|
|
_02245F8E:
|
|
add r0, r5, #0
|
|
add r0, #0xa0
|
|
ldr r0, [r0]
|
|
ldr r2, [sp, #8]
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x18]
|
|
add r1, r5, #0
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
ldrh r3, [r7]
|
|
add r0, r0, r4
|
|
bl ov01_021FBE44
|
|
add r1, r5, #0
|
|
add r1, #0x88
|
|
ldr r1, [r1]
|
|
ldr r0, [sp, #0x1c]
|
|
add r1, r1, r4
|
|
bl ov01_021FBF50
|
|
add r0, r5, #0
|
|
add r0, #0x9c
|
|
ldrb r0, [r0]
|
|
add r6, r6, #1
|
|
add r7, r7, #2
|
|
add r4, #0x14
|
|
cmp r6, r0
|
|
blt _02245F8E
|
|
_02245FCA:
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02245ED8
|
|
|
|
thumb_func_start ov02_02245FD0
|
|
ov02_02245FD0: ; 0x02245FD0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r0, #0x9c
|
|
ldrb r0, [r0]
|
|
mov r7, #0
|
|
add r6, r7, #0
|
|
cmp r0, #0
|
|
ble _0224602E
|
|
add r4, r7, #0
|
|
_02245FE2:
|
|
add r0, r5, #0
|
|
add r0, #0x9e
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
beq _02245FFE
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _0224600C
|
|
_02245FFE:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_0224600C:
|
|
bl _ffix
|
|
add r1, r0, #0
|
|
add r0, r5, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
add r0, r0, r4
|
|
bl ov01_021FBEE4
|
|
add r7, r7, r0
|
|
add r0, r5, #0
|
|
add r0, #0x9c
|
|
ldrb r0, [r0]
|
|
add r6, r6, #1
|
|
add r4, #0x14
|
|
cmp r6, r0
|
|
blt _02245FE2
|
|
_0224602E:
|
|
add r0, r5, #0
|
|
add r0, #0x10
|
|
bl ov01_021FBF68
|
|
add r5, #0x9c
|
|
ldrb r0, [r5]
|
|
cmp r7, r0
|
|
bne _02246042
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02246042:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02245FD0
|
|
|
|
thumb_func_start ov02_02246048
|
|
ov02_02246048: ; 0x02246048
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r0, #0x9c
|
|
ldrb r0, [r0]
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
ble _022460A2
|
|
mov r7, #0x3f
|
|
add r6, r4, #0
|
|
lsl r7, r7, #0x18
|
|
_0224605C:
|
|
add r0, r5, #0
|
|
add r0, #0x9e
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
beq _02246076
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
add r0, r7, #0
|
|
bl _fadd
|
|
b _02246082
|
|
_02246076:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r7, #0
|
|
bl _fsub
|
|
_02246082:
|
|
bl _ffix
|
|
add r1, r0, #0
|
|
add r0, r5, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
add r0, r0, r6
|
|
bl ov01_021FBEAC
|
|
add r0, r5, #0
|
|
add r0, #0x9c
|
|
ldrb r0, [r0]
|
|
add r4, r4, #1
|
|
add r6, #0x14
|
|
cmp r4, r0
|
|
blt _0224605C
|
|
_022460A2:
|
|
add r5, #0x10
|
|
add r0, r5, #0
|
|
bl ov01_021FBF68
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_02246048
|
|
|
|
thumb_func_start ov02_022460AC
|
|
ov02_022460AC: ; 0x022460AC
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r1, r4, #0
|
|
bl ov02_022460CC
|
|
add r2, r0, #0
|
|
ldr r1, _022460C8 ; =ov02_022460FC
|
|
add r0, r5, #0
|
|
bl TaskManager_Call
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_022460C8: .word ov02_022460FC
|
|
thumb_func_end ov02_022460AC
|
|
|
|
thumb_func_start ov02_022460CC
|
|
ov02_022460CC: ; 0x022460CC
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r0, #4
|
|
mov r1, #0x14
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
bne _022460E6
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_022460E6:
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
bl MI_CpuFill8
|
|
str r5, [r4, #4]
|
|
strh r6, [r4, #0x10]
|
|
mov r0, #4
|
|
str r0, [r4]
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_022460CC
|
|
|
|
thumb_func_start ov02_022460FC
|
|
ov02_022460FC: ; 0x022460FC
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
bl TaskManager_GetEnv
|
|
add r4, r0, #0
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
beq _02246116
|
|
cmp r0, #1
|
|
beq _02246158
|
|
cmp r0, #2
|
|
beq _0224616A
|
|
b _0224617C
|
|
_02246116:
|
|
ldrh r1, [r4, #0x10]
|
|
mov r0, #0xc
|
|
ldr r2, _02246184 ; =ov02_02253264
|
|
mul r0, r1
|
|
ldr r1, [r4]
|
|
add r0, r2, r0
|
|
bl ov02_02245E04
|
|
str r0, [r4, #8]
|
|
ldr r0, [r4, #4]
|
|
add r1, sp, #0
|
|
ldr r0, [r0, #0x40]
|
|
bl PlayerAvatar_GetPositionVec
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [sp]
|
|
ldr r2, [sp, #4]
|
|
ldr r3, [sp, #8]
|
|
add r0, #0x10
|
|
bl ov01_021FC00C
|
|
ldrh r1, [r4, #0x10]
|
|
mov r0, #0xc
|
|
add r2, r1, #0
|
|
mul r2, r0
|
|
ldr r0, _02246188 ; =ov02_02253264 + 8
|
|
ldrh r0, [r0, r2]
|
|
bl PlaySE
|
|
ldrh r0, [r4, #0xc]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #0xc]
|
|
b _0224617C
|
|
_02246158:
|
|
ldr r0, [r4, #8]
|
|
bl ov02_02245FD0
|
|
cmp r0, #0
|
|
beq _0224617C
|
|
ldrh r0, [r4, #0xc]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #0xc]
|
|
b _0224617C
|
|
_0224616A:
|
|
ldr r0, [r4, #8]
|
|
bl ov02_02245E68
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r3, r4, pc}
|
|
_0224617C:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_02246184: .word ov02_02253264
|
|
_02246188: .word ov02_02253264 + 8
|
|
thumb_func_end ov02_022460FC
|
|
|
|
thumb_func_start ShowLegendaryWing
|
|
ShowLegendaryWing: ; 0x0224618C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r1, r4, #0
|
|
bl ov02_022461AC
|
|
add r2, r0, #0
|
|
ldr r1, _022461A8 ; =ov02_022461DC
|
|
add r0, r5, #0
|
|
bl TaskManager_Call
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_022461A8: .word ov02_022461DC
|
|
thumb_func_end ShowLegendaryWing
|
|
|
|
thumb_func_start ov02_022461AC
|
|
ov02_022461AC: ; 0x022461AC
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r0, #4
|
|
mov r1, #0x18
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
bne _022461C6
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_022461C6:
|
|
mov r1, #0
|
|
mov r2, #0x18
|
|
bl MI_CpuFill8
|
|
str r5, [r4, #4]
|
|
strb r6, [r4, #0x10]
|
|
mov r0, #4
|
|
str r0, [r4]
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_022461AC
|
|
|
|
thumb_func_start ov02_022461DC
|
|
ov02_022461DC: ; 0x022461DC
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
bl TaskManager_GetEnv
|
|
add r4, r0, #0
|
|
ldrh r0, [r4, #0x12]
|
|
cmp r0, #4
|
|
bhi _022462C0
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_022461FA: ; jump table
|
|
.short _02246204 - _022461FA - 2 ; case 0
|
|
.short _0224623A - _022461FA - 2 ; case 1
|
|
.short _02246276 - _022461FA - 2 ; case 2
|
|
.short _02246282 - _022461FA - 2 ; case 3
|
|
.short _022462A4 - _022461FA - 2 ; case 4
|
|
_02246204:
|
|
ldrb r0, [r4, #0x10]
|
|
ldr r1, _022462C8 ; =ov02_02253254
|
|
lsl r0, r0, #3
|
|
add r0, r1, r0
|
|
ldr r1, [r4]
|
|
bl ov02_02245E04
|
|
str r0, [r4, #8]
|
|
ldr r0, [r4, #4]
|
|
add r1, sp, #0
|
|
ldr r0, [r0, #0x40]
|
|
bl PlayerAvatar_GetPositionVec
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [sp]
|
|
ldr r2, [sp, #4]
|
|
ldr r3, [sp, #8]
|
|
add r0, #0x10
|
|
bl ov01_021FC00C
|
|
ldr r0, _022462CC ; =SEQ_SE_GS_STOPPERKAIJO
|
|
bl PlaySE
|
|
ldrh r0, [r4, #0x12]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #0x12]
|
|
b _022462C0
|
|
_0224623A:
|
|
ldr r0, [r4, #8]
|
|
bl ov02_02245FD0
|
|
cmp r0, #0
|
|
beq _022462C0
|
|
ldrb r2, [r4, #0x10]
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0xae
|
|
lsl r3, r2, #3
|
|
ldr r2, _022462D0 ; =ov02_02253D80
|
|
ldr r2, [r2, r3]
|
|
mov r3, #3
|
|
bl ov02_02245ED8
|
|
ldr r0, _022462D4 ; =ov02_022462DC
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
mov r2, #0
|
|
str r0, [r4, #0xc]
|
|
add r0, r5, #0
|
|
mov r1, #3
|
|
add r3, r2, #0
|
|
bl QueueScript
|
|
ldrh r0, [r4, #0x12]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #0x12]
|
|
b _022462C0
|
|
_02246276:
|
|
ldr r0, [r4, #0xc]
|
|
bl DestroySysTask
|
|
ldrh r0, [r4, #0x12]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #0x12]
|
|
_02246282:
|
|
ldr r0, [r4, #8]
|
|
bl ov02_02245FD0
|
|
cmp r0, #0
|
|
beq _022462C0
|
|
ldrb r2, [r4, #0x10]
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0xae
|
|
lsl r3, r2, #3
|
|
ldr r2, _022462D8 ; =ov02_02253D84
|
|
ldr r2, [r2, r3]
|
|
mov r3, #3
|
|
bl ov02_02245ED8
|
|
ldrh r0, [r4, #0x12]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #0x12]
|
|
_022462A4:
|
|
ldr r0, [r4, #8]
|
|
bl ov02_02245FD0
|
|
cmp r0, #0
|
|
beq _022462C0
|
|
ldr r0, [r4, #8]
|
|
bl ov02_02245E68
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r4, r5, pc}
|
|
_022462C0:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_022462C8: .word ov02_02253254
|
|
_022462CC: .word SEQ_SE_GS_STOPPERKAIJO
|
|
_022462D0: .word ov02_02253D80
|
|
_022462D4: .word ov02_022462DC
|
|
_022462D8: .word ov02_02253D84
|
|
thumb_func_end ov02_022461DC
|
|
|
|
thumb_func_start ov02_022462DC
|
|
ov02_022462DC: ; 0x022462DC
|
|
ldr r3, _022462E4 ; =ov02_02246048
|
|
ldr r0, [r1, #8]
|
|
bx r3
|
|
nop
|
|
_022462E4: .word ov02_02246048
|
|
thumb_func_end ov02_022462DC
|
|
|
|
thumb_func_start ov02_022462E8
|
|
ov02_022462E8: ; 0x022462E8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
bl ov02_02246304
|
|
add r2, r0, #0
|
|
ldr r1, _02246300 ; =ov02_02246330
|
|
add r0, r4, #0
|
|
bl TaskManager_Call
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_02246300: .word ov02_02246330
|
|
thumb_func_end ov02_022462E8
|
|
|
|
thumb_func_start ov02_02246304
|
|
ov02_02246304: ; 0x02246304
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #4
|
|
mov r1, #0x10
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
bne _0224631C
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0224631C:
|
|
mov r1, #0
|
|
mov r2, #0x10
|
|
bl MI_CpuFill8
|
|
str r5, [r4, #4]
|
|
mov r0, #4
|
|
str r0, [r4]
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02246304
|
|
|
|
thumb_func_start ov02_02246330
|
|
ov02_02246330: ; 0x02246330
|
|
push {r4, lr}
|
|
bl TaskManager_GetEnv
|
|
add r4, r0, #0
|
|
ldrb r1, [r4, #8]
|
|
cmp r1, #0
|
|
beq _02246348
|
|
cmp r1, #1
|
|
beq _0224635A
|
|
cmp r1, #2
|
|
beq _02246374
|
|
b _0224638E
|
|
_02246348:
|
|
bl ov02_02246398
|
|
ldr r0, _02246394 ; =SEQ_SE_GS_AJITO_SIREN
|
|
bl PlaySE
|
|
ldrb r0, [r4, #8]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #8]
|
|
b _0224638E
|
|
_0224635A:
|
|
bl ov02_02246490
|
|
cmp r0, #0
|
|
beq _0224638E
|
|
ldrb r1, [r4, #0xc]
|
|
add r0, r1, #1
|
|
strb r0, [r4, #0xc]
|
|
cmp r1, #1
|
|
blo _0224638E
|
|
ldrb r0, [r4, #8]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #8]
|
|
b _0224638E
|
|
_02246374:
|
|
ldr r0, _02246394 ; =SEQ_SE_GS_AJITO_SIREN
|
|
bl IsSEPlaying
|
|
cmp r0, #0
|
|
bne _0224638E
|
|
add r0, r4, #0
|
|
bl ov02_02246444
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_0224638E:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_02246394: .word SEQ_SE_GS_AJITO_SIREN
|
|
thumb_func_end ov02_02246330
|
|
|
|
thumb_func_start ov02_02246398
|
|
ov02_02246398: ; 0x02246398
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
mov r0, #0
|
|
strb r0, [r5, #0xd]
|
|
ldrb r3, [r5, #0xd]
|
|
mov r0, #0x1f
|
|
mov r1, #2
|
|
sub r0, r0, r3
|
|
str r0, [sp]
|
|
ldr r0, _02246440 ; =0x04000050
|
|
mov r2, #5
|
|
bl G2x_SetBlendAlpha_
|
|
ldr r1, [r5]
|
|
mov r0, #0xae
|
|
bl NARC_New
|
|
mov r1, #0x20
|
|
str r1, [sp]
|
|
ldr r1, [r5]
|
|
mov r2, #0
|
|
str r1, [sp, #4]
|
|
mov r1, #0xc
|
|
add r3, r2, #0
|
|
add r4, r0, #0
|
|
bl GfGfxLoader_GXLoadPalFromOpenNarc
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0x40
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
ldr r0, [r5]
|
|
mov r1, #0xd
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r5, #4]
|
|
add r0, r4, #0
|
|
ldr r2, [r2, #8]
|
|
mov r3, #1
|
|
bl GfGfxLoader_LoadCharDataFromOpenNarc
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5]
|
|
mov r1, #0xe
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r5, #4]
|
|
add r0, r4, #0
|
|
ldr r2, [r2, #8]
|
|
mov r3, #1
|
|
bl GfGfxLoader_LoadScrnDataFromOpenNarc
|
|
ldr r0, [r5, #4]
|
|
mov r1, #0
|
|
ldr r0, [r0, #8]
|
|
bl GetBgPriority
|
|
strb r0, [r5, #0xe]
|
|
ldr r0, [r5, #4]
|
|
mov r1, #1
|
|
ldr r0, [r0, #8]
|
|
bl GetBgPriority
|
|
strb r0, [r5, #0xf]
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl SetBgPriority
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl SetBgPriority
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl GX_EngineAToggleLayers
|
|
add r0, r4, #0
|
|
bl NARC_Delete
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_02246440: .word 0x04000050
|
|
thumb_func_end ov02_02246398
|
|
|
|
thumb_func_start ov02_02246444
|
|
ov02_02246444: ; 0x02246444
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl GX_EngineAToggleLayers
|
|
ldrb r1, [r4, #0xe]
|
|
mov r0, #0
|
|
bl SetBgPriority
|
|
ldrb r1, [r4, #0xf]
|
|
mov r0, #1
|
|
bl SetBgPriority
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
ldr r0, [r0, #8]
|
|
bl BgClearTilemapBufferAndCommit
|
|
ldr r3, [r4]
|
|
mov r0, #1
|
|
mov r1, #0x40
|
|
mov r2, #0
|
|
bl BG_ClearCharDataRange
|
|
mov r1, #0
|
|
ldr r0, _0224648C ; =0x04000050
|
|
add r2, r1, #0
|
|
mov r3, #0x1f
|
|
str r1, [sp]
|
|
bl G2x_SetBlendAlpha_
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_0224648C: .word 0x04000050
|
|
thumb_func_end ov02_02246444
|
|
|
|
thumb_func_start ov02_02246490
|
|
ov02_02246490: ; 0x02246490
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
ldrb r0, [r4, #9]
|
|
cmp r0, #0
|
|
beq _022464A2
|
|
cmp r0, #1
|
|
beq _022464B2
|
|
b _022464F4
|
|
_022464A2:
|
|
mov r0, #0
|
|
strb r0, [r4, #0xb]
|
|
strb r0, [r4, #0xa]
|
|
strb r0, [r4, #0xd]
|
|
ldrb r0, [r4, #9]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #9]
|
|
b _02246502
|
|
_022464B2:
|
|
ldrb r1, [r4, #0xb]
|
|
add r0, r1, #1
|
|
strb r0, [r4, #0xb]
|
|
cmp r1, #0
|
|
bne _02246502
|
|
ldrb r3, [r4, #0xd]
|
|
mov r0, #0x1f
|
|
mov r1, #2
|
|
sub r0, r0, r3
|
|
str r0, [sp]
|
|
ldr r0, _02246508 ; =0x04000050
|
|
mov r2, #5
|
|
bl G2x_SetBlendAlpha_
|
|
ldrb r1, [r4, #0xa]
|
|
add r0, r1, #1
|
|
strb r0, [r4, #0xa]
|
|
cmp r1, #0xc
|
|
ldrb r0, [r4, #0xd]
|
|
bhs _022464DE
|
|
add r0, r0, #1
|
|
b _022464E0
|
|
_022464DE:
|
|
sub r0, r0, #1
|
|
_022464E0:
|
|
strb r0, [r4, #0xd]
|
|
mov r0, #0
|
|
strb r0, [r4, #0xb]
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0x18
|
|
bls _02246502
|
|
ldrb r0, [r4, #9]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #9]
|
|
b _02246502
|
|
_022464F4:
|
|
mov r0, #0
|
|
strb r0, [r4, #0xa]
|
|
strb r0, [r4, #0xb]
|
|
strb r0, [r4, #9]
|
|
add sp, #4
|
|
mov r0, #1
|
|
pop {r3, r4, pc}
|
|
_02246502:
|
|
mov r0, #0
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
_02246508: .word 0x04000050
|
|
thumb_func_end ov02_02246490
|
|
|
|
thumb_func_start ov02_0224650C
|
|
ov02_0224650C: ; 0x0224650C
|
|
push {r4, r5, r6, lr}
|
|
add r6, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r6, #0
|
|
mov r1, #0x38
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
mov r2, #0x38
|
|
bl MI_CpuFill8
|
|
str r6, [r4]
|
|
add r0, r6, #0
|
|
str r5, [r4, #4]
|
|
bl Camera_New
|
|
str r0, [r4, #0x18]
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov02_0224650C
|
|
|
|
thumb_func_start ov02_02246534
|
|
ov02_02246534: ; 0x02246534
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x18]
|
|
bl Camera_Delete
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02246534
|
|
|
|
thumb_func_start ov02_02246548
|
|
ov02_02246548: ; 0x02246548
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
add r4, r2, #0
|
|
add r6, r3, #0
|
|
cmp r1, #0
|
|
ble _02246568
|
|
lsl r0, r1, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _02246576
|
|
_02246568:
|
|
lsl r0, r1, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_02246576:
|
|
bl _ffix
|
|
strh r0, [r5, #8]
|
|
cmp r4, #0
|
|
ble _02246592
|
|
lsl r0, r4, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _022465A0
|
|
_02246592:
|
|
lsl r0, r4, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_022465A0:
|
|
bl _ffix
|
|
strh r0, [r5, #0xa]
|
|
strh r6, [r5, #0xe]
|
|
add r0, sp, #0x10
|
|
ldrh r0, [r0, #0x10]
|
|
strh r0, [r5, #0x12]
|
|
mov r0, #0
|
|
strh r0, [r5, #0x10]
|
|
ldrh r0, [r5, #0x12]
|
|
cmp r0, #0
|
|
beq _022465CA
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _022465D8
|
|
_022465CA:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_022465D8:
|
|
bl _ffix
|
|
add r1, r0, #0
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #0xe
|
|
bl FX_Div
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [r5, #4]
|
|
ldr r1, [r5, #0x18]
|
|
ldr r0, [r0, #0x24]
|
|
bl Camera_Copy
|
|
ldr r1, [r5, #0x18]
|
|
add r0, sp, #0
|
|
bl Camera_GetLookAtCamTarget
|
|
add r4, sp, #0
|
|
add r3, r5, #0
|
|
add r3, #0x20
|
|
ldmia r4!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r4]
|
|
add r4, r2, #0
|
|
str r0, [r3]
|
|
add r3, r5, #0
|
|
ldmia r4!, {r0, r1}
|
|
add r3, #0x2c
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r4]
|
|
str r0, [r3]
|
|
ldr r1, [r5, #0x18]
|
|
add r0, r2, #0
|
|
bl Camera_SetFixedTarget
|
|
ldr r0, [r5, #0x18]
|
|
bl Camera_SetStaticPtr
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02246548
|
|
|
|
thumb_func_start ov02_0224662C
|
|
ov02_0224662C: ; 0x0224662C
|
|
mov r1, #0
|
|
strh r1, [r0, #0x10]
|
|
ldr r0, [r0, #4]
|
|
ldr r3, _02246638 ; =sub_0202313C
|
|
ldr r0, [r0, #0x24]
|
|
bx r3
|
|
.balign 4, 0
|
|
_02246638: .word Camera_SetStaticPtr
|
|
thumb_func_end ov02_0224662C
|
|
|
|
thumb_func_start ov02_0224663C
|
|
ov02_0224663C: ; 0x0224663C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldrh r2, [r5, #0x10]
|
|
add r0, #0x10
|
|
add r1, r2, #1
|
|
strh r1, [r5, #0x10]
|
|
cmp r2, #0
|
|
ldrh r2, [r5, #0x10]
|
|
beq _02246666
|
|
ldrh r1, [r0]
|
|
add r1, r1, #1
|
|
strh r1, [r0]
|
|
lsl r0, r2, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _0224667A
|
|
_02246666:
|
|
ldrh r1, [r0]
|
|
add r1, r1, #1
|
|
strh r1, [r0]
|
|
lsl r0, r2, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_0224667A:
|
|
bl _ffix
|
|
add r2, r0, #0
|
|
ldr r0, [r5, #0x14]
|
|
asr r3, r2, #0x1f
|
|
asr r1, r0, #0x1f
|
|
bl _ll_mul
|
|
mov r2, #2
|
|
mov r3, #0
|
|
lsl r2, r2, #0xa
|
|
add r0, r0, r2
|
|
adc r1, r3
|
|
lsl r1, r1, #0x14
|
|
lsr r0, r0, #0xc
|
|
orr r0, r1
|
|
bl GF_SinDegFX32
|
|
mov r2, #8
|
|
ldrsh r2, [r5, r2]
|
|
add r4, r0, #0
|
|
asr r6, r4, #0x1f
|
|
add r1, r6, #0
|
|
asr r3, r2, #0x1f
|
|
bl _ll_mul
|
|
add r2, r0, #0
|
|
mov r0, #2
|
|
add r3, r1, #0
|
|
mov r7, #0
|
|
lsl r0, r0, #0xa
|
|
add r0, r2, r0
|
|
adc r3, r7
|
|
ldr r1, [r5, #0x2c]
|
|
lsl r2, r3, #0x14
|
|
lsr r0, r0, #0xc
|
|
orr r0, r2
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x20]
|
|
mov r2, #0xa
|
|
ldrsh r2, [r5, r2]
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
asr r3, r2, #0x1f
|
|
bl _ll_mul
|
|
mov r4, #2
|
|
add r3, r7, #0
|
|
lsl r4, r4, #0xa
|
|
add r4, r0, r4
|
|
adc r1, r3
|
|
lsl r0, r1, #0x14
|
|
lsr r1, r4, #0xc
|
|
ldr r2, [r5, #0x30]
|
|
orr r1, r0
|
|
add r0, r2, r1
|
|
str r0, [r5, #0x24]
|
|
ldrh r1, [r5, #0x10]
|
|
ldrh r0, [r5, #0x12]
|
|
cmp r1, r0
|
|
bhs _022466F8
|
|
add r0, r3, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022466F8:
|
|
ldr r0, [r5, #0x2c]
|
|
str r0, [r5, #0x20]
|
|
ldr r0, [r5, #0x30]
|
|
str r0, [r5, #0x24]
|
|
strh r3, [r5, #0x10]
|
|
ldrh r0, [r5, #0xe]
|
|
sub r0, r0, #1
|
|
strh r0, [r5, #0xe]
|
|
ldrh r0, [r5, #0xe]
|
|
cmp r0, #0
|
|
bne _02246710
|
|
mov r3, #1
|
|
_02246710:
|
|
add r0, r3, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_0224663C
|
|
|
|
thumb_func_start ov02_02246714
|
|
ov02_02246714: ; 0x02246714
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r1, sp, #8
|
|
ldrh r1, [r1, #0x10]
|
|
add r2, r6, #0
|
|
add r3, r7, #0
|
|
str r1, [sp]
|
|
add r1, r4, #0
|
|
bl ov02_02246744
|
|
add r2, r0, #0
|
|
ldr r1, _02246740 ; =ov02_02246798
|
|
add r0, r5, #0
|
|
bl TaskManager_Call
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02246740: .word ov02_02246798
|
|
thumb_func_end ov02_02246714
|
|
|
|
thumb_func_start ov02_02246744
|
|
ov02_02246744: ; 0x02246744
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r0, #4
|
|
mov r1, #0xc
|
|
add r7, r2, #0
|
|
str r3, [sp, #4]
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
bne _02246766
|
|
bl GF_AssertFail
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02246766:
|
|
mov r1, #0
|
|
mov r2, #0xc
|
|
bl MI_CpuFill8
|
|
str r5, [r4, #4]
|
|
mov r1, #4
|
|
str r1, [r4]
|
|
ldr r0, [r4, #4]
|
|
bl ov02_0224650C
|
|
str r0, [r4, #8]
|
|
add r0, sp, #0x10
|
|
ldrh r0, [r0, #0x10]
|
|
lsl r1, r6, #0x10
|
|
lsl r2, r7, #0x10
|
|
str r0, [sp]
|
|
ldr r0, [r4, #8]
|
|
ldr r3, [sp, #4]
|
|
asr r1, r1, #0x10
|
|
asr r2, r2, #0x10
|
|
bl ov02_02246548
|
|
add r0, r4, #0
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_02246744
|
|
|
|
thumb_func_start ov02_02246798
|
|
ov02_02246798: ; 0x02246798
|
|
push {r4, lr}
|
|
bl TaskManager_GetEnv
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #8]
|
|
bl ov02_0224663C
|
|
cmp r0, #0
|
|
bne _022467AE
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_022467AE:
|
|
ldr r0, [r4, #8]
|
|
bl ov02_0224662C
|
|
ldr r0, [r4, #8]
|
|
bl ov02_02246534
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_02246798
|
|
|
|
thumb_func_start OpenAlphHiddenRoom
|
|
OpenAlphHiddenRoom: ; 0x022467C4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
lsl r1, r5, #0x18
|
|
lsr r1, r1, #0x18
|
|
bl ov02_022467E8
|
|
add r2, r0, #0
|
|
ldr r1, _022467E4 ; =ov02_02246818
|
|
add r0, r4, #0
|
|
bl TaskManager_Call
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_022467E4: .word ov02_02246818
|
|
thumb_func_end OpenAlphHiddenRoom
|
|
|
|
thumb_func_start ov02_022467E8
|
|
ov02_022467E8: ; 0x022467E8
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r0, #4
|
|
mov r1, #0x1c
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
bne _02246802
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_02246802:
|
|
mov r1, #0
|
|
mov r2, #0x1c
|
|
bl MI_CpuFill8
|
|
str r5, [r4, #4]
|
|
strb r6, [r4, #0x19]
|
|
mov r0, #4
|
|
str r0, [r4]
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_022467E8
|
|
|
|
thumb_func_start ov02_02246818
|
|
ov02_02246818: ; 0x02246818
|
|
push {r4, lr}
|
|
bl TaskManager_GetEnv
|
|
add r4, r0, #0
|
|
ldrb r1, [r4, #0x18]
|
|
cmp r1, #0
|
|
beq _0224682C
|
|
cmp r1, #1
|
|
beq _0224683E
|
|
b _02246862
|
|
_0224682C:
|
|
bl ov02_0224686C
|
|
ldr r0, _02246868 ; =0x000005DC
|
|
bl PlaySE
|
|
ldrb r0, [r4, #0x18]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x18]
|
|
b _02246862
|
|
_0224683E:
|
|
bl ov02_022469A0
|
|
cmp r0, #0
|
|
beq _02246862
|
|
ldr r0, _02246868 ; =0x000005DC
|
|
bl PlaySE
|
|
ldrb r0, [r4, #0x18]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x18]
|
|
add r0, r4, #0
|
|
bl ov02_02246964
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02246862:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_02246868: .word 0x000005DC
|
|
thumb_func_end ov02_02246818
|
|
|
|
thumb_func_start ov02_0224686C
|
|
ov02_0224686C: ; 0x0224686C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
ldr r1, [r5]
|
|
mov r0, #0xae
|
|
bl NARC_New
|
|
mov r1, #0x20
|
|
str r1, [sp]
|
|
ldr r1, [r5]
|
|
mov r2, #0
|
|
str r1, [sp, #4]
|
|
mov r1, #0xf
|
|
add r3, r2, #0
|
|
add r4, r0, #0
|
|
bl GfGfxLoader_GXLoadPalFromOpenNarc
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5]
|
|
mov r1, #0x10
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r5, #4]
|
|
add r0, r4, #0
|
|
ldr r2, [r2, #8]
|
|
mov r3, #1
|
|
bl GfGfxLoader_LoadCharDataFromOpenNarc
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5]
|
|
mov r1, #0x11
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r5, #4]
|
|
add r0, r4, #0
|
|
ldr r2, [r2, #8]
|
|
mov r3, #1
|
|
bl GfGfxLoader_LoadScrnDataFromOpenNarc
|
|
ldr r0, [r5, #4]
|
|
mov r1, #1
|
|
ldr r0, [r0, #8]
|
|
bl GetBgPriority
|
|
strb r0, [r5, #0x1a]
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl SetBgPriority
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl GX_EngineAToggleLayers
|
|
add r0, r4, #0
|
|
bl NARC_Delete
|
|
ldr r0, [r5, #4]
|
|
add r1, r5, #0
|
|
ldr r0, [r0, #8]
|
|
ldr r2, _0224695C ; =ov02_0225324C
|
|
add r1, #8
|
|
bl AddWindow
|
|
add r0, r5, #0
|
|
add r0, #8
|
|
mov r1, #9
|
|
bl FillWindowPixelBuffer
|
|
ldr r3, [r5]
|
|
mov r0, #0
|
|
mov r1, #0x1b
|
|
mov r2, #0xc6
|
|
bl NewMsgDataFromNarc
|
|
ldrb r1, [r5, #0x19]
|
|
add r4, r0, #0
|
|
bl NewString_ReadMsgData
|
|
add r7, r0, #0
|
|
mov r0, #3
|
|
add r1, r7, #0
|
|
mov r2, #0
|
|
bl FontID_String_GetWidth
|
|
lsl r0, r0, #0x18
|
|
mov r1, #0
|
|
lsr r6, r0, #0x18
|
|
mov r3, #0x70
|
|
sub r6, r3, r6
|
|
lsr r3, r6, #0x1f
|
|
add r3, r6, r3
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _02246960 ; =0x000F0E09
|
|
add r2, r7, #0
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
str r1, [sp, #0xc]
|
|
add r0, #8
|
|
mov r1, #3
|
|
asr r3, r3, #1
|
|
bl AddTextPrinterParameterized2
|
|
add r5, #8
|
|
add r0, r5, #0
|
|
bl ScheduleWindowCopyToVram
|
|
add r0, r7, #0
|
|
bl String_Delete
|
|
add r0, r4, #0
|
|
bl DestroyMsgData
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0224695C: .word ov02_0225324C
|
|
_02246960: .word 0x000F0E09
|
|
thumb_func_end ov02_0224686C
|
|
|
|
thumb_func_start ov02_02246964
|
|
ov02_02246964: ; 0x02246964
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl GX_EngineAToggleLayers
|
|
ldrb r1, [r4, #0x1a]
|
|
mov r0, #1
|
|
bl SetBgPriority
|
|
add r0, r4, #0
|
|
add r0, #8
|
|
bl ClearWindowTilemapAndScheduleTransfer
|
|
add r0, r4, #0
|
|
add r0, #8
|
|
bl RemoveWindow
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
ldr r0, [r0, #8]
|
|
bl BgClearTilemapBufferAndCommit
|
|
mov r0, #1
|
|
ldr r3, [r4]
|
|
lsl r1, r0, #0xc
|
|
mov r2, #0
|
|
bl BG_ClearCharDataRange
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_02246964
|
|
|
|
thumb_func_start ov02_022469A0
|
|
ov02_022469A0: ; 0x022469A0
|
|
ldr r0, _022469B0 ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #1
|
|
tst r1, r0
|
|
bne _022469AC
|
|
mov r0, #0
|
|
_022469AC:
|
|
bx lr
|
|
nop
|
|
_022469B0: .word gSystem
|
|
thumb_func_end ov02_022469A0
|
|
|
|
thumb_func_start ov02_022469B4
|
|
ov02_022469B4: ; 0x022469B4
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
add r5, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl ov02_022469D8
|
|
add r2, r0, #0
|
|
ldr r1, _022469D4 ; =ov02_02246A34
|
|
add r0, r5, #0
|
|
bl TaskManager_Call
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_022469D4: .word ov02_02246A34
|
|
thumb_func_end ov02_022469B4
|
|
|
|
thumb_func_start ov02_022469D8
|
|
ov02_022469D8: ; 0x022469D8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r0, #4
|
|
mov r1, #0x1c
|
|
add r7, r2, #0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
bne _022469F8
|
|
bl GF_AssertFail
|
|
add sp, #0x10
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022469F8:
|
|
mov r1, #0
|
|
mov r2, #0x1c
|
|
bl MI_CpuFill8
|
|
str r5, [r4, #8]
|
|
str r6, [r4, #0x10]
|
|
str r7, [r4, #0x14]
|
|
mov r0, #4
|
|
str r0, [r4]
|
|
bl AllocMonZeroed
|
|
str r0, [r4, #0xc]
|
|
bl ZeroMonData
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
str r1, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #0x95
|
|
mov r2, #0x64
|
|
mov r3, #0x20
|
|
bl CreateMon
|
|
add r0, r4, #0
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_022469D8
|
|
|
|
thumb_func_start ov02_02246A34
|
|
ov02_02246A34: ; 0x02246A34
|
|
push {r4, lr}
|
|
bl TaskManager_GetEnv
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _02246A48
|
|
cmp r0, #1
|
|
beq _02246A5E
|
|
b _02246A7E
|
|
_02246A48:
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r4, #0xc]
|
|
ldr r2, [r4, #0x10]
|
|
ldr r3, [r4, #0x14]
|
|
bl ov02_022494C4
|
|
str r0, [r4, #0x18]
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
b _02246A7E
|
|
_02246A5E:
|
|
ldr r0, [r4, #0x18]
|
|
bl ov02_0224953C
|
|
cmp r0, #0
|
|
beq _02246A7E
|
|
ldr r0, [r4, #0x18]
|
|
bl ov02_02249548
|
|
ldr r0, [r4, #0xc]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02246A7E:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02246A34
|
|
|
|
thumb_func_start ov02_02246A84
|
|
ov02_02246A84: ; 0x02246A84
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl GF_RTC_GetTimeOfDay
|
|
cmp r0, #0
|
|
bne _02246A98
|
|
add r3, r5, #0
|
|
add r3, #0x14
|
|
b _02246AB8
|
|
_02246A98:
|
|
sub r1, r0, #1
|
|
cmp r1, #1
|
|
bhi _02246AA4
|
|
add r3, r5, #0
|
|
add r3, #0x2c
|
|
b _02246AB8
|
|
_02246AA4:
|
|
sub r0, r0, #3
|
|
cmp r0, #1
|
|
bhi _02246AB0
|
|
add r3, r5, #0
|
|
add r3, #0x44
|
|
b _02246AB8
|
|
_02246AB0:
|
|
bl GF_AssertFail
|
|
add r3, r5, #0
|
|
add r3, #0x14
|
|
_02246AB8:
|
|
mov r2, #0
|
|
_02246ABA:
|
|
ldrh r0, [r3]
|
|
add r1, r5, r2
|
|
add r2, r2, #1
|
|
str r0, [r4]
|
|
ldrb r0, [r1, #8]
|
|
add r3, r3, #2
|
|
strh r0, [r4, #4]
|
|
ldrb r0, [r1, #8]
|
|
strh r0, [r4, #6]
|
|
add r4, #8
|
|
cmp r2, #0xc
|
|
blt _02246ABA
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_02246A84
|
|
|
|
thumb_func_start ov02_02246AD4
|
|
ov02_02246AD4: ; 0x02246AD4
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
bl GF_RTC_GetTimeOfDay
|
|
sub r0, r0, #3
|
|
cmp r0, #1
|
|
bhi _02246AFC
|
|
cmp r4, #1
|
|
bne _02246AF2
|
|
add r5, #0xc0
|
|
ldrh r0, [r5]
|
|
str r0, [r6, #0x18]
|
|
pop {r4, r5, r6, pc}
|
|
_02246AF2:
|
|
cmp r4, #2
|
|
bne _02246AFC
|
|
add r5, #0xc0
|
|
ldrh r0, [r5]
|
|
str r0, [r6, #8]
|
|
_02246AFC:
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02246AD4
|
|
|
|
thumb_func_start ov02_02246B00
|
|
ov02_02246B00: ; 0x02246B00
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r2, #0
|
|
bl GetRadioMusicPlayingSeq
|
|
cmp r0, #3
|
|
bne _02246B2E
|
|
add r0, r5, #0
|
|
add r0, #0x5c
|
|
ldrh r0, [r0]
|
|
str r0, [r4, #0x10]
|
|
add r0, r5, #0
|
|
add r0, #0x5c
|
|
ldrh r0, [r0]
|
|
str r0, [r4, #0x18]
|
|
add r0, r5, #0
|
|
add r0, #0x5e
|
|
ldrh r0, [r0]
|
|
add r5, #0x5e
|
|
str r0, [r4, #0x20]
|
|
ldrh r0, [r5]
|
|
str r0, [r4, #0x28]
|
|
pop {r3, r4, r5, pc}
|
|
_02246B2E:
|
|
bl GetRadioMusicPlayingSeq
|
|
cmp r0, #4
|
|
bne _02246B54
|
|
add r0, r5, #0
|
|
add r0, #0x60
|
|
ldrh r0, [r0]
|
|
str r0, [r4, #0x10]
|
|
add r0, r5, #0
|
|
add r0, #0x60
|
|
ldrh r0, [r0]
|
|
str r0, [r4, #0x18]
|
|
add r0, r5, #0
|
|
add r0, #0x62
|
|
ldrh r0, [r0]
|
|
add r5, #0x62
|
|
str r0, [r4, #0x20]
|
|
ldrh r0, [r5]
|
|
str r0, [r4, #0x28]
|
|
_02246B54:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02246B00
|
|
|
|
thumb_func_start ov02_02246B58
|
|
ov02_02246B58: ; 0x02246B58
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0xc]
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
bl Save_Roamers_Get
|
|
str r0, [sp]
|
|
bl RoamerSave_OutbreakActive
|
|
cmp r0, #0
|
|
beq _02246B9A
|
|
ldr r0, [sp]
|
|
mov r1, #2
|
|
bl Roamers_GetRand
|
|
ldr r1, [r5, #0x20]
|
|
mov r2, #0
|
|
ldr r1, [r1]
|
|
lsl r1, r1, #0x10
|
|
lsr r1, r1, #0x10
|
|
bl sub_02097F6C
|
|
cmp r0, #0
|
|
beq _02246B9A
|
|
add r0, r4, #0
|
|
add r0, #0xbc
|
|
ldrh r0, [r0]
|
|
add r4, #0xbc
|
|
str r0, [r6]
|
|
ldrh r0, [r4]
|
|
str r0, [r7]
|
|
_02246B9A:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_02246B58
|
|
|
|
thumb_func_start ov02_02246B9C
|
|
ov02_02246B9C: ; 0x02246B9C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0xc]
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
bl Save_Roamers_Get
|
|
add r7, r0, #0
|
|
bl RoamerSave_OutbreakActive
|
|
cmp r0, #0
|
|
beq _02246BD4
|
|
add r0, r7, #0
|
|
mov r1, #2
|
|
bl Roamers_GetRand
|
|
ldr r1, [r5, #0x20]
|
|
mov r2, #1
|
|
ldr r1, [r1]
|
|
lsl r1, r1, #0x10
|
|
lsr r1, r1, #0x10
|
|
bl sub_02097F6C
|
|
cmp r0, #0
|
|
beq _02246BD4
|
|
add r4, #0xbe
|
|
ldrh r0, [r4]
|
|
str r0, [r6]
|
|
_02246BD4:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02246B9C
|
|
|
|
thumb_func_start ov02_02246BD8
|
|
ov02_02246BD8: ; 0x02246BD8
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x2c
|
|
add r6, r0, #0
|
|
ldr r0, [r6, #0xc]
|
|
add r7, r1, #0
|
|
add r5, r2, #0
|
|
add r4, r3, #0
|
|
bl Save_Roamers_Get
|
|
str r0, [sp]
|
|
bl RoamerSave_OutbreakActive
|
|
cmp r0, #0
|
|
beq _02246C7A
|
|
ldr r0, [sp]
|
|
mov r1, #2
|
|
bl Roamers_GetRand
|
|
ldr r1, [r6, #0x20]
|
|
mov r2, #2
|
|
ldr r1, [r1]
|
|
lsl r1, r1, #0x10
|
|
lsr r1, r1, #0x10
|
|
bl sub_02097F6C
|
|
cmp r0, #0
|
|
beq _02246C7A
|
|
ldr r0, _02246C80 ; =ov02_02253290
|
|
add r2, sp, #0x20
|
|
ldr r0, [r0]
|
|
ldr r6, _02246C84 ; =ov02_02253294
|
|
str r0, [sp, #8]
|
|
ldmia r6!, {r0, r1}
|
|
str r2, [sp, #4]
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r6]
|
|
add r6, sp, #0xc
|
|
str r0, [r2]
|
|
ldr r2, _02246C88 ; =ov02_022532A0
|
|
mov ip, r6
|
|
ldmia r2!, {r0, r1}
|
|
stmia r6!, {r0, r1}
|
|
ldmia r2!, {r0, r1}
|
|
stmia r6!, {r0, r1}
|
|
ldr r0, [r2]
|
|
add r3, sp, #8
|
|
str r0, [r6]
|
|
cmp r7, #0
|
|
beq _02246C44
|
|
cmp r7, #1
|
|
beq _02246C48
|
|
cmp r7, #2
|
|
beq _02246C4E
|
|
b _02246C54
|
|
_02246C44:
|
|
mov r1, #1
|
|
b _02246C5C
|
|
_02246C48:
|
|
mov r1, #3
|
|
ldr r3, [sp, #4]
|
|
b _02246C5C
|
|
_02246C4E:
|
|
mov r1, #5
|
|
mov r3, ip
|
|
b _02246C5C
|
|
_02246C54:
|
|
bl GF_AssertFail
|
|
add sp, #0x2c
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02246C5C:
|
|
mov r2, #0
|
|
cmp r1, #0
|
|
bls _02246C7A
|
|
_02246C62:
|
|
add r0, r5, #0
|
|
add r0, #0xc2
|
|
lsl r6, r2, #2
|
|
ldr r6, [r3, r6]
|
|
ldrh r0, [r0]
|
|
lsl r6, r6, #3
|
|
str r0, [r4, r6]
|
|
add r0, r2, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x18
|
|
cmp r2, r1
|
|
blo _02246C62
|
|
_02246C7A:
|
|
add sp, #0x2c
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_02246C80: .word ov02_02253290
|
|
_02246C84: .word ov02_02253294
|
|
_02246C88: .word ov02_022532A0
|
|
thumb_func_end ov02_02246BD8
|
|
|
|
thumb_func_start ov02_02246C8C
|
|
ov02_02246C8C: ; 0x02246C8C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0xa0
|
|
add r5, r0, #0
|
|
add r0, #0x7e
|
|
ldrh r0, [r0]
|
|
cmp r0, #3
|
|
bhi _02246CA0
|
|
add sp, #0xa0
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02246CA0:
|
|
ldr r0, [r5, #0x40]
|
|
bl GetPlayerXCoord
|
|
add r4, r0, #0
|
|
ldr r0, [r5, #0x40]
|
|
bl GetPlayerYCoord
|
|
add r2, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl GetMetatileBehaviorAt
|
|
add r7, r0, #0
|
|
add r2, sp, #0x18
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
add r2, #1
|
|
bl ov02_0224762C
|
|
add r1, sp, #0x18
|
|
strb r0, [r1]
|
|
ldrb r0, [r1]
|
|
cmp r0, #0
|
|
bne _02246CD6
|
|
add sp, #0xa0
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02246CD6:
|
|
add r0, r5, #0
|
|
bl ov02_02248698
|
|
ldr r0, [r5, #0xc]
|
|
bl SaveArray_PlayerParty_Get
|
|
add r6, r0, #0
|
|
add r0, r5, #0
|
|
bl MapEvents_GetLoadedEncTable
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
bl GetPartyMonByIndex
|
|
str r0, [sp, #0x10]
|
|
ldr r1, [sp, #0x10]
|
|
add r0, r5, #0
|
|
add r2, r4, #0
|
|
add r3, sp, #0x24
|
|
bl ov02_02248618
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_Roamers_Get
|
|
bl RoamerSave_RepelNotInUse
|
|
cmp r0, #0
|
|
bne _02246D26
|
|
add r0, r6, #0
|
|
bl GetFirstAliveMonInParty_CrashIfNone
|
|
mov r1, #1
|
|
str r1, [sp, #0x28]
|
|
mov r1, #MON_DATA_LEVEL
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r1, sp, #0x18
|
|
strb r0, [r1, #0x18]
|
|
_02246D26:
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_LocalFieldData_Get
|
|
bl LocalFieldData_GetWeatherType
|
|
add r3, r0, #0
|
|
ldr r0, [sp, #0x10]
|
|
add r1, sp, #0x18
|
|
str r0, [sp]
|
|
ldrb r1, [r1]
|
|
mov r0, #0
|
|
add r2, sp, #0x24
|
|
bl ov02_02248190
|
|
add r1, sp, #0x18
|
|
strb r0, [r1]
|
|
add r0, r5, #0
|
|
add r1, sp, #0x18
|
|
bl ApplyFluteEffectToEncounterRate
|
|
ldr r0, [sp, #0x10]
|
|
add r1, sp, #0x18
|
|
bl ApplyLeadMonHeldItemEffectToEncounterRate
|
|
add r1, sp, #0x18
|
|
ldrb r1, [r1]
|
|
add r0, r5, #0
|
|
add r2, r7, #0
|
|
bl ov02_02247568
|
|
cmp r0, #0
|
|
beq _02246D6A
|
|
mov r7, #1
|
|
b _02246D6C
|
|
_02246D6A:
|
|
mov r7, #0
|
|
_02246D6C:
|
|
cmp r7, #0
|
|
bne _02246D76
|
|
add sp, #0xa0
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02246D76:
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
bl Save_VarsFlags_CheckHaveFollower
|
|
cmp r0, #0
|
|
beq _02246D88
|
|
mov r6, #1
|
|
b _02246D8A
|
|
_02246D88:
|
|
mov r6, #0
|
|
_02246D8A:
|
|
cmp r6, #0
|
|
bne _02246DE0
|
|
add r0, r5, #0
|
|
add r1, sp, #0x1c
|
|
bl ov02_GetRandomActiveRoamerInCurrMap
|
|
cmp r0, #0
|
|
beq _02246DE0
|
|
ldr r0, [sp, #0x1c]
|
|
mov r1, #6
|
|
bl GetRoamerData
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
add r1, sp, #0x24
|
|
bl ov02_02248290
|
|
cmp r0, #0
|
|
bne _02246DDA
|
|
mov r0, #0xb
|
|
add r1, r0, #0
|
|
add r1, #0xf5
|
|
bl BattleSetup_New
|
|
str r0, [sp, #0x20]
|
|
add r1, r5, #0
|
|
bl BattleSetup_InitFromFsys
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x1c]
|
|
ldr r2, [sp, #0x20]
|
|
bl ov02_022482BC
|
|
ldr r1, [sp, #0x20]
|
|
add r0, r5, #0
|
|
bl sub_02050B08
|
|
add sp, #0xa0
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02246DDA:
|
|
add sp, #0xa0
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02246DE0:
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
str r0, [sp, #0x14]
|
|
bl Save_VarsFlags_CheckSafariSysFlag
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x14]
|
|
bl CheckFlag996
|
|
str r0, [sp, #8]
|
|
cmp r6, #0
|
|
bne _02246E18
|
|
ldr r0, [sp, #0xc]
|
|
mov r1, #0
|
|
cmp r0, #0
|
|
beq _02246E06
|
|
mov r1, #1
|
|
b _02246E0E
|
|
_02246E06:
|
|
ldr r0, [sp, #8]
|
|
cmp r0, #0
|
|
beq _02246E0E
|
|
mov r1, #2
|
|
_02246E0E:
|
|
add r0, r5, #0
|
|
add r2, sp, #0x20
|
|
bl ov02_02248244
|
|
b _02246E22
|
|
_02246E18:
|
|
mov r0, #0xb
|
|
mov r1, #0x4a
|
|
bl BattleSetup_New
|
|
str r0, [sp, #0x20]
|
|
_02246E22:
|
|
ldr r0, [sp, #0x20]
|
|
add r1, r5, #0
|
|
bl BattleSetup_InitFromFsys
|
|
add r0, sp, #0x18
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
bne _02246ECA
|
|
add r0, r4, #0
|
|
add r1, sp, #0x40
|
|
bl ov02_02246A84
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, sp, #0x40
|
|
add r3, sp, #0x48
|
|
bl ov02_02246B58
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, sp, #0x40
|
|
bl ov02_02246B00
|
|
cmp r6, #0
|
|
bne _02246EA0
|
|
ldr r0, [sp, #0xc]
|
|
cmp r0, #0
|
|
beq _02246E70
|
|
add r0, sp, #0x40
|
|
str r0, [sp]
|
|
add r0, sp, #0x24
|
|
str r0, [sp, #4]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, [sp, #0x20]
|
|
add r0, r5, #0
|
|
add r3, r4, #0
|
|
bl ov02_02247444
|
|
b _02246F26
|
|
_02246E70:
|
|
ldr r0, [sp, #8]
|
|
cmp r0, #0
|
|
add r0, sp, #0x40
|
|
beq _02246E8C
|
|
str r0, [sp]
|
|
add r0, sp, #0x24
|
|
str r0, [sp, #4]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, [sp, #0x20]
|
|
add r0, r5, #0
|
|
add r3, r4, #0
|
|
bl ov02_02247460
|
|
b _02246F26
|
|
_02246E8C:
|
|
str r0, [sp]
|
|
add r0, sp, #0x24
|
|
str r0, [sp, #4]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, [sp, #0x20]
|
|
add r0, r5, #0
|
|
add r3, r4, #0
|
|
bl ov02_02247424
|
|
b _02246F26
|
|
_02246EA0:
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
bl Save_VarsFlags_GetFollowerTrainerNum
|
|
ldr r1, [sp, #0x20]
|
|
mov r2, #0xb
|
|
str r0, [r1, #0x20]
|
|
ldr r0, [sp, #0x20]
|
|
ldr r1, [r5, #0xc]
|
|
bl EnemyTrainerSet_Init
|
|
add r0, sp, #0x24
|
|
str r0, [sp]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, [sp, #0x20]
|
|
add r0, r5, #0
|
|
add r3, sp, #0x40
|
|
bl ov02_0224749C
|
|
b _02246F26
|
|
_02246ECA:
|
|
cmp r0, #1
|
|
bne _02246F16
|
|
mov r0, #0
|
|
add r1, r4, #0
|
|
add r2, sp, #0x40
|
|
_02246ED4:
|
|
add r3, r1, #0
|
|
add r3, #0x66
|
|
ldrh r3, [r3]
|
|
add r0, r0, #1
|
|
str r3, [r2]
|
|
add r3, r1, #0
|
|
add r3, #0x65
|
|
ldrb r3, [r3]
|
|
strh r3, [r2, #4]
|
|
add r3, r1, #0
|
|
add r3, #0x64
|
|
ldrb r3, [r3]
|
|
add r1, r1, #4
|
|
strh r3, [r2, #6]
|
|
add r2, #8
|
|
cmp r0, #5
|
|
blt _02246ED4
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, sp, #0x40
|
|
bl ov02_02246B9C
|
|
add r0, sp, #0x24
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0xc]
|
|
ldr r1, [sp, #0x10]
|
|
str r0, [sp, #4]
|
|
ldr r2, [sp, #0x20]
|
|
add r0, r5, #0
|
|
add r3, sp, #0x40
|
|
bl ov02_022474E0
|
|
b _02246F26
|
|
_02246F16:
|
|
bl GF_AssertFail
|
|
ldr r0, [sp, #0x20]
|
|
bl BattleSetup_Delete
|
|
add sp, #0xa0
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02246F26:
|
|
cmp r0, #0
|
|
beq _02246F40
|
|
ldr r1, [sp, #0x20]
|
|
add r0, r5, #0
|
|
bl sub_02050B08
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
add r0, #0x7e
|
|
strh r1, [r0]
|
|
add r5, #0x7c
|
|
strh r1, [r5]
|
|
b _02246F42
|
|
_02246F40:
|
|
mov r7, #0
|
|
_02246F42:
|
|
mov r0, #4
|
|
bl GF_heap_c_dummy_return_true
|
|
cmp r0, #0
|
|
bne _02246F50
|
|
bl GF_AssertFail
|
|
_02246F50:
|
|
mov r0, #0xb
|
|
bl GF_heap_c_dummy_return_true
|
|
cmp r0, #0
|
|
bne _02246F5E
|
|
bl GF_AssertFail
|
|
_02246F5E:
|
|
cmp r7, #0
|
|
bne _02246F68
|
|
ldr r0, [sp, #0x20]
|
|
bl BattleSetup_Delete
|
|
_02246F68:
|
|
add r0, r7, #0
|
|
add sp, #0xa0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02246C8C
|
|
|
|
thumb_func_start ov02_02246F70
|
|
ov02_02246F70: ; 0x02246F70
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0xa0
|
|
str r0, [sp, #0x20]
|
|
str r1, [sp, #0xc]
|
|
str r2, [sp, #0x10]
|
|
bl ov02_0224802C
|
|
add r4, r0, #0
|
|
bne _02246F88
|
|
add sp, #0xa0
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02246F88:
|
|
ldr r0, [sp, #0x20]
|
|
ldr r0, [r0, #0xc]
|
|
bl SaveArray_PlayerParty_Get
|
|
mov r1, #0
|
|
bl GetPartyMonByIndex
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [sp, #0x20]
|
|
ldr r1, [sp, #0x1c]
|
|
mov r2, #0
|
|
add r3, sp, #0x24
|
|
bl ov02_02248618
|
|
ldr r0, [sp, #0x20]
|
|
ldr r0, [r0, #0xc]
|
|
bl Save_LocalFieldData_Get
|
|
bl LocalFieldData_GetWeatherType
|
|
add r3, r0, #0
|
|
ldr r0, [sp, #0x1c]
|
|
add r1, r4, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
add r2, sp, #0x24
|
|
bl ov02_02248190
|
|
add r4, r0, #0
|
|
bl LCRandom
|
|
mov r1, #0x64
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x10
|
|
lsr r0, r0, #0x10
|
|
cmp r0, r4
|
|
blt _02246FDA
|
|
add sp, #0xa0
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02246FDA:
|
|
ldr r0, [sp, #0x20]
|
|
ldr r0, [r0, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
bl Save_VarsFlags_CheckSafariSysFlag
|
|
str r0, [sp, #0x18]
|
|
cmp r0, #0
|
|
beq _02246FF8
|
|
ldr r0, [sp, #0x20]
|
|
ldr r2, [sp, #0x10]
|
|
mov r1, #1
|
|
bl ov02_02248244
|
|
b _02247002
|
|
_02246FF8:
|
|
ldr r0, [sp, #0x20]
|
|
ldr r2, [sp, #0x10]
|
|
mov r1, #0
|
|
bl ov02_02248244
|
|
_02247002:
|
|
ldr r0, [sp, #0x10]
|
|
ldr r1, [sp, #0x20]
|
|
ldr r0, [r0]
|
|
bl BattleSetup_InitFromFsys
|
|
ldr r0, [sp, #0x10]
|
|
ldr r0, [r0]
|
|
bl sub_02052544
|
|
ldr r0, [sp, #0x20]
|
|
bl MapEvents_GetLoadedEncTable
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp, #0xc]
|
|
cmp r0, #0
|
|
beq _0224702C
|
|
cmp r0, #1
|
|
beq _02247032
|
|
cmp r0, #2
|
|
beq _02247038
|
|
b _0224703C
|
|
_0224702C:
|
|
ldr r7, [sp, #0x14]
|
|
add r7, #0x80
|
|
b _0224703C
|
|
_02247032:
|
|
ldr r7, [sp, #0x14]
|
|
add r7, #0x94
|
|
b _0224703C
|
|
_02247038:
|
|
ldr r7, [sp, #0x14]
|
|
add r7, #0xa8
|
|
_0224703C:
|
|
mov r6, #0
|
|
_0224703E:
|
|
lsl r4, r6, #2
|
|
add r5, r7, r4
|
|
ldrh r1, [r5, #2]
|
|
lsl r2, r6, #3
|
|
add r0, sp, #0x40
|
|
add r3, r0, r2
|
|
str r1, [r0, r2]
|
|
ldrb r0, [r5, #1]
|
|
strh r0, [r3, #4]
|
|
ldrb r0, [r7, r4]
|
|
strh r0, [r3, #6]
|
|
add r0, r6, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
cmp r6, #5
|
|
blo _0224703E
|
|
ldr r0, [sp, #0x14]
|
|
ldr r1, [sp, #0xc]
|
|
add r2, sp, #0x40
|
|
bl ov02_02246AD4
|
|
ldr r0, [sp, #0x20]
|
|
ldr r1, [sp, #0xc]
|
|
ldr r2, [sp, #0x14]
|
|
add r3, sp, #0x40
|
|
bl ov02_02246BD8
|
|
add r0, sp, #0x24
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0xc]
|
|
ldr r2, [sp, #0x10]
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0x18]
|
|
ldr r1, [sp, #0x1c]
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #0x20]
|
|
ldr r2, [r2]
|
|
add r3, sp, #0x40
|
|
bl ov02_02247514
|
|
cmp r0, #0
|
|
beq _02247098
|
|
add sp, #0xa0
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02247098:
|
|
mov r0, #0
|
|
add sp, #0xa0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02246F70
|
|
|
|
thumb_func_start ov02_022470A0
|
|
ov02_022470A0: ; 0x022470A0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x8c
|
|
str r0, [sp, #0xc]
|
|
str r1, [sp, #4]
|
|
bl ov02_022480B4
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
bne _022470B8
|
|
add sp, #0x8c
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_022470B8:
|
|
ldr r0, [sp, #0xc]
|
|
ldr r0, [r0, #0xc]
|
|
bl SaveArray_PlayerParty_Get
|
|
mov r1, #0
|
|
bl GetPartyMonByIndex
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #0xc]
|
|
ldr r1, [sp, #8]
|
|
mov r2, #0
|
|
add r3, sp, #0x10
|
|
bl ov02_02248618
|
|
ldr r0, [sp, #0xc]
|
|
ldr r0, [r0, #0xc]
|
|
bl Save_LocalFieldData_Get
|
|
bl LocalFieldData_GetWeatherType
|
|
add r3, r0, #0
|
|
ldr r0, [sp, #8]
|
|
add r1, r4, #0
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
add r2, sp, #0x10
|
|
bl ov02_02248190
|
|
add r4, r0, #0
|
|
bl LCRandom
|
|
mov r1, #0x64
|
|
bl _s32_div_f
|
|
cmp r1, r4
|
|
blt _02247106
|
|
add sp, #0x8c
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02247106:
|
|
ldr r0, [sp, #0xc]
|
|
ldr r2, [sp, #4]
|
|
mov r1, #0
|
|
bl ov02_02248244
|
|
ldr r0, [sp, #4]
|
|
ldr r1, [sp, #0xc]
|
|
ldr r0, [r0]
|
|
bl BattleSetup_InitFromFsys
|
|
ldr r0, [sp, #0xc]
|
|
bl MapEvents_GetLoadedEncTable
|
|
add r5, r0, #0
|
|
add r5, #0x78
|
|
mov r6, #0
|
|
_02247126:
|
|
lsl r3, r6, #2
|
|
add r4, r5, r3
|
|
ldrh r1, [r4, #2]
|
|
lsl r7, r6, #3
|
|
add r0, sp, #0x2c
|
|
add r2, r0, r7
|
|
str r1, [r0, r7]
|
|
ldrb r0, [r4, #1]
|
|
strh r0, [r2, #4]
|
|
ldrb r0, [r5, r3]
|
|
strh r0, [r2, #6]
|
|
add r0, r6, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
cmp r6, #2
|
|
blo _02247126
|
|
add r0, sp, #0x10
|
|
str r0, [sp]
|
|
ldr r2, [sp, #4]
|
|
ldr r0, [sp, #0xc]
|
|
ldr r1, [sp, #8]
|
|
ldr r2, [r2]
|
|
add r3, sp, #0x2c
|
|
bl ov02_0224754C
|
|
cmp r0, #0
|
|
bne _0224716A
|
|
ldr r0, [sp, #4]
|
|
ldr r0, [r0]
|
|
bl BattleSetup_Delete
|
|
add sp, #0x8c
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224716A:
|
|
mov r0, #1
|
|
add sp, #0x8c
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_022470A0
|
|
|
|
thumb_func_start ov02_02247170
|
|
ov02_02247170: ; 0x02247170
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x9c
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0xc]
|
|
str r1, [sp, #8]
|
|
bl Save_VarsFlags_Get
|
|
add r7, r0, #0
|
|
ldr r0, [r5, #0x40]
|
|
bl GetPlayerXCoord
|
|
add r4, r0, #0
|
|
ldr r0, [r5, #0x40]
|
|
bl GetPlayerYCoord
|
|
add r2, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl GetMetatileBehaviorAt
|
|
add r1, r0, #0
|
|
add r0, r5, #0
|
|
add r2, sp, #0x14
|
|
bl ov02_0224762C
|
|
cmp r0, #0
|
|
bne _022471AC
|
|
add sp, #0x9c
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_022471AC:
|
|
ldr r0, [r5, #0xc]
|
|
bl SaveArray_PlayerParty_Get
|
|
add r6, r0, #0
|
|
add r0, r5, #0
|
|
bl MapEvents_GetLoadedEncTable
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
bl GetPartyMonByIndex
|
|
str r0, [sp, #0x10]
|
|
ldr r1, [sp, #0x10]
|
|
add r0, r5, #0
|
|
add r2, r4, #0
|
|
add r3, sp, #0x20
|
|
bl ov02_02248618
|
|
mov r0, #1
|
|
str r0, [sp, #0x28]
|
|
add r0, r7, #0
|
|
bl Save_VarsFlags_CheckHaveFollower
|
|
str r0, [sp, #0xc]
|
|
cmp r0, #0
|
|
bne _0224721A
|
|
add r0, r5, #0
|
|
add r1, sp, #0x18
|
|
bl ov02_GetRandomActiveRoamerInCurrMap
|
|
cmp r0, #0
|
|
beq _0224721A
|
|
mov r0, #0xb
|
|
add r1, r0, #0
|
|
add r1, #0xf5
|
|
bl BattleSetup_New
|
|
str r0, [sp, #0x1c]
|
|
add r1, r5, #0
|
|
bl BattleSetup_InitFromFsys
|
|
ldr r0, [sp, #0x20]
|
|
ldr r1, [sp, #0x18]
|
|
ldr r2, [sp, #0x1c]
|
|
bl ov02_022482BC
|
|
ldr r1, [sp, #8]
|
|
ldr r2, [sp, #0x1c]
|
|
add r0, r5, #0
|
|
bl sub_02050B90
|
|
add sp, #0x9c
|
|
mov r0, #1
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224721A:
|
|
add r0, r7, #0
|
|
bl Save_VarsFlags_CheckSafariSysFlag
|
|
add r6, r0, #0
|
|
add r0, r7, #0
|
|
bl CheckFlag996
|
|
add r7, r0, #0
|
|
ldr r0, [sp, #0xc]
|
|
cmp r0, #0
|
|
bne _0224724A
|
|
mov r1, #0
|
|
cmp r6, #0
|
|
beq _0224723A
|
|
mov r1, #1
|
|
b _02247240
|
|
_0224723A:
|
|
cmp r7, #0
|
|
beq _02247240
|
|
mov r1, #2
|
|
_02247240:
|
|
add r0, r5, #0
|
|
add r2, sp, #0x1c
|
|
bl ov02_02248244
|
|
b _02247254
|
|
_0224724A:
|
|
mov r0, #0xb
|
|
mov r1, #0x4a
|
|
bl BattleSetup_New
|
|
str r0, [sp, #0x1c]
|
|
_02247254:
|
|
ldr r0, [sp, #0x1c]
|
|
add r1, r5, #0
|
|
bl BattleSetup_InitFromFsys
|
|
add r0, sp, #0x14
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _022472F8
|
|
add r0, r4, #0
|
|
add r1, sp, #0x3c
|
|
bl ov02_02246A84
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, sp, #0x3c
|
|
add r3, sp, #0x44
|
|
bl ov02_02246B58
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, sp, #0x3c
|
|
bl ov02_02246B00
|
|
ldr r0, [sp, #0xc]
|
|
cmp r0, #0
|
|
bne _022472CE
|
|
cmp r6, #0
|
|
add r0, sp, #0x3c
|
|
beq _022472A2
|
|
str r0, [sp]
|
|
add r0, sp, #0x20
|
|
str r0, [sp, #4]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, [sp, #0x1c]
|
|
add r0, r5, #0
|
|
add r3, r4, #0
|
|
bl ov02_02247444
|
|
b _0224734C
|
|
_022472A2:
|
|
cmp r7, #0
|
|
beq _022472BA
|
|
str r0, [sp]
|
|
add r0, sp, #0x20
|
|
str r0, [sp, #4]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, [sp, #0x1c]
|
|
add r0, r5, #0
|
|
add r3, r4, #0
|
|
bl ov02_02247460
|
|
b _0224734C
|
|
_022472BA:
|
|
str r0, [sp]
|
|
add r0, sp, #0x20
|
|
str r0, [sp, #4]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, [sp, #0x1c]
|
|
add r0, r5, #0
|
|
add r3, r4, #0
|
|
bl ov02_02247424
|
|
b _0224734C
|
|
_022472CE:
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
bl Save_VarsFlags_GetFollowerTrainerNum
|
|
ldr r1, [sp, #0x1c]
|
|
mov r2, #0xb
|
|
str r0, [r1, #0x20]
|
|
ldr r0, [sp, #0x1c]
|
|
ldr r1, [r5, #0xc]
|
|
bl EnemyTrainerSet_Init
|
|
add r0, sp, #0x20
|
|
str r0, [sp]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, [sp, #0x1c]
|
|
add r0, r5, #0
|
|
add r3, sp, #0x3c
|
|
bl ov02_0224749C
|
|
b _0224734C
|
|
_022472F8:
|
|
cmp r0, #1
|
|
bne _02247342
|
|
mov r0, #0
|
|
add r1, r4, #0
|
|
add r2, sp, #0x3c
|
|
_02247302:
|
|
add r3, r1, #0
|
|
add r3, #0x66
|
|
ldrh r3, [r3]
|
|
add r0, r0, #1
|
|
str r3, [r2]
|
|
add r3, r1, #0
|
|
add r3, #0x65
|
|
ldrb r3, [r3]
|
|
strh r3, [r2, #4]
|
|
add r3, r1, #0
|
|
add r3, #0x64
|
|
ldrb r3, [r3]
|
|
add r1, r1, #4
|
|
strh r3, [r2, #6]
|
|
add r2, #8
|
|
cmp r0, #5
|
|
blt _02247302
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, sp, #0x3c
|
|
bl ov02_02246B9C
|
|
add r0, sp, #0x20
|
|
str r0, [sp]
|
|
str r6, [sp, #4]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, [sp, #0x1c]
|
|
add r0, r5, #0
|
|
add r3, sp, #0x3c
|
|
bl ov02_022474E0
|
|
b _0224734C
|
|
_02247342:
|
|
bl GF_AssertFail
|
|
add sp, #0x9c
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224734C:
|
|
cmp r0, #0
|
|
beq _0224735C
|
|
ldr r1, [sp, #8]
|
|
ldr r2, [sp, #0x1c]
|
|
add r0, r5, #0
|
|
bl sub_02050B90
|
|
b _02247360
|
|
_0224735C:
|
|
bl GF_AssertFail
|
|
_02247360:
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
add r0, #0x7e
|
|
strh r1, [r0]
|
|
add r5, #0x7c
|
|
strh r1, [r5]
|
|
mov r0, #1
|
|
add sp, #0x9c
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02247170
|
|
|
|
thumb_func_start ov02_02247374
|
|
ov02_02247374: ; 0x02247374
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0xa8
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0xc]
|
|
str r1, [sp, #0xc]
|
|
add r4, r2, #0
|
|
bl SaveArray_PlayerParty_Get
|
|
mov r1, #0
|
|
bl GetPartyMonByIndex
|
|
str r0, [sp, #0x10]
|
|
ldr r1, [sp, #0x10]
|
|
add r0, r5, #0
|
|
mov r2, #0
|
|
add r3, sp, #0x2c
|
|
bl ov02_02248618
|
|
ldr r2, [sp, #0xc]
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov02_02248244
|
|
ldr r0, [sp, #0xc]
|
|
add r1, r5, #0
|
|
ldr r0, [r0]
|
|
bl BattleSetup_InitFromFsys
|
|
mov r5, #0
|
|
add r0, sp, #0x14
|
|
_022473B0:
|
|
lsl r3, r5, #2
|
|
ldrh r6, [r4, r3]
|
|
add r1, r0, r3
|
|
add r2, r4, r3
|
|
strh r6, [r1, #2]
|
|
ldrb r6, [r2, #3]
|
|
strb r6, [r1, #1]
|
|
ldrb r1, [r2, #2]
|
|
strb r1, [r0, r3]
|
|
add r1, r5, #1
|
|
lsl r1, r1, #0x18
|
|
lsr r5, r1, #0x18
|
|
cmp r5, #6
|
|
blo _022473B0
|
|
mov r6, #0
|
|
add r4, sp, #0x14
|
|
add r7, sp, #0x48
|
|
_022473D2:
|
|
lsl r3, r6, #2
|
|
add r5, r4, r3
|
|
ldrh r0, [r5, #2]
|
|
lsl r1, r6, #3
|
|
add r2, r7, r1
|
|
str r0, [r7, r1]
|
|
ldrb r0, [r5, #1]
|
|
strh r0, [r2, #4]
|
|
ldrb r0, [r4, r3]
|
|
strh r0, [r2, #6]
|
|
add r0, r6, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
cmp r6, #6
|
|
blo _022473D2
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0xc]
|
|
mov r1, #0xff
|
|
ldr r0, [r0]
|
|
add r2, sp, #0x2c
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #0x10]
|
|
add r3, r7, #0
|
|
bl ov02_02247B64
|
|
cmp r0, #0
|
|
bne _0224741C
|
|
ldr r0, [sp, #0xc]
|
|
ldr r0, [r0]
|
|
bl BattleSetup_Delete
|
|
add sp, #0xa8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224741C:
|
|
mov r0, #1
|
|
add sp, #0xa8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02247374
|
|
|
|
thumb_func_start ov02_02247424
|
|
ov02_02247424: ; 0x02247424
|
|
push {lr}
|
|
sub sp, #0xc
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
str r2, [sp, #8]
|
|
add r0, r1, #0
|
|
ldr r2, [sp, #0x14]
|
|
ldr r3, [sp, #0x10]
|
|
mov r1, #0xff
|
|
bl ov02_02247B64
|
|
add sp, #0xc
|
|
pop {pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02247424
|
|
|
|
thumb_func_start ov02_02247444
|
|
ov02_02247444: ; 0x02247444
|
|
push {lr}
|
|
sub sp, #0xc
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r3, #1
|
|
str r3, [sp, #4]
|
|
str r2, [sp, #8]
|
|
ldr r3, [sp, #0x14]
|
|
mov r2, #0xff
|
|
bl ov02_02247DA0
|
|
add sp, #0xc
|
|
pop {pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02247444
|
|
|
|
thumb_func_start ov02_02247460
|
|
ov02_02247460: ; 0x02247460
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
ldr r7, _02247498 ; =FS_OVERLAY_ID(bug_contest)
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
add r0, r7, #0
|
|
mov r1, #2
|
|
add r4, r2, #0
|
|
bl HandleLoadOverlay
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r3, [sp, #0x24]
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
mov r2, #0xff
|
|
str r4, [sp, #8]
|
|
bl ov02_02247ED8
|
|
add r4, r0, #0
|
|
add r0, r7, #0
|
|
bl UnloadOverlayByID
|
|
add r0, r4, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_02247498: .word FS_OVERLAY_ID(bug_contest)
|
|
thumb_func_end ov02_02247460
|
|
|
|
thumb_func_start ov02_0224749C
|
|
ov02_0224749C: ; 0x0224749C
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
mov r0, #0
|
|
add r5, r1, #0
|
|
add r4, r2, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r2, [sp, #0x20]
|
|
add r0, r5, #0
|
|
mov r1, #0xff
|
|
add r6, r3, #0
|
|
str r4, [sp, #8]
|
|
bl ov02_02247B64
|
|
cmp r0, #0
|
|
bne _022474C4
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, pc}
|
|
_022474C4:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #3
|
|
str r0, [sp, #4]
|
|
ldr r2, [sp, #0x20]
|
|
add r0, r5, #0
|
|
mov r1, #0xff
|
|
add r3, r6, #0
|
|
str r4, [sp, #8]
|
|
bl ov02_02247B64
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224749C
|
|
|
|
thumb_func_start ov02_022474E0
|
|
ov02_022474E0: ; 0x022474E0
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
ldr r4, [sp, #0x1c]
|
|
cmp r4, #0
|
|
beq _022474FE
|
|
mov r3, #1
|
|
str r3, [sp]
|
|
str r3, [sp, #4]
|
|
str r2, [sp, #8]
|
|
ldr r3, [sp, #0x18]
|
|
mov r2, #0xff
|
|
bl ov02_02247DA0
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
_022474FE:
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r2, [sp, #8]
|
|
add r0, r1, #0
|
|
ldr r2, [sp, #0x18]
|
|
mov r1, #0xff
|
|
bl ov02_02247B64
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov02_022474E0
|
|
|
|
thumb_func_start ov02_02247514
|
|
ov02_02247514: ; 0x02247514
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
ldr r4, [sp, #0x20]
|
|
cmp r4, #0
|
|
beq _02247534
|
|
mov r3, #2
|
|
str r3, [sp]
|
|
mov r3, #1
|
|
str r3, [sp, #4]
|
|
str r2, [sp, #8]
|
|
ldr r2, [sp, #0x1c]
|
|
ldr r3, [sp, #0x18]
|
|
bl ov02_02247DA0
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
_02247534:
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
str r2, [sp, #8]
|
|
add r0, r1, #0
|
|
ldr r1, [sp, #0x1c]
|
|
ldr r2, [sp, #0x18]
|
|
bl ov02_02247B64
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov02_02247514
|
|
|
|
thumb_func_start ov02_0224754C
|
|
ov02_0224754C: ; 0x0224754C
|
|
push {lr}
|
|
sub sp, #0xc
|
|
mov r0, #3
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
str r2, [sp, #8]
|
|
add r0, r1, #0
|
|
ldr r2, [sp, #0x10]
|
|
mov r1, #0xff
|
|
bl ov02_02247B64
|
|
add sp, #0xc
|
|
pop {pc}
|
|
thumb_func_end ov02_0224754C
|
|
|
|
thumb_func_start ov02_02247568
|
|
ov02_02247568: ; 0x02247568
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r1, #0
|
|
add r5, r0, #0
|
|
str r2, [sp]
|
|
cmp r6, #0x64
|
|
bls _02247576
|
|
mov r6, #0x64
|
|
_02247576:
|
|
ldr r0, [r5, #0x40]
|
|
bl PlayerAvatar_GetState
|
|
add r7, r0, #0
|
|
mov r4, #0x28
|
|
cmp r7, #1
|
|
beq _02247598
|
|
cmp r7, #2
|
|
beq _02247598
|
|
ldr r0, [r5, #0x40]
|
|
bl sub_0205DE98
|
|
cmp r0, #0
|
|
bne _02247598
|
|
sub r4, #0x14
|
|
lsl r0, r4, #0x18
|
|
lsr r4, r0, #0x18
|
|
_02247598:
|
|
ldr r0, [sp]
|
|
bl sub_0205B6F4
|
|
cmp r0, #0
|
|
beq _022475AA
|
|
add r4, #0x28
|
|
lsl r0, r4, #0x18
|
|
lsr r4, r0, #0x18
|
|
b _022475B4
|
|
_022475AA:
|
|
cmp r7, #1
|
|
bne _022475B4
|
|
add r4, #0x1e
|
|
lsl r0, r4, #0x18
|
|
lsr r4, r0, #0x18
|
|
_022475B4:
|
|
add r0, r5, #0
|
|
add r0, #0x7c
|
|
ldrh r0, [r0]
|
|
bl ov02_02247610
|
|
add r0, r4, r0
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
bl GetRadioMusicPlayingSeq
|
|
cmp r0, #1
|
|
bne _022475D4
|
|
add r4, #0x19
|
|
lsl r0, r4, #0x18
|
|
lsr r4, r0, #0x18
|
|
b _022475E2
|
|
_022475D4:
|
|
bl GetRadioMusicPlayingSeq
|
|
cmp r0, #2
|
|
bne _022475E2
|
|
sub r4, #0x19
|
|
lsl r0, r4, #0x18
|
|
lsr r4, r0, #0x18
|
|
_022475E2:
|
|
cmp r4, #0x64
|
|
bls _022475E8
|
|
mov r4, #0x64
|
|
_022475E8:
|
|
bl LCRandom
|
|
mov r1, #0x64
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x10
|
|
lsr r0, r0, #0x10
|
|
cmp r0, r4
|
|
bge _0224760A
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov02_0224766C
|
|
cmp r0, #0
|
|
beq _0224760A
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224760A:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02247568
|
|
|
|
thumb_func_start ov02_02247610
|
|
ov02_02247610: ; 0x02247610
|
|
mov r1, #0
|
|
cmp r0, #4
|
|
blo _0224761A
|
|
mov r1, #0x3c
|
|
b _02247628
|
|
_0224761A:
|
|
cmp r0, #3
|
|
blo _02247622
|
|
mov r1, #0x28
|
|
b _02247628
|
|
_02247622:
|
|
cmp r0, #2
|
|
blo _02247628
|
|
mov r1, #0x1e
|
|
_02247628:
|
|
add r0, r1, #0
|
|
bx lr
|
|
thumb_func_end ov02_02247610
|
|
|
|
thumb_func_start ov02_0224762C
|
|
ov02_0224762C: ; 0x0224762C
|
|
push {r4, r5, r6, lr}
|
|
add r6, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r6, #0
|
|
add r4, r2, #0
|
|
bl sub_0205B994
|
|
cmp r0, #0
|
|
beq _02247668
|
|
add r0, r6, #0
|
|
bl sub_0205B778
|
|
cmp r0, #0
|
|
beq _02247658
|
|
mov r0, #1
|
|
strb r0, [r4]
|
|
add r0, r5, #0
|
|
bl ov02_02248020
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
pop {r4, r5, r6, pc}
|
|
_02247658:
|
|
mov r0, #0
|
|
strb r0, [r4]
|
|
add r0, r5, #0
|
|
bl ov02_02248014
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
pop {r4, r5, r6, pc}
|
|
_02247668:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov02_0224762C
|
|
|
|
thumb_func_start ov02_0224766C
|
|
ov02_0224766C: ; 0x0224766C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl LCRandom
|
|
mov r1, #0x64
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x10
|
|
lsr r0, r0, #0x10
|
|
cmp r0, r4
|
|
bhs _02247686
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02247686:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224766C
|
|
|
|
thumb_func_start ov02_0224768C
|
|
ov02_0224768C: ; 0x0224768C
|
|
push {r3, lr}
|
|
bl LCRandom
|
|
mov r1, #0x64
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x10
|
|
lsr r0, r0, #0x10
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
cmp r0, #0x14
|
|
bhs _022476A8
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_022476A8:
|
|
blo _022476B2
|
|
cmp r0, #0x28
|
|
bhs _022476B2
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_022476B2:
|
|
cmp r0, #0x28
|
|
blo _022476BE
|
|
cmp r0, #0x32
|
|
bhs _022476BE
|
|
mov r0, #2
|
|
pop {r3, pc}
|
|
_022476BE:
|
|
cmp r0, #0x32
|
|
blo _022476CA
|
|
cmp r0, #0x3c
|
|
bhs _022476CA
|
|
mov r0, #3
|
|
pop {r3, pc}
|
|
_022476CA:
|
|
cmp r0, #0x3c
|
|
blo _022476D6
|
|
cmp r0, #0x46
|
|
bhs _022476D6
|
|
mov r0, #4
|
|
pop {r3, pc}
|
|
_022476D6:
|
|
cmp r0, #0x46
|
|
blo _022476E2
|
|
cmp r0, #0x50
|
|
bhs _022476E2
|
|
mov r0, #5
|
|
pop {r3, pc}
|
|
_022476E2:
|
|
cmp r0, #0x50
|
|
blo _022476EE
|
|
cmp r0, #0x55
|
|
bhs _022476EE
|
|
mov r0, #6
|
|
pop {r3, pc}
|
|
_022476EE:
|
|
cmp r0, #0x55
|
|
blo _022476FA
|
|
cmp r0, #0x5a
|
|
bhs _022476FA
|
|
mov r0, #7
|
|
pop {r3, pc}
|
|
_022476FA:
|
|
cmp r0, #0x5a
|
|
blo _02247706
|
|
cmp r0, #0x5e
|
|
bhs _02247706
|
|
mov r0, #8
|
|
pop {r3, pc}
|
|
_02247706:
|
|
cmp r0, #0x5e
|
|
blo _02247712
|
|
cmp r0, #0x62
|
|
bhs _02247712
|
|
mov r0, #9
|
|
pop {r3, pc}
|
|
_02247712:
|
|
cmp r0, #0x62
|
|
bne _0224771A
|
|
mov r0, #0xa
|
|
pop {r3, pc}
|
|
_0224771A:
|
|
mov r0, #0xb
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224768C
|
|
|
|
thumb_func_start ov02_02247720
|
|
ov02_02247720: ; 0x02247720
|
|
push {r3, lr}
|
|
bl LCRandom
|
|
mov r1, #0x64
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x10
|
|
lsr r0, r0, #0x10
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
cmp r0, #0x3c
|
|
bhs _0224773C
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_0224773C:
|
|
blo _02247746
|
|
cmp r0, #0x5a
|
|
bhs _02247746
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_02247746:
|
|
cmp r0, #0x5a
|
|
blo _02247752
|
|
cmp r0, #0x5f
|
|
bhs _02247752
|
|
mov r0, #2
|
|
pop {r3, pc}
|
|
_02247752:
|
|
cmp r0, #0x5f
|
|
blo _0224775E
|
|
cmp r0, #0x63
|
|
bhs _0224775E
|
|
mov r0, #3
|
|
pop {r3, pc}
|
|
_0224775E:
|
|
mov r0, #4
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02247720
|
|
|
|
thumb_func_start ov02_02247764
|
|
ov02_02247764: ; 0x02247764
|
|
push {r3, lr}
|
|
bl LCRandom
|
|
mov r1, #0x64
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x10
|
|
lsr r0, r0, #0x10
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
cmp r0, #0x28
|
|
bhs _02247780
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_02247780:
|
|
cmp r0, #0x46
|
|
bhs _02247788
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_02247788:
|
|
cmp r0, #0x55
|
|
bhs _02247790
|
|
mov r0, #2
|
|
pop {r3, pc}
|
|
_02247790:
|
|
cmp r0, #0x5f
|
|
bhs _02247798
|
|
mov r0, #3
|
|
pop {r3, pc}
|
|
_02247798:
|
|
mov r0, #4
|
|
pop {r3, pc}
|
|
thumb_func_end ov02_02247764
|
|
|
|
thumb_func_start ov02_0224779C
|
|
ov02_0224779C: ; 0x0224779C
|
|
push {r3, lr}
|
|
bl LCRandom
|
|
mov r1, #0x64
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x10
|
|
lsr r0, r0, #0x10
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
cmp r0, #0x50
|
|
blo _022477B8
|
|
mov r0, #1
|
|
b _022477BA
|
|
_022477B8:
|
|
mov r0, #0
|
|
_022477BA:
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
pop {r3, pc}
|
|
thumb_func_end ov02_0224779C
|
|
|
|
thumb_func_start ov02_022477C0
|
|
ov02_022477C0: ; 0x022477C0
|
|
push {r3, lr}
|
|
bl LCRandom
|
|
mov r1, #0x64
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x10
|
|
lsr r0, r0, #0x10
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
cmp r0, #0x32
|
|
bhs _022477DC
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_022477DC:
|
|
cmp r0, #0x41
|
|
bhs _022477E4
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_022477E4:
|
|
cmp r0, #0x50
|
|
bhs _022477EC
|
|
mov r0, #2
|
|
pop {r3, pc}
|
|
_022477EC:
|
|
cmp r0, #0x5a
|
|
bhs _022477F4
|
|
mov r0, #3
|
|
pop {r3, pc}
|
|
_022477F4:
|
|
cmp r0, #0x5f
|
|
bhs _022477FC
|
|
mov r0, #4
|
|
pop {r3, pc}
|
|
_022477FC:
|
|
mov r0, #5
|
|
pop {r3, pc}
|
|
thumb_func_end ov02_022477C0
|
|
|
|
thumb_func_start ApplyLeadMonHeldItemEffectToEncounterRate
|
|
ApplyLeadMonHeldItemEffectToEncounterRate: ; 0x02247800
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
mov r1, #6
|
|
mov r2, #0
|
|
bl GetMonData
|
|
lsl r0, r0, #0x10
|
|
lsr r1, r0, #0x10
|
|
cmp r1, #ITEM_CLEANSE_TAG
|
|
beq _0224781C
|
|
mov r0, #ITEM_PURE_INCENSE>>6
|
|
lsl r0, r0, #6
|
|
cmp r1, r0
|
|
bne _02247828
|
|
_0224781C:
|
|
ldrb r0, [r4]
|
|
mov r1, #3
|
|
lsl r0, r0, #1
|
|
bl _s32_div_f
|
|
strb r0, [r4]
|
|
_02247828:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ApplyLeadMonHeldItemEffectToEncounterRate
|
|
|
|
thumb_func_start ApplyFluteEffectToEncounterRate
|
|
ApplyFluteEffectToEncounterRate: ; 0x0224782C
|
|
push {r4, lr}
|
|
ldr r0, [r0, #0xc]
|
|
add r4, r1, #0
|
|
bl Save_Roamers_Get
|
|
bl RoamerSave_GetFlute
|
|
cmp r0, #1
|
|
bne _02247846
|
|
ldrb r0, [r4]
|
|
asr r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, pc}
|
|
_02247846:
|
|
cmp r0, #2
|
|
bne _02247852
|
|
ldrb r1, [r4]
|
|
lsr r0, r1, #1
|
|
add r0, r1, r0
|
|
strb r0, [r4]
|
|
_02247852:
|
|
pop {r4, pc}
|
|
thumb_func_end ApplyFluteEffectToEncounterRate
|
|
|
|
thumb_func_start ov02_02247854
|
|
ov02_02247854: ; 0x02247854
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrb r0, [r1, #0xd]
|
|
cmp r0, #0
|
|
bne _02247890
|
|
ldrb r0, [r1, #0xe]
|
|
cmp r0, #0x1c
|
|
bne _02247890
|
|
bl LCRandom
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0x1f
|
|
sub r1, r1, r2
|
|
mov r0, #0x1f
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
bne _02247890
|
|
mov r1, #0
|
|
add r0, r4, #0
|
|
add r2, r1, #0
|
|
bl GetMonData
|
|
mov r1, #0x19
|
|
bl _u32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r0, r0, #0x18
|
|
pop {r4, pc}
|
|
_02247890:
|
|
bl LCRandom
|
|
mov r1, #0x19
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x10
|
|
lsr r0, r0, #0x10
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_02247854
|
|
|
|
thumb_func_start ov02_022478A4
|
|
ov02_022478A4: ; 0x022478A4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r1, #0
|
|
ldrh r2, [r0, #6]
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, r2
|
|
blo _022478B8
|
|
lsl r0, r2, #0x18
|
|
lsr r4, r0, #0x18
|
|
lsl r0, r1, #0x18
|
|
b _022478BE
|
|
_022478B8:
|
|
lsl r0, r1, #0x18
|
|
lsr r4, r0, #0x18
|
|
lsl r0, r2, #0x18
|
|
_022478BE:
|
|
lsr r5, r0, #0x18
|
|
bl LCRandom
|
|
sub r1, r5, r4
|
|
add r1, r1, #1
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r6, r0, #0x18
|
|
ldrb r0, [r7, #0xd]
|
|
cmp r0, #0
|
|
bne _02247908
|
|
ldrb r0, [r7, #0xe]
|
|
cmp r0, #0x37
|
|
beq _022478E8
|
|
cmp r0, #0x48
|
|
beq _022478E8
|
|
cmp r0, #0x2e
|
|
bne _02247908
|
|
_022478E8:
|
|
bl LCRandom
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0x1f
|
|
sub r1, r1, r2
|
|
mov r0, #0x1f
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
bne _02247904
|
|
add r0, r4, r6
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
_02247904:
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02247908:
|
|
add r0, r4, r6
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_022478A4
|
|
|
|
thumb_func_start ov02_02247910
|
|
ov02_02247910: ; 0x02247910
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
str r0, [sp, #0x10]
|
|
ldr r6, [sp, #0x40]
|
|
str r1, [sp, #0x14]
|
|
mov r0, #0xb
|
|
str r2, [sp, #0x18]
|
|
add r5, r3, #0
|
|
bl AllocMonZeroed
|
|
str r0, [sp, #0x1c]
|
|
bl ZeroMonData
|
|
ldrb r0, [r6, #0xd]
|
|
mov r7, #0
|
|
cmp r0, #0
|
|
bne _02247994
|
|
ldrb r0, [r6, #0xe]
|
|
cmp r0, #0x38
|
|
bne _02247970
|
|
ldr r0, [sp, #0x10]
|
|
mov r1, #0x12
|
|
bl GetMonBaseStat
|
|
cmp r0, #0
|
|
beq _02247994
|
|
cmp r0, #0xfe
|
|
beq _02247994
|
|
cmp r0, #0xff
|
|
beq _02247994
|
|
bl LCRandom
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x10
|
|
lsr r0, r0, #0x10
|
|
beq _02247994
|
|
ldr r0, [sp, #0x44]
|
|
mov r1, #0x6f
|
|
add r2, r7, #0
|
|
bl GetMonData
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x24]
|
|
mov r7, #1
|
|
b _02247994
|
|
_02247970:
|
|
cmp r0, #0x1c
|
|
bne _02247994
|
|
bl LCRandom
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0x1f
|
|
sub r1, r1, r2
|
|
mov r0, #0x1f
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
bne _02247994
|
|
ldr r0, [sp, #0x44]
|
|
bl GetMonNature
|
|
str r0, [sp, #0x20]
|
|
mov r7, #1
|
|
_02247994:
|
|
add r0, r5, #0
|
|
bl GenerateShinyPersonality
|
|
add r4, r0, #0
|
|
cmp r7, #0
|
|
beq _022479E2
|
|
_022479A0:
|
|
ldrb r0, [r6, #0xe]
|
|
cmp r0, #0x38
|
|
bne _022479C8
|
|
ldr r0, [sp, #0x10]
|
|
add r1, r4, #0
|
|
bl GetGenderBySpeciesAndPersonality
|
|
add r7, r0, #0
|
|
cmp r7, #2
|
|
bne _022479B8
|
|
bl GF_AssertFail
|
|
_022479B8:
|
|
ldr r0, [sp, #0x24]
|
|
cmp r7, r0
|
|
bne _022479E2
|
|
add r0, r5, #0
|
|
bl GenerateShinyPersonality
|
|
add r4, r0, #0
|
|
b _022479A0
|
|
_022479C8:
|
|
cmp r0, #0x1c
|
|
bne _022479A0
|
|
add r0, r4, #0
|
|
bl GetNatureFromPersonality
|
|
ldr r1, [sp, #0x20]
|
|
cmp r0, r1
|
|
beq _022479E2
|
|
add r0, r5, #0
|
|
bl GenerateShinyPersonality
|
|
add r4, r0, #0
|
|
b _022479A0
|
|
_022479E2:
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r4, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r0, [r6]
|
|
mov r3, #0x20
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x1c]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, [sp, #0x14]
|
|
bl CreateMon
|
|
ldr r0, [sp, #0x18]
|
|
ldr r2, [sp, #0x1c]
|
|
ldr r3, [sp, #0x48]
|
|
add r1, r6, #0
|
|
bl ov02_0224855C
|
|
cmp r0, #0
|
|
bne _02247A0E
|
|
bl GF_AssertFail
|
|
_02247A0E:
|
|
ldr r0, [sp, #0x1c]
|
|
bl FreeToHeap
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_02247910
|
|
|
|
thumb_func_start ov02_02247A18
|
|
ov02_02247A18: ; 0x02247A18
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x20
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x3c]
|
|
str r1, [sp, #0x10]
|
|
str r0, [sp, #0x3c]
|
|
mov r0, #0xb
|
|
str r2, [sp, #0x14]
|
|
add r6, r3, #0
|
|
ldr r7, [sp, #0x38]
|
|
bl AllocMonZeroed
|
|
add r4, r0, #0
|
|
bl ZeroMonData
|
|
ldr r0, [sp, #0xc]
|
|
mov r1, #0x12
|
|
mov r5, #1
|
|
bl GetMonBaseStat
|
|
cmp r0, #0
|
|
beq _02247A4C
|
|
cmp r0, #0xfe
|
|
beq _02247A4C
|
|
cmp r0, #0xff
|
|
bne _02247A4E
|
|
_02247A4C:
|
|
mov r5, #0
|
|
_02247A4E:
|
|
cmp r5, #0
|
|
beq _02247AD4
|
|
ldrb r0, [r7, #0xd]
|
|
cmp r0, #0
|
|
bne _02247AD4
|
|
ldrb r0, [r7, #0xe]
|
|
cmp r0, #0x38
|
|
bne _02247AD4
|
|
bl LCRandom
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x10
|
|
lsr r0, r0, #0x10
|
|
beq _02247AD4
|
|
ldr r0, [sp, #0x3c]
|
|
mov r1, #0x6f
|
|
mov r2, #0
|
|
bl GetMonData
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
cmp r5, #1
|
|
bne _02247A84
|
|
mov r5, #0
|
|
b _02247A90
|
|
_02247A84:
|
|
cmp r5, #0
|
|
bne _02247A8C
|
|
mov r5, #1
|
|
b _02247A90
|
|
_02247A8C:
|
|
bl GF_AssertFail
|
|
_02247A90:
|
|
ldr r0, [sp, #0x3c]
|
|
add r1, r7, #0
|
|
bl ov02_02247854
|
|
str r5, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
ldr r1, [sp, #0xc]
|
|
ldr r2, [sp, #0x10]
|
|
add r0, r4, #0
|
|
mov r3, #0x20
|
|
bl CreateMonWithGenderNatureLetter
|
|
add r0, r4, #0
|
|
mov r1, #7
|
|
add r2, r7, #0
|
|
bl SetMonData
|
|
ldr r0, [sp, #0x14]
|
|
ldr r3, [sp, #0x40]
|
|
add r1, r7, #0
|
|
add r2, r4, #0
|
|
bl ov02_0224855C
|
|
cmp r0, #0
|
|
bne _02247ACA
|
|
bl GF_AssertFail
|
|
_02247ACA:
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02247AD4:
|
|
cmp r6, #0
|
|
beq _02247B26
|
|
mov r0, #0
|
|
str r0, [sp, #0x18]
|
|
str r0, [sp, #0x1c]
|
|
add r6, r0, #0
|
|
_02247AE0:
|
|
ldr r0, [sp, #0x3c]
|
|
add r1, r7, #0
|
|
bl ov02_02247854
|
|
str r0, [sp]
|
|
ldr r1, [sp, #0xc]
|
|
ldr r2, [sp, #0x10]
|
|
add r0, r4, #0
|
|
mov r3, #0x20
|
|
bl CreateMonWithNature
|
|
mov r5, #0
|
|
_02247AF8:
|
|
add r1, r5, #0
|
|
add r0, r4, #0
|
|
add r1, #0x46
|
|
add r2, r6, #0
|
|
bl GetMonData
|
|
cmp r0, #0x1f
|
|
bne _02247B0E
|
|
mov r0, #1
|
|
str r0, [sp, #0x18]
|
|
b _02247B14
|
|
_02247B0E:
|
|
add r5, r5, #1
|
|
cmp r5, #6
|
|
blt _02247AF8
|
|
_02247B14:
|
|
ldr r0, [sp, #0x18]
|
|
cmp r0, #0
|
|
bne _02247B3C
|
|
ldr r0, [sp, #0x1c]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x1c]
|
|
cmp r0, #4
|
|
blt _02247AE0
|
|
b _02247B3C
|
|
_02247B26:
|
|
ldr r0, [sp, #0x3c]
|
|
add r1, r7, #0
|
|
bl ov02_02247854
|
|
str r0, [sp]
|
|
ldr r1, [sp, #0xc]
|
|
ldr r2, [sp, #0x10]
|
|
add r0, r4, #0
|
|
mov r3, #0x20
|
|
bl CreateMonWithNature
|
|
_02247B3C:
|
|
add r0, r4, #0
|
|
mov r1, #7
|
|
add r2, r7, #0
|
|
bl SetMonData
|
|
ldr r0, [sp, #0x14]
|
|
ldr r3, [sp, #0x40]
|
|
add r1, r7, #0
|
|
add r2, r4, #0
|
|
bl ov02_0224855C
|
|
cmp r0, #0
|
|
bne _02247B5A
|
|
bl GF_AssertFail
|
|
_02247B5A:
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_02247A18
|
|
|
|
thumb_func_start ov02_02247B64
|
|
ov02_02247B64: ; 0x02247B64
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
str r1, [sp, #0xc]
|
|
mov r7, #0
|
|
add r1, sp, #0x10
|
|
strb r7, [r1]
|
|
add r1, sp, #0x18
|
|
ldrb r1, [r1, #0x10]
|
|
add r6, r0, #0
|
|
add r5, r2, #0
|
|
add r4, r3, #0
|
|
cmp r1, #4
|
|
bls _02247B80
|
|
b _02247D36
|
|
_02247B80:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02247B8C: ; jump table
|
|
.short _02247B96 - _02247B8C - 2 ; case 0
|
|
.short _02247C44 - _02247B8C - 2 ; case 1
|
|
.short _02247C94 - _02247B8C - 2 ; case 2
|
|
.short _02247BF4 - _02247B8C - 2 ; case 3
|
|
.short _02247CE6 - _02247B8C - 2 ; case 4
|
|
_02247B96:
|
|
mov r1, #8
|
|
str r1, [sp]
|
|
mov r1, #0x2a
|
|
str r1, [sp, #4]
|
|
add r1, sp, #0x10
|
|
str r1, [sp, #8]
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
mov r3, #0xc
|
|
bl ov02_02248150
|
|
cmp r0, #0
|
|
bne _02247BD4
|
|
mov r0, #0xd
|
|
str r0, [sp]
|
|
mov r0, #9
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
mov r3, #0xc
|
|
bl ov02_02248150
|
|
cmp r0, #0
|
|
bne _02247BD4
|
|
bl ov02_0224768C
|
|
add r1, sp, #0x10
|
|
strb r0, [r1]
|
|
_02247BD4:
|
|
add r3, sp, #0x10
|
|
ldrb r3, [r3]
|
|
add r0, r4, #0
|
|
mov r1, #0xc
|
|
add r2, r5, #0
|
|
bl ov02_022485B0
|
|
add r1, sp, #0x10
|
|
strb r0, [r1]
|
|
ldrb r0, [r1]
|
|
lsl r0, r0, #3
|
|
add r0, r4, r0
|
|
ldrh r0, [r0, #4]
|
|
lsl r0, r0, #0x18
|
|
lsr r7, r0, #0x18
|
|
b _02247D3A
|
|
_02247BF4:
|
|
mov r1, #8
|
|
str r1, [sp]
|
|
mov r1, #0x2a
|
|
str r1, [sp, #4]
|
|
add r1, sp, #0x10
|
|
str r1, [sp, #8]
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
mov r3, #2
|
|
bl ov02_02248150
|
|
cmp r0, #0
|
|
bne _02247C32
|
|
mov r0, #0xd
|
|
str r0, [sp]
|
|
mov r0, #9
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
mov r3, #2
|
|
bl ov02_02248150
|
|
cmp r0, #0
|
|
bne _02247C32
|
|
bl ov02_0224779C
|
|
add r1, sp, #0x10
|
|
strb r0, [r1]
|
|
_02247C32:
|
|
add r0, sp, #0x10
|
|
ldrb r0, [r0]
|
|
add r1, r5, #0
|
|
lsl r0, r0, #3
|
|
add r0, r4, r0
|
|
bl ov02_022478A4
|
|
add r7, r0, #0
|
|
b _02247D3A
|
|
_02247C44:
|
|
mov r1, #8
|
|
str r1, [sp]
|
|
mov r1, #0x2a
|
|
str r1, [sp, #4]
|
|
add r1, sp, #0x10
|
|
str r1, [sp, #8]
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
mov r3, #5
|
|
bl ov02_02248150
|
|
cmp r0, #0
|
|
bne _02247C82
|
|
mov r0, #0xd
|
|
str r0, [sp]
|
|
mov r0, #9
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
mov r3, #5
|
|
bl ov02_02248150
|
|
cmp r0, #0
|
|
bne _02247C82
|
|
bl ov02_02247720
|
|
add r1, sp, #0x10
|
|
strb r0, [r1]
|
|
_02247C82:
|
|
add r0, sp, #0x10
|
|
ldrb r0, [r0]
|
|
add r1, r5, #0
|
|
lsl r0, r0, #3
|
|
add r0, r4, r0
|
|
bl ov02_022478A4
|
|
add r7, r0, #0
|
|
b _02247D3A
|
|
_02247C94:
|
|
mov r1, #8
|
|
str r1, [sp]
|
|
mov r1, #0x2a
|
|
str r1, [sp, #4]
|
|
add r1, sp, #0x10
|
|
str r1, [sp, #8]
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
mov r3, #5
|
|
bl ov02_02248150
|
|
cmp r0, #0
|
|
bne _02247CD4
|
|
mov r0, #0xd
|
|
str r0, [sp]
|
|
mov r0, #9
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
mov r3, #5
|
|
bl ov02_02248150
|
|
cmp r0, #0
|
|
bne _02247CD4
|
|
ldr r0, [sp, #0xc]
|
|
bl ov02_02247764
|
|
add r1, sp, #0x10
|
|
strb r0, [r1]
|
|
_02247CD4:
|
|
add r0, sp, #0x10
|
|
ldrb r0, [r0]
|
|
add r1, r5, #0
|
|
lsl r0, r0, #3
|
|
add r0, r4, r0
|
|
bl ov02_022478A4
|
|
add r7, r0, #0
|
|
b _02247D3A
|
|
_02247CE6:
|
|
mov r1, #8
|
|
str r1, [sp]
|
|
mov r1, #0x2a
|
|
str r1, [sp, #4]
|
|
add r1, sp, #0x10
|
|
str r1, [sp, #8]
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
mov r3, #6
|
|
bl ov02_02248150
|
|
cmp r0, #0
|
|
bne _02247D24
|
|
mov r0, #0xd
|
|
str r0, [sp]
|
|
mov r0, #9
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
mov r3, #6
|
|
bl ov02_02248150
|
|
cmp r0, #0
|
|
bne _02247D24
|
|
bl ov02_022477C0
|
|
add r1, sp, #0x10
|
|
strb r0, [r1]
|
|
_02247D24:
|
|
add r0, sp, #0x10
|
|
ldrb r0, [r0]
|
|
add r1, r5, #0
|
|
lsl r0, r0, #3
|
|
add r0, r4, r0
|
|
bl ov02_022478A4
|
|
add r7, r0, #0
|
|
b _02247D3A
|
|
_02247D36:
|
|
bl GF_AssertFail
|
|
_02247D3A:
|
|
add r0, sp, #0x10
|
|
ldrb r0, [r0]
|
|
lsl r0, r0, #3
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0xc9
|
|
bne _02247D56
|
|
add r0, r5, #0
|
|
bl ov02_022482A4
|
|
cmp r0, #0
|
|
bne _02247D56
|
|
add sp, #0x14
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02247D56:
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
add r2, r7, #0
|
|
bl ov02_022481EC
|
|
cmp r0, #0
|
|
beq _02247D6A
|
|
add sp, #0x14
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02247D6A:
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
bl ov02_02248290
|
|
cmp r0, #1
|
|
bne _02247D7C
|
|
add sp, #0x14
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02247D7C:
|
|
str r5, [sp]
|
|
ldr r0, [sp, #0x30]
|
|
str r6, [sp, #4]
|
|
str r0, [sp, #8]
|
|
add r0, sp, #0x10
|
|
ldrb r0, [r0]
|
|
ldr r2, [sp, #0x2c]
|
|
add r1, r7, #0
|
|
lsl r0, r0, #3
|
|
ldr r0, [r4, r0]
|
|
mov r3, #0
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl ov02_02247A18
|
|
mov r0, #1
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_02247B64
|
|
|
|
thumb_func_start ov02_02247DA0
|
|
ov02_02247DA0: ; 0x02247DA0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x1c
|
|
add r7, r0, #0
|
|
ldr r0, [r7, #0xc]
|
|
add r6, r1, #0
|
|
str r2, [sp, #0xc]
|
|
add r5, r3, #0
|
|
bl Save_SafariZone_Get
|
|
mov r1, #3
|
|
bl SafariZone_GetAreaSet
|
|
str r0, [sp, #0x14]
|
|
add r0, r7, #0
|
|
bl ov02_0224E340
|
|
add r7, r0, #0
|
|
bl GF_RTC_GetTimeOfDayWildParam
|
|
add r3, r0, #0
|
|
add r0, sp, #0x20
|
|
ldrb r0, [r0, #0x10]
|
|
cmp r0, #0
|
|
beq _02247DDA
|
|
cmp r0, #1
|
|
beq _02247DEC
|
|
cmp r0, #2
|
|
beq _02247DFE
|
|
b _02247E12
|
|
_02247DDA:
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x14]
|
|
add r1, r7, #0
|
|
mov r2, #0
|
|
bl sub_020974C4
|
|
add r4, r0, #0
|
|
b _02247E16
|
|
_02247DEC:
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x14]
|
|
add r1, r7, #0
|
|
mov r2, #1
|
|
bl sub_020974C4
|
|
add r4, r0, #0
|
|
b _02247E16
|
|
_02247DFE:
|
|
mov r0, #4
|
|
ldr r2, [sp, #0xc]
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x14]
|
|
add r1, r7, #0
|
|
add r2, r2, #2
|
|
bl sub_020974C4
|
|
add r4, r0, #0
|
|
b _02247E16
|
|
_02247E12:
|
|
bl GF_AssertFail
|
|
_02247E16:
|
|
mov r1, #0
|
|
add r0, sp, #0x18
|
|
strb r1, [r0]
|
|
mov r0, #8
|
|
str r0, [sp]
|
|
mov r0, #0x2a
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x18
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
mov r3, #0xa
|
|
bl ov02_02248150
|
|
cmp r0, #0
|
|
bne _02247E50
|
|
mov r0, #0xd
|
|
str r0, [sp]
|
|
mov r0, #9
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x18
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
mov r3, #0xa
|
|
bl ov02_02248150
|
|
_02247E50:
|
|
cmp r0, #0
|
|
bne _02247E62
|
|
bl LCRandom
|
|
mov r1, #0xa
|
|
bl _s32_div_f
|
|
add r0, sp, #0x18
|
|
strb r1, [r0]
|
|
_02247E62:
|
|
add r0, sp, #0x20
|
|
ldrb r0, [r0, #0x10]
|
|
cmp r0, #0
|
|
bne _02247E7C
|
|
add r3, sp, #0x18
|
|
ldrb r3, [r3]
|
|
add r0, r4, #0
|
|
mov r1, #0xa
|
|
add r2, r5, #0
|
|
bl ov02_022485B0
|
|
add r1, sp, #0x18
|
|
strb r0, [r1]
|
|
_02247E7C:
|
|
add r0, sp, #0x18
|
|
ldrb r0, [r0]
|
|
lsl r1, r0, #3
|
|
ldr r0, [r4, r1]
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x10]
|
|
add r0, r4, r1
|
|
ldrh r0, [r0, #4]
|
|
add r1, r6, #0
|
|
lsl r0, r0, #0x18
|
|
lsr r7, r0, #0x18
|
|
add r0, r5, #0
|
|
add r2, r7, #0
|
|
bl ov02_022481EC
|
|
cmp r0, #0
|
|
bne _02247EAC
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
bl ov02_02248290
|
|
cmp r0, #1
|
|
bne _02247EB8
|
|
_02247EAC:
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add sp, #0x1c
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02247EB8:
|
|
str r5, [sp]
|
|
ldr r0, [sp, #0x38]
|
|
str r6, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #0x10]
|
|
ldr r2, [sp, #0x34]
|
|
add r1, r7, #0
|
|
mov r3, #1
|
|
bl ov02_02247A18
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
mov r0, #1
|
|
add sp, #0x1c
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_02247DA0
|
|
|
|
thumb_func_start ov02_02247ED8
|
|
ov02_02247ED8: ; 0x02247ED8
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
add r6, r1, #0
|
|
add r5, r3, #0
|
|
bl FieldSys_BugContest_Get
|
|
mov r1, #4
|
|
bl BugContest_GetEncounterSlot
|
|
add r4, r0, #0
|
|
ldrh r0, [r4, #4]
|
|
add r1, r5, #0
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl ov02_02248290
|
|
cmp r0, #1
|
|
bne _02247F08
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, pc}
|
|
_02247F08:
|
|
str r5, [sp]
|
|
ldr r0, [sp, #0x28]
|
|
str r6, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldrh r1, [r4, #4]
|
|
ldr r0, [r4]
|
|
ldr r2, [sp, #0x24]
|
|
lsl r0, r0, #0x10
|
|
lsl r1, r1, #0x18
|
|
lsr r0, r0, #0x10
|
|
lsr r1, r1, #0x18
|
|
mov r3, #1
|
|
bl ov02_02247A18
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
mov r0, #1
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
thumb_func_end ov02_02247ED8
|
|
|
|
thumb_func_start ov02_02247F30
|
|
ov02_02247F30: ; 0x02247F30
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x2c
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0xc]
|
|
add r6, r1, #0
|
|
add r7, r2, #0
|
|
str r3, [sp, #0xc]
|
|
bl SaveArray_PlayerParty_Get
|
|
mov r1, #0
|
|
bl GetPartyMonByIndex
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
add r3, sp, #0x10
|
|
bl ov02_02248618
|
|
ldr r0, [sp, #0xc]
|
|
cmp r0, #0
|
|
beq _02247F80
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_PlayerData_GetProfileAddr
|
|
bl PlayerProfile_GetTrainerID
|
|
add r3, r0, #0
|
|
add r0, sp, #0x10
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x40]
|
|
str r4, [sp, #4]
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
add r1, r7, #0
|
|
mov r2, #1
|
|
bl ov02_02247910
|
|
add sp, #0x2c
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02247F80:
|
|
add r0, sp, #0x10
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x40]
|
|
str r4, [sp, #4]
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
add r1, r7, #0
|
|
mov r2, #1
|
|
mov r3, #0
|
|
bl ov02_02247A18
|
|
add sp, #0x2c
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02247F30
|
|
|
|
thumb_func_start ov02_02247F9C
|
|
ov02_02247F9C: ; 0x02247F9C
|
|
push {r4, r5, r6, lr}
|
|
add r6, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r6, #0
|
|
mov r4, #0
|
|
bl sub_0205B994
|
|
cmp r0, #0
|
|
beq _02247FCA
|
|
add r0, r6, #0
|
|
bl sub_0205B778
|
|
cmp r0, #0
|
|
beq _02247FC2
|
|
add r0, r5, #0
|
|
bl ov02_02248020
|
|
add r4, r0, #0
|
|
b _02247FCA
|
|
_02247FC2:
|
|
add r0, r5, #0
|
|
bl ov02_02248014
|
|
add r4, r0, #0
|
|
_02247FCA:
|
|
cmp r4, #0
|
|
beq _0224800C
|
|
ldr r0, [r5, #0x20]
|
|
ldr r1, [r0]
|
|
ldr r0, _02248010 ; =0x0000013B
|
|
cmp r1, r0
|
|
beq _02247FE0
|
|
add r0, #0xaf
|
|
sub r0, r1, r0
|
|
cmp r0, #2
|
|
bhi _02248008
|
|
_02247FE0:
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
add r4, r0, #0
|
|
mov r5, #0
|
|
_02247FEA:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl Save_VarsFlags_CheckAlphPuzzleFlag
|
|
cmp r0, #0
|
|
beq _02247FFA
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_02247FFA:
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
cmp r5, #4
|
|
blo _02247FEA
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_02248008:
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_0224800C:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_02248010: .word 0x0000013B
|
|
thumb_func_end ov02_02247F9C
|
|
|
|
thumb_func_start ov02_02248014
|
|
ov02_02248014: ; 0x02248014
|
|
push {r3, lr}
|
|
bl MapEvents_GetLoadedEncTable
|
|
ldrb r0, [r0]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02248014
|
|
|
|
thumb_func_start ov02_02248020
|
|
ov02_02248020: ; 0x02248020
|
|
push {r3, lr}
|
|
bl MapEvents_GetLoadedEncTable
|
|
ldrb r0, [r0, #1]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02248020
|
|
|
|
thumb_func_start ov02_0224802C
|
|
ov02_0224802C: ; 0x0224802C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl MapEvents_GetLoadedEncTable
|
|
cmp r4, #0
|
|
beq _02248044
|
|
cmp r4, #1
|
|
beq _02248048
|
|
cmp r4, #2
|
|
beq _0224804C
|
|
b _02248050
|
|
_02248044:
|
|
ldrb r4, [r0, #3]
|
|
b _02248058
|
|
_02248048:
|
|
ldrb r4, [r0, #4]
|
|
b _02248058
|
|
_0224804C:
|
|
ldrb r4, [r0, #5]
|
|
b _02248058
|
|
_02248050:
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_02248058:
|
|
cmp r4, #0
|
|
bne _02248060
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_02248060:
|
|
add r0, r5, #0
|
|
bl FollowingPokemon_IsActive
|
|
cmp r0, #0
|
|
beq _0224808A
|
|
ldr r0, [r5, #0xc]
|
|
bl SaveArray_PlayerParty_Get
|
|
bl GetFirstAliveMonInParty_CrashIfNone
|
|
mov r1, #9
|
|
mov r2, #0
|
|
bl GetMonData
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl ov02_02248090
|
|
add r0, r4, r0
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
_0224808A:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224802C
|
|
|
|
thumb_func_start ov02_02248090
|
|
ov02_02248090: ; 0x02248090
|
|
cmp r0, #0x63
|
|
bhi _02248098
|
|
mov r0, #0
|
|
bx lr
|
|
_02248098:
|
|
cmp r0, #0x95
|
|
bhi _022480A0
|
|
mov r0, #0x14
|
|
bx lr
|
|
_022480A0:
|
|
cmp r0, #0xc7
|
|
bhi _022480A8
|
|
mov r0, #0x1e
|
|
bx lr
|
|
_022480A8:
|
|
cmp r0, #0xf9
|
|
bhi _022480B0
|
|
mov r0, #0x28
|
|
bx lr
|
|
_022480B0:
|
|
mov r0, #0x32
|
|
bx lr
|
|
thumb_func_end ov02_02248090
|
|
|
|
thumb_func_start ov02_022480B4
|
|
ov02_022480B4: ; 0x022480B4
|
|
push {r3, lr}
|
|
bl MapEvents_GetLoadedEncTable
|
|
ldrb r0, [r0, #2]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_022480B4
|
|
|
|
thumb_func_start ov02_022480C0
|
|
ov02_022480C0: ; 0x022480C0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x1c
|
|
add r6, r0, #0
|
|
mov r0, #0
|
|
str r1, [sp]
|
|
add r7, r2, #0
|
|
str r3, [sp, #4]
|
|
add r4, r0, #0
|
|
add r1, sp, #0x10
|
|
_022480D2:
|
|
strb r4, [r1, r0]
|
|
add r0, r0, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
cmp r0, #0xc
|
|
blo _022480D2
|
|
ldr r0, [sp]
|
|
add r5, r4, #0
|
|
cmp r0, #0
|
|
bls _02248128
|
|
_022480E6:
|
|
lsl r0, r5, #3
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r6, r0]
|
|
mov r1, #6
|
|
bl GetMonBaseStat
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #0xc]
|
|
mov r1, #7
|
|
ldr r0, [r6, r0]
|
|
bl GetMonBaseStat
|
|
lsl r0, r0, #0x18
|
|
lsr r1, r0, #0x18
|
|
ldr r0, [sp, #8]
|
|
cmp r0, r7
|
|
beq _02248110
|
|
cmp r1, r7
|
|
bne _0224811C
|
|
_02248110:
|
|
add r1, r4, #1
|
|
lsl r1, r1, #0x18
|
|
add r0, r4, #0
|
|
lsr r4, r1, #0x18
|
|
add r1, sp, #0x10
|
|
strb r5, [r1, r0]
|
|
_0224811C:
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
ldr r0, [sp]
|
|
cmp r5, r0
|
|
blo _022480E6
|
|
_02248128:
|
|
cmp r4, #0
|
|
beq _02248132
|
|
ldr r0, [sp]
|
|
cmp r4, r0
|
|
bne _02248138
|
|
_02248132:
|
|
add sp, #0x1c
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02248138:
|
|
bl LCRandom
|
|
add r1, r4, #0
|
|
bl _s32_div_f
|
|
add r0, sp, #0x10
|
|
ldrb r1, [r0, r1]
|
|
ldr r0, [sp, #4]
|
|
strb r1, [r0]
|
|
mov r0, #1
|
|
add sp, #0x1c
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_022480C0
|
|
|
|
thumb_func_start ov02_02248150
|
|
ov02_02248150: ; 0x02248150
|
|
push {r3, r4, r5, lr}
|
|
ldrb r0, [r1, #0xd]
|
|
add r5, r2, #0
|
|
add r4, r3, #0
|
|
cmp r0, #0
|
|
bne _0224818C
|
|
add r0, sp, #0
|
|
ldrb r1, [r1, #0xe]
|
|
ldrb r0, [r0, #0x14]
|
|
cmp r1, r0
|
|
bne _0224818C
|
|
bl LCRandom
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0x1f
|
|
sub r1, r1, r2
|
|
mov r0, #0x1f
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
bne _0224818C
|
|
add r2, sp, #0
|
|
ldrb r2, [r2, #0x10]
|
|
ldr r3, [sp, #0x18]
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov02_022480C0
|
|
pop {r3, r4, r5, pc}
|
|
_0224818C:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_02248150
|
|
|
|
thumb_func_start ov02_02248190
|
|
ov02_02248190: ; 0x02248190
|
|
push {r3, r4}
|
|
ldrb r4, [r2, #0xd]
|
|
cmp r4, #0
|
|
bne _022481E2
|
|
cmp r0, #0
|
|
ldrb r0, [r2, #0xe]
|
|
beq _022481AA
|
|
cmp r0, #0x3c
|
|
beq _022481A6
|
|
cmp r0, #0x15
|
|
bne _022481DC
|
|
_022481A6:
|
|
lsl r1, r1, #1
|
|
b _022481DC
|
|
_022481AA:
|
|
cmp r0, #0x47
|
|
beq _022481B6
|
|
cmp r0, #0x63
|
|
beq _022481B6
|
|
cmp r0, #0x23
|
|
bne _022481BA
|
|
_022481B6:
|
|
lsl r1, r1, #1
|
|
b _022481DC
|
|
_022481BA:
|
|
cmp r0, #0x51
|
|
bne _022481CA
|
|
cmp r3, #5
|
|
bne _022481DC
|
|
lsr r0, r1, #0x1f
|
|
add r0, r1, r0
|
|
asr r1, r0, #1
|
|
b _022481DC
|
|
_022481CA:
|
|
cmp r0, #0x49
|
|
beq _022481D6
|
|
cmp r0, #0x5f
|
|
beq _022481D6
|
|
cmp r0, #1
|
|
bne _022481DC
|
|
_022481D6:
|
|
lsr r0, r1, #0x1f
|
|
add r0, r1, r0
|
|
asr r1, r0, #1
|
|
_022481DC:
|
|
cmp r1, #0x64
|
|
ble _022481E2
|
|
mov r1, #0x64
|
|
_022481E2:
|
|
lsl r0, r1, #0x18
|
|
lsr r0, r0, #0x18
|
|
pop {r3, r4}
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02248190
|
|
|
|
thumb_func_start ov02_022481EC
|
|
ov02_022481EC: ; 0x022481EC
|
|
push {r4, lr}
|
|
add r4, r2, #0
|
|
ldr r2, [r0, #8]
|
|
cmp r2, #0
|
|
beq _022481FA
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_022481FA:
|
|
ldrb r2, [r0, #0xd]
|
|
cmp r2, #0
|
|
bne _02248240
|
|
ldrb r0, [r0, #0xe]
|
|
cmp r0, #0x33
|
|
beq _0224820A
|
|
cmp r0, #0x16
|
|
bne _02248240
|
|
_0224820A:
|
|
add r0, r1, #0
|
|
mov r1, #0xa1
|
|
mov r2, #0
|
|
bl GetMonData
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
cmp r0, #5
|
|
bhi _02248220
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_02248220:
|
|
sub r0, r0, #5
|
|
cmp r4, r0
|
|
bgt _02248240
|
|
bl LCRandom
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0x1f
|
|
sub r1, r1, r2
|
|
mov r0, #0x1f
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
bne _02248240
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02248240:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_022481EC
|
|
|
|
thumb_func_start ov02_02248244
|
|
ov02_02248244: ; 0x02248244
|
|
push {r3, r4, r5, lr}
|
|
add r5, r2, #0
|
|
cmp r1, #1
|
|
beq _02248252
|
|
cmp r1, #2
|
|
beq _0224826A
|
|
b _02248284
|
|
_02248252:
|
|
ldr r0, [r0, #0xc]
|
|
bl Save_LocalFieldData_Get
|
|
bl LocalFieldData_GetSafariBallsCounter
|
|
add r1, r0, #0
|
|
ldrh r1, [r1]
|
|
mov r0, #0xb
|
|
bl sub_02051A60
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
_0224826A:
|
|
bl FieldSys_BugContest_Get
|
|
add r4, r0, #0
|
|
bl BugContest_GetSportBallsAddr
|
|
add r1, r0, #0
|
|
ldrh r1, [r1]
|
|
ldr r2, [r4, #0x10]
|
|
mov r0, #0xb
|
|
bl sub_02051A74
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
_02248284:
|
|
mov r0, #0xb
|
|
mov r1, #0
|
|
bl BattleSetup_New
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_02248244
|
|
|
|
thumb_func_start ov02_02248290
|
|
ov02_02248290: ; 0x02248290
|
|
ldr r2, [r1, #4]
|
|
cmp r2, #0
|
|
beq _022482A0
|
|
ldrb r1, [r1, #0xc]
|
|
cmp r1, r0
|
|
bls _022482A0
|
|
mov r0, #1
|
|
bx lr
|
|
_022482A0:
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end ov02_02248290
|
|
|
|
thumb_func_start ov02_022482A4
|
|
ov02_022482A4: ; 0x022482A4
|
|
mov r2, #0
|
|
_022482A6:
|
|
add r1, r0, r2
|
|
ldrb r1, [r1, #0x12]
|
|
cmp r1, #0
|
|
beq _022482B2
|
|
mov r0, #1
|
|
bx lr
|
|
_022482B2:
|
|
add r2, r2, #1
|
|
cmp r2, #4
|
|
blt _022482A6
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end ov02_022482A4
|
|
|
|
thumb_func_start ov02_022482BC
|
|
ov02_022482BC: ; 0x022482BC
|
|
push {r0, r1, r2, r3}
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r5, r1, #0
|
|
mov r0, #4
|
|
add r6, r2, #0
|
|
bl AllocMonZeroed
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
mov r1, #4
|
|
bl GetRoamerData
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
mov r1, #6
|
|
bl GetRoamerData
|
|
lsl r0, r0, #0x18
|
|
lsr r7, r0, #0x18
|
|
add r0, r5, #0
|
|
mov r1, #2
|
|
bl GetRoamerData
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
mov r1, #3
|
|
bl GetRoamerData
|
|
str r0, [sp, #0xc]
|
|
add r0, r5, #0
|
|
mov r1, #7
|
|
bl GetRoamerData
|
|
str r0, [sp, #0x14]
|
|
add r0, r5, #0
|
|
mov r1, #5
|
|
bl GetRoamerData
|
|
add r1, sp, #0x10
|
|
strh r0, [r1]
|
|
ldr r1, [sp, #4]
|
|
ldr r0, [sp, #0xc]
|
|
lsl r1, r1, #0x10
|
|
str r0, [sp]
|
|
ldr r3, [sp, #8]
|
|
add r0, r4, #0
|
|
lsr r1, r1, #0x10
|
|
add r2, r7, #0
|
|
bl CreateMonWithFixedIVs
|
|
add r0, r4, #0
|
|
mov r1, #7
|
|
add r2, sp, #0x30
|
|
bl SetMonData
|
|
add r0, r4, #0
|
|
mov r1, #0xa0
|
|
add r2, sp, #0x14
|
|
bl SetMonData
|
|
add r0, r4, #0
|
|
mov r1, #0xa3
|
|
add r2, sp, #0x10
|
|
bl SetMonData
|
|
ldr r0, [r6, #8]
|
|
add r1, r4, #0
|
|
bl AddMonToParty
|
|
cmp r0, #0
|
|
bne _02248350
|
|
bl GF_AssertFail
|
|
_02248350:
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7}
|
|
pop {r3}
|
|
add sp, #0x10
|
|
bx r3
|
|
thumb_func_end ov02_022482BC
|
|
|
|
; BOOL ov02_GetRandomActiveRoamerInCurrMap(FieldSystem *fsys, Roamer **out);
|
|
thumb_func_start ov02_GetRandomActiveRoamerInCurrMap
|
|
ov02_GetRandomActiveRoamerInCurrMap: ; 0x02248360
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
str r0, [sp]
|
|
ldr r0, [r0, #0xc]
|
|
str r1, [sp, #4]
|
|
mov r5, #0
|
|
bl Save_Roamers_Get
|
|
add r6, r0, #0
|
|
add r4, r5, #0
|
|
_02248374:
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
bl Roamer_GetLocation
|
|
bl GetRoamMapByLocationIdx
|
|
add r7, r0, #0
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
bl GetRoamerIsActiveByIndex
|
|
cmp r0, #0
|
|
beq _022483AC
|
|
ldr r0, [sp]
|
|
ldr r0, [r0, #0x20]
|
|
ldr r0, [r0]
|
|
cmp r7, r0
|
|
bne _022483AC
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
bl Roamers_GetRoamMonStats
|
|
lsl r2, r5, #2
|
|
add r1, sp, #8
|
|
str r0, [r1, r2]
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
_022483AC:
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #4
|
|
blo _02248374
|
|
cmp r5, #0
|
|
bne _022483C0
|
|
add sp, #0x18
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022483C0:
|
|
bl LCRandom
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0x1f
|
|
sub r1, r1, r2
|
|
mov r0, #0x1f
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
bne _022483DC
|
|
add sp, #0x18
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022483DC:
|
|
cmp r5, #1
|
|
bls _0224840A
|
|
cmp r5, #0
|
|
bne _022483E8
|
|
bl GF_AssertFail
|
|
_022483E8:
|
|
cmp r5, #1
|
|
bhi _022483F0
|
|
mov r0, #0
|
|
b _022483FE
|
|
_022483F0:
|
|
bl LCRandom
|
|
add r1, r5, #0
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x10
|
|
lsr r0, r0, #0x10
|
|
_022483FE:
|
|
lsl r1, r0, #2
|
|
add r0, sp, #8
|
|
ldr r1, [r0, r1]
|
|
ldr r0, [sp, #4]
|
|
str r1, [r0]
|
|
b _02248410
|
|
_0224840A:
|
|
ldr r1, [sp, #8]
|
|
ldr r0, [sp, #4]
|
|
str r1, [r0]
|
|
_02248410:
|
|
mov r0, #1
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_GetRandomActiveRoamerInCurrMap
|
|
|
|
thumb_func_start ov02_02248418
|
|
ov02_02248418: ; 0x02248418
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
add r7, r0, #0
|
|
add r6, r2, #0
|
|
mov r4, #0
|
|
cmp r5, #0
|
|
ble _0224843E
|
|
_02248426:
|
|
add r0, r7, #0
|
|
add r1, r4, #0
|
|
mov r2, #1
|
|
bl Pokedex_GetSeenFormByIdx_Unown
|
|
cmp r6, r0
|
|
bne _02248438
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02248438:
|
|
add r4, r4, #1
|
|
cmp r4, r5
|
|
blt _02248426
|
|
_0224843E:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02248418
|
|
|
|
thumb_func_start ov02_02248444
|
|
ov02_02248444: ; 0x02248444
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp]
|
|
ldrb r0, [r0, #0x11]
|
|
cmp r0, #0
|
|
beq _02248470
|
|
bl LCRandom
|
|
ldr r1, _02248554 ; =ov02_02253290
|
|
lsr r2, r0, #0x1f
|
|
ldr r3, [r1, #0x48]
|
|
lsl r1, r0, #0x1f
|
|
sub r1, r1, r2
|
|
mov r0, #0x1f
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
add sp, #0x18
|
|
ldrb r0, [r3, r0]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02248470:
|
|
mov r0, #4
|
|
mov r1, #0x1c
|
|
bl AllocFromHeapAtEnd
|
|
str r0, [sp, #8]
|
|
mov r0, #4
|
|
mov r1, #0x1c
|
|
bl AllocFromHeapAtEnd
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #8]
|
|
mov r1, #0
|
|
mov r2, #0x1c
|
|
bl MI_CpuFill8
|
|
ldr r0, [sp, #4]
|
|
mov r1, #0
|
|
mov r2, #0x1c
|
|
bl MI_CpuFill8
|
|
bl GetRadioMusicPlayingSeq
|
|
cmp r0, #6
|
|
bne _022484A4
|
|
mov r0, #1
|
|
str r0, [sp, #0xc]
|
|
_022484A4:
|
|
ldr r0, [sp]
|
|
mov r6, #0
|
|
ldr r0, [r0, #0x18]
|
|
mov r1, #1
|
|
add r7, r6, #0
|
|
bl Pokedex_GetSeenFormNum_Unown
|
|
lsl r0, r0, #0x18
|
|
add r1, r6, #0
|
|
lsr r0, r0, #0x18
|
|
ldr r4, _02248558 ; =ov02_022532B4
|
|
str r1, [sp, #0x10]
|
|
str r0, [sp, #0x14]
|
|
_022484BE:
|
|
ldr r1, [sp]
|
|
ldr r0, [sp, #0x10]
|
|
add r0, r1, r0
|
|
ldrb r0, [r0, #0x12]
|
|
cmp r0, #0
|
|
beq _02248500
|
|
ldr r0, [r4]
|
|
mov r5, #0
|
|
cmp r0, #0
|
|
ble _02248500
|
|
_022484D2:
|
|
ldr r2, [r4, #4]
|
|
ldr r0, [sp]
|
|
ldrb r2, [r2, r5]
|
|
ldr r0, [r0, #0x18]
|
|
ldr r1, [sp, #0x14]
|
|
bl ov02_02248418
|
|
cmp r0, #0
|
|
bne _022484EE
|
|
ldr r0, [r4, #4]
|
|
ldrb r1, [r0, r5]
|
|
ldr r0, [sp, #4]
|
|
strb r1, [r0, r6]
|
|
add r6, r6, #1
|
|
_022484EE:
|
|
ldr r0, [r4, #4]
|
|
ldrb r1, [r0, r5]
|
|
ldr r0, [sp, #8]
|
|
add r5, r5, #1
|
|
strb r1, [r0, r7]
|
|
ldr r0, [r4]
|
|
add r7, r7, #1
|
|
cmp r5, r0
|
|
blt _022484D2
|
|
_02248500:
|
|
ldr r0, [sp, #0x10]
|
|
add r4, #8
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x10]
|
|
cmp r0, #4
|
|
blt _022484BE
|
|
ldr r0, [sp, #0xc]
|
|
cmp r0, #0
|
|
beq _02248534
|
|
cmp r6, #0
|
|
ble _02248534
|
|
bl LCRandom
|
|
mov r1, #0x64
|
|
bl _s32_div_f
|
|
cmp r1, #0x32
|
|
bge _02248534
|
|
bl LCRandom
|
|
add r1, r6, #0
|
|
bl _s32_div_f
|
|
ldr r0, [sp, #4]
|
|
ldrb r4, [r0, r1]
|
|
b _02248542
|
|
_02248534:
|
|
bl LCRandom
|
|
add r1, r7, #0
|
|
bl _s32_div_f
|
|
ldr r0, [sp, #8]
|
|
ldrb r4, [r0, r1]
|
|
_02248542:
|
|
ldr r0, [sp, #4]
|
|
bl FreeToHeap
|
|
ldr r0, [sp, #8]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_02248554: .word ov02_02253290
|
|
_02248558: .word ov02_022532B4
|
|
thumb_func_end ov02_02248444
|
|
|
|
thumb_func_start ov02_0224855C
|
|
ov02_0224855C: ; 0x0224855C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
add r7, r0, #0
|
|
ldrb r0, [r5, #0xd]
|
|
add r4, r2, #0
|
|
add r6, r3, #0
|
|
cmp r0, #0
|
|
bne _02248576
|
|
ldrb r0, [r5, #0xe]
|
|
cmp r0, #0xe
|
|
bne _02248576
|
|
mov r2, #1
|
|
b _02248578
|
|
_02248576:
|
|
mov r2, #0
|
|
_02248578:
|
|
ldr r1, [r6]
|
|
add r0, r4, #0
|
|
bl WildMonSetRandomHeldItem
|
|
add r0, r4, #0
|
|
mov r1, #5
|
|
mov r2, #0
|
|
bl GetMonData
|
|
cmp r0, #SPECIES_UNOWN
|
|
bne _022485A2
|
|
add r0, r5, #0
|
|
bl ov02_02248444
|
|
add r1, sp, #0
|
|
strb r0, [r1]
|
|
add r0, r4, #0
|
|
mov r1, #0x70
|
|
add r2, sp, #0
|
|
bl SetMonData
|
|
_022485A2:
|
|
lsl r0, r7, #2
|
|
add r0, r6, r0
|
|
ldr r0, [r0, #4]
|
|
add r1, r4, #0
|
|
bl AddMonToParty
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_0224855C
|
|
|
|
thumb_func_start ov02_022485B0
|
|
ov02_022485B0: ; 0x022485B0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldrb r0, [r2, #0xd]
|
|
add r6, r1, #0
|
|
add r4, r3, #0
|
|
cmp r0, #0
|
|
bne _02248614
|
|
ldrb r0, [r2, #0xe]
|
|
cmp r0, #0x48
|
|
beq _022485CC
|
|
cmp r0, #0x37
|
|
beq _022485CC
|
|
cmp r0, #0x2e
|
|
bne _02248614
|
|
_022485CC:
|
|
bl LCRandom
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0x1f
|
|
sub r1, r1, r2
|
|
mov r0, #0x1f
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
bne _022485E6
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022485E6:
|
|
mov r7, #0
|
|
cmp r6, #0
|
|
ble _02248610
|
|
_022485EC:
|
|
lsl r2, r4, #3
|
|
lsl r0, r7, #3
|
|
add r3, r5, r2
|
|
add r1, r5, r0
|
|
ldr r0, [r5, r0]
|
|
ldr r2, [r5, r2]
|
|
cmp r0, r2
|
|
bne _02248606
|
|
ldrh r1, [r1, #4]
|
|
ldrh r0, [r3, #4]
|
|
cmp r1, r0
|
|
bls _02248606
|
|
add r4, r7, #0
|
|
_02248606:
|
|
add r0, r7, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r7, r0, #0x18
|
|
cmp r7, r6
|
|
blt _022485EC
|
|
_02248610:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02248614:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_022485B0
|
|
|
|
thumb_func_start ov02_02248618
|
|
ov02_02248618: ; 0x02248618
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r1, #0
|
|
add r7, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #0x4c
|
|
mov r2, #0
|
|
add r5, r3, #0
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
bne _0224863C
|
|
mov r2, #0
|
|
add r0, r4, #0
|
|
mov r1, #0xa
|
|
strb r2, [r5, #0xd]
|
|
bl GetMonData
|
|
b _02248642
|
|
_0224863C:
|
|
mov r0, #1
|
|
strb r0, [r5, #0xd]
|
|
mov r0, #NUM_ABILITIES
|
|
_02248642:
|
|
strb r0, [r5, #0xe]
|
|
mov r0, #0
|
|
strb r0, [r5, #0xc]
|
|
str r0, [r5, #4]
|
|
str r0, [r5, #8]
|
|
strb r0, [r5, #0xf]
|
|
strb r0, [r5, #0x10]
|
|
ldr r0, [r7, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
add r6, r0, #0
|
|
ldr r0, [r7, #0x20]
|
|
ldr r1, [r0]
|
|
ldr r0, _02248694 ; =0x000001EB
|
|
cmp r1, r0
|
|
bne _02248666
|
|
mov r0, #1
|
|
b _02248668
|
|
_02248666:
|
|
mov r0, #0
|
|
_02248668:
|
|
strb r0, [r5, #0x11]
|
|
mov r4, #0
|
|
_0224866C:
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
bl Save_VarsFlags_CheckAlphPuzzleFlag
|
|
add r1, r5, r4
|
|
add r4, r4, #1
|
|
strb r0, [r1, #0x12]
|
|
cmp r4, #4
|
|
blt _0224866C
|
|
ldr r0, [r7, #0xc]
|
|
bl Save_Pokedex_Get
|
|
str r0, [r5, #0x18]
|
|
ldr r0, [r7, #0xc]
|
|
bl Save_PlayerData_GetProfileAddr
|
|
bl PlayerProfile_GetTrainerID
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_02248694: .word 0x000001EB
|
|
thumb_func_end ov02_02248618
|
|
|
|
thumb_func_start ov02_02248698
|
|
ov02_02248698: ; 0x02248698
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x40]
|
|
bl PlayerAvatar_GetFacingDirection
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
mov r1, #0
|
|
cmp r0, #3
|
|
bhi _022486F8
|
|
add r2, r0, r0
|
|
add r2, pc
|
|
ldrh r2, [r2, #6]
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
add pc, r2
|
|
_022486B8: ; jump table
|
|
.short _022486C0 - _022486B8 - 2 ; case 0
|
|
.short _022486CE - _022486B8 - 2 ; case 1
|
|
.short _022486DC - _022486B8 - 2 ; case 2
|
|
.short _022486EA - _022486B8 - 2 ; case 3
|
|
_022486C0:
|
|
add r2, r4, #0
|
|
add r2, #0x7a
|
|
ldrh r2, [r2]
|
|
cmp r2, #1
|
|
bne _022486FE
|
|
mov r1, #1
|
|
b _022486FE
|
|
_022486CE:
|
|
add r2, r4, #0
|
|
add r2, #0x7a
|
|
ldrh r2, [r2]
|
|
cmp r2, #0
|
|
bne _022486FE
|
|
mov r1, #1
|
|
b _022486FE
|
|
_022486DC:
|
|
add r2, r4, #0
|
|
add r2, #0x7a
|
|
ldrh r2, [r2]
|
|
cmp r2, #3
|
|
bne _022486FE
|
|
mov r1, #1
|
|
b _022486FE
|
|
_022486EA:
|
|
add r2, r4, #0
|
|
add r2, #0x7a
|
|
ldrh r2, [r2]
|
|
cmp r2, #2
|
|
bne _022486FE
|
|
mov r1, #1
|
|
b _022486FE
|
|
_022486F8:
|
|
bl GF_AssertFail
|
|
pop {r4, pc}
|
|
_022486FE:
|
|
cmp r1, #0
|
|
beq _0224871C
|
|
add r1, r4, #0
|
|
add r1, #0x7c
|
|
ldrh r2, [r1]
|
|
ldr r1, _02248724 ; =0x0000FFFF
|
|
cmp r2, r1
|
|
bhs _0224871C
|
|
add r1, r4, #0
|
|
add r1, #0x7c
|
|
ldrh r1, [r1]
|
|
add r2, r1, #1
|
|
add r1, r4, #0
|
|
add r1, #0x7c
|
|
strh r2, [r1]
|
|
_0224871C:
|
|
add r4, #0x7a
|
|
strh r0, [r4]
|
|
pop {r4, pc}
|
|
nop
|
|
_02248724: .word 0x0000FFFF
|
|
thumb_func_end ov02_02248698
|
|
|
|
thumb_func_start ov02_02248728
|
|
ov02_02248728: ; 0x02248728
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r6, r2, #0
|
|
ldr r0, [sp, #0x1c]
|
|
add r7, r3, #0
|
|
strb r6, [r5]
|
|
ldr r4, [sp, #0x18]
|
|
strb r7, [r5, #1]
|
|
strb r4, [r5, #2]
|
|
str r0, [sp, #0x1c]
|
|
strb r0, [r5, #3]
|
|
ldr r0, [sp, #0x20]
|
|
mov r2, #4
|
|
strb r0, [r5, #4]
|
|
ldr r0, [sp, #0x24]
|
|
strb r0, [r5, #5]
|
|
ldr r0, [sp, #0x28]
|
|
strb r0, [r5, #6]
|
|
ldr r0, [sp, #0x2c]
|
|
strb r0, [r5, #7]
|
|
add r0, r1, #0
|
|
add r1, r5, #0
|
|
add r1, #0xc
|
|
bl G2dRenderer_Init
|
|
str r0, [r5, #8]
|
|
add r0, r5, #0
|
|
mov r2, #2
|
|
add r0, #0xc
|
|
mov r1, #0
|
|
lsl r2, r2, #0x14
|
|
bl G2dRenderer_SetSubSurfaceCoords
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl Create2DGfxResObjMan
|
|
mov r1, #0x4d
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add r0, r7, #0
|
|
mov r1, #1
|
|
mov r2, #4
|
|
bl Create2DGfxResObjMan
|
|
mov r1, #0x4e
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
mov r2, #4
|
|
bl Create2DGfxResObjMan
|
|
mov r1, #0x4f
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
ldr r0, [sp, #0x1c]
|
|
mov r1, #3
|
|
mov r2, #4
|
|
bl Create2DGfxResObjMan
|
|
mov r1, #5
|
|
lsl r1, r1, #6
|
|
str r0, [r5, r1]
|
|
mov r0, #4
|
|
lsl r1, r6, #3
|
|
bl ov02_0224B690
|
|
mov r1, #0x51
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
mov r0, #4
|
|
lsl r1, r7, #3
|
|
bl ov02_0224B690
|
|
mov r1, #0x52
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
mov r0, #4
|
|
lsl r1, r4, #3
|
|
bl ov02_0224B690
|
|
mov r1, #0x53
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
ldr r1, [sp, #0x1c]
|
|
mov r0, #4
|
|
lsl r1, r1, #3
|
|
bl ov02_0224B690
|
|
mov r1, #0x15
|
|
lsl r1, r1, #4
|
|
str r0, [r5, r1]
|
|
mov r1, #0
|
|
cmp r6, #0
|
|
ble _02248804
|
|
ble _02248804
|
|
ldr r0, [sp, #0x20]
|
|
add r2, r1, #0
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
_022487F4:
|
|
mov r3, #0x51
|
|
lsl r3, r3, #2
|
|
ldr r3, [r5, r3]
|
|
add r1, r1, #1
|
|
strh r0, [r3, r2]
|
|
add r2, #8
|
|
cmp r1, r6
|
|
blt _022487F4
|
|
_02248804:
|
|
mov r3, #0
|
|
cmp r7, #0
|
|
ble _02248824
|
|
ble _02248824
|
|
ldr r0, [sp, #0x24]
|
|
mov r6, #0x52
|
|
lsl r0, r0, #0x10
|
|
add r2, r3, #0
|
|
asr r1, r0, #0x10
|
|
lsl r6, r6, #2
|
|
_02248818:
|
|
ldr r0, [r5, r6]
|
|
add r3, r3, #1
|
|
strh r1, [r0, r2]
|
|
add r2, #8
|
|
cmp r3, r7
|
|
blt _02248818
|
|
_02248824:
|
|
mov r1, #0
|
|
cmp r4, #0
|
|
ble _02248844
|
|
ble _02248844
|
|
ldr r2, [sp, #0x28]
|
|
add r0, r1, #0
|
|
lsl r2, r2, #0x10
|
|
asr r6, r2, #0x10
|
|
mov r2, #0x53
|
|
lsl r2, r2, #2
|
|
_02248838:
|
|
ldr r3, [r5, r2]
|
|
add r1, r1, #1
|
|
strh r6, [r3, r0]
|
|
add r0, #8
|
|
cmp r1, r4
|
|
blt _02248838
|
|
_02248844:
|
|
ldr r0, [sp, #0x1c]
|
|
mov r1, #0
|
|
cmp r0, #0
|
|
ble _02248868
|
|
ble _02248868
|
|
ldr r2, [sp, #0x2c]
|
|
mov r3, #0x15
|
|
lsl r2, r2, #0x10
|
|
add r0, r1, #0
|
|
asr r4, r2, #0x10
|
|
lsl r3, r3, #4
|
|
_0224885A:
|
|
ldr r2, [r5, r3]
|
|
add r1, r1, #1
|
|
strh r4, [r2, r0]
|
|
ldr r2, [sp, #0x1c]
|
|
add r0, #8
|
|
cmp r1, r2
|
|
blt _0224885A
|
|
_02248868:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02248728
|
|
|
|
thumb_func_start ov02_0224886C
|
|
ov02_0224886C: ; 0x0224886C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldrb r0, [r5]
|
|
mov r6, #0
|
|
cmp r0, #0
|
|
ble _0224889C
|
|
add r4, r6, #0
|
|
mov r7, #4
|
|
_0224887C:
|
|
mov r0, #0x51
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5, r0]
|
|
ldrsb r2, [r5, r7]
|
|
add r0, r1, r4
|
|
ldrsh r1, [r1, r4]
|
|
cmp r2, r1
|
|
beq _02248892
|
|
ldr r0, [r0, #4]
|
|
bl sub_0200AEB0
|
|
_02248892:
|
|
ldrb r0, [r5]
|
|
add r6, r6, #1
|
|
add r4, #8
|
|
cmp r6, r0
|
|
blt _0224887C
|
|
_0224889C:
|
|
ldrb r0, [r5, #1]
|
|
mov r6, #0
|
|
cmp r0, #0
|
|
ble _022488C8
|
|
add r4, r6, #0
|
|
mov r7, #5
|
|
_022488A8:
|
|
mov r0, #0x52
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5, r0]
|
|
ldrsb r2, [r5, r7]
|
|
add r0, r1, r4
|
|
ldrsh r1, [r1, r4]
|
|
cmp r2, r1
|
|
beq _022488BE
|
|
ldr r0, [r0, #4]
|
|
bl sub_0200B0A8
|
|
_022488BE:
|
|
ldrb r0, [r5, #1]
|
|
add r6, r6, #1
|
|
add r4, #8
|
|
cmp r6, r0
|
|
blt _022488A8
|
|
_022488C8:
|
|
ldrb r0, [r5, #2]
|
|
mov r6, #0
|
|
cmp r0, #0
|
|
ble _022488F4
|
|
add r4, r6, #0
|
|
mov r7, #6
|
|
_022488D4:
|
|
mov r0, #0x53
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5, r0]
|
|
ldrsb r2, [r5, r7]
|
|
add r0, r1, r4
|
|
ldrsh r1, [r1, r4]
|
|
cmp r2, r1
|
|
beq _022488EA
|
|
ldr r0, [r0, #4]
|
|
bl sub_0200A740
|
|
_022488EA:
|
|
ldrb r0, [r5, #2]
|
|
add r6, r6, #1
|
|
add r4, #8
|
|
cmp r6, r0
|
|
blt _022488D4
|
|
_022488F4:
|
|
ldrb r0, [r5, #3]
|
|
mov r6, #0
|
|
cmp r0, #0
|
|
ble _02248920
|
|
add r4, r6, #0
|
|
mov r7, #7
|
|
_02248900:
|
|
mov r0, #0x15
|
|
lsl r0, r0, #4
|
|
ldr r1, [r5, r0]
|
|
ldrsb r2, [r5, r7]
|
|
add r0, r1, r4
|
|
ldrsh r1, [r1, r4]
|
|
cmp r2, r1
|
|
beq _02248916
|
|
ldr r0, [r0, #4]
|
|
bl sub_0200A740
|
|
_02248916:
|
|
ldrb r0, [r5, #3]
|
|
add r6, r6, #1
|
|
add r4, #8
|
|
cmp r6, r0
|
|
blt _02248900
|
|
_02248920:
|
|
mov r0, #0x4d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl Destroy2DGfxResObjMan
|
|
mov r0, #0x4e
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl Destroy2DGfxResObjMan
|
|
mov r0, #0x4f
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl Destroy2DGfxResObjMan
|
|
mov r0, #5
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
bl Destroy2DGfxResObjMan
|
|
mov r0, #0x51
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl FreeToHeap
|
|
mov r0, #0x52
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl FreeToHeap
|
|
mov r0, #0x53
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl FreeToHeap
|
|
mov r0, #0x15
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
bl FreeToHeap
|
|
ldr r0, [r5, #8]
|
|
bl sub_02024544
|
|
ldr r0, [r5, #8]
|
|
bl sub_02024504
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224886C
|
|
|
|
thumb_func_start ov02_02248980
|
|
ov02_02248980: ; 0x02248980
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r6, r0, #0
|
|
ldrb r5, [r6]
|
|
str r2, [sp, #0x10]
|
|
str r1, [sp, #0xc]
|
|
add r7, r3, #0
|
|
mov r2, #0
|
|
cmp r5, #0
|
|
ble _022489E6
|
|
mov r0, #0x51
|
|
lsl r0, r0, #2
|
|
ldr r3, [r6, r0]
|
|
mov r0, #4
|
|
ldrsb r4, [r6, r0]
|
|
mov ip, r3
|
|
add r0, r2, #0
|
|
_022489A2:
|
|
ldrsh r1, [r3, r0]
|
|
cmp r4, r1
|
|
bne _022489DE
|
|
lsl r4, r2, #3
|
|
mov r0, ip
|
|
strh r7, [r0, r4]
|
|
mov r0, #0x51
|
|
lsl r0, r0, #2
|
|
ldr r1, [r6, r0]
|
|
mov r3, #0
|
|
add r1, r1, r4
|
|
strh r3, [r1, #2]
|
|
str r7, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r1, #4
|
|
str r1, [sp, #8]
|
|
sub r0, #0x10
|
|
ldr r0, [r6, r0]
|
|
ldr r1, [sp, #0xc]
|
|
ldr r2, [sp, #0x10]
|
|
bl AddCharResObjFromOpenNarc
|
|
mov r1, #0x51
|
|
lsl r1, r1, #2
|
|
ldr r1, [r6, r1]
|
|
add sp, #0x14
|
|
add r1, r1, r4
|
|
str r0, [r1, #4]
|
|
pop {r4, r5, r6, r7, pc}
|
|
_022489DE:
|
|
add r2, r2, #1
|
|
add r3, #8
|
|
cmp r2, r5
|
|
blt _022489A2
|
|
_022489E6:
|
|
bl GF_AssertFail
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02248980
|
|
|
|
thumb_func_start ov02_022489F0
|
|
ov02_022489F0: ; 0x022489F0
|
|
push {r4, r5, r6, lr}
|
|
ldrb r3, [r0]
|
|
mov r2, #0
|
|
cmp r3, #0
|
|
ble _02248A1E
|
|
mov r4, #0x51
|
|
lsl r4, r4, #2
|
|
ldr r0, [r0, r4]
|
|
add r4, r2, #0
|
|
add r6, r0, #0
|
|
_02248A04:
|
|
ldrsh r5, [r6, r4]
|
|
cmp r1, r5
|
|
bne _02248A16
|
|
lsl r1, r2, #3
|
|
add r0, r0, r1
|
|
ldr r0, [r0, #4]
|
|
bl sub_0200ADA4
|
|
pop {r4, r5, r6, pc}
|
|
_02248A16:
|
|
add r2, r2, #1
|
|
add r6, #8
|
|
cmp r2, r3
|
|
blt _02248A04
|
|
_02248A1E:
|
|
bl GF_AssertFail
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov02_022489F0
|
|
|
|
thumb_func_start ov02_02248A24
|
|
ov02_02248A24: ; 0x02248A24
|
|
push {r4, r5, r6, lr}
|
|
ldrb r3, [r0]
|
|
mov r2, #0
|
|
cmp r3, #0
|
|
ble _02248A52
|
|
mov r4, #0x51
|
|
lsl r4, r4, #2
|
|
ldr r0, [r0, r4]
|
|
add r4, r2, #0
|
|
add r6, r0, #0
|
|
_02248A38:
|
|
ldrsh r5, [r6, r4]
|
|
cmp r1, r5
|
|
bne _02248A4A
|
|
lsl r1, r2, #3
|
|
add r0, r0, r1
|
|
ldr r0, [r0, #4]
|
|
bl sub_0200A740
|
|
pop {r4, r5, r6, pc}
|
|
_02248A4A:
|
|
add r2, r2, #1
|
|
add r6, #8
|
|
cmp r2, r3
|
|
blt _02248A38
|
|
_02248A52:
|
|
bl GF_AssertFail
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov02_02248A24
|
|
|
|
thumb_func_start ov02_02248A58
|
|
ov02_02248A58: ; 0x02248A58
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r6, r0, #0
|
|
ldrb r5, [r6]
|
|
str r2, [sp, #0x14]
|
|
str r1, [sp, #0x10]
|
|
add r7, r3, #0
|
|
mov r2, #0
|
|
cmp r5, #0
|
|
ble _02248AC0
|
|
mov r0, #0x52
|
|
lsl r0, r0, #2
|
|
ldr r3, [r6, r0]
|
|
mov r0, #5
|
|
ldrsb r4, [r6, r0]
|
|
mov ip, r3
|
|
add r0, r2, #0
|
|
_02248A7A:
|
|
ldrsh r1, [r3, r0]
|
|
cmp r4, r1
|
|
bne _02248AB8
|
|
lsl r4, r2, #3
|
|
mov r0, ip
|
|
strh r7, [r0, r4]
|
|
mov r0, #0x52
|
|
lsl r0, r0, #2
|
|
ldr r1, [r6, r0]
|
|
mov r3, #0
|
|
add r1, r1, r4
|
|
strh r3, [r1, #2]
|
|
str r7, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #4
|
|
str r1, [sp, #0xc]
|
|
sub r0, #0x10
|
|
ldr r0, [r6, r0]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, [sp, #0x14]
|
|
bl AddPlttResObjFromOpenNarc
|
|
mov r1, #0x52
|
|
lsl r1, r1, #2
|
|
ldr r1, [r6, r1]
|
|
add sp, #0x18
|
|
add r1, r1, r4
|
|
str r0, [r1, #4]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02248AB8:
|
|
add r2, r2, #1
|
|
add r3, #8
|
|
cmp r2, r5
|
|
blt _02248A7A
|
|
_02248AC0:
|
|
bl GF_AssertFail
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_02248A58
|
|
|
|
thumb_func_start ov02_02248AC8
|
|
ov02_02248AC8: ; 0x02248AC8
|
|
push {r4, r5, r6, lr}
|
|
ldrb r3, [r0, #1]
|
|
mov r2, #0
|
|
cmp r3, #0
|
|
ble _02248AF6
|
|
mov r4, #0x52
|
|
lsl r4, r4, #2
|
|
ldr r0, [r0, r4]
|
|
add r4, r2, #0
|
|
add r6, r0, #0
|
|
_02248ADC:
|
|
ldrsh r5, [r6, r4]
|
|
cmp r1, r5
|
|
bne _02248AEE
|
|
lsl r1, r2, #3
|
|
add r0, r0, r1
|
|
ldr r0, [r0, #4]
|
|
bl sub_0200B00C
|
|
pop {r4, r5, r6, pc}
|
|
_02248AEE:
|
|
add r2, r2, #1
|
|
add r6, #8
|
|
cmp r2, r3
|
|
blt _02248ADC
|
|
_02248AF6:
|
|
bl GF_AssertFail
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov02_02248AC8
|
|
|
|
thumb_func_start ov02_02248AFC
|
|
ov02_02248AFC: ; 0x02248AFC
|
|
push {r4, r5, r6, lr}
|
|
ldrb r3, [r0, #1]
|
|
mov r2, #0
|
|
cmp r3, #0
|
|
ble _02248B2A
|
|
mov r4, #0x52
|
|
lsl r4, r4, #2
|
|
ldr r0, [r0, r4]
|
|
add r4, r2, #0
|
|
add r6, r0, #0
|
|
_02248B10:
|
|
ldrsh r5, [r6, r4]
|
|
cmp r1, r5
|
|
bne _02248B22
|
|
lsl r1, r2, #3
|
|
add r0, r0, r1
|
|
ldr r0, [r0, #4]
|
|
bl sub_0200A740
|
|
pop {r4, r5, r6, pc}
|
|
_02248B22:
|
|
add r2, r2, #1
|
|
add r6, #8
|
|
cmp r2, r3
|
|
blt _02248B10
|
|
_02248B2A:
|
|
bl GF_AssertFail
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov02_02248AFC
|
|
|
|
thumb_func_start ov02_02248B30
|
|
ov02_02248B30: ; 0x02248B30
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r6, r0, #0
|
|
ldrb r5, [r6]
|
|
str r2, [sp, #0x10]
|
|
str r1, [sp, #0xc]
|
|
add r7, r3, #0
|
|
mov r2, #0
|
|
cmp r5, #0
|
|
ble _02248B96
|
|
mov r0, #0x53
|
|
lsl r0, r0, #2
|
|
ldr r3, [r6, r0]
|
|
mov r0, #6
|
|
ldrsb r4, [r6, r0]
|
|
mov ip, r3
|
|
add r0, r2, #0
|
|
_02248B52:
|
|
ldrsh r1, [r3, r0]
|
|
cmp r4, r1
|
|
bne _02248B8E
|
|
lsl r4, r2, #3
|
|
mov r0, ip
|
|
strh r7, [r0, r4]
|
|
mov r0, #0x53
|
|
lsl r0, r0, #2
|
|
ldr r1, [r6, r0]
|
|
mov r3, #0
|
|
add r1, r1, r4
|
|
strh r3, [r1, #2]
|
|
str r7, [sp]
|
|
mov r1, #2
|
|
str r1, [sp, #4]
|
|
mov r1, #4
|
|
str r1, [sp, #8]
|
|
sub r0, #0x10
|
|
ldr r0, [r6, r0]
|
|
ldr r1, [sp, #0xc]
|
|
ldr r2, [sp, #0x10]
|
|
bl AddCellOrAnimResObjFromOpenNarc
|
|
mov r1, #0x53
|
|
lsl r1, r1, #2
|
|
ldr r1, [r6, r1]
|
|
add sp, #0x14
|
|
add r1, r1, r4
|
|
str r0, [r1, #4]
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02248B8E:
|
|
add r2, r2, #1
|
|
add r3, #8
|
|
cmp r2, r5
|
|
blt _02248B52
|
|
_02248B96:
|
|
bl GF_AssertFail
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02248B30
|
|
|
|
thumb_func_start ov02_02248BA0
|
|
ov02_02248BA0: ; 0x02248BA0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r6, r0, #0
|
|
ldrb r5, [r6]
|
|
str r2, [sp, #0x10]
|
|
str r1, [sp, #0xc]
|
|
add r7, r3, #0
|
|
mov r2, #0
|
|
cmp r5, #0
|
|
ble _02248C06
|
|
mov r0, #0x15
|
|
lsl r0, r0, #4
|
|
ldr r3, [r6, r0]
|
|
mov r0, #7
|
|
ldrsb r4, [r6, r0]
|
|
mov ip, r3
|
|
add r0, r2, #0
|
|
_02248BC2:
|
|
ldrsh r1, [r3, r0]
|
|
cmp r4, r1
|
|
bne _02248BFE
|
|
lsl r4, r2, #3
|
|
mov r0, ip
|
|
strh r7, [r0, r4]
|
|
mov r0, #0x15
|
|
lsl r0, r0, #4
|
|
ldr r1, [r6, r0]
|
|
mov r3, #0
|
|
add r1, r1, r4
|
|
strh r3, [r1, #2]
|
|
str r7, [sp]
|
|
mov r1, #3
|
|
str r1, [sp, #4]
|
|
mov r1, #4
|
|
str r1, [sp, #8]
|
|
sub r0, #0x10
|
|
ldr r0, [r6, r0]
|
|
ldr r1, [sp, #0xc]
|
|
ldr r2, [sp, #0x10]
|
|
bl AddCellOrAnimResObjFromOpenNarc
|
|
mov r1, #0x15
|
|
lsl r1, r1, #4
|
|
ldr r1, [r6, r1]
|
|
add sp, #0x14
|
|
add r1, r1, r4
|
|
str r0, [r1, #4]
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02248BFE:
|
|
add r2, r2, #1
|
|
add r3, #8
|
|
cmp r2, r5
|
|
blt _02248BC2
|
|
_02248C06:
|
|
bl GF_AssertFail
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02248BA0
|
|
|
|
thumb_func_start ov02_02248C10
|
|
ov02_02248C10: ; 0x02248C10
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x70
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r1, r2, #0
|
|
mov r0, #7
|
|
add r2, r3, #0
|
|
ldrsb r3, [r5, r0]
|
|
ldr r6, [sp, #0x84]
|
|
cmp r6, r3
|
|
bne _02248C2A
|
|
sub r0, #8
|
|
str r0, [sp, #0x84]
|
|
_02248C2A:
|
|
ldr r0, [sp, #0x84]
|
|
mov r3, #0
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #0x88]
|
|
str r3, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0x4d
|
|
lsl r0, r0, #2
|
|
ldr r6, [r5, r0]
|
|
str r6, [sp, #0x14]
|
|
add r6, r0, #4
|
|
ldr r6, [r5, r6]
|
|
str r6, [sp, #0x18]
|
|
add r6, r0, #0
|
|
add r6, #8
|
|
ldr r6, [r5, r6]
|
|
add r0, #0xc
|
|
str r6, [sp, #0x1c]
|
|
ldr r0, [r5, r0]
|
|
str r0, [sp, #0x20]
|
|
str r3, [sp, #0x24]
|
|
str r3, [sp, #0x28]
|
|
ldr r3, [sp, #0x80]
|
|
add r0, sp, #0x4c
|
|
bl CreateSpriteResourcesHeader
|
|
ldr r0, [r5, #8]
|
|
add r2, sp, #0x34
|
|
str r0, [sp, #0x2c]
|
|
add r0, sp, #0x4c
|
|
str r0, [sp, #0x30]
|
|
ldmia r4!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r4]
|
|
str r0, [r2]
|
|
ldr r0, [sp, #0x8c]
|
|
str r0, [sp, #0x40]
|
|
mov r0, #1
|
|
str r0, [sp, #0x44]
|
|
mov r0, #4
|
|
str r0, [sp, #0x48]
|
|
add r0, sp, #0x2c
|
|
bl sub_02024714
|
|
add r4, r0, #0
|
|
bne _02248C92
|
|
bl GF_AssertFail
|
|
_02248C92:
|
|
add r0, r4, #0
|
|
add sp, #0x70
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov02_02248C10
|
|
|
|
thumb_func_start ov02_02248C98
|
|
ov02_02248C98: ; 0x02248C98
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl sub_020248AC
|
|
add r2, r0, #0
|
|
ldmia r2!, {r0, r1}
|
|
stmia r4!, {r0, r1}
|
|
ldr r0, [r2]
|
|
str r0, [r4]
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_02248C98
|
|
|
|
thumb_func_start ov02_02248CAC
|
|
ov02_02248CAC: ; 0x02248CAC
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x34
|
|
add r4, r0, #0
|
|
mov r2, #0
|
|
add r0, sp, #0x1c
|
|
str r2, [r0]
|
|
str r2, [r0, #4]
|
|
add r3, sp, #0x28
|
|
str r2, [r3]
|
|
str r2, [r3, #4]
|
|
ldr r6, _02248D14 ; =ov02_02253360
|
|
str r2, [r0, #8]
|
|
ldmia r6!, {r0, r1}
|
|
add r5, sp, #0x10
|
|
stmia r5!, {r0, r1}
|
|
ldr r0, [r6]
|
|
str r2, [r3, #8]
|
|
str r0, [r5]
|
|
add r1, r3, #0
|
|
str r2, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
str r2, [sp, #8]
|
|
mov r0, #0x84
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
add r3, r2, #0
|
|
bl ov02_02248C10
|
|
add r4, r0, #0
|
|
mov r1, #2
|
|
bl sub_0202487C
|
|
add r0, r4, #0
|
|
add r1, sp, #0x1c
|
|
bl sub_020247E4
|
|
add r0, r4, #0
|
|
add r1, sp, #0x10
|
|
bl sub_020247F4
|
|
mov r0, #0
|
|
bl GF_DegreeToSinCosIdx
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
bl sub_02024818
|
|
add r0, r4, #0
|
|
add sp, #0x34
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_02248D14: .word ov02_02253360
|
|
thumb_func_end ov02_02248CAC
|
|
|
|
thumb_func_start ov02_02248D18
|
|
ov02_02248D18: ; 0x02248D18
|
|
push {r3, r4, lr}
|
|
sub sp, #0x1c
|
|
mov r3, #0
|
|
add r2, sp, #0x10
|
|
str r3, [r2]
|
|
str r3, [r2, #4]
|
|
str r3, [r2, #8]
|
|
cmp r1, #1
|
|
bne _02248D2C
|
|
mov r3, #1
|
|
_02248D2C:
|
|
mov r2, #2
|
|
str r2, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r1, #0
|
|
str r1, [sp, #8]
|
|
mov r1, #0x83
|
|
str r1, [sp, #0xc]
|
|
add r1, sp, #0x10
|
|
bl ov02_02248C10
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
add r0, r4, #0
|
|
mov r1, #6
|
|
bl Set2dSpriteAnimSeqNo
|
|
add r0, r4, #0
|
|
add sp, #0x1c
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov02_02248D18
|
|
|
|
thumb_func_start ov02_02248D58
|
|
ov02_02248D58: ; 0x02248D58
|
|
push {r4, r5, lr}
|
|
sub sp, #0x24
|
|
add r5, sp, #0x18
|
|
mov r4, #0
|
|
str r4, [r5]
|
|
str r4, [r5, #4]
|
|
str r0, [sp, #0xc]
|
|
str r2, [sp, #0x14]
|
|
str r3, [sp, #0x10]
|
|
str r4, [r5, #8]
|
|
str r1, [sp, #8]
|
|
add r0, sp, #8
|
|
str r0, [sp]
|
|
mov r0, #0x82
|
|
str r0, [sp, #4]
|
|
add r0, r1, #0
|
|
ldr r1, _02248D88 ; =ov02_02253454
|
|
add r2, r5, #0
|
|
add r3, r4, #0
|
|
bl sub_02068B0C
|
|
add sp, #0x24
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_02248D88: .word ov02_02253454
|
|
thumb_func_end ov02_02248D58
|
|
|
|
thumb_func_start ov02_02248D8C
|
|
ov02_02248D8C: ; 0x02248D8C
|
|
push {r3, lr}
|
|
bl sub_02068D74
|
|
ldrb r0, [r0, #2]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02248D8C
|
|
|
|
thumb_func_start ov02_02248D98
|
|
ov02_02248D98: ; 0x02248D98
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl sub_02068D98
|
|
add r2, r4, #0
|
|
add r3, r0, #0
|
|
add r2, #0x58
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r4, #0x64]
|
|
bl ov02_02248CAC
|
|
str r0, [r4, #0x68]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02248D98
|
|
|
|
thumb_func_start ov02_02248DBC
|
|
ov02_02248DBC: ; 0x02248DBC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl sub_02068D74
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x6c]
|
|
cmp r0, #0
|
|
beq _02248DD0
|
|
bl sub_02068B48
|
|
_02248DD0:
|
|
ldr r0, [r4, #0x70]
|
|
cmp r0, #0
|
|
beq _02248DDA
|
|
bl ov01_021FCD78
|
|
_02248DDA:
|
|
add r0, r5, #0
|
|
bl sub_02068B48
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02248DBC
|
|
|
|
thumb_func_start ov02_02248DE4
|
|
ov02_02248DE4: ; 0x02248DE4
|
|
ldr r3, _02248DEC ; =Sprite_Delete
|
|
ldr r0, [r1, #0x68]
|
|
bx r3
|
|
nop
|
|
_02248DEC: .word Sprite_Delete
|
|
thumb_func_end ov02_02248DE4
|
|
|
|
thumb_func_start ov02_02248DF0
|
|
ov02_02248DF0: ; 0x02248DF0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldrb r0, [r5]
|
|
lsl r1, r0, #2
|
|
ldr r0, _02248E0C ; =ov02_02253320
|
|
ldr r4, [r0, r1]
|
|
_02248DFC:
|
|
ldrb r1, [r5, #1]
|
|
add r0, r5, #0
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
blx r1
|
|
cmp r0, #1
|
|
beq _02248DFC
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_02248E0C: .word ov02_02253320
|
|
thumb_func_end ov02_02248DF0
|
|
|
|
thumb_func_start ov02_02248E10
|
|
ov02_02248E10: ; 0x02248E10
|
|
push {r3, lr}
|
|
mov r1, #0
|
|
strb r1, [r0, #2]
|
|
ldr r0, [r0, #0x68]
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
thumb_func_end ov02_02248E10
|
|
|
|
thumb_func_start ov02_02248E20
|
|
ov02_02248E20: ; 0x02248E20
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x30
|
|
ldr r4, _02248F74 ; =ov02_0225339C
|
|
add r2, r0, #0
|
|
ldmia r4!, {r0, r1}
|
|
add r3, sp, #0x24
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r4]
|
|
ldr r4, _02248F78 ; =ov02_022533CC
|
|
str r0, [r3]
|
|
ldmia r4!, {r0, r1}
|
|
add r3, sp, #0x18
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r4]
|
|
str r0, [r3]
|
|
add r0, r2, #0
|
|
bl sub_02068D74
|
|
add r4, r0, #0
|
|
mov r3, #1
|
|
add r5, r4, #0
|
|
strb r3, [r4]
|
|
mov r2, #0
|
|
strb r2, [r4, #2]
|
|
strb r2, [r4, #1]
|
|
str r2, [r4, #4]
|
|
add r6, sp, #0x24
|
|
ldmia r6!, {r0, r1}
|
|
add r5, #8
|
|
stmia r5!, {r0, r1}
|
|
ldr r0, [r6]
|
|
str r0, [r5]
|
|
str r2, [r4, #0x14]
|
|
str r2, [r4, #0x18]
|
|
str r2, [r4, #0x1c]
|
|
ldr r0, _02248F7C ; =0x0015E000
|
|
add r2, r4, #0
|
|
add r5, sp, #0x18
|
|
str r0, [r4, #0x38]
|
|
ldmia r5!, {r0, r1}
|
|
add r2, #0x2c
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r5]
|
|
str r0, [r2]
|
|
lsl r0, r3, #0xa
|
|
str r0, [r4, #0x50]
|
|
mov r0, #0x2d
|
|
lsl r0, r0, #0xc
|
|
str r0, [r4, #0x40]
|
|
mov r0, #3
|
|
lsl r0, r0, #0x12
|
|
str r0, [r4, #0x48]
|
|
lsl r0, r3, #0x11
|
|
str r0, [r4, #0x4c]
|
|
mov r0, #0x2d
|
|
bl GF_CosDeg
|
|
ldr r2, [r4, #0x48]
|
|
asr r1, r2, #0xb
|
|
lsr r1, r1, #0x14
|
|
add r1, r2, r1
|
|
asr r1, r1, #0xc
|
|
mul r0, r1
|
|
str r0, [r4, #0x14]
|
|
ldr r1, [r4, #0x40]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r0, r0, #4
|
|
lsr r0, r0, #0x10
|
|
bl GF_SinDeg
|
|
ldr r2, [r4, #0x48]
|
|
asr r1, r2, #0xb
|
|
lsr r1, r1, #0x14
|
|
add r1, r2, r1
|
|
asr r1, r1, #0xc
|
|
mul r0, r1
|
|
str r0, [r4, #0x18]
|
|
ldr r1, [r4, #8]
|
|
ldr r0, [r4, #0x14]
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x24]
|
|
ldr r1, [r4, #0xc]
|
|
ldr r0, [r4, #0x18]
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x28]
|
|
ldr r0, [r4, #0x68]
|
|
add r1, sp, #0x24
|
|
bl sub_020247D4
|
|
ldr r0, [r4, #0x68]
|
|
add r1, sp, #0x18
|
|
bl sub_020247F4
|
|
ldr r1, [r4, #0x38]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r0, r0, #4
|
|
lsr r0, r0, #0x10
|
|
bl GF_DegreeToSinCosIdx
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #0x68]
|
|
bl sub_02024818
|
|
ldr r0, [r4, #0x68]
|
|
mov r1, #0x84
|
|
bl sub_02024ADC
|
|
ldr r0, [r4, #0x68]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #0x58]
|
|
ldr r1, [r4, #0x60]
|
|
bl ov02_0224B298
|
|
str r0, [r4, #0x6c]
|
|
ldr r0, [r4, #0x5c]
|
|
mov r1, #4
|
|
bl ov01_021FCD2C
|
|
ldr r2, _02248F80 ; =0xFFF88000
|
|
mov r1, #1
|
|
mov r3, #0xc
|
|
str r0, [r4, #0x70]
|
|
bl ov01_021FCD8C
|
|
add r1, sp, #0xc
|
|
mov r0, #0
|
|
str r0, [r1]
|
|
str r0, [r1, #4]
|
|
ldr r3, _02248F84 ; =ov02_022533A8
|
|
str r0, [r1, #8]
|
|
ldmia r3!, {r0, r1}
|
|
add r2, sp, #0
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
mov r1, #2
|
|
str r0, [r2]
|
|
ldr r4, [r4, #0x60]
|
|
add r0, r4, #0
|
|
bl sub_0202487C
|
|
add r0, r4, #0
|
|
add r1, sp, #0xc
|
|
bl sub_020247E4
|
|
add r0, r4, #0
|
|
add r1, sp, #0
|
|
bl sub_020247F4
|
|
mov r0, #0
|
|
bl GF_DegreeToSinCosIdx
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
bl sub_02024818
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
bl Set2dSpriteAnimSeqNo
|
|
bl ov02_022493FC
|
|
add sp, #0x30
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_02248F74: .word ov02_0225339C
|
|
_02248F78: .word ov02_022533CC
|
|
_02248F7C: .word 0x0015E000
|
|
_02248F80: .word 0xFFF88000
|
|
_02248F84: .word ov02_022533A8
|
|
thumb_func_end ov02_02248E20
|
|
|
|
thumb_func_start ov02_02248F88
|
|
ov02_02248F88: ; 0x02248F88
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
ldr r1, [r5, #0x48]
|
|
ldr r0, [r5, #0x4c]
|
|
ldr r6, [r5, #0x68]
|
|
ldr r4, [r5, #0x60]
|
|
sub r0, r1, r0
|
|
str r0, [r5, #0x48]
|
|
bpl _02248FA0
|
|
mov r0, #0
|
|
str r0, [r5, #0x48]
|
|
_02248FA0:
|
|
mov r0, #2
|
|
ldr r1, [r5, #0x4c]
|
|
lsl r0, r0, #0xa
|
|
cmp r1, r0
|
|
ble _02248FB2
|
|
mov r0, #7
|
|
lsl r0, r0, #0xa
|
|
sub r0, r1, r0
|
|
str r0, [r5, #0x4c]
|
|
_02248FB2:
|
|
mov r0, #1
|
|
ldr r1, [r5, #0x4c]
|
|
lsl r0, r0, #0xc
|
|
cmp r1, r0
|
|
bge _02248FBE
|
|
str r0, [r5, #0x4c]
|
|
_02248FBE:
|
|
mov r0, #0x2d
|
|
bl GF_CosDeg
|
|
ldr r2, [r5, #0x48]
|
|
asr r1, r2, #0xb
|
|
lsr r1, r1, #0x14
|
|
add r1, r2, r1
|
|
asr r1, r1, #0xc
|
|
mul r0, r1
|
|
str r0, [r5, #0x14]
|
|
ldr r1, [r5, #0x40]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r0, r0, #4
|
|
lsr r0, r0, #0x10
|
|
bl GF_SinDeg
|
|
ldr r2, [r5, #0x48]
|
|
asr r1, r2, #0xb
|
|
lsr r1, r1, #0x14
|
|
add r1, r2, r1
|
|
asr r1, r1, #0xc
|
|
mul r0, r1
|
|
str r0, [r5, #0x18]
|
|
ldr r1, [r5, #0x40]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
asr r0, r0, #0xc
|
|
cmp r0, #0x5a
|
|
bge _02249006
|
|
mov r0, #1
|
|
lsl r0, r0, #0xe
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x40]
|
|
_02249006:
|
|
ldr r1, [r5, #0x2c]
|
|
ldr r0, [r5, #0x50]
|
|
sub r1, r1, r0
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
str r1, [r5, #0x2c]
|
|
cmp r1, r0
|
|
bge _02249018
|
|
str r0, [r5, #0x2c]
|
|
_02249018:
|
|
ldr r1, [r5, #0x30]
|
|
ldr r0, [r5, #0x50]
|
|
sub r1, r1, r0
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
str r1, [r5, #0x30]
|
|
cmp r1, r0
|
|
bge _0224902A
|
|
str r0, [r5, #0x30]
|
|
_0224902A:
|
|
add r1, r5, #0
|
|
add r0, r6, #0
|
|
add r1, #0x2c
|
|
bl sub_020247F4
|
|
add r1, r5, #0
|
|
add r0, r4, #0
|
|
add r1, #0x2c
|
|
bl sub_020247F4
|
|
ldr r1, [r5, #8]
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r1, r0
|
|
str r0, [sp]
|
|
ldr r1, [r5, #0xc]
|
|
ldr r0, [r5, #0x18]
|
|
add r0, r1, r0
|
|
str r0, [sp, #4]
|
|
add r0, r6, #0
|
|
add r1, sp, #0
|
|
bl sub_020247D4
|
|
mov r0, #0x12
|
|
ldr r1, [sp, #4]
|
|
lsl r0, r0, #0xc
|
|
sub r0, r1, r0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r1, sp, #0
|
|
bl sub_020247D4
|
|
ldr r0, [r5, #0x48]
|
|
cmp r0, #0
|
|
bne _0224907A
|
|
mov r0, #0
|
|
str r0, [r5, #4]
|
|
ldrb r0, [r5, #1]
|
|
add r0, r0, #1
|
|
strb r0, [r5, #1]
|
|
b _02249080
|
|
_0224907A:
|
|
ldr r0, [r5, #4]
|
|
add r0, r0, #1
|
|
str r0, [r5, #4]
|
|
_02249080:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02248F88
|
|
|
|
thumb_func_start ov02_02249088
|
|
ov02_02249088: ; 0x02249088
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x6c]
|
|
bl ov02_0224B314
|
|
ldr r0, [r4, #0x70]
|
|
mov r1, #2
|
|
mov r2, #0
|
|
mov r3, #0xc
|
|
bl ov01_021FCD8C
|
|
mov r0, #1
|
|
lsl r0, r0, #0xa
|
|
str r0, [r4, #0x50]
|
|
lsl r0, r0, #9
|
|
str r0, [r4, #0x40]
|
|
mov r0, #0
|
|
str r0, [r4, #0x48]
|
|
mov r0, #6
|
|
lsl r0, r0, #0xa
|
|
str r0, [r4, #0x4c]
|
|
ldrb r0, [r4, #1]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #1]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_02249088
|
|
|
|
thumb_func_start ov02_022490BC
|
|
ov02_022490BC: ; 0x022490BC
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
ldr r1, [r5, #0x48]
|
|
ldr r0, [r5, #0x4c]
|
|
ldr r4, [r5, #0x68]
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x48]
|
|
mov r0, #1
|
|
ldr r1, [r5, #0x4c]
|
|
lsl r0, r0, #0xc
|
|
add r2, r1, r0
|
|
lsl r1, r0, #4
|
|
str r2, [r5, #0x4c]
|
|
cmp r2, r1
|
|
ble _022490E0
|
|
lsl r0, r0, #4
|
|
str r0, [r5, #0x4c]
|
|
_022490E0:
|
|
ldr r1, [r5, #0x40]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r0, r0, #4
|
|
lsr r0, r0, #0x10
|
|
bl GF_CosDeg
|
|
ldr r2, [r5, #0x48]
|
|
asr r1, r2, #0xb
|
|
lsr r1, r1, #0x14
|
|
add r1, r2, r1
|
|
asr r1, r1, #0xc
|
|
mul r0, r1
|
|
str r0, [r5, #0x14]
|
|
mov r0, #0x80
|
|
bl GF_SinDeg
|
|
ldr r2, [r5, #0x48]
|
|
asr r1, r2, #0xb
|
|
lsr r1, r1, #0x14
|
|
add r1, r2, r1
|
|
asr r1, r1, #0xc
|
|
mul r0, r1
|
|
str r0, [r5, #0x18]
|
|
mov r0, #0xa
|
|
ldr r1, [r5, #0x40]
|
|
lsl r0, r0, #0x10
|
|
cmp r1, r0
|
|
bge _02249124
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x40]
|
|
_02249124:
|
|
mov r0, #2
|
|
ldr r1, [r5, #0x38]
|
|
lsl r0, r0, #0xc
|
|
add r1, r1, r0
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r0, r0, #4
|
|
lsr r0, r0, #0x10
|
|
str r1, [r5, #0x38]
|
|
bl GF_DegreeToSinCosIdx
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
bl sub_02024818
|
|
ldr r1, [r5, #0x2c]
|
|
ldr r0, [r5, #0x50]
|
|
add r1, r1, r0
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
str r1, [r5, #0x2c]
|
|
cmp r1, r0
|
|
ble _02249156
|
|
str r0, [r5, #0x2c]
|
|
_02249156:
|
|
ldr r1, [r5, #0x30]
|
|
ldr r0, [r5, #0x50]
|
|
add r1, r1, r0
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
str r1, [r5, #0x30]
|
|
cmp r1, r0
|
|
ble _02249168
|
|
str r0, [r5, #0x30]
|
|
_02249168:
|
|
add r1, r5, #0
|
|
add r0, r4, #0
|
|
add r1, #0x2c
|
|
bl sub_020247F4
|
|
ldr r1, [r5, #8]
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r1, r0
|
|
str r0, [sp]
|
|
ldr r1, [r5, #0xc]
|
|
ldr r0, [r5, #0x18]
|
|
sub r0, r1, r0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r1, sp, #0
|
|
bl sub_020247D4
|
|
ldr r1, [sp, #4]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
asr r1, r0, #0xc
|
|
mov r0, #0xf
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
bgt _022491A2
|
|
ldrb r0, [r5, #1]
|
|
add r0, r0, #1
|
|
strb r0, [r5, #1]
|
|
_022491A2:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
thumb_func_end ov02_022490BC
|
|
|
|
thumb_func_start ov02_022491A8
|
|
ov02_022491A8: ; 0x022491A8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x68]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #0x60]
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimSeqNo
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
ldrb r0, [r4, #1]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #1]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_022491A8
|
|
|
|
thumb_func_start ov02_022491CC
|
|
ov02_022491CC: ; 0x022491CC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
cmp r0, #0x14
|
|
bge _022491E2
|
|
add sp, #0x18
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022491E2:
|
|
ldr r3, _02249284 ; =ov02_022533D8
|
|
add r2, sp, #0xc
|
|
ldmia r3!, {r0, r1}
|
|
add r6, r2, #0
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
ldr r3, _02249288 ; =ov02_022533B4
|
|
str r0, [r2]
|
|
add r2, sp, #0
|
|
ldmia r3!, {r0, r1}
|
|
add r5, r2, #0
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
mov r7, #0
|
|
str r0, [r2]
|
|
add r2, r4, #0
|
|
str r7, [r4, #4]
|
|
add r3, r6, #0
|
|
ldmia r3!, {r0, r1}
|
|
add r2, #8
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
str r7, [r4, #0x14]
|
|
str r7, [r4, #0x18]
|
|
str r7, [r4, #0x1c]
|
|
str r7, [r4, #0x38]
|
|
add r2, r4, #0
|
|
ldmia r5!, {r0, r1}
|
|
add r2, #0x2c
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r5]
|
|
mov r1, #2
|
|
str r0, [r2]
|
|
lsl r1, r1, #8
|
|
ldr r0, _0224928C ; =0x0013B000
|
|
str r1, [r4, #0x50]
|
|
str r0, [r4, #0x40]
|
|
lsl r0, r1, #0xa
|
|
str r0, [r4, #0x48]
|
|
lsl r0, r1, #4
|
|
str r0, [r4, #0x4c]
|
|
ldr r0, [r4, #0x68]
|
|
add r1, r6, #0
|
|
bl sub_020247D4
|
|
ldr r0, [r4, #0x68]
|
|
add r1, sp, #0
|
|
bl sub_020247F4
|
|
ldr r1, [r4, #0x38]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r0, r0, #4
|
|
lsr r0, r0, #0x10
|
|
bl GF_DegreeToSinCosIdx
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #0x68]
|
|
bl sub_02024818
|
|
ldr r0, [r4, #0x68]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #0x60]
|
|
mov r1, #6
|
|
bl Set2dSpriteAnimSeqNo
|
|
ldr r0, [r4, #0x60]
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimActiveFlag
|
|
ldrb r0, [r4, #1]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #1]
|
|
mov r0, #1
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02249284: .word ov02_022533D8
|
|
_02249288: .word ov02_022533B4
|
|
_0224928C: .word 0x0013B000
|
|
thumb_func_end ov02_022491CC
|
|
|
|
thumb_func_start ov02_02249290
|
|
ov02_02249290: ; 0x02249290
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
ldr r1, [r5, #0x48]
|
|
ldr r0, [r5, #0x4c]
|
|
ldr r4, [r5, #0x68]
|
|
sub r0, r1, r0
|
|
str r0, [r5, #0x48]
|
|
mov r0, #1
|
|
ldr r1, [r5, #0x4c]
|
|
lsl r0, r0, #0x10
|
|
cmp r1, r0
|
|
bge _022492B0
|
|
lsr r0, r0, #3
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x4c]
|
|
_022492B0:
|
|
ldr r0, [r5, #0x48]
|
|
cmp r0, #0
|
|
bge _022492BA
|
|
mov r0, #0
|
|
str r0, [r5, #0x48]
|
|
_022492BA:
|
|
ldr r0, _02249398 ; =0x0000013B
|
|
bl GF_CosDeg
|
|
ldr r2, [r5, #0x48]
|
|
asr r1, r2, #0xb
|
|
lsr r1, r1, #0x14
|
|
add r1, r2, r1
|
|
asr r1, r1, #0xc
|
|
mul r0, r1
|
|
str r0, [r5, #0x14]
|
|
ldr r1, [r5, #0x40]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r0, r0, #4
|
|
lsr r0, r0, #0x10
|
|
bl GF_SinDeg
|
|
ldr r2, [r5, #0x48]
|
|
asr r1, r2, #0xb
|
|
lsr r1, r1, #0x14
|
|
add r1, r2, r1
|
|
asr r1, r1, #0xc
|
|
mul r0, r1
|
|
str r0, [r5, #0x18]
|
|
ldr r1, [r5, #0x40]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
asr r0, r0, #0xc
|
|
cmp r0, #0xb4
|
|
bge _02249302
|
|
mov r0, #1
|
|
lsl r0, r0, #0xe
|
|
sub r0, r1, r0
|
|
str r0, [r5, #0x40]
|
|
_02249302:
|
|
ldr r1, [r5, #0x2c]
|
|
ldr r0, [r5, #0x50]
|
|
sub r1, r1, r0
|
|
mov r0, #1
|
|
lsl r0, r0, #0xa
|
|
str r1, [r5, #0x2c]
|
|
cmp r1, r0
|
|
bge _02249314
|
|
str r0, [r5, #0x2c]
|
|
_02249314:
|
|
ldr r1, [r5, #0x30]
|
|
ldr r0, [r5, #0x50]
|
|
sub r1, r1, r0
|
|
mov r0, #1
|
|
lsl r0, r0, #0xa
|
|
str r1, [r5, #0x30]
|
|
cmp r1, r0
|
|
bge _02249326
|
|
str r0, [r5, #0x30]
|
|
_02249326:
|
|
add r1, r5, #0
|
|
add r0, r4, #0
|
|
add r1, #0x2c
|
|
bl sub_020247F4
|
|
mov r0, #6
|
|
ldr r1, [r5, #0x38]
|
|
lsl r0, r0, #0xc
|
|
add r1, r1, r0
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
asr r0, r0, #0xc
|
|
str r1, [r5, #0x38]
|
|
cmp r0, #0x3c
|
|
ble _0224934C
|
|
mov r0, #0xf
|
|
lsl r0, r0, #0xe
|
|
str r0, [r5, #0x38]
|
|
_0224934C:
|
|
ldr r1, [r5, #0x38]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r0, r0, #4
|
|
lsr r0, r0, #0x10
|
|
bl GF_DegreeToSinCosIdx
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
bl sub_02024818
|
|
ldr r1, [r5, #8]
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r1, r0
|
|
str r0, [sp]
|
|
ldr r1, [r5, #0xc]
|
|
ldr r0, [r5, #0x18]
|
|
add r0, r1, r0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r1, sp, #0
|
|
bl sub_020247D4
|
|
ldr r0, [r5, #0x48]
|
|
cmp r0, #0
|
|
bgt _02249390
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
ldrb r0, [r5, #1]
|
|
add r0, r0, #1
|
|
strb r0, [r5, #1]
|
|
_02249390:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_02249398: .word 0x0000013B
|
|
thumb_func_end ov02_02249290
|
|
|
|
thumb_func_start ov02_0224939C
|
|
ov02_0224939C: ; 0x0224939C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
cmp r0, #8
|
|
bne _022493BA
|
|
ldr r0, [r4, #0x60]
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimSeqNo
|
|
ldr r0, [r4, #0x5c]
|
|
mov r1, #0
|
|
bl ov02_02249444
|
|
_022493BA:
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0xa
|
|
bne _022493C8
|
|
ldr r0, [r4, #0x60]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
_022493C8:
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0xf
|
|
ble _022493E6
|
|
ldr r0, [r4, #0x70]
|
|
bl ov01_021FCD6C
|
|
cmp r0, #1
|
|
bne _022493E6
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
ldrb r0, [r4, #1]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #1]
|
|
mov r0, #2
|
|
strb r0, [r4, #2]
|
|
_022493E6:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224939C
|
|
|
|
thumb_func_start ov02_022493EC
|
|
ov02_022493EC: ; 0x022493EC
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end ov02_022493EC
|
|
|
|
thumb_func_start ov02_022493F0
|
|
ov02_022493F0: ; 0x022493F0
|
|
ldr r3, _022493F8 ; =NARC_New
|
|
mov r0, #0x5d
|
|
mov r1, #4
|
|
bx r3
|
|
.balign 4, 0
|
|
_022493F8: .word NARC_New
|
|
thumb_func_end ov02_022493F0
|
|
|
|
thumb_func_start ov02_022493FC
|
|
ov02_022493FC: ; 0x022493FC
|
|
push {lr}
|
|
sub sp, #0xc
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
ldr r3, _0224941C ; =0x00007FFF
|
|
mov r0, #0
|
|
add r2, r1, #0
|
|
bl BeginNormalPaletteFade
|
|
add sp, #0xc
|
|
pop {pc}
|
|
nop
|
|
_0224941C: .word 0x00007FFF
|
|
thumb_func_end ov02_022493FC
|
|
|
|
thumb_func_start ov02_02249420
|
|
ov02_02249420: ; 0x02249420
|
|
push {lr}
|
|
sub sp, #0xc
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
ldr r3, _02249440 ; =0x00007FFF
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
add sp, #0xc
|
|
pop {pc}
|
|
.balign 4, 0
|
|
_02249440: .word 0x00007FFF
|
|
thumb_func_end ov02_02249420
|
|
|
|
thumb_func_start ov02_02249444
|
|
ov02_02249444: ; 0x02249444
|
|
push {r4, lr}
|
|
ldr r0, [r0, #0x40]
|
|
add r4, r1, #0
|
|
bl PlayerAvatar_GetMapObject
|
|
add r1, r4, #0
|
|
bl MapObject_SetVisible
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02249444
|
|
|
|
thumb_func_start ov02_02249458
|
|
ov02_02249458: ; 0x02249458
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
str r0, [sp]
|
|
add r5, r1, #0
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
bl ov02_0224955C
|
|
add r4, r0, #0
|
|
str r6, [r4, #0x5c]
|
|
strh r7, [r4, #0xc]
|
|
ldrh r0, [r4, #0xc]
|
|
strh r0, [r4, #0xe]
|
|
str r5, [r4, #0x20]
|
|
ldr r0, [r4, #0x60]
|
|
ldr r0, [r0, #0x40]
|
|
bl PlayerAvatar_GetMapObject
|
|
mov r1, #0x82
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
cmp r5, #0
|
|
bne _02249490
|
|
ldr r0, _022494B8 ; =ov02_02249584
|
|
add r1, r4, #0
|
|
mov r2, #0x86
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02249490:
|
|
cmp r5, #2
|
|
bne _022494AC
|
|
ldr r0, [sp]
|
|
bl FollowingPokemon_GetMapObject
|
|
mov r1, #0x83
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
ldr r0, _022494BC ; =ov02_022499B8
|
|
add r1, r4, #0
|
|
mov r2, #0x86
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022494AC:
|
|
ldr r0, _022494C0 ; =ov02_02249984
|
|
add r1, r4, #0
|
|
mov r2, #0x86
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_022494B8: .word ov02_02249584
|
|
_022494BC: .word ov02_022499B8
|
|
_022494C0: .word ov02_02249984
|
|
thumb_func_end ov02_02249458
|
|
|
|
thumb_func_start ov02_022494C4
|
|
ov02_022494C4: ; 0x022494C4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r5, r1, #0
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
bl ov02_0224955C
|
|
add r4, r0, #0
|
|
str r5, [r4, #0x5c]
|
|
mov r0, #0
|
|
strh r0, [r4, #0xc]
|
|
mov r0, #2
|
|
strh r0, [r4, #0xe]
|
|
mov r0, #3
|
|
str r0, [r4, #0x20]
|
|
mov r0, #0x82
|
|
lsl r0, r0, #2
|
|
str r6, [r4, r0]
|
|
add r0, r0, #4
|
|
str r7, [r4, r0]
|
|
ldr r0, [r4, #0x60]
|
|
ldr r0, [r0, #0x40]
|
|
bl PlayerAvatar_GetMapObject
|
|
add r1, sp, #0xc
|
|
bl MapObject_GetPositionVec
|
|
mov r0, #0x82
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r1, sp, #0
|
|
bl MapObject_GetPositionVec
|
|
ldr r1, [sp]
|
|
ldr r0, [sp, #0xc]
|
|
sub r0, r1, r0
|
|
mov r1, #2
|
|
lsl r1, r1, #0xc
|
|
bl FX_Div
|
|
mov r1, #0xbb
|
|
lsl r1, r1, #2
|
|
ldr r2, [r4, r1]
|
|
add r0, r2, r0
|
|
str r0, [r4, r1]
|
|
ldr r2, [sp, #8]
|
|
ldr r0, [sp, #0x14]
|
|
add r1, #8
|
|
sub r0, r2, r0
|
|
str r0, [r4, r1]
|
|
ldr r0, _02249538 ; =ov02_022499B8
|
|
add r1, r4, #0
|
|
mov r2, #0x86
|
|
bl CreateSysTask
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02249538: .word ov02_022499B8
|
|
thumb_func_end ov02_022494C4
|
|
|
|
thumb_func_start ov02_0224953C
|
|
ov02_0224953C: ; 0x0224953C
|
|
push {r3, lr}
|
|
bl sub_0201F988
|
|
ldr r0, [r0, #4]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224953C
|
|
|
|
thumb_func_start ov02_02249548
|
|
ov02_02249548: ; 0x02249548
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl sub_0201F988
|
|
bl ov02_0224957C
|
|
add r0, r4, #0
|
|
bl DestroySysTask
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_02249548
|
|
|
|
thumb_func_start ov02_0224955C
|
|
ov02_0224955C: ; 0x0224955C
|
|
push {r3, r4, r5, lr}
|
|
mov r1, #0xbe
|
|
add r5, r0, #0
|
|
mov r0, #4
|
|
lsl r1, r1, #2
|
|
bl AllocFromHeapAtEnd
|
|
mov r2, #0xbe
|
|
mov r1, #0
|
|
lsl r2, r2, #2
|
|
add r4, r0, #0
|
|
bl memset
|
|
str r5, [r4, #0x60]
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_0224955C
|
|
|
|
thumb_func_start ov02_0224957C
|
|
ov02_0224957C: ; 0x0224957C
|
|
ldr r3, _02249580 ; =FreeToHeap
|
|
bx r3
|
|
.balign 4, 0
|
|
_02249580: .word FreeToHeap
|
|
thumb_func_end ov02_0224957C
|
|
|
|
thumb_func_start ov02_02249584
|
|
ov02_02249584: ; 0x02249584
|
|
push {r3, r4, r5, lr}
|
|
ldr r4, _022495B4 ; =ov02_02253550
|
|
add r5, r1, #0
|
|
_0224958A:
|
|
ldr r1, [r5]
|
|
add r0, r5, #0
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
blx r1
|
|
cmp r0, #1
|
|
beq _0224958A
|
|
ldr r0, [r5, #0x10]
|
|
cmp r0, #1
|
|
bne _022495B2
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _022495AC
|
|
bl sub_02068BAC
|
|
_022495AC:
|
|
add r0, r5, #0
|
|
bl ov02_0224A32C
|
|
_022495B2:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_022495B4: .word ov02_02253550
|
|
thumb_func_end ov02_02249584
|
|
|
|
thumb_func_start ov02_022495B8
|
|
ov02_022495B8: ; 0x022495B8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov02_02249EC0
|
|
add r0, r4, #0
|
|
bl ov02_02249CF0
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_022495B8
|
|
|
|
thumb_func_start ov02_022495D0
|
|
ov02_022495D0: ; 0x022495D0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov02_02249F6C
|
|
add r0, r4, #0
|
|
bl ov02_02249CF0
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_022495D0
|
|
|
|
thumb_func_start ov02_022495E8
|
|
ov02_022495E8: ; 0x022495E8
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x18
|
|
add r4, r0, #0
|
|
mov r0, #0x85
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
bne _022495FE
|
|
add sp, #0x18
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_022495FE:
|
|
ldr r5, _02249650 ; =ov02_02253408
|
|
add r3, sp, #0xc
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
ldr r5, _02249654 ; =ov02_02253384
|
|
str r0, [r3]
|
|
ldmia r5!, {r0, r1}
|
|
add r3, sp, #0
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
add r1, r2, #0
|
|
str r0, [r3]
|
|
add r0, r4, #0
|
|
bl ov02_0224A418
|
|
mov r1, #0x79
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
add r0, r4, #0
|
|
add r1, sp, #0
|
|
bl ov02_0224A9B8
|
|
mov r1, #0x7a
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov02_0224A9D8
|
|
add r0, r4, #0
|
|
bl ov02_02249D40
|
|
mov r0, #1
|
|
str r0, [r4, #0x10]
|
|
ldr r1, [r4]
|
|
add r1, r1, #1
|
|
str r1, [r4]
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_02249650: .word ov02_02253408
|
|
_02249654: .word ov02_02253384
|
|
thumb_func_end ov02_022495E8
|
|
|
|
thumb_func_start ov02_02249658
|
|
ov02_02249658: ; 0x02249658
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov02_0224B72C
|
|
mov r0, #0
|
|
ldr r1, _0224968C ; =0xFFFC0000
|
|
str r0, [r4, #0x2c]
|
|
str r1, [r4, #0x54]
|
|
mov r1, #0xfe
|
|
lsl r1, r1, #0xc
|
|
str r1, [r4, #0x44]
|
|
mov r1, #0xff
|
|
lsl r1, r1, #0xc
|
|
str r1, [r4, #0x48]
|
|
mov r1, #0x5f
|
|
lsl r1, r1, #0xc
|
|
str r1, [r4, #0x4c]
|
|
mov r1, #0x61
|
|
lsl r1, r1, #0xc
|
|
str r1, [r4, #0x50]
|
|
mov r1, #1
|
|
str r1, [r4, #0x2c]
|
|
ldr r1, [r4]
|
|
add r1, r1, #1
|
|
str r1, [r4]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0224968C: .word 0xFFFC0000
|
|
thumb_func_end ov02_02249658
|
|
|
|
thumb_func_start ov02_02249690
|
|
ov02_02249690: ; 0x02249690
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
mov r2, #0
|
|
str r2, [r4, #0x2c]
|
|
ldr r1, [r4, #0x44]
|
|
ldr r0, [r4, #0x54]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x44]
|
|
cmp r0, #0
|
|
bgt _022496B4
|
|
mov r0, #2
|
|
str r2, [r4, #0x44]
|
|
lsl r0, r0, #0xc
|
|
str r0, [r4, #0x54]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
_022496B4:
|
|
ldr r0, [r4, #0x50]
|
|
str r0, [sp]
|
|
ldr r1, [r4, #0x44]
|
|
ldr r2, [r4, #0x4c]
|
|
ldr r3, [r4, #0x48]
|
|
add r0, r4, #0
|
|
bl ov02_0224A69C
|
|
mov r0, #1
|
|
str r0, [r4, #0x2c]
|
|
mov r0, #0
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02249690
|
|
|
|
thumb_func_start ov02_022496D0
|
|
ov02_022496D0: ; 0x022496D0
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
str r0, [r4, #0x2c]
|
|
ldr r1, [r4, #0x4c]
|
|
ldr r0, [r4, #0x54]
|
|
sub r0, r1, r0
|
|
str r0, [r4, #0x4c]
|
|
ldr r1, [r4, #0x50]
|
|
ldr r0, [r4, #0x54]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x50]
|
|
mov r0, #2
|
|
ldr r1, [r4, #0x54]
|
|
lsl r0, r0, #0xc
|
|
add r2, r1, r0
|
|
lsl r1, r0, #4
|
|
str r2, [r4, #0x54]
|
|
cmp r2, r1
|
|
ble _022496FE
|
|
lsl r0, r0, #4
|
|
str r0, [r4, #0x54]
|
|
_022496FE:
|
|
mov r0, #0xe
|
|
ldr r1, [r4, #0x4c]
|
|
lsl r0, r0, #0xe
|
|
cmp r1, r0
|
|
bge _0224970A
|
|
str r0, [r4, #0x4c]
|
|
_0224970A:
|
|
mov r0, #0x22
|
|
ldr r1, [r4, #0x50]
|
|
lsl r0, r0, #0xe
|
|
cmp r1, r0
|
|
ble _02249716
|
|
str r0, [r4, #0x50]
|
|
_02249716:
|
|
ldr r0, [r4, #0x50]
|
|
str r0, [sp]
|
|
ldr r1, [r4, #0x44]
|
|
ldr r2, [r4, #0x4c]
|
|
ldr r3, [r4, #0x48]
|
|
add r0, r4, #0
|
|
bl ov02_0224A69C
|
|
mov r0, #1
|
|
str r0, [r4, #0x2c]
|
|
mov r0, #0xe
|
|
ldr r1, [r4, #0x4c]
|
|
lsl r0, r0, #0xe
|
|
cmp r1, r0
|
|
bne _0224974E
|
|
mov r0, #0x22
|
|
ldr r1, [r4, #0x50]
|
|
lsl r0, r0, #0xe
|
|
cmp r1, r0
|
|
bne _0224974E
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov02_0224A450
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
_0224974E:
|
|
mov r0, #0
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov02_022496D0
|
|
|
|
thumb_func_start ov02_02249754
|
|
ov02_02249754: ; 0x02249754
|
|
ldr r1, [r0, #8]
|
|
add r1, r1, #1
|
|
str r1, [r0, #8]
|
|
cmp r1, #0xf
|
|
blt _0224976C
|
|
mov r1, #0
|
|
str r1, [r0, #8]
|
|
ldr r1, _02249770 ; =0xFFFC0000
|
|
str r1, [r0, #0x58]
|
|
ldr r1, [r0]
|
|
add r1, r1, #1
|
|
str r1, [r0]
|
|
_0224976C:
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
_02249770: .word 0xFFFC0000
|
|
thumb_func_end ov02_02249754
|
|
|
|
thumb_func_start ov02_02249774
|
|
ov02_02249774: ; 0x02249774
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl sub_020248AC
|
|
add r3, r0, #0
|
|
ldmia r3!, {r0, r1}
|
|
add r2, sp, #0
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
ldr r1, [sp]
|
|
ldr r0, [r4, #0x58]
|
|
add r1, r1, r0
|
|
mov r0, #0xa
|
|
lsl r0, r0, #0x10
|
|
str r1, [sp]
|
|
cmp r1, r0
|
|
bgt _022497AC
|
|
mov r0, #3
|
|
lsl r0, r0, #0x12
|
|
str r0, [sp]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
_022497AC:
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r1, sp, #0
|
|
bl sub_020247D4
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02249774
|
|
|
|
thumb_func_start ov02_022497C0
|
|
ov02_022497C0: ; 0x022497C0
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #0x58]
|
|
lsr r0, r1, #0x1f
|
|
add r0, r1, r0
|
|
asr r1, r0, #1
|
|
ldr r0, _02249834 ; =0xFFFFE000
|
|
str r1, [r4, #0x58]
|
|
cmp r1, r0
|
|
ble _02249802
|
|
str r0, [r4, #0x58]
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
ldr r0, [r4, #0x5c]
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #0x5c]
|
|
mov r1, #0x70
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r1, r0, #0
|
|
lsl r0, r5, #0x10
|
|
lsl r1, r1, #0x18
|
|
lsr r0, r0, #0x10
|
|
lsr r1, r1, #0x18
|
|
bl PlayCry
|
|
_02249802:
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl sub_020248AC
|
|
add r5, r0, #0
|
|
add r3, sp, #0
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
str r0, [r3]
|
|
ldr r1, [sp]
|
|
ldr r0, [r4, #0x58]
|
|
add r0, r1, r0
|
|
str r0, [sp]
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r1, r2, #0
|
|
bl sub_020247D4
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
_02249834: .word 0xFFFFE000
|
|
thumb_func_end ov02_022497C0
|
|
|
|
thumb_func_start ov02_02249838
|
|
ov02_02249838: ; 0x02249838
|
|
ldr r1, [r0, #8]
|
|
add r1, r1, #1
|
|
str r1, [r0, #8]
|
|
cmp r1, #8
|
|
blt _02249850
|
|
mov r1, #0
|
|
str r1, [r0, #8]
|
|
ldr r1, _02249854 ; =0xFFFFF000
|
|
str r1, [r0, #0x58]
|
|
ldr r1, [r0]
|
|
add r1, r1, #1
|
|
str r1, [r0]
|
|
_02249850:
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
_02249854: .word 0xFFFFF000
|
|
thumb_func_end ov02_02249838
|
|
|
|
thumb_func_start ov02_02249858
|
|
ov02_02249858: ; 0x02249858
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x58]
|
|
lsl r1, r0, #1
|
|
ldr r0, _022498B4 ; =0xFFFC0000
|
|
str r1, [r4, #0x58]
|
|
cmp r1, r0
|
|
bge _0224986C
|
|
str r0, [r4, #0x58]
|
|
_0224986C:
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl sub_020248AC
|
|
add r5, r0, #0
|
|
add r3, sp, #0
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
str r0, [r3]
|
|
ldr r1, [sp]
|
|
ldr r0, [r4, #0x58]
|
|
add r0, r1, r0
|
|
str r0, [sp]
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r1, r2, #0
|
|
bl sub_020247D4
|
|
ldr r1, [sp]
|
|
ldr r0, _022498B8 ; =0xFFFD8000
|
|
cmp r1, r0
|
|
bgt _022498AC
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
str r0, [r4, #0x54]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
_022498AC:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_022498B4: .word 0xFFFC0000
|
|
_022498B8: .word 0xFFFD8000
|
|
thumb_func_end ov02_02249858
|
|
|
|
thumb_func_start ov02_022498BC
|
|
ov02_022498BC: ; 0x022498BC
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
str r0, [r4, #0x2c]
|
|
ldr r1, [r4, #0x4c]
|
|
ldr r0, [r4, #0x54]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x4c]
|
|
ldr r1, [r4, #0x50]
|
|
ldr r0, [r4, #0x54]
|
|
sub r0, r1, r0
|
|
str r0, [r4, #0x50]
|
|
mov r0, #1
|
|
ldr r1, [r4, #0x54]
|
|
lsl r0, r0, #0xe
|
|
add r2, r1, r0
|
|
lsl r1, r0, #2
|
|
str r2, [r4, #0x54]
|
|
cmp r2, r1
|
|
ble _022498EA
|
|
lsl r0, r0, #2
|
|
str r0, [r4, #0x54]
|
|
_022498EA:
|
|
mov r0, #0x5f
|
|
ldr r1, [r4, #0x4c]
|
|
lsl r0, r0, #0xc
|
|
cmp r1, r0
|
|
blt _022498F6
|
|
str r0, [r4, #0x4c]
|
|
_022498F6:
|
|
mov r0, #0x61
|
|
ldr r1, [r4, #0x50]
|
|
lsl r0, r0, #0xc
|
|
cmp r1, r0
|
|
bgt _02249902
|
|
str r0, [r4, #0x50]
|
|
_02249902:
|
|
ldr r0, [r4, #0x50]
|
|
str r0, [sp]
|
|
ldr r1, [r4, #0x44]
|
|
ldr r2, [r4, #0x4c]
|
|
ldr r3, [r4, #0x48]
|
|
add r0, r4, #0
|
|
bl ov02_0224A69C
|
|
mov r0, #1
|
|
str r0, [r4, #0x2c]
|
|
mov r0, #0x5f
|
|
ldr r1, [r4, #0x4c]
|
|
lsl r0, r0, #0xc
|
|
cmp r1, r0
|
|
bne _0224993A
|
|
mov r0, #0x61
|
|
ldr r1, [r4, #0x50]
|
|
lsl r0, r0, #0xc
|
|
cmp r1, r0
|
|
bne _0224993A
|
|
add r0, r4, #0
|
|
bl ov02_0224B768
|
|
mov r0, #0x11
|
|
str r0, [r4, #0x34]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
_0224993A:
|
|
mov r0, #0
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov02_022498BC
|
|
|
|
thumb_func_start ov02_02249940
|
|
ov02_02249940: ; 0x02249940
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov02_02249FD4
|
|
mov r0, #0
|
|
str r0, [r4, #0x10]
|
|
ldr r1, [r4]
|
|
add r1, r1, #1
|
|
str r1, [r4]
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_02249940
|
|
|
|
thumb_func_start ov02_02249954
|
|
ov02_02249954: ; 0x02249954
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov02_0224A028
|
|
mov r0, #0
|
|
str r0, [r4, #0x10]
|
|
ldr r1, [r4]
|
|
add r1, r1, #1
|
|
str r1, [r4]
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_02249954
|
|
|
|
thumb_func_start ov02_02249968
|
|
ov02_02249968: ; 0x02249968
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov02_0224A6D0
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02249968
|
|
|
|
thumb_func_start ov02_0224997C
|
|
ov02_0224997C: ; 0x0224997C
|
|
mov r1, #1
|
|
str r1, [r0, #4]
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end ov02_0224997C
|
|
|
|
thumb_func_start ov02_02249984
|
|
ov02_02249984: ; 0x02249984
|
|
push {r3, r4, r5, lr}
|
|
ldr r4, _022499B4 ; =ov02_02253588
|
|
add r5, r1, #0
|
|
_0224998A:
|
|
ldr r1, [r5]
|
|
add r0, r5, #0
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
blx r1
|
|
cmp r0, #1
|
|
beq _0224998A
|
|
ldr r0, [r5, #0x10]
|
|
cmp r0, #1
|
|
bne _022499B2
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _022499AC
|
|
bl sub_02068BAC
|
|
_022499AC:
|
|
add r0, r5, #0
|
|
bl ov02_0224A32C
|
|
_022499B2:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_022499B4: .word ov02_02253588
|
|
thumb_func_end ov02_02249984
|
|
|
|
thumb_func_start ov02_022499B8
|
|
ov02_022499B8: ; 0x022499B8
|
|
push {r3, r4, r5, lr}
|
|
ldr r4, _022499E8 ; =ov02_022534F0
|
|
add r5, r1, #0
|
|
_022499BE:
|
|
ldr r1, [r5]
|
|
add r0, r5, #0
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
blx r1
|
|
cmp r0, #1
|
|
beq _022499BE
|
|
ldr r0, [r5, #0x10]
|
|
cmp r0, #1
|
|
bne _022499E6
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _022499E0
|
|
bl sub_02068BAC
|
|
_022499E0:
|
|
add r0, r5, #0
|
|
bl ov02_0224A32C
|
|
_022499E6:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_022499E8: .word ov02_022534F0
|
|
thumb_func_end ov02_022499B8
|
|
|
|
thumb_func_start ov02_022499EC
|
|
ov02_022499EC: ; 0x022499EC
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x18
|
|
add r4, r0, #0
|
|
mov r0, #0x85
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
bne _02249A02
|
|
add sp, #0x18
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_02249A02:
|
|
ldr r5, _02249A54 ; =ov02_022533FC
|
|
add r3, sp, #0xc
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
ldr r5, _02249A58 ; =ov02_02253414
|
|
str r0, [r3]
|
|
ldmia r5!, {r0, r1}
|
|
add r3, sp, #0
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
add r1, r2, #0
|
|
str r0, [r3]
|
|
add r0, r4, #0
|
|
bl ov02_0224A418
|
|
mov r1, #0x79
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
add r0, r4, #0
|
|
add r1, sp, #0
|
|
bl ov02_0224A9B8
|
|
mov r1, #0x7a
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov02_0224A9D8
|
|
add r0, r4, #0
|
|
bl ov02_02249D40
|
|
mov r0, #1
|
|
str r0, [r4, #0x10]
|
|
ldr r1, [r4]
|
|
add r1, r1, #1
|
|
str r1, [r4]
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_02249A54: .word ov02_022533FC
|
|
_02249A58: .word ov02_02253414
|
|
thumb_func_end ov02_022499EC
|
|
|
|
thumb_func_start ov02_02249A5C
|
|
ov02_02249A5C: ; 0x02249A5C
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
mov r3, #0x85
|
|
add r4, r0, #0
|
|
lsl r3, r3, #2
|
|
ldr r0, [r4, r3]
|
|
cmp r0, #0
|
|
bne _02249A72
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, pc}
|
|
_02249A72:
|
|
ldr r6, _02249AC0 ; =ov02_02253348
|
|
add r5, sp, #0
|
|
ldmia r6!, {r0, r1}
|
|
add r2, r5, #0
|
|
stmia r5!, {r0, r1}
|
|
ldr r0, [r6]
|
|
str r0, [r5]
|
|
add r0, r3, #0
|
|
add r0, #0xd8
|
|
ldr r1, [sp]
|
|
ldr r0, [r4, r0]
|
|
add r3, #0xe0
|
|
add r0, r1, r0
|
|
str r0, [sp]
|
|
ldr r1, [sp, #4]
|
|
ldr r0, [r4, r3]
|
|
add r0, r1, r0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r1, r2, #0
|
|
bl ov02_0224A418
|
|
mov r1, #0x79
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimSeqNo
|
|
add r0, r4, #0
|
|
bl ov02_02249D40
|
|
mov r0, #1
|
|
str r0, [r4, #0x10]
|
|
ldr r1, [r4]
|
|
add r1, r1, #1
|
|
str r1, [r4]
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_02249AC0: .word ov02_02253348
|
|
thumb_func_end ov02_02249A5C
|
|
|
|
thumb_func_start ov02_02249AC4
|
|
ov02_02249AC4: ; 0x02249AC4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov02_0224A8D4
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02249AC4
|
|
|
|
thumb_func_start ov02_02249AD8
|
|
ov02_02249AD8: ; 0x02249AD8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov02_0224A4D0
|
|
add r0, r4, #0
|
|
bl ov02_02249D18
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_02249AD8
|
|
|
|
thumb_func_start ov02_02249AF0
|
|
ov02_02249AF0: ; 0x02249AF0
|
|
push {r4, lr}
|
|
mov r1, #0x85
|
|
add r4, r0, #0
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
cmp r1, #0
|
|
bne _02249B02
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_02249B02:
|
|
bl ov02_02249D40
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_02249AF0
|
|
|
|
thumb_func_start ov02_02249B10
|
|
ov02_02249B10: ; 0x02249B10
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov02_0224AB58
|
|
add r0, r4, #0
|
|
bl ov02_0224AC38
|
|
add r0, r4, #0
|
|
bl ov02_0224A690
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov02_0224B6B0
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02249B10
|
|
|
|
thumb_func_start ov02_02249B38
|
|
ov02_02249B38: ; 0x02249B38
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov02_0224AB8C
|
|
cmp r0, #2
|
|
beq _02249B48
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_02249B48:
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimSeqNo
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02249B38
|
|
|
|
thumb_func_start ov02_02249B60
|
|
ov02_02249B60: ; 0x02249B60
|
|
push {r3, lr}
|
|
ldr r1, [r0, #8]
|
|
add r1, r1, #1
|
|
str r1, [r0, #8]
|
|
cmp r1, #0x14
|
|
blt _02249B7A
|
|
mov r1, #0
|
|
str r1, [r0, #8]
|
|
ldr r1, [r0]
|
|
add r1, r1, #1
|
|
str r1, [r0]
|
|
bl ov02_0224ADF0
|
|
_02249B7A:
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02249B60
|
|
|
|
thumb_func_start ov02_02249B80
|
|
ov02_02249B80: ; 0x02249B80
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #8]
|
|
add r1, r1, #1
|
|
str r1, [r4, #8]
|
|
cmp r1, #0x14
|
|
blt _02249BA2
|
|
mov r1, #0
|
|
str r1, [r4, #8]
|
|
ldr r1, [r4]
|
|
add r1, r1, #1
|
|
str r1, [r4]
|
|
bl ov02_0224AB58
|
|
add r0, r4, #0
|
|
bl ov02_0224ADF0
|
|
_02249BA2:
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02249B80
|
|
|
|
thumb_func_start ov02_02249BA8
|
|
ov02_02249BA8: ; 0x02249BA8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov02_0224AB8C
|
|
cmp r0, #3
|
|
beq _02249BB8
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_02249BB8:
|
|
ldr r0, _02249BD4 ; =SEQ_SE_DP_FW019
|
|
bl PlaySE
|
|
mov r0, #2
|
|
lsl r0, r0, #0xa
|
|
str r0, [r4, #0x54]
|
|
mov r0, #2
|
|
str r0, [r4, #0x14]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
nop
|
|
_02249BD4: .word SEQ_SE_DP_FW019
|
|
thumb_func_end ov02_02249BA8
|
|
|
|
thumb_func_start ov02_02249BD8
|
|
ov02_02249BD8: ; 0x02249BD8
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
str r0, [r4, #0x2c]
|
|
ldr r1, [r4, #0x4c]
|
|
ldr r0, [r4, #0x54]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x4c]
|
|
ldr r1, [r4, #0x50]
|
|
ldr r0, [r4, #0x54]
|
|
sub r0, r1, r0
|
|
str r0, [r4, #0x50]
|
|
mov r0, #2
|
|
ldr r1, [r4, #0x54]
|
|
lsl r0, r0, #0xa
|
|
add r2, r1, r0
|
|
lsl r1, r0, #5
|
|
str r2, [r4, #0x54]
|
|
cmp r2, r1
|
|
ble _02249C06
|
|
lsl r0, r0, #5
|
|
str r0, [r4, #0x54]
|
|
_02249C06:
|
|
mov r0, #0x5f
|
|
ldr r1, [r4, #0x4c]
|
|
lsl r0, r0, #0xc
|
|
cmp r1, r0
|
|
blt _02249C12
|
|
str r0, [r4, #0x4c]
|
|
_02249C12:
|
|
mov r0, #0x61
|
|
ldr r1, [r4, #0x50]
|
|
lsl r0, r0, #0xc
|
|
cmp r1, r0
|
|
bgt _02249C1E
|
|
str r0, [r4, #0x50]
|
|
_02249C1E:
|
|
ldr r0, [r4, #0x50]
|
|
str r0, [sp]
|
|
ldr r1, [r4, #0x44]
|
|
ldr r2, [r4, #0x4c]
|
|
ldr r3, [r4, #0x48]
|
|
add r0, r4, #0
|
|
bl ov02_0224A69C
|
|
mov r0, #1
|
|
str r0, [r4, #0x2c]
|
|
ldr r0, [r4, #0x18]
|
|
cmp r0, #0
|
|
bne _02249C4A
|
|
add r0, r4, #0
|
|
bl ov02_0224AB8C
|
|
cmp r0, #4
|
|
bne _02249C4A
|
|
mov r0, #1
|
|
str r0, [r4, #0x18]
|
|
bl ov02_02249420
|
|
_02249C4A:
|
|
mov r0, #0x5f
|
|
ldr r1, [r4, #0x4c]
|
|
lsl r0, r0, #0xc
|
|
cmp r1, r0
|
|
bne _02249C6C
|
|
mov r0, #0x61
|
|
ldr r1, [r4, #0x50]
|
|
lsl r0, r0, #0xc
|
|
cmp r1, r0
|
|
bne _02249C6C
|
|
mov r0, #0x11
|
|
str r0, [r4, #0x34]
|
|
mov r0, #1
|
|
str r0, [r4, #0x14]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
_02249C6C:
|
|
mov r0, #0
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02249BD8
|
|
|
|
thumb_func_start ov02_02249C74
|
|
ov02_02249C74: ; 0x02249C74
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #0x20]
|
|
cmp r1, #3
|
|
bne _02249C96
|
|
bl ov02_0224AB8C
|
|
cmp r0, #2
|
|
bne _02249C92
|
|
add r0, r4, #0
|
|
bl ov02_0224AB9C
|
|
ldr r0, [r4]
|
|
add r0, r0, #2
|
|
str r0, [r4]
|
|
_02249C92:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_02249C96:
|
|
ldr r1, [r4, #0x18]
|
|
cmp r1, #0
|
|
bne _02249CAC
|
|
bl ov02_0224AB8C
|
|
cmp r0, #4
|
|
bne _02249CAC
|
|
mov r0, #1
|
|
str r0, [r4, #0x18]
|
|
bl ov02_02249420
|
|
_02249CAC:
|
|
add r0, r4, #0
|
|
bl ov02_0224AB8C
|
|
cmp r0, #2
|
|
beq _02249CBA
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_02249CBA:
|
|
ldr r0, [r4, #0x18]
|
|
cmp r0, #0
|
|
bne _02249CC8
|
|
mov r0, #1
|
|
str r0, [r4, #0x18]
|
|
bl ov02_02249420
|
|
_02249CC8:
|
|
add r0, r4, #0
|
|
bl ov02_0224AB9C
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_02249C74
|
|
|
|
thumb_func_start ov02_02249CD8
|
|
ov02_02249CD8: ; 0x02249CD8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _02249CEA
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
_02249CEA:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02249CD8
|
|
|
|
thumb_func_start ov02_02249CF0
|
|
ov02_02249CF0: ; 0x02249CF0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x21
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r4, r0]
|
|
add r0, r0, #4
|
|
str r1, [r4, r0]
|
|
ldr r0, _02249D14 ; =ov02_02249D5C
|
|
add r1, r4, #0
|
|
mov r2, #0x80
|
|
bl sub_0200E33C
|
|
mov r1, #0x22
|
|
lsl r1, r1, #4
|
|
str r0, [r4, r1]
|
|
pop {r4, pc}
|
|
nop
|
|
_02249D14: .word ov02_02249D5C
|
|
thumb_func_end ov02_02249CF0
|
|
|
|
thumb_func_start ov02_02249D18
|
|
ov02_02249D18: ; 0x02249D18
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x21
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r4, r0]
|
|
add r0, r0, #4
|
|
str r1, [r4, r0]
|
|
ldr r0, _02249D3C ; =ov02_02249E58
|
|
add r1, r4, #0
|
|
mov r2, #0x80
|
|
bl sub_0200E33C
|
|
mov r1, #0x22
|
|
lsl r1, r1, #4
|
|
str r0, [r4, r1]
|
|
pop {r4, pc}
|
|
nop
|
|
_02249D3C: .word ov02_02249E58
|
|
thumb_func_end ov02_02249D18
|
|
|
|
thumb_func_start ov02_02249D40
|
|
ov02_02249D40: ; 0x02249D40
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x22
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _02249D5A
|
|
bl DestroySysTask
|
|
mov r0, #0x22
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r4, r0]
|
|
_02249D5A:
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_02249D40
|
|
|
|
thumb_func_start ov02_02249D5C
|
|
ov02_02249D5C: ; 0x02249D5C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r0, #0x21
|
|
add r6, r1, #0
|
|
lsl r0, r0, #4
|
|
ldr r0, [r6, r0]
|
|
cmp r0, #0
|
|
bne _02249DD2
|
|
mov r7, #0x6b
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
lsl r7, r7, #2
|
|
_02249D72:
|
|
ldr r0, [r5, r7]
|
|
cmp r0, #0
|
|
beq _02249D7C
|
|
bl sub_0200ADA4
|
|
_02249D7C:
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _02249D72
|
|
mov r7, #0x6f
|
|
mov r5, #0
|
|
add r4, r6, #0
|
|
lsl r7, r7, #2
|
|
_02249D8C:
|
|
ldr r0, [r4, r7]
|
|
cmp r0, #0
|
|
beq _02249D96
|
|
bl sub_0200B00C
|
|
_02249D96:
|
|
add r5, r5, #1
|
|
add r4, r4, #4
|
|
cmp r5, #3
|
|
blt _02249D8C
|
|
mov r0, #0x86
|
|
lsl r0, r0, #2
|
|
ldr r1, [r6, r0]
|
|
cmp r1, #0
|
|
beq _02249DAE
|
|
add r0, r6, #0
|
|
bl ov02_0224A834
|
|
_02249DAE:
|
|
mov r0, #0x87
|
|
lsl r0, r0, #2
|
|
ldr r1, [r6, r0]
|
|
cmp r1, #0
|
|
beq _02249DBE
|
|
add r0, r6, #0
|
|
bl ov02_0224A88C
|
|
_02249DBE:
|
|
mov r0, #0x21
|
|
lsl r0, r0, #4
|
|
ldr r1, [r6, r0]
|
|
mov r2, #0x80
|
|
add r1, r1, #1
|
|
str r1, [r6, r0]
|
|
ldr r0, _02249DD4 ; =ov02_02249DD8
|
|
add r1, r6, #0
|
|
bl sub_0200E374
|
|
_02249DD2:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_02249DD4: .word ov02_02249DD8
|
|
thumb_func_end ov02_02249D5C
|
|
|
|
thumb_func_start ov02_02249DD8
|
|
ov02_02249DD8: ; 0x02249DD8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
str r0, [sp]
|
|
mov r0, #0x21
|
|
add r6, r1, #0
|
|
lsl r0, r0, #4
|
|
ldr r0, [r6, r0]
|
|
cmp r0, #1
|
|
bne _02249E56
|
|
mov r7, #0x6b
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
lsl r7, r7, #2
|
|
_02249DF0:
|
|
ldr r0, [r5, r7]
|
|
cmp r0, #0
|
|
beq _02249DFA
|
|
bl sub_0200A740
|
|
_02249DFA:
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _02249DF0
|
|
mov r7, #0x6f
|
|
mov r5, #0
|
|
add r4, r6, #0
|
|
lsl r7, r7, #2
|
|
_02249E0A:
|
|
ldr r0, [r4, r7]
|
|
cmp r0, #0
|
|
beq _02249E14
|
|
bl sub_0200A740
|
|
_02249E14:
|
|
add r5, r5, #1
|
|
add r4, r4, #4
|
|
cmp r5, #3
|
|
blt _02249E0A
|
|
mov r0, #0x86
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
cmp r0, #0
|
|
beq _02249E32
|
|
bl FreeToHeap
|
|
mov r0, #0x86
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
str r1, [r6, r0]
|
|
_02249E32:
|
|
mov r0, #0x87
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
cmp r0, #0
|
|
beq _02249E48
|
|
bl FreeToHeap
|
|
mov r0, #0x87
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
str r1, [r6, r0]
|
|
_02249E48:
|
|
mov r0, #0x85
|
|
mov r1, #1
|
|
lsl r0, r0, #2
|
|
str r1, [r6, r0]
|
|
ldr r0, [sp]
|
|
bl DestroySysTask
|
|
_02249E56:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_02249DD8
|
|
|
|
thumb_func_start ov02_02249E58
|
|
ov02_02249E58: ; 0x02249E58
|
|
push {r4, lr}
|
|
mov r0, #0x67
|
|
add r4, r1, #0
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl Get2DGfxResObjById
|
|
mov r1, #0x21
|
|
lsl r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
cmp r1, #0
|
|
bne _02249E8A
|
|
bl sub_0200ADA4
|
|
ldr r0, _02249E8C ; =ov02_02249E90
|
|
add r1, r4, #0
|
|
mov r2, #0x80
|
|
bl sub_0200E374
|
|
mov r0, #0x21
|
|
lsl r0, r0, #4
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
_02249E8A:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_02249E8C: .word ov02_02249E90
|
|
thumb_func_end ov02_02249E58
|
|
|
|
thumb_func_start ov02_02249E90
|
|
ov02_02249E90: ; 0x02249E90
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x67
|
|
add r4, r1, #0
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl Get2DGfxResObjById
|
|
mov r1, #0x21
|
|
lsl r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
cmp r1, #1
|
|
bne _02249EBE
|
|
bl sub_0200A740
|
|
mov r0, #0x85
|
|
mov r1, #1
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
_02249EBE:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_02249E90
|
|
|
|
thumb_func_start ov02_02249EC0
|
|
ov02_02249EC0: ; 0x02249EC0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl ov02_0224A074
|
|
mov r2, #3
|
|
mov r3, #1
|
|
add r4, r0, #0
|
|
lsl r2, r2, #0x12
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
lsl r3, r3, #0xc
|
|
str r2, [sp]
|
|
bl ov02_0224A69C
|
|
add r0, r5, #0
|
|
bl ov02_0224A648
|
|
ldr r0, [r5, #0x60]
|
|
mov r1, #0
|
|
ldr r0, [r0, #8]
|
|
bl GetBgPriority
|
|
strh r0, [r5, #0x24]
|
|
ldr r0, [r5, #0x60]
|
|
mov r1, #3
|
|
ldr r0, [r0, #8]
|
|
bl GetBgPriority
|
|
strh r0, [r5, #0x26]
|
|
ldr r2, _02249F68 ; =0x0400000A
|
|
mov r1, #3
|
|
ldrh r3, [r2]
|
|
mov r0, #1
|
|
bic r3, r1
|
|
orr r0, r3
|
|
strh r0, [r2]
|
|
ldrh r0, [r2, #4]
|
|
bic r0, r1
|
|
strh r0, [r2, #4]
|
|
mov r0, #8
|
|
mov r1, #0
|
|
bl GX_EngineAToggleLayers
|
|
add r2, r5, #0
|
|
add r0, r4, #0
|
|
#ifdef HEARTGOLD
|
|
mov r1, #2
|
|
#else
|
|
mov r1, #5
|
|
#endif
|
|
add r2, #0x6c
|
|
bl ov02_0224A570
|
|
ldr r0, [r5, #0x60]
|
|
add r3, r5, #0
|
|
ldr r0, [r0, #8]
|
|
add r1, r4, #0
|
|
#ifdef HEARTGOLD
|
|
mov r2, #0
|
|
#else
|
|
mov r2, #3
|
|
#endif
|
|
add r3, #0x68
|
|
bl ov02_0224A598
|
|
ldr r0, [r5, #0x60]
|
|
add r3, r5, #0
|
|
ldr r0, [r0, #8]
|
|
add r1, r4, #0
|
|
#ifdef HEARTGOLD
|
|
mov r2, #1
|
|
#else
|
|
mov r2, #4
|
|
#endif
|
|
add r3, #0x64
|
|
bl ov02_0224A5D0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov02_0224A080
|
|
add r0, r4, #0
|
|
bl NARC_Delete
|
|
mov r0, #4
|
|
mov r1, #0x20
|
|
bl sub_020689C8
|
|
mov r1, #0x1e
|
|
lsl r1, r1, #4
|
|
str r0, [r5, r1]
|
|
mov r0, #8
|
|
mov r1, #1
|
|
bl GX_EngineAToggleLayers
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_02249F68: .word 0x0400000A
|
|
thumb_func_end ov02_02249EC0
|
|
|
|
thumb_func_start ov02_02249F6C
|
|
ov02_02249F6C: ; 0x02249F6C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl ov02_0224A074
|
|
add r4, r0, #0
|
|
ldr r0, [r5, #0x60]
|
|
mov r1, #0
|
|
ldr r0, [r0, #8]
|
|
bl GetBgPriority
|
|
strh r0, [r5, #0x24]
|
|
ldr r0, [r5, #0x60]
|
|
mov r1, #3
|
|
ldr r0, [r0, #8]
|
|
bl GetBgPriority
|
|
strh r0, [r5, #0x26]
|
|
ldr r2, _02249FD0 ; =0x0400000A
|
|
mov r1, #3
|
|
ldrh r3, [r2]
|
|
mov r0, #1
|
|
bic r3, r1
|
|
orr r0, r3
|
|
strh r0, [r2]
|
|
ldrh r0, [r2, #4]
|
|
bic r0, r1
|
|
strh r0, [r2, #4]
|
|
mov r0, #8
|
|
mov r1, #0
|
|
bl GX_EngineAToggleLayers
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov02_0224A080
|
|
add r0, r4, #0
|
|
bl NARC_Delete
|
|
mov r0, #4
|
|
mov r1, #0x20
|
|
bl sub_020689C8
|
|
mov r1, #0x1e
|
|
lsl r1, r1, #4
|
|
str r0, [r5, r1]
|
|
mov r0, #8
|
|
mov r1, #1
|
|
bl GX_EngineAToggleLayers
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_02249FD0: .word 0x0400000A
|
|
thumb_func_end ov02_02249F6C
|
|
|
|
thumb_func_start ov02_02249FD4
|
|
ov02_02249FD4: ; 0x02249FD4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #8
|
|
mov r1, #0
|
|
bl GX_EngineAToggleLayers
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl sub_020689F8
|
|
ldr r0, [r4, #0x60]
|
|
ldr r0, [r0, #8]
|
|
bl ov02_0224A63C
|
|
add r0, r4, #0
|
|
bl ov02_0224A288
|
|
ldr r2, _0224A024 ; =0x04000008
|
|
ldrh r1, [r4, #0x24]
|
|
ldrh r3, [r2]
|
|
mov r0, #3
|
|
bic r3, r0
|
|
orr r1, r3
|
|
strh r1, [r2]
|
|
ldrh r1, [r2, #6]
|
|
bic r1, r0
|
|
ldrh r0, [r4, #0x26]
|
|
orr r0, r1
|
|
strh r0, [r2, #6]
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl sub_0205B4EC
|
|
mov r0, #8
|
|
mov r1, #1
|
|
bl GX_EngineAToggleLayers
|
|
pop {r4, pc}
|
|
nop
|
|
_0224A024: .word 0x04000008
|
|
thumb_func_end ov02_02249FD4
|
|
|
|
thumb_func_start ov02_0224A028
|
|
ov02_0224A028: ; 0x0224A028
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #8
|
|
mov r1, #0
|
|
bl GX_EngineAToggleLayers
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl sub_020689F8
|
|
add r0, r4, #0
|
|
bl ov02_0224A288
|
|
ldr r2, _0224A070 ; =0x04000008
|
|
ldrh r1, [r4, #0x24]
|
|
ldrh r3, [r2]
|
|
mov r0, #3
|
|
bic r3, r0
|
|
orr r1, r3
|
|
strh r1, [r2]
|
|
ldrh r1, [r2, #6]
|
|
bic r1, r0
|
|
ldrh r0, [r4, #0x26]
|
|
orr r0, r1
|
|
strh r0, [r2, #6]
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl sub_0205B4EC
|
|
mov r0, #8
|
|
mov r1, #1
|
|
bl GX_EngineAToggleLayers
|
|
pop {r4, pc}
|
|
nop
|
|
_0224A070: .word 0x04000008
|
|
thumb_func_end ov02_0224A028
|
|
|
|
thumb_func_start ov02_0224A074
|
|
ov02_0224A074: ; 0x0224A074
|
|
ldr r3, _0224A07C ; =NARC_New
|
|
mov r0, #0x5d
|
|
mov r1, #4
|
|
bx r3
|
|
.balign 4, 0
|
|
_0224A07C: .word NARC_New
|
|
thumb_func_end ov02_0224A074
|
|
|
|
thumb_func_start ov02_0224A080
|
|
ov02_0224A080: ; 0x0224A080
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
add r6, r1, #0
|
|
mov r1, #0x7e
|
|
add r5, r0, #0
|
|
lsl r1, r1, #2
|
|
add r1, r5, r1
|
|
bl ov02_0224A7A8
|
|
add r1, r5, #0
|
|
mov r0, #0x20
|
|
add r1, #0x74
|
|
mov r2, #4
|
|
bl G2dRenderer_Init
|
|
str r0, [r5, #0x70]
|
|
add r0, r5, #0
|
|
mov r2, #2
|
|
add r0, #0x74
|
|
mov r1, #0
|
|
lsl r2, r2, #0x14
|
|
bl G2dRenderer_SetSubSurfaceCoords
|
|
mov r0, #4
|
|
mov r1, #0
|
|
add r2, r0, #0
|
|
bl Create2DGfxResObjMan
|
|
mov r1, #0x67
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
mov r0, #3
|
|
mov r1, #1
|
|
mov r2, #4
|
|
bl Create2DGfxResObjMan
|
|
mov r1, #0x1a
|
|
lsl r1, r1, #4
|
|
str r0, [r5, r1]
|
|
mov r0, #4
|
|
mov r1, #2
|
|
add r2, r0, #0
|
|
bl Create2DGfxResObjMan
|
|
mov r1, #0x69
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
mov r0, #2
|
|
mov r1, #3
|
|
mov r2, #4
|
|
bl Create2DGfxResObjMan
|
|
mov r1, #0x6a
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
sub r1, #0xc
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5, r1]
|
|
add r1, r6, #0
|
|
mov r2, #0xe
|
|
mov r3, #0
|
|
bl AddCharResObjFromOpenNarc
|
|
mov r1, #0x6b
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
ldrh r2, [r5, #0xe]
|
|
sub r1, #0x10
|
|
ldr r0, [r5, r1]
|
|
lsl r3, r2, #1
|
|
ldr r2, _0224A278 ; =ov02_02253304
|
|
add r1, r6, #0
|
|
ldrh r2, [r2, r3]
|
|
mov r3, #0
|
|
bl AddCharResObjFromOpenNarc
|
|
mov r1, #0x1b
|
|
lsl r1, r1, #4
|
|
str r0, [r5, r1]
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov02_0224A810
|
|
mov r1, #0x6d
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
mov r4, #0
|
|
str r4, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #4
|
|
sub r1, #0x14
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r5, r1]
|
|
add r1, r6, #0
|
|
mov r2, #6
|
|
add r3, r4, #0
|
|
bl AddPlttResObjFromOpenNarc
|
|
mov r1, #0x6f
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
ldrh r2, [r5, #0xe]
|
|
add r4, r4, #1
|
|
cmp r2, #0
|
|
beq _0224A196
|
|
mov r0, #1
|
|
sub r2, r2, #1
|
|
str r0, [sp]
|
|
lsl r3, r2, #1
|
|
ldr r2, _0224A27C ; =ov02_022532FC
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #4
|
|
ldrh r2, [r2, r3]
|
|
sub r1, #0x1c
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r5, r1]
|
|
add r1, r6, #0
|
|
mov r3, #0
|
|
bl AddPlttResObjFromOpenNarc
|
|
lsl r1, r4, #2
|
|
add r2, r5, r1
|
|
mov r1, #0x6f
|
|
lsl r1, r1, #2
|
|
str r0, [r2, r1]
|
|
add r4, r4, #1
|
|
_0224A196:
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov02_0224A868
|
|
lsl r1, r4, #2
|
|
add r2, r5, r1
|
|
mov r1, #0x6f
|
|
lsl r1, r1, #2
|
|
str r0, [r2, r1]
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
sub r1, #0x18
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5, r1]
|
|
add r1, r6, #0
|
|
mov r2, #0xf
|
|
mov r3, #0
|
|
bl AddCellOrAnimResObjFromOpenNarc
|
|
mov r1, #0x72
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
ldrh r2, [r5, #0xe]
|
|
sub r1, #0x24
|
|
ldr r0, [r5, r1]
|
|
lsl r3, r2, #1
|
|
ldr r2, _0224A280 ; =ov02_02253310
|
|
add r1, r6, #0
|
|
ldrh r2, [r2, r3]
|
|
mov r3, #0
|
|
bl AddCellOrAnimResObjFromOpenNarc
|
|
mov r1, #0x73
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
mov r0, #3
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
sub r1, #0x28
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5, r1]
|
|
add r1, r6, #0
|
|
mov r2, #0xa
|
|
mov r3, #0
|
|
bl AddCellOrAnimResObjFromOpenNarc
|
|
mov r1, #0x1d
|
|
lsl r1, r1, #4
|
|
str r0, [r5, r1]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #3
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
sub r1, #0x28
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5, r1]
|
|
add r1, r6, #0
|
|
mov r2, #0x10
|
|
bl AddCellOrAnimResObjFromOpenNarc
|
|
mov r1, #0x76
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #3
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
ldrh r2, [r5, #0xe]
|
|
sub r1, #0x30
|
|
ldr r0, [r5, r1]
|
|
lsl r3, r2, #1
|
|
ldr r2, _0224A284 ; =ov02_0225330A
|
|
add r1, r6, #0
|
|
ldrh r2, [r2, r3]
|
|
mov r3, #0
|
|
bl AddCellOrAnimResObjFromOpenNarc
|
|
mov r1, #0x77
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add r1, #0x1c
|
|
ldr r0, [r5, #0x5c]
|
|
add r1, r5, r1
|
|
mov r2, #4
|
|
bl ov02_0224A7B8
|
|
mov r1, #0x86
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
sub r1, #0x20
|
|
add r0, r5, r1
|
|
mov r1, #4
|
|
bl ov02_0224A800
|
|
mov r1, #0x87
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0224A278: .word ov02_02253304
|
|
_0224A27C: .word ov02_022532FC
|
|
_0224A280: .word ov02_02253310
|
|
_0224A284: .word ov02_0225330A
|
|
thumb_func_end ov02_0224A080
|
|
|
|
thumb_func_start ov02_0224A288
|
|
ov02_0224A288: ; 0x0224A288
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
mov r7, #0x6b
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
lsl r7, r7, #2
|
|
_0224A294:
|
|
ldr r0, [r5, r7]
|
|
cmp r0, #0
|
|
beq _0224A29E
|
|
bl sub_0200AEB0
|
|
_0224A29E:
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _0224A294
|
|
mov r7, #0x6f
|
|
mov r5, #0
|
|
add r4, r6, #0
|
|
lsl r7, r7, #2
|
|
_0224A2AE:
|
|
ldr r0, [r4, r7]
|
|
cmp r0, #0
|
|
beq _0224A2B8
|
|
bl sub_0200B0A8
|
|
_0224A2B8:
|
|
add r5, r5, #1
|
|
add r4, r4, #4
|
|
cmp r5, #3
|
|
blt _0224A2AE
|
|
mov r7, #0x72
|
|
mov r5, #0
|
|
add r4, r6, #0
|
|
lsl r7, r7, #2
|
|
_0224A2C8:
|
|
ldr r0, [r4, r7]
|
|
cmp r0, #0
|
|
beq _0224A2D2
|
|
bl sub_0200A740
|
|
_0224A2D2:
|
|
add r5, r5, #1
|
|
add r4, r4, #4
|
|
cmp r5, #4
|
|
blt _0224A2C8
|
|
mov r7, #0x76
|
|
mov r5, #0
|
|
add r4, r6, #0
|
|
lsl r7, r7, #2
|
|
_0224A2E2:
|
|
ldr r0, [r4, r7]
|
|
cmp r0, #0
|
|
beq _0224A2EC
|
|
bl sub_0200A740
|
|
_0224A2EC:
|
|
add r5, r5, #1
|
|
add r4, r4, #4
|
|
cmp r5, #2
|
|
blt _0224A2E2
|
|
mov r0, #0x67
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl Destroy2DGfxResObjMan
|
|
mov r0, #0x1a
|
|
lsl r0, r0, #4
|
|
ldr r0, [r6, r0]
|
|
bl Destroy2DGfxResObjMan
|
|
mov r0, #0x69
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl Destroy2DGfxResObjMan
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
bl Destroy2DGfxResObjMan
|
|
ldr r0, [r6, #0x70]
|
|
bl sub_02024544
|
|
ldr r0, [r6, #0x70]
|
|
bl sub_02024504
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224A288
|
|
|
|
thumb_func_start ov02_0224A32C
|
|
ov02_0224A32C: ; 0x0224A32C
|
|
push {r3, lr}
|
|
ldr r0, [r0, #0x70]
|
|
cmp r0, #0
|
|
beq _0224A338
|
|
bl sub_0202457C
|
|
_0224A338:
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224A32C
|
|
|
|
thumb_func_start ov02_0224A33C
|
|
ov02_0224A33C: ; 0x0224A33C
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x70
|
|
add r5, r0, #0
|
|
ldr r0, [sp, #0x84]
|
|
add r4, r1, #0
|
|
add r1, r2, #0
|
|
add r2, r3, #0
|
|
cmp r0, #4
|
|
bne _0224A384
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
mov r6, #0x67
|
|
ldr r3, [sp, #0x88]
|
|
str r0, [sp, #0xc]
|
|
lsl r6, r6, #2
|
|
str r3, [sp, #0x10]
|
|
ldr r3, [r5, r6]
|
|
str r3, [sp, #0x14]
|
|
add r3, r6, #4
|
|
ldr r3, [r5, r3]
|
|
add r6, #8
|
|
str r3, [sp, #0x18]
|
|
ldr r3, [r5, r6]
|
|
str r3, [sp, #0x1c]
|
|
str r0, [sp, #0x20]
|
|
str r0, [sp, #0x24]
|
|
str r0, [sp, #0x28]
|
|
ldr r3, [sp, #0x80]
|
|
add r0, sp, #0x4c
|
|
bl CreateSpriteResourcesHeader
|
|
b _0224A3BE
|
|
_0224A384:
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r3, #0
|
|
ldr r0, [sp, #0x88]
|
|
str r3, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0x67
|
|
lsl r0, r0, #2
|
|
ldr r6, [r5, r0]
|
|
str r6, [sp, #0x14]
|
|
add r6, r0, #4
|
|
ldr r6, [r5, r6]
|
|
str r6, [sp, #0x18]
|
|
add r6, r0, #0
|
|
add r6, #8
|
|
ldr r6, [r5, r6]
|
|
add r0, #0xc
|
|
str r6, [sp, #0x1c]
|
|
ldr r0, [r5, r0]
|
|
str r0, [sp, #0x20]
|
|
str r3, [sp, #0x24]
|
|
str r3, [sp, #0x28]
|
|
ldr r3, [sp, #0x80]
|
|
add r0, sp, #0x4c
|
|
bl CreateSpriteResourcesHeader
|
|
_0224A3BE:
|
|
ldr r0, [r5, #0x70]
|
|
add r2, sp, #0x34
|
|
str r0, [sp, #0x2c]
|
|
add r0, sp, #0x4c
|
|
str r0, [sp, #0x30]
|
|
ldmia r4!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r4]
|
|
str r0, [r2]
|
|
ldr r0, [sp, #0x8c]
|
|
str r0, [sp, #0x40]
|
|
mov r0, #1
|
|
str r0, [sp, #0x44]
|
|
mov r0, #4
|
|
str r0, [sp, #0x48]
|
|
add r0, sp, #0x2c
|
|
bl sub_02024714
|
|
add r4, r0, #0
|
|
bne _0224A3EA
|
|
bl GF_AssertFail
|
|
_0224A3EA:
|
|
add r0, r4, #0
|
|
add sp, #0x70
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov02_0224A33C
|
|
|
|
thumb_func_start ov02_0224A3F0
|
|
ov02_0224A3F0: ; 0x0224A3F0
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
mov r5, #1
|
|
add r4, r3, #0
|
|
str r5, [sp]
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
str r3, [sp, #8]
|
|
str r2, [sp, #0xc]
|
|
add r2, r5, #0
|
|
bl ov02_0224A33C
|
|
add r1, r4, #0
|
|
add r5, r0, #0
|
|
bl Set2dSpriteAnimSeqNo
|
|
add r0, r5, #0
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224A3F0
|
|
|
|
thumb_func_start ov02_0224A418
|
|
ov02_0224A418: ; 0x0224A418
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
ldrh r2, [r0, #0xe]
|
|
mov r3, #0
|
|
cmp r2, #0
|
|
beq _0224A426
|
|
mov r3, #1
|
|
_0224A426:
|
|
mov r2, #2
|
|
str r2, [sp]
|
|
mov r4, #1
|
|
str r4, [sp, #4]
|
|
mov r4, #0
|
|
str r4, [sp, #8]
|
|
mov r4, #0x83
|
|
str r4, [sp, #0xc]
|
|
bl ov02_0224A33C
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
add r0, r4, #0
|
|
mov r1, #6
|
|
bl Set2dSpriteAnimSeqNo
|
|
add r0, r4, #0
|
|
add sp, #0x10
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_0224A418
|
|
|
|
thumb_func_start ov02_0224A450
|
|
ov02_0224A450: ; 0x0224A450
|
|
push {r4, lr}
|
|
mov r1, #1
|
|
add r4, r0, #0
|
|
bl Set2dSpriteAnimActiveFlag
|
|
mov r1, #1
|
|
add r0, r4, #0
|
|
lsl r1, r1, #0xc
|
|
bl sub_02024868
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224A450
|
|
|
|
thumb_func_start ov02_0224A468
|
|
ov02_0224A468: ; 0x0224A468
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
add r4, r0, #0
|
|
add r0, sp, #0x1c
|
|
mov r7, #0
|
|
str r7, [r0]
|
|
str r7, [r0, #4]
|
|
add r6, r2, #0
|
|
ldr r5, _0224A4CC ; =ov02_02253390
|
|
add r3, r1, #0
|
|
str r7, [r0, #8]
|
|
ldmia r5!, {r0, r1}
|
|
add r2, sp, #0x10
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r5]
|
|
add r1, r3, #0
|
|
str r0, [r2]
|
|
str r7, [sp]
|
|
sub r0, r7, #1
|
|
str r0, [sp, #4]
|
|
str r7, [sp, #8]
|
|
add r0, r4, #0
|
|
add r2, r7, #0
|
|
add r3, r7, #0
|
|
str r6, [sp, #0xc]
|
|
bl ov02_0224A33C
|
|
add r4, r0, #0
|
|
mov r1, #2
|
|
bl sub_0202487C
|
|
add r0, r4, #0
|
|
add r1, sp, #0x1c
|
|
bl sub_020247E4
|
|
add r0, r4, #0
|
|
add r1, sp, #0x10
|
|
bl sub_020247F4
|
|
add r0, r7, #0
|
|
bl GF_DegreeToSinCosIdx
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
bl sub_02024818
|
|
add r0, r4, #0
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0224A4CC: .word ov02_02253390
|
|
thumb_func_end ov02_0224A468
|
|
|
|
thumb_func_start ov02_0224A4D0
|
|
ov02_0224A4D0: ; 0x0224A4D0
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
bl ov02_0224A074
|
|
add r6, r0, #0
|
|
mov r0, #0x6b
|
|
mov r5, #0
|
|
add r2, r4, #0
|
|
lsl r0, r0, #2
|
|
_0224A4E4:
|
|
ldr r1, [r2, r0]
|
|
cmp r1, #0
|
|
bne _0224A510
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
mov r0, #0x67
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r1, r6, #0
|
|
mov r2, #0xb
|
|
bl AddCharResObjFromOpenNarc
|
|
lsl r1, r5, #2
|
|
add r2, r4, r1
|
|
mov r1, #0x6b
|
|
lsl r1, r1, #2
|
|
str r0, [r2, r1]
|
|
b _0224A518
|
|
_0224A510:
|
|
add r5, r5, #1
|
|
add r2, r2, #4
|
|
cmp r5, #4
|
|
blt _0224A4E4
|
|
_0224A518:
|
|
cmp r5, #4
|
|
blt _0224A520
|
|
bl GF_AssertFail
|
|
_0224A520:
|
|
mov r0, #0x72
|
|
mov r5, #0
|
|
add r2, r4, #0
|
|
lsl r0, r0, #2
|
|
_0224A528:
|
|
ldr r1, [r2, r0]
|
|
cmp r1, #0
|
|
bne _0224A554
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
mov r0, #0x69
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r1, r6, #0
|
|
mov r2, #0xc
|
|
bl AddCellOrAnimResObjFromOpenNarc
|
|
lsl r1, r5, #2
|
|
add r2, r4, r1
|
|
mov r1, #0x72
|
|
lsl r1, r1, #2
|
|
str r0, [r2, r1]
|
|
b _0224A55C
|
|
_0224A554:
|
|
add r5, r5, #1
|
|
add r2, r2, #4
|
|
cmp r5, #4
|
|
blt _0224A528
|
|
_0224A55C:
|
|
cmp r5, #4
|
|
blt _0224A564
|
|
bl GF_AssertFail
|
|
_0224A564:
|
|
add r0, r6, #0
|
|
bl NARC_Delete
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224A4D0
|
|
|
|
thumb_func_start ov02_0224A570
|
|
ov02_0224A570: ; 0x0224A570
|
|
push {r3, r4, r5, lr}
|
|
add r5, r2, #0
|
|
mov r2, #4
|
|
bl NARC_AllocAndReadWholeMember
|
|
add r1, r5, #0
|
|
add r4, r0, #0
|
|
bl NNS_G2dGetUnpackedPaletteData
|
|
ldr r1, [r5]
|
|
mov r0, #3
|
|
ldr r1, [r1, #0xc]
|
|
mov r2, #0x20
|
|
lsl r3, r0, #7
|
|
bl BG_LoadPlttData
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_0224A570
|
|
|
|
thumb_func_start ov02_0224A598
|
|
ov02_0224A598: ; 0x0224A598
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r5, r0, #0
|
|
add r0, r1, #0
|
|
add r1, r2, #0
|
|
add r4, r3, #0
|
|
mov r2, #4
|
|
bl NARC_AllocAndReadWholeMember
|
|
add r1, r4, #0
|
|
add r6, r0, #0
|
|
bl NNS_G2dGetUnpackedCharacterData
|
|
ldr r3, [r4]
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r2, [r3, #0x14]
|
|
ldr r3, [r3, #0x10]
|
|
add r0, r5, #0
|
|
mov r1, #3
|
|
bl BG_LoadCharTilesData
|
|
add r0, r6, #0
|
|
bl FreeToHeap
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224A598
|
|
|
|
thumb_func_start ov02_0224A5D0
|
|
ov02_0224A5D0: ; 0x0224A5D0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r7, r2, #0
|
|
add r6, r1, #0
|
|
mov r2, #0
|
|
add r4, r3, #0
|
|
mov r1, #3
|
|
add r3, r2, #0
|
|
add r5, r0, #0
|
|
bl BgSetPosTextAndCommit
|
|
mov r1, #3
|
|
add r0, r5, #0
|
|
add r2, r1, #0
|
|
mov r3, #0
|
|
bl BgSetPosTextAndCommit
|
|
add r0, r6, #0
|
|
add r1, r7, #0
|
|
mov r2, #4
|
|
bl NARC_AllocAndReadWholeMember
|
|
add r1, r4, #0
|
|
add r6, r0, #0
|
|
bl NNS_G2dGetUnpackedScreenData
|
|
ldr r3, [r4]
|
|
add r0, r5, #0
|
|
add r2, r3, #0
|
|
ldr r3, [r3, #8]
|
|
mov r1, #3
|
|
add r2, #0xc
|
|
bl BG_LoadScreenTilemapData
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #0xc
|
|
mov r2, #0
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
mov r1, #3
|
|
add r3, r2, #0
|
|
bl BgTilemapRectChangePalette
|
|
add r0, r5, #0
|
|
mov r1, #3
|
|
bl BgCommitTilemapBufferToVram
|
|
add r0, r6, #0
|
|
bl FreeToHeap
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_0224A5D0
|
|
|
|
thumb_func_start ov02_0224A63C
|
|
ov02_0224A63C: ; 0x0224A63C
|
|
ldr r3, _0224A644 ; =BgClearTilemapBufferAndCommit
|
|
mov r1, #3
|
|
bx r3
|
|
nop
|
|
_0224A644: .word BgClearTilemapBufferAndCommit
|
|
thumb_func_end ov02_0224A63C
|
|
|
|
thumb_func_start ov02_0224A648
|
|
ov02_0224A648: ; 0x0224A648
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov02_0224A6A8
|
|
mov r0, #0
|
|
str r0, [r4, #0x2c]
|
|
add r0, r4, #0
|
|
bl ov02_0224A674
|
|
add r0, r4, #0
|
|
bl ov02_0224A67C
|
|
add r0, r4, #0
|
|
bl ov02_0224A66C
|
|
mov r0, #1
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_0224A648
|
|
|
|
thumb_func_start ov02_0224A66C
|
|
ov02_0224A66C: ; 0x0224A66C
|
|
mov r1, #1
|
|
str r1, [r0, #0x30]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224A66C
|
|
|
|
thumb_func_start ov02_0224A674
|
|
ov02_0224A674: ; 0x0224A674
|
|
mov r1, #0
|
|
str r1, [r0, #0x30]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224A674
|
|
|
|
thumb_func_start ov02_0224A67C
|
|
ov02_0224A67C: ; 0x0224A67C
|
|
mov r1, #0x18
|
|
str r1, [r0, #0x34]
|
|
mov r1, #0
|
|
str r1, [r0, #0x38]
|
|
mov r1, #0x17
|
|
str r1, [r0, #0x3c]
|
|
mov r1, #1
|
|
str r1, [r0, #0x40]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224A67C
|
|
|
|
thumb_func_start ov02_0224A690
|
|
ov02_0224A690: ; 0x0224A690
|
|
mov r1, #0x17
|
|
str r1, [r0, #0x3c]
|
|
mov r1, #1
|
|
str r1, [r0, #0x40]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224A690
|
|
|
|
thumb_func_start ov02_0224A69C
|
|
ov02_0224A69C: ; 0x0224A69C
|
|
str r1, [r0, #0x44]
|
|
str r3, [r0, #0x48]
|
|
ldr r1, [sp]
|
|
str r2, [r0, #0x4c]
|
|
str r1, [r0, #0x50]
|
|
bx lr
|
|
thumb_func_end ov02_0224A69C
|
|
|
|
thumb_func_start ov02_0224A6A8
|
|
ov02_0224A6A8: ; 0x0224A6A8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x89
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _0224A6BA
|
|
bl GF_AssertFail
|
|
_0224A6BA:
|
|
ldr r0, _0224A6CC ; =ov02_0224A700
|
|
add r1, r4, #0
|
|
mov r2, #0x81
|
|
bl sub_0200E33C
|
|
mov r1, #0x89
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0224A6CC: .word ov02_0224A700
|
|
thumb_func_end ov02_0224A6A8
|
|
|
|
thumb_func_start ov02_0224A6D0
|
|
ov02_0224A6D0: ; 0x0224A6D0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x89
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
bne _0224A6E2
|
|
bl GF_AssertFail
|
|
_0224A6E2:
|
|
mov r0, #0x89
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl DestroySysTask
|
|
mov r2, #1
|
|
lsl r2, r2, #0x1a
|
|
ldr r1, [r2]
|
|
ldr r0, _0224A6FC ; =0xFFFF1FFF
|
|
and r0, r1
|
|
str r0, [r2]
|
|
pop {r4, pc}
|
|
nop
|
|
_0224A6FC: .word 0xFFFF1FFF
|
|
thumb_func_end ov02_0224A6D0
|
|
|
|
thumb_func_start ov02_0224A700
|
|
ov02_0224A700: ; 0x0224A700
|
|
push {r3, r4, r5, r6}
|
|
ldr r0, [r1, #0x2c]
|
|
cmp r0, #0
|
|
beq _0224A796
|
|
mov r3, #1
|
|
lsl r3, r3, #0x1a
|
|
ldr r2, [r3]
|
|
ldr r0, _0224A79C ; =0xFFFF1FFF
|
|
and r2, r0
|
|
ldr r0, [r1, #0x30]
|
|
lsl r0, r0, #0xd
|
|
orr r0, r2
|
|
str r0, [r3]
|
|
add r3, #0x48
|
|
ldrh r2, [r3]
|
|
mov r0, #0x3f
|
|
bic r2, r0
|
|
ldr r0, [r1, #0x34]
|
|
orr r2, r0
|
|
ldr r0, [r1, #0x38]
|
|
cmp r0, #0
|
|
beq _0224A730
|
|
mov r0, #0x20
|
|
orr r2, r0
|
|
_0224A730:
|
|
ldr r0, _0224A7A0 ; =0x04000048
|
|
strh r2, [r0]
|
|
ldrh r2, [r0, #2]
|
|
mov r0, #0x3f
|
|
bic r2, r0
|
|
ldr r0, [r1, #0x3c]
|
|
orr r2, r0
|
|
ldr r0, [r1, #0x40]
|
|
cmp r0, #0
|
|
beq _0224A748
|
|
mov r0, #0x20
|
|
orr r2, r0
|
|
_0224A748:
|
|
ldr r5, _0224A7A4 ; =0x0400004A
|
|
strh r2, [r5]
|
|
ldr r2, [r1, #0x50]
|
|
ldr r6, [r1, #0x48]
|
|
asr r0, r2, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r2, r0
|
|
ldr r2, [r1, #0x4c]
|
|
asr r4, r0, #0xc
|
|
asr r0, r2, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r2, r0
|
|
ldr r2, [r1, #0x44]
|
|
asr r3, r0, #0xc
|
|
asr r0, r2, #0xb
|
|
lsr r0, r0, #0x14
|
|
asr r1, r6, #0xb
|
|
add r0, r2, r0
|
|
lsr r1, r1, #0x14
|
|
asr r0, r0, #0xc
|
|
add r1, r6, r1
|
|
lsl r2, r0, #8
|
|
mov r0, #0xff
|
|
asr r1, r1, #0xc
|
|
lsl r0, r0, #8
|
|
lsl r1, r1, #0x18
|
|
and r2, r0
|
|
lsr r1, r1, #0x18
|
|
orr r2, r1
|
|
add r1, r5, #0
|
|
sub r1, #0xa
|
|
strh r2, [r1]
|
|
lsl r1, r3, #8
|
|
and r1, r0
|
|
lsl r0, r4, #0x18
|
|
lsr r0, r0, #0x18
|
|
orr r1, r0
|
|
sub r0, r5, #6
|
|
strh r1, [r0]
|
|
_0224A796:
|
|
pop {r3, r4, r5, r6}
|
|
bx lr
|
|
nop
|
|
_0224A79C: .word 0xFFFF1FFF
|
|
_0224A7A0: .word 0x04000048
|
|
_0224A7A4: .word 0x0400004A
|
|
thumb_func_end ov02_0224A700
|
|
|
|
thumb_func_start ov02_0224A7A8
|
|
ov02_0224A7A8: ; 0x0224A7A8
|
|
ldr r3, _0224A7B4 ; =GetPokemonSpriteCharAndPlttNarcIds
|
|
add r2, r0, #0
|
|
add r0, r1, #0
|
|
ldr r1, [r2, #0x5c]
|
|
mov r2, #2
|
|
bx r3
|
|
.balign 4, 0
|
|
_0224A7B4: .word GetPokemonSpriteCharAndPlttNarcIds
|
|
thumb_func_end ov02_0224A7A8
|
|
|
|
thumb_func_start ov02_0224A7B8
|
|
ov02_0224A7B8: ; 0x0224A7B8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r5, r1, #0
|
|
mov r1, #0x32
|
|
add r6, r0, #0
|
|
mov r0, #4
|
|
lsl r1, r1, #6
|
|
add r7, r2, #0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
bne _0224A7D4
|
|
bl GF_AssertFail
|
|
_0224A7D4:
|
|
mov r1, #0
|
|
add r0, r6, #0
|
|
add r2, r1, #0
|
|
bl GetMonData
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
ldrh r0, [r5, #6]
|
|
add r2, r7, #0
|
|
add r3, r4, #0
|
|
str r0, [sp, #0xc]
|
|
ldrh r0, [r5]
|
|
ldrh r1, [r5, #2]
|
|
bl sub_02014540
|
|
add r0, r4, #0
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224A7B8
|
|
|
|
thumb_func_start ov02_0224A800
|
|
ov02_0224A800: ; 0x0224A800
|
|
add r3, r0, #0
|
|
add r2, r1, #0
|
|
ldrh r0, [r3]
|
|
ldrh r1, [r3, #4]
|
|
ldr r3, _0224A80C ; =sub_02014450
|
|
bx r3
|
|
.balign 4, 0
|
|
_0224A80C: .word sub_02014450
|
|
thumb_func_end ov02_0224A800
|
|
|
|
thumb_func_start ov02_0224A810
|
|
ov02_0224A810: ; 0x0224A810
|
|
push {lr}
|
|
sub sp, #0xc
|
|
mov r2, #3
|
|
str r2, [sp]
|
|
mov r2, #1
|
|
str r2, [sp, #4]
|
|
mov r2, #4
|
|
str r2, [sp, #8]
|
|
mov r2, #0x67
|
|
lsl r2, r2, #2
|
|
ldr r0, [r0, r2]
|
|
mov r2, #9
|
|
mov r3, #0
|
|
bl AddCharResObjFromOpenNarc
|
|
add sp, #0xc
|
|
pop {pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224A810
|
|
|
|
thumb_func_start ov02_0224A834
|
|
ov02_0224A834: ; 0x0224A834
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
mov r1, #0x67
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
mov r1, #3
|
|
bl Get2DGfxResObjById
|
|
bl sub_0200AF00
|
|
mov r1, #1
|
|
bl NNS_G2dGetImageLocation
|
|
mov r1, #0x32
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
lsl r1, r1, #6
|
|
bl DC_FlushRange
|
|
mov r2, #0x32
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
lsl r2, r2, #6
|
|
bl GX_LoadOBJ
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_0224A834
|
|
|
|
thumb_func_start ov02_0224A868
|
|
ov02_0224A868: ; 0x0224A868
|
|
push {r3, lr}
|
|
sub sp, #0x10
|
|
mov r2, #3
|
|
str r2, [sp]
|
|
mov r2, #1
|
|
str r2, [sp, #4]
|
|
str r2, [sp, #8]
|
|
mov r2, #4
|
|
str r2, [sp, #0xc]
|
|
mov r2, #0x1a
|
|
lsl r2, r2, #4
|
|
ldr r0, [r0, r2]
|
|
mov r2, #6
|
|
mov r3, #0
|
|
bl AddPlttResObjFromOpenNarc
|
|
add sp, #0x10
|
|
pop {r3, pc}
|
|
thumb_func_end ov02_0224A868
|
|
|
|
thumb_func_start ov02_0224A88C
|
|
ov02_0224A88C: ; 0x0224A88C
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x67
|
|
lsl r0, r0, #2
|
|
add r4, r1, #0
|
|
ldr r0, [r5, r0]
|
|
mov r1, #3
|
|
bl Get2DGfxResObjById
|
|
bl sub_0200AF00
|
|
add r6, r0, #0
|
|
mov r0, #0x1a
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #3
|
|
bl Get2DGfxResObjById
|
|
add r1, r6, #0
|
|
bl sub_0200B0F8
|
|
mov r1, #1
|
|
bl NNS_G2dGetImagePaletteLocation
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #0x20
|
|
bl DC_FlushRange
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
mov r2, #0x20
|
|
bl GX_LoadOBJPltt
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224A88C
|
|
|
|
thumb_func_start ov02_0224A8D4
|
|
ov02_0224A8D4: ; 0x0224A8D4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x67
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #3
|
|
bl Get2DGfxResObjById
|
|
add r4, r0, #0
|
|
bl sub_0200AEB0
|
|
mov r0, #0x67
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r4, #0
|
|
bl DestroySingle2DGfxResObj
|
|
mov r1, #0x6b
|
|
mov r0, #0
|
|
add r3, r5, #0
|
|
lsl r1, r1, #2
|
|
_0224A8FE:
|
|
ldr r2, [r3, r1]
|
|
cmp r2, r4
|
|
bne _0224A912
|
|
lsl r1, r0, #2
|
|
add r2, r5, r1
|
|
mov r1, #0x6b
|
|
mov r3, #0
|
|
lsl r1, r1, #2
|
|
str r3, [r2, r1]
|
|
b _0224A91A
|
|
_0224A912:
|
|
add r0, r0, #1
|
|
add r3, r3, #4
|
|
cmp r0, #4
|
|
blt _0224A8FE
|
|
_0224A91A:
|
|
cmp r0, #4
|
|
blt _0224A922
|
|
bl GF_AssertFail
|
|
_0224A922:
|
|
mov r0, #0x1a
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #3
|
|
bl Get2DGfxResObjById
|
|
add r4, r0, #0
|
|
bl sub_0200B0A8
|
|
mov r0, #0x1a
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
add r1, r4, #0
|
|
bl DestroySingle2DGfxResObj
|
|
mov r1, #0x6f
|
|
mov r0, #0
|
|
add r3, r5, #0
|
|
lsl r1, r1, #2
|
|
_0224A948:
|
|
ldr r2, [r3, r1]
|
|
cmp r2, r4
|
|
bne _0224A95C
|
|
lsl r1, r0, #2
|
|
add r2, r5, r1
|
|
mov r1, #0x6f
|
|
mov r3, #0
|
|
lsl r1, r1, #2
|
|
str r3, [r2, r1]
|
|
b _0224A964
|
|
_0224A95C:
|
|
add r0, r0, #1
|
|
add r3, r3, #4
|
|
cmp r0, #3
|
|
blt _0224A948
|
|
_0224A964:
|
|
cmp r0, #3
|
|
blt _0224A96C
|
|
bl GF_AssertFail
|
|
_0224A96C:
|
|
mov r0, #0x69
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #3
|
|
bl Get2DGfxResObjById
|
|
add r4, r0, #0
|
|
bl sub_0200A740
|
|
mov r0, #0x69
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r4, #0
|
|
bl DestroySingle2DGfxResObj
|
|
mov r1, #0x72
|
|
mov r0, #0
|
|
add r3, r5, #0
|
|
lsl r1, r1, #2
|
|
_0224A992:
|
|
ldr r2, [r3, r1]
|
|
cmp r2, r4
|
|
bne _0224A9A6
|
|
lsl r1, r0, #2
|
|
add r2, r5, r1
|
|
mov r1, #0x72
|
|
mov r3, #0
|
|
lsl r1, r1, #2
|
|
str r3, [r2, r1]
|
|
b _0224A9AE
|
|
_0224A9A6:
|
|
add r0, r0, #1
|
|
add r3, r3, #4
|
|
cmp r0, #4
|
|
blt _0224A992
|
|
_0224A9AE:
|
|
cmp r0, #4
|
|
blt _0224A9B6
|
|
bl GF_AssertFail
|
|
_0224A9B6:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_0224A8D4
|
|
|
|
thumb_func_start ov02_0224A9B8
|
|
ov02_0224A9B8: ; 0x0224A9B8
|
|
push {r3, lr}
|
|
sub sp, #0x10
|
|
mov r2, #3
|
|
str r2, [sp]
|
|
sub r3, r2, #4
|
|
str r3, [sp, #4]
|
|
mov r3, #0
|
|
str r3, [sp, #8]
|
|
mov r3, #0x81
|
|
str r3, [sp, #0xc]
|
|
add r3, r2, #0
|
|
bl ov02_0224A33C
|
|
add sp, #0x10
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224A9B8
|
|
|
|
thumb_func_start ov02_0224A9D8
|
|
ov02_0224A9D8: ; 0x0224A9D8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
add r5, r0, #0
|
|
mov r0, #2
|
|
ldr r4, _0224AA40 ; =ov02_022535E4
|
|
add r6, r1, #0
|
|
str r0, [r5, #0x14]
|
|
mov r7, #0
|
|
_0224A9E8:
|
|
ldr r0, [r4]
|
|
add r1, sp, #0x1c
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [r4, #4]
|
|
add r2, sp, #0x10
|
|
str r0, [sp, #0x20]
|
|
mov r0, #0
|
|
str r0, [sp, #0x24]
|
|
ldr r0, [r4, #8]
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0
|
|
str r0, [sp, #0x14]
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [r4, #0xc]
|
|
str r0, [sp, #8]
|
|
ldr r0, [r4, #0x10]
|
|
ldr r3, [sp, #8]
|
|
str r0, [sp]
|
|
str r0, [sp, #0xc]
|
|
str r6, [sp, #4]
|
|
add r0, r5, #0
|
|
bl ov02_0224AA44
|
|
mov r0, #1
|
|
ldr r1, [sp, #0x1c]
|
|
lsl r0, r0, #0x14
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [sp, #0xc]
|
|
ldr r3, [sp, #8]
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
add r1, sp, #0x1c
|
|
add r2, sp, #0x10
|
|
str r6, [sp, #4]
|
|
bl ov02_0224AA44
|
|
add r7, r7, #1
|
|
add r4, #0x14
|
|
cmp r7, #0xd
|
|
blt _0224A9E8
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0224AA40: .word ov02_022535E4
|
|
thumb_func_end ov02_0224A9D8
|
|
|
|
thumb_func_start ov02_0224AA44
|
|
ov02_0224AA44: ; 0x0224AA44
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x20
|
|
add r5, r0, #0
|
|
ldr r0, [sp, #0x34]
|
|
str r3, [sp, #8]
|
|
str r5, [sp, #0x10]
|
|
add r4, r1, #0
|
|
str r0, [sp, #0xc]
|
|
ldmia r2!, {r0, r1}
|
|
add r3, sp, #0x14
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r2]
|
|
ldr r1, _0224AA7C ; =ov02_02253468
|
|
str r0, [r3]
|
|
add r0, sp, #8
|
|
str r0, [sp]
|
|
mov r0, #0x85
|
|
str r0, [sp, #4]
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
ldr r3, [sp, #0x30]
|
|
add r2, r4, #0
|
|
bl sub_02068B0C
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0224AA7C: .word ov02_02253468
|
|
thumb_func_end ov02_0224AA44
|
|
|
|
thumb_func_start ov02_0224AA80
|
|
ov02_0224AA80: ; 0x0224AA80
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
bl sub_02068D98
|
|
add r2, r4, #0
|
|
add r3, r0, #0
|
|
add r2, #0xc
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
add r0, r5, #0
|
|
bl sub_02068D90
|
|
str r0, [r4, #4]
|
|
add r0, r5, #0
|
|
add r1, sp, #0
|
|
bl sub_02068DB8
|
|
ldr r0, [r4, #0x14]
|
|
ldr r2, [r4, #0xc]
|
|
ldr r3, [r4, #4]
|
|
add r1, sp, #0
|
|
bl ov02_0224A3F0
|
|
mov r1, #0
|
|
str r0, [r4, #8]
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #1
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
thumb_func_end ov02_0224AA80
|
|
|
|
thumb_func_start ov02_0224AAC8
|
|
ov02_0224AAC8: ; 0x0224AAC8
|
|
ldr r3, _0224AAD0 ; =Sprite_Delete
|
|
ldr r0, [r1, #8]
|
|
bx r3
|
|
nop
|
|
_0224AAD0: .word Sprite_Delete
|
|
thumb_func_end ov02_0224AAC8
|
|
|
|
thumb_func_start ov02_0224AAD4
|
|
ov02_0224AAD4: ; 0x0224AAD4
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
add r4, r1, #0
|
|
add r1, sp, #0
|
|
add r5, r0, #0
|
|
bl sub_02068DB8
|
|
ldr r1, [sp]
|
|
ldr r0, [r4, #0x18]
|
|
add r0, r1, r0
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0xb
|
|
str r0, [sp]
|
|
sub r1, r1, r2
|
|
mov r0, #0xb
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
add r1, sp, #0
|
|
bl sub_02068DA8
|
|
ldr r0, [r4, #8]
|
|
add r1, sp, #0
|
|
bl sub_020247D4
|
|
ldr r0, [r4, #0x10]
|
|
cmp r0, #1
|
|
bne _0224AB4E
|
|
ldr r3, [r4, #0x14]
|
|
ldr r0, [r3, #0x14]
|
|
cmp r0, #2
|
|
bne _0224AB42
|
|
ldr r2, [r3, #0x4c]
|
|
ldr r0, [r3, #0x50]
|
|
mov r3, #2
|
|
ldr r6, [sp, #4]
|
|
lsl r3, r3, #0xc
|
|
sub r5, r6, r3
|
|
mov r1, #0
|
|
cmp r5, r2
|
|
blt _0224AB38
|
|
cmp r5, r0
|
|
bgt _0224AB38
|
|
add r3, r6, r3
|
|
cmp r3, r2
|
|
blt _0224AB38
|
|
cmp r3, r0
|
|
bgt _0224AB38
|
|
mov r1, #1
|
|
_0224AB38:
|
|
ldr r0, [r4, #8]
|
|
bl Set2dSpriteVisibleFlag
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0224AB42:
|
|
cmp r0, #1
|
|
bne _0224AB4E
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
_0224AB4E:
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224AAD4
|
|
|
|
thumb_func_start ov02_0224AB54
|
|
ov02_0224AB54: ; 0x0224AB54
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224AB54
|
|
|
|
thumb_func_start ov02_0224AB58
|
|
ov02_0224AB58: ; 0x0224AB58
|
|
push {r4, lr}
|
|
sub sp, #0x18
|
|
add r2, sp, #0xc
|
|
mov r3, #0
|
|
add r4, r0, #0
|
|
str r3, [r2]
|
|
str r3, [r2, #4]
|
|
str r3, [r2, #8]
|
|
str r4, [sp, #8]
|
|
add r0, sp, #8
|
|
str r0, [sp]
|
|
mov r0, #0x82
|
|
str r0, [sp, #4]
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r1, _0224AB88 ; =ov02_0225347C
|
|
bl sub_02068B0C
|
|
mov r1, #0x7b
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
add sp, #0x18
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0224AB88: .word ov02_0225347C
|
|
thumb_func_end ov02_0224AB58
|
|
|
|
thumb_func_start ov02_0224AB8C
|
|
ov02_0224AB8C: ; 0x0224AB8C
|
|
push {r3, lr}
|
|
mov r1, #0x7b
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
bl sub_02068D74
|
|
ldrb r0, [r0, #2]
|
|
pop {r3, pc}
|
|
thumb_func_end ov02_0224AB8C
|
|
|
|
thumb_func_start ov02_0224AB9C
|
|
ov02_0224AB9C: ; 0x0224AB9C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl sub_02068D74
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x60]
|
|
cmp r0, #0
|
|
beq _0224ABB6
|
|
bl sub_02068B48
|
|
_0224ABB6:
|
|
ldr r0, [r5, #0x64]
|
|
cmp r0, #0
|
|
beq _0224ABC0
|
|
bl ov01_021FCD78
|
|
_0224ABC0:
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl sub_02068B48
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_0224AB9C
|
|
|
|
thumb_func_start ov02_0224ABCC
|
|
ov02_0224ABCC: ; 0x0224ABCC
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl sub_02068D98
|
|
ldr r0, [r0]
|
|
add r1, sp, #0
|
|
str r0, [r4, #0x5c]
|
|
add r0, r5, #0
|
|
bl sub_02068DB8
|
|
mov r2, #0
|
|
ldr r0, [r4, #0x5c]
|
|
add r1, sp, #0
|
|
add r3, r2, #0
|
|
bl ov02_0224A468
|
|
str r0, [r4, #0x58]
|
|
mov r0, #1
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
thumb_func_end ov02_0224ABCC
|
|
|
|
thumb_func_start ov02_0224ABF8
|
|
ov02_0224ABF8: ; 0x0224ABF8
|
|
ldr r3, _0224AC00 ; =Sprite_Delete
|
|
ldr r0, [r1, #0x58]
|
|
bx r3
|
|
nop
|
|
_0224AC00: .word Sprite_Delete
|
|
thumb_func_end ov02_0224ABF8
|
|
|
|
thumb_func_start ov02_0224AC04
|
|
ov02_0224AC04: ; 0x0224AC04
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldrb r0, [r5]
|
|
lsl r1, r0, #2
|
|
ldr r0, _0224AC20 ; =ov02_022533C0
|
|
ldr r4, [r0, r1]
|
|
_0224AC10:
|
|
ldrb r1, [r5, #1]
|
|
add r0, r5, #0
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
blx r1
|
|
cmp r0, #1
|
|
beq _0224AC10
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0224AC20: .word ov02_022533C0
|
|
thumb_func_end ov02_0224AC04
|
|
|
|
thumb_func_start ov02_0224AC24
|
|
ov02_0224AC24: ; 0x0224AC24
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224AC24
|
|
|
|
thumb_func_start ov02_0224AC28
|
|
ov02_0224AC28: ; 0x0224AC28
|
|
push {r3, lr}
|
|
mov r1, #0
|
|
strb r1, [r0, #2]
|
|
ldr r0, [r0, #0x58]
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
thumb_func_end ov02_0224AC28
|
|
|
|
thumb_func_start ov02_0224AC38
|
|
ov02_0224AC38: ; 0x0224AC38
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x18
|
|
ldr r4, _0224ACD8 ; =ov02_022533E4
|
|
add r2, r0, #0
|
|
ldmia r4!, {r0, r1}
|
|
add r3, sp, #0xc
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r4]
|
|
ldr r4, _0224ACDC ; =ov02_022533F0
|
|
str r0, [r3]
|
|
ldmia r4!, {r0, r1}
|
|
add r3, sp, #0
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r4]
|
|
str r0, [r3]
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r2, r0]
|
|
bl sub_02068D74
|
|
add r4, r0, #0
|
|
mov r3, #1
|
|
add r5, r4, #0
|
|
strb r3, [r4]
|
|
mov r2, #0
|
|
strb r2, [r4, #1]
|
|
strb r2, [r4, #2]
|
|
add r6, sp, #0xc
|
|
ldmia r6!, {r0, r1}
|
|
add r5, #8
|
|
stmia r5!, {r0, r1}
|
|
ldr r0, [r6]
|
|
add r6, sp, #0
|
|
str r0, [r5]
|
|
str r2, [r4, #0x14]
|
|
str r2, [r4, #0x18]
|
|
mov r0, #0xf
|
|
add r5, r4, #0
|
|
str r2, [r4, #0x1c]
|
|
lsl r0, r0, #0xe
|
|
str r0, [r4, #0x38]
|
|
ldmia r6!, {r0, r1}
|
|
add r5, #0x2c
|
|
stmia r5!, {r0, r1}
|
|
ldr r0, [r6]
|
|
add r1, sp, #0xc
|
|
str r0, [r5]
|
|
lsl r0, r3, #9
|
|
str r0, [r4, #0x50]
|
|
mov r0, #0x2d
|
|
lsl r0, r0, #0xe
|
|
str r0, [r4, #0x40]
|
|
str r2, [r4, #0x48]
|
|
lsl r0, r3, #0xd
|
|
str r0, [r4, #0x4c]
|
|
ldr r0, [r4, #0x58]
|
|
bl sub_020247D4
|
|
ldr r0, [r4, #0x58]
|
|
add r1, sp, #0
|
|
bl sub_020247F4
|
|
ldr r1, [r4, #0x38]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r0, r0, #4
|
|
lsr r0, r0, #0x10
|
|
bl GF_DegreeToSinCosIdx
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #0x58]
|
|
bl sub_02024818
|
|
ldr r0, [r4, #0x58]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
add sp, #0x18
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0224ACD8: .word ov02_022533E4
|
|
_0224ACDC: .word ov02_022533F0
|
|
thumb_func_end ov02_0224AC38
|
|
|
|
thumb_func_start ov02_0224ACE0
|
|
ov02_0224ACE0: ; 0x0224ACE0
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
ldr r1, [r5, #0x48]
|
|
ldr r0, [r5, #0x4c]
|
|
ldr r4, [r5, #0x58]
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x48]
|
|
mov r0, #1
|
|
ldr r1, [r5, #0x4c]
|
|
lsl r0, r0, #0x10
|
|
cmp r1, r0
|
|
bge _0224AD00
|
|
lsr r0, r0, #2
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x4c]
|
|
_0224AD00:
|
|
ldr r0, _0224ADE0 ; =0x0000013B
|
|
bl GF_CosDeg
|
|
ldr r2, [r5, #0x48]
|
|
asr r1, r2, #0xb
|
|
lsr r1, r1, #0x14
|
|
add r1, r2, r1
|
|
asr r1, r1, #0xc
|
|
mul r0, r1
|
|
str r0, [r5, #0x14]
|
|
ldr r1, [r5, #0x40]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r0, r0, #4
|
|
lsr r0, r0, #0x10
|
|
bl GF_SinDeg
|
|
ldr r2, [r5, #0x48]
|
|
asr r1, r2, #0xb
|
|
lsr r1, r1, #0x14
|
|
add r1, r2, r1
|
|
asr r1, r1, #0xc
|
|
mul r0, r1
|
|
str r0, [r5, #0x18]
|
|
ldr r1, [r5, #0x40]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
asr r2, r0, #0xc
|
|
ldr r0, _0224ADE4 ; =0x0000010E
|
|
cmp r2, r0
|
|
bge _0224AD4A
|
|
mov r0, #1
|
|
lsl r0, r0, #0xe
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x40]
|
|
_0224AD4A:
|
|
ldr r1, [r5, #0x2c]
|
|
ldr r0, [r5, #0x50]
|
|
add r1, r1, r0
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
str r1, [r5, #0x2c]
|
|
cmp r1, r0
|
|
ble _0224AD5C
|
|
str r0, [r5, #0x2c]
|
|
_0224AD5C:
|
|
ldr r1, [r5, #0x30]
|
|
ldr r0, [r5, #0x50]
|
|
add r1, r1, r0
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
str r1, [r5, #0x30]
|
|
cmp r1, r0
|
|
ble _0224AD6E
|
|
str r0, [r5, #0x30]
|
|
_0224AD6E:
|
|
add r1, r5, #0
|
|
add r0, r4, #0
|
|
add r1, #0x2c
|
|
bl sub_020247F4
|
|
mov r0, #6
|
|
ldr r1, [r5, #0x38]
|
|
lsl r0, r0, #0xc
|
|
sub r1, r1, r0
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
str r1, [r5, #0x38]
|
|
asr r0, r0, #0xc
|
|
bpl _0224AD90
|
|
mov r0, #0
|
|
str r0, [r5, #0x38]
|
|
_0224AD90:
|
|
ldr r1, [r5, #0x38]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r0, r0, #4
|
|
lsr r0, r0, #0x10
|
|
bl GF_DegreeToSinCosIdx
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
bl sub_02024818
|
|
ldr r1, [r5, #8]
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r1, r0
|
|
str r0, [sp]
|
|
ldr r1, [r5, #0xc]
|
|
ldr r0, [r5, #0x18]
|
|
add r0, r1, r0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r1, sp, #0
|
|
bl sub_020247D4
|
|
ldr r1, [sp, #4]
|
|
ldr r0, _0224ADE8 ; =0xFFFC0000
|
|
cmp r1, r0
|
|
bge _0224ADDA
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #2
|
|
strb r0, [r5, #2]
|
|
ldrb r0, [r5, #1]
|
|
add r0, r0, #1
|
|
strb r0, [r5, #1]
|
|
_0224ADDA:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
_0224ADE0: .word 0x0000013B
|
|
_0224ADE4: .word 0x0000010E
|
|
_0224ADE8: .word 0xFFFC0000
|
|
thumb_func_end ov02_0224ACE0
|
|
|
|
thumb_func_start ov02_0224ADEC
|
|
ov02_0224ADEC: ; 0x0224ADEC
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end ov02_0224ADEC
|
|
|
|
thumb_func_start ov02_0224ADF0
|
|
ov02_0224ADF0: ; 0x0224ADF0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x30
|
|
ldr r3, _0224AF5C ; =ov02_02253354
|
|
add r5, r0, #0
|
|
ldmia r3!, {r0, r1}
|
|
add r2, sp, #0x24
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
ldr r3, _0224AF60 ; =ov02_0225336C
|
|
str r0, [r2]
|
|
ldmia r3!, {r0, r1}
|
|
add r2, sp, #0x18
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl sub_02068D74
|
|
add r4, r0, #0
|
|
mov r0, #2
|
|
strb r0, [r4]
|
|
mov r6, #0
|
|
mov r0, #0xbb
|
|
strb r6, [r4, #1]
|
|
mov r7, #1
|
|
strb r7, [r4, #2]
|
|
str r6, [r4, #4]
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5, r0]
|
|
ldr r2, [sp, #0x24]
|
|
add r0, #8
|
|
add r1, r2, r1
|
|
str r1, [sp, #0x24]
|
|
add r2, r4, #0
|
|
ldr r1, [sp, #0x28]
|
|
ldr r0, [r5, r0]
|
|
add r3, sp, #0x24
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x28]
|
|
ldmia r3!, {r0, r1}
|
|
add r2, #8
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
add r3, sp, #0x18
|
|
str r0, [r2]
|
|
str r6, [r4, #0x14]
|
|
str r6, [r4, #0x18]
|
|
str r6, [r4, #0x1c]
|
|
ldr r6, _0224AF64 ; =0x0013B000
|
|
add r2, r4, #0
|
|
str r6, [r4, #0x38]
|
|
ldmia r3!, {r0, r1}
|
|
add r2, #0x2c
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
add r0, r7, #0
|
|
add r0, #0xff
|
|
str r0, [r4, #0x50]
|
|
mov r0, #0xe1
|
|
lsl r0, r0, #0xc
|
|
str r0, [r4, #0x40]
|
|
mov r0, #3
|
|
lsl r0, r0, #0x12
|
|
str r0, [r4, #0x48]
|
|
lsl r0, r7, #0x11
|
|
str r0, [r4, #0x4c]
|
|
lsr r0, r6, #0xc
|
|
bl GF_CosDeg
|
|
ldr r2, [r4, #0x48]
|
|
asr r1, r2, #0xb
|
|
lsr r1, r1, #0x14
|
|
add r1, r2, r1
|
|
asr r1, r1, #0xc
|
|
mul r0, r1
|
|
str r0, [r4, #0x14]
|
|
ldr r1, [r4, #0x40]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r0, r0, #4
|
|
lsr r0, r0, #0x10
|
|
bl GF_SinDeg
|
|
ldr r2, [r4, #0x48]
|
|
asr r1, r2, #0xb
|
|
lsr r1, r1, #0x14
|
|
add r1, r2, r1
|
|
asr r1, r1, #0xc
|
|
mul r0, r1
|
|
str r0, [r4, #0x18]
|
|
ldr r1, [r4, #8]
|
|
ldr r0, [r4, #0x14]
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x24]
|
|
ldr r1, [r4, #0xc]
|
|
ldr r0, [r4, #0x18]
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x28]
|
|
ldr r0, [r4, #0x58]
|
|
add r1, sp, #0x24
|
|
bl sub_020247D4
|
|
ldr r0, [r4, #0x58]
|
|
add r1, sp, #0x18
|
|
bl sub_020247F4
|
|
ldr r1, [r4, #0x38]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r0, r0, #4
|
|
lsr r0, r0, #0x10
|
|
bl GF_DegreeToSinCosIdx
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #0x58]
|
|
bl sub_02024818
|
|
ldr r0, [r4, #0x58]
|
|
add r1, r7, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r1, #0x1e
|
|
lsl r1, r1, #4
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
bl ov02_0224B298
|
|
str r0, [r4, #0x60]
|
|
add r0, r7, #0
|
|
str r0, [r5, #0x1c]
|
|
ldr r0, [r5, #0x60]
|
|
mov r1, #4
|
|
bl ov01_021FCD2C
|
|
ldr r2, _0224AF68 ; =0xFFF88000
|
|
add r1, r7, #0
|
|
mov r3, #0xc
|
|
str r0, [r4, #0x64]
|
|
bl ov01_021FCD8C
|
|
add r1, sp, #0xc
|
|
mov r0, #0
|
|
str r0, [r1]
|
|
str r0, [r1, #4]
|
|
ldr r3, _0224AF6C ; =ov02_02253378
|
|
str r0, [r1, #8]
|
|
ldmia r3!, {r0, r1}
|
|
add r2, sp, #0
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
mov r0, #0x79
|
|
ldr r1, [r4, #0x5c]
|
|
lsl r0, r0, #2
|
|
ldr r4, [r1, r0]
|
|
mov r1, #2
|
|
add r0, r4, #0
|
|
bl sub_0202487C
|
|
add r0, r4, #0
|
|
add r1, sp, #0xc
|
|
bl sub_020247E4
|
|
add r0, r4, #0
|
|
add r1, sp, #0
|
|
bl sub_020247F4
|
|
mov r0, #0
|
|
bl GF_DegreeToSinCosIdx
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
bl sub_02024818
|
|
add sp, #0x30
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0224AF5C: .word ov02_02253354
|
|
_0224AF60: .word ov02_0225336C
|
|
_0224AF64: .word 0x0013B000
|
|
_0224AF68: .word 0xFFF88000
|
|
_0224AF6C: .word ov02_02253378
|
|
thumb_func_end ov02_0224ADF0
|
|
|
|
thumb_func_start ov02_0224AF70
|
|
ov02_0224AF70: ; 0x0224AF70
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x18
|
|
add r5, r0, #0
|
|
ldr r1, [r5, #0x48]
|
|
ldr r0, [r5, #0x4c]
|
|
ldr r4, [r5, #0x58]
|
|
sub r0, r1, r0
|
|
str r0, [r5, #0x48]
|
|
bpl _0224AF86
|
|
mov r0, #0
|
|
str r0, [r5, #0x48]
|
|
_0224AF86:
|
|
mov r0, #2
|
|
ldr r1, [r5, #0x4c]
|
|
lsl r0, r0, #0xa
|
|
cmp r1, r0
|
|
ble _0224AF98
|
|
mov r0, #6
|
|
lsl r0, r0, #0xa
|
|
sub r0, r1, r0
|
|
str r0, [r5, #0x4c]
|
|
_0224AF98:
|
|
mov r0, #1
|
|
ldr r1, [r5, #0x4c]
|
|
lsl r0, r0, #0xc
|
|
cmp r1, r0
|
|
bge _0224AFA4
|
|
str r0, [r5, #0x4c]
|
|
_0224AFA4:
|
|
ldr r0, _0224B0D8 ; =0x0000013B
|
|
bl GF_CosDeg
|
|
ldr r2, [r5, #0x48]
|
|
asr r1, r2, #0xb
|
|
lsr r1, r1, #0x14
|
|
add r1, r2, r1
|
|
asr r1, r1, #0xc
|
|
mul r0, r1
|
|
str r0, [r5, #0x14]
|
|
ldr r1, [r5, #0x40]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r0, r0, #4
|
|
lsr r0, r0, #0x10
|
|
bl GF_SinDeg
|
|
ldr r2, [r5, #0x48]
|
|
asr r1, r2, #0xb
|
|
lsr r1, r1, #0x14
|
|
add r1, r2, r1
|
|
asr r1, r1, #0xc
|
|
mul r0, r1
|
|
str r0, [r5, #0x18]
|
|
ldr r1, [r5, #0x40]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
asr r2, r0, #0xc
|
|
ldr r0, _0224B0DC ; =0x0000010E
|
|
cmp r2, r0
|
|
bge _0224AFEE
|
|
mov r0, #1
|
|
lsl r0, r0, #0xe
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x40]
|
|
_0224AFEE:
|
|
ldr r1, [r5, #0x2c]
|
|
ldr r0, [r5, #0x50]
|
|
add r1, r1, r0
|
|
mov r0, #6
|
|
lsl r0, r0, #0xa
|
|
str r1, [r5, #0x2c]
|
|
cmp r1, r0
|
|
ble _0224B000
|
|
str r0, [r5, #0x2c]
|
|
_0224B000:
|
|
ldr r1, [r5, #0x30]
|
|
ldr r0, [r5, #0x50]
|
|
add r1, r1, r0
|
|
mov r0, #6
|
|
lsl r0, r0, #0xa
|
|
str r1, [r5, #0x30]
|
|
cmp r1, r0
|
|
ble _0224B012
|
|
str r0, [r5, #0x30]
|
|
_0224B012:
|
|
add r1, r5, #0
|
|
add r0, r4, #0
|
|
add r1, #0x2c
|
|
bl sub_020247F4
|
|
mov r0, #2
|
|
ldr r1, [r5, #0x38]
|
|
lsl r0, r0, #0xe
|
|
add r1, r1, r0
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
str r1, [r5, #0x38]
|
|
asr r1, r0, #0xc
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #2
|
|
cmp r1, r0
|
|
ble _0224B03A
|
|
lsl r0, r0, #0xc
|
|
str r0, [r5, #0x38]
|
|
_0224B03A:
|
|
ldr r1, [r5, #0x38]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r0, r0, #4
|
|
lsr r0, r0, #0x10
|
|
bl GF_DegreeToSinCosIdx
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
bl sub_02024818
|
|
ldr r1, [r5, #8]
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r1, r0
|
|
str r0, [sp, #0xc]
|
|
ldr r1, [r5, #0xc]
|
|
ldr r0, [r5, #0x18]
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x10]
|
|
add r0, r4, #0
|
|
add r1, sp, #0xc
|
|
bl sub_020247D4
|
|
ldr r0, [r5, #0x48]
|
|
cmp r0, #0
|
|
bne _0224B07C
|
|
mov r0, #0
|
|
str r0, [r5, #4]
|
|
ldrb r0, [r5, #1]
|
|
add r0, r0, #1
|
|
strb r0, [r5, #1]
|
|
b _0224B082
|
|
_0224B07C:
|
|
ldr r0, [r5, #4]
|
|
add r0, r0, #1
|
|
str r0, [r5, #4]
|
|
_0224B082:
|
|
ldr r0, [r5, #4]
|
|
cmp r0, #0xc
|
|
bne _0224B08E
|
|
ldr r0, [r5, #0x60]
|
|
bl ov02_0224B2CC
|
|
_0224B08E:
|
|
mov r0, #0x79
|
|
ldr r1, [r5, #0x5c]
|
|
lsl r0, r0, #2
|
|
ldr r4, [r1, r0]
|
|
add r0, r4, #0
|
|
bl sub_020248B0
|
|
add r3, r0, #0
|
|
ldmia r3!, {r0, r1}
|
|
add r2, sp, #0
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
ldr r1, [sp]
|
|
mov r0, #5
|
|
add r1, #0x80
|
|
lsl r0, r0, #0xa
|
|
str r1, [sp]
|
|
cmp r1, r0
|
|
ble _0224B0B8
|
|
str r0, [sp]
|
|
_0224B0B8:
|
|
ldr r1, [sp, #4]
|
|
mov r0, #5
|
|
add r1, #0x80
|
|
lsl r0, r0, #0xa
|
|
str r1, [sp, #4]
|
|
cmp r1, r0
|
|
ble _0224B0C8
|
|
str r0, [sp, #4]
|
|
_0224B0C8:
|
|
add r0, r4, #0
|
|
add r1, sp, #0
|
|
bl sub_020247F4
|
|
mov r0, #0
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0224B0D8: .word 0x0000013B
|
|
_0224B0DC: .word 0x0000010E
|
|
thumb_func_end ov02_0224AF70
|
|
|
|
thumb_func_start ov02_0224B0E0
|
|
ov02_0224B0E0: ; 0x0224B0E0
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x79
|
|
ldr r1, [r4, #0x5c]
|
|
lsl r0, r0, #2
|
|
ldr r5, [r1, r0]
|
|
mov r1, #3
|
|
add r0, r5, #0
|
|
bl Set2dSpriteAnimSeqNo
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #0x5c]
|
|
mov r1, #1
|
|
bl ov02_0224B6B0
|
|
mov r0, #0x82
|
|
ldr r1, [r4, #0x5c]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
bl sub_0205F484
|
|
add r0, r5, #0
|
|
bl sub_020248AC
|
|
ldr r5, [r0, #4]
|
|
ldr r0, [r4, #0x58]
|
|
bl sub_020248AC
|
|
ldr r0, [r0, #4]
|
|
sub r0, r5, r0
|
|
str r0, [r4, #0x54]
|
|
ldr r0, [r4, #0x60]
|
|
bl ov02_0224B2C0
|
|
ldr r0, [r4, #0x64]
|
|
mov r1, #2
|
|
mov r2, #0
|
|
mov r3, #0xc
|
|
bl ov01_021FCD8C
|
|
mov r1, #1
|
|
lsl r1, r1, #8
|
|
str r1, [r4, #0x50]
|
|
lsl r0, r1, #0xb
|
|
str r0, [r4, #0x40]
|
|
mov r0, #0
|
|
str r0, [r4, #0x48]
|
|
lsl r0, r1, #3
|
|
str r0, [r4, #0x4c]
|
|
mov r0, #3
|
|
strb r0, [r4, #2]
|
|
ldrb r0, [r4, #1]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #1]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224B0E0
|
|
|
|
thumb_func_start ov02_0224B158
|
|
ov02_0224B158: ; 0x0224B158
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x24
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #0x48]
|
|
ldr r0, [r4, #0x4c]
|
|
ldr r6, [r4, #0x58]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x48]
|
|
mov r0, #1
|
|
ldr r1, [r4, #0x4c]
|
|
lsl r0, r0, #0xc
|
|
add r2, r1, r0
|
|
lsl r1, r0, #4
|
|
str r2, [r4, #0x4c]
|
|
cmp r2, r1
|
|
ble _0224B17C
|
|
lsl r0, r0, #4
|
|
str r0, [r4, #0x4c]
|
|
_0224B17C:
|
|
ldr r1, [r4, #0x40]
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
lsl r0, r0, #4
|
|
lsr r0, r0, #0x10
|
|
bl GF_CosDeg
|
|
ldr r2, [r4, #0x48]
|
|
asr r1, r2, #0xb
|
|
lsr r1, r1, #0x14
|
|
add r1, r2, r1
|
|
asr r1, r1, #0xc
|
|
mul r0, r1
|
|
str r0, [r4, #0x14]
|
|
mov r0, #0x80
|
|
bl GF_SinDeg
|
|
ldr r2, [r4, #0x48]
|
|
asr r1, r2, #0xb
|
|
lsr r1, r1, #0x14
|
|
add r1, r2, r1
|
|
asr r1, r1, #0xc
|
|
mul r0, r1
|
|
str r0, [r4, #0x18]
|
|
mov r0, #0x87
|
|
ldr r1, [r4, #0x40]
|
|
lsl r0, r0, #0xc
|
|
cmp r1, r0
|
|
bge _0224B1C0
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x40]
|
|
_0224B1C0:
|
|
ldr r1, [r4, #0x2c]
|
|
ldr r0, [r4, #0x50]
|
|
add r1, r1, r0
|
|
mov r0, #2
|
|
lsl r0, r0, #0xc
|
|
str r1, [r4, #0x2c]
|
|
cmp r1, r0
|
|
ble _0224B1D2
|
|
str r0, [r4, #0x2c]
|
|
_0224B1D2:
|
|
ldr r1, [r4, #0x30]
|
|
ldr r0, [r4, #0x50]
|
|
add r1, r1, r0
|
|
mov r0, #2
|
|
lsl r0, r0, #0xc
|
|
str r1, [r4, #0x30]
|
|
cmp r1, r0
|
|
ble _0224B1E4
|
|
str r0, [r4, #0x30]
|
|
_0224B1E4:
|
|
ldr r1, [r4, #8]
|
|
ldr r0, [r4, #0x14]
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x18]
|
|
ldr r1, [r4, #0xc]
|
|
ldr r0, [r4, #0x18]
|
|
add r1, r1, r0
|
|
asr r0, r1, #0xb
|
|
lsr r0, r0, #0x14
|
|
add r0, r1, r0
|
|
asr r0, r0, #0xc
|
|
str r1, [sp, #0x1c]
|
|
cmp r0, #0xe6
|
|
blt _0224B20A
|
|
mov r0, #2
|
|
strb r0, [r4, #2]
|
|
ldrb r0, [r4, #1]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #1]
|
|
_0224B20A:
|
|
mov r0, #0x79
|
|
ldr r1, [r4, #0x5c]
|
|
lsl r0, r0, #2
|
|
ldr r7, [r1, r0]
|
|
add r0, r7, #0
|
|
bl sub_020248B0
|
|
add r2, sp, #0xc
|
|
add r3, sp, #0x18
|
|
add r5, r0, #0
|
|
ldmia r3!, {r0, r1}
|
|
mov ip, r2
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
ldmia r5!, {r0, r1}
|
|
add r2, sp, #0
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r5]
|
|
str r0, [r2]
|
|
mov r0, #1
|
|
ldr r1, [r4, #0x54]
|
|
lsl r0, r0, #0xc
|
|
sub r1, r1, r0
|
|
str r1, [r4, #0x54]
|
|
ldr r0, [sp, #0x10]
|
|
add r0, r0, r1
|
|
str r0, [sp, #0x10]
|
|
add r0, r7, #0
|
|
mov r1, ip
|
|
bl sub_020247D4
|
|
mov r0, #1
|
|
ldr r1, [sp]
|
|
lsl r0, r0, #8
|
|
add r2, r1, r0
|
|
lsl r1, r0, #5
|
|
str r2, [sp]
|
|
cmp r2, r1
|
|
ble _0224B25E
|
|
lsl r0, r0, #5
|
|
str r0, [sp]
|
|
_0224B25E:
|
|
mov r0, #1
|
|
ldr r1, [sp, #4]
|
|
lsl r0, r0, #8
|
|
add r2, r1, r0
|
|
lsl r1, r0, #5
|
|
str r2, [sp, #4]
|
|
cmp r2, r1
|
|
ble _0224B272
|
|
lsl r0, r0, #5
|
|
str r0, [sp, #4]
|
|
_0224B272:
|
|
add r0, r7, #0
|
|
add r1, sp, #0
|
|
bl sub_020247F4
|
|
add r4, #0x2c
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
bl sub_020247F4
|
|
add r0, r6, #0
|
|
add r1, sp, #0x18
|
|
bl sub_020247D4
|
|
mov r0, #0
|
|
add sp, #0x24
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224B158
|
|
|
|
thumb_func_start ov02_0224B294
|
|
ov02_0224B294: ; 0x0224B294
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end ov02_0224B294
|
|
|
|
thumb_func_start ov02_0224B298
|
|
ov02_0224B298: ; 0x0224B298
|
|
push {lr}
|
|
sub sp, #0x1c
|
|
add r2, sp, #0x10
|
|
mov r3, #0
|
|
str r3, [r2]
|
|
str r3, [r2, #4]
|
|
str r1, [sp, #0xc]
|
|
str r3, [r2, #8]
|
|
add r1, sp, #8
|
|
str r1, [sp]
|
|
mov r1, #0x81
|
|
str r1, [sp, #4]
|
|
ldr r1, _0224B2BC ; =ov02_022534A4
|
|
bl sub_02068B0C
|
|
add sp, #0x1c
|
|
pop {pc}
|
|
nop
|
|
_0224B2BC: .word ov02_022534A4
|
|
thumb_func_end ov02_0224B298
|
|
|
|
thumb_func_start ov02_0224B2C0
|
|
ov02_0224B2C0: ; 0x0224B2C0
|
|
push {r3, lr}
|
|
bl sub_02068D74
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
pop {r3, pc}
|
|
thumb_func_end ov02_0224B2C0
|
|
|
|
thumb_func_start ov02_0224B2CC
|
|
ov02_0224B2CC: ; 0x0224B2CC
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
bl sub_02068D74
|
|
add r4, r0, #0
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
str r0, [r4, #0xc]
|
|
str r0, [r4, #8]
|
|
str r0, [r4, #0x10]
|
|
str r0, [r4, #0x14]
|
|
str r0, [r4, #0x18]
|
|
ldr r0, [r4, #0x20]
|
|
bl sub_020248AC
|
|
add r6, r0, #0
|
|
add r3, sp, #0
|
|
ldmia r6!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r6]
|
|
add r1, r2, #0
|
|
str r0, [r3]
|
|
add r0, r5, #0
|
|
bl sub_02068DA8
|
|
ldr r0, [r4, #0x20]
|
|
mov r1, #5
|
|
bl Set2dSpriteAnimSeqNo
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224B2CC
|
|
|
|
thumb_func_start ov02_0224B314
|
|
ov02_0224B314: ; 0x0224B314
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
bl sub_02068D74
|
|
add r4, r0, #0
|
|
mov r0, #2
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
str r0, [r4, #0xc]
|
|
str r0, [r4, #8]
|
|
str r0, [r4, #0x10]
|
|
str r0, [r4, #0x14]
|
|
str r0, [r4, #0x18]
|
|
ldr r0, [r4, #0x20]
|
|
add r1, sp, #0
|
|
bl ov02_02248C98
|
|
add r0, r5, #0
|
|
add r1, sp, #0
|
|
bl sub_02068DA8
|
|
ldr r0, [r4, #0x20]
|
|
mov r1, #4
|
|
bl Set2dSpriteAnimSeqNo
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224B314
|
|
|
|
thumb_func_start ov02_0224B350
|
|
ov02_0224B350: ; 0x0224B350
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl sub_02068D98
|
|
ldr r1, [r0]
|
|
str r1, [r4, #0x1c]
|
|
ldr r0, [r0, #4]
|
|
str r0, [r4, #0x20]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_0224B350
|
|
|
|
thumb_func_start ov02_0224B364
|
|
ov02_0224B364: ; 0x0224B364
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r1, #0
|
|
ldr r1, [r4, #4]
|
|
cmp r1, #0
|
|
bne _0224B3A8
|
|
ldr r1, [r4, #0xc]
|
|
lsl r2, r1, #2
|
|
ldr r1, _0224B3AC ; =ov02_02253520
|
|
ldr r1, [r1, r2]
|
|
str r1, [r4, #0x14]
|
|
add r1, sp, #0
|
|
bl sub_02068DB8
|
|
ldr r1, [sp, #4]
|
|
ldr r0, [r4, #0x14]
|
|
add r0, r1, r0
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4, #0x20]
|
|
add r1, sp, #0
|
|
bl sub_020247D4
|
|
ldr r0, [r4, #0xc]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0xc]
|
|
cmp r0, #0xc
|
|
blt _0224B3A8
|
|
mov r0, #0
|
|
str r0, [r4, #0xc]
|
|
mov r0, #1
|
|
str r0, [r4, #8]
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
_0224B3A8:
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
_0224B3AC: .word ov02_02253520
|
|
thumb_func_end ov02_0224B364
|
|
|
|
thumb_func_start ov02_0224B3B0
|
|
ov02_0224B3B0: ; 0x0224B3B0
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r1, #0
|
|
ldr r1, [r4, #4]
|
|
cmp r1, #0
|
|
bne _0224B3F4
|
|
ldr r1, [r4, #0xc]
|
|
lsl r2, r1, #2
|
|
ldr r1, _0224B3F8 ; =ov02_02253430
|
|
ldr r1, [r1, r2]
|
|
str r1, [r4, #0x14]
|
|
add r1, sp, #0
|
|
bl sub_02068DB8
|
|
ldr r1, [sp, #4]
|
|
ldr r0, [r4, #0x14]
|
|
add r0, r1, r0
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4, #0x20]
|
|
add r1, sp, #0
|
|
bl sub_020247D4
|
|
ldr r0, [r4, #0xc]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0xc]
|
|
cmp r0, #4
|
|
blt _0224B3F4
|
|
mov r0, #0
|
|
str r0, [r4, #0xc]
|
|
mov r0, #1
|
|
str r0, [r4, #8]
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
_0224B3F4:
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
_0224B3F8: .word ov02_02253430
|
|
thumb_func_end ov02_0224B3B0
|
|
|
|
thumb_func_start ov02_0224B3FC
|
|
ov02_0224B3FC: ; 0x0224B3FC
|
|
push {r3, lr}
|
|
ldr r2, [r1]
|
|
cmp r2, #1
|
|
beq _0224B40A
|
|
cmp r2, #2
|
|
beq _0224B410
|
|
pop {r3, pc}
|
|
_0224B40A:
|
|
bl ov02_0224B364
|
|
pop {r3, pc}
|
|
_0224B410:
|
|
bl ov02_0224B3B0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224B3FC
|
|
|
|
thumb_func_start ov02_0224B418
|
|
ov02_0224B418: ; 0x0224B418
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
mov r1, #0x5f
|
|
add r5, r0, #0
|
|
mov r0, #4
|
|
lsl r1, r1, #2
|
|
bl ov02_0224B690
|
|
add r1, r0, #0
|
|
str r4, [r1, #0xc]
|
|
ldr r0, _0224B438 ; =ov02_0224B45C
|
|
mov r2, #0x86
|
|
str r5, [r1, #0x14]
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0224B438: .word ov02_0224B45C
|
|
thumb_func_end ov02_0224B418
|
|
|
|
thumb_func_start ov02_0224B43C
|
|
ov02_0224B43C: ; 0x0224B43C
|
|
push {r3, lr}
|
|
bl sub_0201F988
|
|
ldr r0, [r0, #4]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224B43C
|
|
|
|
thumb_func_start ov02_0224B448
|
|
ov02_0224B448: ; 0x0224B448
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl sub_0201F988
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl DestroySysTask
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_0224B448
|
|
|
|
thumb_func_start ov02_0224B45C
|
|
ov02_0224B45C: ; 0x0224B45C
|
|
push {r3, r4, r5, lr}
|
|
ldr r4, _0224B490 ; =ov02_022534B8
|
|
add r5, r1, #0
|
|
_0224B462:
|
|
ldr r1, [r5]
|
|
add r0, r5, #0
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
blx r1
|
|
cmp r0, #1
|
|
beq _0224B462
|
|
ldr r0, [r5, #0x10]
|
|
cmp r0, #0
|
|
beq _0224B48E
|
|
mov r0, #0x17
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _0224B484
|
|
bl sub_02068BAC
|
|
_0224B484:
|
|
ldr r0, [r5, #0x20]
|
|
cmp r0, #0
|
|
beq _0224B48E
|
|
bl sub_0202457C
|
|
_0224B48E:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0224B490: .word ov02_022534B8
|
|
thumb_func_end ov02_0224B45C
|
|
|
|
thumb_func_start ov02_0224B494
|
|
ov02_0224B494: ; 0x0224B494
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #1
|
|
bl ov02_02249444
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224B494
|
|
|
|
thumb_func_start ov02_0224B4AC
|
|
ov02_0224B4AC: ; 0x0224B4AC
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x18
|
|
add r5, r0, #0
|
|
mov r0, #4
|
|
mov r1, #0x20
|
|
bl sub_020689C8
|
|
mov r1, #0x17
|
|
lsl r1, r1, #4
|
|
str r0, [r5, r1]
|
|
mov r2, #2
|
|
str r2, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
mov r1, #0x20
|
|
add r3, r2, #0
|
|
str r2, [sp, #0x14]
|
|
bl ov02_02248728
|
|
bl ov02_022493F0
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
add r1, r4, #0
|
|
mov r2, #0xb
|
|
mov r3, #0
|
|
bl ov02_02248980
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
add r1, r4, #0
|
|
mov r2, #6
|
|
mov r3, #0
|
|
bl ov02_02248A58
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
add r1, r4, #0
|
|
mov r2, #0xc
|
|
mov r3, #0
|
|
bl ov02_02248B30
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
mov r1, #0
|
|
bl ov02_022489F0
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
mov r1, #0
|
|
bl ov02_02248AC8
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
mov r1, #0
|
|
bl ov02_02248A24
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
mov r1, #0
|
|
bl ov02_02248AFC
|
|
ldr r0, [r5, #0xc]
|
|
cmp r0, #0
|
|
bne _0224B57C
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
add r1, r4, #0
|
|
mov r2, #0x11
|
|
mov r3, #2
|
|
bl ov02_02248980
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
add r1, r4, #0
|
|
mov r2, #0x12
|
|
mov r3, #2
|
|
bl ov02_02248B30
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
add r1, r4, #0
|
|
mov r2, #0x13
|
|
mov r3, #1
|
|
bl ov02_02248BA0
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
mov r1, #2
|
|
bl ov02_022489F0
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
mov r1, #2
|
|
bl ov02_02248A24
|
|
b _0224B5DC
|
|
_0224B57C:
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
add r1, r4, #0
|
|
mov r2, #0x14
|
|
mov r3, #2
|
|
bl ov02_02248980
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
add r1, r4, #0
|
|
mov r2, #7
|
|
mov r3, #1
|
|
bl ov02_02248A58
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
add r1, r4, #0
|
|
mov r2, #0x15
|
|
mov r3, #2
|
|
bl ov02_02248B30
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
add r1, r4, #0
|
|
mov r2, #0x16
|
|
mov r3, #1
|
|
bl ov02_02248BA0
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
mov r1, #2
|
|
bl ov02_022489F0
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
mov r1, #1
|
|
bl ov02_02248AC8
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
mov r1, #2
|
|
bl ov02_02248A24
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
mov r1, #1
|
|
bl ov02_02248AFC
|
|
_0224B5DC:
|
|
add r0, r4, #0
|
|
bl NARC_Delete
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
mov r0, #0
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224B4AC
|
|
|
|
thumb_func_start ov02_0224B5F0
|
|
ov02_0224B5F0: ; 0x0224B5F0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #0xc]
|
|
add r0, #0x18
|
|
bl ov02_02248D18
|
|
mov r1, #0x5b
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r3, #0x17
|
|
lsl r3, r3, #4
|
|
ldr r1, [r4, r3]
|
|
sub r3, r3, #4
|
|
add r2, r4, #0
|
|
ldr r0, [r4, #0x14]
|
|
ldr r3, [r4, r3]
|
|
add r2, #0x18
|
|
bl ov02_02248D58
|
|
mov r1, #0x5d
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
bl ov02_02248E20
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #1
|
|
str r0, [r4, #0x10]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_0224B5F0
|
|
|
|
thumb_func_start ov02_0224B638
|
|
ov02_0224B638: ; 0x0224B638
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x5d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov02_02248D8C
|
|
cmp r0, #2
|
|
beq _0224B64E
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0224B64E:
|
|
mov r0, #0x5d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov02_02248DBC
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224B638
|
|
|
|
thumb_func_start ov02_0224B664
|
|
ov02_0224B664: ; 0x0224B664
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x17
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl sub_020689F8
|
|
add r0, r4, #0
|
|
add r0, #0x18
|
|
bl ov02_0224886C
|
|
mov r0, #0
|
|
str r0, [r4, #0x10]
|
|
mov r1, #1
|
|
str r1, [r4, #4]
|
|
ldr r1, [r4]
|
|
add r1, r1, #1
|
|
str r1, [r4]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224B664
|
|
|
|
thumb_func_start ov02_0224B68C
|
|
ov02_0224B68C: ; 0x0224B68C
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end ov02_0224B68C
|
|
|
|
thumb_func_start ov02_0224B690
|
|
ov02_0224B690: ; 0x0224B690
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
bl AllocFromHeapAtEnd
|
|
add r4, r0, #0
|
|
bne _0224B6A0
|
|
bl GF_AssertFail
|
|
_0224B6A0:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r2, r5, #0
|
|
bl memset
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224B690
|
|
|
|
thumb_func_start ov02_0224B6B0
|
|
ov02_0224B6B0: ; 0x0224B6B0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x82
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r4, r1, #0
|
|
bl MapObject_UnpauseMovement
|
|
mov r0, #0x82
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r4, #0
|
|
bl MapObject_SetVisible
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224B6B0
|
|
|
|
thumb_func_start ov02_0224B6D0
|
|
ov02_0224B6D0: ; 0x0224B6D0
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl sub_02068D98
|
|
ldr r1, [r0]
|
|
ldr r0, [r0, #4]
|
|
str r1, [r4]
|
|
str r0, [r4, #4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_0224B6D0
|
|
|
|
thumb_func_start ov02_0224B6E4
|
|
ov02_0224B6E4: ; 0x0224B6E4
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldr r0, [r4]
|
|
bl sub_020248AC
|
|
ldr r1, [r4, #4]
|
|
ldr r0, [r0, #4]
|
|
ldr r5, [r1, #0x4c]
|
|
ldr r3, [r1, #0x50]
|
|
ldr r1, [r1, #0x1c]
|
|
cmp r1, #0
|
|
bne _0224B720
|
|
mov r1, #2
|
|
lsl r1, r1, #0xe
|
|
sub r2, r0, r1
|
|
cmp r2, r5
|
|
blt _0224B716
|
|
add r0, r0, r1
|
|
cmp r0, r3
|
|
bgt _0224B716
|
|
ldr r0, [r4]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
pop {r3, r4, r5, pc}
|
|
_0224B716:
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
pop {r3, r4, r5, pc}
|
|
_0224B720:
|
|
ldr r0, [r4]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224B6E4
|
|
|
|
thumb_func_start ov02_0224B72C
|
|
ov02_0224B72C: ; 0x0224B72C
|
|
push {r3, r4, lr}
|
|
sub sp, #0x1c
|
|
add r2, sp, #0x10
|
|
mov r3, #0
|
|
str r3, [r2]
|
|
add r4, r0, #0
|
|
str r3, [r2, #4]
|
|
mov r0, #0x79
|
|
str r3, [r2, #8]
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
sub r0, r0, #4
|
|
str r1, [sp, #8]
|
|
str r4, [sp, #0xc]
|
|
add r1, sp, #8
|
|
str r1, [sp]
|
|
mov r1, #0x87
|
|
str r1, [sp, #4]
|
|
ldr r0, [r4, r0]
|
|
ldr r1, _0224B764 ; =ov02_02253440
|
|
bl sub_02068B0C
|
|
mov r1, #0x7d
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
add sp, #0x1c
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_0224B764: .word ov02_02253440
|
|
thumb_func_end ov02_0224B72C
|
|
|
|
thumb_func_start ov02_0224B768
|
|
ov02_0224B768: ; 0x0224B768
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x7d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _0224B782
|
|
bl sub_02068B48
|
|
mov r0, #0x7d
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
_0224B782:
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_0224B768
|
|
|
|
thumb_func_start ov02_0224B784
|
|
ov02_0224B784: ; 0x0224B784
|
|
push {r4, lr}
|
|
sub sp, #0x18
|
|
add r2, sp, #0xc
|
|
mov r1, #0
|
|
str r1, [r2]
|
|
add r4, r0, #0
|
|
str r1, [r2, #4]
|
|
str r1, [r2, #8]
|
|
str r4, [sp, #8]
|
|
bl ov02_0224B88C
|
|
mov r0, #0x83
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r1, sp, #0xc
|
|
bl MapObject_GetPositionVec
|
|
add r0, sp, #8
|
|
str r0, [sp]
|
|
mov r0, #0x83
|
|
str r0, [sp, #4]
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r1, _0224B7C8 ; =ov02_02253490
|
|
add r2, sp, #0xc
|
|
mov r3, #0
|
|
bl sub_02068B0C
|
|
mov r1, #0x1f
|
|
lsl r1, r1, #4
|
|
str r0, [r4, r1]
|
|
add sp, #0x18
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0224B7C8: .word ov02_02253490
|
|
thumb_func_end ov02_0224B784
|
|
|
|
thumb_func_start ov02_0224B7CC
|
|
ov02_0224B7CC: ; 0x0224B7CC
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl sub_02068D98
|
|
ldr r1, [r0]
|
|
mov r6, #0x8a
|
|
str r1, [r4]
|
|
ldr r4, [r0]
|
|
lsl r6, r6, #2
|
|
add r0, r5, #0
|
|
add r1, sp, #0
|
|
bl sub_02068DB8
|
|
add r0, r4, r6
|
|
add r0, #0x24
|
|
add r1, sp, #0
|
|
bl ov01_021FC014
|
|
add r0, r4, r6
|
|
add r0, #0x24
|
|
mov r1, #0
|
|
bl ov01_021FC004
|
|
mov r0, #1
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
thumb_func_end ov02_0224B7CC
|
|
|
|
thumb_func_start ov02_0224B804
|
|
ov02_0224B804: ; 0x0224B804
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224B804
|
|
|
|
thumb_func_start ov02_0224B808
|
|
ov02_0224B808: ; 0x0224B808
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
ldr r0, [r5, #4]
|
|
mov r6, #0x8a
|
|
lsl r6, r6, #2
|
|
ldr r4, [r5]
|
|
cmp r0, #3
|
|
bhi _0224B878
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0224B824: ; jump table
|
|
.short _0224B82C - _0224B824 - 2 ; case 0
|
|
.short _0224B832 - _0224B824 - 2 ; case 1
|
|
.short _0224B854 - _0224B824 - 2 ; case 2
|
|
.short _0224B878 - _0224B824 - 2 ; case 3
|
|
_0224B82C:
|
|
mov r0, #1
|
|
str r0, [r5, #4]
|
|
pop {r4, r5, r6, pc}
|
|
_0224B832:
|
|
add r0, r4, r6
|
|
add r0, #0x24
|
|
mov r1, #1
|
|
bl ov01_021FC004
|
|
add r0, r4, r6
|
|
add r0, #0x9c
|
|
mov r1, #0
|
|
bl ov01_021FBF20
|
|
add r0, r4, r6
|
|
add r0, #0xb0
|
|
mov r1, #0
|
|
bl ov01_021FBF20
|
|
mov r0, #2
|
|
str r0, [r5, #4]
|
|
_0224B854:
|
|
add r0, r4, r6
|
|
mov r1, #1
|
|
add r0, #0x9c
|
|
lsl r1, r1, #0xc
|
|
bl ov01_021FBEE4
|
|
add r0, r4, r6
|
|
mov r1, #1
|
|
add r0, #0xb0
|
|
lsl r1, r1, #0xc
|
|
bl ov01_021FBEE4
|
|
cmp r0, #0
|
|
beq _0224B878
|
|
mov r0, #1
|
|
str r0, [r5, #8]
|
|
mov r0, #3
|
|
str r0, [r5, #4]
|
|
_0224B878:
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224B808
|
|
|
|
thumb_func_start ov02_0224B87C
|
|
ov02_0224B87C: ; 0x0224B87C
|
|
mov r0, #0x93
|
|
ldr r1, [r1]
|
|
lsl r0, r0, #2
|
|
ldr r3, _0224B888 ; =ov01_021FBF68
|
|
add r0, r1, r0
|
|
bx r3
|
|
.balign 4, 0
|
|
_0224B888: .word ov01_021FBF68
|
|
thumb_func_end ov02_0224B87C
|
|
|
|
thumb_func_start ov02_0224B88C
|
|
ov02_0224B88C: ; 0x0224B88C
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
mov r1, #0x8a
|
|
lsl r1, r1, #2
|
|
add r4, r0, r1
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
mov r0, #0x67
|
|
mov r1, #0x83
|
|
mov r2, #4
|
|
bl AllocAtEndAndReadWholeNarcMemberByIdPair
|
|
str r0, [r4, #0x10]
|
|
add r0, r4, #0
|
|
ldr r1, [r4, #0x10]
|
|
add r0, #0x14
|
|
bl ov01_021FBD38
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x24
|
|
add r1, #0x14
|
|
bl ov01_021FBF2C
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x9c
|
|
add r1, #0x14
|
|
mov r2, #0x67
|
|
mov r3, #0xa7
|
|
str r4, [sp, #4]
|
|
bl ov01_021FBE44
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0xb0
|
|
add r1, #0x14
|
|
mov r2, #0x67
|
|
mov r3, #0xa5
|
|
str r4, [sp, #4]
|
|
bl ov01_021FBE44
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x24
|
|
add r1, #0x9c
|
|
bl ov01_021FBF50
|
|
add r0, r4, #0
|
|
add r4, #0xb0
|
|
add r0, #0x24
|
|
add r1, r4, #0
|
|
bl ov01_021FBF50
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224B88C
|
|
|
|
thumb_func_start ov02_0224B90C
|
|
ov02_0224B90C: ; 0x0224B90C
|
|
push {r4, lr}
|
|
mov r1, #0x8a
|
|
lsl r1, r1, #2
|
|
add r4, r0, r1
|
|
add r0, r4, #0
|
|
add r0, #0x14
|
|
bl ov01_021FBDFC
|
|
ldr r0, [r4, #0x10]
|
|
bl ov01_021F1448
|
|
add r0, r4, #0
|
|
add r0, #0x9c
|
|
add r1, r4, #0
|
|
bl ov01_021FBE80
|
|
add r0, r4, #0
|
|
add r0, #0xb0
|
|
add r1, r4, #0
|
|
bl ov01_021FBE80
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_0224B90C
|
|
|
|
thumb_func_start ov02_0224B938
|
|
ov02_0224B938: ; 0x0224B938
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x83
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl MapObject_SetVisible
|
|
mov r0, #0x83
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl sub_0205F484
|
|
add r0, r4, #0
|
|
bl ov02_0224B784
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224B938
|
|
|
|
thumb_func_start ov02_0224B964
|
|
ov02_0224B964: ; 0x0224B964
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x1f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl sub_02068D74
|
|
ldr r0, [r0, #8]
|
|
cmp r0, #1
|
|
bne _0224B992
|
|
mov r0, #0x1f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl sub_02068B48
|
|
add r0, r4, #0
|
|
bl ov02_0224B90C
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0224B992:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224B964
|
|
|
|
thumb_func_start ov02_BattleExit_HandleRoamerAction
|
|
ov02_BattleExit_HandleRoamerAction: ; 0x0224B998
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
ldr r0, [r1, #8]
|
|
str r1, [sp]
|
|
mov r1, #0
|
|
bl GetPartyMonByIndex
|
|
add r7, r0, #0
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_Roamers_Get
|
|
add r6, r0, #0
|
|
add r0, r7, #0
|
|
mov r1, #5
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
bl ov02_0224BAA8
|
|
str r0, [sp, #8]
|
|
cmp r0, #0
|
|
beq _0224BA50
|
|
lsl r0, r4, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl SpeciesToRoamerIdx
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
mov r1, #0xa3
|
|
mov r2, #0
|
|
bl GetMonData
|
|
lsl r0, r0, #0x10
|
|
lsr r4, r0, #0x10
|
|
add r0, r7, #0
|
|
mov r1, #0xa0
|
|
mov r2, #0
|
|
bl GetMonData
|
|
lsl r0, r0, #0x18
|
|
lsr r7, r0, #0x18
|
|
ldr r0, [sp]
|
|
ldr r0, [r0, #0x14]
|
|
cmp r0, #1
|
|
bne _0224BA14
|
|
cmp r4, #0
|
|
bne _0224BA14
|
|
add r0, sp, #8
|
|
bl RoamerMon_Init
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
ldr r1, [sp, #4]
|
|
mov r2, #2
|
|
bl sub_02066BE8
|
|
b _0224BA42
|
|
_0224BA14:
|
|
cmp r0, #4
|
|
bne _0224BA2E
|
|
add r0, sp, #8
|
|
bl RoamerMon_Init
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
ldr r1, [sp, #4]
|
|
mov r2, #1
|
|
bl sub_02066BE8
|
|
b _0224BA42
|
|
_0224BA2E:
|
|
ldr r0, [sp, #8]
|
|
mov r1, #5
|
|
add r2, r4, #0
|
|
bl SetRoamerData
|
|
ldr r0, [sp, #8]
|
|
mov r1, #7
|
|
add r2, r7, #0
|
|
bl SetRoamerData
|
|
_0224BA42:
|
|
ldr r1, [r5, #0x20]
|
|
add r0, r6, #0
|
|
ldr r1, [r1]
|
|
bl ov02_RepelActiveRoamersFromMapNo
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224BA50:
|
|
bl LCRandom
|
|
mov r1, #0x64
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x10
|
|
lsr r0, r0, #0x10
|
|
cmp r0, #0x1e
|
|
bhs _0224BA6C
|
|
ldr r1, [r5, #0x20]
|
|
add r0, r6, #0
|
|
ldr r1, [r1]
|
|
bl ov02_RepelActiveRoamersFromMapNo
|
|
_0224BA6C:
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_BattleExit_HandleRoamerAction
|
|
|
|
thumb_func_start ov02_RepelActiveRoamersFromMapNo
|
|
ov02_RepelActiveRoamersFromMapNo: ; 0x0224BA70
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r4, #0
|
|
_0224BA78:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl GetRoamerIsActiveByIndex
|
|
cmp r0, #0
|
|
beq _0224BA9C
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl Roamer_GetLocation
|
|
bl GetRoamMapByLocationIdx
|
|
cmp r6, r0
|
|
bne _0224BA9C
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl RoamerLocationUpdateRand
|
|
_0224BA9C:
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #4
|
|
blo _0224BA78
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov02_RepelActiveRoamersFromMapNo
|
|
|
|
thumb_func_start ov02_0224BAA8
|
|
ov02_0224BAA8: ; 0x0224BAA8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r4, #0
|
|
_0224BAB0:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl GetRoamerIsActiveByIndex
|
|
cmp r0, #0
|
|
beq _0224BAD4
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl Roamers_GetRoamMonStats
|
|
mov r1, #4
|
|
add r7, r0, #0
|
|
bl GetRoamerData
|
|
cmp r6, r0
|
|
bne _0224BAD4
|
|
add r0, r7, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224BAD4:
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #4
|
|
blo _0224BAB0
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224BAA8
|
|
|
|
thumb_func_start PlayerStepEvent_RepelCounterDecrement
|
|
PlayerStepEvent_RepelCounterDecrement: ; 0x0224BAE4
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl Save_Roamers_Get
|
|
bl RoamerSave_GetRepelAddr
|
|
ldrb r1, [r0]
|
|
cmp r1, #0
|
|
beq _0224BB0E
|
|
sub r1, r1, #1
|
|
strb r1, [r0]
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0224BB0E
|
|
ldr r1, _0224BB14 ; =std_repel_wore_off
|
|
add r0, r4, #0
|
|
mov r2, #0
|
|
bl StartMapSceneScript
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_0224BB0E:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_0224BB14: .word std_repel_wore_off
|
|
thumb_func_end PlayerStepEvent_RepelCounterDecrement
|
|
|
|
thumb_func_start PokecenterAnimCreate
|
|
PokecenterAnimCreate: ; 0x0224BB18
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x20
|
|
add r6, r1, #0
|
|
mov r1, #0x24
|
|
add r2, sp, #4
|
|
add r3, sp, #0
|
|
add r5, r0, #0
|
|
bl sub_02054C20
|
|
cmp r0, #0
|
|
beq _0224BB84
|
|
mov r0, #4
|
|
mov r1, #0x18
|
|
bl AllocFromHeapAtEnd
|
|
add r4, r0, #0
|
|
strb r6, [r4, #0xc]
|
|
mov r0, #0
|
|
strb r0, [r4, #0xd]
|
|
strb r0, [r4, #0xe]
|
|
strb r0, [r4, #0xf]
|
|
ldr r0, [r5, #0x30]
|
|
bl MapMatrix_GetWidth
|
|
add r1, r0, #0
|
|
ldr r0, [sp]
|
|
add r2, sp, #0x14
|
|
bl sub_02054DC8
|
|
ldr r1, [sp, #4]
|
|
add r0, sp, #8
|
|
bl ov01_021F3B0C
|
|
add r3, sp, #8
|
|
ldmia r3!, {r0, r1}
|
|
add r2, r4, #0
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
ldr r1, [r4]
|
|
ldr r0, [sp, #0x14]
|
|
add r2, r4, #0
|
|
add r0, r1, r0
|
|
str r0, [r4]
|
|
ldr r1, [r4, #8]
|
|
ldr r0, [sp, #0x1c]
|
|
add r0, r1, r0
|
|
str r0, [r4, #8]
|
|
ldr r0, [r5, #0x10]
|
|
ldr r1, _0224BB8C ; =PokecenterAnimRun
|
|
bl TaskManager_Call
|
|
add sp, #0x20
|
|
pop {r4, r5, r6, pc}
|
|
_0224BB84:
|
|
bl GF_AssertFail
|
|
add sp, #0x20
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0224BB8C: .word PokecenterAnimRun
|
|
thumb_func_end PokecenterAnimCreate
|
|
|
|
thumb_func_start PokecenterAnimRun
|
|
PokecenterAnimRun: ; 0x0224BB90
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x34
|
|
add r4, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
bl TaskManager_GetEnv
|
|
add r4, r0, #0
|
|
ldrb r1, [r4, #0xf]
|
|
cmp r1, #5
|
|
bls _0224BBAC
|
|
b _0224BDCC
|
|
_0224BBAC:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0224BBB8: ; jump table
|
|
.short _0224BBC4 - _0224BBB8 - 2 ; case 0
|
|
.short _0224BC98 - _0224BBB8 - 2 ; case 1
|
|
.short _0224BCFA - _0224BBB8 - 2 ; case 2
|
|
.short _0224BD42 - _0224BBB8 - 2 ; case 3
|
|
.short _0224BD64 - _0224BBB8 - 2 ; case 4
|
|
.short _0224BDC2 - _0224BBB8 - 2 ; case 5
|
|
_0224BBC4:
|
|
ldr r1, [r6, #0x34]
|
|
mov r0, #0x6b
|
|
bl ov01_021FB90C
|
|
add r5, r0, #0
|
|
ldr r1, [r6, #0x34]
|
|
mov r0, #0x25
|
|
bl ov01_021FB90C
|
|
add r7, r0, #0
|
|
ldr r0, [r5]
|
|
bl NNS_G3dGetMdlSet
|
|
cmp r0, #0
|
|
beq _0224BC02
|
|
add r2, r0, #0
|
|
add r2, #8
|
|
beq _0224BBF6
|
|
ldrb r1, [r0, #9]
|
|
cmp r1, #0
|
|
bls _0224BBF6
|
|
ldrh r1, [r0, #0xe]
|
|
add r1, r2, r1
|
|
add r1, r1, #4
|
|
b _0224BBF8
|
|
_0224BBF6:
|
|
mov r1, #0
|
|
_0224BBF8:
|
|
cmp r1, #0
|
|
beq _0224BC02
|
|
ldr r1, [r1]
|
|
add r5, r0, r1
|
|
b _0224BC04
|
|
_0224BC02:
|
|
mov r5, #0
|
|
_0224BC04:
|
|
ldr r0, [r7]
|
|
bl NNS_G3dGetMdlSet
|
|
cmp r0, #0
|
|
beq _0224BC2E
|
|
add r2, r0, #0
|
|
add r2, #8
|
|
beq _0224BC22
|
|
ldrb r1, [r0, #9]
|
|
cmp r1, #0
|
|
bls _0224BC22
|
|
ldrh r1, [r0, #0xe]
|
|
add r1, r2, r1
|
|
add r1, r1, #4
|
|
b _0224BC24
|
|
_0224BC22:
|
|
mov r1, #0
|
|
_0224BC24:
|
|
cmp r1, #0
|
|
beq _0224BC2E
|
|
ldr r1, [r1]
|
|
add r7, r0, r1
|
|
b _0224BC30
|
|
_0224BC2E:
|
|
mov r7, #0
|
|
_0224BC30:
|
|
ldr r0, [r6, #0x34]
|
|
bl ov01_021FB9E0
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
str r5, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #1
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
str r1, [sp, #0x14]
|
|
ldr r0, [r6, #0x54]
|
|
ldr r1, [r6, #0x58]
|
|
mov r2, #0x10
|
|
mov r3, #0x6b
|
|
bl ov01_021E8DE8
|
|
add r0, r6, #0
|
|
mov r1, #0x25
|
|
add r2, sp, #0x18
|
|
mov r3, #0
|
|
bl sub_02054C20
|
|
cmp r0, #0
|
|
bne _0224BC66
|
|
bl GF_AssertFail
|
|
_0224BC66:
|
|
ldr r0, [sp, #0x18]
|
|
bl ov01_021F3B38
|
|
add r5, r0, #0
|
|
ldr r0, [r6, #0x34]
|
|
bl ov01_021FB9E0
|
|
str r5, [sp]
|
|
str r7, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #1
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [r6, #0x54]
|
|
ldr r1, [r6, #0x58]
|
|
mov r2, #0x20
|
|
mov r3, #0x25
|
|
bl ov01_021E8DE8
|
|
ldrb r0, [r4, #0xf]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xf]
|
|
b _0224BDCC
|
|
_0224BC98:
|
|
add r1, sp, #0x1c
|
|
mov r0, #0
|
|
str r0, [r1]
|
|
str r0, [r1, #4]
|
|
str r0, [r1, #8]
|
|
ldrb r2, [r4, #0xd]
|
|
mov r1, #0xc
|
|
ldr r0, [r4]
|
|
add r3, r2, #0
|
|
ldr r2, _0224BDD4 ; =ov02_02253D90
|
|
mul r3, r1
|
|
ldr r2, [r2, r3]
|
|
add r0, r0, r2
|
|
str r0, [sp, #0x28]
|
|
ldrb r2, [r4, #0xd]
|
|
ldr r0, [r4, #4]
|
|
add r3, r2, #0
|
|
ldr r2, _0224BDD8 ; =ov02_02253D94
|
|
mul r3, r1
|
|
ldr r2, [r2, r3]
|
|
add r0, r0, r2
|
|
str r0, [sp, #0x2c]
|
|
ldrb r2, [r4, #0xd]
|
|
ldr r0, [r4, #8]
|
|
add r3, r2, #0
|
|
mul r3, r1
|
|
ldr r1, _0224BDDC ; =ov02_02253D98
|
|
ldr r1, [r1, r3]
|
|
add r0, r0, r1
|
|
str r0, [sp, #0x30]
|
|
ldr r0, _0224BDE0 ; =SEQ_SE_DP_BOWA
|
|
bl PlaySE
|
|
ldr r0, [r6, #0x54]
|
|
add r6, #0x9c
|
|
str r0, [sp]
|
|
ldr r0, [r6]
|
|
mov r1, #0x6b
|
|
add r2, sp, #0x28
|
|
add r3, sp, #0x1c
|
|
bl ov01_021F3C0C
|
|
ldrb r1, [r4, #0xd]
|
|
add r1, r4, r1
|
|
strb r0, [r1, #0x10]
|
|
ldrb r0, [r4, #0xf]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xf]
|
|
b _0224BDCC
|
|
_0224BCFA:
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #0xc
|
|
bhs _0224BD06
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
b _0224BDCC
|
|
_0224BD06:
|
|
mov r0, #0
|
|
strb r0, [r4, #0xe]
|
|
ldrb r0, [r4, #0xd]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xd]
|
|
ldrb r1, [r4, #0xd]
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r1, r0
|
|
bhs _0224BD1E
|
|
mov r0, #1
|
|
strb r0, [r4, #0xf]
|
|
b _0224BDCC
|
|
_0224BD1E:
|
|
add r0, r6, #0
|
|
add r0, #0x9c
|
|
ldrb r1, [r4, #0x10]
|
|
ldr r0, [r0]
|
|
bl ov01_021F3B60
|
|
bl ov01_021F3B38
|
|
add r3, r0, #0
|
|
ldr r0, [r6, #0x58]
|
|
mov r1, #0x10
|
|
mov r2, #0
|
|
bl ov01_021E8E40
|
|
ldrb r0, [r4, #0xf]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xf]
|
|
b _0224BDCC
|
|
_0224BD42:
|
|
ldr r0, [r6, #0x58]
|
|
mov r1, #0x10
|
|
mov r2, #0
|
|
bl ov01_021E8E70
|
|
ldr r0, [r6, #0x58]
|
|
mov r1, #0x20
|
|
mov r2, #0
|
|
bl ov01_021E8E70
|
|
ldr r0, _0224BDE4 ; =SEQ_ME_ASA
|
|
bl PlayFanfare
|
|
ldrb r0, [r4, #0xf]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xf]
|
|
b _0224BDCC
|
|
_0224BD64:
|
|
ldr r0, [r6, #0x58]
|
|
mov r1, #0x10
|
|
bl ov01_021E8F10
|
|
cmp r0, #0
|
|
beq _0224BDCC
|
|
ldr r0, [r6, #0x58]
|
|
mov r1, #0x20
|
|
bl ov01_021E8F10
|
|
cmp r0, #0
|
|
beq _0224BDCC
|
|
bl IsFanfarePlaying
|
|
cmp r0, #0
|
|
bne _0224BDCC
|
|
ldr r0, [r6, #0x54]
|
|
ldr r1, [r6, #0x58]
|
|
mov r2, #0x20
|
|
bl ov01_021E8ED0
|
|
ldr r0, [r6, #0x54]
|
|
ldr r1, [r6, #0x58]
|
|
mov r2, #0x10
|
|
bl ov01_021E8ED0
|
|
ldrb r0, [r4, #0xc]
|
|
mov r5, #0
|
|
cmp r0, #0
|
|
bls _0224BDBA
|
|
_0224BDA0:
|
|
add r0, r4, r5
|
|
add r1, r6, #0
|
|
add r1, #0x9c
|
|
ldrb r0, [r0, #0x10]
|
|
ldr r1, [r1]
|
|
bl ov01_021F36DC
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r5, r0
|
|
blo _0224BDA0
|
|
_0224BDBA:
|
|
ldrb r0, [r4, #0xf]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xf]
|
|
b _0224BDCC
|
|
_0224BDC2:
|
|
bl FreeToHeap
|
|
add sp, #0x34
|
|
mov r0, #1
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224BDCC:
|
|
mov r0, #0
|
|
add sp, #0x34
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_0224BDD4: .word ov02_02253D90
|
|
_0224BDD8: .word ov02_02253D94
|
|
_0224BDDC: .word ov02_02253D98
|
|
_0224BDE0: .word SEQ_SE_DP_BOWA
|
|
_0224BDE4: .word SEQ_ME_ASA
|
|
thumb_func_end PokecenterAnimRun
|
|
|
|
thumb_func_start ov02_0224BDE8
|
|
ov02_0224BDE8: ; 0x0224BDE8
|
|
push {r4, r5, r6, lr}
|
|
add r6, r2, #0
|
|
mov r2, #0
|
|
add r4, r1, #0
|
|
mov r1, #0xd0
|
|
add r3, r2, #0
|
|
add r5, r0, #0
|
|
bl sub_02054C20
|
|
cmp r0, #0
|
|
beq _0224BE1A
|
|
mov r0, #4
|
|
add r1, r0, #0
|
|
bl AllocFromHeapAtEnd
|
|
add r2, r0, #0
|
|
strb r6, [r2]
|
|
strb r4, [r2, #1]
|
|
mov r0, #0
|
|
strb r0, [r2, #2]
|
|
ldr r0, [r5, #0x10]
|
|
ldr r1, _0224BE20 ; =ov02_0224BE24
|
|
bl TaskManager_Call
|
|
pop {r4, r5, r6, pc}
|
|
_0224BE1A:
|
|
bl GF_AssertFail
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0224BE20: .word ov02_0224BE24
|
|
thumb_func_end ov02_0224BDE8
|
|
|
|
thumb_func_start ov02_0224BE24
|
|
ov02_0224BE24: ; 0x0224BE24
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x1c
|
|
add r4, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
bl TaskManager_GetEnv
|
|
add r4, r0, #0
|
|
ldrb r1, [r4, #2]
|
|
cmp r1, #4
|
|
bls _0224BE40
|
|
b _0224BF48
|
|
_0224BE40:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0224BE4C: ; jump table
|
|
.short _0224BE56 - _0224BE4C - 2 ; case 0
|
|
.short _0224BED2 - _0224BE4C - 2 ; case 1
|
|
.short _0224BF00 - _0224BE4C - 2 ; case 2
|
|
.short _0224BF2C - _0224BE4C - 2 ; case 3
|
|
.short _0224BF3E - _0224BE4C - 2 ; case 4
|
|
_0224BE56:
|
|
ldr r1, [r6, #0x34]
|
|
mov r0, #0xd0
|
|
bl ov01_021FB90C
|
|
ldr r0, [r0]
|
|
bl NNS_G3dGetMdlSet
|
|
cmp r0, #0
|
|
beq _0224BE88
|
|
add r2, r0, #0
|
|
add r2, #8
|
|
beq _0224BE7C
|
|
ldrb r1, [r0, #9]
|
|
cmp r1, #0
|
|
bls _0224BE7C
|
|
ldrh r1, [r0, #0xe]
|
|
add r1, r2, r1
|
|
add r1, r1, #4
|
|
b _0224BE7E
|
|
_0224BE7C:
|
|
mov r1, #0
|
|
_0224BE7E:
|
|
cmp r1, #0
|
|
beq _0224BE88
|
|
ldr r1, [r1]
|
|
add r7, r0, r1
|
|
b _0224BE8A
|
|
_0224BE88:
|
|
mov r7, #0
|
|
_0224BE8A:
|
|
add r0, r6, #0
|
|
mov r1, #0xd0
|
|
add r2, sp, #0x18
|
|
mov r3, #0
|
|
bl sub_02054C20
|
|
cmp r0, #0
|
|
bne _0224BE9E
|
|
bl GF_AssertFail
|
|
_0224BE9E:
|
|
ldr r0, [sp, #0x18]
|
|
bl ov01_021F3B38
|
|
add r5, r0, #0
|
|
ldr r0, [r6, #0x34]
|
|
bl ov01_021FB9E0
|
|
str r5, [sp]
|
|
str r7, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #2
|
|
str r0, [sp, #0xc]
|
|
ldrb r0, [r4]
|
|
mov r2, #1
|
|
mov r3, #0xd0
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [r6, #0x54]
|
|
ldr r1, [r6, #0x58]
|
|
bl ov01_021E8DE8
|
|
ldrb r0, [r4, #2]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #2]
|
|
b _0224BF48
|
|
_0224BED2:
|
|
ldrb r0, [r4, #1]
|
|
mov r1, #1
|
|
cmp r0, #0
|
|
beq _0224BEE0
|
|
cmp r0, #1
|
|
beq _0224BEE0
|
|
mov r1, #0
|
|
_0224BEE0:
|
|
cmp r1, #0
|
|
bne _0224BEE8
|
|
bl GF_AssertFail
|
|
_0224BEE8:
|
|
ldrb r2, [r4, #1]
|
|
ldr r0, [r6, #0x58]
|
|
mov r1, #1
|
|
bl ov01_021E8E70
|
|
ldr r0, _0224BF50 ; =SEQ_SE_DP_ELEBETA2
|
|
bl PlaySE
|
|
ldrb r0, [r4, #2]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #2]
|
|
b _0224BF48
|
|
_0224BF00:
|
|
ldr r0, [r6, #0x58]
|
|
mov r1, #1
|
|
bl ov01_021E8F10
|
|
cmp r0, #0
|
|
beq _0224BF48
|
|
ldr r0, _0224BF50 ; =SEQ_SE_DP_ELEBETA2
|
|
mov r1, #0
|
|
bl StopSE
|
|
ldr r0, _0224BF54 ; =SEQ_SE_DP_PINPON
|
|
bl PlaySE
|
|
ldr r0, [r6, #0x54]
|
|
ldr r1, [r6, #0x58]
|
|
mov r2, #1
|
|
bl ov01_021E8ED0
|
|
ldrb r0, [r4, #2]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #2]
|
|
b _0224BF48
|
|
_0224BF2C:
|
|
ldr r0, _0224BF54 ; =SEQ_SE_DP_PINPON
|
|
bl IsSEPlaying
|
|
cmp r0, #0
|
|
bne _0224BF48
|
|
ldrb r0, [r4, #2]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #2]
|
|
b _0224BF48
|
|
_0224BF3E:
|
|
bl FreeToHeap
|
|
add sp, #0x1c
|
|
mov r0, #1
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224BF48:
|
|
mov r0, #0
|
|
add sp, #0x1c
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_0224BF50: .word SEQ_SE_DP_ELEBETA2
|
|
_0224BF54: .word SEQ_SE_DP_PINPON
|
|
thumb_func_end ov02_0224BE24
|
|
|
|
thumb_func_start ov02_0224BF58
|
|
ov02_0224BF58: ; 0x0224BF58
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
ldr r2, _0224BFBC ; =ov02_022536E8
|
|
add r7, r1, #0
|
|
ldr r3, [r2]
|
|
ldr r2, [r2, #4]
|
|
str r3, [sp, #0x18]
|
|
str r2, [sp, #0x1c]
|
|
add r2, sp, #0x20
|
|
str r2, [sp]
|
|
add r1, sp, #0x18
|
|
mov r2, #2
|
|
add r3, sp, #0x24
|
|
add r5, r0, #0
|
|
bl sub_02054C90
|
|
cmp r0, #0
|
|
beq _0224BFB4
|
|
ldr r0, [r5, #0x34]
|
|
bl ov01_021FB9E0
|
|
add r6, r0, #0
|
|
ldr r0, [sp, #0x24]
|
|
bl ov01_021F3B38
|
|
add r4, r0, #0
|
|
ldr r0, [sp, #0x24]
|
|
bl ov01_021F3B3C
|
|
str r4, [sp]
|
|
str r0, [sp, #4]
|
|
str r6, [sp, #8]
|
|
mov r0, #2
|
|
str r0, [sp, #0xc]
|
|
mov r0, #1
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [r5, #0x54]
|
|
ldr r1, [r5, #0x58]
|
|
ldr r3, [sp, #0x20]
|
|
add r2, r7, #0
|
|
bl ov01_021E8DE8
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224BFB4:
|
|
bl GF_AssertFail
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0224BFBC: .word ov02_022536E8
|
|
thumb_func_end ov02_0224BF58
|
|
|
|
thumb_func_start ov02_0224BFC0
|
|
ov02_0224BFC0: ; 0x0224BFC0
|
|
ldr r3, _0224BFC8 ; =ov01_021E8E70
|
|
ldr r0, [r0, #0x58]
|
|
mov r2, #0
|
|
bx r3
|
|
.balign 4, 0
|
|
_0224BFC8: .word ov01_021E8E70
|
|
thumb_func_end ov02_0224BFC0
|
|
|
|
thumb_func_start ov02_0224BFCC
|
|
ov02_0224BFCC: ; 0x0224BFCC
|
|
ldr r3, _0224BFD4 ; =ov01_021E8E70
|
|
ldr r0, [r0, #0x58]
|
|
mov r2, #1
|
|
bx r3
|
|
.balign 4, 0
|
|
_0224BFD4: .word ov01_021E8E70
|
|
thumb_func_end ov02_0224BFCC
|
|
|
|
thumb_func_start CreateFieldEscapeRopeTaskEnv
|
|
CreateFieldEscapeRopeTaskEnv: ; 0x0224BFD8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r0, r1, #0
|
|
mov r1, #0x30
|
|
bl ov02_0224C660
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
str r0, [r4, #0xc]
|
|
str r5, [r4, #0x24]
|
|
ldr r0, [r5, #0x40]
|
|
bl PlayerAvatar_GetMapObject
|
|
str r0, [r4, #0x20]
|
|
ldr r0, [r5, #0x40]
|
|
bl PlayerAvatar_GetState
|
|
sub r0, r0, #1
|
|
cmp r0, #1
|
|
bhi _0224C006
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
b _0224C01A
|
|
_0224C006:
|
|
add r0, r5, #0
|
|
bl FollowingPokemon_IsActive
|
|
cmp r0, #0
|
|
beq _0224C016
|
|
mov r0, #1
|
|
str r0, [r4, #8]
|
|
b _0224C01A
|
|
_0224C016:
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
_0224C01A:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end CreateFieldEscapeRopeTaskEnv
|
|
|
|
thumb_func_start Task_FieldEscapeRope
|
|
Task_FieldEscapeRope: ; 0x0224C020
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r7, r0, #0
|
|
add r0, r6, #0
|
|
bl TaskManager_GetEnv
|
|
add r5, r0, #0
|
|
_0224C032:
|
|
ldr r3, [r5]
|
|
add r0, r6, #0
|
|
lsl r4, r3, #2
|
|
ldr r3, _0224C058 ; =ov02_02253700
|
|
add r1, r7, #0
|
|
ldr r3, [r3, r4]
|
|
add r2, r5, #0
|
|
blx r3
|
|
add r4, r0, #0
|
|
cmp r4, #2
|
|
bne _0224C04E
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
_0224C04E:
|
|
cmp r4, #1
|
|
beq _0224C032
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0224C058: .word ov02_02253700
|
|
thumb_func_end Task_FieldEscapeRope
|
|
|
|
thumb_func_start ov02_0224C05C
|
|
ov02_0224C05C: ; 0x0224C05C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r0, r5, #0
|
|
mov r1, #4
|
|
add r4, r2, #0
|
|
bl ov01_021FCD2C
|
|
ldr r2, _0224C0A4 ; =0xFFF6A000
|
|
str r0, [r4, #0x1c]
|
|
mov r1, #1
|
|
mov r3, #0xf
|
|
bl ov01_021FCD8C
|
|
ldr r0, [r4, #0x20]
|
|
ldr r1, _0224C0A8 ; =ov02_02253820
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C092
|
|
add r5, #0xe4
|
|
ldr r0, [r5]
|
|
ldr r1, _0224C0A8 ; =ov02_02253820
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x14]
|
|
_0224C092:
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
ldr r0, _0224C0AC ; =SEQ_SE_DP_KAIDAN2
|
|
bl PlaySE
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0224C0A4: .word 0xFFF6A000
|
|
_0224C0A8: .word ov02_02253820
|
|
_0224C0AC: .word SEQ_SE_DP_KAIDAN2
|
|
thumb_func_end ov02_0224C05C
|
|
|
|
thumb_func_start ov02_0224C0B0
|
|
ov02_0224C0B0: ; 0x0224C0B0
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r2, #0
|
|
ldr r0, [r4, #0x10]
|
|
add r5, r1, #0
|
|
bl EventObjectMovementMan_IsFinish
|
|
cmp r0, #0
|
|
bne _0224C0C8
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r4, r5, pc}
|
|
_0224C0C8:
|
|
ldr r0, [r4, #0x10]
|
|
bl EventObjectMovementMan_Delete
|
|
ldr r0, [r4, #0x20]
|
|
ldr r1, _0224C144 ; =ov02_02253794
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C0F0
|
|
ldr r0, [r4, #0x14]
|
|
bl EventObjectMovementMan_Delete
|
|
add r5, #0xe4
|
|
ldr r0, [r5]
|
|
ldr r1, _0224C144 ; =ov02_02253794
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x14]
|
|
_0224C0F0:
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
cmp r0, #8
|
|
bge _0224C100
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r4, r5, pc}
|
|
_0224C100:
|
|
ldr r0, [r4, #0xc]
|
|
cmp r0, #2
|
|
bne _0224C120
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r3, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
b _0224C138
|
|
_0224C120:
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
ldr r3, _0224C148 ; =0x00007FFF
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
_0224C138:
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
_0224C144: .word ov02_02253794
|
|
_0224C148: .word 0x00007FFF
|
|
thumb_func_end ov02_0224C0B0
|
|
|
|
thumb_func_start ov02_0224C14C
|
|
ov02_0224C14C: ; 0x0224C14C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r2, #0
|
|
ldr r0, [r4, #0x10]
|
|
add r5, r1, #0
|
|
bl EventObjectMovementMan_IsFinish
|
|
cmp r0, #1
|
|
bne _0224C184
|
|
ldr r0, [r4, #0x10]
|
|
bl EventObjectMovementMan_Delete
|
|
ldr r0, [r4, #0x20]
|
|
ldr r1, _0224C1B4 ; =ov02_02253794
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C184
|
|
ldr r0, [r4, #0x14]
|
|
bl EventObjectMovementMan_Delete
|
|
add r5, #0xe4
|
|
ldr r0, [r5]
|
|
ldr r1, _0224C1B4 ; =ov02_02253794
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x14]
|
|
_0224C184:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
bne _0224C190
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0224C190:
|
|
ldr r0, [r4, #0x10]
|
|
bl EventObjectMovementMan_Delete
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C1A2
|
|
ldr r0, [r4, #0x14]
|
|
bl EventObjectMovementMan_Delete
|
|
_0224C1A2:
|
|
ldr r0, [r4, #0x1c]
|
|
bl ov01_021FCD78
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0224C1B4: .word ov02_02253794
|
|
thumb_func_end ov02_0224C14C
|
|
|
|
thumb_func_start ov02_0224C1B8
|
|
ov02_0224C1B8: ; 0x0224C1B8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r1, #0xc]
|
|
add r4, r2, #0
|
|
bl Save_LocalFieldData_Get
|
|
bl LocalFieldData_GetSpecialSpawnWarpPtr
|
|
add r1, r0, #0
|
|
ldr r2, [r4, #0xc]
|
|
add r0, r5, #0
|
|
bl sub_02053B04
|
|
mov r0, #2
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224C1B8
|
|
|
|
thumb_func_start ov02_0224C1D8
|
|
ov02_0224C1D8: ; 0x0224C1D8
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r0, r1, #0
|
|
mov r1, #0x30
|
|
add r6, r2, #0
|
|
bl ov02_0224C660
|
|
add r4, r0, #0
|
|
str r6, [r4, #0xc]
|
|
str r5, [r4, #0x24]
|
|
ldr r0, [r5, #0x40]
|
|
bl PlayerAvatar_GetMapObject
|
|
str r0, [r4, #0x20]
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov02_0224C1D8
|
|
|
|
thumb_func_start ov02_0224C1F8
|
|
ov02_0224C1F8: ; 0x0224C1F8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r6, r0, #0
|
|
add r0, r5, #0
|
|
bl TaskManager_GetEnv
|
|
ldr r7, _0224C230 ; =ov02_022536F0
|
|
add r4, r0, #0
|
|
_0224C20C:
|
|
ldr r3, [r4]
|
|
add r0, r5, #0
|
|
lsl r3, r3, #2
|
|
ldr r3, [r7, r3]
|
|
add r1, r6, #0
|
|
add r2, r4, #0
|
|
blx r3
|
|
cmp r0, #2
|
|
bne _0224C228
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224C228:
|
|
cmp r0, #1
|
|
beq _0224C20C
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0224C230: .word ov02_022536F0
|
|
thumb_func_end ov02_0224C1F8
|
|
|
|
thumb_func_start ov02_0224C234
|
|
ov02_0224C234: ; 0x0224C234
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r2, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r5, r1, #0
|
|
cmp r0, #2
|
|
bne _0224C25A
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r2, r1, #0
|
|
add r3, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
b _0224C270
|
|
_0224C25A:
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
ldr r3, _0224C29C ; =0x00007FFF
|
|
mov r0, #0
|
|
add r2, r1, #0
|
|
bl BeginNormalPaletteFade
|
|
_0224C270:
|
|
add r0, r5, #0
|
|
mov r1, #4
|
|
bl ov01_021FCD2C
|
|
mov r1, #1
|
|
ldr r2, _0224C2A0 ; =0xFFF6A000
|
|
str r0, [r4, #0x1c]
|
|
add r3, r1, #0
|
|
bl ov01_021FCD8C
|
|
ldr r0, [r4, #0x20]
|
|
ldr r1, _0224C2A4 ; =ov02_02253794
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_0224C29C: .word 0x00007FFF
|
|
_0224C2A0: .word 0xFFF6A000
|
|
_0224C2A4: .word ov02_02253794
|
|
thumb_func_end ov02_0224C234
|
|
|
|
thumb_func_start ov02_0224C2A8
|
|
ov02_0224C2A8: ; 0x0224C2A8
|
|
push {r4, lr}
|
|
add r4, r2, #0
|
|
ldr r0, [r4, #0x10]
|
|
bl EventObjectMovementMan_IsFinish
|
|
cmp r0, #1
|
|
bne _0224C2C6
|
|
ldr r0, [r4, #0x10]
|
|
bl EventObjectMovementMan_Delete
|
|
ldr r0, [r4, #0x20]
|
|
ldr r1, _0224C2E8 ; =ov02_02253794
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x10]
|
|
_0224C2C6:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
bne _0224C2D2
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0224C2D2:
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #2
|
|
mov r2, #0
|
|
mov r3, #0x3c
|
|
bl ov01_021FCD8C
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0224C2E8: .word ov02_02253794
|
|
thumb_func_end ov02_0224C2A8
|
|
|
|
thumb_func_start ov02_0224C2EC
|
|
ov02_0224C2EC: ; 0x0224C2EC
|
|
push {r4, lr}
|
|
add r4, r2, #0
|
|
ldr r0, [r4, #0x10]
|
|
bl EventObjectMovementMan_IsFinish
|
|
cmp r0, #0
|
|
bne _0224C2FE
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0224C2FE:
|
|
ldr r0, [r4, #0x10]
|
|
bl EventObjectMovementMan_Delete
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
cmp r0, #4
|
|
ldr r0, [r4, #0x20]
|
|
bge _0224C31C
|
|
ldr r1, _0224C330 ; =ov02_02253794
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x10]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0224C31C:
|
|
ldr r1, _0224C334 ; =ov02_02253884
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_0224C330: .word ov02_02253794
|
|
_0224C334: .word ov02_02253884
|
|
thumb_func_end ov02_0224C2EC
|
|
|
|
thumb_func_start ov02_0224C338
|
|
ov02_0224C338: ; 0x0224C338
|
|
push {r4, lr}
|
|
add r4, r2, #0
|
|
ldr r0, [r4, #0x10]
|
|
bl EventObjectMovementMan_IsFinish
|
|
cmp r0, #0
|
|
bne _0224C34A
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0224C34A:
|
|
ldr r0, [r4, #0x1c]
|
|
bl ov01_021FCD6C
|
|
cmp r0, #0
|
|
bne _0224C358
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0224C358:
|
|
ldr r0, [r4, #0x1c]
|
|
bl ov01_021FCD78
|
|
ldr r0, [r4, #0x10]
|
|
bl EventObjectMovementMan_Delete
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_0224C338
|
|
|
|
thumb_func_start CreateFieldDigTaskEnv
|
|
CreateFieldDigTaskEnv: ; 0x0224C368
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
add r0, r3, #0
|
|
mov r1, #0x30
|
|
add r7, r2, #0
|
|
bl ov02_0224C660
|
|
add r4, r0, #0
|
|
mov r0, #1
|
|
str r0, [r4, #0xc]
|
|
str r5, [r4, #0x24]
|
|
ldr r0, [r5, #0x40]
|
|
bl PlayerAvatar_GetMapObject
|
|
str r0, [r4, #0x20]
|
|
add r0, r5, #0
|
|
str r6, [r4, #0x28]
|
|
bl ov01_02206268
|
|
cmp r0, #0
|
|
beq _0224C3A4
|
|
add r0, r5, #0
|
|
bl ov01_022062CC
|
|
cmp r7, r0
|
|
bne _0224C3A4
|
|
mov r0, #1
|
|
str r0, [r4, #8]
|
|
b _0224C3A8
|
|
_0224C3A4:
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
_0224C3A8:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end CreateFieldDigTaskEnv
|
|
|
|
thumb_func_start Task_FieldDig
|
|
Task_FieldDig: ; 0x0224C3AC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r6, r0, #0
|
|
add r0, r7, #0
|
|
bl TaskManager_GetEnv
|
|
add r4, r0, #0
|
|
add r0, r7, #0
|
|
bl TaskManager_GetStatePtr
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
cmp r0, #3
|
|
bhi _0224C4A2
|
|
add r1, r0, r0
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0224C3D8: ; jump table
|
|
.short _0224C3E0 - _0224C3D8 - 2 ; case 0
|
|
.short _0224C3F8 - _0224C3D8 - 2 ; case 1
|
|
.short _0224C42A - _0224C3D8 - 2 ; case 2
|
|
.short _0224C45C - _0224C3D8 - 2 ; case 3
|
|
_0224C3E0:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C3F0
|
|
ldr r1, _0224C4A8 ; =ov01_02205A60
|
|
add r0, r7, #0
|
|
mov r2, #0
|
|
bl TaskManager_Call
|
|
_0224C3F0:
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _0224C4A2
|
|
_0224C3F8:
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C42A
|
|
add r0, r6, #0
|
|
mov r1, #4
|
|
bl ov02_02250780
|
|
cmp r0, #0
|
|
beq _0224C41E
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
mov r1, #1
|
|
mov r4, #2
|
|
bl FsysUnkSub108_AddMonMood
|
|
b _0224C420
|
|
_0224C41E:
|
|
mov r4, #1
|
|
_0224C420:
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
bl ov02_022507B4
|
|
b _0224C4A2
|
|
_0224C42A:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C456
|
|
ldr r0, [r4, #0x28]
|
|
mov r1, #5
|
|
mov r2, #0
|
|
bl GetMonData
|
|
str r0, [sp]
|
|
ldr r0, [r4, #0x28]
|
|
mov r1, #0x70
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r1, r0, #0
|
|
ldr r0, [sp]
|
|
lsl r1, r1, #0x18
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
lsr r1, r1, #0x18
|
|
bl PlayCry
|
|
_0224C456:
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
_0224C45C:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C482
|
|
bl IsCryFinished
|
|
cmp r0, #0
|
|
beq _0224C46E
|
|
mov r5, #0
|
|
b _0224C494
|
|
_0224C46E:
|
|
ldr r3, [r4]
|
|
add r0, r7, #0
|
|
lsl r5, r3, #2
|
|
ldr r3, _0224C4AC ; =ov02_02253710
|
|
add r1, r6, #0
|
|
ldr r3, [r3, r5]
|
|
add r2, r4, #0
|
|
blx r3
|
|
add r5, r0, #0
|
|
b _0224C494
|
|
_0224C482:
|
|
ldr r3, [r4]
|
|
add r0, r7, #0
|
|
lsl r5, r3, #2
|
|
ldr r3, _0224C4B0 ; =ov02_02253754
|
|
add r1, r6, #0
|
|
ldr r3, [r3, r5]
|
|
add r2, r4, #0
|
|
blx r3
|
|
add r5, r0, #0
|
|
_0224C494:
|
|
cmp r5, #2
|
|
bne _0224C49E
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_0224C49E:
|
|
cmp r5, #1
|
|
beq _0224C45C
|
|
_0224C4A2:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0224C4A8: .word ov01_02205A60
|
|
_0224C4AC: .word ov02_02253710
|
|
_0224C4B0: .word ov02_02253754
|
|
thumb_func_end Task_FieldDig
|
|
|
|
thumb_func_start ov02_0224C4B4
|
|
ov02_0224C4B4: ; 0x0224C4B4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r0, [r5, #0x40]
|
|
add r4, r2, #0
|
|
bl PlayerAvatar_GetGender
|
|
add r3, r0, #0
|
|
ldr r2, [r4, #0x28]
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov02_02249458
|
|
str r0, [r4, #0x18]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_0224C4B4
|
|
|
|
thumb_func_start ov02_0224C4D8
|
|
ov02_0224C4D8: ; 0x0224C4D8
|
|
push {r4, lr}
|
|
add r4, r2, #0
|
|
ldr r0, [r4, #0x18]
|
|
bl ov02_0224953C
|
|
cmp r0, #0
|
|
bne _0224C4EA
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0224C4EA:
|
|
ldr r0, [r4, #0x18]
|
|
bl ov02_02249548
|
|
ldr r0, [r4, #0x24]
|
|
bl ov01_02205D68
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_0224C4D8
|
|
|
|
thumb_func_start CreateFieldTeleportTaskEnv
|
|
CreateFieldTeleportTaskEnv: ; 0x0224C500
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
add r0, r3, #0
|
|
mov r1, #0x30
|
|
add r7, r2, #0
|
|
bl ov02_0224C660
|
|
add r4, r0, #0
|
|
mov r0, #2
|
|
str r0, [r4, #0xc]
|
|
str r5, [r4, #0x24]
|
|
ldr r0, [r5, #0x40]
|
|
bl PlayerAvatar_GetMapObject
|
|
str r0, [r4, #0x20]
|
|
str r6, [r4, #0x28]
|
|
ldr r0, [r5, #0x40]
|
|
bl PlayerAvatar_GetState
|
|
sub r0, r0, #1
|
|
cmp r0, #1
|
|
bhi _0224C534
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
b _0224C552
|
|
_0224C534:
|
|
add r0, r5, #0
|
|
bl ov01_02206268
|
|
cmp r0, #0
|
|
beq _0224C54E
|
|
add r0, r5, #0
|
|
bl ov01_022062CC
|
|
cmp r7, r0
|
|
bne _0224C54E
|
|
mov r0, #1
|
|
str r0, [r4, #8]
|
|
b _0224C552
|
|
_0224C54E:
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
_0224C552:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end CreateFieldTeleportTaskEnv
|
|
|
|
thumb_func_start Task_FieldTeleport
|
|
Task_FieldTeleport: ; 0x0224C558
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r6, r0, #0
|
|
add r0, r7, #0
|
|
bl TaskManager_GetEnv
|
|
add r4, r0, #0
|
|
add r0, r7, #0
|
|
bl TaskManager_GetStatePtr
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
cmp r0, #3
|
|
bhi _0224C64E
|
|
add r1, r0, r0
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0224C584: ; jump table
|
|
.short _0224C58C - _0224C584 - 2 ; case 0
|
|
.short _0224C5A4 - _0224C584 - 2 ; case 1
|
|
.short _0224C5D6 - _0224C584 - 2 ; case 2
|
|
.short _0224C608 - _0224C584 - 2 ; case 3
|
|
_0224C58C:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C59C
|
|
ldr r1, _0224C654 ; =ov01_02205A60
|
|
add r0, r7, #0
|
|
mov r2, #0
|
|
bl TaskManager_Call
|
|
_0224C59C:
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _0224C64E
|
|
_0224C5A4:
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C5D6
|
|
add r0, r6, #0
|
|
mov r1, #0xe
|
|
bl ov02_02250780
|
|
cmp r0, #0
|
|
beq _0224C5CA
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
mov r1, #1
|
|
mov r4, #2
|
|
bl FsysUnkSub108_AddMonMood
|
|
b _0224C5CC
|
|
_0224C5CA:
|
|
mov r4, #1
|
|
_0224C5CC:
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
bl ov02_022507B4
|
|
b _0224C64E
|
|
_0224C5D6:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C602
|
|
ldr r0, [r4, #0x28]
|
|
mov r1, #5
|
|
mov r2, #0
|
|
bl GetMonData
|
|
str r0, [sp]
|
|
ldr r0, [r4, #0x28]
|
|
mov r1, #0x70
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r1, r0, #0
|
|
ldr r0, [sp]
|
|
lsl r1, r1, #0x18
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
lsr r1, r1, #0x18
|
|
bl PlayCry
|
|
_0224C602:
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
_0224C608:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C62E
|
|
bl IsCryFinished
|
|
cmp r0, #0
|
|
beq _0224C61A
|
|
mov r5, #0
|
|
b _0224C640
|
|
_0224C61A:
|
|
ldr r3, [r4]
|
|
add r0, r7, #0
|
|
lsl r5, r3, #2
|
|
ldr r3, _0224C658 ; =ov02_0225373C
|
|
add r1, r6, #0
|
|
ldr r3, [r3, r5]
|
|
add r2, r4, #0
|
|
blx r3
|
|
add r5, r0, #0
|
|
b _0224C640
|
|
_0224C62E:
|
|
ldr r3, [r4]
|
|
add r0, r7, #0
|
|
lsl r5, r3, #2
|
|
ldr r3, _0224C65C ; =ov02_02253724
|
|
add r1, r6, #0
|
|
ldr r3, [r3, r5]
|
|
add r2, r4, #0
|
|
blx r3
|
|
add r5, r0, #0
|
|
_0224C640:
|
|
cmp r5, #2
|
|
bne _0224C64A
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_0224C64A:
|
|
cmp r5, #1
|
|
beq _0224C608
|
|
_0224C64E:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0224C654: .word ov01_02205A60
|
|
_0224C658: .word ov02_0225373C
|
|
_0224C65C: .word ov02_02253724
|
|
thumb_func_end Task_FieldTeleport
|
|
|
|
thumb_func_start ov02_0224C660
|
|
ov02_0224C660: ; 0x0224C660
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
bl AllocFromHeapAtEnd
|
|
add r4, r0, #0
|
|
bne _0224C670
|
|
bl GF_AssertFail
|
|
_0224C670:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r2, r5, #0
|
|
bl memset
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224C660
|
|
|
|
thumb_func_start ov02_0224C680
|
|
ov02_0224C680: ; 0x0224C680
|
|
push {r4, lr}
|
|
add r4, r2, #0
|
|
add r0, r1, #0
|
|
mov r1, #2
|
|
mov r2, #1
|
|
bl ov01_022060B8
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_0224C680
|
|
|
|
thumb_func_start ov02_0224C698
|
|
ov02_0224C698: ; 0x0224C698
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r0, r5, #0
|
|
mov r1, #4
|
|
add r4, r2, #0
|
|
bl ov01_021FCD2C
|
|
ldr r2, _0224C6D0 ; =0xFFF6A000
|
|
mov r1, #1
|
|
mov r3, #0xf
|
|
str r0, [r4, #0x1c]
|
|
bl ov01_021FCD8C
|
|
add r5, #0xe4
|
|
ldr r0, [r5]
|
|
ldr r1, _0224C6D4 ; =ov02_02253770
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x14]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
ldr r0, _0224C6D8 ; =SEQ_SE_DP_TELE
|
|
bl PlaySE
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0224C6D0: .word 0xFFF6A000
|
|
_0224C6D4: .word ov02_02253770
|
|
_0224C6D8: .word SEQ_SE_DP_TELE
|
|
thumb_func_end ov02_0224C698
|
|
|
|
thumb_func_start ov02_0224C6DC
|
|
ov02_0224C6DC: ; 0x0224C6DC
|
|
push {r3, r4, r5, lr}
|
|
add r4, r2, #0
|
|
ldr r0, [r4, #0x14]
|
|
add r5, r1, #0
|
|
bl EventObjectMovementMan_IsFinish
|
|
cmp r0, #0
|
|
bne _0224C6F0
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0224C6F0:
|
|
ldr r0, [r4, #0x14]
|
|
bl EventObjectMovementMan_Delete
|
|
ldr r0, [r4, #0x20]
|
|
ldr r1, _0224C718 ; =ov02_02253820
|
|
bl EventObjectMovementMan_Create
|
|
add r5, #0xe4
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r5]
|
|
ldr r1, _0224C718 ; =ov02_02253820
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x14]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0224C718: .word ov02_02253820
|
|
thumb_func_end ov02_0224C6DC
|
|
|
|
thumb_func_start ov02_0224C71C
|
|
ov02_0224C71C: ; 0x0224C71C
|
|
push {r4, lr}
|
|
add r0, r1, #0
|
|
mov r1, #4
|
|
add r4, r2, #0
|
|
bl ov01_021FCD2C
|
|
ldr r2, _0224C750 ; =0xFFF6A000
|
|
str r0, [r4, #0x1c]
|
|
mov r1, #1
|
|
mov r3, #0xf
|
|
bl ov01_021FCD8C
|
|
ldr r0, [r4, #0x20]
|
|
ldr r1, _0224C754 ; =ov02_02253820
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
ldr r0, _0224C758 ; =SEQ_SE_DP_TELE
|
|
bl PlaySE
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_0224C750: .word 0xFFF6A000
|
|
_0224C754: .word ov02_02253820
|
|
_0224C758: .word SEQ_SE_DP_TELE
|
|
thumb_func_end ov02_0224C71C
|
|
|
|
thumb_func_start ov02_0224C75C
|
|
ov02_0224C75C: ; 0x0224C75C
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r2, #0
|
|
ldr r0, [r4, #0x10]
|
|
add r5, r1, #0
|
|
bl EventObjectMovementMan_IsFinish
|
|
cmp r0, #0
|
|
bne _0224C774
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r4, r5, pc}
|
|
_0224C774:
|
|
ldr r0, [r4, #0x10]
|
|
bl EventObjectMovementMan_Delete
|
|
ldr r0, [r4, #0x20]
|
|
ldr r1, _0224C7D0 ; =ov02_02253794
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C79C
|
|
ldr r0, [r4, #0x14]
|
|
bl EventObjectMovementMan_Delete
|
|
add r5, #0xe4
|
|
ldr r0, [r5]
|
|
ldr r1, _0224C7D0 ; =ov02_02253794
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x14]
|
|
_0224C79C:
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
cmp r0, #8
|
|
bge _0224C7AC
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r4, r5, pc}
|
|
_0224C7AC:
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r3, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
_0224C7D0: .word ov02_02253794
|
|
thumb_func_end ov02_0224C75C
|
|
|
|
thumb_func_start ov02_0224C7D4
|
|
ov02_0224C7D4: ; 0x0224C7D4
|
|
push {r3, r4, r5, lr}
|
|
add r4, r2, #0
|
|
ldr r0, [r4, #0x10]
|
|
add r5, r1, #0
|
|
bl EventObjectMovementMan_IsFinish
|
|
cmp r0, #1
|
|
bne _0224C80C
|
|
ldr r0, [r4, #0x10]
|
|
bl EventObjectMovementMan_Delete
|
|
ldr r0, [r4, #0x20]
|
|
ldr r1, _0224C83C ; =ov02_02253794
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C80C
|
|
ldr r0, [r4, #0x14]
|
|
bl EventObjectMovementMan_Delete
|
|
add r5, #0xe4
|
|
ldr r0, [r5]
|
|
ldr r1, _0224C83C ; =ov02_02253794
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x14]
|
|
_0224C80C:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
bne _0224C818
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0224C818:
|
|
ldr r0, [r4, #0x10]
|
|
bl EventObjectMovementMan_Delete
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C82A
|
|
ldr r0, [r4, #0x14]
|
|
bl EventObjectMovementMan_Delete
|
|
_0224C82A:
|
|
ldr r0, [r4, #0x1c]
|
|
bl ov01_021FCD78
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0224C83C: .word ov02_02253794
|
|
thumb_func_end ov02_0224C7D4
|
|
|
|
thumb_func_start ov02_0224C840
|
|
ov02_0224C840: ; 0x0224C840
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
ldr r0, [r1, #0xc]
|
|
add r4, r2, #0
|
|
bl Save_LocalFieldData_Get
|
|
add r6, r0, #0
|
|
bl LocalFieldData_GetBlackoutSpawn
|
|
add r1, sp, #0
|
|
add r7, r0, #0
|
|
bl GetFlyWarpData
|
|
add r0, r6, #0
|
|
bl LocalFieldData_GetSpecialSpawnWarpPtr
|
|
add r1, r0, #0
|
|
add r0, r7, #0
|
|
bl GetSpecialSpawnWarpData
|
|
ldr r2, [r4, #0xc]
|
|
add r0, r5, #0
|
|
add r1, sp, #0
|
|
bl sub_02053B04
|
|
mov r0, #2
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224C840
|
|
|
|
thumb_func_start ov02_0224C87C
|
|
ov02_0224C87C: ; 0x0224C87C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r0, r5, #0
|
|
mov r1, #4
|
|
add r4, r2, #0
|
|
bl ov01_021FCD2C
|
|
ldr r2, _0224C8C4 ; =0xFFF6A000
|
|
str r0, [r4, #0x1c]
|
|
mov r1, #1
|
|
mov r3, #0xf
|
|
bl ov01_021FCD8C
|
|
ldr r0, [r4, #0x20]
|
|
ldr r1, _0224C8C8 ; =ov02_022537DC
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C8B2
|
|
add r5, #0xe4
|
|
ldr r0, [r5]
|
|
ldr r1, _0224C8C8 ; =ov02_022537DC
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x14]
|
|
_0224C8B2:
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
ldr r0, _0224C8CC ; =SEQ_SE_DP_KAIDAN2
|
|
bl PlaySE
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0224C8C4: .word 0xFFF6A000
|
|
_0224C8C8: .word ov02_022537DC
|
|
_0224C8CC: .word SEQ_SE_DP_KAIDAN2
|
|
thumb_func_end ov02_0224C87C
|
|
|
|
thumb_func_start ov02_0224C8D0
|
|
ov02_0224C8D0: ; 0x0224C8D0
|
|
push {r3, r4, r5, lr}
|
|
add r4, r2, #0
|
|
ldr r0, [r4, #0x10]
|
|
add r5, r1, #0
|
|
bl EventObjectMovementMan_IsFinish
|
|
cmp r0, #0
|
|
bne _0224C8E4
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0224C8E4:
|
|
ldr r0, [r4, #0x10]
|
|
bl EventObjectMovementMan_Delete
|
|
ldr r0, [r4, #0x20]
|
|
ldr r1, _0224C938 ; =ov02_022537B8
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C90E
|
|
ldr r0, [r4, #0x14]
|
|
bl EventObjectMovementMan_Delete
|
|
add r0, r5, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
ldr r1, _0224C938 ; =ov02_022537B8
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x14]
|
|
_0224C90E:
|
|
ldr r0, [r5, #0x40]
|
|
bl PlayerAvatar_GetState
|
|
cmp r0, #2
|
|
beq _0224C92E
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
ldr r0, [r4, #0x24]
|
|
beq _0224C928
|
|
bl ov02_0224DDF4
|
|
str r0, [r4, #0x2c]
|
|
b _0224C92E
|
|
_0224C928:
|
|
bl ov02_0224DDE0
|
|
str r0, [r4, #0x2c]
|
|
_0224C92E:
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0224C938: .word ov02_022537B8
|
|
thumb_func_end ov02_0224C8D0
|
|
|
|
thumb_func_start ov02_0224C93C
|
|
ov02_0224C93C: ; 0x0224C93C
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r2, #0
|
|
ldr r0, [r4, #0x10]
|
|
add r5, r1, #0
|
|
bl EventObjectMovementMan_IsFinish
|
|
cmp r0, #0
|
|
bne _0224C954
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r4, r5, pc}
|
|
_0224C954:
|
|
ldr r0, [r4, #0x10]
|
|
bl EventObjectMovementMan_Delete
|
|
ldr r0, [r4, #0x20]
|
|
ldr r1, _0224C9B0 ; =ov02_02253794
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C97C
|
|
ldr r0, [r4, #0x14]
|
|
bl EventObjectMovementMan_Delete
|
|
add r5, #0xe4
|
|
ldr r0, [r5]
|
|
ldr r1, _0224C9B0 ; =ov02_02253794
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x14]
|
|
_0224C97C:
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
cmp r0, #8
|
|
bge _0224C98C
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r4, r5, pc}
|
|
_0224C98C:
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
ldr r3, _0224C9B4 ; =0x00007FFF
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
_0224C9B0: .word ov02_02253794
|
|
_0224C9B4: .word 0x00007FFF
|
|
thumb_func_end ov02_0224C93C
|
|
|
|
thumb_func_start ov02_0224C9B8
|
|
ov02_0224C9B8: ; 0x0224C9B8
|
|
push {r3, r4, r5, lr}
|
|
add r4, r2, #0
|
|
ldr r0, [r4, #0x10]
|
|
add r5, r1, #0
|
|
bl EventObjectMovementMan_IsFinish
|
|
cmp r0, #1
|
|
bne _0224C9F2
|
|
ldr r0, [r4, #0x10]
|
|
bl EventObjectMovementMan_Delete
|
|
ldr r0, [r4, #0x20]
|
|
ldr r1, _0224CA34 ; =ov02_02253794
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224C9F2
|
|
ldr r0, [r4, #0x14]
|
|
bl EventObjectMovementMan_Delete
|
|
add r0, r5, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
ldr r1, _0224CA34 ; =ov02_02253794
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r4, #0x14]
|
|
_0224C9F2:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
bne _0224C9FE
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0224C9FE:
|
|
ldr r0, [r4, #0x10]
|
|
bl EventObjectMovementMan_Delete
|
|
ldr r0, [r5, #0x40]
|
|
bl PlayerAvatar_GetState
|
|
cmp r0, #2
|
|
beq _0224CA18
|
|
ldr r0, [r4, #0x2c]
|
|
bl ov02_0224DE08
|
|
mov r0, #0
|
|
str r0, [r4, #0x2c]
|
|
_0224CA18:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224CA24
|
|
ldr r0, [r4, #0x14]
|
|
bl EventObjectMovementMan_Delete
|
|
_0224CA24:
|
|
ldr r0, [r4, #0x1c]
|
|
bl ov01_021FCD78
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0224CA34: .word ov02_02253794
|
|
thumb_func_end ov02_0224C9B8
|
|
|
|
thumb_func_start ov02_0224CA38
|
|
ov02_0224CA38: ; 0x0224CA38
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r1, #0xc]
|
|
add r4, r2, #0
|
|
bl Save_LocalFieldData_Get
|
|
bl LocalFieldData_GetSpecialSpawnWarpPtr
|
|
add r1, r0, #0
|
|
ldr r2, [r4, #0xc]
|
|
add r0, r5, #0
|
|
bl sub_02053B04
|
|
mov r0, #2
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224CA38
|
|
|
|
thumb_func_start ov02_0224CA58
|
|
ov02_0224CA58: ; 0x0224CA58
|
|
push {r4, r5, r6, r7}
|
|
add r3, r0, #0
|
|
add r0, r2, #0
|
|
sub r0, r0, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
cmp r2, #0
|
|
beq _0224CAB4
|
|
add r6, r3, r1
|
|
sub r7, r1, #1
|
|
_0224CA6C:
|
|
sub r1, r6, #1
|
|
ldrb r2, [r1]
|
|
mov r1, #1
|
|
add r5, r7, #0
|
|
and r1, r2
|
|
lsl r1, r1, #0x18
|
|
lsr r4, r1, #0x18
|
|
cmp r7, #0
|
|
ble _0224CA9A
|
|
_0224CA7E:
|
|
ldrb r1, [r3, r5]
|
|
add r2, r3, r5
|
|
sub r2, r2, #1
|
|
asr r1, r1, #1
|
|
strb r1, [r3, r5]
|
|
ldrb r2, [r2]
|
|
ldrb r1, [r3, r5]
|
|
lsl r2, r2, #0x1f
|
|
lsr r2, r2, #0x18
|
|
orr r1, r2
|
|
strb r1, [r3, r5]
|
|
sub r5, r5, #1
|
|
cmp r5, #0
|
|
bgt _0224CA7E
|
|
_0224CA9A:
|
|
ldrb r1, [r3, r5]
|
|
asr r1, r1, #1
|
|
strb r1, [r3, r5]
|
|
ldrb r2, [r3, r5]
|
|
lsl r1, r4, #7
|
|
orr r1, r2
|
|
strb r1, [r3, r5]
|
|
add r1, r0, #0
|
|
sub r0, r0, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
cmp r1, #0
|
|
bne _0224CA6C
|
|
_0224CAB4:
|
|
pop {r4, r5, r6, r7}
|
|
bx lr
|
|
thumb_func_end ov02_0224CA58
|
|
|
|
thumb_func_start ov02_0224CAB8
|
|
ov02_0224CAB8: ; 0x0224CAB8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
add r6, r2, #0
|
|
str r1, [sp]
|
|
add r7, r3, #0
|
|
bl WallpaperPasswordBank_GetNum
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl WallpaperPasswordBank_GetIndexOfWord
|
|
add r1, sp, #4
|
|
strh r0, [r1, #4]
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
bl WallpaperPasswordBank_GetIndexOfWord
|
|
add r1, sp, #4
|
|
strh r0, [r1, #6]
|
|
add r1, sp, #0x18
|
|
ldrh r1, [r1, #0x10]
|
|
add r0, r5, #0
|
|
bl WallpaperPasswordBank_GetIndexOfWord
|
|
add r1, sp, #4
|
|
strh r0, [r1, #8]
|
|
add r1, sp, #0x18
|
|
ldrh r1, [r1, #0x14]
|
|
add r0, r5, #0
|
|
bl WallpaperPasswordBank_GetIndexOfWord
|
|
add r1, sp, #4
|
|
mov r2, #0
|
|
strh r0, [r1, #0xa]
|
|
add r3, sp, #8
|
|
add r5, sp, #4
|
|
add r7, r2, #0
|
|
_0224CB06:
|
|
ldrsh r0, [r3, r7]
|
|
cmp r0, #0
|
|
bge _0224CB14
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224CB14:
|
|
cmp r2, #0
|
|
ble _0224CB48
|
|
mov r6, #1
|
|
mvn r6, r6
|
|
ldrsh r6, [r3, r6]
|
|
cmp r0, r6
|
|
blt _0224CB34
|
|
sub r0, r0, r6
|
|
cmp r0, #0xff
|
|
ble _0224CB30
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224CB30:
|
|
strb r0, [r5]
|
|
b _0224CB5A
|
|
_0224CB34:
|
|
sub r0, r6, r0
|
|
sub r0, r4, r0
|
|
cmp r0, #0xff
|
|
ble _0224CB44
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224CB44:
|
|
strb r0, [r5]
|
|
b _0224CB5A
|
|
_0224CB48:
|
|
mov r0, #4
|
|
ldrsh r0, [r1, r0]
|
|
cmp r0, #0xff
|
|
ble _0224CB58
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224CB58:
|
|
strb r0, [r1]
|
|
_0224CB5A:
|
|
add r2, r2, #1
|
|
add r3, r3, #2
|
|
add r5, r5, #1
|
|
cmp r2, #4
|
|
blt _0224CB06
|
|
add r0, sp, #4
|
|
mov r1, #4
|
|
mov r2, #5
|
|
bl ov02_0224CA58
|
|
mov r2, #0
|
|
add r1, sp, #4
|
|
add r4, sp, #4
|
|
mov r3, #0xf0
|
|
_0224CB76:
|
|
ldrb r5, [r4, #3]
|
|
ldrb r0, [r1]
|
|
add r2, r2, #1
|
|
asr r6, r5, #4
|
|
and r5, r3
|
|
orr r5, r6
|
|
eor r0, r5
|
|
strb r0, [r1]
|
|
add r1, r1, #1
|
|
cmp r2, #3
|
|
blt _0224CB76
|
|
add r2, sp, #4
|
|
ldrb r3, [r2, #3]
|
|
mov r2, #0xf
|
|
add r0, sp, #4
|
|
and r2, r3
|
|
lsl r2, r2, #0x18
|
|
mov r1, #3
|
|
lsr r2, r2, #0x18
|
|
bl ov02_0224CA58
|
|
add r1, sp, #4
|
|
ldrb r5, [r1]
|
|
mov r0, #0xf
|
|
add r4, r5, #0
|
|
and r4, r0
|
|
cmp r4, #8
|
|
blt _0224CBB4
|
|
add sp, #0x10
|
|
sub r0, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224CBB4:
|
|
ldrb r0, [r1, #1]
|
|
eor r0, r5
|
|
strb r0, [r1, #1]
|
|
ldrb r0, [r1, #2]
|
|
eor r0, r5
|
|
strb r0, [r1, #2]
|
|
ldrb r2, [r1, #1]
|
|
ldrb r3, [r1, #2]
|
|
lsl r0, r2, #8
|
|
add r6, r0, #0
|
|
ldr r0, [sp]
|
|
orr r6, r3
|
|
cmp r0, r6
|
|
bne _0224CBEE
|
|
mov r0, #0xf0
|
|
and r0, r5
|
|
asr r0, r0, #4
|
|
cmp r0, #6
|
|
bne _0224CBEE
|
|
ldrb r0, [r1, #3]
|
|
add r1, r5, r2
|
|
mul r1, r3
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
cmp r0, r1
|
|
bne _0224CBEE
|
|
add sp, #0x10
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224CBEE:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224CAB8
|
|
|
|
thumb_func_start ov02_0224CBF8
|
|
ov02_0224CBF8: ; 0x0224CBF8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
add r6, r2, #0
|
|
str r1, [sp]
|
|
add r7, r3, #0
|
|
bl WallpaperPasswordBank_GetNum
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl WallpaperPasswordBank_GetIndexOfWord
|
|
add r1, sp, #4
|
|
strh r0, [r1, #4]
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
bl WallpaperPasswordBank_GetIndexOfWord
|
|
add r1, sp, #4
|
|
strh r0, [r1, #6]
|
|
add r1, sp, #0x18
|
|
ldrh r1, [r1, #0x10]
|
|
add r0, r5, #0
|
|
bl WallpaperPasswordBank_GetIndexOfWord
|
|
add r1, sp, #4
|
|
strh r0, [r1, #8]
|
|
add r1, sp, #0x18
|
|
ldrh r1, [r1, #0x14]
|
|
add r0, r5, #0
|
|
bl WallpaperPasswordBank_GetIndexOfWord
|
|
add r1, sp, #4
|
|
mov r2, #0
|
|
strh r0, [r1, #0xa]
|
|
add r3, sp, #8
|
|
add r5, sp, #4
|
|
add r7, r2, #0
|
|
_0224CC46:
|
|
ldrsh r0, [r3, r7]
|
|
cmp r0, #0
|
|
bge _0224CC54
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224CC54:
|
|
cmp r2, #0
|
|
ble _0224CC88
|
|
mov r6, #1
|
|
mvn r6, r6
|
|
ldrsh r6, [r3, r6]
|
|
cmp r0, r6
|
|
blt _0224CC74
|
|
sub r0, r0, r6
|
|
cmp r0, #0xff
|
|
ble _0224CC70
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224CC70:
|
|
strb r0, [r5]
|
|
b _0224CC9A
|
|
_0224CC74:
|
|
sub r0, r6, r0
|
|
sub r0, r4, r0
|
|
cmp r0, #0xff
|
|
ble _0224CC84
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224CC84:
|
|
strb r0, [r5]
|
|
b _0224CC9A
|
|
_0224CC88:
|
|
mov r0, #4
|
|
ldrsh r0, [r1, r0]
|
|
cmp r0, #0xff
|
|
ble _0224CC98
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224CC98:
|
|
strb r0, [r1]
|
|
_0224CC9A:
|
|
add r2, r2, #1
|
|
add r3, r3, #2
|
|
add r5, r5, #1
|
|
cmp r2, #4
|
|
blt _0224CC46
|
|
add r0, sp, #4
|
|
mov r1, #4
|
|
mov r2, #5
|
|
bl ov02_0224CA58
|
|
mov r2, #0
|
|
add r1, sp, #4
|
|
add r4, sp, #4
|
|
mov r3, #0xf0
|
|
_0224CCB6:
|
|
ldrb r5, [r4, #3]
|
|
ldrb r0, [r1]
|
|
add r2, r2, #1
|
|
asr r6, r5, #4
|
|
and r5, r3
|
|
orr r5, r6
|
|
eor r0, r5
|
|
strb r0, [r1]
|
|
add r1, r1, #1
|
|
cmp r2, #3
|
|
blt _0224CCB6
|
|
add r2, sp, #4
|
|
ldrb r3, [r2, #3]
|
|
mov r2, #0xf
|
|
add r0, sp, #4
|
|
and r2, r3
|
|
lsl r2, r2, #0x18
|
|
mov r1, #3
|
|
lsr r2, r2, #0x18
|
|
bl ov02_0224CA58
|
|
add r1, sp, #4
|
|
ldrb r4, [r1]
|
|
mov r0, #0xf
|
|
and r0, r4
|
|
lsl r2, r0, #0x18
|
|
lsr r2, r2, #0x18
|
|
cmp r2, #8
|
|
blo _0224CCF4
|
|
cmp r2, #0xb
|
|
blo _0224CCFC
|
|
_0224CCF4:
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224CCFC:
|
|
ldrb r2, [r1, #1]
|
|
eor r2, r4
|
|
strb r2, [r1, #1]
|
|
ldrb r2, [r1, #2]
|
|
eor r2, r4
|
|
strb r2, [r1, #2]
|
|
ldrb r2, [r1, #1]
|
|
ldrb r3, [r1, #2]
|
|
lsl r5, r2, #8
|
|
add r6, r5, #0
|
|
ldr r5, [sp]
|
|
orr r6, r3
|
|
cmp r5, r6
|
|
bne _0224CD30
|
|
mov r5, #0xf0
|
|
and r5, r4
|
|
asr r5, r5, #4
|
|
cmp r5, #6
|
|
bne _0224CD30
|
|
add r2, r4, r2
|
|
mul r2, r3
|
|
lsl r2, r2, #0x18
|
|
ldrb r1, [r1, #3]
|
|
lsr r2, r2, #0x18
|
|
cmp r1, r2
|
|
beq _0224CD34
|
|
_0224CD30:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
_0224CD34:
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_0224CBF8
|
|
|
|
thumb_func_start ov02_0224CD38
|
|
ov02_0224CD38: ; 0x0224CD38
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r6, r0, #0
|
|
ldr r0, [sp, #0x24]
|
|
add r7, r1, #0
|
|
str r2, [sp, #8]
|
|
add r5, r3, #0
|
|
bl WallpaperPasswordBank_Create
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
bl PlayerProfile_GetTrainerID_VisibleHalf
|
|
add r1, r0, #0
|
|
str r5, [sp]
|
|
add r0, sp, #0x10
|
|
ldrh r0, [r0, #0x10]
|
|
add r2, r7, #0
|
|
str r0, [sp, #4]
|
|
ldr r3, [sp, #8]
|
|
add r0, r4, #0
|
|
bl ov02_0224CAB8
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl WallpaperPasswordBank_Delete
|
|
add r0, r5, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_0224CD38
|
|
|
|
thumb_func_start ov02_0224CD74
|
|
ov02_0224CD74: ; 0x0224CD74
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r6, r0, #0
|
|
ldr r0, [sp, #0x24]
|
|
add r7, r1, #0
|
|
str r2, [sp, #8]
|
|
add r5, r3, #0
|
|
bl WallpaperPasswordBank_Create
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
bl PlayerProfile_GetTrainerID_VisibleHalf
|
|
add r1, r0, #0
|
|
str r5, [sp]
|
|
add r0, sp, #0x10
|
|
ldrh r0, [r0, #0x10]
|
|
add r2, r7, #0
|
|
str r0, [sp, #4]
|
|
ldr r3, [sp, #8]
|
|
add r0, r4, #0
|
|
bl ov02_0224CBF8
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl WallpaperPasswordBank_Delete
|
|
add r0, r5, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_0224CD74
|
|
|
|
thumb_func_start ov02_0224CDB0
|
|
ov02_0224CDB0: ; 0x0224CDB0
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x20
|
|
add r6, r1, #0
|
|
mov r1, #0x26
|
|
add r2, sp, #4
|
|
add r3, sp, #0
|
|
add r5, r0, #0
|
|
bl sub_02054C20
|
|
cmp r0, #0
|
|
beq _0224CE1C
|
|
mov r0, #4
|
|
mov r1, #0x18
|
|
bl AllocFromHeapAtEnd
|
|
add r4, r0, #0
|
|
strb r6, [r4, #0xc]
|
|
mov r0, #0
|
|
strb r0, [r4, #0xd]
|
|
strb r0, [r4, #0xe]
|
|
strb r0, [r4, #0xf]
|
|
ldr r0, [r5, #0x30]
|
|
bl MapMatrix_GetWidth
|
|
add r1, r0, #0
|
|
ldr r0, [sp]
|
|
add r2, sp, #0x14
|
|
bl sub_02054DC8
|
|
ldr r1, [sp, #4]
|
|
add r0, sp, #8
|
|
bl ov01_021F3B0C
|
|
add r3, sp, #8
|
|
ldmia r3!, {r0, r1}
|
|
add r2, r4, #0
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
ldr r1, [r4]
|
|
ldr r0, [sp, #0x14]
|
|
add r2, r4, #0
|
|
add r0, r1, r0
|
|
str r0, [r4]
|
|
ldr r1, [r4, #8]
|
|
ldr r0, [sp, #0x1c]
|
|
add r0, r1, r0
|
|
str r0, [r4, #8]
|
|
ldr r0, [r5, #0x10]
|
|
ldr r1, _0224CE24 ; =ov02_0224CE28
|
|
bl TaskManager_Call
|
|
add sp, #0x20
|
|
pop {r4, r5, r6, pc}
|
|
_0224CE1C:
|
|
bl GF_AssertFail
|
|
add sp, #0x20
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0224CE24: .word ov02_0224CE28
|
|
thumb_func_end ov02_0224CDB0
|
|
|
|
thumb_func_start ov02_0224CE28
|
|
ov02_0224CE28: ; 0x0224CE28
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x30
|
|
add r4, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
bl TaskManager_GetEnv
|
|
add r4, r0, #0
|
|
ldrb r1, [r4, #0xf]
|
|
cmp r1, #5
|
|
bls _0224CE44
|
|
b _0224CFC0
|
|
_0224CE44:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0224CE50: ; jump table
|
|
.short _0224CE5C - _0224CE50 - 2 ; case 0
|
|
.short _0224CEBA - _0224CE50 - 2 ; case 1
|
|
.short _0224CF1C - _0224CE50 - 2 ; case 2
|
|
.short _0224CF64 - _0224CE50 - 2 ; case 3
|
|
.short _0224CF76 - _0224CE50 - 2 ; case 4
|
|
.short _0224CFB6 - _0224CE50 - 2 ; case 5
|
|
_0224CE5C:
|
|
ldr r1, [r6, #0x34]
|
|
mov r0, #0x6b
|
|
bl ov01_021FB90C
|
|
ldr r0, [r0]
|
|
bl NNS_G3dGetMdlSet
|
|
cmp r0, #0
|
|
beq _0224CE8E
|
|
add r2, r0, #0
|
|
add r2, #8
|
|
beq _0224CE82
|
|
ldrb r1, [r0, #9]
|
|
cmp r1, #0
|
|
bls _0224CE82
|
|
ldrh r1, [r0, #0xe]
|
|
add r1, r2, r1
|
|
add r1, r1, #4
|
|
b _0224CE84
|
|
_0224CE82:
|
|
mov r1, #0
|
|
_0224CE84:
|
|
cmp r1, #0
|
|
beq _0224CE8E
|
|
ldr r1, [r1]
|
|
add r5, r0, r1
|
|
b _0224CE90
|
|
_0224CE8E:
|
|
mov r5, #0
|
|
_0224CE90:
|
|
ldr r0, [r6, #0x34]
|
|
bl ov01_021FB9E0
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
str r5, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #1
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
str r1, [sp, #0x14]
|
|
ldr r0, [r6, #0x54]
|
|
ldr r1, [r6, #0x58]
|
|
mov r2, #0x10
|
|
mov r3, #0x6b
|
|
bl ov01_021E8DE8
|
|
ldrb r0, [r4, #0xf]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xf]
|
|
b _0224CFC0
|
|
_0224CEBA:
|
|
add r1, sp, #0x18
|
|
mov r0, #0
|
|
str r0, [r1]
|
|
str r0, [r1, #4]
|
|
str r0, [r1, #8]
|
|
ldrb r2, [r4, #0xd]
|
|
mov r1, #0xc
|
|
ldr r0, [r4]
|
|
add r3, r2, #0
|
|
ldr r2, _0224CFC8 ; =ov02_02253DD8
|
|
mul r3, r1
|
|
ldr r2, [r2, r3]
|
|
add r0, r0, r2
|
|
str r0, [sp, #0x24]
|
|
ldrb r2, [r4, #0xd]
|
|
ldr r0, [r4, #4]
|
|
add r3, r2, #0
|
|
ldr r2, _0224CFCC ; =ov02_02253DDC
|
|
mul r3, r1
|
|
ldr r2, [r2, r3]
|
|
add r0, r0, r2
|
|
str r0, [sp, #0x28]
|
|
ldrb r2, [r4, #0xd]
|
|
ldr r0, [r4, #8]
|
|
add r3, r2, #0
|
|
mul r3, r1
|
|
ldr r1, _0224CFD0 ; =ov02_02253DE0
|
|
ldr r1, [r1, r3]
|
|
add r0, r0, r1
|
|
str r0, [sp, #0x2c]
|
|
ldr r0, _0224CFD4 ; =SEQ_SE_DP_BOWA
|
|
bl PlaySE
|
|
ldr r0, [r6, #0x54]
|
|
add r6, #0x9c
|
|
str r0, [sp]
|
|
ldr r0, [r6]
|
|
mov r1, #0x6b
|
|
add r2, sp, #0x24
|
|
add r3, sp, #0x18
|
|
bl ov01_021F3C0C
|
|
ldrb r1, [r4, #0xd]
|
|
add r1, r4, r1
|
|
strb r0, [r1, #0x10]
|
|
ldrb r0, [r4, #0xf]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xf]
|
|
b _0224CFC0
|
|
_0224CF1C:
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #0xf
|
|
bhs _0224CF28
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
b _0224CFC0
|
|
_0224CF28:
|
|
mov r0, #0
|
|
strb r0, [r4, #0xe]
|
|
ldrb r0, [r4, #0xd]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xd]
|
|
ldrb r1, [r4, #0xd]
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r1, r0
|
|
bhs _0224CF40
|
|
mov r0, #1
|
|
strb r0, [r4, #0xf]
|
|
b _0224CFC0
|
|
_0224CF40:
|
|
add r0, r6, #0
|
|
add r0, #0x9c
|
|
ldrb r1, [r4, #0x10]
|
|
ldr r0, [r0]
|
|
bl ov01_021F3B60
|
|
bl ov01_021F3B38
|
|
add r3, r0, #0
|
|
ldr r0, [r6, #0x58]
|
|
mov r1, #0x10
|
|
mov r2, #0
|
|
bl ov01_021E8E40
|
|
ldrb r0, [r4, #0xf]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xf]
|
|
b _0224CFC0
|
|
_0224CF64:
|
|
ldr r0, [r6, #0x58]
|
|
mov r1, #0x10
|
|
mov r2, #0
|
|
bl ov01_021E8E70
|
|
ldrb r0, [r4, #0xf]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xf]
|
|
b _0224CFC0
|
|
_0224CF76:
|
|
ldr r0, [r6, #0x58]
|
|
mov r1, #0x10
|
|
bl ov01_021E8F10
|
|
cmp r0, #0
|
|
beq _0224CFC0
|
|
ldr r0, [r6, #0x54]
|
|
ldr r1, [r6, #0x58]
|
|
mov r2, #0x10
|
|
bl ov01_021E8ED0
|
|
ldrb r0, [r4, #0xc]
|
|
mov r5, #0
|
|
cmp r0, #0
|
|
bls _0224CFAE
|
|
_0224CF94:
|
|
add r0, r4, r5
|
|
add r1, r6, #0
|
|
add r1, #0x9c
|
|
ldrb r0, [r0, #0x10]
|
|
ldr r1, [r1]
|
|
bl ov01_021F36DC
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r5, r0
|
|
blo _0224CF94
|
|
_0224CFAE:
|
|
ldrb r0, [r4, #0xf]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xf]
|
|
b _0224CFC0
|
|
_0224CFB6:
|
|
bl FreeToHeap
|
|
add sp, #0x30
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_0224CFC0:
|
|
mov r0, #0
|
|
add sp, #0x30
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0224CFC8: .word ov02_02253DD8
|
|
_0224CFCC: .word ov02_02253DDC
|
|
_0224CFD0: .word ov02_02253DE0
|
|
_0224CFD4: .word SEQ_SE_DP_BOWA
|
|
thumb_func_end ov02_0224CE28
|
|
|
|
thumb_func_start ov02_0224CFD8
|
|
ov02_0224CFD8: ; 0x0224CFD8
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r7, r2, #0
|
|
bl GetMapObjectByID
|
|
add r6, r0, #0
|
|
add r1, sp, #0
|
|
bl MapObject_GetPositionVec
|
|
add r0, r6, #0
|
|
bl MapObject_GetCurrentX
|
|
add r5, r0, #0
|
|
add r0, r6, #0
|
|
bl MapObject_GetCurrentY
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
bl MapObject_GetFacingDirection
|
|
cmp r0, #3
|
|
bhi _0224D028
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0224D010: ; jump table
|
|
.short _0224D018 - _0224D010 - 2 ; case 0
|
|
.short _0224D01C - _0224D010 - 2 ; case 1
|
|
.short _0224D020 - _0224D010 - 2 ; case 2
|
|
.short _0224D024 - _0224D010 - 2 ; case 3
|
|
_0224D018:
|
|
sub r4, r4, #1
|
|
b _0224D02C
|
|
_0224D01C:
|
|
add r4, r4, #1
|
|
b _0224D02C
|
|
_0224D020:
|
|
sub r5, r5, #1
|
|
b _0224D02C
|
|
_0224D024:
|
|
add r5, r5, #1
|
|
b _0224D02C
|
|
_0224D028:
|
|
bl GF_AssertFail
|
|
_0224D02C:
|
|
mov r3, #2
|
|
lsl r1, r5, #0x10
|
|
lsl r3, r3, #0xe
|
|
ldr r2, [sp, #4]
|
|
lsl r4, r4, #0x10
|
|
add r1, r1, r3
|
|
add r0, r7, #0
|
|
add r3, r4, r3
|
|
bl ov01_021FC00C
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_0224CFD8
|
|
|
|
thumb_func_start ov02_0224D044
|
|
ov02_0224D044: ; 0x0224D044
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r7, r1, #0
|
|
add r6, r0, #0
|
|
add r1, sp, #0
|
|
bl PlayerAvatar_GetPositionVec
|
|
add r0, r6, #0
|
|
bl GetPlayerXCoord
|
|
add r5, r0, #0
|
|
add r0, r6, #0
|
|
bl GetPlayerYCoord
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
bl PlayerAvatar_GetFacingDirection
|
|
cmp r0, #3
|
|
bhi _0224D090
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0224D078: ; jump table
|
|
.short _0224D080 - _0224D078 - 2 ; case 0
|
|
.short _0224D084 - _0224D078 - 2 ; case 1
|
|
.short _0224D088 - _0224D078 - 2 ; case 2
|
|
.short _0224D08C - _0224D078 - 2 ; case 3
|
|
_0224D080:
|
|
sub r4, r4, #1
|
|
b _0224D094
|
|
_0224D084:
|
|
add r4, r4, #1
|
|
b _0224D094
|
|
_0224D088:
|
|
sub r5, r5, #1
|
|
b _0224D094
|
|
_0224D08C:
|
|
add r5, r5, #1
|
|
b _0224D094
|
|
_0224D090:
|
|
bl GF_AssertFail
|
|
_0224D094:
|
|
mov r3, #2
|
|
lsl r1, r5, #0x10
|
|
lsl r3, r3, #0xe
|
|
ldr r2, [sp, #4]
|
|
lsl r4, r4, #0x10
|
|
add r1, r1, r3
|
|
add r0, r7, #0
|
|
add r3, r4, r3
|
|
bl ov01_021FC00C
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_0224D044
|
|
|
|
thumb_func_start ov02_0224D0AC
|
|
ov02_0224D0AC: ; 0x0224D0AC
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r1, #0
|
|
add r1, sp, #0
|
|
bl PlayerAvatar_GetPositionVec
|
|
ldr r1, [sp]
|
|
ldr r2, [sp, #4]
|
|
ldr r3, [sp, #8]
|
|
add r0, r4, #0
|
|
bl ov01_021FC00C
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov02_0224D0AC
|
|
|
|
thumb_func_start ov02_0224D0C8
|
|
ov02_0224D0C8: ; 0x0224D0C8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r5, r1, #0
|
|
str r2, [sp, #8]
|
|
add r6, r0, #0
|
|
mov r1, #0
|
|
mov r2, #0xdc
|
|
add r4, r3, #0
|
|
ldr r7, [sp, #0x28]
|
|
bl memset
|
|
add r0, r6, #0
|
|
add r0, #0x78
|
|
mov r1, #0x86
|
|
add r2, r5, #0
|
|
mov r3, #4
|
|
bl ov01_021FBCD8
|
|
add r1, r6, #0
|
|
add r0, r6, #0
|
|
add r1, #0x78
|
|
bl ov01_021FBF2C
|
|
add r0, r6, #0
|
|
add r0, #0xd8
|
|
str r4, [r0]
|
|
add r0, r6, #0
|
|
add r0, #0xd8
|
|
ldr r0, [r0]
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
bls _0224D13E
|
|
add r0, r6, #0
|
|
add r5, r6, #0
|
|
str r0, [sp, #0xc]
|
|
add r0, #0x78
|
|
add r5, #0x88
|
|
str r0, [sp, #0xc]
|
|
_0224D114:
|
|
ldr r3, [sp, #8]
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
ldr r1, [sp, #0xc]
|
|
add r0, r5, #0
|
|
mov r2, #0x86
|
|
add r3, r3, r4
|
|
str r7, [sp, #4]
|
|
bl ov01_021FBE44
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
bl ov01_021FBF50
|
|
add r0, r6, #0
|
|
add r0, #0xd8
|
|
ldr r0, [r0]
|
|
add r4, r4, #1
|
|
add r5, #0x14
|
|
cmp r4, r0
|
|
blo _0224D114
|
|
_0224D13E:
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224D0C8
|
|
|
|
thumb_func_start ov02_0224D144
|
|
ov02_0224D144: ; 0x0224D144
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
add r0, #0x78
|
|
add r7, r1, #0
|
|
bl ov01_021FBDA8
|
|
add r0, r6, #0
|
|
add r0, #0xd8
|
|
ldr r0, [r0]
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
bls _0224D176
|
|
add r5, r6, #0
|
|
add r5, #0x88
|
|
_0224D160:
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
bl ov01_021FBE80
|
|
add r0, r6, #0
|
|
add r0, #0xd8
|
|
ldr r0, [r0]
|
|
add r4, r4, #1
|
|
add r5, #0x14
|
|
cmp r4, r0
|
|
blo _0224D160
|
|
_0224D176:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_0224D144
|
|
|
|
thumb_func_start ov02_0224D178
|
|
ov02_0224D178: ; 0x0224D178
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
add r0, #0xd8
|
|
ldr r0, [r0]
|
|
mov r6, #1
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
bls _0224D1A6
|
|
add r5, r7, #0
|
|
add r5, #0x88
|
|
_0224D18C:
|
|
mov r1, #1
|
|
add r0, r5, #0
|
|
lsl r1, r1, #0xc
|
|
bl ov01_021FBEE4
|
|
and r6, r0
|
|
add r0, r7, #0
|
|
add r0, #0xd8
|
|
ldr r0, [r0]
|
|
add r4, r4, #1
|
|
add r5, #0x14
|
|
cmp r4, r0
|
|
blo _0224D18C
|
|
_0224D1A6:
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224D178
|
|
|
|
thumb_func_start ov02_0224D1AC
|
|
ov02_0224D1AC: ; 0x0224D1AC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
add r0, #0xd8
|
|
ldr r0, [r0]
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
bls _0224D1D8
|
|
add r5, r6, #0
|
|
mov r7, #1
|
|
add r5, #0x88
|
|
lsl r7, r7, #0xc
|
|
_0224D1C2:
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
bl ov01_021FBEAC
|
|
add r0, r6, #0
|
|
add r0, #0xd8
|
|
ldr r0, [r0]
|
|
add r4, r4, #1
|
|
add r5, #0x14
|
|
cmp r4, r0
|
|
blo _0224D1C2
|
|
_0224D1D8:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224D1AC
|
|
|
|
thumb_func_start ov02_0224D1DC
|
|
ov02_0224D1DC: ; 0x0224D1DC
|
|
ldr r3, _0224D1E0 ; =ov01_021FBF68
|
|
bx r3
|
|
.balign 4, 0
|
|
_0224D1E0: .word ov01_021FBF68
|
|
thumb_func_end ov02_0224D1DC
|
|
|
|
thumb_func_start ov02_0224D1E4
|
|
ov02_0224D1E4: ; 0x0224D1E4
|
|
push {r3, r4, r5, lr}
|
|
add r4, r2, #0
|
|
add r5, r1, #0
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #0xf0
|
|
bl memset
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
mov r1, #4
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
mov r1, #3
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r2, #0
|
|
add r3, r1, #0
|
|
bl ov02_0224D0C8
|
|
ldr r0, [r5, #0x40]
|
|
add r1, r4, #0
|
|
bl ov02_0224D044
|
|
ldr r0, _0224D228 ; =SEQ_SE_DP_FW015
|
|
bl PlaySE
|
|
mov r0, #0
|
|
add r4, #0xec
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0224D228: .word SEQ_SE_DP_FW015
|
|
thumb_func_end ov02_0224D1E4
|
|
|
|
thumb_func_start ov02_0224D22C
|
|
ov02_0224D22C: ; 0x0224D22C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r2, #0
|
|
add r5, r1, #0
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #0xf0
|
|
bl memset
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
mov r1, #4
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
mov r1, #3
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r2, #0
|
|
add r3, r1, #0
|
|
bl ov02_0224D0C8
|
|
ldr r0, [r5, #0x3c]
|
|
mov r1, #0xfd
|
|
add r2, r4, #0
|
|
bl ov02_0224CFD8
|
|
ldr r0, _0224D274 ; =SEQ_SE_DP_FW015
|
|
bl PlaySE
|
|
mov r0, #0
|
|
add r4, #0xec
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0224D274: .word SEQ_SE_DP_FW015
|
|
thumb_func_end ov02_0224D22C
|
|
|
|
thumb_func_start ov02_0224D278
|
|
ov02_0224D278: ; 0x0224D278
|
|
ldr r3, _0224D284 ; =ov02_0224D144
|
|
add r0, r2, #0
|
|
add r2, #0xdc
|
|
add r1, r2, #0
|
|
bx r3
|
|
nop
|
|
_0224D284: .word ov02_0224D144
|
|
thumb_func_end ov02_0224D278
|
|
|
|
thumb_func_start ov02_0224D288
|
|
ov02_0224D288: ; 0x0224D288
|
|
push {r4, lr}
|
|
add r4, r2, #0
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0224D29A
|
|
cmp r0, #1
|
|
pop {r4, pc}
|
|
_0224D29A:
|
|
add r0, r4, #0
|
|
bl ov02_0224D178
|
|
cmp r0, #1
|
|
bne _0224D2B8
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov01_021FC004
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
ldr r0, [r0]
|
|
add r4, #0xec
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
_0224D2B8:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224D288
|
|
|
|
thumb_func_start ov02_0224D2BC
|
|
ov02_0224D2BC: ; 0x0224D2BC
|
|
ldr r3, _0224D2C4 ; =ov02_0224D1DC
|
|
add r0, r2, #0
|
|
bx r3
|
|
nop
|
|
_0224D2C4: .word ov02_0224D1DC
|
|
thumb_func_end ov02_0224D2BC
|
|
|
|
thumb_func_start ov02_0224D2C8
|
|
ov02_0224D2C8: ; 0x0224D2C8
|
|
ldr r0, [r0, #4]
|
|
ldr r3, _0224D2D4 ; =ov01_021E67BC
|
|
ldr r0, [r0, #4]
|
|
ldr r1, _0224D2D8 ; =ov02_02253974
|
|
bx r3
|
|
nop
|
|
_0224D2D4: .word ov01_021E67BC
|
|
_0224D2D8: .word ov02_02253974
|
|
thumb_func_end ov02_0224D2C8
|
|
|
|
thumb_func_start ov02_0224D2DC
|
|
ov02_0224D2DC: ; 0x0224D2DC
|
|
ldr r0, [r0, #4]
|
|
ldr r3, _0224D2E8 ; =ov01_021E67BC
|
|
ldr r0, [r0, #4]
|
|
ldr r1, _0224D2EC ; =ov02_022539BC
|
|
bx r3
|
|
nop
|
|
_0224D2E8: .word ov01_021E67BC
|
|
_0224D2EC: .word ov02_022539BC
|
|
thumb_func_end ov02_0224D2DC
|
|
|
|
thumb_func_start ov02_0224D2F0
|
|
ov02_0224D2F0: ; 0x0224D2F0
|
|
ldr r3, _0224D2F4 ; =ov01_021E683C
|
|
bx r3
|
|
.balign 4, 0
|
|
_0224D2F4: .word ov01_021E683C
|
|
thumb_func_end ov02_0224D2F0
|
|
|
|
thumb_func_start ov02_0224D2F8
|
|
ov02_0224D2F8: ; 0x0224D2F8
|
|
push {r3, lr}
|
|
bl ov01_021E687C
|
|
add r0, #0xec
|
|
ldr r0, [r0]
|
|
cmp r0, #1
|
|
bne _0224D30A
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0224D30A:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224D2F8
|
|
|
|
thumb_func_start ov02_0224D310
|
|
ov02_0224D310: ; 0x0224D310
|
|
push {r3, r4, r5, lr}
|
|
add r4, r2, #0
|
|
add r5, r1, #0
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #0xf0
|
|
bl memset
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
mov r1, #4
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
mov r2, #4
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #8
|
|
add r3, r2, #0
|
|
bl ov02_0224D0C8
|
|
ldr r0, [r5, #0x40]
|
|
add r1, r4, #0
|
|
bl ov02_0224D044
|
|
ldr r0, _0224D354 ; =SEQ_SE_DP_FW088
|
|
bl PlaySE
|
|
mov r0, #0
|
|
add r4, #0xec
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0224D354: .word SEQ_SE_DP_FW088
|
|
thumb_func_end ov02_0224D310
|
|
|
|
thumb_func_start ov02_0224D358
|
|
ov02_0224D358: ; 0x0224D358
|
|
push {r3, r4, r5, lr}
|
|
add r4, r2, #0
|
|
add r5, r1, #0
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #0xf0
|
|
bl memset
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
mov r1, #4
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
mov r2, #4
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #8
|
|
add r3, r2, #0
|
|
bl ov02_0224D0C8
|
|
ldr r0, [r5, #0x3c]
|
|
mov r1, #0xfd
|
|
add r2, r4, #0
|
|
bl ov02_0224CFD8
|
|
ldr r0, _0224D3A0 ; =SEQ_SE_DP_FW088
|
|
bl PlaySE
|
|
mov r0, #0
|
|
add r4, #0xec
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0224D3A0: .word SEQ_SE_DP_FW088
|
|
thumb_func_end ov02_0224D358
|
|
|
|
thumb_func_start ov02_0224D3A4
|
|
ov02_0224D3A4: ; 0x0224D3A4
|
|
ldr r3, _0224D3B0 ; =ov02_0224D144
|
|
add r0, r2, #0
|
|
add r2, #0xdc
|
|
add r1, r2, #0
|
|
bx r3
|
|
nop
|
|
_0224D3B0: .word ov02_0224D144
|
|
thumb_func_end ov02_0224D3A4
|
|
|
|
thumb_func_start ov02_0224D3B4
|
|
ov02_0224D3B4: ; 0x0224D3B4
|
|
push {r4, lr}
|
|
add r4, r2, #0
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0224D3C6
|
|
cmp r0, #1
|
|
pop {r4, pc}
|
|
_0224D3C6:
|
|
add r0, r4, #0
|
|
bl ov02_0224D178
|
|
cmp r0, #1
|
|
bne _0224D3E4
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov01_021FC004
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
ldr r0, [r0]
|
|
add r4, #0xec
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
_0224D3E4:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224D3B4
|
|
|
|
thumb_func_start ov02_0224D3E8
|
|
ov02_0224D3E8: ; 0x0224D3E8
|
|
ldr r3, _0224D3F0 ; =ov02_0224D1DC
|
|
add r0, r2, #0
|
|
bx r3
|
|
nop
|
|
_0224D3F0: .word ov02_0224D1DC
|
|
thumb_func_end ov02_0224D3E8
|
|
|
|
thumb_func_start ov02_0224D3F4
|
|
ov02_0224D3F4: ; 0x0224D3F4
|
|
ldr r0, [r0, #4]
|
|
ldr r3, _0224D400 ; =ov01_021E67BC
|
|
ldr r0, [r0, #4]
|
|
ldr r1, _0224D404 ; =ov02_022538FC
|
|
bx r3
|
|
nop
|
|
_0224D400: .word ov01_021E67BC
|
|
_0224D404: .word ov02_022538FC
|
|
thumb_func_end ov02_0224D3F4
|
|
|
|
thumb_func_start ov02_0224D408
|
|
ov02_0224D408: ; 0x0224D408
|
|
ldr r0, [r0, #4]
|
|
ldr r3, _0224D414 ; =ov01_021E67BC
|
|
ldr r0, [r0, #4]
|
|
ldr r1, _0224D418 ; =ov02_0225398C
|
|
bx r3
|
|
nop
|
|
_0224D414: .word ov01_021E67BC
|
|
_0224D418: .word ov02_0225398C
|
|
thumb_func_end ov02_0224D408
|
|
|
|
thumb_func_start ov02_0224D41C
|
|
ov02_0224D41C: ; 0x0224D41C
|
|
ldr r3, _0224D420 ; =ov01_021E683C
|
|
bx r3
|
|
.balign 4, 0
|
|
_0224D420: .word ov01_021E683C
|
|
thumb_func_end ov02_0224D41C
|
|
|
|
thumb_func_start ov02_0224D424
|
|
ov02_0224D424: ; 0x0224D424
|
|
push {r3, lr}
|
|
bl ov01_021E687C
|
|
add r0, #0xec
|
|
ldr r0, [r0]
|
|
cmp r0, #1
|
|
bne _0224D436
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0224D436:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224D424
|
|
|
|
thumb_func_start ov02_0224D43C
|
|
ov02_0224D43C: ; 0x0224D43C
|
|
push {r4, lr}
|
|
add r4, r2, #0
|
|
mov r2, #0x73
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #2
|
|
bl memset
|
|
mov r0, #0x6e
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
mov r1, #4
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
ldr r0, _0224D464 ; =0x000001CA
|
|
mov r1, #0
|
|
strh r1, [r4, r0]
|
|
pop {r4, pc}
|
|
nop
|
|
_0224D464: .word 0x000001CA
|
|
thumb_func_end ov02_0224D43C
|
|
|
|
thumb_func_start ov02_0224D468
|
|
ov02_0224D468: ; 0x0224D468
|
|
push {r4, r5, r6, lr}
|
|
mov r0, #0x6e
|
|
add r5, r2, #0
|
|
lsl r0, r0, #2
|
|
mov r4, #0
|
|
add r6, r5, r0
|
|
_0224D474:
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov02_0224D144
|
|
add r4, r4, #1
|
|
add r5, #0xdc
|
|
cmp r4, #2
|
|
blt _0224D474
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224D468
|
|
|
|
thumb_func_start ov02_0224D488
|
|
ov02_0224D488: ; 0x0224D488
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
ldr r7, _0224D574 ; =0x000001CA
|
|
add r4, r2, #0
|
|
ldrh r0, [r4, r7]
|
|
add r5, r1, #0
|
|
cmp r0, #3
|
|
bhi _0224D570
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0224D4A4: ; jump table
|
|
.short _0224D4AC - _0224D4A4 - 2 ; case 0
|
|
.short _0224D50A - _0224D4A4 - 2 ; case 1
|
|
.short _0224D522 - _0224D4A4 - 2 ; case 2
|
|
.short _0224D55E - _0224D4A4 - 2 ; case 3
|
|
_0224D4AC:
|
|
ldr r2, _0224D578 ; =ov02_022538EC
|
|
add r1, sp, #4
|
|
ldrb r3, [r2, #2]
|
|
add r0, sp, #4
|
|
add r1, #2
|
|
strb r3, [r0, #2]
|
|
ldrb r3, [r2, #3]
|
|
strb r3, [r0, #3]
|
|
ldrb r6, [r2, #4]
|
|
add r3, sp, #4
|
|
strb r6, [r0]
|
|
ldrb r2, [r2, #5]
|
|
strb r2, [r0, #1]
|
|
sub r0, r7, #2
|
|
ldrh r0, [r4, r0]
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x18
|
|
mov r0, #0xdc
|
|
add r6, r2, #0
|
|
mul r6, r0
|
|
add r0, #0xdc
|
|
add r0, r4, r0
|
|
str r0, [sp]
|
|
ldrb r1, [r1, r2]
|
|
ldrb r2, [r3, r2]
|
|
add r0, r4, r6
|
|
mov r3, #2
|
|
bl ov02_0224D0C8
|
|
ldr r0, [r5, #0x40]
|
|
add r1, r4, r6
|
|
bl ov02_0224D0AC
|
|
sub r1, r7, #2
|
|
ldrh r0, [r4, r1]
|
|
add r0, r0, #1
|
|
strh r0, [r4, r1]
|
|
ldrh r0, [r4, r1]
|
|
cmp r0, #2
|
|
blo _0224D570
|
|
add r0, r1, #2
|
|
ldrh r0, [r4, r0]
|
|
add sp, #8
|
|
add r2, r0, #1
|
|
add r0, r1, #2
|
|
strh r2, [r4, r0]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224D50A:
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
mov r1, #0
|
|
bl ov01_021FC004
|
|
ldr r0, _0224D57C ; =SEQ_SE_DP_FW463
|
|
bl PlaySE
|
|
add r0, r7, #0
|
|
ldrh r1, [r4, r0]
|
|
add r1, r1, #1
|
|
strh r1, [r4, r0]
|
|
_0224D522:
|
|
add r0, r4, #0
|
|
bl ov02_0224D178
|
|
add r6, r0, #0
|
|
ldr r0, [r5, #0x40]
|
|
add r1, r4, #0
|
|
bl ov02_0224D0AC
|
|
cmp r6, #1
|
|
bne _0224D570
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
mov r1, #1
|
|
bl ov01_021FC004
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov01_021FC004
|
|
add r1, r4, #0
|
|
ldr r0, [r5, #0x40]
|
|
add r1, #0xdc
|
|
bl ov02_0224D0AC
|
|
ldr r0, _0224D574 ; =0x000001CA
|
|
add sp, #8
|
|
ldrh r1, [r4, r0]
|
|
add r1, r1, #1
|
|
strh r1, [r4, r0]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224D55E:
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
bl ov02_0224D1AC
|
|
add r4, #0xdc
|
|
ldr r0, [r5, #0x40]
|
|
add r1, r4, #0
|
|
bl ov02_0224D0AC
|
|
_0224D570:
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0224D574: .word 0x000001CA
|
|
_0224D578: .word ov02_022538EC
|
|
_0224D57C: .word SEQ_SE_DP_FW463
|
|
thumb_func_end ov02_0224D488
|
|
|
|
thumb_func_start ov02_0224D580
|
|
ov02_0224D580: ; 0x0224D580
|
|
push {r3, r4, r5, lr}
|
|
add r5, r2, #0
|
|
mov r4, #0
|
|
_0224D586:
|
|
add r0, r5, #0
|
|
bl ov02_0224D1DC
|
|
add r4, r4, #1
|
|
add r5, #0xdc
|
|
cmp r4, #2
|
|
blt _0224D586
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224D580
|
|
|
|
thumb_func_start ov02_0224D598
|
|
ov02_0224D598: ; 0x0224D598
|
|
ldr r0, [r0, #4]
|
|
ldr r3, _0224D5A4 ; =ov01_021E67BC
|
|
ldr r0, [r0, #4]
|
|
ldr r1, _0224D5A8 ; =ov02_02253944
|
|
bx r3
|
|
nop
|
|
_0224D5A4: .word ov01_021E67BC
|
|
_0224D5A8: .word ov02_02253944
|
|
thumb_func_end ov02_0224D598
|
|
|
|
thumb_func_start ov02_0224D5AC
|
|
ov02_0224D5AC: ; 0x0224D5AC
|
|
ldr r3, _0224D5B0 ; =ov01_021E683C
|
|
bx r3
|
|
.balign 4, 0
|
|
_0224D5B0: .word ov01_021E683C
|
|
thumb_func_end ov02_0224D5AC
|
|
|
|
thumb_func_start ov02_0224D5B4
|
|
ov02_0224D5B4: ; 0x0224D5B4
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
add r5, r1, #0
|
|
ldr r1, _0224D640 ; =ov02_022538EC
|
|
add r4, r2, #0
|
|
ldrb r2, [r1]
|
|
add r0, sp, #4
|
|
strb r2, [r0, #1]
|
|
ldrb r2, [r1, #1]
|
|
strb r2, [r0]
|
|
ldrh r2, [r1, #6]
|
|
strh r2, [r0, #2]
|
|
ldrh r2, [r1, #8]
|
|
strh r2, [r0, #4]
|
|
ldrh r2, [r1, #0xa]
|
|
strh r2, [r0, #6]
|
|
ldrh r1, [r1, #0xc]
|
|
mov r2, #0xf0
|
|
strh r1, [r0, #8]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl memset
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
mov r1, #4
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
ldr r0, [r5, #0x40]
|
|
bl PlayerAvatar_GetFacingDirection
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
str r0, [sp]
|
|
add r2, sp, #4
|
|
ldrb r1, [r2, #1]
|
|
ldrb r2, [r2]
|
|
add r0, r4, #0
|
|
mov r3, #1
|
|
bl ov02_0224D0C8
|
|
add r0, r4, #0
|
|
bl ov02_0224D1AC
|
|
ldr r0, [r5, #0x40]
|
|
add r1, r4, #0
|
|
bl ov02_0224D0AC
|
|
add r0, sp, #4
|
|
lsl r1, r6, #1
|
|
add r0, #2
|
|
ldrh r0, [r0, r1]
|
|
bl GF_DegreeToSinCosIdxNoWrap
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
mov r2, #1
|
|
bl ov01_021FC024
|
|
ldr r0, _0224D644 ; =SEQ_SE_DP_FW463
|
|
bl PlaySE
|
|
mov r0, #0
|
|
add r4, #0xec
|
|
strh r0, [r4]
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0224D640: .word ov02_022538EC
|
|
_0224D644: .word SEQ_SE_DP_FW463
|
|
thumb_func_end ov02_0224D5B4
|
|
|
|
thumb_func_start ov02_0224D648
|
|
ov02_0224D648: ; 0x0224D648
|
|
ldr r3, _0224D654 ; =ov02_0224D144
|
|
add r0, r2, #0
|
|
add r2, #0xdc
|
|
add r1, r2, #0
|
|
bx r3
|
|
nop
|
|
_0224D654: .word ov02_0224D144
|
|
thumb_func_end ov02_0224D648
|
|
|
|
thumb_func_start ov02_0224D658
|
|
ov02_0224D658: ; 0x0224D658
|
|
push {r3, r4, r5, lr}
|
|
add r4, r2, #0
|
|
add r5, r1, #0
|
|
add r0, r4, #0
|
|
bl ov02_0224D1AC
|
|
ldr r0, [r5, #0x40]
|
|
add r1, r4, #0
|
|
bl ov02_0224D0AC
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224D658
|
|
|
|
thumb_func_start ov02_0224D670
|
|
ov02_0224D670: ; 0x0224D670
|
|
ldr r3, _0224D678 ; =ov02_0224D1DC
|
|
add r0, r2, #0
|
|
bx r3
|
|
nop
|
|
_0224D678: .word ov02_0224D1DC
|
|
thumb_func_end ov02_0224D670
|
|
|
|
thumb_func_start ov02_0224D67C
|
|
ov02_0224D67C: ; 0x0224D67C
|
|
ldr r0, [r0, #4]
|
|
ldr r3, _0224D688 ; =ov01_021E67BC
|
|
ldr r0, [r0, #4]
|
|
ldr r1, _0224D68C ; =ov02_02253914
|
|
bx r3
|
|
nop
|
|
_0224D688: .word ov01_021E67BC
|
|
_0224D68C: .word ov02_02253914
|
|
thumb_func_end ov02_0224D67C
|
|
|
|
thumb_func_start ov02_0224D690
|
|
ov02_0224D690: ; 0x0224D690
|
|
ldr r3, _0224D694 ; =ov01_021E683C
|
|
bx r3
|
|
.balign 4, 0
|
|
_0224D694: .word ov01_021E683C
|
|
thumb_func_end ov02_0224D690
|
|
|
|
thumb_func_start ov02_0224D698
|
|
ov02_0224D698: ; 0x0224D698
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r7, r0, #0
|
|
add r0, #0xc8
|
|
ldr r0, [r0]
|
|
add r6, r1, #0
|
|
add r4, r2, #0
|
|
add r5, r3, #0
|
|
cmp r0, #0
|
|
beq _0224D6B0
|
|
bl GF_AssertFail
|
|
_0224D6B0:
|
|
add r0, r6, #0
|
|
add r1, sp, #0
|
|
bl PlayerAvatar_GetPositionVec
|
|
ldr r2, [sp, #4]
|
|
ldr r3, [sp, #8]
|
|
ldr r1, [sp]
|
|
add r0, r7, #0
|
|
add r2, r2, r4
|
|
add r3, r3, r5
|
|
bl ov01_021FC00C
|
|
add r0, r7, #0
|
|
mov r4, #0
|
|
add r5, r7, #0
|
|
mov r1, #1
|
|
add r0, #0xc8
|
|
str r1, [r0]
|
|
add r5, #0x78
|
|
add r6, r4, #0
|
|
_0224D6D8:
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov01_021FBF20
|
|
add r4, r4, #1
|
|
add r5, #0x14
|
|
cmp r4, #4
|
|
blt _0224D6D8
|
|
add r0, r7, #0
|
|
mov r1, #1
|
|
bl ov01_021FC004
|
|
ldr r0, _0224D6FC ; =SEQ_SE_DP_UG_023
|
|
bl PlaySE
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_0224D6FC: .word SEQ_SE_DP_UG_023
|
|
thumb_func_end ov02_0224D698
|
|
|
|
thumb_func_start ov02_0224D700
|
|
ov02_0224D700: ; 0x0224D700
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
str r0, [sp]
|
|
add r0, #0xc8
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0224D73A
|
|
ldr r5, [sp]
|
|
mov r4, #1
|
|
mov r6, #0
|
|
add r5, #0x78
|
|
lsl r7, r4, #0xc
|
|
_0224D716:
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
bl ov01_021FBEE4
|
|
add r6, r6, #1
|
|
and r4, r0
|
|
add r5, #0x14
|
|
cmp r6, #4
|
|
blt _0224D716
|
|
cmp r4, #1
|
|
bne _0224D73A
|
|
ldr r0, [sp]
|
|
mov r1, #0
|
|
add r0, #0xc8
|
|
str r1, [r0]
|
|
ldr r0, [sp]
|
|
bl ov01_021FC004
|
|
_0224D73A:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_0224D700
|
|
|
|
thumb_func_start ov02_0224D73C
|
|
ov02_0224D73C: ; 0x0224D73C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
str r1, [sp]
|
|
str r2, [sp, #4]
|
|
mov r1, #0
|
|
mov r2, #0xcc
|
|
add r7, r0, #0
|
|
add r5, r3, #0
|
|
bl memset
|
|
ldr r1, [sp]
|
|
add r0, r7, #0
|
|
bl ov01_021FBF2C
|
|
add r4, r7, #0
|
|
mov r6, #0
|
|
add r4, #0x78
|
|
_0224D75E:
|
|
ldr r1, [sp]
|
|
ldr r2, [r5]
|
|
ldr r3, [sp, #4]
|
|
add r0, r4, #0
|
|
bl ov01_021FBE70
|
|
add r0, r7, #0
|
|
add r1, r4, #0
|
|
bl ov01_021FBF50
|
|
add r6, r6, #1
|
|
add r5, r5, #4
|
|
add r4, #0x14
|
|
cmp r6, #4
|
|
blt _0224D75E
|
|
add r0, r7, #0
|
|
mov r1, #0
|
|
bl ov01_021FC004
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_0224D73C
|
|
|
|
thumb_func_start ov02_0224D788
|
|
ov02_0224D788: ; 0x0224D788
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
add r5, r7, #0
|
|
add r6, r1, #0
|
|
mov r4, #0
|
|
add r5, #0x78
|
|
_0224D794:
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov01_021FBE80
|
|
add r4, r4, #1
|
|
add r5, #0x14
|
|
cmp r4, #4
|
|
blt _0224D794
|
|
add r0, r7, #0
|
|
mov r1, #0
|
|
mov r2, #0xcc
|
|
bl memset
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_0224D788
|
|
|
|
thumb_func_start ov02_0224D7B0
|
|
ov02_0224D7B0: ; 0x0224D7B0
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
mov r0, #0xce
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
add r1, sp, #0
|
|
ldr r0, [r0, #0x40]
|
|
bl PlayerAvatar_GetPositionVec
|
|
mov r1, #0xcf
|
|
lsl r1, r1, #4
|
|
ldr r2, [sp]
|
|
ldr r0, [r4, r1]
|
|
sub r0, r2, r0
|
|
bne _0224D7F8
|
|
add r0, r1, #4
|
|
ldr r2, [sp, #4]
|
|
ldr r0, [r4, r0]
|
|
cmp r2, r0
|
|
bge _0224D7F8
|
|
add r0, r1, #0
|
|
add r0, #8
|
|
ldr r2, [sp, #8]
|
|
ldr r0, [r4, r0]
|
|
cmp r2, r0
|
|
ble _0224D7F8
|
|
add r0, r1, #0
|
|
mov r2, #0
|
|
sub r0, #8
|
|
str r2, [r4, r0]
|
|
mov r2, #2
|
|
lsl r2, r2, #0x10
|
|
sub r0, r1, #4
|
|
str r2, [r4, r0]
|
|
b _0224D806
|
|
_0224D7F8:
|
|
mov r1, #2
|
|
ldr r0, _0224D81C ; =0x00000CE8
|
|
lsl r1, r1, #0x10
|
|
str r1, [r4, r0]
|
|
lsr r1, r1, #1
|
|
add r0, r0, #4
|
|
str r1, [r4, r0]
|
|
_0224D806:
|
|
mov r0, #0xcf
|
|
lsl r0, r0, #4
|
|
add r3, sp, #0
|
|
add r2, r4, r0
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_0224D81C: .word 0x00000CE8
|
|
thumb_func_end ov02_0224D7B0
|
|
|
|
thumb_func_start ov02_0224D820
|
|
ov02_0224D820: ; 0x0224D820
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov02_0224D7B0
|
|
mov r2, #0
|
|
add r1, r4, #0
|
|
_0224D82C:
|
|
add r0, r1, #0
|
|
add r0, #0xd8
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0224D858
|
|
add r1, r4, #0
|
|
mov r0, #0xcc
|
|
mov r3, #0xce
|
|
add r1, #0x10
|
|
mul r0, r2
|
|
lsl r3, r3, #4
|
|
add r0, r1, r0
|
|
ldr r1, [r4, r3]
|
|
add r2, r3, #0
|
|
add r2, #8
|
|
add r3, #0xc
|
|
ldr r1, [r1, #0x40]
|
|
ldr r2, [r4, r2]
|
|
ldr r3, [r4, r3]
|
|
bl ov02_0224D698
|
|
pop {r4, pc}
|
|
_0224D858:
|
|
add r2, r2, #1
|
|
add r1, #0xcc
|
|
cmp r2, #0x10
|
|
blt _0224D82C
|
|
bl GF_AssertFail
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224D820
|
|
|
|
thumb_func_start ov02_0224D868
|
|
ov02_0224D868: ; 0x0224D868
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
add r5, #0x10
|
|
_0224D870:
|
|
add r0, r5, #0
|
|
bl ov02_0224D700
|
|
add r4, r4, #1
|
|
add r5, #0xcc
|
|
cmp r4, #0x10
|
|
blt _0224D870
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_0224D868
|
|
|
|
thumb_func_start ov02_0224D880
|
|
ov02_0224D880: ; 0x0224D880
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r2, #0
|
|
mov r2, #0xd1
|
|
str r1, [sp, #4]
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #4
|
|
bl memset
|
|
ldr r0, _0224D90C ; =0x00000CFC
|
|
mov r1, #4
|
|
add r0, r5, r0
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
add r0, r5, #0
|
|
mov r1, #0x86
|
|
mov r2, #8
|
|
mov r3, #4
|
|
bl ov01_021FBCD8
|
|
mov r7, #0xcd
|
|
mov r4, #0
|
|
add r6, r5, #0
|
|
lsl r7, r7, #4
|
|
_0224D8B4:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #0x86
|
|
add r1, r4, #4
|
|
mov r2, #0
|
|
mov r3, #4
|
|
bl GfGfxLoader_LoadFromNarc
|
|
str r0, [r6, r7]
|
|
add r4, r4, #1
|
|
add r6, r6, #4
|
|
cmp r4, #4
|
|
blt _0224D8B4
|
|
add r4, r5, #0
|
|
mov r7, #0xcd
|
|
mov r6, #0
|
|
add r4, #0x10
|
|
lsl r7, r7, #4
|
|
_0224D8D8:
|
|
ldr r2, _0224D90C ; =0x00000CFC
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
add r2, r5, r2
|
|
add r3, r5, r7
|
|
bl ov02_0224D73C
|
|
add r6, r6, #1
|
|
add r4, #0xcc
|
|
cmp r6, #0x10
|
|
blt _0224D8D8
|
|
mov r1, #0xce
|
|
ldr r0, [sp, #4]
|
|
lsl r1, r1, #4
|
|
str r0, [r5, r1]
|
|
ldr r0, [r5, r1]
|
|
add r1, #0x10
|
|
ldr r0, [r0, #0x40]
|
|
add r1, r5, r1
|
|
bl PlayerAvatar_GetPositionVec
|
|
ldr r0, _0224D910 ; =0x00000D0C
|
|
mov r1, #0
|
|
str r1, [r5, r0]
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0224D90C: .word 0x00000CFC
|
|
_0224D910: .word 0x00000D0C
|
|
thumb_func_end ov02_0224D880
|
|
|
|
thumb_func_start ov02_0224D914
|
|
ov02_0224D914: ; 0x0224D914
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r2, #0
|
|
add r4, r5, #0
|
|
ldr r7, _0224D94C ; =0x00000CFC
|
|
mov r6, #0
|
|
add r4, #0x10
|
|
_0224D920:
|
|
add r0, r4, #0
|
|
add r1, r5, r7
|
|
bl ov02_0224D788
|
|
add r6, r6, #1
|
|
add r4, #0xcc
|
|
cmp r6, #0x10
|
|
blt _0224D920
|
|
add r0, r5, #0
|
|
bl ov01_021FBDA8
|
|
mov r6, #0xcd
|
|
mov r4, #0
|
|
lsl r6, r6, #4
|
|
_0224D93C:
|
|
ldr r0, [r5, r6]
|
|
bl FreeToHeap
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _0224D93C
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0224D94C: .word 0x00000CFC
|
|
thumb_func_end ov02_0224D914
|
|
|
|
thumb_func_start ov02_0224D950
|
|
ov02_0224D950: ; 0x0224D950
|
|
push {r4, lr}
|
|
ldr r1, _0224D988 ; =0x00000D0C
|
|
add r4, r2, #0
|
|
ldr r0, [r4, r1]
|
|
cmp r0, #0
|
|
bne _0224D986
|
|
add r0, r1, #0
|
|
sub r0, #0x28
|
|
ldr r0, [r4, r0]
|
|
sub r2, r0, #1
|
|
add r0, r1, #0
|
|
sub r0, #0x28
|
|
str r2, [r4, r0]
|
|
add r0, r1, #0
|
|
sub r0, #0x28
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
bge _0224D980
|
|
mov r0, #4
|
|
sub r1, #0x28
|
|
str r0, [r4, r1]
|
|
add r0, r4, #0
|
|
bl ov02_0224D820
|
|
_0224D980:
|
|
add r0, r4, #0
|
|
bl ov02_0224D868
|
|
_0224D986:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0224D988: .word 0x00000D0C
|
|
thumb_func_end ov02_0224D950
|
|
|
|
thumb_func_start ov02_0224D98C
|
|
ov02_0224D98C: ; 0x0224D98C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r2, #0
|
|
mov r4, #0
|
|
add r5, #0x10
|
|
_0224D994:
|
|
add r0, r5, #0
|
|
bl ov01_021FBF68
|
|
add r4, r4, #1
|
|
add r5, #0xcc
|
|
cmp r4, #0x10
|
|
blt _0224D994
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_0224D98C
|
|
|
|
thumb_func_start ov02_0224D9A4
|
|
ov02_0224D9A4: ; 0x0224D9A4
|
|
ldr r0, [r0, #4]
|
|
ldr r3, _0224D9B0 ; =ov01_021E67BC
|
|
ldr r0, [r0, #4]
|
|
ldr r1, _0224D9B4 ; =ov02_0225395C
|
|
bx r3
|
|
nop
|
|
_0224D9B0: .word ov01_021E67BC
|
|
_0224D9B4: .word ov02_0225395C
|
|
thumb_func_end ov02_0224D9A4
|
|
|
|
thumb_func_start ov02_0224D9B8
|
|
ov02_0224D9B8: ; 0x0224D9B8
|
|
ldr r3, _0224D9BC ; =ov01_021E683C
|
|
bx r3
|
|
.balign 4, 0
|
|
_0224D9BC: .word ov01_021E683C
|
|
thumb_func_end ov02_0224D9B8
|
|
|
|
thumb_func_start ov02_0224D9C0
|
|
ov02_0224D9C0: ; 0x0224D9C0
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x28
|
|
add r4, r2, #0
|
|
mov r2, #0x45
|
|
add r5, r1, #0
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #2
|
|
bl memset
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
mov r1, #4
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #0x13
|
|
mov r2, #0x11
|
|
mov r3, #2
|
|
bl ov02_0224D0C8
|
|
ldr r0, [r5, #0x40]
|
|
add r1, r4, #0
|
|
bl ov02_0224D044
|
|
ldr r1, [r5, #0x24]
|
|
add r0, sp, #0x10
|
|
bl Camera_GetLookAtCamTarget
|
|
add r3, sp, #0x10
|
|
add r2, r4, #0
|
|
ldmia r3!, {r0, r1}
|
|
add r2, #0xf8
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
ldr r1, [r5, #0x24]
|
|
add r0, sp, #4
|
|
bl Camera_GetLookAtCamPos
|
|
add r3, sp, #4
|
|
add r2, r4, #0
|
|
ldmia r3!, {r0, r1}
|
|
add r2, #0xec
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
add r1, sp, #0x1c
|
|
str r0, [r2]
|
|
mov r0, #0
|
|
str r0, [r1]
|
|
str r0, [r1, #4]
|
|
str r0, [r1, #8]
|
|
ldr r0, [r5, #0x40]
|
|
bl PlayerAvatar_GetFacingDirection
|
|
cmp r0, #3
|
|
bhi _0224DA7C
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0224DA46: ; jump table
|
|
.short _0224DA4E - _0224DA46 - 2 ; case 0
|
|
.short _0224DA5A - _0224DA46 - 2 ; case 1
|
|
.short _0224DA66 - _0224DA46 - 2 ; case 2
|
|
.short _0224DA72 - _0224DA46 - 2 ; case 3
|
|
_0224DA4E:
|
|
mov r0, #2
|
|
ldr r1, [sp, #0x24]
|
|
lsl r0, r0, #0xe
|
|
sub r0, r1, r0
|
|
str r0, [sp, #0x24]
|
|
b _0224DA7C
|
|
_0224DA5A:
|
|
mov r0, #2
|
|
ldr r1, [sp, #0x24]
|
|
lsl r0, r0, #0xe
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x24]
|
|
b _0224DA7C
|
|
_0224DA66:
|
|
mov r0, #2
|
|
ldr r1, [sp, #0x1c]
|
|
lsl r0, r0, #0xe
|
|
sub r0, r1, r0
|
|
str r0, [sp, #0x1c]
|
|
b _0224DA7C
|
|
_0224DA72:
|
|
mov r0, #2
|
|
ldr r1, [sp, #0x1c]
|
|
lsl r0, r0, #0xe
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x1c]
|
|
_0224DA7C:
|
|
mov r0, #0x41
|
|
lsl r0, r0, #2
|
|
add r3, sp, #0x1c
|
|
add r2, r4, r0
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
ldr r0, _0224DA9C ; =SEQ_SE_GS_ZUTUKI
|
|
bl PlaySE
|
|
ldr r0, _0224DAA0 ; =0x00000113
|
|
mov r1, #0
|
|
strb r1, [r4, r0]
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0224DA9C: .word SEQ_SE_GS_ZUTUKI
|
|
_0224DAA0: .word 0x00000113
|
|
thumb_func_end ov02_0224D9C0
|
|
|
|
thumb_func_start ov02_0224DAA4
|
|
ov02_0224DAA4: ; 0x0224DAA4
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x28
|
|
add r4, r2, #0
|
|
mov r2, #0x45
|
|
add r5, r1, #0
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #2
|
|
bl memset
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
mov r1, #4
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #0x13
|
|
mov r2, #0x11
|
|
mov r3, #2
|
|
bl ov02_0224D0C8
|
|
ldr r0, [r5, #0x3c]
|
|
mov r1, #0xfd
|
|
add r2, r4, #0
|
|
bl ov02_0224CFD8
|
|
ldr r1, [r5, #0x24]
|
|
add r0, sp, #0x10
|
|
bl Camera_GetLookAtCamTarget
|
|
add r3, sp, #0x10
|
|
add r2, r4, #0
|
|
ldmia r3!, {r0, r1}
|
|
add r2, #0xf8
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
ldr r1, [r5, #0x24]
|
|
add r0, sp, #4
|
|
bl Camera_GetLookAtCamPos
|
|
add r3, sp, #4
|
|
add r2, r4, #0
|
|
ldmia r3!, {r0, r1}
|
|
add r2, #0xec
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
add r1, sp, #0x1c
|
|
str r0, [r2]
|
|
mov r0, #0
|
|
str r0, [r1]
|
|
str r0, [r1, #4]
|
|
str r0, [r1, #8]
|
|
ldr r0, [r5, #0x40]
|
|
bl PlayerAvatar_GetFacingDirection
|
|
cmp r0, #3
|
|
bhi _0224DB62
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0224DB2C: ; jump table
|
|
.short _0224DB34 - _0224DB2C - 2 ; case 0
|
|
.short _0224DB40 - _0224DB2C - 2 ; case 1
|
|
.short _0224DB4C - _0224DB2C - 2 ; case 2
|
|
.short _0224DB58 - _0224DB2C - 2 ; case 3
|
|
_0224DB34:
|
|
mov r0, #2
|
|
ldr r1, [sp, #0x24]
|
|
lsl r0, r0, #0xe
|
|
sub r0, r1, r0
|
|
str r0, [sp, #0x24]
|
|
b _0224DB62
|
|
_0224DB40:
|
|
mov r0, #2
|
|
ldr r1, [sp, #0x24]
|
|
lsl r0, r0, #0xe
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x24]
|
|
b _0224DB62
|
|
_0224DB4C:
|
|
mov r0, #2
|
|
ldr r1, [sp, #0x1c]
|
|
lsl r0, r0, #0xe
|
|
sub r0, r1, r0
|
|
str r0, [sp, #0x1c]
|
|
b _0224DB62
|
|
_0224DB58:
|
|
mov r0, #2
|
|
ldr r1, [sp, #0x1c]
|
|
lsl r0, r0, #0xe
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x1c]
|
|
_0224DB62:
|
|
mov r0, #0x41
|
|
lsl r0, r0, #2
|
|
add r3, sp, #0x1c
|
|
add r2, r4, r0
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
ldr r0, _0224DB84 ; =SEQ_SE_GS_ZUTUKI
|
|
bl PlaySE
|
|
ldr r0, _0224DB88 ; =0x00000113
|
|
mov r1, #0
|
|
strb r1, [r4, r0]
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0224DB84: .word SEQ_SE_GS_ZUTUKI
|
|
_0224DB88: .word 0x00000113
|
|
thumb_func_end ov02_0224DAA4
|
|
|
|
thumb_func_start ov02_0224DB8C
|
|
ov02_0224DB8C: ; 0x0224DB8C
|
|
ldr r3, _0224DB98 ; =ov02_0224D144
|
|
add r0, r2, #0
|
|
add r2, #0xdc
|
|
add r1, r2, #0
|
|
bx r3
|
|
nop
|
|
_0224DB98: .word ov02_0224D144
|
|
thumb_func_end ov02_0224DB8C
|
|
|
|
thumb_func_start ov02_0224DB9C
|
|
ov02_0224DB9C: ; 0x0224DB9C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r1, _0224DC50 ; =0x00000113
|
|
add r4, r2, #0
|
|
ldrb r0, [r4, r1]
|
|
cmp r0, #0
|
|
beq _0224DBB0
|
|
cmp r0, #1
|
|
beq _0224DC38
|
|
pop {r3, r4, r5, pc}
|
|
_0224DBB0:
|
|
sub r0, r1, #1
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #2
|
|
bhs _0224DC1C
|
|
sub r0, r1, #3
|
|
ldrsb r0, [r4, r0]
|
|
cmp r0, #0
|
|
bgt _0224DC12
|
|
mov r2, #1
|
|
sub r0, r1, #3
|
|
strb r2, [r4, r0]
|
|
sub r0, r1, #2
|
|
ldrb r0, [r4, r0]
|
|
add r0, r0, #1
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0x1f
|
|
sub r1, r1, r2
|
|
mov r0, #0x1f
|
|
ror r1, r0
|
|
add r2, r2, r1
|
|
add r1, r0, #0
|
|
add r1, #0xf2
|
|
strb r2, [r4, r1]
|
|
add r1, r0, #0
|
|
add r1, #0xf2
|
|
ldrb r1, [r4, r1]
|
|
cmp r1, #0
|
|
beq _0224DBF4
|
|
add r0, #0xe5
|
|
ldr r1, [r5, #0x24]
|
|
add r0, r4, r0
|
|
bl Camera_OffsetLookAtPosAndTarget
|
|
b _0224DC1C
|
|
_0224DBF4:
|
|
add r0, r4, #0
|
|
ldr r1, [r5, #0x24]
|
|
add r0, #0xf8
|
|
bl Camera_SetLookAtCamTarget
|
|
add r0, r4, #0
|
|
ldr r1, [r5, #0x24]
|
|
add r0, #0xec
|
|
bl Camera_SetLookAtCamPos
|
|
ldr r0, _0224DC54 ; =0x00000112
|
|
ldrb r1, [r4, r0]
|
|
add r1, r1, #1
|
|
strb r1, [r4, r0]
|
|
b _0224DC1C
|
|
_0224DC12:
|
|
sub r0, r1, #3
|
|
ldrsb r0, [r4, r0]
|
|
sub r2, r0, #1
|
|
sub r0, r1, #3
|
|
strb r2, [r4, r0]
|
|
_0224DC1C:
|
|
add r0, r4, #0
|
|
bl ov02_0224D178
|
|
cmp r0, #1
|
|
bne _0224DC4C
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov01_021FC004
|
|
ldr r0, _0224DC50 ; =0x00000113
|
|
ldrb r1, [r4, r0]
|
|
add r1, r1, #1
|
|
strb r1, [r4, r0]
|
|
pop {r3, r4, r5, pc}
|
|
_0224DC38:
|
|
add r0, r4, #0
|
|
ldr r1, [r5, #0x24]
|
|
add r0, #0xf8
|
|
bl Camera_SetLookAtCamTarget
|
|
add r4, #0xec
|
|
ldr r1, [r5, #0x24]
|
|
add r0, r4, #0
|
|
bl Camera_SetLookAtCamPos
|
|
_0224DC4C:
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0224DC50: .word 0x00000113
|
|
_0224DC54: .word 0x00000112
|
|
thumb_func_end ov02_0224DB9C
|
|
|
|
thumb_func_start ov02_0224DC58
|
|
ov02_0224DC58: ; 0x0224DC58
|
|
ldr r3, _0224DC60 ; =ov02_0224D1DC
|
|
add r0, r2, #0
|
|
bx r3
|
|
nop
|
|
_0224DC60: .word ov02_0224D1DC
|
|
thumb_func_end ov02_0224DC58
|
|
|
|
thumb_func_start ov02_0224DC64
|
|
ov02_0224DC64: ; 0x0224DC64
|
|
ldr r0, [r0, #4]
|
|
ldr r3, _0224DC70 ; =ov01_021E67BC
|
|
ldr r0, [r0, #4]
|
|
ldr r1, _0224DC74 ; =ov02_022539A4
|
|
bx r3
|
|
nop
|
|
_0224DC70: .word ov01_021E67BC
|
|
_0224DC74: .word ov02_022539A4
|
|
thumb_func_end ov02_0224DC64
|
|
|
|
thumb_func_start ov02_0224DC78
|
|
ov02_0224DC78: ; 0x0224DC78
|
|
ldr r0, [r0, #4]
|
|
ldr r3, _0224DC84 ; =ov01_021E67BC
|
|
ldr r0, [r0, #4]
|
|
ldr r1, _0224DC88 ; =ov02_0225392C
|
|
bx r3
|
|
nop
|
|
_0224DC84: .word ov01_021E67BC
|
|
_0224DC88: .word ov02_0225392C
|
|
thumb_func_end ov02_0224DC78
|
|
|
|
thumb_func_start ov02_0224DC8C
|
|
ov02_0224DC8C: ; 0x0224DC8C
|
|
ldr r3, _0224DC90 ; =ov01_021E683C
|
|
bx r3
|
|
.balign 4, 0
|
|
_0224DC90: .word ov01_021E683C
|
|
thumb_func_end ov02_0224DC8C
|
|
|
|
thumb_func_start ov02_0224DC94
|
|
ov02_0224DC94: ; 0x0224DC94
|
|
push {r3, lr}
|
|
bl ov01_021E687C
|
|
ldr r1, _0224DCAC ; =0x00000113
|
|
ldrb r0, [r0, r1]
|
|
cmp r0, #1
|
|
bne _0224DCA6
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0224DCA6:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
nop
|
|
_0224DCAC: .word 0x00000113
|
|
thumb_func_end ov02_0224DC94
|
|
|
|
thumb_func_start ov02_0224DCB0
|
|
ov02_0224DCB0: ; 0x0224DCB0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r6, r2, #0
|
|
str r1, [sp, #4]
|
|
ldr r2, _0224DD28 ; =0x00000E9C
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
bl memset
|
|
ldr r0, _0224DD2C ; =0x00000E88
|
|
mov r1, #4
|
|
add r0, r6, r0
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
add r0, r6, #0
|
|
mov r1, #0x86
|
|
mov r2, #8
|
|
mov r3, #4
|
|
bl ov01_021FBCD8
|
|
ldr r7, _0224DD30 ; =0x00000E68
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_0224DCE0:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #0x86
|
|
add r1, r4, #4
|
|
mov r2, #0
|
|
mov r3, #4
|
|
bl GfGfxLoader_LoadFromNarc
|
|
str r0, [r5, r7]
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _0224DCE0
|
|
add r4, r6, #0
|
|
ldr r7, _0224DD30 ; =0x00000E68
|
|
mov r5, #0
|
|
add r4, #0x10
|
|
_0224DD02:
|
|
ldr r2, _0224DD2C ; =0x00000E88
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
add r2, r6, r2
|
|
add r3, r6, r7
|
|
bl ov02_0224DEA8
|
|
add r5, r5, #1
|
|
add r4, #0xcc
|
|
cmp r5, #0x12
|
|
blt _0224DD02
|
|
ldr r1, _0224DD34 ; =0x00000E78
|
|
ldr r0, [sp, #4]
|
|
str r0, [r6, r1]
|
|
mov r0, #0
|
|
add r1, #0x20
|
|
strh r0, [r6, r1]
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0224DD28: .word 0x00000E9C
|
|
_0224DD2C: .word 0x00000E88
|
|
_0224DD30: .word 0x00000E68
|
|
_0224DD34: .word 0x00000E78
|
|
thumb_func_end ov02_0224DCB0
|
|
|
|
thumb_func_start ov02_0224DD38
|
|
ov02_0224DD38: ; 0x0224DD38
|
|
push {r4, lr}
|
|
add r4, r2, #0
|
|
bl ov02_0224DCB0
|
|
ldr r0, _0224DD48 ; =0x00000E9A
|
|
mov r1, #1
|
|
strh r1, [r4, r0]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0224DD48: .word 0x00000E9A
|
|
thumb_func_end ov02_0224DD38
|
|
|
|
thumb_func_start ov02_0224DD4C
|
|
ov02_0224DD4C: ; 0x0224DD4C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r2, #0
|
|
add r4, r5, #0
|
|
ldr r7, _0224DD84 ; =0x00000E88
|
|
mov r6, #0
|
|
add r4, #0x10
|
|
_0224DD58:
|
|
add r0, r4, #0
|
|
add r1, r5, r7
|
|
bl ov02_0224DEF4
|
|
add r6, r6, #1
|
|
add r4, #0xcc
|
|
cmp r6, #0x12
|
|
blt _0224DD58
|
|
add r0, r5, #0
|
|
bl ov01_021FBDA8
|
|
ldr r6, _0224DD88 ; =0x00000E68
|
|
mov r4, #0
|
|
_0224DD72:
|
|
ldr r0, [r5, r6]
|
|
bl FreeToHeap
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _0224DD72
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0224DD84: .word 0x00000E88
|
|
_0224DD88: .word 0x00000E68
|
|
thumb_func_end ov02_0224DD4C
|
|
|
|
thumb_func_start ov02_0224DD8C
|
|
ov02_0224DD8C: ; 0x0224DD8C
|
|
push {r4, lr}
|
|
ldr r1, _0224DDC4 ; =0x00000E98
|
|
add r4, r2, #0
|
|
ldrh r0, [r4, r1]
|
|
cmp r0, #0
|
|
bne _0224DDC2
|
|
add r0, r1, #0
|
|
sub r0, #0x1c
|
|
ldr r0, [r4, r0]
|
|
sub r2, r0, #1
|
|
add r0, r1, #0
|
|
sub r0, #0x1c
|
|
str r2, [r4, r0]
|
|
add r0, r1, #0
|
|
sub r0, #0x1c
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
bge _0224DDBC
|
|
mov r0, #4
|
|
sub r1, #0x1c
|
|
str r0, [r4, r1]
|
|
add r0, r4, #0
|
|
bl ov02_0224DF1C
|
|
_0224DDBC:
|
|
add r0, r4, #0
|
|
bl ov02_0224E008
|
|
_0224DDC2:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0224DDC4: .word 0x00000E98
|
|
thumb_func_end ov02_0224DD8C
|
|
|
|
thumb_func_start ov02_0224DDC8
|
|
ov02_0224DDC8: ; 0x0224DDC8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r2, #0
|
|
mov r4, #0
|
|
add r5, #0x10
|
|
_0224DDD0:
|
|
add r0, r5, #0
|
|
bl ov01_021FBF68
|
|
add r4, r4, #1
|
|
add r5, #0xcc
|
|
cmp r4, #0x12
|
|
blt _0224DDD0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_0224DDC8
|
|
|
|
thumb_func_start ov02_0224DDE0
|
|
ov02_0224DDE0: ; 0x0224DDE0
|
|
ldr r0, [r0, #4]
|
|
ldr r3, _0224DDEC ; =ov01_021E67BC
|
|
ldr r0, [r0, #4]
|
|
ldr r1, _0224DDF0 ; =ov02_022539D4
|
|
bx r3
|
|
nop
|
|
_0224DDEC: .word ov01_021E67BC
|
|
_0224DDF0: .word ov02_022539D4
|
|
thumb_func_end ov02_0224DDE0
|
|
|
|
thumb_func_start ov02_0224DDF4
|
|
ov02_0224DDF4: ; 0x0224DDF4
|
|
ldr r0, [r0, #4]
|
|
ldr r3, _0224DE00 ; =ov01_021E67BC
|
|
ldr r0, [r0, #4]
|
|
ldr r1, _0224DE04 ; =ov02_022539EC
|
|
bx r3
|
|
nop
|
|
_0224DE00: .word ov01_021E67BC
|
|
_0224DE04: .word ov02_022539EC
|
|
thumb_func_end ov02_0224DDF4
|
|
|
|
thumb_func_start ov02_0224DE08
|
|
ov02_0224DE08: ; 0x0224DE08
|
|
ldr r3, _0224DE0C ; =ov01_021E683C
|
|
bx r3
|
|
.balign 4, 0
|
|
_0224DE0C: .word ov01_021E683C
|
|
thumb_func_end ov02_0224DE08
|
|
|
|
thumb_func_start ov02_0224DE10
|
|
ov02_0224DE10: ; 0x0224DE10
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
add r0, #0xc8
|
|
ldr r0, [r0]
|
|
add r4, r1, #0
|
|
add r5, r2, #0
|
|
add r6, r3, #0
|
|
cmp r0, #0
|
|
beq _0224DE26
|
|
bl GF_AssertFail
|
|
_0224DE26:
|
|
ldr r2, [r4, #4]
|
|
ldr r3, [r4, #8]
|
|
ldr r1, [r4]
|
|
add r0, r7, #0
|
|
add r2, r2, r5
|
|
add r3, r3, r6
|
|
bl ov01_021FC00C
|
|
add r0, r7, #0
|
|
mov r4, #0
|
|
add r5, r7, #0
|
|
mov r1, #1
|
|
add r0, #0xc8
|
|
str r1, [r0]
|
|
add r5, #0x78
|
|
add r6, r4, #0
|
|
_0224DE46:
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov01_021FBF20
|
|
add r4, r4, #1
|
|
add r5, #0x14
|
|
cmp r4, #4
|
|
blt _0224DE46
|
|
add r0, r7, #0
|
|
mov r1, #1
|
|
bl ov01_021FC004
|
|
ldr r0, _0224DE68 ; =SEQ_SE_DP_UG_023
|
|
bl PlaySE
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0224DE68: .word SEQ_SE_DP_UG_023
|
|
thumb_func_end ov02_0224DE10
|
|
|
|
thumb_func_start ov02_0224DE6C
|
|
ov02_0224DE6C: ; 0x0224DE6C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
str r0, [sp]
|
|
add r0, #0xc8
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0224DEA6
|
|
ldr r5, [sp]
|
|
mov r4, #1
|
|
mov r6, #0
|
|
add r5, #0x78
|
|
lsl r7, r4, #0xc
|
|
_0224DE82:
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
bl ov01_021FBEE4
|
|
add r6, r6, #1
|
|
and r4, r0
|
|
add r5, #0x14
|
|
cmp r6, #4
|
|
blt _0224DE82
|
|
cmp r4, #1
|
|
bne _0224DEA6
|
|
ldr r0, [sp]
|
|
mov r1, #0
|
|
add r0, #0xc8
|
|
str r1, [r0]
|
|
ldr r0, [sp]
|
|
bl ov01_021FC004
|
|
_0224DEA6:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_0224DE6C
|
|
|
|
thumb_func_start ov02_0224DEA8
|
|
ov02_0224DEA8: ; 0x0224DEA8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
str r1, [sp]
|
|
str r2, [sp, #4]
|
|
mov r1, #0
|
|
mov r2, #0xcc
|
|
add r7, r0, #0
|
|
add r5, r3, #0
|
|
bl memset
|
|
ldr r1, [sp]
|
|
add r0, r7, #0
|
|
bl ov01_021FBF2C
|
|
add r4, r7, #0
|
|
mov r6, #0
|
|
add r4, #0x78
|
|
_0224DECA:
|
|
ldr r1, [sp]
|
|
ldr r2, [r5]
|
|
ldr r3, [sp, #4]
|
|
add r0, r4, #0
|
|
bl ov01_021FBE70
|
|
add r0, r7, #0
|
|
add r1, r4, #0
|
|
bl ov01_021FBF50
|
|
add r6, r6, #1
|
|
add r5, r5, #4
|
|
add r4, #0x14
|
|
cmp r6, #4
|
|
blt _0224DECA
|
|
add r0, r7, #0
|
|
mov r1, #0
|
|
bl ov01_021FC004
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_0224DEA8
|
|
|
|
thumb_func_start ov02_0224DEF4
|
|
ov02_0224DEF4: ; 0x0224DEF4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
add r5, r7, #0
|
|
add r6, r1, #0
|
|
mov r4, #0
|
|
add r5, #0x78
|
|
_0224DF00:
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov01_021FBE80
|
|
add r4, r4, #1
|
|
add r5, #0x14
|
|
cmp r4, #4
|
|
blt _0224DF00
|
|
add r0, r7, #0
|
|
mov r1, #0
|
|
mov r2, #0xcc
|
|
bl memset
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_0224DEF4
|
|
|
|
thumb_func_start ov02_0224DF1C
|
|
ov02_0224DF1C: ; 0x0224DF1C
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x18
|
|
add r4, r0, #0
|
|
mov r0, #1
|
|
mov r1, #0x3a
|
|
mov r2, #3
|
|
lsl r0, r0, #0xc
|
|
lsl r1, r1, #6
|
|
str r0, [r4, r1]
|
|
add r0, r1, #4
|
|
lsl r2, r2, #0xc
|
|
sub r1, #8
|
|
str r2, [r4, r0]
|
|
ldr r0, [r4, r1]
|
|
add r1, sp, #0xc
|
|
ldr r0, [r0, #0x40]
|
|
bl PlayerAvatar_GetPositionVec
|
|
ldr r0, _0224E004 ; =0x00000E9A
|
|
ldrh r1, [r4, r0]
|
|
cmp r1, #0
|
|
beq _0224DFC6
|
|
sub r0, #0x22
|
|
ldr r0, [r4, r0]
|
|
bl FollowingPokemon_GetMapObject
|
|
add r1, sp, #0
|
|
bl MapObject_GetPositionVec
|
|
mov r5, #0
|
|
add r1, r4, #0
|
|
_0224DF5A:
|
|
add r0, r1, #0
|
|
add r0, #0xd8
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0224DF80
|
|
mov r3, #0x3a
|
|
lsl r3, r3, #6
|
|
add r1, r4, #0
|
|
mov r0, #0xcc
|
|
ldr r2, [r4, r3]
|
|
add r3, r3, #4
|
|
add r1, #0x10
|
|
mul r0, r5
|
|
add r0, r1, r0
|
|
ldr r3, [r4, r3]
|
|
add r1, sp, #0xc
|
|
bl ov02_0224DE10
|
|
b _0224DF88
|
|
_0224DF80:
|
|
add r5, r5, #1
|
|
add r1, #0xcc
|
|
cmp r5, #0x12
|
|
blt _0224DF5A
|
|
_0224DF88:
|
|
cmp r5, #0x12
|
|
bne _0224DF90
|
|
bl GF_AssertFail
|
|
_0224DF90:
|
|
mov r0, #0
|
|
add r2, r4, #0
|
|
_0224DF94:
|
|
add r1, r2, #0
|
|
add r1, #0xd8
|
|
ldr r1, [r1]
|
|
cmp r1, #0
|
|
bne _0224DFBC
|
|
add r2, r4, #0
|
|
mov r1, #0xcc
|
|
mov r3, #0x3a
|
|
add r2, #0x10
|
|
mul r1, r0
|
|
add r0, r2, r1
|
|
lsl r3, r3, #6
|
|
ldr r2, [r4, r3]
|
|
add r3, r3, #4
|
|
ldr r3, [r4, r3]
|
|
add r1, sp, #0
|
|
bl ov02_0224DE10
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, pc}
|
|
_0224DFBC:
|
|
add r0, r0, #1
|
|
add r2, #0xcc
|
|
cmp r0, #0x12
|
|
blt _0224DF94
|
|
b _0224DFFA
|
|
_0224DFC6:
|
|
mov r0, #0
|
|
add r2, r4, #0
|
|
_0224DFCA:
|
|
add r1, r2, #0
|
|
add r1, #0xd8
|
|
ldr r1, [r1]
|
|
cmp r1, #0
|
|
bne _0224DFF2
|
|
add r2, r4, #0
|
|
mov r1, #0xcc
|
|
mov r3, #0x3a
|
|
add r2, #0x10
|
|
mul r1, r0
|
|
add r0, r2, r1
|
|
lsl r3, r3, #6
|
|
ldr r2, [r4, r3]
|
|
add r3, r3, #4
|
|
ldr r3, [r4, r3]
|
|
add r1, sp, #0xc
|
|
bl ov02_0224DE10
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, pc}
|
|
_0224DFF2:
|
|
add r0, r0, #1
|
|
add r2, #0xcc
|
|
cmp r0, #0x12
|
|
blt _0224DFCA
|
|
_0224DFFA:
|
|
bl GF_AssertFail
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0224E004: .word 0x00000E9A
|
|
thumb_func_end ov02_0224DF1C
|
|
|
|
thumb_func_start ov02_0224E008
|
|
ov02_0224E008: ; 0x0224E008
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
add r5, #0x10
|
|
_0224E010:
|
|
add r0, r5, #0
|
|
bl ov02_0224DE6C
|
|
add r4, r4, #1
|
|
add r5, #0xcc
|
|
cmp r4, #0x12
|
|
blt _0224E010
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_0224E008
|
|
|
|
thumb_func_start ov02_0224E020
|
|
ov02_0224E020: ; 0x0224E020
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0224E032
|
|
cmp r0, #1
|
|
beq _0224E04A
|
|
pop {r3, r4, r5, pc}
|
|
_0224E032:
|
|
ldr r1, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
lsl r2, r1, #2
|
|
ldr r1, _0224E06C ; =ov02_02253A34
|
|
ldr r1, [r1, r2]
|
|
blx r1
|
|
cmp r0, #1
|
|
bne _0224E068
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
pop {r3, r4, r5, pc}
|
|
_0224E04A:
|
|
ldr r1, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
lsl r2, r1, #2
|
|
ldr r1, _0224E070 ; =ov02_02253A04
|
|
ldr r1, [r1, r2]
|
|
blx r1
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
_0224E068:
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0224E06C: .word ov02_02253A34
|
|
_0224E070: .word ov02_02253A04
|
|
thumb_func_end ov02_0224E020
|
|
|
|
thumb_func_start ov02_0224E074
|
|
ov02_0224E074: ; 0x0224E074
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
add r5, r1, #0
|
|
add r0, r3, #0
|
|
mov r1, #0x10
|
|
add r4, r2, #0
|
|
bl AllocFromHeap
|
|
add r6, r0, #0
|
|
add r2, r6, #0
|
|
mov r1, #0x10
|
|
mov r0, #0
|
|
_0224E08C:
|
|
strb r0, [r2]
|
|
add r2, r2, #1
|
|
sub r1, r1, #1
|
|
bne _0224E08C
|
|
ldr r1, _0224E0B4 ; =ov02_02253A1C
|
|
lsl r2, r4, #2
|
|
ldr r1, [r1, r2]
|
|
add r0, r7, #0
|
|
blx r1
|
|
str r0, [r6]
|
|
str r5, [r6, #4]
|
|
ldr r0, _0224E0B8 ; =ov02_0224E020
|
|
str r4, [r6, #0xc]
|
|
mov r2, #0
|
|
add r1, r6, #0
|
|
strh r2, [r5]
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0224E0B4: .word ov02_02253A1C
|
|
_0224E0B8: .word ov02_0224E020
|
|
thumb_func_end ov02_0224E074
|
|
|
|
thumb_func_start ov02_0224E0BC
|
|
ov02_0224E0BC: ; 0x0224E0BC
|
|
push {r4, lr}
|
|
add r4, r2, #0
|
|
bl ov02_0224E0D4
|
|
add r2, r0, #0
|
|
ldr r1, _0224E0D0 ; =ov02_0224E0EC
|
|
add r0, r4, #0
|
|
bl TaskManager_Call
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0224E0D0: .word ov02_0224E0EC
|
|
thumb_func_end ov02_0224E0BC
|
|
|
|
thumb_func_start ov02_0224E0D4
|
|
ov02_0224E0D4: ; 0x0224E0D4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r0, #4
|
|
mov r1, #0x20
|
|
bl AllocFromHeapAtEnd
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
str r5, [r0, #4]
|
|
str r4, [r0, #8]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_0224E0D4
|
|
|
|
thumb_func_start ov02_0224E0EC
|
|
ov02_0224E0EC: ; 0x0224E0EC
|
|
push {r4, r5, r6, lr}
|
|
add r4, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
bl TaskManager_GetEnv
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
mov r5, #0
|
|
cmp r0, #5
|
|
bls _0224E108
|
|
b _0224E21E
|
|
_0224E108:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0224E114: ; jump table
|
|
.short _0224E120 - _0224E114 - 2 ; case 0
|
|
.short _0224E130 - _0224E114 - 2 ; case 1
|
|
.short _0224E156 - _0224E114 - 2 ; case 2
|
|
.short _0224E1AA - _0224E114 - 2 ; case 3
|
|
.short _0224E1C6 - _0224E114 - 2 ; case 4
|
|
.short _0224E1F6 - _0224E114 - 2 ; case 5
|
|
_0224E120:
|
|
add r0, r6, #0
|
|
bl FollowingPokemon_GetMapObject
|
|
bl MapObject_UnpauseMovement
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
_0224E130:
|
|
ldr r0, [r4, #4]
|
|
bl MapObject_AreBitsSetForMovementScriptInit
|
|
cmp r0, #0
|
|
beq _0224E21E
|
|
ldr r0, [r4, #8]
|
|
bl MapObject_AreBitsSetForMovementScriptInit
|
|
cmp r0, #0
|
|
beq _0224E21E
|
|
add r0, r6, #0
|
|
bl FollowingPokemon_GetMapObject
|
|
bl MapObject_PauseMovement
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _0224E21E
|
|
_0224E156:
|
|
ldr r0, [r4, #4]
|
|
bl MapObject_GetCurrentX
|
|
str r0, [r4, #0xc]
|
|
ldr r0, [r4, #4]
|
|
bl MapObject_GetCurrentY
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4, #4]
|
|
bl MapObject_GetFacingDirection
|
|
str r0, [r4, #0x14]
|
|
ldr r0, [r4, #8]
|
|
bl MapObject_GetCurrentX
|
|
str r0, [r4, #0x18]
|
|
ldr r0, [r4, #8]
|
|
bl MapObject_GetCurrentY
|
|
str r0, [r4, #0x1c]
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0xc
|
|
add r1, #0x18
|
|
bl ov02_0224E224
|
|
add r6, r0, #0
|
|
ldr r0, [r4, #4]
|
|
add r1, r6, #0
|
|
bl MapObject_SetHeldMovement
|
|
add r0, r6, #0
|
|
bl ov02_0224E2D4
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #8]
|
|
bl MapObject_SetHeldMovement
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _0224E21E
|
|
_0224E1AA:
|
|
ldr r0, [r4, #4]
|
|
bl MapObject_AreBitsSetForMovementScriptInit
|
|
cmp r0, #0
|
|
beq _0224E21E
|
|
ldr r0, [r4, #8]
|
|
bl MapObject_AreBitsSetForMovementScriptInit
|
|
cmp r0, #0
|
|
beq _0224E21E
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _0224E21E
|
|
_0224E1C6:
|
|
ldr r0, [r4, #4]
|
|
bl MapObject_GetFacingDirection
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl ov02_0224E2A0
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #4]
|
|
bl MapObject_SetHeldMovement
|
|
ldr r0, [r4, #0x14]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl ov02_0224E26C
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #8]
|
|
bl MapObject_SetHeldMovement
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _0224E21E
|
|
_0224E1F6:
|
|
ldr r0, [r4, #4]
|
|
bl MapObject_AreBitsSetForMovementScriptInit
|
|
cmp r0, #0
|
|
beq _0224E21E
|
|
ldr r0, [r4, #8]
|
|
bl MapObject_AreBitsSetForMovementScriptInit
|
|
cmp r0, #0
|
|
beq _0224E21E
|
|
ldr r0, [r4, #4]
|
|
bl MapObject_ClearHeldMovementIfActive
|
|
ldr r0, [r4, #8]
|
|
bl MapObject_ClearHeldMovementIfActive
|
|
add r0, r4, #0
|
|
mov r5, #1
|
|
bl FreeToHeap
|
|
_0224E21E:
|
|
add r0, r5, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224E0EC
|
|
|
|
thumb_func_start ov02_0224E224
|
|
ov02_0224E224: ; 0x0224E224
|
|
push {r3, r4, r5, lr}
|
|
ldr r5, [r1]
|
|
ldr r3, [r0]
|
|
mov r4, #0xd
|
|
cmp r3, r5
|
|
bne _0224E246
|
|
ldr r1, [r1, #4]
|
|
ldr r0, [r0, #4]
|
|
cmp r0, r1
|
|
ble _0224E23C
|
|
mov r4, #0xc
|
|
b _0224E268
|
|
_0224E23C:
|
|
cmp r0, r1
|
|
blt _0224E268
|
|
bl GF_AssertFail
|
|
b _0224E268
|
|
_0224E246:
|
|
ldr r2, [r0, #4]
|
|
ldr r0, [r1, #4]
|
|
cmp r2, r0
|
|
bne _0224E264
|
|
cmp r3, r5
|
|
ble _0224E256
|
|
mov r4, #0xe
|
|
b _0224E268
|
|
_0224E256:
|
|
cmp r3, r5
|
|
bge _0224E25E
|
|
mov r4, #0xf
|
|
b _0224E268
|
|
_0224E25E:
|
|
bl GF_AssertFail
|
|
b _0224E268
|
|
_0224E264:
|
|
bl GF_AssertFail
|
|
_0224E268:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_0224E224
|
|
|
|
thumb_func_start ov02_0224E26C
|
|
ov02_0224E26C: ; 0x0224E26C
|
|
push {r3, lr}
|
|
cmp r0, #3
|
|
bhi _0224E296
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0224E27E: ; jump table
|
|
.short _0224E286 - _0224E27E - 2 ; case 0
|
|
.short _0224E28A - _0224E27E - 2 ; case 1
|
|
.short _0224E28E - _0224E27E - 2 ; case 2
|
|
.short _0224E292 - _0224E27E - 2 ; case 3
|
|
_0224E286:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_0224E28A:
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0224E28E:
|
|
mov r0, #2
|
|
pop {r3, pc}
|
|
_0224E292:
|
|
mov r0, #3
|
|
pop {r3, pc}
|
|
_0224E296:
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224E26C
|
|
|
|
thumb_func_start ov02_0224E2A0
|
|
ov02_0224E2A0: ; 0x0224E2A0
|
|
push {r3, lr}
|
|
cmp r0, #3
|
|
bhi _0224E2CA
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0224E2B2: ; jump table
|
|
.short _0224E2BA - _0224E2B2 - 2 ; case 0
|
|
.short _0224E2BE - _0224E2B2 - 2 ; case 1
|
|
.short _0224E2C2 - _0224E2B2 - 2 ; case 2
|
|
.short _0224E2C6 - _0224E2B2 - 2 ; case 3
|
|
_0224E2BA:
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0224E2BE:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_0224E2C2:
|
|
mov r0, #3
|
|
pop {r3, pc}
|
|
_0224E2C6:
|
|
mov r0, #2
|
|
pop {r3, pc}
|
|
_0224E2CA:
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224E2A0
|
|
|
|
thumb_func_start ov02_0224E2D4
|
|
ov02_0224E2D4: ; 0x0224E2D4
|
|
push {r3, lr}
|
|
sub r0, #0xc
|
|
cmp r0, #3
|
|
bhi _0224E300
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0224E2E8: ; jump table
|
|
.short _0224E2F0 - _0224E2E8 - 2 ; case 0
|
|
.short _0224E2F4 - _0224E2E8 - 2 ; case 1
|
|
.short _0224E2F8 - _0224E2E8 - 2 ; case 2
|
|
.short _0224E2FC - _0224E2E8 - 2 ; case 3
|
|
_0224E2F0:
|
|
mov r0, #0xd
|
|
pop {r3, pc}
|
|
_0224E2F4:
|
|
mov r0, #0xc
|
|
pop {r3, pc}
|
|
_0224E2F8:
|
|
mov r0, #0xf
|
|
pop {r3, pc}
|
|
_0224E2FC:
|
|
mov r0, #0xe
|
|
pop {r3, pc}
|
|
_0224E300:
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
thumb_func_end ov02_0224E2D4
|
|
|
|
thumb_func_start ov02_0224E308
|
|
ov02_0224E308: ; 0x0224E308
|
|
ldr r1, _0224E318 ; =0x00000165
|
|
cmp r0, r1
|
|
bne _0224E312
|
|
mov r0, #1
|
|
bx lr
|
|
_0224E312:
|
|
mov r0, #0
|
|
bx lr
|
|
nop
|
|
_0224E318: .word 0x00000165
|
|
thumb_func_end ov02_0224E308
|
|
|
|
thumb_func_start ov02_0224E31C
|
|
ov02_0224E31C: ; 0x0224E31C
|
|
sub r0, #0x20
|
|
asr r2, r0, #4
|
|
lsr r2, r2, #0x1b
|
|
add r2, r0, r2
|
|
sub r1, #0x20
|
|
asr r0, r1, #4
|
|
lsr r0, r0, #0x1b
|
|
add r0, r1, r0
|
|
asr r1, r0, #5
|
|
lsl r0, r1, #1
|
|
asr r2, r2, #5
|
|
add r0, r1, r0
|
|
add r0, r2, r0
|
|
bmi _0224E33C
|
|
cmp r0, #6
|
|
blt _0224E33E
|
|
_0224E33C:
|
|
mov r0, #0
|
|
_0224E33E:
|
|
bx lr
|
|
thumb_func_end ov02_0224E31C
|
|
|
|
thumb_func_start ov02_0224E340
|
|
ov02_0224E340: ; 0x0224E340
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x40]
|
|
bl GetPlayerXCoord
|
|
add r4, r0, #0
|
|
ldr r0, [r5, #0x40]
|
|
bl GetPlayerYCoord
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
bl ov02_0224E31C
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_0224E340
|
|
|
|
thumb_func_start ov02_0224E35C
|
|
ov02_0224E35C: ; 0x0224E35C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x1c
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
add r6, r0, #0
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_LocalFieldData_Get
|
|
bl LocalFieldData_GetCurrentPosition
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_SafariZone_Get
|
|
add r4, r0, #0
|
|
ldr r0, [r5, #0x20]
|
|
ldr r0, [r0]
|
|
bl ov02_0224E308
|
|
cmp r0, #0
|
|
bne _0224E38E
|
|
add sp, #0x1c
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224E38E:
|
|
add r0, r6, #0
|
|
bl Save_VarsFlags_CheckSafariSysFlag
|
|
cmp r0, #0
|
|
bne _0224E39E
|
|
add sp, #0x1c
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224E39E:
|
|
add r0, r4, #0
|
|
bl sub_0202F620
|
|
cmp r0, #0
|
|
beq _0224E3AE
|
|
add sp, #0x1c
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224E3AE:
|
|
add r0, r4, #0
|
|
bl sub_0202F720
|
|
cmp r0, #0
|
|
bne _0224E3BE
|
|
add sp, #0x1c
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224E3BE:
|
|
ldr r0, [r5, #0x40]
|
|
bl PlayerAvatar_GetFacingDirection
|
|
add r7, r0, #0
|
|
ldr r0, [r5, #0x40]
|
|
bl GetPlayerXCoord
|
|
add r4, r0, #0
|
|
ldr r0, [r5, #0x40]
|
|
bl GetPlayerYCoord
|
|
str r0, [sp, #8]
|
|
add r0, r7, #0
|
|
bl GetDeltaXByFacingDirection
|
|
add r6, r4, r0
|
|
add r0, r7, #0
|
|
bl GetDeltaYByFacingDirection
|
|
ldr r1, [sp, #8]
|
|
add r4, r1, r0
|
|
cmp r6, #0x20
|
|
blt _0224E3F8
|
|
cmp r6, #0x80
|
|
bge _0224E3F8
|
|
cmp r4, #0x20
|
|
blt _0224E3F8
|
|
cmp r4, #0x60
|
|
blt _0224E3FE
|
|
_0224E3F8:
|
|
add sp, #0x1c
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224E3FE:
|
|
cmp r6, #0x20
|
|
blt _0224E40E
|
|
cmp r6, #0x80
|
|
bge _0224E40E
|
|
cmp r4, #0x20
|
|
blt _0224E40E
|
|
cmp r4, #0x60
|
|
blt _0224E414
|
|
_0224E40E:
|
|
add sp, #0x1c
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224E414:
|
|
ldr r0, [r5, #0x40]
|
|
add r1, sp, #0x10
|
|
bl PlayerAvatar_GetPositionVec
|
|
add r0, sp, #0xc
|
|
str r0, [sp]
|
|
ldr r1, [sp, #0x14]
|
|
ldr r2, [sp, #0x10]
|
|
ldr r3, [sp, #0x18]
|
|
add r0, r5, #0
|
|
bl sub_02054774
|
|
add r7, r0, #0
|
|
add r0, sp, #0xc
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
beq _0224E43C
|
|
add sp, #0x1c
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224E43C:
|
|
lsl r0, r4, #4
|
|
add r0, #8
|
|
cmp r0, #0
|
|
ble _0224E458
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
str r0, [sp, #4]
|
|
b _0224E468
|
|
_0224E458:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
str r0, [sp, #4]
|
|
_0224E468:
|
|
lsl r0, r6, #4
|
|
add r0, #8
|
|
cmp r0, #0
|
|
ble _0224E482
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _0224E490
|
|
_0224E482:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_0224E490:
|
|
bl _ffix
|
|
add r4, r0, #0
|
|
ldr r0, [sp, #4]
|
|
bl _ffix
|
|
add r3, r0, #0
|
|
add r0, sp, #0xc
|
|
str r0, [sp]
|
|
ldr r1, [sp, #0x14]
|
|
add r0, r5, #0
|
|
add r2, r4, #0
|
|
bl sub_02054774
|
|
add r1, sp, #0xc
|
|
ldrb r1, [r1]
|
|
cmp r1, #1
|
|
beq _0224E4BA
|
|
add sp, #0x1c
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224E4BA:
|
|
cmp r7, r0
|
|
bne _0224E4C4
|
|
add sp, #0x1c
|
|
mov r0, #1
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224E4C4:
|
|
mov r0, #0
|
|
add sp, #0x1c
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224E35C
|
|
|
|
thumb_func_start ov02_0224E4CC
|
|
ov02_0224E4CC: ; 0x0224E4CC
|
|
push {r3, lr}
|
|
cmp r1, #0
|
|
beq _0224E4D6
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_0224E4D6:
|
|
bl sub_0205BAD0
|
|
pop {r3, pc}
|
|
thumb_func_end ov02_0224E4CC
|
|
|
|
thumb_func_start ov02_0224E4DC
|
|
ov02_0224E4DC: ; 0x0224E4DC
|
|
push {r3, lr}
|
|
cmp r1, #0
|
|
beq _0224E4E6
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_0224E4E6:
|
|
bl sub_0205BAE4
|
|
pop {r3, pc}
|
|
thumb_func_end ov02_0224E4DC
|
|
|
|
thumb_func_start ov02_0224E4EC
|
|
ov02_0224E4EC: ; 0x0224E4EC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x2c
|
|
add r5, r0, #0
|
|
add r0, r1, #0
|
|
mov r1, #0x24
|
|
bl AllocFromHeapAtEnd
|
|
mov r1, #0
|
|
mov r2, #0x24
|
|
add r4, r0, #0
|
|
bl MI_CpuFill8
|
|
add r0, r5, #0
|
|
bl FieldSystem_GetSaveDataPtr
|
|
str r0, [r4]
|
|
mov r0, #0x43
|
|
lsl r0, r0, #2
|
|
add r1, r5, r0
|
|
add r0, r0, #5
|
|
str r1, [r4, #4]
|
|
add r0, r5, r0
|
|
str r0, [r4, #0x20]
|
|
ldr r0, [r5, #0x40]
|
|
bl PlayerAvatar_GetState
|
|
cmp r0, #2
|
|
bne _0224E528
|
|
mov r0, #1
|
|
b _0224E52A
|
|
_0224E528:
|
|
mov r0, #0
|
|
_0224E52A:
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
strb r6, [r4, #0x18]
|
|
ldr r0, [r5, #0x40]
|
|
bl PlayerAvatar_GetFacingDirection
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x40]
|
|
bl GetPlayerXCoord
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [r5, #0x40]
|
|
bl GetPlayerYCoord
|
|
lsl r0, r0, #0x10
|
|
asr r7, r0, #0x10
|
|
ldr r0, [r5, #0x40]
|
|
add r1, sp, #0x20
|
|
bl PlayerAvatar_GetPositionVec
|
|
ldr r0, [sp, #0x14]
|
|
add r1, r7, #0
|
|
bl ov02_0224E31C
|
|
strb r0, [r4, #0x19]
|
|
add r0, sp, #0x18
|
|
str r0, [sp]
|
|
ldr r1, [sp, #0x24]
|
|
ldr r2, [sp, #0x20]
|
|
ldr r3, [sp, #0x28]
|
|
add r0, r5, #0
|
|
bl sub_02054774
|
|
str r0, [sp, #0x24]
|
|
add r1, sp, #0x18
|
|
ldrb r1, [r1]
|
|
cmp r1, #1
|
|
beq _0224E584
|
|
add sp, #0x2c
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224E584:
|
|
asr r0, r0, #0xc
|
|
strb r0, [r4, #0x1a]
|
|
ldr r0, [sp, #0x10]
|
|
bl GetDeltaXByFacingDirection
|
|
ldr r1, [sp, #0x14]
|
|
add r0, r1, r0
|
|
strb r0, [r4, #9]
|
|
ldr r0, [sp, #0x10]
|
|
bl GetDeltaYByFacingDirection
|
|
add r0, r7, r0
|
|
strb r0, [r4, #0xb]
|
|
mov r0, #1
|
|
strb r0, [r4, #8]
|
|
ldr r0, [sp, #0x24]
|
|
add r2, r7, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x1c
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x18
|
|
add r0, #2
|
|
str r0, [sp, #8]
|
|
str r6, [sp, #0xc]
|
|
ldr r1, [sp, #0x14]
|
|
ldr r3, [sp, #0x10]
|
|
add r0, r5, #0
|
|
bl ov02_0224E828
|
|
cmp r0, #0
|
|
beq _0224E5D4
|
|
add r1, sp, #0x18
|
|
mov r0, #4
|
|
ldrsh r0, [r1, r0]
|
|
strb r0, [r4, #0xd]
|
|
mov r0, #2
|
|
ldrsh r0, [r1, r0]
|
|
strb r0, [r4, #0xf]
|
|
mov r0, #1
|
|
strb r0, [r4, #0xc]
|
|
_0224E5D4:
|
|
ldr r0, [sp, #0x24]
|
|
add r2, r7, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x1c
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x18
|
|
add r0, #2
|
|
str r0, [sp, #8]
|
|
str r6, [sp, #0xc]
|
|
ldr r1, [sp, #0x14]
|
|
ldr r3, [sp, #0x10]
|
|
add r0, r5, #0
|
|
bl ov02_0224EB48
|
|
cmp r0, #0
|
|
beq _0224E606
|
|
add r1, sp, #0x18
|
|
mov r0, #4
|
|
ldrsh r0, [r1, r0]
|
|
strb r0, [r4, #0x11]
|
|
mov r0, #2
|
|
ldrsh r0, [r1, r0]
|
|
strb r0, [r4, #0x13]
|
|
mov r0, #1
|
|
strb r0, [r4, #0x10]
|
|
_0224E606:
|
|
ldr r0, [sp, #0x24]
|
|
add r2, r7, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x1c
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x18
|
|
add r0, #2
|
|
str r0, [sp, #8]
|
|
str r6, [sp, #0xc]
|
|
ldr r1, [sp, #0x14]
|
|
ldr r3, [sp, #0x10]
|
|
add r0, r5, #0
|
|
bl ov02_0224EE4C
|
|
cmp r0, #0
|
|
beq _0224E638
|
|
add r1, sp, #0x18
|
|
mov r0, #4
|
|
ldrsh r0, [r1, r0]
|
|
strb r0, [r4, #0x15]
|
|
mov r0, #2
|
|
ldrsh r0, [r1, r0]
|
|
strb r0, [r4, #0x17]
|
|
mov r0, #1
|
|
strb r0, [r4, #0x14]
|
|
_0224E638:
|
|
add r0, r4, #0
|
|
add sp, #0x2c
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224E4EC
|
|
|
|
thumb_func_start ov02_0224E640
|
|
ov02_0224E640: ; 0x0224E640
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
bl Save_PlayerData_GetProfileAddr
|
|
bl PlayerProfile_GetTrainerID
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl Save_SafariZone_Get
|
|
bl sub_0202F720
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
mov r1, #0xa
|
|
bl _u32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r0, r0, #0x18
|
|
cmp r0, #6
|
|
bhs _0224E672
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
b _0224E67C
|
|
_0224E672:
|
|
sub r1, r0, #6
|
|
lsr r0, r1, #0x1f
|
|
add r0, r1, r0
|
|
asr r0, r0, #1
|
|
add r0, r0, #2
|
|
_0224E67C:
|
|
lsl r0, r0, #0x18
|
|
lsr r1, r0, #0x18
|
|
mov r0, #3
|
|
sub r0, r0, r1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
add r0, r0, #1
|
|
cmp r4, r0
|
|
blt _0224E692
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_0224E692:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224E640
|
|
|
|
thumb_func_start ov02_0224E698
|
|
ov02_0224E698: ; 0x0224E698
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x20
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x40]
|
|
bl PlayerAvatar_GetFacingDirection
|
|
lsl r0, r0, #0x18
|
|
lsr r7, r0, #0x18
|
|
ldr r0, [r5, #0x40]
|
|
bl GetPlayerXCoord
|
|
lsl r0, r0, #0x10
|
|
asr r6, r0, #0x10
|
|
ldr r0, [r5, #0x40]
|
|
bl GetPlayerYCoord
|
|
lsl r0, r0, #0x10
|
|
asr r4, r0, #0x10
|
|
ldr r0, [r5, #0x40]
|
|
add r1, sp, #0x14
|
|
bl PlayerAvatar_GetPositionVec
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_SafariZone_Get
|
|
mov r1, #0
|
|
bl SafariZone_GetAreaSet
|
|
add r2, r0, #0
|
|
add r0, r6, #0
|
|
sub r0, #0x20
|
|
asr r1, r0, #4
|
|
lsr r1, r1, #0x1b
|
|
add r1, r0, r1
|
|
add r0, r4, #0
|
|
sub r0, #0x20
|
|
asr r3, r0, #4
|
|
lsr r3, r3, #0x1b
|
|
add r3, r0, r3
|
|
asr r3, r3, #5
|
|
lsl r0, r3, #1
|
|
asr r1, r1, #5
|
|
add r0, r3, r0
|
|
add r0, r1, r0
|
|
lsl r0, r0, #0x18
|
|
lsr r1, r0, #0x18
|
|
mov r0, #0x7a
|
|
mul r0, r1
|
|
add r0, r2, r0
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0x1e
|
|
blo _0224E706
|
|
add sp, #0x20
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224E706:
|
|
ldr r0, [r5, #0x40]
|
|
bl PlayerAvatar_GetState
|
|
cmp r0, #2
|
|
beq _0224E716
|
|
add sp, #0x20
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224E716:
|
|
ldr r0, [r5, #0xc]
|
|
bl ov02_0224E640
|
|
cmp r0, #0
|
|
bne _0224E726
|
|
add sp, #0x20
|
|
mov r0, #2
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224E726:
|
|
ldr r0, [sp, #0x18]
|
|
add r1, r6, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
add r0, #2
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #8]
|
|
mov r0, #1
|
|
str r0, [sp, #0xc]
|
|
add r0, r5, #0
|
|
add r2, r4, #0
|
|
add r3, r7, #0
|
|
bl ov02_0224EE4C
|
|
cmp r0, #0
|
|
beq _0224E74E
|
|
add sp, #0x20
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224E74E:
|
|
mov r0, #3
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_0224E698
|
|
|
|
thumb_func_start ov02_0224E754
|
|
ov02_0224E754: ; 0x0224E754
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x40]
|
|
str r1, [sp]
|
|
bl PlayerAvatar_GetFacingDirection
|
|
add r6, r0, #0
|
|
ldr r0, [r4, #0x40]
|
|
bl GetPlayerXCoord
|
|
add r5, r0, #0
|
|
add r0, r6, #0
|
|
bl GetDeltaXByFacingDirection
|
|
add r7, r5, r0
|
|
ldr r0, [r4, #0x40]
|
|
bl GetPlayerYCoord
|
|
add r5, r0, #0
|
|
add r0, r6, #0
|
|
bl GetDeltaYByFacingDirection
|
|
add r6, r5, r0
|
|
ldr r0, [r4, #0xc]
|
|
bl Save_PlayerData_GetProfileAddr
|
|
bl PlayerProfile_GetTrainerGender
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r6, #0
|
|
bl ov02_0224E31C
|
|
add r5, r0, #0
|
|
lsr r1, r7, #0x1f
|
|
lsl r0, r7, #0x1b
|
|
sub r0, r0, r1
|
|
mov r2, #0x1b
|
|
ror r0, r2
|
|
add r7, r1, r0
|
|
lsr r1, r6, #0x1f
|
|
lsl r0, r6, #0x1b
|
|
sub r0, r0, r1
|
|
ror r0, r2
|
|
add r6, r1, r0
|
|
ldr r0, [r4, #0xc]
|
|
bl Save_SafariZone_Get
|
|
mov r1, #0
|
|
bl SafariZone_GetAreaSet
|
|
mov r1, #0x7a
|
|
mul r1, r5
|
|
add r0, r0, r1
|
|
str r0, [sp, #8]
|
|
ldrb r0, [r0, #1]
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
ble _0224E81C
|
|
ldr r0, [sp, #8]
|
|
add r5, r0, #2
|
|
_0224E7D4:
|
|
ldrb r1, [r5]
|
|
ldr r2, [sp, #4]
|
|
add r0, sp, #0xc
|
|
bl sub_02097268
|
|
ldrb r1, [r5, #1]
|
|
cmp r7, r1
|
|
blt _0224E810
|
|
ldrb r0, [r5, #3]
|
|
cmp r6, r0
|
|
bgt _0224E810
|
|
add r2, sp, #0xc
|
|
ldrb r2, [r2, #1]
|
|
lsl r3, r2, #0x1c
|
|
lsr r3, r3, #0x1d
|
|
add r1, r1, r3
|
|
cmp r7, r1
|
|
bge _0224E810
|
|
lsl r1, r2, #0x19
|
|
lsr r1, r1, #0x1d
|
|
sub r0, r0, r1
|
|
cmp r6, r0
|
|
ble _0224E810
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
beq _0224E80A
|
|
strh r4, [r0]
|
|
_0224E80A:
|
|
add sp, #0x10
|
|
ldrb r0, [r5]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224E810:
|
|
ldr r0, [sp, #8]
|
|
add r4, r4, #1
|
|
ldrb r0, [r0, #1]
|
|
add r5, r5, #4
|
|
cmp r4, r0
|
|
blt _0224E7D4
|
|
_0224E81C:
|
|
ldr r0, [sp]
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
mov r0, #0xff
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_0224E754
|
|
|
|
thumb_func_start ov02_0224E828
|
|
ov02_0224E828: ; 0x0224E828
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x6c
|
|
add r4, r0, #0
|
|
add r5, r1, #0
|
|
ldr r0, [sp, #0x84]
|
|
str r2, [sp, #4]
|
|
ldr r1, _0224EB44 ; =ov02_02253A4C
|
|
str r0, [sp, #0x84]
|
|
ldr r0, [sp, #0x88]
|
|
ldrb r2, [r1, #2]
|
|
str r0, [sp, #0x88]
|
|
ldrb r1, [r1, #3]
|
|
str r3, [sp, #8]
|
|
add r0, sp, #0x68
|
|
strb r2, [r0, #1]
|
|
strb r1, [r0, #2]
|
|
ldr r1, [sp, #0x84]
|
|
ldr r6, [sp, #0x80]
|
|
strh r5, [r1]
|
|
ldr r2, [sp, #4]
|
|
ldr r1, [sp, #0x88]
|
|
strh r2, [r1]
|
|
ldr r1, [sp, #8]
|
|
cmp r1, #3
|
|
bls _0224E85C
|
|
b _0224EB3E
|
|
_0224E85C:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0224E868: ; jump table
|
|
.short _0224E870 - _0224E868 - 2 ; case 0
|
|
.short _0224E870 - _0224E868 - 2 ; case 1
|
|
.short _0224E992 - _0224E868 - 2 ; case 2
|
|
.short _0224E992 - _0224E868 - 2 ; case 3
|
|
_0224E870:
|
|
mov r0, #0
|
|
str r0, [sp, #0x50]
|
|
ldr r0, [sp, #8]
|
|
cmp r0, #0
|
|
beq _0224E87E
|
|
mov r0, #1
|
|
b _0224E880
|
|
_0224E87E:
|
|
ldr r0, [sp, #0x50]
|
|
_0224E880:
|
|
lsl r0, r0, #0x18
|
|
lsr r1, r0, #0x18
|
|
mov r0, #0
|
|
str r0, [sp, #0x54]
|
|
add r0, sp, #0x68
|
|
add r0, #1
|
|
ldrsb r0, [r0, r1]
|
|
ldr r7, [sp, #0x54]
|
|
str r0, [sp, #0x38]
|
|
add r0, sp, #0x70
|
|
ldrb r0, [r0, #0x1c]
|
|
str r0, [sp, #0x48]
|
|
lsl r0, r5, #4
|
|
str r0, [sp, #0x44]
|
|
add r0, #8
|
|
str r0, [sp, #0x44]
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #0x40]
|
|
_0224E8A4:
|
|
ldr r0, [sp, #0x38]
|
|
add r1, r7, r0
|
|
ldr r0, [sp, #4]
|
|
add r0, r0, r1
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
str r0, [sp, #0x3c]
|
|
ldr r2, [sp, #0x3c]
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl GetMetatileBehaviorAt
|
|
str r0, [sp, #0x58]
|
|
ldr r2, [sp, #0x3c]
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl sub_020548C0
|
|
add r1, r0, #0
|
|
ldr r0, [sp, #0x58]
|
|
ldr r2, [sp, #0x48]
|
|
bl ov02_0224EF6C
|
|
cmp r0, #0
|
|
beq _0224E95C
|
|
ldr r0, [sp, #0x3c]
|
|
lsl r0, r0, #4
|
|
add r0, #8
|
|
cmp r0, #0
|
|
ble _0224E8F4
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
str r0, [sp, #0x14]
|
|
b _0224E904
|
|
_0224E8F4:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
str r0, [sp, #0x14]
|
|
_0224E904:
|
|
ldr r0, [sp, #0x44]
|
|
cmp r0, #0
|
|
ble _0224E91C
|
|
ldr r0, [sp, #0x40]
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _0224E92A
|
|
_0224E91C:
|
|
ldr r0, [sp, #0x40]
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_0224E92A:
|
|
bl _ffix
|
|
str r0, [sp, #0x5c]
|
|
ldr r0, [sp, #0x14]
|
|
bl _ffix
|
|
add r3, r0, #0
|
|
add r0, sp, #0x68
|
|
str r0, [sp]
|
|
ldr r2, [sp, #0x5c]
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
bl sub_02054774
|
|
add r1, sp, #0x68
|
|
ldrb r1, [r1]
|
|
cmp r1, #1
|
|
bne _0224E95C
|
|
cmp r0, r6
|
|
bne _0224E95C
|
|
ldr r0, [sp, #0x50]
|
|
add r0, r0, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x50]
|
|
_0224E95C:
|
|
ldr r0, [sp, #0x38]
|
|
add r7, r7, r0
|
|
ldr r0, [sp, #0x54]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x54]
|
|
cmp r0, #2
|
|
blt _0224E8A4
|
|
ldr r0, [sp, #0x50]
|
|
cmp r0, #2
|
|
beq _0224E972
|
|
b _0224EB3E
|
|
_0224E972:
|
|
ldr r0, [sp, #0x84]
|
|
strh r5, [r0]
|
|
ldr r0, [sp, #8]
|
|
cmp r0, #0
|
|
bne _0224E984
|
|
ldr r0, [sp, #4]
|
|
sub r1, r0, #1
|
|
ldr r0, [sp, #0x88]
|
|
b _0224E98A
|
|
_0224E984:
|
|
ldr r0, [sp, #4]
|
|
add r1, r0, #2
|
|
ldr r0, [sp, #0x88]
|
|
_0224E98A:
|
|
strh r1, [r0]
|
|
add sp, #0x6c
|
|
mov r0, #1
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224E992:
|
|
ldr r1, [sp, #8]
|
|
cmp r1, #2
|
|
bne _0224E99C
|
|
mov r1, #1
|
|
b _0224E99E
|
|
_0224E99C:
|
|
mov r1, #2
|
|
_0224E99E:
|
|
ldrsb r0, [r0, r1]
|
|
ldr r2, [sp, #4]
|
|
add r0, r5, r0
|
|
lsl r0, r0, #0x10
|
|
asr r5, r0, #0x10
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl GetMetatileBehaviorAt
|
|
str r0, [sp, #0x20]
|
|
ldr r2, [sp, #4]
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl sub_020548C0
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #4]
|
|
lsl r0, r0, #4
|
|
add r0, #8
|
|
cmp r0, #0
|
|
ble _0224E9DC
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
str r0, [sp, #0x10]
|
|
b _0224E9EC
|
|
_0224E9DC:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
str r0, [sp, #0x10]
|
|
_0224E9EC:
|
|
lsl r0, r5, #4
|
|
str r0, [sp, #0x2c]
|
|
add r0, #8
|
|
str r0, [sp, #0x2c]
|
|
cmp r0, #0
|
|
ble _0224EA0A
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _0224EA18
|
|
_0224EA0A:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_0224EA18:
|
|
bl _ffix
|
|
add r7, r0, #0
|
|
ldr r0, [sp, #0x10]
|
|
bl _ffix
|
|
add r3, r0, #0
|
|
add r0, sp, #0x68
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
add r2, r7, #0
|
|
bl sub_02054774
|
|
add r7, r0, #0
|
|
add r0, sp, #0x70
|
|
ldrb r0, [r0, #0x1c]
|
|
ldr r1, [sp, #0x18]
|
|
str r0, [sp, #0x34]
|
|
ldr r0, [sp, #0x20]
|
|
ldr r2, [sp, #0x34]
|
|
bl ov02_0224EF6C
|
|
cmp r0, #0
|
|
beq _0224EA56
|
|
add r0, sp, #0x68
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _0224EA56
|
|
cmp r7, r6
|
|
beq _0224EA5C
|
|
_0224EA56:
|
|
add sp, #0x6c
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224EA5C:
|
|
mov r0, #0
|
|
str r0, [sp, #0x28]
|
|
ldr r0, [sp, #0x2c]
|
|
add r7, sp, #0x68
|
|
lsl r0, r0, #0xc
|
|
add r7, #1
|
|
str r0, [sp, #0x4c]
|
|
_0224EA6A:
|
|
mov r0, #0
|
|
ldrsb r1, [r7, r0]
|
|
ldr r0, [sp, #4]
|
|
add r0, r0, r1
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
str r0, [sp, #0x30]
|
|
ldr r2, [sp, #0x30]
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl GetMetatileBehaviorAt
|
|
str r0, [sp, #0x24]
|
|
ldr r2, [sp, #0x30]
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl sub_020548C0
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [sp, #0x30]
|
|
lsl r0, r0, #4
|
|
add r0, #8
|
|
cmp r0, #0
|
|
ble _0224EAAE
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
str r0, [sp, #0xc]
|
|
b _0224EABE
|
|
_0224EAAE:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
str r0, [sp, #0xc]
|
|
_0224EABE:
|
|
ldr r0, [sp, #0x2c]
|
|
cmp r0, #0
|
|
ble _0224EAD6
|
|
ldr r0, [sp, #0x4c]
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _0224EAE4
|
|
_0224EAD6:
|
|
ldr r0, [sp, #0x4c]
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_0224EAE4:
|
|
bl _ffix
|
|
str r0, [sp, #0x60]
|
|
ldr r0, [sp, #0xc]
|
|
bl _ffix
|
|
add r3, r0, #0
|
|
add r0, sp, #0x68
|
|
str r0, [sp]
|
|
ldr r2, [sp, #0x60]
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
bl sub_02054774
|
|
str r0, [sp, #0x64]
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x1c]
|
|
ldr r2, [sp, #0x34]
|
|
bl ov02_0224EF6C
|
|
cmp r0, #0
|
|
beq _0224EB32
|
|
add r0, sp, #0x68
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _0224EB32
|
|
ldr r0, [sp, #0x64]
|
|
cmp r0, r6
|
|
bne _0224EB32
|
|
ldr r0, [sp, #0x84]
|
|
strh r5, [r0]
|
|
ldr r1, [sp, #4]
|
|
ldr r0, [sp, #0x28]
|
|
add r1, r1, r0
|
|
ldr r0, [sp, #0x88]
|
|
add sp, #0x6c
|
|
strh r1, [r0]
|
|
mov r0, #1
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224EB32:
|
|
ldr r0, [sp, #0x28]
|
|
add r7, r7, #1
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x28]
|
|
cmp r0, #2
|
|
blt _0224EA6A
|
|
_0224EB3E:
|
|
mov r0, #0
|
|
add sp, #0x6c
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0224EB44: .word ov02_02253A4C
|
|
thumb_func_end ov02_0224E828
|
|
|
|
thumb_func_start ov02_0224EB48
|
|
ov02_0224EB48: ; 0x0224EB48
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x68
|
|
add r4, r0, #0
|
|
ldr r0, [sp, #0x84]
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #0x84]
|
|
ldr r0, [sp, #0x88]
|
|
ldr r1, _0224EE48 ; =ov02_02253A4C
|
|
str r0, [sp, #0x88]
|
|
add r5, r2, #0
|
|
add r2, r3, #0
|
|
ldrb r0, [r1]
|
|
add r3, sp, #0x64
|
|
ldr r6, [sp, #0x80]
|
|
strb r0, [r3, #1]
|
|
ldrb r0, [r1, #1]
|
|
cmp r2, #3
|
|
strb r0, [r3, #2]
|
|
ldr r1, [sp, #4]
|
|
ldr r0, [sp, #0x84]
|
|
strh r1, [r0]
|
|
ldr r0, [sp, #0x88]
|
|
strh r5, [r0]
|
|
bls _0224EB7A
|
|
b _0224EE42
|
|
_0224EB7A:
|
|
add r0, r2, r2
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0224EB86: ; jump table
|
|
.short _0224EB8E - _0224EB86 - 2 ; case 0
|
|
.short _0224EB8E - _0224EB86 - 2 ; case 1
|
|
.short _0224ED3A - _0224EB86 - 2 ; case 2
|
|
.short _0224ED3A - _0224EB86 - 2 ; case 3
|
|
_0224EB8E:
|
|
cmp r2, #0
|
|
bne _0224EB96
|
|
mov r0, #1
|
|
b _0224EB98
|
|
_0224EB96:
|
|
mov r0, #2
|
|
_0224EB98:
|
|
ldrsb r0, [r3, r0]
|
|
ldr r1, [sp, #4]
|
|
add r0, r5, r0
|
|
lsl r0, r0, #0x10
|
|
asr r5, r0, #0x10
|
|
add r0, r4, #0
|
|
add r2, r5, #0
|
|
bl GetMetatileBehaviorAt
|
|
str r0, [sp, #0x50]
|
|
ldr r1, [sp, #4]
|
|
add r0, r4, #0
|
|
add r2, r5, #0
|
|
bl sub_020548C0
|
|
str r0, [sp, #0x4c]
|
|
lsl r0, r5, #4
|
|
str r0, [sp, #0x24]
|
|
add r0, #8
|
|
str r0, [sp, #0x24]
|
|
cmp r0, #0
|
|
ble _0224EBD8
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
str r0, [sp, #0x14]
|
|
b _0224EBE8
|
|
_0224EBD8:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
str r0, [sp, #0x14]
|
|
_0224EBE8:
|
|
ldr r0, [sp, #4]
|
|
lsl r0, r0, #4
|
|
add r0, #8
|
|
cmp r0, #0
|
|
ble _0224EC04
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _0224EC12
|
|
_0224EC04:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_0224EC12:
|
|
bl _ffix
|
|
add r7, r0, #0
|
|
ldr r0, [sp, #0x14]
|
|
bl _ffix
|
|
add r3, r0, #0
|
|
add r0, sp, #0x64
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
add r2, r7, #0
|
|
bl sub_02054774
|
|
add r7, r0, #0
|
|
add r0, sp, #0x70
|
|
ldrb r0, [r0, #0x1c]
|
|
ldr r1, [sp, #0x4c]
|
|
str r0, [sp, #0x30]
|
|
ldr r0, [sp, #0x50]
|
|
ldr r2, [sp, #0x30]
|
|
bl ov02_0224EF6C
|
|
cmp r0, #0
|
|
beq _0224EC50
|
|
add r0, sp, #0x64
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _0224EC50
|
|
cmp r7, r6
|
|
beq _0224EC56
|
|
_0224EC50:
|
|
add sp, #0x68
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224EC56:
|
|
mov r0, #0
|
|
str r0, [sp, #0x48]
|
|
ldr r0, [sp, #0x24]
|
|
add r7, sp, #0x64
|
|
lsl r0, r0, #0xc
|
|
add r7, #1
|
|
str r0, [sp, #0x34]
|
|
_0224EC64:
|
|
mov r0, #0
|
|
ldrsb r1, [r7, r0]
|
|
ldr r0, [sp, #4]
|
|
add r2, r5, #0
|
|
sub r0, r0, r1
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
str r0, [sp, #0x2c]
|
|
ldr r1, [sp, #0x2c]
|
|
add r0, r4, #0
|
|
bl GetMetatileBehaviorAt
|
|
str r0, [sp, #0x20]
|
|
ldr r1, [sp, #0x2c]
|
|
add r0, r4, #0
|
|
add r2, r5, #0
|
|
bl sub_020548C0
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [sp, #0x24]
|
|
cmp r0, #0
|
|
ble _0224ECA4
|
|
ldr r0, [sp, #0x34]
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
str r0, [sp, #0x10]
|
|
b _0224ECB4
|
|
_0224ECA4:
|
|
ldr r0, [sp, #0x34]
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
str r0, [sp, #0x10]
|
|
_0224ECB4:
|
|
ldr r0, [sp, #0x2c]
|
|
lsl r0, r0, #4
|
|
add r0, #8
|
|
cmp r0, #0
|
|
ble _0224ECD0
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _0224ECDE
|
|
_0224ECD0:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_0224ECDE:
|
|
bl _ffix
|
|
str r0, [sp, #0x54]
|
|
ldr r0, [sp, #0x10]
|
|
bl _ffix
|
|
add r3, r0, #0
|
|
add r0, sp, #0x64
|
|
str r0, [sp]
|
|
ldr r2, [sp, #0x54]
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
bl sub_02054774
|
|
str r0, [sp, #0x58]
|
|
ldr r0, [sp, #0x20]
|
|
ldr r1, [sp, #0x1c]
|
|
ldr r2, [sp, #0x30]
|
|
bl ov02_0224EF6C
|
|
cmp r0, #0
|
|
beq _0224ED2C
|
|
add r0, sp, #0x64
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _0224ED2C
|
|
ldr r0, [sp, #0x58]
|
|
cmp r0, r6
|
|
bne _0224ED2C
|
|
ldr r1, [sp, #4]
|
|
ldr r0, [sp, #0x48]
|
|
sub r1, r1, r0
|
|
ldr r0, [sp, #0x84]
|
|
strh r1, [r0]
|
|
ldr r0, [sp, #0x88]
|
|
add sp, #0x68
|
|
strh r5, [r0]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224ED2C:
|
|
ldr r0, [sp, #0x48]
|
|
add r7, r7, #1
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x48]
|
|
cmp r0, #2
|
|
blt _0224EC64
|
|
b _0224EE42
|
|
_0224ED3A:
|
|
mov r0, #0
|
|
str r0, [sp, #0x44]
|
|
cmp r2, #2
|
|
bne _0224ED4E
|
|
ldr r0, [sp, #4]
|
|
sub r0, r0, #2
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
str r0, [sp, #0xc]
|
|
b _0224ED58
|
|
_0224ED4E:
|
|
ldr r0, [sp, #4]
|
|
add r0, r0, #1
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
str r0, [sp, #0xc]
|
|
_0224ED58:
|
|
mov r0, #0
|
|
str r0, [sp, #0x18]
|
|
add r0, sp, #0x70
|
|
ldrb r0, [r0, #0x1c]
|
|
ldr r7, [sp, #0xc]
|
|
str r0, [sp, #0x40]
|
|
lsl r0, r5, #4
|
|
str r0, [sp, #0x3c]
|
|
add r0, #8
|
|
str r0, [sp, #0x3c]
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #0x38]
|
|
_0224ED70:
|
|
lsl r0, r7, #0x10
|
|
asr r0, r0, #0x10
|
|
str r0, [sp, #0x28]
|
|
ldr r1, [sp, #0x28]
|
|
add r0, r4, #0
|
|
add r2, r5, #0
|
|
bl GetMetatileBehaviorAt
|
|
str r0, [sp, #0x5c]
|
|
ldr r1, [sp, #0x28]
|
|
add r0, r4, #0
|
|
add r2, r5, #0
|
|
bl sub_020548C0
|
|
add r1, r0, #0
|
|
ldr r0, [sp, #0x5c]
|
|
ldr r2, [sp, #0x40]
|
|
bl ov02_0224EF6C
|
|
cmp r0, #0
|
|
beq _0224EE20
|
|
ldr r0, [sp, #0x3c]
|
|
cmp r0, #0
|
|
ble _0224EDB4
|
|
ldr r0, [sp, #0x38]
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
str r0, [sp, #8]
|
|
b _0224EDC4
|
|
_0224EDB4:
|
|
ldr r0, [sp, #0x38]
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
str r0, [sp, #8]
|
|
_0224EDC4:
|
|
ldr r0, [sp, #0x28]
|
|
lsl r0, r0, #4
|
|
add r0, #8
|
|
cmp r0, #0
|
|
ble _0224EDE0
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _0224EDEE
|
|
_0224EDE0:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_0224EDEE:
|
|
bl _ffix
|
|
str r0, [sp, #0x60]
|
|
ldr r0, [sp, #8]
|
|
bl _ffix
|
|
add r3, r0, #0
|
|
add r0, sp, #0x64
|
|
str r0, [sp]
|
|
ldr r2, [sp, #0x60]
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
bl sub_02054774
|
|
add r1, sp, #0x64
|
|
ldrb r1, [r1]
|
|
cmp r1, #1
|
|
bne _0224EE20
|
|
cmp r0, r6
|
|
bne _0224EE20
|
|
ldr r0, [sp, #0x44]
|
|
add r0, r0, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x44]
|
|
_0224EE20:
|
|
ldr r0, [sp, #0x18]
|
|
add r7, r7, #1
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x18]
|
|
cmp r0, #2
|
|
blt _0224ED70
|
|
ldr r0, [sp, #0x44]
|
|
cmp r0, #2
|
|
bne _0224EE42
|
|
ldr r1, [sp, #0xc]
|
|
ldr r0, [sp, #0x84]
|
|
strh r1, [r0]
|
|
ldr r0, [sp, #0x88]
|
|
add sp, #0x68
|
|
strh r5, [r0]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224EE42:
|
|
mov r0, #0
|
|
add sp, #0x68
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0224EE48: .word ov02_02253A4C
|
|
thumb_func_end ov02_0224EB48
|
|
|
|
thumb_func_start ov02_0224EE4C
|
|
ov02_0224EE4C: ; 0x0224EE4C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x24
|
|
str r1, [sp, #0x14]
|
|
str r2, [sp, #0x18]
|
|
ldr r4, [sp, #0x38]
|
|
str r3, [sp, #0x1c]
|
|
str r4, [sp, #0x38]
|
|
ldr r4, [sp, #0x44]
|
|
ldr r6, [sp, #0x3c]
|
|
str r4, [sp, #0x44]
|
|
ldr r4, _0224EF68 ; =ov02_02253A4C
|
|
ldr r7, [sp, #0x40]
|
|
ldrb r5, [r4, #4]
|
|
add r4, sp, #0x20
|
|
str r0, [sp, #0x10]
|
|
strb r5, [r4]
|
|
ldr r4, _0224EF68 ; =ov02_02253A4C
|
|
ldrb r5, [r4, #5]
|
|
add r4, sp, #0x20
|
|
strb r5, [r4, #1]
|
|
ldr r4, [sp, #0x14]
|
|
strh r4, [r6]
|
|
ldr r4, [sp, #0x18]
|
|
strh r4, [r7]
|
|
ldr r4, [sp, #0x1c]
|
|
cmp r4, #3
|
|
bhi _0224EF60
|
|
add r4, r4, r4
|
|
add r4, pc
|
|
ldrh r4, [r4, #6]
|
|
lsl r4, r4, #0x10
|
|
asr r4, r4, #0x10
|
|
add pc, r4
|
|
_0224EE8E: ; jump table
|
|
.short _0224EE96 - _0224EE8E - 2 ; case 0
|
|
.short _0224EE96 - _0224EE8E - 2 ; case 1
|
|
.short _0224EEFC - _0224EE8E - 2 ; case 2
|
|
.short _0224EEFC - _0224EE8E - 2 ; case 3
|
|
_0224EE96:
|
|
ldr r4, [sp, #0x38]
|
|
str r4, [sp]
|
|
str r6, [sp, #4]
|
|
str r7, [sp, #8]
|
|
ldr r4, [sp, #0x44]
|
|
str r4, [sp, #0xc]
|
|
bl ov02_0224E828
|
|
cmp r0, #0
|
|
beq _0224EF60
|
|
mov r4, #0
|
|
add r5, sp, #0x20
|
|
_0224EEAE:
|
|
ldr r0, [sp, #0x38]
|
|
mov r1, #0
|
|
str r0, [sp]
|
|
str r6, [sp, #4]
|
|
str r7, [sp, #8]
|
|
ldr r0, [sp, #0x44]
|
|
str r0, [sp, #0xc]
|
|
ldrsb r2, [r5, r1]
|
|
ldr r1, [sp, #0x14]
|
|
ldr r0, [sp, #0x10]
|
|
add r1, r1, r2
|
|
lsl r1, r1, #0x10
|
|
ldr r2, [sp, #0x18]
|
|
ldr r3, [sp, #0x1c]
|
|
asr r1, r1, #0x10
|
|
bl ov02_0224E828
|
|
cmp r0, #0
|
|
beq _0224EEF2
|
|
ldr r0, [sp, #0x14]
|
|
sub r0, r0, r4
|
|
strh r0, [r6]
|
|
ldr r0, [sp, #0x1c]
|
|
cmp r0, #0
|
|
bne _0224EEE6
|
|
ldr r0, [sp, #0x18]
|
|
sub r0, r0, #1
|
|
b _0224EEEA
|
|
_0224EEE6:
|
|
ldr r0, [sp, #0x18]
|
|
add r0, r0, #2
|
|
_0224EEEA:
|
|
add sp, #0x24
|
|
strh r0, [r7]
|
|
mov r0, #1
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224EEF2:
|
|
add r4, r4, #1
|
|
add r5, r5, #1
|
|
cmp r4, #2
|
|
blt _0224EEAE
|
|
b _0224EF60
|
|
_0224EEFC:
|
|
ldr r4, [sp, #0x38]
|
|
str r4, [sp]
|
|
str r6, [sp, #4]
|
|
str r7, [sp, #8]
|
|
ldr r4, [sp, #0x44]
|
|
str r4, [sp, #0xc]
|
|
bl ov02_0224EB48
|
|
cmp r0, #0
|
|
beq _0224EF60
|
|
mov r5, #0
|
|
add r4, sp, #0x20
|
|
_0224EF14:
|
|
ldr r0, [sp, #0x38]
|
|
mov r2, #0
|
|
str r0, [sp]
|
|
str r6, [sp, #4]
|
|
str r7, [sp, #8]
|
|
ldr r0, [sp, #0x44]
|
|
str r0, [sp, #0xc]
|
|
ldrsb r3, [r4, r2]
|
|
ldr r2, [sp, #0x18]
|
|
ldr r0, [sp, #0x10]
|
|
sub r2, r2, r3
|
|
lsl r2, r2, #0x10
|
|
ldr r1, [sp, #0x14]
|
|
ldr r3, [sp, #0x1c]
|
|
asr r2, r2, #0x10
|
|
bl ov02_0224EB48
|
|
cmp r0, #0
|
|
beq _0224EF58
|
|
ldr r0, [sp, #0x1c]
|
|
cmp r0, #2
|
|
bne _0224EF46
|
|
ldr r0, [sp, #0x14]
|
|
sub r0, r0, #2
|
|
b _0224EF4A
|
|
_0224EF46:
|
|
ldr r0, [sp, #0x14]
|
|
add r0, r0, #1
|
|
_0224EF4A:
|
|
strh r0, [r6]
|
|
ldr r0, [sp, #0x18]
|
|
add sp, #0x24
|
|
add r0, r0, r5
|
|
strh r0, [r7]
|
|
mov r0, #1
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0224EF58:
|
|
add r5, r5, #1
|
|
add r4, r4, #1
|
|
cmp r5, #2
|
|
blt _0224EF14
|
|
_0224EF60:
|
|
mov r0, #0
|
|
add sp, #0x24
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_0224EF68: .word ov02_02253A4C
|
|
thumb_func_end ov02_0224EE4C
|
|
|
|
thumb_func_start ov02_0224EF6C
|
|
ov02_0224EF6C: ; 0x0224EF6C
|
|
push {r3, lr}
|
|
cmp r2, #0
|
|
bne _0224EF78
|
|
bl ov02_0224E4CC
|
|
pop {r3, pc}
|
|
_0224EF78:
|
|
bl ov02_0224E4DC
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224EF6C
|
|
|
|
thumb_func_start Fsys_FollowPokeInteract
|
|
Fsys_FollowPokeInteract: ; 0x0224EF80
|
|
ldr r3, _0224EF8C ; =TaskManager_Call
|
|
ldr r0, [r0, #0x10]
|
|
ldr r1, _0224EF90 ; =Task_FollowPokeInteract
|
|
mov r2, #0
|
|
bx r3
|
|
nop
|
|
_0224EF8C: .word TaskManager_Call
|
|
_0224EF90: .word Task_FollowPokeInteract
|
|
thumb_func_end Fsys_FollowPokeInteract
|
|
|
|
thumb_func_start ov02_0224EF94
|
|
ov02_0224EF94: ; 0x0224EF94
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x1b0
|
|
add r7, r0, #0
|
|
ldr r0, [r7, #0x20]
|
|
ldr r0, [r0]
|
|
bl MapHeader_GetMapSec
|
|
add r2, r0, #0
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r0, [r7, r0]
|
|
mov r1, #0xde
|
|
add r0, #0x14
|
|
add r2, r2, #1
|
|
bl ReadWholeNarcMemberByIdPair
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r1, [r7, r0]
|
|
mov r0, #0x9b
|
|
lsl r0, r0, #2
|
|
add r0, r1, r0
|
|
mov r1, #0xde
|
|
mov r2, #0
|
|
bl ReadWholeNarcMemberByIdPair
|
|
add r0, r7, #0
|
|
add r1, sp, #4
|
|
bl ov02_0224F058
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r0, [r7, r0]
|
|
add r3, sp, #0x20
|
|
str r0, [sp]
|
|
add r0, #0x14
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
add r2, r0, #0
|
|
_0224EFE2:
|
|
add r1, r2, #0
|
|
add r1, #0x1e
|
|
add r2, r2, #1
|
|
add r0, r0, #1
|
|
stmia r3!, {r1}
|
|
cmp r2, #0xc
|
|
blt _0224EFE2
|
|
add r2, sp, #0x20
|
|
lsl r1, r0, #2
|
|
mov r3, #0
|
|
add r1, r2, r1
|
|
_0224EFF8:
|
|
stmia r1!, {r3}
|
|
add r3, r3, #1
|
|
add r0, r0, #1
|
|
cmp r3, #0x1e
|
|
blt _0224EFF8
|
|
add r2, sp, #0x20
|
|
lsl r1, r0, #2
|
|
mov r3, #0x2a
|
|
add r1, r2, r1
|
|
_0224F00A:
|
|
stmia r1!, {r3}
|
|
add r3, r3, #1
|
|
add r0, r0, #1
|
|
cmp r3, #0x64
|
|
blt _0224F00A
|
|
mov r5, #0
|
|
add r4, sp, #0x20
|
|
_0224F018:
|
|
ldr r1, [r4]
|
|
mov r0, #0x14
|
|
add r2, r1, #0
|
|
mul r2, r0
|
|
ldr r0, [sp]
|
|
add r6, r0, r2
|
|
ldrh r0, [r6, #0xa]
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x16
|
|
beq _0224F044
|
|
add r0, r7, #0
|
|
add r1, r6, #0
|
|
add r2, sp, #4
|
|
bl ov02_0224F108
|
|
cmp r0, #0
|
|
beq _0224F044
|
|
ldrh r0, [r6, #0xa]
|
|
add sp, #0x1b0
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x16
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F044:
|
|
add r5, r5, #1
|
|
add r4, r4, #4
|
|
cmp r5, #0x64
|
|
blt _0224F018
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
add sp, #0x1b0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224EF94
|
|
|
|
thumb_func_start ov02_0224F058
|
|
ov02_0224F058: ; 0x0224F058
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0xc]
|
|
add r4, r1, #0
|
|
bl SaveArray_PlayerParty_Get
|
|
bl GetFirstAliveMonInParty_CrashIfNone
|
|
mov r1, #5
|
|
mov r2, #0
|
|
add r6, r0, #0
|
|
bl GetMonData
|
|
mov r1, #0x12
|
|
lsl r1, r1, #4
|
|
ldr r2, [r5, r1]
|
|
ldr r1, _0224F100 ; =0x0000087E
|
|
strh r0, [r2, r1]
|
|
add r0, r6, #0
|
|
mov r1, #0x70
|
|
mov r2, #0
|
|
bl GetMonData
|
|
mov r1, #0x12
|
|
lsl r1, r1, #4
|
|
ldr r2, [r5, r1]
|
|
ldr r1, _0224F104 ; =0x0000087D
|
|
strb r0, [r2, r1]
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
bl ov02_0224F324
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov02_0224F4BC
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov02_0224F580
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov02_0224F5D0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov02_0224F5FC
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov02_0224F644
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov02_0224F64C
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov02_0224F698
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r3, [r5, r0]
|
|
ldr r2, _0224F100 ; =0x0000087E
|
|
add r0, r5, #0
|
|
ldrh r1, [r3, r2]
|
|
sub r2, r2, #1
|
|
ldrb r2, [r3, r2]
|
|
add r3, r4, #0
|
|
bl ov02_0224F6AC
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov02_0224F728
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r1, [r5, r0]
|
|
ldr r0, _0224F100 ; =0x0000087E
|
|
ldrh r0, [r1, r0]
|
|
add r1, r4, #0
|
|
bl ov02_0224F76C
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0224F100: .word 0x0000087E
|
|
_0224F104: .word 0x0000087D
|
|
thumb_func_end ov02_0224F058
|
|
|
|
thumb_func_start ov02_0224F108
|
|
ov02_0224F108: ; 0x0224F108
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
add r4, r2, #0
|
|
bl LCRandom
|
|
mov r1, #0x64
|
|
bl _s32_div_f
|
|
ldrb r0, [r5, #0x11]
|
|
cmp r1, r0
|
|
blt _0224F124
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F124:
|
|
ldrh r7, [r5, #0x12]
|
|
cmp r7, #0
|
|
beq _0224F13E
|
|
ldr r0, [r6, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
add r1, r7, #0
|
|
bl CheckFlagInArray
|
|
cmp r0, #0
|
|
bne _0224F13E
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F13E:
|
|
ldrb r0, [r5, #3]
|
|
lsl r0, r0, #0x1b
|
|
lsr r1, r0, #0x1b
|
|
beq _0224F15E
|
|
cmp r1, #9
|
|
bne _0224F154
|
|
ldrb r0, [r4]
|
|
cmp r0, #0
|
|
bne _0224F15E
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F154:
|
|
ldrb r0, [r4, #1]
|
|
cmp r1, r0
|
|
beq _0224F15E
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F15E:
|
|
ldrb r1, [r5]
|
|
cmp r1, #0
|
|
beq _0224F16E
|
|
ldrb r0, [r4, #2]
|
|
cmp r1, r0
|
|
beq _0224F16E
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F16E:
|
|
ldrb r0, [r5, #2]
|
|
lsl r0, r0, #0x18
|
|
lsr r1, r0, #0x1d
|
|
beq _0224F19C
|
|
cmp r1, #7
|
|
ldrb r0, [r4, #3]
|
|
bne _0224F194
|
|
cmp r0, #2
|
|
beq _0224F19C
|
|
cmp r0, #3
|
|
beq _0224F19C
|
|
cmp r0, #4
|
|
beq _0224F19C
|
|
cmp r0, #5
|
|
beq _0224F19C
|
|
cmp r0, #8
|
|
beq _0224F19C
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F194:
|
|
cmp r1, r0
|
|
beq _0224F19C
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F19C:
|
|
ldrh r0, [r5, #0xa]
|
|
lsl r0, r0, #0x1d
|
|
lsr r1, r0, #0x1d
|
|
beq _0224F1BA
|
|
cmp r1, #5
|
|
ldrb r0, [r4, #0xc]
|
|
bne _0224F1B2
|
|
cmp r0, #5
|
|
bhs _0224F1BA
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F1B2:
|
|
cmp r1, r0
|
|
beq _0224F1BA
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F1BA:
|
|
ldrb r0, [r5, #0x10]
|
|
lsl r0, r0, #0x18
|
|
lsr r1, r0, #0x1d
|
|
beq _0224F1D8
|
|
cmp r1, #4
|
|
ldrb r0, [r4, #0xd]
|
|
bne _0224F1D0
|
|
cmp r0, #4
|
|
bhs _0224F1D8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F1D0:
|
|
cmp r1, r0
|
|
beq _0224F1D8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F1D8:
|
|
ldrb r0, [r5, #0x10]
|
|
lsl r0, r0, #0x1d
|
|
lsr r1, r0, #0x1e
|
|
beq _0224F1EA
|
|
ldrb r0, [r4, #4]
|
|
cmp r1, r0
|
|
beq _0224F1EA
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F1EA:
|
|
ldrb r0, [r5, #0x10]
|
|
lsl r0, r0, #0x1b
|
|
lsr r1, r0, #0x1e
|
|
beq _0224F212
|
|
cmp r1, #3
|
|
bne _0224F200
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #0
|
|
bne _0224F200
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F200:
|
|
cmp r1, #1
|
|
bne _0224F20E
|
|
ldrb r0, [r4, #0xf]
|
|
cmp r0, #0
|
|
bne _0224F20E
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F20E:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F212:
|
|
ldrb r0, [r5, #4]
|
|
lsl r0, r0, #0x1b
|
|
lsr r1, r0, #0x1b
|
|
beq _0224F22A
|
|
ldrb r0, [r4, #5]
|
|
cmp r1, r0
|
|
beq _0224F22A
|
|
ldrb r0, [r4, #6]
|
|
cmp r1, r0
|
|
beq _0224F22A
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F22A:
|
|
ldrh r0, [r5, #8]
|
|
lsl r0, r0, #0x1d
|
|
lsr r1, r0, #0x1d
|
|
beq _0224F23C
|
|
ldrb r0, [r4, #0x11]
|
|
cmp r1, r0
|
|
beq _0224F23C
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F23C:
|
|
ldrh r1, [r5, #0xe]
|
|
cmp r1, #0
|
|
beq _0224F24C
|
|
ldrb r0, [r4, #0x12]
|
|
cmp r1, r0
|
|
beq _0224F24C
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F24C:
|
|
ldrb r1, [r5, #5]
|
|
cmp r1, #0
|
|
beq _0224F25C
|
|
ldrb r0, [r4, #0x13]
|
|
cmp r1, r0
|
|
beq _0224F25C
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F25C:
|
|
ldrh r0, [r5, #0xc]
|
|
cmp r0, #0
|
|
beq _0224F26E
|
|
sub r1, r0, #1
|
|
ldrh r0, [r4, #0x1a]
|
|
cmp r1, r0
|
|
beq _0224F26E
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F26E:
|
|
ldrh r0, [r5, #0xa]
|
|
lsl r0, r0, #0x1a
|
|
lsr r1, r0, #0x1d
|
|
beq _0224F280
|
|
ldrb r0, [r4, #0x14]
|
|
cmp r1, r0
|
|
beq _0224F280
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F280:
|
|
ldrb r0, [r5, #1]
|
|
lsl r0, r0, #0x1c
|
|
lsr r0, r0, #0x1c
|
|
beq _0224F298
|
|
mov r1, #0x15
|
|
ldrsb r1, [r4, r1]
|
|
bl ov02_02250628
|
|
cmp r0, #0
|
|
bne _0224F298
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F298:
|
|
ldrb r0, [r5, #4]
|
|
lsl r0, r0, #0x18
|
|
lsr r1, r0, #0x1d
|
|
beq _0224F2AA
|
|
ldrb r0, [r4, #0x16]
|
|
cmp r1, r0
|
|
beq _0224F2AA
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F2AA:
|
|
ldrb r0, [r5, #1]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1c
|
|
beq _0224F2C0
|
|
ldrb r1, [r4, #7]
|
|
bl ov02_02250594
|
|
cmp r0, #0
|
|
bne _0224F2C0
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F2C0:
|
|
ldrb r0, [r5, #2]
|
|
lsl r0, r0, #0x1d
|
|
lsr r1, r0, #0x1d
|
|
beq _0224F2D2
|
|
ldrb r0, [r4, #8]
|
|
cmp r1, r0
|
|
beq _0224F2D2
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F2D2:
|
|
ldrb r0, [r5, #6]
|
|
cmp r0, #0
|
|
beq _0224F2E6
|
|
ldrb r1, [r4, #0xa]
|
|
bl ov02_022506D4
|
|
cmp r0, #0
|
|
bne _0224F2E6
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F2E6:
|
|
ldrb r0, [r5, #7]
|
|
cmp r0, #0
|
|
beq _0224F2FA
|
|
ldrb r1, [r4, #0xb]
|
|
bl ov02_02250738
|
|
cmp r0, #0
|
|
bne _0224F2FA
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F2FA:
|
|
ldrb r0, [r5, #2]
|
|
lsl r0, r0, #0x1b
|
|
lsr r1, r0, #0x1e
|
|
beq _0224F30C
|
|
ldrb r0, [r4, #9]
|
|
cmp r1, r0
|
|
beq _0224F30C
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F30C:
|
|
ldrh r0, [r5, #8]
|
|
lsl r0, r0, #0x10
|
|
lsr r1, r0, #0x1d
|
|
beq _0224F31E
|
|
ldrb r0, [r4, #0x17]
|
|
cmp r1, r0
|
|
beq _0224F31E
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F31E:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224F108
|
|
|
|
thumb_func_start ov02_0224F324
|
|
ov02_0224F324: ; 0x0224F324
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r5, r1, #0
|
|
mov r1, #6
|
|
mov r2, #0
|
|
add r7, r0, #0
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _0224F34E
|
|
mov r1, #1
|
|
lsl r0, r0, #0x10
|
|
strb r1, [r5]
|
|
lsr r0, r0, #0x10
|
|
mov r1, #5
|
|
mov r2, #0xb
|
|
bl GetItemAttr
|
|
bl ov02_0224F820
|
|
b _0224F354
|
|
_0224F34E:
|
|
mov r0, #0
|
|
strb r0, [r5]
|
|
mov r0, #8
|
|
_0224F354:
|
|
strb r0, [r5, #1]
|
|
add r0, r7, #0
|
|
mov r1, #0xa3
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r4, r0, #0
|
|
add r0, r7, #0
|
|
mov r1, #0xa4
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r1, r0, #0
|
|
mov r0, #0x64
|
|
mul r0, r4
|
|
bl _s32_div_f
|
|
cmp r0, #0x64
|
|
bne _0224F380
|
|
mov r0, #1
|
|
strb r0, [r5, #2]
|
|
b _0224F3A2
|
|
_0224F380:
|
|
cmp r0, #0x4b
|
|
blt _0224F38A
|
|
mov r0, #2
|
|
strb r0, [r5, #2]
|
|
b _0224F3A2
|
|
_0224F38A:
|
|
cmp r0, #0x32
|
|
blt _0224F394
|
|
mov r0, #3
|
|
strb r0, [r5, #2]
|
|
b _0224F3A2
|
|
_0224F394:
|
|
cmp r0, #0x19
|
|
blt _0224F39E
|
|
mov r0, #4
|
|
strb r0, [r5, #2]
|
|
b _0224F3A2
|
|
_0224F39E:
|
|
mov r0, #5
|
|
strb r0, [r5, #2]
|
|
_0224F3A2:
|
|
add r0, r7, #0
|
|
mov r1, #0xa0
|
|
mov r2, #0
|
|
bl GetMonData
|
|
mov r1, #0x88
|
|
tst r1, r0
|
|
beq _0224F3B8
|
|
mov r0, #5
|
|
strb r0, [r5, #3]
|
|
b _0224F3FA
|
|
_0224F3B8:
|
|
mov r1, #7
|
|
tst r1, r0
|
|
beq _0224F3C4
|
|
mov r0, #8
|
|
strb r0, [r5, #3]
|
|
b _0224F3FA
|
|
_0224F3C4:
|
|
mov r1, #0x10
|
|
tst r1, r0
|
|
beq _0224F3D0
|
|
mov r0, #2
|
|
strb r0, [r5, #3]
|
|
b _0224F3FA
|
|
_0224F3D0:
|
|
mov r1, #0x20
|
|
tst r1, r0
|
|
beq _0224F3DC
|
|
mov r0, #3
|
|
strb r0, [r5, #3]
|
|
b _0224F3FA
|
|
_0224F3DC:
|
|
mov r1, #0x40
|
|
tst r1, r0
|
|
beq _0224F3E8
|
|
mov r0, #4
|
|
strb r0, [r5, #3]
|
|
b _0224F3FA
|
|
_0224F3E8:
|
|
cmp r0, #0
|
|
bne _0224F3F2
|
|
mov r0, #1
|
|
strb r0, [r5, #3]
|
|
b _0224F3FA
|
|
_0224F3F2:
|
|
bl GF_AssertFail
|
|
mov r0, #1
|
|
strb r0, [r5, #3]
|
|
_0224F3FA:
|
|
add r0, r7, #0
|
|
mov r1, #0xa1
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r1, r0, #2
|
|
cmp r1, #0x32
|
|
blt _0224F410
|
|
mov r0, #4
|
|
strb r0, [r5, #4]
|
|
b _0224F420
|
|
_0224F410:
|
|
sub r0, r0, #2
|
|
cmp r0, #0x32
|
|
bgt _0224F41C
|
|
mov r0, #6
|
|
strb r0, [r5, #4]
|
|
b _0224F420
|
|
_0224F41C:
|
|
mov r0, #5
|
|
strb r0, [r5, #4]
|
|
_0224F420:
|
|
add r0, r7, #0
|
|
mov r1, #0xb1
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r4, r0, #0
|
|
add r0, r7, #0
|
|
mov r1, #0xb2
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
bl ov02_0224F79C
|
|
strb r0, [r5, #5]
|
|
add r0, r6, #0
|
|
bl ov02_0224F79C
|
|
strb r0, [r5, #6]
|
|
add r0, r7, #0
|
|
mov r1, #9
|
|
mov r2, #0
|
|
bl GetMonData
|
|
strb r0, [r5, #7]
|
|
add r0, r7, #0
|
|
bl GetMonNature
|
|
lsl r1, r0, #2
|
|
ldr r0, _0224F4B4 ; =ov02_02253AC0
|
|
mov r2, #0
|
|
ldr r0, [r0, r1]
|
|
mov r1, #0x6f
|
|
strb r0, [r5, #8]
|
|
add r0, r7, #0
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
bne _0224F474
|
|
mov r0, #1
|
|
b _0224F476
|
|
_0224F474:
|
|
mov r0, #2
|
|
_0224F476:
|
|
ldr r3, _0224F4B8 ; =ov02_02253A5C
|
|
strb r0, [r5, #9]
|
|
ldmia r3!, {r0, r1}
|
|
add r2, sp, #0
|
|
add r6, r2, #0
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
mov r4, #0
|
|
str r0, [r2]
|
|
strb r4, [r5, #0xb]
|
|
add r5, #0xb
|
|
_0224F490:
|
|
ldr r1, [r6]
|
|
add r0, r7, #0
|
|
mov r2, #0
|
|
bl GetMonData
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
lsl r0, r4
|
|
ldrb r1, [r5]
|
|
add r4, r4, #1
|
|
add r6, r6, #4
|
|
orr r0, r1
|
|
strb r0, [r5]
|
|
cmp r4, #5
|
|
blt _0224F490
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_0224F4B4: .word ov02_02253AC0
|
|
_0224F4B8: .word ov02_02253A5C
|
|
thumb_func_end ov02_0224F324
|
|
|
|
thumb_func_start ov02_0224F4BC
|
|
ov02_0224F4BC: ; 0x0224F4BC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r4, r0, #0
|
|
add r5, r1, #0
|
|
mov r0, #0
|
|
strb r0, [r5, #0xc]
|
|
strb r0, [r5, #0xe]
|
|
strb r0, [r5, #0xf]
|
|
strb r0, [r5, #0x10]
|
|
ldr r0, [r4, #0x40]
|
|
bl GetPlayerXCoord
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4, #0x40]
|
|
bl GetPlayerYCoord
|
|
str r0, [sp]
|
|
ldr r0, [r4, #0x3c]
|
|
bl MapObjectManager_GetCount
|
|
str r0, [sp, #8]
|
|
ldr r0, [r4, #0x3c]
|
|
bl MapObjectManager_GetObjects
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #8]
|
|
cmp r0, #0
|
|
ble _0224F57A
|
|
add r7, r5, #0
|
|
add r7, #0xc
|
|
_0224F4FC:
|
|
ldr r0, [sp, #0x10]
|
|
bl MapObject_IsInUse
|
|
cmp r0, #1
|
|
bne _0224F568
|
|
ldr r0, [sp, #0x10]
|
|
bl MapObject_GetCurrentX
|
|
add r4, r0, #0
|
|
ldr r0, [sp, #0x10]
|
|
bl MapObject_GetCurrentY
|
|
ldr r1, [sp, #4]
|
|
sub r6, r1, r4
|
|
ldr r1, [sp]
|
|
sub r4, r1, r0
|
|
ldr r0, [sp, #0x10]
|
|
bl MapObject_GetGfxID
|
|
cmp r0, #0x54
|
|
bne _0224F52C
|
|
mov r0, #1
|
|
strb r0, [r5, #0xf]
|
|
b _0224F568
|
|
_0224F52C:
|
|
cmp r0, #0x55
|
|
bne _0224F536
|
|
mov r0, #1
|
|
strb r0, [r5, #0xe]
|
|
b _0224F568
|
|
_0224F536:
|
|
cmp r0, #0x56
|
|
bne _0224F540
|
|
mov r0, #1
|
|
strb r0, [r5, #0x10]
|
|
b _0224F568
|
|
_0224F540:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r6, r0
|
|
blt _0224F568
|
|
cmp r6, #1
|
|
bgt _0224F568
|
|
cmp r4, r0
|
|
blt _0224F568
|
|
cmp r4, #1
|
|
bgt _0224F568
|
|
ldr r0, [sp, #0x10]
|
|
bl MapObject_GetID
|
|
cmp r0, #0xfd
|
|
beq _0224F568
|
|
cmp r0, #0xff
|
|
beq _0224F568
|
|
ldrb r0, [r7]
|
|
add r0, r0, #1
|
|
strb r0, [r7]
|
|
_0224F568:
|
|
add r0, sp, #0x10
|
|
bl sub_0205F1D0
|
|
ldr r0, [sp, #0xc]
|
|
add r1, r0, #1
|
|
ldr r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
cmp r1, r0
|
|
blt _0224F4FC
|
|
_0224F57A:
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224F4BC
|
|
|
|
thumb_func_start ov02_0224F580
|
|
ov02_0224F580: ; 0x0224F580
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
mov r4, #0
|
|
bl Field_GetBgEvents
|
|
add r5, r0, #0
|
|
ldr r0, [sp]
|
|
bl Field_GetNumBgEvents
|
|
add r7, r0, #0
|
|
beq _0224F5C6
|
|
cmp r5, #0
|
|
beq _0224F5C6
|
|
add r6, r4, #0
|
|
cmp r7, #0
|
|
ble _0224F5C6
|
|
_0224F5A4:
|
|
ldrh r0, [r5, #2]
|
|
cmp r0, #2
|
|
bne _0224F5BE
|
|
ldrh r0, [r5]
|
|
bl HiddenItemScriptNoToFlagId
|
|
add r1, r0, #0
|
|
ldr r0, [sp]
|
|
bl FlagGet
|
|
cmp r0, #0
|
|
bne _0224F5BE
|
|
add r4, r4, #1
|
|
_0224F5BE:
|
|
add r6, r6, #1
|
|
add r5, #0x14
|
|
cmp r6, r7
|
|
blt _0224F5A4
|
|
_0224F5C6:
|
|
ldr r0, [sp, #4]
|
|
strb r4, [r0, #0xd]
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224F580
|
|
|
|
thumb_func_start ov02_0224F5D0
|
|
ov02_0224F5D0: ; 0x0224F5D0
|
|
push {r4, lr}
|
|
ldr r0, [r0, #0xc]
|
|
add r4, r1, #0
|
|
bl Save_LocalFieldData_Get
|
|
bl LocalFieldData_GetWeatherType
|
|
cmp r0, #0
|
|
beq _0224F5E8
|
|
cmp r0, #1
|
|
beq _0224F5EE
|
|
b _0224F5F4
|
|
_0224F5E8:
|
|
mov r0, #1
|
|
strb r0, [r4, #0x11]
|
|
pop {r4, pc}
|
|
_0224F5EE:
|
|
mov r0, #3
|
|
strb r0, [r4, #0x11]
|
|
pop {r4, pc}
|
|
_0224F5F4:
|
|
mov r0, #0
|
|
strb r0, [r4, #0x11]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224F5D0
|
|
|
|
thumb_func_start ov02_0224F5FC
|
|
ov02_0224F5FC: ; 0x0224F5FC
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl FollowingPokemon_GetMapObject
|
|
bl MapObject_GetCurrentX
|
|
add r6, r0, #0
|
|
add r0, r5, #0
|
|
bl FollowingPokemon_GetMapObject
|
|
bl MapObject_GetCurrentY
|
|
add r2, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl GetMetatileBehaviorAt
|
|
mov r1, #0x12
|
|
strb r0, [r4, #0x12]
|
|
lsl r1, r1, #4
|
|
ldr r2, [r5, r1]
|
|
ldr r1, _0224F640 ; =0x00000882
|
|
strh r0, [r2, r1]
|
|
bl sub_0205B994
|
|
cmp r0, #0
|
|
beq _0224F63A
|
|
mov r0, #1
|
|
strb r0, [r4, #0x13]
|
|
pop {r4, r5, r6, pc}
|
|
_0224F63A:
|
|
mov r0, #2
|
|
strb r0, [r4, #0x13]
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0224F640: .word 0x00000882
|
|
thumb_func_end ov02_0224F5FC
|
|
|
|
thumb_func_start ov02_0224F644
|
|
ov02_0224F644: ; 0x0224F644
|
|
ldr r0, [r0, #0x20]
|
|
ldr r0, [r0]
|
|
strh r0, [r1, #0x1a]
|
|
bx lr
|
|
thumb_func_end ov02_0224F644
|
|
|
|
thumb_func_start ov02_0224F64C
|
|
ov02_0224F64C: ; 0x0224F64C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl Field_GetTimeOfDay
|
|
cmp r0, #4
|
|
bhi _0224F68C
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0224F664: ; jump table
|
|
.short _0224F66E - _0224F664 - 2 ; case 0
|
|
.short _0224F674 - _0224F664 - 2 ; case 1
|
|
.short _0224F67A - _0224F664 - 2 ; case 2
|
|
.short _0224F680 - _0224F664 - 2 ; case 3
|
|
.short _0224F686 - _0224F664 - 2 ; case 4
|
|
_0224F66E:
|
|
mov r0, #1
|
|
strb r0, [r4, #0x14]
|
|
pop {r4, pc}
|
|
_0224F674:
|
|
mov r0, #2
|
|
strb r0, [r4, #0x14]
|
|
pop {r4, pc}
|
|
_0224F67A:
|
|
mov r0, #3
|
|
strb r0, [r4, #0x14]
|
|
pop {r4, pc}
|
|
_0224F680:
|
|
mov r0, #4
|
|
strb r0, [r4, #0x14]
|
|
pop {r4, pc}
|
|
_0224F686:
|
|
mov r0, #5
|
|
strb r0, [r4, #0x14]
|
|
pop {r4, pc}
|
|
_0224F68C:
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
strb r0, [r4, #0x14]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224F64C
|
|
|
|
thumb_func_start ov02_0224F698
|
|
ov02_0224F698: ; 0x0224F698
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
mov r1, #0x42
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
bl FsysUnkSub108_GetMonMood
|
|
strb r0, [r4, #0x15]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224F698
|
|
|
|
thumb_func_start ov02_0224F6AC
|
|
ov02_0224F6AC: ; 0x0224F6AC
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
ldr r0, [r0, #0xc]
|
|
add r5, r3, #0
|
|
bl SaveArray_PlayerParty_Get
|
|
add r4, r0, #0
|
|
bl GetIdxOfFirstAliveMonInParty_CrashIfNone
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
add r1, sp, #8
|
|
add r2, r6, #0
|
|
bl Party_GetUnkSubSlot
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
bl GetPartyMonByIndex
|
|
add r1, r0, #0
|
|
add r0, sp, #0
|
|
add r2, sp, #8
|
|
mov r3, #0xb
|
|
bl CalcMonPokeathlonStars
|
|
add r0, sp, #0
|
|
ldrh r2, [r0]
|
|
lsl r0, r2, #0x1d
|
|
lsl r2, r2, #0x11
|
|
lsr r1, r0, #0x1d
|
|
lsr r2, r2, #0x1d
|
|
mov r0, #1
|
|
cmp r1, r2
|
|
bhs _0224F6F4
|
|
add r1, r2, #0
|
|
mov r0, #2
|
|
_0224F6F4:
|
|
add r2, sp, #0
|
|
ldrh r2, [r2]
|
|
lsl r2, r2, #0x14
|
|
lsr r2, r2, #0x1d
|
|
cmp r1, r2
|
|
bhs _0224F704
|
|
add r1, r2, #0
|
|
mov r0, #4
|
|
_0224F704:
|
|
add r2, sp, #0
|
|
ldrh r2, [r2]
|
|
lsl r2, r2, #0x1a
|
|
lsr r2, r2, #0x1d
|
|
cmp r1, r2
|
|
bhs _0224F714
|
|
add r1, r2, #0
|
|
mov r0, #3
|
|
_0224F714:
|
|
add r2, sp, #0
|
|
ldrh r2, [r2]
|
|
lsl r2, r2, #0x17
|
|
lsr r2, r2, #0x1d
|
|
cmp r1, r2
|
|
bhs _0224F722
|
|
mov r0, #5
|
|
_0224F722:
|
|
strb r0, [r5, #0x16]
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov02_0224F6AC
|
|
|
|
thumb_func_start ov02_0224F728
|
|
ov02_0224F728: ; 0x0224F728
|
|
push {r4, lr}
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
add r4, r1, #0
|
|
bl MapObject_GetFacingDirection
|
|
cmp r0, #3
|
|
bhi _0224F764
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0224F744: ; jump table
|
|
.short _0224F74C - _0224F744 - 2 ; case 0
|
|
.short _0224F752 - _0224F744 - 2 ; case 1
|
|
.short _0224F758 - _0224F744 - 2 ; case 2
|
|
.short _0224F75E - _0224F744 - 2 ; case 3
|
|
_0224F74C:
|
|
mov r0, #3
|
|
strb r0, [r4, #0x17]
|
|
pop {r4, pc}
|
|
_0224F752:
|
|
mov r0, #4
|
|
strb r0, [r4, #0x17]
|
|
pop {r4, pc}
|
|
_0224F758:
|
|
mov r0, #2
|
|
strb r0, [r4, #0x17]
|
|
pop {r4, pc}
|
|
_0224F75E:
|
|
mov r0, #1
|
|
strb r0, [r4, #0x17]
|
|
pop {r4, pc}
|
|
_0224F764:
|
|
mov r0, #0
|
|
strb r0, [r4, #0x17]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224F728
|
|
|
|
thumb_func_start ov02_0224F76C
|
|
ov02_0224F76C: ; 0x0224F76C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
cmp r5, #0
|
|
ble _0224F77C
|
|
ldr r0, _0224F798 ; =0x000001ED
|
|
cmp r5, r0
|
|
ble _0224F782
|
|
_0224F77C:
|
|
bl GF_AssertFail
|
|
pop {r3, r4, r5, pc}
|
|
_0224F782:
|
|
mov r0, #0xe9
|
|
mov r1, #0
|
|
mov r2, #0xb
|
|
bl AllocAtEndAndReadWholeNarcMemberByIdPair
|
|
sub r1, r5, #1
|
|
ldrb r1, [r0, r1]
|
|
strb r1, [r4, #0xa]
|
|
bl FreeToHeap
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0224F798: .word 0x000001ED
|
|
thumb_func_end ov02_0224F76C
|
|
|
|
thumb_func_start ov02_0224F79C
|
|
ov02_0224F79C: ; 0x0224F79C
|
|
push {r3, lr}
|
|
cmp r0, #0x11
|
|
bhi _0224F816
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0224F7AE: ; jump table
|
|
.short _0224F7D2 - _0224F7AE - 2 ; case 0
|
|
.short _0224F7D6 - _0224F7AE - 2 ; case 1
|
|
.short _0224F7DA - _0224F7AE - 2 ; case 2
|
|
.short _0224F7DE - _0224F7AE - 2 ; case 3
|
|
.short _0224F7E2 - _0224F7AE - 2 ; case 4
|
|
.short _0224F7E6 - _0224F7AE - 2 ; case 5
|
|
.short _0224F7EA - _0224F7AE - 2 ; case 6
|
|
.short _0224F7EE - _0224F7AE - 2 ; case 7
|
|
.short _0224F7F2 - _0224F7AE - 2 ; case 8
|
|
.short _0224F816 - _0224F7AE - 2 ; case 9
|
|
.short _0224F7F6 - _0224F7AE - 2 ; case 10
|
|
.short _0224F7FA - _0224F7AE - 2 ; case 11
|
|
.short _0224F7FE - _0224F7AE - 2 ; case 12
|
|
.short _0224F802 - _0224F7AE - 2 ; case 13
|
|
.short _0224F806 - _0224F7AE - 2 ; case 14
|
|
.short _0224F80A - _0224F7AE - 2 ; case 15
|
|
.short _0224F80E - _0224F7AE - 2 ; case 16
|
|
.short _0224F812 - _0224F7AE - 2 ; case 17
|
|
_0224F7D2:
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0224F7D6:
|
|
mov r0, #7
|
|
pop {r3, pc}
|
|
_0224F7DA:
|
|
mov r0, #0xa
|
|
pop {r3, pc}
|
|
_0224F7DE:
|
|
mov r0, #8
|
|
pop {r3, pc}
|
|
_0224F7E2:
|
|
mov r0, #9
|
|
pop {r3, pc}
|
|
_0224F7E6:
|
|
mov r0, #0xd
|
|
pop {r3, pc}
|
|
_0224F7EA:
|
|
mov r0, #0xc
|
|
pop {r3, pc}
|
|
_0224F7EE:
|
|
mov r0, #0xe
|
|
pop {r3, pc}
|
|
_0224F7F2:
|
|
mov r0, #0x11
|
|
pop {r3, pc}
|
|
_0224F7F6:
|
|
mov r0, #2
|
|
pop {r3, pc}
|
|
_0224F7FA:
|
|
mov r0, #3
|
|
pop {r3, pc}
|
|
_0224F7FE:
|
|
mov r0, #5
|
|
pop {r3, pc}
|
|
_0224F802:
|
|
mov r0, #4
|
|
pop {r3, pc}
|
|
_0224F806:
|
|
mov r0, #0xb
|
|
pop {r3, pc}
|
|
_0224F80A:
|
|
mov r0, #6
|
|
pop {r3, pc}
|
|
_0224F80E:
|
|
mov r0, #0xf
|
|
pop {r3, pc}
|
|
_0224F812:
|
|
mov r0, #0x10
|
|
pop {r3, pc}
|
|
_0224F816:
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224F79C
|
|
|
|
thumb_func_start ov02_0224F820
|
|
ov02_0224F820: ; 0x0224F820
|
|
push {r3, lr}
|
|
cmp r0, #6
|
|
bhi _0224F85C
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0224F832: ; jump table
|
|
.short _0224F840 - _0224F832 - 2 ; case 0
|
|
.short _0224F844 - _0224F832 - 2 ; case 1
|
|
.short _0224F848 - _0224F832 - 2 ; case 2
|
|
.short _0224F84C - _0224F832 - 2 ; case 3
|
|
.short _0224F850 - _0224F832 - 2 ; case 4
|
|
.short _0224F854 - _0224F832 - 2 ; case 5
|
|
.short _0224F858 - _0224F832 - 2 ; case 6
|
|
_0224F840:
|
|
mov r0, #4
|
|
pop {r3, pc}
|
|
_0224F844:
|
|
mov r0, #2
|
|
pop {r3, pc}
|
|
_0224F848:
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0224F84C:
|
|
mov r0, #7
|
|
pop {r3, pc}
|
|
_0224F850:
|
|
mov r0, #6
|
|
pop {r3, pc}
|
|
_0224F854:
|
|
mov r0, #5
|
|
pop {r3, pc}
|
|
_0224F858:
|
|
mov r0, #3
|
|
pop {r3, pc}
|
|
_0224F85C:
|
|
bl GF_AssertFail
|
|
mov r0, #8
|
|
pop {r3, pc}
|
|
thumb_func_end ov02_0224F820
|
|
|
|
thumb_func_start ov02_0224F864
|
|
ov02_0224F864: ; 0x0224F864
|
|
push {r4, lr}
|
|
ldr r1, _0224F87C ; =0x00000884
|
|
bl AllocFromHeap
|
|
ldr r2, _0224F87C ; =0x00000884
|
|
mov r1, #0
|
|
add r4, r0, #0
|
|
bl MI_CpuFill8
|
|
add r0, r4, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_0224F87C: .word 0x00000884
|
|
thumb_func_end ov02_0224F864
|
|
|
|
thumb_func_start ov02_0224F880
|
|
ov02_0224F880: ; 0x0224F880
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
add r2, r1, #0
|
|
ldr r0, _0224F8E4 ; =0x000007E4
|
|
mov r1, #0xdf
|
|
add r0, r4, r0
|
|
sub r2, r2, #1
|
|
bl ReadWholeNarcMemberByIdPair
|
|
ldr r0, _0224F8E8 ; =0x00000868
|
|
mov r1, #0
|
|
strb r1, [r4, r0]
|
|
add r2, r0, #1
|
|
strb r1, [r4, r2]
|
|
add r2, r0, #3
|
|
strb r1, [r4, r2]
|
|
add r2, r0, #4
|
|
ldrb r3, [r4, r2]
|
|
mov r2, #0xf
|
|
add r5, r4, #0
|
|
bic r3, r2
|
|
add r2, r0, #4
|
|
strb r3, [r4, r2]
|
|
add r2, r0, #2
|
|
strb r1, [r4, r2]
|
|
add r2, r0, #5
|
|
strb r1, [r4, r2]
|
|
add r0, r0, #6
|
|
strh r1, [r4, r0]
|
|
ldr r0, _0224F8E4 ; =0x000007E4
|
|
ldr r2, _0224F8EC ; =0x0000FFFF
|
|
_0224F8BE:
|
|
ldrh r3, [r5, r0]
|
|
cmp r3, r2
|
|
beq _0224F8CC
|
|
add r1, r1, #1
|
|
add r5, #8
|
|
cmp r1, #5
|
|
blt _0224F8BE
|
|
_0224F8CC:
|
|
ldr r3, _0224F8F0 ; =0x0000086C
|
|
lsl r1, r1, #0x18
|
|
ldrb r0, [r4, r3]
|
|
lsr r1, r1, #0x18
|
|
mov r2, #0xf0
|
|
lsl r1, r1, #0x1c
|
|
bic r0, r2
|
|
lsr r1, r1, #0x18
|
|
orr r0, r1
|
|
strb r0, [r4, r3]
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0224F8E4: .word 0x000007E4
|
|
_0224F8E8: .word 0x00000868
|
|
_0224F8EC: .word 0x0000FFFF
|
|
_0224F8F0: .word 0x0000086C
|
|
thumb_func_end ov02_0224F880
|
|
|
|
thumb_func_start ov02_0224F8F4
|
|
ov02_0224F8F4: ; 0x0224F8F4
|
|
ldr r3, _0224F8F8 ; =FreeToHeap
|
|
bx r3
|
|
.balign 4, 0
|
|
_0224F8F8: .word FreeToHeap
|
|
thumb_func_end ov02_0224F8F4
|
|
|
|
thumb_func_start ov02_0224F8FC
|
|
ov02_0224F8FC: ; 0x0224F8FC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
ldr r2, _0224FB2C ; =0x0000086C
|
|
add r4, r1, #0
|
|
ldrb r3, [r4, r2]
|
|
add r5, r0, #0
|
|
lsl r2, r3, #0x1c
|
|
lsr r2, r2, #0x1c
|
|
mov ip, r2
|
|
cmp r2, #5
|
|
blo _0224F93E
|
|
bl ov02_02250504
|
|
ldr r1, _0224FB30 ; =0x0000080C
|
|
ldr r0, [r4, r1]
|
|
cmp r0, #0
|
|
beq _0224F920
|
|
mov r0, #2
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F920:
|
|
add r0, r1, #0
|
|
add r0, #0xa
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _0224F92E
|
|
mov r0, #3
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F92E:
|
|
add r1, #0xb
|
|
ldrb r0, [r4, r1]
|
|
cmp r0, #0
|
|
beq _0224F93A
|
|
mov r0, #4
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F93A:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F93E:
|
|
ldr r2, _0224FB2C ; =0x0000086C
|
|
sub r2, #0x88
|
|
add r7, r4, r2
|
|
mov r2, ip
|
|
lsl r2, r2, #3
|
|
add r6, r7, r2
|
|
ldrh r7, [r7, r2]
|
|
ldr r2, _0224FB34 ; =0x0000FFFF
|
|
cmp r7, r2
|
|
bne _0224F980
|
|
bl ov02_02250504
|
|
ldr r1, _0224FB30 ; =0x0000080C
|
|
ldr r0, [r4, r1]
|
|
cmp r0, #0
|
|
beq _0224F962
|
|
mov r0, #2
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F962:
|
|
add r0, r1, #0
|
|
add r0, #0xa
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _0224F970
|
|
mov r0, #3
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F970:
|
|
add r1, #0xb
|
|
ldrb r0, [r4, r1]
|
|
cmp r0, #0
|
|
beq _0224F97C
|
|
mov r0, #4
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F97C:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224F980:
|
|
ldr r2, _0224FB2C ; =0x0000086C
|
|
sub r2, r2, #3
|
|
ldrb r2, [r4, r2]
|
|
cmp r2, #7
|
|
bls _0224F98C
|
|
b _0224FB28
|
|
_0224F98C:
|
|
add r2, r2, r2
|
|
add r2, pc
|
|
ldrh r2, [r2, #6]
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
add pc, r2
|
|
_0224F998: ; jump table
|
|
.short _0224F9A8 - _0224F998 - 2 ; case 0
|
|
.short _0224F9CA - _0224F998 - 2 ; case 1
|
|
.short _0224F9E8 - _0224F998 - 2 ; case 2
|
|
.short _0224FA06 - _0224F998 - 2 ; case 3
|
|
.short _0224FA1A - _0224F998 - 2 ; case 4
|
|
.short _0224FA3E - _0224F998 - 2 ; case 5
|
|
.short _0224FA50 - _0224F998 - 2 ; case 6
|
|
.short _0224FAEE - _0224F998 - 2 ; case 7
|
|
_0224F9A8:
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
bl ov02_0224FB44
|
|
cmp r0, #0
|
|
beq _0224F9CA
|
|
add r5, #0xe4
|
|
ldr r0, [r5]
|
|
bl MapObject_UnpauseMovement
|
|
ldr r0, _0224FB38 ; =0x00000868
|
|
mov r1, #0
|
|
strb r1, [r4, r0]
|
|
mov r1, #5
|
|
add r0, r0, #1
|
|
strb r1, [r4, r0]
|
|
b _0224FB28
|
|
_0224F9CA:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl ov02_0224FB54
|
|
cmp r0, #0
|
|
beq _0224F9E8
|
|
add r5, #0xe4
|
|
ldr r0, [r5]
|
|
bl MapObject_UnpauseMovement
|
|
ldr r0, _0224FB3C ; =0x00000869
|
|
mov r1, #2
|
|
strb r1, [r4, r0]
|
|
b _0224FB28
|
|
_0224F9E8:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl FollowPoke_TryPrintInteractionMessage
|
|
cmp r0, #0
|
|
beq _0224FA06
|
|
add r5, #0xe4
|
|
ldr r0, [r5]
|
|
bl MapObject_PauseMovement
|
|
ldr r0, _0224FB3C ; =0x00000869
|
|
mov r1, #6
|
|
strb r1, [r4, r0]
|
|
b _0224FB28
|
|
_0224FA06:
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
bl ov02_0224FC74
|
|
cmp r0, #0
|
|
beq _0224FA1A
|
|
ldr r0, _0224FB3C ; =0x00000869
|
|
mov r1, #7
|
|
strb r1, [r4, r0]
|
|
b _0224FB28
|
|
_0224FA1A:
|
|
ldr r2, _0224FB2C ; =0x0000086C
|
|
mov r1, #0xf
|
|
ldrb r3, [r4, r2]
|
|
add r0, r3, #0
|
|
bic r0, r1
|
|
lsl r1, r3, #0x1c
|
|
lsr r1, r1, #0x1c
|
|
add r1, r1, #1
|
|
lsl r1, r1, #0x18
|
|
lsr r3, r1, #0x18
|
|
mov r1, #0xf
|
|
and r1, r3
|
|
orr r0, r1
|
|
strb r0, [r4, r2]
|
|
mov r1, #0
|
|
sub r0, r2, #3
|
|
strb r1, [r4, r0]
|
|
b _0224FB28
|
|
_0224FA3E:
|
|
add r2, r7, #0
|
|
bl ov02_02250004
|
|
cmp r0, #0
|
|
beq _0224FB28
|
|
ldr r0, _0224FB3C ; =0x00000869
|
|
mov r1, #1
|
|
strb r1, [r4, r0]
|
|
b _0224FB28
|
|
_0224FA50:
|
|
ldr r0, _0224FB2C ; =0x0000086C
|
|
add r0, r0, #2
|
|
ldrh r0, [r4, r0]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl IsPrintFinished
|
|
cmp r0, #1
|
|
bne _0224FB28
|
|
ldr r1, _0224FB2C ; =0x0000086C
|
|
ldrb r2, [r4, r1]
|
|
lsl r0, r2, #0x18
|
|
lsl r2, r2, #0x1c
|
|
lsr r2, r2, #0x1c
|
|
lsr r0, r0, #0x1c
|
|
add r2, r2, #1
|
|
cmp r0, r2
|
|
ble _0224FAA8
|
|
ldr r0, _0224FB40 ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #3
|
|
tst r0, r1
|
|
beq _0224FB28
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ClearFrameAndWindow2
|
|
add r0, r4, #0
|
|
bl RemoveWindow
|
|
ldr r0, [r4, #0x10]
|
|
bl String_Delete
|
|
add r0, r5, #0
|
|
add r0, #0xd2
|
|
ldrb r1, [r0]
|
|
mov r0, #0x40
|
|
add r5, #0xd2
|
|
bic r1, r0
|
|
strb r1, [r5]
|
|
ldr r0, _0224FB3C ; =0x00000869
|
|
mov r1, #3
|
|
strb r1, [r4, r0]
|
|
b _0224FB28
|
|
_0224FAA8:
|
|
add r0, r1, #0
|
|
sub r0, #0x60
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _0224FABA
|
|
mov r2, #3
|
|
sub r0, r1, #3
|
|
strb r2, [r4, r0]
|
|
b _0224FB28
|
|
_0224FABA:
|
|
ldr r0, _0224FB40 ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #3
|
|
tst r0, r1
|
|
beq _0224FB28
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ClearFrameAndWindow2
|
|
add r0, r4, #0
|
|
bl RemoveWindow
|
|
ldr r0, [r4, #0x10]
|
|
bl String_Delete
|
|
add r0, r5, #0
|
|
add r0, #0xd2
|
|
ldrb r1, [r0]
|
|
mov r0, #0x40
|
|
add r5, #0xd2
|
|
bic r1, r0
|
|
strb r1, [r5]
|
|
ldr r0, _0224FB3C ; =0x00000869
|
|
mov r1, #3
|
|
strb r1, [r4, r0]
|
|
b _0224FB28
|
|
_0224FAEE:
|
|
ldr r0, _0224FB2C ; =0x0000086C
|
|
add r0, r0, #1
|
|
ldrb r1, [r4, r0]
|
|
ldrb r0, [r6, #7]
|
|
cmp r1, r0
|
|
blo _0224FB1A
|
|
mov r0, #0xf
|
|
bic r3, r0
|
|
mov r0, ip
|
|
add r0, r0, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r1, r0, #0x18
|
|
mov r0, #0xf
|
|
and r0, r1
|
|
add r1, r3, #0
|
|
orr r1, r0
|
|
ldr r0, _0224FB2C ; =0x0000086C
|
|
strb r1, [r4, r0]
|
|
mov r1, #0
|
|
sub r0, r0, #3
|
|
strb r1, [r4, r0]
|
|
b _0224FB28
|
|
_0224FB1A:
|
|
ldr r0, _0224FB2C ; =0x0000086C
|
|
add r0, r0, #1
|
|
ldrb r0, [r4, r0]
|
|
add r1, r0, #1
|
|
ldr r0, _0224FB2C ; =0x0000086C
|
|
add r0, r0, #1
|
|
strb r1, [r4, r0]
|
|
_0224FB28:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0224FB2C: .word 0x0000086C
|
|
_0224FB30: .word 0x0000080C
|
|
_0224FB34: .word 0x0000FFFF
|
|
_0224FB38: .word 0x00000868
|
|
_0224FB3C: .word 0x00000869
|
|
_0224FB40: .word gSystem
|
|
thumb_func_end ov02_0224F8FC
|
|
|
|
thumb_func_start ov02_0224FB44
|
|
ov02_0224FB44: ; 0x0224FB44
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
beq _0224FB4E
|
|
mov r0, #1
|
|
bx lr
|
|
_0224FB4E:
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224FB44
|
|
|
|
thumb_func_start ov02_0224FB54
|
|
ov02_0224FB54: ; 0x0224FB54
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r1, [r5, r0]
|
|
ldr r0, _0224FB98 ; =0x00000882
|
|
add r4, r2, #0
|
|
ldrh r0, [r1, r0]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl sub_0205BB04
|
|
cmp r0, #0
|
|
beq _0224FB74
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0224FB74:
|
|
ldrb r2, [r4, #6]
|
|
cmp r2, #0
|
|
beq _0224FB92
|
|
cmp r2, #0xe
|
|
bls _0224FB82
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0224FB82:
|
|
add r0, r5, #0
|
|
add r5, #0xe4
|
|
ldr r1, [r5]
|
|
sub r2, r2, #1
|
|
bl ov01_02203AB4
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_0224FB92:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0224FB98: .word 0x00000882
|
|
thumb_func_end ov02_0224FB54
|
|
|
|
thumb_func_start FollowPoke_TryPrintInteractionMessage
|
|
FollowPoke_TryPrintInteractionMessage: ; 0x0224FB9C
|
|
push {r4, r5, r6, lr}
|
|
add r6, r2, #0
|
|
add r5, r0, #0
|
|
ldrh r0, [r6, #2]
|
|
add r4, r1, #0
|
|
cmp r0, #0
|
|
beq _0224FC00
|
|
mov r0, #1
|
|
lsl r0, r0, #0xa
|
|
mov r1, #0xb
|
|
bl String_New
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r5, #8]
|
|
add r1, r4, #0
|
|
mov r2, #3
|
|
bl sub_0205B514
|
|
ldrh r3, [r6, #2]
|
|
ldr r1, [r4, #0x10]
|
|
add r0, r5, #0
|
|
mov r2, #0xb
|
|
sub r3, r3, #1
|
|
bl FollowPoke_ExpandInteractionMessage
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
bl sub_0205B564
|
|
ldr r1, [r4, #0x10]
|
|
add r0, r4, #0
|
|
add r2, r6, #0
|
|
mov r3, #1
|
|
bl sub_0205B5B4
|
|
ldr r1, _0224FC04 ; =0x0000086E
|
|
strh r0, [r4, r1]
|
|
add r0, r5, #0
|
|
add r0, #0xd2
|
|
ldrb r1, [r0]
|
|
mov r0, #0x40
|
|
add r5, #0xd2
|
|
orr r0, r1
|
|
strb r0, [r5]
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_0224FC00:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0224FC04: .word 0x0000086E
|
|
thumb_func_end FollowPoke_TryPrintInteractionMessage
|
|
|
|
thumb_func_start ov02_0224FC08
|
|
ov02_0224FC08: ; 0x0224FC08
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r5, r0, #0
|
|
mov r0, #1
|
|
add r4, r1, #0
|
|
lsl r0, r0, #0xa
|
|
mov r1, #0xb
|
|
add r6, r2, #0
|
|
bl String_New
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r5, #8]
|
|
add r1, r4, #0
|
|
mov r2, #3
|
|
bl sub_0205B514
|
|
ldr r0, _0224FC6C ; =0x00000816
|
|
mov r2, #0xb
|
|
ldrb r0, [r4, r0]
|
|
add r3, r6, #0
|
|
str r0, [sp]
|
|
ldr r1, [r4, #0x10]
|
|
add r0, r5, #0
|
|
bl ov02_0224FCE0
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
bl sub_0205B564
|
|
ldr r1, [r4, #0x10]
|
|
add r0, r4, #0
|
|
add r2, r6, #0
|
|
mov r3, #1
|
|
bl sub_0205B5B4
|
|
ldr r1, _0224FC70 ; =0x0000086E
|
|
strh r0, [r4, r1]
|
|
add r0, r5, #0
|
|
add r0, #0xd2
|
|
ldrb r1, [r0]
|
|
mov r0, #0x40
|
|
add r5, #0xd2
|
|
orr r0, r1
|
|
strb r0, [r5]
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0224FC6C: .word 0x00000816
|
|
_0224FC70: .word 0x0000086E
|
|
thumb_func_end ov02_0224FC08
|
|
|
|
thumb_func_start ov02_0224FC74
|
|
ov02_0224FC74: ; 0x0224FC74
|
|
ldr r2, _0224FC88 ; =0x0000086D
|
|
mov r3, #0
|
|
strb r3, [r0, r2]
|
|
ldrb r0, [r1, #7]
|
|
cmp r0, #0
|
|
beq _0224FC82
|
|
mov r3, #1
|
|
_0224FC82:
|
|
add r0, r3, #0
|
|
bx lr
|
|
nop
|
|
_0224FC88: .word 0x0000086D
|
|
thumb_func_end ov02_0224FC74
|
|
|
|
thumb_func_start FollowPoke_ExpandInteractionMessage
|
|
FollowPoke_ExpandInteractionMessage: ; 0x0224FC8C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
str r1, [sp]
|
|
mov r1, #0x1b
|
|
add r4, r2, #0
|
|
add r2, r1, #0
|
|
add r6, r0, #0
|
|
add r7, r3, #0
|
|
mov r0, #0
|
|
add r2, #0xee
|
|
add r3, r4, #0
|
|
bl NewMsgDataFromNarc
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl MessageFormat_New
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
bl FollowPoke_PlaceholdersSet
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
bl NewString_ReadMsgData
|
|
add r6, r0, #0
|
|
ldr r1, [sp]
|
|
add r0, r4, #0
|
|
add r2, r6, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r6, #0
|
|
bl String_Delete
|
|
add r0, r4, #0
|
|
bl MessageFormat_Delete
|
|
add r0, r5, #0
|
|
bl DestroyMsgData
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end FollowPoke_ExpandInteractionMessage
|
|
|
|
thumb_func_start ov02_0224FCE0
|
|
ov02_0224FCE0: ; 0x0224FCE0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r4, r2, #0
|
|
add r5, r0, #0
|
|
str r1, [sp]
|
|
add r6, r3, #0
|
|
mov r0, #0
|
|
mov r1, #0x1b
|
|
mov r2, #0x28
|
|
add r3, r4, #0
|
|
bl NewMsgDataFromNarc
|
|
add r7, r0, #0
|
|
add r0, r4, #0
|
|
bl MessageFormat_New
|
|
add r4, r0, #0
|
|
mov r0, #2
|
|
tst r0, r6
|
|
ldr r0, [r5, #0xc]
|
|
beq _0224FD3E
|
|
bl Save_PlayerData_GetProfileAddr
|
|
add r2, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl BufferPlayersName
|
|
mov r1, #1
|
|
add r0, r6, #0
|
|
tst r0, r1
|
|
add r2, sp, #0x10
|
|
beq _0224FD30
|
|
ldrb r2, [r2, #0x10]
|
|
add r0, r4, #0
|
|
sub r2, r2, #1
|
|
bl BufferFashionName
|
|
mov r1, #0x20
|
|
b _0224FD72
|
|
_0224FD30:
|
|
ldrb r2, [r2, #0x10]
|
|
add r0, r4, #0
|
|
sub r2, r2, #1
|
|
bl BufferFashionNameWithArticle
|
|
mov r1, #0x5f
|
|
b _0224FD72
|
|
_0224FD3E:
|
|
bl SaveArray_PlayerParty_Get
|
|
bl GetFirstAliveMonInParty_CrashIfNone
|
|
bl Mon_GetBoxMon
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_PlayerData_GetProfileAddr
|
|
add r2, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl BufferPlayersName
|
|
ldr r2, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl BufferBoxMonNickname
|
|
mov r0, #1
|
|
tst r0, r6
|
|
beq _0224FD70
|
|
mov r1, #0x61
|
|
b _0224FD72
|
|
_0224FD70:
|
|
mov r1, #0x62
|
|
_0224FD72:
|
|
add r0, r7, #0
|
|
bl NewString_ReadMsgData
|
|
add r5, r0, #0
|
|
ldr r1, [sp]
|
|
add r0, r4, #0
|
|
add r2, r5, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r5, #0
|
|
bl String_Delete
|
|
add r0, r4, #0
|
|
bl MessageFormat_Delete
|
|
add r0, r7, #0
|
|
bl DestroyMsgData
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224FCE0
|
|
|
|
thumb_func_start ov02_0224FD9C
|
|
ov02_0224FD9C: ; 0x0224FD9C
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
add r1, sp, #0
|
|
bl MapObject_GetPositionVec
|
|
mov r0, #2
|
|
ldrsb r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _0224FDBC
|
|
ldr r1, [sp]
|
|
lsl r0, r0, #0xc
|
|
add r0, r1, r0
|
|
str r0, [sp]
|
|
_0224FDBC:
|
|
mov r0, #3
|
|
ldrsb r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _0224FDDC
|
|
add r0, r4, #0
|
|
bl FollowPokeObj_GetSpecies
|
|
cmp r0, #0x32
|
|
beq _0224FDDC
|
|
cmp r0, #0x33
|
|
beq _0224FDDC
|
|
mov r1, #3
|
|
ldrsb r1, [r5, r1]
|
|
add r0, r4, #0
|
|
bl ov01_021F8F74
|
|
_0224FDDC:
|
|
mov r0, #4
|
|
ldrsb r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _0224FDEC
|
|
ldr r1, [sp, #8]
|
|
lsl r0, r0, #0xc
|
|
add r0, r1, r0
|
|
str r0, [sp, #8]
|
|
_0224FDEC:
|
|
add r0, r4, #0
|
|
add r1, sp, #0
|
|
bl MapObject_SetPositionVec
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
thumb_func_end ov02_0224FD9C
|
|
|
|
thumb_func_start ov02_0224FDF8
|
|
ov02_0224FDF8: ; 0x0224FDF8
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
ldrb r0, [r0, #5]
|
|
cmp r0, #0
|
|
beq _0224FE32
|
|
cmp r1, #0
|
|
beq _0224FE32
|
|
ldr r0, _0224FE38 ; =SEQ_SE_END
|
|
cmp r1, r0
|
|
bls _0224FE2C
|
|
add r0, r0, #1
|
|
cmp r1, r0
|
|
bne _0224FE16
|
|
mov r0, #0
|
|
b _0224FE18
|
|
_0224FE16:
|
|
mov r0, #0xb
|
|
_0224FE18:
|
|
ldr r4, _0224FE3C ; =0x000001FF
|
|
add r1, r2, #0
|
|
str r4, [sp]
|
|
str r3, [sp, #4]
|
|
add r2, r4, #0
|
|
add r3, r4, #0
|
|
bl PlayCryEx
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
_0224FE2C:
|
|
add r0, r1, #0
|
|
bl PlaySE
|
|
_0224FE32:
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
nop
|
|
_0224FE38: .word SEQ_SE_END
|
|
_0224FE3C: .word 0x000001FF
|
|
thumb_func_end ov02_0224FDF8
|
|
|
|
thumb_func_start ov02_0224FE40
|
|
ov02_0224FE40: ; 0x0224FE40
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
add r7, r0, #0
|
|
ldrb r0, [r5]
|
|
add r4, r2, #0
|
|
cmp r0, #0
|
|
beq _0224FE6C
|
|
add r0, r4, #0
|
|
bl MapObject_GetFacingDirection
|
|
ldrb r1, [r5]
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
add r0, r4, #0
|
|
sub r1, r1, #1
|
|
bl MapObject_ForceSetFacingDirection
|
|
add r0, r7, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl ov02_0224FE70
|
|
_0224FE6C:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224FE40
|
|
|
|
thumb_func_start ov02_0224FE70
|
|
ov02_0224FE70: ; 0x0224FE70
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
add r6, r2, #0
|
|
bl ov01_022055DC
|
|
cmp r0, #0
|
|
beq _0224FEFC
|
|
add r0, r4, #0
|
|
bl MapObject_GetFacingDirection
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
cmp r6, r0
|
|
beq _0224FEFC
|
|
ldr r0, _0224FF00 ; =0x0000087C
|
|
ldrb r0, [r5, r0]
|
|
cmp r0, #2
|
|
beq _0224FE9E
|
|
cmp r0, #3
|
|
bne _0224FEFC
|
|
_0224FE9E:
|
|
add r0, r4, #0
|
|
bl MapObject_GetFieldSysPtr
|
|
ldr r1, _0224FF00 ; =0x0000087C
|
|
add r6, r0, #0
|
|
ldrb r1, [r5, r1]
|
|
add r0, r4, #0
|
|
add r2, sp, #8
|
|
add r3, sp, #4
|
|
bl ov02_0224FF04
|
|
ldr r1, [sp, #8]
|
|
ldr r2, [sp, #4]
|
|
add r0, r6, #0
|
|
bl GetMetatileBehaviorAt
|
|
add r5, r0, #0
|
|
lsl r0, r5, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl sub_0205B6E8
|
|
cmp r0, #1
|
|
bne _0224FEE0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r2, [sp, #8]
|
|
ldr r3, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov01_021FF0E4
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0224FEE0:
|
|
lsl r0, r5, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl sub_0205B6F4
|
|
cmp r0, #1
|
|
bne _0224FEFC
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r2, [sp, #8]
|
|
ldr r3, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov01_021FF964
|
|
_0224FEFC:
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0224FF00: .word 0x0000087C
|
|
thumb_func_end ov02_0224FE70
|
|
|
|
thumb_func_start ov02_0224FF04
|
|
ov02_0224FF04: ; 0x0224FF04
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
add r4, r2, #0
|
|
add r6, r1, #0
|
|
add r5, r3, #0
|
|
bl MapObject_GetCurrentX
|
|
str r0, [r4]
|
|
add r0, r7, #0
|
|
bl MapObject_GetCurrentY
|
|
str r0, [r5]
|
|
cmp r6, #3
|
|
bhi _0224FF54
|
|
add r0, r6, r6
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0224FF2C: ; jump table
|
|
.short _0224FF34 - _0224FF2C - 2 ; case 0
|
|
.short _0224FF3C - _0224FF2C - 2 ; case 1
|
|
.short _0224FF44 - _0224FF2C - 2 ; case 2
|
|
.short _0224FF4C - _0224FF2C - 2 ; case 3
|
|
_0224FF34:
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224FF3C:
|
|
ldr r0, [r5]
|
|
sub r0, r0, #1
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224FF44:
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224FF4C:
|
|
ldr r0, [r4]
|
|
sub r0, r0, #1
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0224FF54:
|
|
bl GF_AssertFail
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0224FF04
|
|
|
|
thumb_func_start ov02_0224FF5C
|
|
ov02_0224FF5C: ; 0x0224FF5C
|
|
push {r4, r5, r6, lr}
|
|
ldr r3, _0224FFCC ; =0x00000818
|
|
add r5, r0, #0
|
|
add r2, r3, #0
|
|
add r2, #0x53
|
|
ldrb r2, [r5, r2]
|
|
add r0, r5, r3
|
|
add r3, #0x52
|
|
lsl r2, r2, #3
|
|
add r4, r0, r2
|
|
ldrb r0, [r5, r3]
|
|
add r6, r1, #0
|
|
cmp r0, #0
|
|
bne _0224FFA8
|
|
add r0, r4, #0
|
|
bl ov02_0224FD9C
|
|
ldr r3, _0224FFD0 ; =0x0000086C
|
|
add r0, r4, #0
|
|
ldrb r1, [r5, r3]
|
|
lsl r1, r1, #0x1c
|
|
lsr r1, r1, #0x19
|
|
add r2, r5, r1
|
|
add r1, r3, #0
|
|
sub r1, #0x84
|
|
ldrh r1, [r2, r1]
|
|
add r2, r3, #0
|
|
add r2, #0x12
|
|
add r3, #0x11
|
|
ldrh r2, [r5, r2]
|
|
ldrb r3, [r5, r3]
|
|
bl ov02_0224FDF8
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl ov02_0224FE40
|
|
_0224FFA8:
|
|
ldr r1, _0224FFD4 ; =0x0000086A
|
|
ldrb r0, [r5, r1]
|
|
add r0, r0, #1
|
|
strb r0, [r5, r1]
|
|
ldrb r2, [r5, r1]
|
|
ldrb r0, [r4, #1]
|
|
cmp r2, r0
|
|
blo _0224FFC6
|
|
add r0, r1, #1
|
|
ldrb r0, [r5, r0]
|
|
add r2, r0, #1
|
|
add r0, r1, #1
|
|
strb r2, [r5, r0]
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_0224FFC6:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0224FFCC: .word 0x00000818
|
|
_0224FFD0: .word 0x0000086C
|
|
_0224FFD4: .word 0x0000086A
|
|
thumb_func_end ov02_0224FF5C
|
|
|
|
thumb_func_start ov02_0224FFD8
|
|
ov02_0224FFD8: ; 0x0224FFD8
|
|
ldr r2, _02250000 ; =0x0000086B
|
|
ldrb r1, [r0, r2]
|
|
cmp r1, #0xa
|
|
blo _0224FFE4
|
|
mov r0, #0
|
|
bx lr
|
|
_0224FFE4:
|
|
lsl r1, r1, #3
|
|
add r3, r0, r1
|
|
add r1, r2, #0
|
|
sub r1, #0x53
|
|
ldrb r1, [r3, r1]
|
|
cmp r1, #0xff
|
|
bne _0224FFF6
|
|
mov r0, #0
|
|
bx lr
|
|
_0224FFF6:
|
|
mov r3, #0
|
|
sub r1, r2, #1
|
|
strb r3, [r0, r1]
|
|
mov r0, #1
|
|
bx lr
|
|
.balign 4, 0
|
|
_02250000: .word 0x0000086B
|
|
thumb_func_end ov02_0224FFD8
|
|
|
|
thumb_func_start ov02_02250004
|
|
ov02_02250004: ; 0x02250004
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
cmp r2, #0
|
|
bne _02250016
|
|
bl GF_AssertFail
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_02250016:
|
|
ldr r0, _02250108 ; =0x00000868
|
|
ldrb r1, [r4, r0]
|
|
cmp r1, #4
|
|
bhi _02250102
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0225002A: ; jump table
|
|
.short _02250034 - _0225002A - 2 ; case 0
|
|
.short _02250040 - _0225002A - 2 ; case 1
|
|
.short _02250082 - _0225002A - 2 ; case 2
|
|
.short _02250098 - _0225002A - 2 ; case 3
|
|
.short _022500AE - _0225002A - 2 ; case 4
|
|
_02250034:
|
|
sub r0, #0x50
|
|
add r0, r4, r0
|
|
mov r1, #0xe0
|
|
sub r2, r2, #1
|
|
bl ReadWholeNarcMemberByIdPair
|
|
_02250040:
|
|
add r0, r5, #0
|
|
add r0, #0xe4
|
|
mov r1, #0x87
|
|
lsl r1, r1, #4
|
|
ldr r0, [r0]
|
|
add r1, r4, r1
|
|
bl MapObject_GetPositionVec
|
|
add r0, r5, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
bl MapObject_GetFacingDirection
|
|
ldr r1, _0225010C ; =0x0000087C
|
|
strb r0, [r4, r1]
|
|
add r0, r5, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
bl ov01_021F8F68
|
|
add r5, #0xe4
|
|
ldr r0, [r5]
|
|
mov r1, #1
|
|
bl ov01_021F8F08
|
|
ldr r0, _02250108 ; =0x00000868
|
|
mov r1, #2
|
|
strb r1, [r4, r0]
|
|
mov r1, #0
|
|
add r0, r0, #3
|
|
strb r1, [r4, r0]
|
|
b _02250102
|
|
_02250082:
|
|
add r0, r4, #0
|
|
bl ov02_0224FFD8
|
|
cmp r0, #0
|
|
ldr r0, _02250108 ; =0x00000868
|
|
bne _02250094
|
|
mov r1, #4
|
|
strb r1, [r4, r0]
|
|
b _02250102
|
|
_02250094:
|
|
mov r1, #3
|
|
strb r1, [r4, r0]
|
|
_02250098:
|
|
add r5, #0xe4
|
|
ldr r1, [r5]
|
|
add r0, r4, #0
|
|
bl ov02_0224FF5C
|
|
cmp r0, #0
|
|
beq _02250102
|
|
ldr r0, _02250108 ; =0x00000868
|
|
mov r1, #2
|
|
strb r1, [r4, r0]
|
|
b _02250102
|
|
_022500AE:
|
|
add r0, r5, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
bl MapObject_GetFacingDirection
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
add r0, r5, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
bl ov01_021F8F68
|
|
add r0, r5, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
bl ov01_021F8F08
|
|
add r0, r5, #0
|
|
add r0, #0xe4
|
|
mov r1, #0x87
|
|
lsl r1, r1, #4
|
|
ldr r0, [r0]
|
|
add r1, r4, r1
|
|
bl MapObject_SetPositionVec
|
|
ldr r1, _0225010C ; =0x0000087C
|
|
add r0, r5, #0
|
|
add r0, #0xe4
|
|
ldrb r1, [r4, r1]
|
|
ldr r0, [r0]
|
|
bl MapObject_ForceSetFacingDirection
|
|
add r5, #0xe4
|
|
ldr r1, [r5]
|
|
add r0, r4, #0
|
|
add r2, r6, #0
|
|
bl ov02_0224FE70
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_02250102:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_02250108: .word 0x00000868
|
|
_0225010C: .word 0x0000087C
|
|
thumb_func_end ov02_02250004
|
|
|
|
thumb_func_start Task_FollowPokeInteract
|
|
Task_FollowPokeInteract: ; 0x02250110
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
bl TaskManager_GetStatePtr
|
|
add r6, r0, #0
|
|
ldr r0, [r6]
|
|
cmp r0, #5
|
|
bls _0225012A
|
|
b _0225047E
|
|
_0225012A:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02250136: ; jump table
|
|
.short _02250142 - _02250136 - 2 ; case 0
|
|
.short _0225015C - _02250136 - 2 ; case 1
|
|
.short _022501A2 - _02250136 - 2 ; case 2
|
|
.short _02250314 - _02250136 - 2 ; case 3
|
|
.short _02250378 - _02250136 - 2 ; case 4
|
|
.short _02250418 - _02250136 - 2 ; case 5
|
|
_02250142:
|
|
add r0, r4, #0
|
|
bl ov02_0224EF94
|
|
add r1, r0, #0
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov02_0224F880
|
|
ldr r0, [r6]
|
|
add r0, r0, #1
|
|
str r0, [r6]
|
|
b _0225047E
|
|
_0225015C:
|
|
mov r1, #0x12
|
|
lsl r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
add r0, r4, #0
|
|
bl ov02_0224F8FC
|
|
cmp r0, #1
|
|
bne _02250178
|
|
add r4, #0xe4
|
|
ldr r0, [r4]
|
|
bl MapObject_PauseMovement
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02250178:
|
|
cmp r0, #2
|
|
bne _0225018E
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r1, [r4, r0]
|
|
ldr r0, _02250484 ; =0x00000869
|
|
mov r2, #0xa
|
|
strb r2, [r1, r0]
|
|
mov r0, #2
|
|
str r0, [r6]
|
|
b _0225047E
|
|
_0225018E:
|
|
cmp r0, #3
|
|
bne _02250198
|
|
mov r0, #3
|
|
str r0, [r6]
|
|
b _0225047E
|
|
_02250198:
|
|
cmp r0, #4
|
|
bne _02250270
|
|
mov r0, #4
|
|
str r0, [r6]
|
|
b _0225047E
|
|
_022501A2:
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r1, [r4, r0]
|
|
ldr r0, _02250484 ; =0x00000869
|
|
ldrb r0, [r1, r0]
|
|
sub r0, #0xa
|
|
cmp r0, #3
|
|
bhi _02250270
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_022501BE: ; jump table
|
|
.short _022501C6 - _022501BE - 2 ; case 0
|
|
.short _022501DE - _022501BE - 2 ; case 1
|
|
.short _02250218 - _022501BE - 2 ; case 2
|
|
.short _02250246 - _022501BE - 2 ; case 3
|
|
_022501C6:
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
mov r2, #0
|
|
bl ov01_021F6A9C
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r1, [r4, r0]
|
|
ldr r0, _02250484 ; =0x00000869
|
|
mov r2, #0xb
|
|
strb r2, [r1, r0]
|
|
b _0225047E
|
|
_022501DE:
|
|
add r0, r4, #0
|
|
bl ov01_021F6B00
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl ov01_021F6B10
|
|
cmp r5, #3
|
|
bne _02250270
|
|
cmp r0, #1
|
|
bne _02250270
|
|
mov r3, #0x12
|
|
lsl r3, r3, #4
|
|
ldr r5, [r4, r3]
|
|
mov r3, #0x22
|
|
mov r1, #3
|
|
lsl r3, r3, #6
|
|
add r0, r4, #0
|
|
add r2, r1, #0
|
|
add r3, r5, r3
|
|
bl ov01_021F6ABC
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r1, [r4, r0]
|
|
ldr r0, _02250484 ; =0x00000869
|
|
mov r2, #0xc
|
|
strb r2, [r1, r0]
|
|
b _0225047E
|
|
_02250218:
|
|
add r0, r4, #0
|
|
bl ov01_021F6B00
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl ov01_021F6AEC
|
|
cmp r5, #3
|
|
bne _02250270
|
|
cmp r0, #6
|
|
bne _02250270
|
|
mov r1, #0
|
|
add r0, r4, #0
|
|
add r2, r1, #0
|
|
bl ov01_021F6A9C
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r1, [r4, r0]
|
|
ldr r0, _02250484 ; =0x00000869
|
|
mov r2, #0xd
|
|
strb r2, [r1, r0]
|
|
b _0225047E
|
|
_02250246:
|
|
add r0, r4, #0
|
|
bl ov01_021F6B00
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl ov01_021F6B10
|
|
cmp r5, #0
|
|
bne _02250270
|
|
cmp r0, #1
|
|
bne _02250270
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
mov r1, #0x22
|
|
ldr r0, [r4, r0]
|
|
lsl r1, r1, #6
|
|
ldrh r1, [r0, r1]
|
|
cmp r1, #0
|
|
beq _02250272
|
|
cmp r1, #1
|
|
beq _022502C4
|
|
_02250270:
|
|
b _0225047E
|
|
_02250272:
|
|
mov r1, #0
|
|
bl ClearFrameAndWindow2
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl RemoveWindow
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r0, [r0, #0x10]
|
|
bl String_Delete
|
|
add r0, r4, #0
|
|
add r0, #0xd2
|
|
ldrb r1, [r0]
|
|
mov r0, #0x40
|
|
bic r1, r0
|
|
add r0, r4, #0
|
|
add r0, #0xd2
|
|
strb r1, [r0]
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
mov r1, #0x81
|
|
ldr r0, [r4, r0]
|
|
lsl r1, r1, #4
|
|
ldrh r1, [r0, r1]
|
|
cmp r1, #0
|
|
bne _022502BA
|
|
add r4, #0xe4
|
|
ldr r0, [r4]
|
|
bl MapObject_PauseMovement
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022502BA:
|
|
bl ov02_0224F880
|
|
mov r0, #1
|
|
str r0, [r6]
|
|
b _0225047E
|
|
_022502C4:
|
|
mov r1, #0
|
|
bl ClearFrameAndWindow2
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl RemoveWindow
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r0, [r0, #0x10]
|
|
bl String_Delete
|
|
add r0, r4, #0
|
|
add r0, #0xd2
|
|
ldrb r1, [r0]
|
|
mov r0, #0x40
|
|
bic r1, r0
|
|
add r0, r4, #0
|
|
add r0, #0xd2
|
|
strb r1, [r0]
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r1, _02250488 ; =0x00000812
|
|
ldrh r1, [r0, r1]
|
|
cmp r1, #0
|
|
bne _0225030A
|
|
add r4, #0xe4
|
|
ldr r0, [r4]
|
|
bl MapObject_PauseMovement
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225030A:
|
|
bl ov02_0224F880
|
|
mov r0, #1
|
|
str r0, [r6]
|
|
b _0225047E
|
|
_02250314:
|
|
ldr r0, [r4, #0xc]
|
|
bl Save_FashionData_Get
|
|
bl Save_FashionData_GetFashionCase
|
|
add r7, r0, #0
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r1, [r4, r0]
|
|
ldr r0, _0225048C ; =0x00000816
|
|
ldrb r0, [r1, r0]
|
|
sub r5, r0, #1
|
|
bmi _02250332
|
|
cmp r5, #0x64
|
|
blt _02250336
|
|
_02250332:
|
|
bl GF_AssertFail
|
|
_02250336:
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
mov r2, #1
|
|
bl sub_0202BA2C
|
|
cmp r0, #0
|
|
beq _02250364
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
mov r2, #1
|
|
bl sub_0202BB08
|
|
mov r1, #0x12
|
|
lsl r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
add r0, r4, #0
|
|
mov r2, #3
|
|
bl ov02_0224FC08
|
|
ldr r0, _02250490 ; =SEQ_ME_ACCE
|
|
bl PlayFanfare
|
|
b _02250372
|
|
_02250364:
|
|
mov r1, #0x12
|
|
lsl r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
add r0, r4, #0
|
|
mov r2, #2
|
|
bl ov02_0224FC08
|
|
_02250372:
|
|
mov r0, #5
|
|
str r0, [r6]
|
|
b _0225047E
|
|
_02250378:
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r1, [r4, r0]
|
|
ldr r0, _02250494 ; =0x00000817
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, #5
|
|
bhi _022503B2
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02250392: ; jump table
|
|
.short _022503B2 - _02250392 - 2 ; case 0
|
|
.short _0225039E - _02250392 - 2 ; case 1
|
|
.short _022503A2 - _02250392 - 2 ; case 2
|
|
.short _022503A6 - _02250392 - 2 ; case 3
|
|
.short _022503AA - _02250392 - 2 ; case 4
|
|
.short _022503AE - _02250392 - 2 ; case 5
|
|
_0225039E:
|
|
mov r5, #MON_DATA_SHINY_LEAF_A
|
|
b _022503BA
|
|
_022503A2:
|
|
mov r5, #MON_DATA_SHINY_LEAF_B
|
|
b _022503BA
|
|
_022503A6:
|
|
mov r5, #MON_DATA_SHINY_LEAF_C
|
|
b _022503BA
|
|
_022503AA:
|
|
mov r5, #MON_DATA_SHINY_LEAF_D
|
|
b _022503BA
|
|
_022503AE:
|
|
mov r5, #MON_DATA_SHINY_LEAF_E
|
|
b _022503BA
|
|
_022503B2:
|
|
bl GF_AssertFail
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022503BA:
|
|
ldr r0, [r4, #0xc]
|
|
bl SaveArray_PlayerParty_Get
|
|
bl GetFirstAliveMonInParty_CrashIfNone
|
|
add r1, r5, #0
|
|
mov r2, #0
|
|
add r7, r0, #0
|
|
bl GetMonData
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bne _02250404
|
|
ldr r0, [r4, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
bl SetFlag99C
|
|
mov r1, #1
|
|
add r0, sp, #0
|
|
strb r1, [r0]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
add r2, sp, #0
|
|
bl SetMonData
|
|
mov r1, #0x12
|
|
lsl r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
add r0, r4, #0
|
|
mov r2, #1
|
|
bl ov02_0224FC08
|
|
ldr r0, _02250490 ; =SEQ_ME_ACCE
|
|
bl PlayFanfare
|
|
b _02250412
|
|
_02250404:
|
|
mov r1, #0x12
|
|
lsl r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
add r0, r4, #0
|
|
mov r2, #0
|
|
bl ov02_0224FC08
|
|
_02250412:
|
|
mov r0, #5
|
|
str r0, [r6]
|
|
b _0225047E
|
|
_02250418:
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r1, [r4, r0]
|
|
ldr r0, _02250498 ; =0x0000086E
|
|
ldrh r0, [r1, r0]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl IsPrintFinished
|
|
cmp r0, #1
|
|
bne _0225047E
|
|
bl IsFanfarePlaying
|
|
cmp r0, #0
|
|
bne _0225047E
|
|
ldr r0, _0225049C ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #3
|
|
tst r0, r1
|
|
beq _0225047E
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ClearFrameAndWindow2
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl RemoveWindow
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r0, [r0, #0x10]
|
|
bl String_Delete
|
|
add r0, r4, #0
|
|
add r0, #0xd2
|
|
ldrb r1, [r0]
|
|
mov r0, #0x40
|
|
bic r1, r0
|
|
add r0, r4, #0
|
|
add r0, #0xd2
|
|
add r4, #0xe4
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
bl MapObject_PauseMovement
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225047E:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02250484: .word 0x00000869
|
|
_02250488: .word 0x00000812
|
|
_0225048C: .word 0x00000816
|
|
_02250490: .word SEQ_ME_ACCE
|
|
_02250494: .word 0x00000817
|
|
_02250498: .word 0x0000086E
|
|
_0225049C: .word gSystem
|
|
thumb_func_end Task_FollowPokeInteract
|
|
|
|
thumb_func_start FollowPoke_PlaceholdersSet
|
|
FollowPoke_PlaceholdersSet: ; 0x022504A0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0xc]
|
|
add r4, r1, #0
|
|
bl SaveArray_PlayerParty_Get
|
|
bl GetFirstAliveMonInParty_CrashIfNone
|
|
add r6, r0, #0
|
|
bl Mon_GetBoxMon
|
|
add r7, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r2, r7, #0
|
|
bl BufferBoxMonNickname
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r2, r7, #0
|
|
bl BufferBoxMonSpeciesName
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_PlayerData_GetProfileAddr
|
|
add r2, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
bl BufferPlayersName
|
|
ldr r0, [r5, #0x20]
|
|
ldr r0, [r0]
|
|
bl MapHeader_GetMapSec
|
|
add r2, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl BufferLocationName
|
|
add r0, r6, #0
|
|
mov r1, #6
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r2, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
bl BufferItemName
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end FollowPoke_PlaceholdersSet
|
|
|
|
thumb_func_start ov02_02250504
|
|
ov02_02250504: ; 0x02250504
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0xc]
|
|
bl SaveArray_PlayerParty_Get
|
|
bl GetFirstAliveMonInParty_CrashIfNone
|
|
add r4, r0, #0
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl FsysUnkSub108_GetMonMood
|
|
mov r1, #0x12
|
|
str r0, [sp]
|
|
lsl r1, r1, #4
|
|
ldr r2, [r5, r1]
|
|
ldr r1, _0225058C ; =0x00000815
|
|
ldrsb r1, [r2, r1]
|
|
add r1, r0, r1
|
|
str r1, [sp]
|
|
cmp r1, #0x7f
|
|
ble _02250538
|
|
mov r0, #0x7f
|
|
str r0, [sp]
|
|
b _02250542
|
|
_02250538:
|
|
mov r0, #0x7e
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
bge _02250542
|
|
str r0, [sp]
|
|
_02250542:
|
|
mov r0, #0x42
|
|
ldr r1, [sp]
|
|
lsl r0, r0, #2
|
|
lsl r1, r1, #0x18
|
|
ldr r0, [r5, r0]
|
|
asr r1, r1, #0x18
|
|
bl FsysUnkSub108_SetMonMood
|
|
add r0, r4, #0
|
|
mov r1, #9
|
|
mov r2, #0
|
|
bl GetMonData
|
|
mov r1, #0x12
|
|
str r0, [sp]
|
|
lsl r1, r1, #4
|
|
ldr r2, [r5, r1]
|
|
ldr r1, _02250590 ; =0x00000814
|
|
ldrsb r1, [r2, r1]
|
|
add r0, r0, r1
|
|
str r0, [sp]
|
|
cmp r0, #0xff
|
|
ble _02250576
|
|
mov r0, #0xff
|
|
str r0, [sp]
|
|
b _0225057E
|
|
_02250576:
|
|
cmp r0, #0
|
|
bge _0225057E
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
_0225057E:
|
|
add r0, r4, #0
|
|
mov r1, #9
|
|
add r2, sp, #0
|
|
bl SetMonData
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0225058C: .word 0x00000815
|
|
_02250590: .word 0x00000814
|
|
thumb_func_end ov02_02250504
|
|
|
|
thumb_func_start ov02_02250594
|
|
ov02_02250594: ; 0x02250594
|
|
cmp r0, #0xa
|
|
bhi _02250622
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_022505A4: ; jump table
|
|
.short _02250622 - _022505A4 - 2 ; case 0
|
|
.short _022505BA - _022505A4 - 2 ; case 1
|
|
.short _022505C2 - _022505A4 - 2 ; case 2
|
|
.short _022505CE - _022505A4 - 2 ; case 3
|
|
.short _022505DA - _022505A4 - 2 ; case 4
|
|
.short _022505E6 - _022505A4 - 2 ; case 5
|
|
.short _022505F2 - _022505A4 - 2 ; case 6
|
|
.short _022505FE - _022505A4 - 2 ; case 7
|
|
.short _0225060A - _022505A4 - 2 ; case 8
|
|
.short _02250612 - _022505A4 - 2 ; case 9
|
|
.short _0225061A - _022505A4 - 2 ; case 10
|
|
_022505BA:
|
|
cmp r1, #0xff
|
|
bne _02250622
|
|
mov r0, #1
|
|
bx lr
|
|
_022505C2:
|
|
cmp r1, #0xc8
|
|
blt _02250622
|
|
cmp r1, #0xff
|
|
bge _02250622
|
|
mov r0, #1
|
|
bx lr
|
|
_022505CE:
|
|
cmp r1, #0x96
|
|
blt _02250622
|
|
cmp r1, #0xc8
|
|
bge _02250622
|
|
mov r0, #1
|
|
bx lr
|
|
_022505DA:
|
|
cmp r1, #0x5a
|
|
blt _02250622
|
|
cmp r1, #0x96
|
|
bge _02250622
|
|
mov r0, #1
|
|
bx lr
|
|
_022505E6:
|
|
cmp r1, #0x3c
|
|
blt _02250622
|
|
cmp r1, #0x5a
|
|
bge _02250622
|
|
mov r0, #1
|
|
bx lr
|
|
_022505F2:
|
|
cmp r1, #0x1e
|
|
blt _02250622
|
|
cmp r1, #0x3c
|
|
bge _02250622
|
|
mov r0, #1
|
|
bx lr
|
|
_022505FE:
|
|
cmp r1, #1
|
|
blt _02250622
|
|
cmp r1, #0x1e
|
|
bge _02250622
|
|
mov r0, #1
|
|
bx lr
|
|
_0225060A:
|
|
cmp r1, #0
|
|
bne _02250622
|
|
mov r0, #1
|
|
bx lr
|
|
_02250612:
|
|
cmp r1, #0x5a
|
|
blt _02250622
|
|
mov r0, #1
|
|
bx lr
|
|
_0225061A:
|
|
cmp r1, #0x3c
|
|
bge _02250622
|
|
mov r0, #1
|
|
bx lr
|
|
_02250622:
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02250594
|
|
|
|
thumb_func_start ov02_02250628
|
|
ov02_02250628: ; 0x02250628
|
|
cmp r0, #0xa
|
|
bhi _022506CE
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02250638: ; jump table
|
|
.short _022506CE - _02250638 - 2 ; case 0
|
|
.short _0225064E - _02250638 - 2 ; case 1
|
|
.short _02250656 - _02250638 - 2 ; case 2
|
|
.short _02250662 - _02250638 - 2 ; case 3
|
|
.short _0225066E - _02250638 - 2 ; case 4
|
|
.short _0225067A - _02250638 - 2 ; case 5
|
|
.short _0225068A - _02250638 - 2 ; case 6
|
|
.short _0225069C - _02250638 - 2 ; case 7
|
|
.short _022506AE - _02250638 - 2 ; case 8
|
|
.short _022506BA - _02250638 - 2 ; case 9
|
|
.short _022506C2 - _02250638 - 2 ; case 10
|
|
_0225064E:
|
|
cmp r1, #0x7f
|
|
bne _022506CE
|
|
mov r0, #1
|
|
bx lr
|
|
_02250656:
|
|
cmp r1, #0x64
|
|
blt _022506CE
|
|
cmp r1, #0x7f
|
|
bge _022506CE
|
|
mov r0, #1
|
|
bx lr
|
|
_02250662:
|
|
cmp r1, #0x32
|
|
blt _022506CE
|
|
cmp r1, #0x64
|
|
bge _022506CE
|
|
mov r0, #1
|
|
bx lr
|
|
_0225066E:
|
|
cmp r1, #0x1e
|
|
blt _022506CE
|
|
cmp r1, #0x32
|
|
bge _022506CE
|
|
mov r0, #1
|
|
bx lr
|
|
_0225067A:
|
|
mov r0, #0x1d
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
ble _022506CE
|
|
cmp r1, #0x1e
|
|
bge _022506CE
|
|
mov r0, #1
|
|
bx lr
|
|
_0225068A:
|
|
mov r0, #0x31
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
ble _022506CE
|
|
add r0, #0x14
|
|
cmp r1, r0
|
|
bgt _022506CE
|
|
mov r0, #1
|
|
bx lr
|
|
_0225069C:
|
|
mov r0, #0x7e
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
ble _022506CE
|
|
add r0, #0x4d
|
|
cmp r1, r0
|
|
bgt _022506CE
|
|
mov r0, #1
|
|
bx lr
|
|
_022506AE:
|
|
mov r0, #0x7e
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
bne _022506CE
|
|
mov r0, #1
|
|
bx lr
|
|
_022506BA:
|
|
cmp r1, #0
|
|
blt _022506CE
|
|
mov r0, #1
|
|
bx lr
|
|
_022506C2:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
bgt _022506CE
|
|
mov r0, #1
|
|
bx lr
|
|
_022506CE:
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02250628
|
|
|
|
thumb_func_start ov02_022506D4
|
|
ov02_022506D4: ; 0x022506D4
|
|
push {r3, lr}
|
|
cmp r0, #0xf9
|
|
bhi _022506E2
|
|
cmp r0, r1
|
|
bne _02250732
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_022506E2:
|
|
sub r0, #0xfa
|
|
cmp r0, #4
|
|
bhi _0225072A
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_022506F4: ; jump table
|
|
.short _022506FE - _022506F4 - 2 ; case 0
|
|
.short _02250706 - _022506F4 - 2 ; case 1
|
|
.short _0225070E - _022506F4 - 2 ; case 2
|
|
.short _0225071A - _022506F4 - 2 ; case 3
|
|
.short _02250722 - _022506F4 - 2 ; case 4
|
|
_022506FE:
|
|
cmp r1, #0x13
|
|
bhi _02250732
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_02250706:
|
|
cmp r1, #0x82
|
|
bhi _02250732
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0225070E:
|
|
cmp r1, #0x8c
|
|
blo _02250732
|
|
cmp r1, #0x95
|
|
bhi _02250732
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0225071A:
|
|
cmp r1, #0xa0
|
|
blo _02250732
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_02250722:
|
|
cmp r1, #0xdc
|
|
blo _02250732
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0225072A:
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_02250732:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_022506D4
|
|
|
|
thumb_func_start ov02_02250738
|
|
ov02_02250738: ; 0x02250738
|
|
push {r4, r5}
|
|
sub sp, #8
|
|
ldr r4, _0225077C ; =ov02_02253A54
|
|
add r2, sp, #0
|
|
ldrb r5, [r4]
|
|
add r3, sp, #0
|
|
add r0, r2, r0
|
|
strb r5, [r3]
|
|
ldrb r5, [r4, #1]
|
|
sub r0, r0, #1
|
|
strb r5, [r3, #1]
|
|
ldrb r5, [r4, #2]
|
|
strb r5, [r3, #2]
|
|
ldrb r5, [r4, #3]
|
|
ldrb r4, [r4, #4]
|
|
strb r5, [r3, #3]
|
|
strb r4, [r3, #4]
|
|
ldrb r0, [r0]
|
|
mov r3, #0
|
|
and r0, r1
|
|
_02250760:
|
|
cmp r0, #0
|
|
bne _0225076C
|
|
add sp, #8
|
|
mov r0, #1
|
|
pop {r4, r5}
|
|
bx lr
|
|
_0225076C:
|
|
add r3, r3, #1
|
|
cmp r3, #5
|
|
blt _02250760
|
|
mov r0, #0
|
|
add sp, #8
|
|
pop {r4, r5}
|
|
bx lr
|
|
nop
|
|
_0225077C: .word ov02_02253A54
|
|
thumb_func_end ov02_02250738
|
|
|
|
thumb_func_start ov02_02250780
|
|
ov02_02250780: ; 0x02250780
|
|
push {r4, r5, r6, lr}
|
|
ldr r0, [r0, #0xc]
|
|
add r5, r1, #0
|
|
bl SaveArray_PlayerParty_Get
|
|
bl GetFirstAliveMonInParty_CrashIfNone
|
|
add r6, r0, #0
|
|
mov r1, #0xb1
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
mov r1, #0xb2
|
|
mov r2, #0
|
|
bl GetMonData
|
|
cmp r4, r5
|
|
beq _022507AC
|
|
cmp r0, r5
|
|
bne _022507B0
|
|
_022507AC:
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_022507B0:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov02_02250780
|
|
|
|
thumb_func_start ov02_022507B4
|
|
ov02_022507B4: ; 0x022507B4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
add r4, r1, #0
|
|
bl FollowPokeObj_GetSpecies
|
|
sub r0, #0x32
|
|
cmp r0, #1
|
|
bls _022507E0
|
|
mov r0, #0xb
|
|
mov r1, #8
|
|
bl AllocFromHeapAtEnd
|
|
add r2, r0, #0
|
|
strh r4, [r2]
|
|
mov r0, #0
|
|
strh r0, [r2, #2]
|
|
ldr r0, [r5, #0x10]
|
|
ldr r1, _022507E4 ; =ov02_022507E8
|
|
bl TaskManager_Call
|
|
_022507E0:
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_022507E4: .word ov02_022507E8
|
|
thumb_func_end ov02_022507B4
|
|
|
|
thumb_func_start ov02_022507E8
|
|
ov02_022507E8: ; 0x022507E8
|
|
push {r4, r5, r6, lr}
|
|
add r4, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
bl TaskManager_GetEnv
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl TaskManager_GetStatePtr
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #4
|
|
bhi _022508AA
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02250814: ; jump table
|
|
.short _0225081E - _02250814 - 2 ; case 0
|
|
.short _0225082E - _02250814 - 2 ; case 1
|
|
.short _0225084C - _02250814 - 2 ; case 2
|
|
.short _02250874 - _02250814 - 2 ; case 3
|
|
.short _022508A0 - _02250814 - 2 ; case 4
|
|
_0225081E:
|
|
add r0, r6, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
bl MapObject_UnpauseMovement
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
_0225082E:
|
|
add r0, r6, #0
|
|
bl FollowingPokemon_GetMapObject
|
|
bl MapObject_AreBitsSetForMovementScriptInit
|
|
cmp r0, #0
|
|
beq _022508AA
|
|
add r6, #0xe4
|
|
ldr r0, [r6]
|
|
bl MapObject_PauseMovement
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _022508AA
|
|
_0225084C:
|
|
add r0, r6, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
bl MapObject_GetFacingDirection
|
|
lsl r0, r0, #0x18
|
|
lsr r1, r0, #0x18
|
|
add r6, #0xe4
|
|
mov r2, #0x14
|
|
ldr r3, _022508B0 ; =ov02_02253A70
|
|
mul r2, r1
|
|
ldr r0, [r6]
|
|
add r1, r3, r2
|
|
bl EventObjectMovementMan_Create
|
|
str r0, [r5, #4]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _022508AA
|
|
_02250874:
|
|
ldr r0, [r5, #4]
|
|
bl EventObjectMovementMan_IsFinish
|
|
cmp r0, #1
|
|
bne _022508AA
|
|
ldr r0, [r5, #4]
|
|
bl EventObjectMovementMan_Delete
|
|
ldrh r0, [r5, #2]
|
|
add r0, r0, #1
|
|
strh r0, [r5, #2]
|
|
ldrh r1, [r5, #2]
|
|
ldrh r0, [r5]
|
|
cmp r1, r0
|
|
blo _0225089A
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _022508AA
|
|
_0225089A:
|
|
mov r0, #0
|
|
str r0, [r4]
|
|
b _022508AA
|
|
_022508A0:
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_022508AA:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_022508B0: .word ov02_02253A70
|
|
thumb_func_end ov02_022507E8
|
|
|
|
thumb_func_start ov02_022508B4
|
|
ov02_022508B4: ; 0x022508B4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xb
|
|
mov r1, #4
|
|
bl AllocFromHeapAtEnd
|
|
add r2, r0, #0
|
|
mov r0, #0
|
|
strh r0, [r2]
|
|
strh r0, [r2, #2]
|
|
ldr r0, [r4, #0x10]
|
|
ldr r1, _022508D4 ; =ov02_022508D8
|
|
bl TaskManager_Call
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_022508D4: .word ov02_022508D8
|
|
thumb_func_end ov02_022508B4
|
|
|
|
thumb_func_start ov02_022508D8
|
|
ov02_022508D8: ; 0x022508D8
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x18
|
|
add r4, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
bl TaskManager_GetStatePtr
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl TaskManager_GetEnv
|
|
ldr r1, [r5]
|
|
add r4, r0, #0
|
|
cmp r1, #3
|
|
bls _022508FC
|
|
b _02250A44
|
|
_022508FC:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02250908: ; jump table
|
|
.short _02250910 - _02250908 - 2 ; case 0
|
|
.short _0225099A - _02250908 - 2 ; case 1
|
|
.short _022509AE - _02250908 - 2 ; case 2
|
|
.short _02250A3A - _02250908 - 2 ; case 3
|
|
_02250910:
|
|
ldr r3, _02250A4C ; =ov02_02253B24
|
|
add r2, sp, #0xc
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
ldrh r0, [r4, #2]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #2]
|
|
ldrh r0, [r4, #2]
|
|
bl _dfltu
|
|
add r3, r1, #0
|
|
add r2, r0, #0
|
|
ldr r1, _02250A50 ; =0x40A00000
|
|
mov r0, #0
|
|
bl _dmul
|
|
ldr r3, _02250A54 ; =0x40240000
|
|
mov r2, #0
|
|
bl _ddiv
|
|
add r3, r1, #0
|
|
add r2, r0, #0
|
|
ldr r1, _02250A58 ; =0x40B00000
|
|
mov r0, #0
|
|
bl _dadd
|
|
bl _dfix
|
|
str r0, [sp, #0xc]
|
|
ldrh r0, [r4, #2]
|
|
bl _dfltu
|
|
add r3, r1, #0
|
|
add r2, r0, #0
|
|
ldr r1, _02250A50 ; =0x40A00000
|
|
mov r0, #0
|
|
bl _dmul
|
|
ldr r3, _02250A54 ; =0x40240000
|
|
mov r2, #0
|
|
bl _ddiv
|
|
add r3, r1, #0
|
|
add r2, r0, #0
|
|
ldr r1, _02250A58 ; =0x40B00000
|
|
mov r0, #0
|
|
bl _dadd
|
|
bl _dfix
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r6, #0x3c]
|
|
bl ov01_021F771C
|
|
add r1, sp, #0xc
|
|
bl sub_02023E78
|
|
ldrh r0, [r4, #2]
|
|
cmp r0, #0xa
|
|
blo _02250A44
|
|
mov r0, #0
|
|
strh r0, [r4, #2]
|
|
strh r0, [r4]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02250A44
|
|
_0225099A:
|
|
ldrh r0, [r4]
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
ldrh r0, [r4]
|
|
cmp r0, #0xa
|
|
blo _02250A44
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02250A44
|
|
_022509AE:
|
|
ldr r3, _02250A5C ; =ov02_02253B30
|
|
add r2, sp, #0
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
ldrh r0, [r4, #2]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #2]
|
|
ldrh r1, [r4, #2]
|
|
cmp r1, #0xa
|
|
blo _022509CE
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02250A2C
|
|
_022509CE:
|
|
mov r0, #0xa
|
|
sub r0, r0, r1
|
|
bl _dflt
|
|
add r3, r1, #0
|
|
add r2, r0, #0
|
|
ldr r1, _02250A50 ; =0x40A00000
|
|
mov r0, #0
|
|
bl _dmul
|
|
ldr r3, _02250A54 ; =0x40240000
|
|
mov r2, #0
|
|
bl _ddiv
|
|
add r3, r1, #0
|
|
add r2, r0, #0
|
|
ldr r1, _02250A58 ; =0x40B00000
|
|
mov r0, #0
|
|
bl _dadd
|
|
bl _dfix
|
|
str r0, [sp]
|
|
ldrh r1, [r4, #2]
|
|
mov r0, #0xa
|
|
sub r0, r0, r1
|
|
bl _dflt
|
|
add r3, r1, #0
|
|
add r2, r0, #0
|
|
ldr r1, _02250A50 ; =0x40A00000
|
|
mov r0, #0
|
|
bl _dmul
|
|
ldr r3, _02250A54 ; =0x40240000
|
|
mov r2, #0
|
|
bl _ddiv
|
|
add r3, r1, #0
|
|
add r2, r0, #0
|
|
ldr r1, _02250A58 ; =0x40B00000
|
|
mov r0, #0
|
|
bl _dadd
|
|
bl _dfix
|
|
str r0, [sp, #4]
|
|
_02250A2C:
|
|
ldr r0, [r6, #0x3c]
|
|
bl ov01_021F771C
|
|
add r1, sp, #0
|
|
bl sub_02023E78
|
|
b _02250A44
|
|
_02250A3A:
|
|
bl FreeToHeap
|
|
add sp, #0x18
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_02250A44:
|
|
mov r0, #0
|
|
add sp, #0x18
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_02250A4C: .word ov02_02253B24
|
|
_02250A50: .word 0x40A00000
|
|
_02250A54: .word 0x40240000
|
|
_02250A58: .word 0x40B00000
|
|
_02250A5C: .word ov02_02253B30
|
|
thumb_func_end ov02_022508D8
|
|
|
|
thumb_func_start ov02_02250A60
|
|
ov02_02250A60: ; 0x02250A60
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x18
|
|
add r5, r0, #0
|
|
mov r0, #4
|
|
mov r1, #0x28
|
|
bl AllocFromHeapAtEnd
|
|
ldr r1, [r5, #4]
|
|
str r0, [r1, #0x24]
|
|
ldr r0, [r5, #4]
|
|
ldr r1, [r5, #0x24]
|
|
ldr r4, [r0, #0x24]
|
|
mov r0, #4
|
|
bl CreateCameraTranslationWrapper
|
|
str r0, [r4, #8]
|
|
ldr r0, _02250AC4 ; =gGameVersion
|
|
ldrb r0, [r0]
|
|
str r0, [r4, #0x24]
|
|
ldr r1, [r5, #0x24]
|
|
add r0, sp, #0xc
|
|
bl Camera_GetLookAtCamTarget
|
|
add r3, sp, #0xc
|
|
add r2, r4, #0
|
|
ldmia r3!, {r0, r1}
|
|
add r2, #0xc
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
ldr r1, [r5, #0x24]
|
|
add r0, sp, #0
|
|
bl Camera_GetLookAtCamPos
|
|
add r3, sp, #0
|
|
add r2, r4, #0
|
|
ldmia r3!, {r0, r1}
|
|
add r2, #0x18
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
ldr r0, [r5, #4]
|
|
ldr r0, [r0, #4]
|
|
str r0, [r4]
|
|
add r0, r4, #0
|
|
bl ov02_02250BB0
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_02250AC4: .word gGameVersion
|
|
thumb_func_end ov02_02250A60
|
|
|
|
thumb_func_start ov02_02250AC8
|
|
ov02_02250AC8: ; 0x02250AC8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x24]
|
|
ldr r0, [r0, #8]
|
|
bl DeleteCameraTranslationWrapper
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x24]
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
str r1, [r0, #0x24]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02250AC8
|
|
|
|
thumb_func_start ov02_02250AE8
|
|
ov02_02250AE8: ; 0x02250AE8
|
|
push {r3, lr}
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0x24]
|
|
ldr r0, [r0, #4]
|
|
bl ov01_021E687C
|
|
mov r1, #1
|
|
strb r1, [r0, #0x10]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02250AE8
|
|
|
|
thumb_func_start ov02_02250AFC
|
|
ov02_02250AFC: ; 0x02250AFC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #4]
|
|
add r4, r1, #0
|
|
ldr r0, [r0, #0x24]
|
|
ldr r0, [r0, #4]
|
|
bl ov01_021E687C
|
|
ldrb r1, [r0, #0x10]
|
|
cmp r1, #3
|
|
beq _02250B22
|
|
bl GF_AssertFail
|
|
ldr r0, [r5, #0x10]
|
|
ldr r1, _02250B2C ; =ov02_02250B58
|
|
mov r2, #0
|
|
bl TaskManager_Call
|
|
pop {r3, r4, r5, pc}
|
|
_02250B22:
|
|
strb r4, [r0, #0x11]
|
|
add r0, r5, #0
|
|
bl ov02_02250B44
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_02250B2C: .word ov02_02250B58
|
|
thumb_func_end ov02_02250AFC
|
|
|
|
thumb_func_start ov02_02250B30
|
|
ov02_02250B30: ; 0x02250B30
|
|
ldr r3, _02250B3C ; =TaskManager_Call
|
|
ldr r0, [r0, #0x10]
|
|
ldr r1, _02250B40 ; =ov02_02251320
|
|
mov r2, #0
|
|
bx r3
|
|
nop
|
|
_02250B3C: .word TaskManager_Call
|
|
_02250B40: .word ov02_02251320
|
|
thumb_func_end ov02_02250B30
|
|
|
|
thumb_func_start ov02_02250B44
|
|
ov02_02250B44: ; 0x02250B44
|
|
push {r3, lr}
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0x24]
|
|
ldr r0, [r0, #4]
|
|
bl ov01_021E687C
|
|
mov r1, #4
|
|
strb r1, [r0, #0x10]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02250B44
|
|
|
|
thumb_func_start ov02_02250B58
|
|
ov02_02250B58: ; 0x02250B58
|
|
push {r4, lr}
|
|
bl TaskManager_GetFieldSystem
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x24]
|
|
ldr r0, [r0, #4]
|
|
bl ov01_021E687C
|
|
ldrb r0, [r0, #0x10]
|
|
cmp r0, #3
|
|
bne _02250B7A
|
|
add r0, r4, #0
|
|
bl ov02_02250B44
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02250B7A:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02250B58
|
|
|
|
thumb_func_start ov02_02250B80
|
|
ov02_02250B80: ; 0x02250B80
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #4
|
|
mov r1, #0xd8
|
|
bl AllocFromHeapAtEnd
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
add r0, #0xd4
|
|
str r1, [r0]
|
|
mov r0, #4
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
bl ov02_022511AC
|
|
ldr r0, [r5, #0x10]
|
|
ldr r1, _02250BAC ; =ov02_022512AC
|
|
add r2, r4, #0
|
|
bl TaskManager_Call
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_02250BAC: .word ov02_022512AC
|
|
thumb_func_end ov02_02250B80
|
|
|
|
thumb_func_start ov02_02250BB0
|
|
ov02_02250BB0: ; 0x02250BB0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
ldr r1, _02250BC0 ; =ov02_02253B4C
|
|
bl ov01_021E67BC
|
|
str r0, [r4, #4]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_02250BC0: .word ov02_02253B4C
|
|
thumb_func_end ov02_02250BB0
|
|
|
|
thumb_func_start ov02_02250BC4
|
|
ov02_02250BC4: ; 0x02250BC4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x20
|
|
add r0, r1, #0
|
|
ldr r0, [r0, #4]
|
|
add r5, r2, #0
|
|
ldr r0, [r0, #0x24]
|
|
str r1, [sp, #8]
|
|
ldr r0, [r0, #0x24]
|
|
mov r1, #4
|
|
strh r0, [r5, #0x12]
|
|
add r0, r5, #0
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
add r0, r5, #0
|
|
add r0, #0x14
|
|
mov r1, #0xae
|
|
mov r2, #0x12
|
|
mov r3, #4
|
|
bl ov01_021FBCD8
|
|
add r0, r5, #0
|
|
add r0, #0x24
|
|
mov r1, #0xae
|
|
mov r2, #0x19
|
|
mov r3, #4
|
|
bl ov01_021FBCD8
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
mov r1, #0xae
|
|
mov r2, #0x20
|
|
mov r3, #4
|
|
bl ov01_021FBCD8
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r0, #0x44
|
|
add r1, #0x14
|
|
mov r2, #0xae
|
|
mov r3, #0x13
|
|
str r5, [sp, #4]
|
|
bl ov01_021FBE44
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r0, #0x58
|
|
add r1, #0x14
|
|
mov r2, #0xae
|
|
mov r3, #0x14
|
|
str r5, [sp, #4]
|
|
bl ov01_021FBE44
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r0, #0x6c
|
|
add r1, #0x14
|
|
mov r2, #0xae
|
|
mov r3, #0x15
|
|
str r5, [sp, #4]
|
|
bl ov01_021FBE44
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r0, #0x80
|
|
add r1, #0x24
|
|
mov r2, #0xae
|
|
mov r3, #0x1a
|
|
str r5, [sp, #4]
|
|
bl ov01_021FBE44
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r0, #0x94
|
|
add r1, #0x24
|
|
mov r2, #0xae
|
|
mov r3, #0x1b
|
|
str r5, [sp, #4]
|
|
bl ov01_021FBE44
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r0, #0xa8
|
|
add r1, #0x34
|
|
mov r2, #0xae
|
|
mov r3, #0x21
|
|
str r5, [sp, #4]
|
|
bl ov01_021FBE44
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r0, #0xbc
|
|
add r1, #0x14
|
|
bl ov01_021FBF2C
|
|
mov r0, #0x4d
|
|
lsl r0, r0, #2
|
|
add r1, r5, #0
|
|
add r0, r5, r0
|
|
add r1, #0x24
|
|
bl ov01_021FBF2C
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r0, #0xbc
|
|
add r1, #0x44
|
|
bl ov01_021FBF50
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r0, #0xbc
|
|
add r1, #0x58
|
|
bl ov01_021FBF50
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r0, #0xbc
|
|
add r1, #0x6c
|
|
bl ov01_021FBF50
|
|
mov r0, #0x4d
|
|
lsl r0, r0, #2
|
|
add r1, r5, #0
|
|
add r0, r5, r0
|
|
add r1, #0x80
|
|
bl ov01_021FBF50
|
|
mov r0, #0x4d
|
|
lsl r0, r0, #2
|
|
add r1, r5, #0
|
|
add r0, r5, r0
|
|
add r1, #0x94
|
|
bl ov01_021FBF50
|
|
add r0, r5, #0
|
|
add r0, #0xbc
|
|
mov r1, #0
|
|
bl ov01_021FC004
|
|
mov r0, #0x4d
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
mov r1, #0
|
|
bl ov01_021FC004
|
|
mov r0, #0x6b
|
|
lsl r0, r0, #2
|
|
add r4, r5, r0
|
|
add r0, r5, #0
|
|
str r0, [sp, #0xc]
|
|
add r0, #0x34
|
|
str r0, [sp, #0xc]
|
|
add r0, r5, #0
|
|
str r0, [sp, #0x10]
|
|
add r0, #0xa8
|
|
mov r6, #0
|
|
str r0, [sp, #0x10]
|
|
_02250D16:
|
|
mov r0, #0x78
|
|
add r7, r6, #0
|
|
mul r7, r0
|
|
ldr r1, [sp, #0xc]
|
|
add r0, r4, r7
|
|
bl ov01_021FBF2C
|
|
ldr r1, [sp, #0x10]
|
|
add r0, r4, r7
|
|
bl ov01_021FBF50
|
|
add r0, r4, r7
|
|
mov r1, #0
|
|
bl ov01_021FC004
|
|
add r0, r6, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
cmp r6, #4
|
|
blo _02250D16
|
|
add r0, r5, #0
|
|
add r0, #0x44
|
|
mov r1, #3
|
|
mov r2, #0
|
|
bl ov02_022510D4
|
|
add r0, r5, #0
|
|
add r0, #0x80
|
|
mov r1, #2
|
|
mov r2, #0
|
|
bl ov02_022510D4
|
|
add r0, r5, #0
|
|
add r0, #0xa8
|
|
mov r1, #1
|
|
mov r2, #0
|
|
bl ov02_022510D4
|
|
ldr r0, [sp, #8]
|
|
ldr r0, [r0, #0x40]
|
|
bl PlayerAvatar_GetMapObject
|
|
add r1, sp, #0x14
|
|
bl MapObject_GetPositionVec
|
|
add r0, r5, #0
|
|
ldr r1, [sp, #0x14]
|
|
ldr r2, [sp, #0x18]
|
|
ldr r3, [sp, #0x1c]
|
|
add r0, #0xbc
|
|
bl ov01_021FC00C
|
|
mov r0, #0x4d
|
|
lsl r0, r0, #2
|
|
ldr r1, [sp, #0x14]
|
|
ldr r2, [sp, #0x18]
|
|
ldr r3, [sp, #0x1c]
|
|
add r0, r5, r0
|
|
bl ov01_021FC00C
|
|
ldrh r0, [r5, #0x12]
|
|
cmp r0, #8
|
|
bne _02250E04
|
|
mov r2, #2
|
|
ldr r1, [sp, #0x14]
|
|
lsl r2, r2, #0x12
|
|
add r1, r1, r2
|
|
mov r0, #0x6b
|
|
lsl r0, r0, #2
|
|
ldr r3, [sp, #0x18]
|
|
lsr r2, r2, #2
|
|
add r2, r3, r2
|
|
mov r3, #0x2d
|
|
ldr r4, [sp, #0x1c]
|
|
lsl r3, r3, #0xe
|
|
add r0, r5, r0
|
|
sub r3, r4, r3
|
|
bl ov01_021FC00C
|
|
mov r2, #2
|
|
mov r0, #0x89
|
|
lsl r0, r0, #2
|
|
ldr r1, [sp, #0x14]
|
|
lsl r2, r2, #0x12
|
|
sub r1, r1, r2
|
|
ldr r3, [sp, #0x18]
|
|
lsr r2, r2, #2
|
|
add r2, r3, r2
|
|
mov r3, #0x2d
|
|
ldr r4, [sp, #0x1c]
|
|
lsl r3, r3, #0xe
|
|
add r0, r5, r0
|
|
sub r3, r4, r3
|
|
bl ov01_021FC00C
|
|
mov r1, #0
|
|
mov r0, #0xa7
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl ov01_021FC00C
|
|
mov r1, #0
|
|
mov r0, #0xc5
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl ov01_021FC00C
|
|
ldr r0, _02250EA4 ; =0x00000131
|
|
ldr r1, _02250EA8 ; =0x000004AC
|
|
ldr r2, _02250EAC ; =ov02_02253C20
|
|
str r0, [r5, r1]
|
|
add r0, r1, #4
|
|
str r2, [r5, r0]
|
|
ldr r0, _02250EB0 ; =ov02_02253B94
|
|
b _02250E98
|
|
_02250E04:
|
|
mov r1, #0x32
|
|
ldr r2, [sp, #0x14]
|
|
lsl r1, r1, #0xe
|
|
add r1, r2, r1
|
|
mov r2, #0x49
|
|
mov r0, #0x6b
|
|
lsl r0, r0, #2
|
|
ldr r3, [sp, #0x18]
|
|
lsl r2, r2, #0xc
|
|
sub r2, r3, r2
|
|
mov r3, #9
|
|
ldr r4, [sp, #0x1c]
|
|
lsl r3, r3, #0x10
|
|
add r0, r5, r0
|
|
add r3, r4, r3
|
|
bl ov01_021FC00C
|
|
mov r1, #0xc6
|
|
mov r0, #0x89
|
|
lsl r0, r0, #2
|
|
ldr r2, [sp, #0x14]
|
|
lsl r1, r1, #0xc
|
|
sub r1, r2, r1
|
|
mov r2, #0x49
|
|
ldr r3, [sp, #0x18]
|
|
lsl r2, r2, #0xc
|
|
sub r2, r3, r2
|
|
mov r3, #9
|
|
ldr r4, [sp, #0x1c]
|
|
lsl r3, r3, #0x10
|
|
add r0, r5, r0
|
|
add r3, r4, r3
|
|
bl ov01_021FC00C
|
|
mov r1, #0x32
|
|
mov r0, #0xa7
|
|
lsl r0, r0, #2
|
|
ldr r2, [sp, #0x14]
|
|
lsl r1, r1, #0xe
|
|
add r1, r2, r1
|
|
mov r2, #0x49
|
|
ldr r3, [sp, #0x18]
|
|
lsl r2, r2, #0xc
|
|
sub r2, r3, r2
|
|
ldr r4, [sp, #0x1c]
|
|
ldr r3, _02250EB4 ; =0x0010E000
|
|
add r0, r5, r0
|
|
sub r3, r4, r3
|
|
bl ov01_021FC00C
|
|
mov r1, #0xc6
|
|
mov r0, #0xc5
|
|
lsl r0, r0, #2
|
|
ldr r2, [sp, #0x14]
|
|
lsl r1, r1, #0xc
|
|
sub r1, r2, r1
|
|
mov r2, #0x49
|
|
ldr r3, [sp, #0x18]
|
|
lsl r2, r2, #0xc
|
|
sub r2, r3, r2
|
|
ldr r4, [sp, #0x1c]
|
|
ldr r3, _02250EB4 ; =0x0010E000
|
|
add r0, r5, r0
|
|
sub r3, r4, r3
|
|
bl ov01_021FC00C
|
|
mov r0, #0x13
|
|
ldr r1, _02250EA8 ; =0x000004AC
|
|
lsl r0, r0, #4
|
|
str r0, [r5, r1]
|
|
ldr r2, _02250EB8 ; =ov02_02253BD0
|
|
add r0, r1, #4
|
|
str r2, [r5, r0]
|
|
ldr r0, _02250EBC ; =ov02_02253B64
|
|
_02250E98:
|
|
add r1, #8
|
|
str r0, [r5, r1]
|
|
mov r0, #0
|
|
strb r0, [r5, #0x10]
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_02250EA4: .word 0x00000131
|
|
_02250EA8: .word 0x000004AC
|
|
_02250EAC: .word ov02_02253C20
|
|
_02250EB0: .word ov02_02253B94
|
|
_02250EB4: .word 0x0010E000
|
|
_02250EB8: .word ov02_02253BD0
|
|
_02250EBC: .word ov02_02253B64
|
|
thumb_func_end ov02_02250BC4
|
|
|
|
thumb_func_start ov02_02250EC0
|
|
ov02_02250EC0: ; 0x02250EC0
|
|
push {r4, lr}
|
|
add r4, r2, #0
|
|
add r0, r4, #0
|
|
add r0, #0x6c
|
|
add r1, r4, #0
|
|
bl ov01_021FBE80
|
|
add r0, r4, #0
|
|
add r0, #0x58
|
|
add r1, r4, #0
|
|
bl ov01_021FBE80
|
|
add r0, r4, #0
|
|
add r0, #0x44
|
|
add r1, r4, #0
|
|
bl ov01_021FBE80
|
|
add r0, r4, #0
|
|
add r0, #0x94
|
|
add r1, r4, #0
|
|
bl ov01_021FBE80
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
add r1, r4, #0
|
|
bl ov01_021FBE80
|
|
add r0, r4, #0
|
|
add r0, #0xa8
|
|
add r1, r4, #0
|
|
bl ov01_021FBE80
|
|
add r0, r4, #0
|
|
add r0, #0x14
|
|
bl ov01_021FBDA8
|
|
add r0, r4, #0
|
|
add r0, #0x24
|
|
bl ov01_021FBDA8
|
|
add r4, #0x34
|
|
add r0, r4, #0
|
|
bl ov01_021FBDA8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02250EC0
|
|
|
|
thumb_func_start ov02_02250F1C
|
|
ov02_02250F1C: ; 0x02250F1C
|
|
push {r4, lr}
|
|
add r4, r2, #0
|
|
ldrb r0, [r4, #0x10]
|
|
cmp r0, #5
|
|
bhi _02250FDC
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02250F32: ; jump table
|
|
.short _02250FDC - _02250F32 - 2 ; case 0
|
|
.short _02250F3E - _02250F32 - 2 ; case 1
|
|
.short _02250F4E - _02250F32 - 2 ; case 2
|
|
.short _02250F68 - _02250F32 - 2 ; case 3
|
|
.short _02250F74 - _02250F32 - 2 ; case 4
|
|
.short _02250FA4 - _02250F32 - 2 ; case 5
|
|
_02250F3E:
|
|
add r0, r4, #0
|
|
add r0, #0xbc
|
|
mov r1, #1
|
|
bl ov01_021FC004
|
|
mov r0, #2
|
|
strb r0, [r4, #0x10]
|
|
pop {r4, pc}
|
|
_02250F4E:
|
|
add r0, r4, #0
|
|
add r0, #0x44
|
|
mov r1, #3
|
|
bl ov02_022510FC
|
|
cmp r0, #0
|
|
beq _02250FDC
|
|
add r0, r4, #0
|
|
bl ov02_02251018
|
|
mov r0, #3
|
|
strb r0, [r4, #0x10]
|
|
pop {r4, pc}
|
|
_02250F68:
|
|
add r4, #0x44
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl ov02_02251138
|
|
pop {r4, pc}
|
|
_02250F74:
|
|
add r0, r4, #0
|
|
add r0, #0xbc
|
|
mov r1, #0
|
|
bl ov01_021FC004
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov02_02251164
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
mov r1, #2
|
|
mov r2, #0
|
|
bl ov02_022510D4
|
|
add r0, r4, #0
|
|
add r0, #0xa8
|
|
mov r1, #1
|
|
mov r2, #0
|
|
bl ov02_022510D4
|
|
mov r0, #5
|
|
strb r0, [r4, #0x10]
|
|
pop {r4, pc}
|
|
_02250FA4:
|
|
add r0, r4, #0
|
|
add r0, #0x44
|
|
mov r1, #3
|
|
bl ov02_02251138
|
|
add r0, r4, #0
|
|
add r0, #0xa8
|
|
mov r1, #1
|
|
bl ov02_022510FC
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
mov r1, #2
|
|
bl ov02_022510FC
|
|
cmp r0, #0
|
|
beq _02250FDC
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov02_02251164
|
|
add r0, r4, #0
|
|
add r0, #0xbc
|
|
mov r1, #1
|
|
bl ov01_021FC004
|
|
mov r0, #3
|
|
strb r0, [r4, #0x10]
|
|
_02250FDC:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02250F1C
|
|
|
|
thumb_func_start ov02_02250FE0
|
|
ov02_02250FE0: ; 0x02250FE0
|
|
push {r4, r5, r6, lr}
|
|
add r4, r2, #0
|
|
add r0, r4, #0
|
|
add r0, #0xbc
|
|
bl ov01_021FBF68
|
|
mov r0, #0x4d
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ov01_021FBF68
|
|
mov r0, #0x6b
|
|
lsl r0, r0, #2
|
|
mov r5, #0
|
|
add r4, r4, r0
|
|
mov r6, #0x78
|
|
_02251000:
|
|
add r0, r5, #0
|
|
mul r0, r6
|
|
add r0, r4, r0
|
|
bl ov01_021FBF68
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
cmp r5, #4
|
|
blo _02251000
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02250FE0
|
|
|
|
thumb_func_start ov02_02251018
|
|
ov02_02251018: ; 0x02251018
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
add r1, r4, #0
|
|
add r0, #0xbc
|
|
add r1, #0x44
|
|
bl ov01_021FBF5C
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0xbc
|
|
add r1, #0x58
|
|
bl ov01_021FBF5C
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0xbc
|
|
add r1, #0x6c
|
|
bl ov01_021FBF5C
|
|
add r0, r4, #0
|
|
add r0, #0x6c
|
|
add r1, r4, #0
|
|
bl ov01_021FBE80
|
|
add r0, r4, #0
|
|
add r0, #0x58
|
|
add r1, r4, #0
|
|
bl ov01_021FBE80
|
|
add r0, r4, #0
|
|
add r0, #0x44
|
|
add r1, r4, #0
|
|
bl ov01_021FBE80
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x44
|
|
add r1, #0x14
|
|
mov r2, #0xae
|
|
mov r3, #0x16
|
|
str r4, [sp, #4]
|
|
bl ov01_021FBE44
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x58
|
|
add r1, #0x14
|
|
mov r2, #0xae
|
|
mov r3, #0x17
|
|
str r4, [sp, #4]
|
|
bl ov01_021FBE44
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x6c
|
|
add r1, #0x14
|
|
mov r2, #0xae
|
|
mov r3, #0x18
|
|
str r4, [sp, #4]
|
|
bl ov01_021FBE44
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0xbc
|
|
add r1, #0x44
|
|
bl ov01_021FBF50
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0xbc
|
|
add r1, #0x58
|
|
bl ov01_021FBF50
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0xbc
|
|
add r1, #0x6c
|
|
bl ov01_021FBF50
|
|
add r4, #0x44
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
mov r2, #0
|
|
bl ov02_022510D4
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
thumb_func_end ov02_02251018
|
|
|
|
thumb_func_start ov02_022510D4
|
|
ov02_022510D4: ; 0x022510D4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
add r6, r0, #0
|
|
add r7, r2, #0
|
|
mov r4, #0
|
|
cmp r5, #0
|
|
bls _022510F8
|
|
_022510E2:
|
|
mov r0, #0x14
|
|
mul r0, r4
|
|
add r0, r6, r0
|
|
add r1, r7, #0
|
|
bl ov01_021FBF20
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, r5
|
|
blo _022510E2
|
|
_022510F8:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_022510D4
|
|
|
|
thumb_func_start ov02_022510FC
|
|
ov02_022510FC: ; 0x022510FC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r5, #0
|
|
add r6, r1, #0
|
|
add r7, r0, #0
|
|
add r4, r5, #0
|
|
cmp r6, #0
|
|
bls _0225112C
|
|
_0225110A:
|
|
mov r0, #0x14
|
|
mul r0, r4
|
|
mov r1, #1
|
|
add r0, r7, r0
|
|
lsl r1, r1, #0xc
|
|
bl ov01_021FBEE4
|
|
cmp r0, #0
|
|
beq _02251122
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
_02251122:
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, r6
|
|
blo _0225110A
|
|
_0225112C:
|
|
cmp r5, r6
|
|
bne _02251134
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02251134:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_022510FC
|
|
|
|
thumb_func_start ov02_02251138
|
|
ov02_02251138: ; 0x02251138
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
ldr r4, _02251160 ; =0x00000000
|
|
beq _0225115C
|
|
mov r7, #0x14
|
|
_02251144:
|
|
add r0, r4, #0
|
|
mul r0, r7
|
|
mov r1, #1
|
|
add r0, r5, r0
|
|
lsl r1, r1, #0xc
|
|
bl ov01_021FBEAC
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, r6
|
|
blo _02251144
|
|
_0225115C:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02251160: .word 0x00000000
|
|
thumb_func_end ov02_02251138
|
|
|
|
thumb_func_start ov02_02251164
|
|
ov02_02251164: ; 0x02251164
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
ldrh r0, [r6, #0x12]
|
|
add r7, r1, #0
|
|
cmp r0, #8
|
|
bne _02251174
|
|
mov r5, #2
|
|
b _02251176
|
|
_02251174:
|
|
mov r5, #4
|
|
_02251176:
|
|
mov r0, #0x4d
|
|
lsl r0, r0, #2
|
|
add r0, r6, r0
|
|
add r1, r7, #0
|
|
bl ov01_021FC004
|
|
ldrb r0, [r6, #0x11]
|
|
cmp r0, #0
|
|
bne _022511AA
|
|
mov r4, #0
|
|
cmp r5, #0
|
|
bls _022511AA
|
|
mov r0, #0x6b
|
|
lsl r0, r0, #2
|
|
add r6, r6, r0
|
|
_02251194:
|
|
mov r0, #0x78
|
|
mul r0, r4
|
|
add r0, r6, r0
|
|
add r1, r7, #0
|
|
bl ov01_021FC004
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, r5
|
|
blo _02251194
|
|
_022511AA:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_02251164
|
|
|
|
thumb_func_start ov02_022511AC
|
|
ov02_022511AC: ; 0x022511AC
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x14
|
|
add r4, r2, #0
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
add r0, r4, #0
|
|
add r0, #0x10
|
|
mov r1, #0xae
|
|
mov r2, #0x1c
|
|
add r3, r5, #0
|
|
bl ov01_021FBCD8
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
str r5, [sp]
|
|
add r0, #0x20
|
|
add r1, #0x10
|
|
mov r2, #0xae
|
|
mov r3, #0x1d
|
|
str r4, [sp, #4]
|
|
bl ov01_021FBE44
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
str r5, [sp]
|
|
add r0, #0x34
|
|
add r1, #0x10
|
|
mov r2, #0xae
|
|
mov r3, #0x1e
|
|
str r4, [sp, #4]
|
|
bl ov01_021FBE44
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
str r5, [sp]
|
|
add r0, #0x48
|
|
add r1, #0x10
|
|
mov r2, #0xae
|
|
mov r3, #0x1f
|
|
str r4, [sp, #4]
|
|
bl ov01_021FBE44
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x5c
|
|
add r1, #0x10
|
|
bl ov01_021FBF2C
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x5c
|
|
add r1, #0x20
|
|
bl ov01_021FBF50
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x5c
|
|
add r1, #0x34
|
|
bl ov01_021FBF50
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x5c
|
|
add r1, #0x48
|
|
bl ov01_021FBF50
|
|
add r0, r4, #0
|
|
add r0, #0x20
|
|
mov r1, #3
|
|
mov r2, #0
|
|
bl ov02_022510D4
|
|
ldr r0, [r6, #0x40]
|
|
bl PlayerAvatar_GetMapObject
|
|
add r1, sp, #8
|
|
bl MapObject_GetPositionVec
|
|
mov r0, #0x19
|
|
ldr r1, [sp, #0xc]
|
|
lsl r0, r0, #0xe
|
|
add r2, r1, r0
|
|
ldr r1, [sp, #0x10]
|
|
ldr r0, _0225127C ; =0x0015E000
|
|
str r2, [sp, #0xc]
|
|
sub r3, r1, r0
|
|
add r0, r4, #0
|
|
ldr r1, [sp, #8]
|
|
add r0, #0x5c
|
|
str r3, [sp, #0x10]
|
|
bl ov01_021FC00C
|
|
add r4, #0x5c
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov01_021FC004
|
|
add sp, #0x14
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0225127C: .word 0x0015E000
|
|
thumb_func_end ov02_022511AC
|
|
|
|
thumb_func_start ov02_02251280
|
|
ov02_02251280: ; 0x02251280
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r1, r4, #0
|
|
add r0, #0x48
|
|
bl ov01_021FBE80
|
|
add r0, r4, #0
|
|
add r0, #0x34
|
|
add r1, r4, #0
|
|
bl ov01_021FBE80
|
|
add r0, r4, #0
|
|
add r0, #0x20
|
|
add r1, r4, #0
|
|
bl ov01_021FBE80
|
|
add r4, #0x10
|
|
add r0, r4, #0
|
|
bl ov01_021FBDA8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02251280
|
|
|
|
thumb_func_start ov02_022512AC
|
|
ov02_022512AC: ; 0x022512AC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl TaskManager_GetEnv
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
bl TaskManager_GetStatePtr
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
cmp r0, #0
|
|
beq _022512CA
|
|
cmp r0, #1
|
|
beq _02251306
|
|
b _02251316
|
|
_022512CA:
|
|
add r0, r4, #0
|
|
add r0, #0xd4
|
|
ldr r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0xd4
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0xd4
|
|
ldr r0, [r0]
|
|
cmp r0, #2
|
|
bne _022512E8
|
|
ldr r0, _0225131C ; =SEQ_SE_GS_RUGIA_MENOHIKARI
|
|
bl PlaySE
|
|
_022512E8:
|
|
add r0, r4, #0
|
|
add r0, #0x20
|
|
mov r1, #3
|
|
bl ov02_022510FC
|
|
cmp r0, #0
|
|
beq _022512FC
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
_022512FC:
|
|
add r4, #0x5c
|
|
add r0, r4, #0
|
|
bl ov01_021FBF68
|
|
b _02251316
|
|
_02251306:
|
|
add r0, r4, #0
|
|
bl ov02_02251280
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_02251316:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0225131C: .word SEQ_SE_GS_RUGIA_MENOHIKARI
|
|
thumb_func_end ov02_022512AC
|
|
|
|
thumb_func_start ov02_02251320
|
|
ov02_02251320: ; 0x02251320
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
bl TaskManager_GetStatePtr
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x24]
|
|
ldr r0, [r0, #4]
|
|
bl ov01_021E687C
|
|
add r5, r0, #0
|
|
ldr r0, [sp, #4]
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _02251352
|
|
cmp r0, #1
|
|
beq _022513AE
|
|
cmp r0, #2
|
|
beq _02251412
|
|
b _02251418
|
|
_02251352:
|
|
add r0, r4, #0
|
|
ldr r1, _02251420 ; =0x000004AC
|
|
add r0, #0xc0
|
|
ldr r0, [r0]
|
|
ldr r1, [r5, r1]
|
|
bl ov01_022040D0
|
|
add r7, r0, #0
|
|
mov r6, #0
|
|
_02251364:
|
|
ldr r0, [r4, #0x54]
|
|
add r1, r6, #0
|
|
str r0, [sp]
|
|
ldr r0, _02251420 ; =0x000004AC
|
|
mov r2, #1
|
|
ldr r0, [r5, r0]
|
|
add r3, r7, #0
|
|
bl ov01_021E8970
|
|
add r0, r6, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
cmp r6, #2
|
|
blo _02251364
|
|
mov r6, #0
|
|
_02251382:
|
|
ldr r0, _02251420 ; =0x000004AC
|
|
ldr r2, [r4, #0x54]
|
|
ldr r0, [r5, r0]
|
|
add r1, r6, #0
|
|
bl ov01_021E8B04
|
|
add r7, r0, #0
|
|
mov r1, #1
|
|
bl ov01_021E8B84
|
|
add r0, r7, #0
|
|
bl ov01_021E8B6C
|
|
add r0, r6, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
cmp r6, #2
|
|
blo _02251382
|
|
ldr r0, [sp, #4]
|
|
mov r1, #1
|
|
str r1, [r0]
|
|
b _02251418
|
|
_022513AE:
|
|
add r0, r4, #0
|
|
ldr r1, _02251420 ; =0x000004AC
|
|
add r0, #0xc0
|
|
ldr r0, [r0]
|
|
ldr r1, [r5, r1]
|
|
bl ov01_022040D0
|
|
add r7, r0, #0
|
|
ldr r0, _02251420 ; =0x000004AC
|
|
ldr r2, [r4, #0x54]
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl ov01_021E8B04
|
|
bl ov01_021E8B90
|
|
cmp r0, #0
|
|
beq _02251418
|
|
mov r6, #0
|
|
_022513D4:
|
|
ldr r2, _02251420 ; =0x000004AC
|
|
ldr r0, [r4, #0x54]
|
|
ldr r2, [r5, r2]
|
|
add r1, r7, #0
|
|
add r3, r6, #0
|
|
bl ov01_021E8A8C
|
|
add r0, r6, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
cmp r6, #2
|
|
blo _022513D4
|
|
mov r6, #0
|
|
_022513EE:
|
|
ldr r0, [r4, #0x54]
|
|
add r1, r6, #2
|
|
str r0, [sp]
|
|
ldr r0, _02251420 ; =0x000004AC
|
|
mov r2, #1
|
|
ldr r0, [r5, r0]
|
|
add r3, r7, #0
|
|
bl ov01_021E8970
|
|
add r0, r6, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
cmp r6, #2
|
|
blo _022513EE
|
|
ldr r0, [sp, #4]
|
|
mov r1, #2
|
|
str r1, [r0]
|
|
b _02251418
|
|
_02251412:
|
|
add sp, #8
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02251418:
|
|
mov r0, #0
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02251420: .word 0x000004AC
|
|
thumb_func_end ov02_02251320
|
|
|
|
thumb_func_start ov02_02251424
|
|
ov02_02251424: ; 0x02251424
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #4]
|
|
add r7, r1, #0
|
|
ldr r6, [r0, #0x24]
|
|
ldr r0, [r6, #4]
|
|
bl ov01_021E687C
|
|
add r4, r0, #0
|
|
cmp r7, #3
|
|
blo _02251440
|
|
bl GF_AssertFail
|
|
_02251440:
|
|
add r0, r6, #0
|
|
ldr r1, [r5, #0x24]
|
|
add r0, #0xc
|
|
bl Camera_SetLookAtCamTarget
|
|
add r6, #0x18
|
|
ldr r1, [r5, #0x24]
|
|
add r0, r6, #0
|
|
bl Camera_SetLookAtCamPos
|
|
mov r0, #0x14
|
|
add r6, r7, #0
|
|
mul r6, r0
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r5, #0x24]
|
|
ldr r0, [r0, r6]
|
|
bl Camera_SetDistance
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r5, #0x24]
|
|
add r0, r0, r6
|
|
add r0, r0, #4
|
|
bl Camera_SetAnglePos
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r5, #0x24]
|
|
add r0, r0, r6
|
|
ldrh r0, [r0, #0xe]
|
|
bl Camera_SetPerspectiveAngle
|
|
ldr r0, _022514C0 ; =0x000004B4
|
|
ldr r1, [r4, r0]
|
|
mov r0, #0xc
|
|
mul r0, r7
|
|
add r0, r1, r0
|
|
ldr r1, [r5, #0x24]
|
|
bl Camera_OffsetLookAtPosAndTarget
|
|
mov r0, #0x96
|
|
ldr r1, _022514C4 ; =0x006A4000
|
|
ldr r2, [r5, #0x24]
|
|
lsl r0, r0, #0xc
|
|
bl Camera_SetPerspectiveClippingPlane
|
|
ldr r1, [r5, #0x24]
|
|
add r0, sp, #8
|
|
bl Camera_GetLookAtCamTarget
|
|
ldr r0, [r5, #0x24]
|
|
bl Camera_GetCurrentTarget
|
|
ldr r1, [r5, #0x24]
|
|
add r0, sp, #0
|
|
bl Camera_GetAngle
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_022514C0: .word 0x000004B4
|
|
_022514C4: .word 0x006A4000
|
|
thumb_func_end ov02_02251424
|
|
|
|
thumb_func_start ov02_022514C8
|
|
ov02_022514C8: ; 0x022514C8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
ldr r0, [r0, #4]
|
|
add r4, r1, #0
|
|
ldr r0, [r0, #0x24]
|
|
str r0, [sp]
|
|
ldr r0, [r0, #4]
|
|
bl ov01_021E687C
|
|
add r6, r0, #0
|
|
cmp r4, #0
|
|
bne _022514E4
|
|
mov r1, #0
|
|
b _022514E6
|
|
_022514E4:
|
|
mov r1, #3
|
|
_022514E6:
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #4
|
|
mov r5, #0x14
|
|
add r3, r1, #0
|
|
ldr r0, [r6, r0]
|
|
mul r3, r5
|
|
add r0, r0, r3
|
|
ldrh r0, [r0, #4]
|
|
add r2, sp, #4
|
|
add r7, sp, #8
|
|
strh r0, [r2]
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #4
|
|
ldr r0, [r6, r0]
|
|
add r0, r0, r3
|
|
ldrh r0, [r0, #0xe]
|
|
strh r0, [r2, #2]
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #4
|
|
add r0, r0, #4
|
|
mov r2, #0xc
|
|
ldr r0, [r6, r0]
|
|
mul r2, r1
|
|
add r2, r0, r2
|
|
ldmia r2!, {r0, r1}
|
|
stmia r7!, {r0, r1}
|
|
ldr r0, [r2]
|
|
str r0, [r7]
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #4
|
|
ldr r0, [r6, r0]
|
|
ldr r0, [r0, r3]
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp]
|
|
ldr r0, [r0, #0x24]
|
|
cmp r0, #7
|
|
bne _02251538
|
|
cmp r4, #0
|
|
bne _02251542
|
|
mov r5, #0xc8
|
|
b _02251542
|
|
_02251538:
|
|
cmp r4, #0
|
|
bne _02251540
|
|
mov r5, #0xa0
|
|
b _02251542
|
|
_02251540:
|
|
mov r5, #0xc8
|
|
_02251542:
|
|
ldr r0, [sp]
|
|
add r1, sp, #4
|
|
ldr r0, [r0, #8]
|
|
add r2, r5, #0
|
|
bl SetCameraTranslationPath
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_022514C8
|
|
|
|
thumb_func_start ov02_02251554
|
|
ov02_02251554: ; 0x02251554
|
|
ldr r3, _02251560 ; =TaskManager_Call
|
|
ldr r0, [r0, #0x10]
|
|
ldr r1, _02251564 ; =ov02_02251568
|
|
mov r2, #0
|
|
bx r3
|
|
nop
|
|
_02251560: .word TaskManager_Call
|
|
_02251564: .word ov02_02251568
|
|
thumb_func_end ov02_02251554
|
|
|
|
thumb_func_start ov02_02251568
|
|
ov02_02251568: ; 0x02251568
|
|
push {r3, r4, lr}
|
|
sub sp, #0x14
|
|
bl TaskManager_GetFieldSystem
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x24]
|
|
ldr r0, [r0, #8]
|
|
bl IsCameraTranslationFinished
|
|
cmp r0, #0
|
|
beq _0225159C
|
|
ldr r1, [r4, #0x24]
|
|
add r0, sp, #8
|
|
bl Camera_GetLookAtCamTarget
|
|
ldr r0, [r4, #0x24]
|
|
bl Camera_GetCurrentTarget
|
|
ldr r1, [r4, #0x24]
|
|
add r0, sp, #0
|
|
bl Camera_GetAngle
|
|
add sp, #0x14
|
|
mov r0, #1
|
|
pop {r3, r4, pc}
|
|
_0225159C:
|
|
mov r0, #0
|
|
add sp, #0x14
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02251568
|
|
|
|
thumb_func_start ov02_022515A4
|
|
ov02_022515A4: ; 0x022515A4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #4
|
|
mov r1, #0xe4
|
|
bl AllocFromHeapAtEnd
|
|
add r2, r0, #0
|
|
ldr r0, _022515C8 ; =gGameVersion
|
|
ldrb r1, [r0]
|
|
add r0, r2, #0
|
|
add r0, #0xe0
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #0x10]
|
|
ldr r1, _022515CC ; =ov02_022515D0
|
|
bl TaskManager_Call
|
|
pop {r4, pc}
|
|
nop
|
|
_022515C8: .word gGameVersion
|
|
_022515CC: .word ov02_022515D0
|
|
thumb_func_end ov02_022515A4
|
|
|
|
thumb_func_start ov02_022515D0
|
|
ov02_022515D0: ; 0x022515D0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x38
|
|
add r5, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
bl TaskManager_GetEnv
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
bl TaskManager_GetStatePtr
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0xe0
|
|
ldrh r0, [r0]
|
|
cmp r0, #8
|
|
bne _02251604
|
|
mov r0, #SPECIES_LUGIA
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0x12
|
|
mov r1, #5
|
|
str r0, [sp, #0xc]
|
|
ldr r7, _022518D8 ; =SEQ_SE_GS_RUGIA_HABATAKI
|
|
b _02251610
|
|
_02251604:
|
|
mov r0, #SPECIES_HO_OH
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0
|
|
ldr r7, _022518DC ; =SEQ_SE_GS_HOUOU_HABATAKI
|
|
mov r1, #5
|
|
str r0, [sp, #0xc]
|
|
_02251610:
|
|
ldr r0, [sp, #8]
|
|
ldr r0, [r0, #0x3c]
|
|
bl GetMapObjectByID
|
|
add r6, r0, #0
|
|
bne _02251620
|
|
bl GF_AssertFail
|
|
_02251620:
|
|
ldr r0, [r5]
|
|
cmp r0, #7
|
|
bls _02251628
|
|
b _022518D0
|
|
_02251628:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02251634: ; jump table
|
|
.short _02251644 - _02251634 - 2 ; case 0
|
|
.short _02251740 - _02251634 - 2 ; case 1
|
|
.short _0225178A - _02251634 - 2 ; case 2
|
|
.short _022517FE - _02251634 - 2 ; case 3
|
|
.short _0225181E - _02251634 - 2 ; case 4
|
|
.short _0225184E - _02251634 - 2 ; case 5
|
|
.short _02251884 - _02251634 - 2 ; case 6
|
|
.short _02251898 - _02251634 - 2 ; case 7
|
|
_02251644:
|
|
add r0, r4, #0
|
|
add r0, #0xc
|
|
mov r1, #4
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
add r0, r4, #0
|
|
add r0, #0x1c
|
|
mov r1, #0xae
|
|
mov r2, #0x22
|
|
mov r3, #4
|
|
bl ov01_021FBCD8
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r0, #0xc
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x2c
|
|
add r1, #0x1c
|
|
mov r2, #0xae
|
|
mov r3, #0x23
|
|
bl ov01_021FBE44
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r0, #0xc
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x40
|
|
add r1, #0x1c
|
|
mov r2, #0xae
|
|
mov r3, #0x24
|
|
bl ov01_021FBE44
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r0, #0xc
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x54
|
|
add r1, #0x1c
|
|
mov r2, #0xae
|
|
mov r3, #0x25
|
|
bl ov01_021FBE44
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x68
|
|
add r1, #0x1c
|
|
bl ov01_021FBF2C
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x68
|
|
add r1, #0x2c
|
|
bl ov01_021FBF50
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x68
|
|
add r1, #0x40
|
|
bl ov01_021FBF50
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x68
|
|
add r1, #0x54
|
|
bl ov01_021FBF50
|
|
add r0, r4, #0
|
|
add r0, #0x68
|
|
mov r1, #0
|
|
bl ov01_021FC004
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
mov r1, #3
|
|
mov r2, #0
|
|
bl ov02_022510D4
|
|
ldr r0, [sp, #8]
|
|
ldr r0, [r0, #0x40]
|
|
bl PlayerAvatar_GetMapObject
|
|
add r1, sp, #0x2c
|
|
bl MapObject_GetPositionVec
|
|
add r0, r4, #0
|
|
add r0, #0xe0
|
|
ldrh r0, [r0]
|
|
cmp r0, #7
|
|
bne _02251720
|
|
mov r0, #0xa
|
|
ldr r1, [sp, #0x30]
|
|
lsl r0, r0, #0xe
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x30]
|
|
mov r0, #1
|
|
ldr r1, [sp, #0x34]
|
|
lsl r0, r0, #0x10
|
|
sub r0, r1, r0
|
|
str r0, [sp, #0x34]
|
|
b _0225172A
|
|
_02251720:
|
|
mov r0, #0x46
|
|
ldr r1, [sp, #0x34]
|
|
lsl r0, r0, #0xe
|
|
sub r0, r1, r0
|
|
str r0, [sp, #0x34]
|
|
_0225172A:
|
|
add r4, #0x68
|
|
ldr r1, [sp, #0x2c]
|
|
ldr r2, [sp, #0x30]
|
|
ldr r3, [sp, #0x34]
|
|
add r0, r4, #0
|
|
bl ov01_021FC00C
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _022518D0
|
|
_02251740:
|
|
add r0, r6, #0
|
|
add r1, sp, #0x20
|
|
bl MapObject_GetPositionVec
|
|
ldr r0, [sp, #0x24]
|
|
str r0, [r4, #4]
|
|
add r0, r4, #0
|
|
add r0, #0xe0
|
|
ldrh r0, [r0]
|
|
cmp r0, #7
|
|
bne _0225175C
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #0xe
|
|
b _02251760
|
|
_0225175C:
|
|
mov r0, #0xa
|
|
lsl r0, r0, #0x10
|
|
_02251760:
|
|
str r0, [r4]
|
|
ldr r1, [sp, #0x24]
|
|
ldr r0, [r4]
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x24]
|
|
add r0, r6, #0
|
|
add r1, sp, #0x20
|
|
bl MapObject_SetPositionVec
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
bl MapObject_SetVisible
|
|
mov r0, #0
|
|
strh r0, [r4, #8]
|
|
add r4, #0xe2
|
|
strh r0, [r4]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _022518D0
|
|
_0225178A:
|
|
ldrh r0, [r4, #8]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #8]
|
|
ldrh r1, [r4, #8]
|
|
ldr r0, [sp, #0xc]
|
|
cmp r1, r0
|
|
blt _022517C0
|
|
add r0, r4, #0
|
|
add r0, #0xe2
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
bne _022517B2
|
|
lsl r0, r7, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
mov r1, #0x18
|
|
add r0, #0xe2
|
|
strh r1, [r0]
|
|
_022517B2:
|
|
add r0, r4, #0
|
|
add r0, #0xe2
|
|
ldrh r0, [r0]
|
|
sub r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0xe2
|
|
strh r1, [r0]
|
|
_022517C0:
|
|
add r0, r6, #0
|
|
add r1, sp, #0x14
|
|
mov r7, #0
|
|
bl MapObject_GetPositionVec
|
|
mov r0, #1
|
|
ldr r1, [r4]
|
|
lsl r0, r0, #0xc
|
|
sub r0, r1, r0
|
|
str r0, [r4]
|
|
cmp r0, #0
|
|
bgt _022517DE
|
|
add r0, r7, #0
|
|
str r0, [r4]
|
|
mov r7, #1
|
|
_022517DE:
|
|
ldr r1, [r4, #4]
|
|
ldr r0, [r4]
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x18]
|
|
add r0, r6, #0
|
|
add r1, sp, #0x14
|
|
bl MapObject_SetPositionVec
|
|
cmp r7, #0
|
|
beq _022518D0
|
|
mov r0, #0
|
|
strh r0, [r4, #8]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _022518D0
|
|
_022517FE:
|
|
ldrh r0, [r4, #8]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #8]
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #0x3c
|
|
blo _022518D0
|
|
add r0, r6, #0
|
|
mov r1, #1
|
|
bl sub_0205F328
|
|
mov r0, #0
|
|
strh r0, [r4, #8]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _022518D0
|
|
_0225181E:
|
|
ldrh r0, [r4, #8]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #8]
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #0x32
|
|
blo _022518D0
|
|
add r0, r4, #0
|
|
add r0, #0x68
|
|
mov r1, #1
|
|
bl ov01_021FC004
|
|
ldr r0, [sp, #0x10]
|
|
mov r1, #0
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl PlayCry
|
|
mov r0, #0
|
|
strh r0, [r4, #0xa]
|
|
strh r0, [r4, #8]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _022518D0
|
|
_0225184E:
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
mov r1, #3
|
|
bl ov02_022510FC
|
|
ldrh r1, [r4, #0xa]
|
|
add r1, r1, #1
|
|
strh r1, [r4, #0xa]
|
|
cmp r0, #0
|
|
beq _0225187A
|
|
ldrh r0, [r4, #0xa]
|
|
cmp r0, #0x41
|
|
blo _0225187A
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
bl sub_0205F328
|
|
mov r0, #0
|
|
strh r0, [r4, #8]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
_0225187A:
|
|
add r4, #0x68
|
|
add r0, r4, #0
|
|
bl ov01_021FBF68
|
|
b _022518D0
|
|
_02251884:
|
|
ldrh r0, [r4, #8]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #8]
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #0x1e
|
|
blo _022518D0
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _022518D0
|
|
_02251898:
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x54
|
|
add r1, #0xc
|
|
bl ov01_021FBE80
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x40
|
|
add r1, #0xc
|
|
bl ov01_021FBE80
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x2c
|
|
add r1, #0xc
|
|
bl ov01_021FBE80
|
|
add r0, r4, #0
|
|
add r0, #0x1c
|
|
bl ov01_021FBDA8
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add sp, #0x38
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022518D0:
|
|
mov r0, #0
|
|
add sp, #0x38
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_022518D8: .word SEQ_SE_GS_RUGIA_HABATAKI
|
|
_022518DC: .word SEQ_SE_GS_HOUOU_HABATAKI
|
|
thumb_func_end ov02_022515D0
|
|
|
|
thumb_func_start ov02_022518E0
|
|
ov02_022518E0: ; 0x022518E0
|
|
push {r3, lr}
|
|
ldr r1, [r0, #4]
|
|
ldr r1, [r1, #0x24]
|
|
ldr r1, [r1, #0x24]
|
|
cmp r1, #8
|
|
bne _022518F2
|
|
bl ov02_022518F8
|
|
pop {r3, pc}
|
|
_022518F2:
|
|
bl ov02_022519B0
|
|
pop {r3, pc}
|
|
thumb_func_end ov02_022518E0
|
|
|
|
thumb_func_start ov02_022518F8
|
|
ov02_022518F8: ; 0x022518F8
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x14
|
|
add r6, r0, #0
|
|
ldr r0, [r6, #4]
|
|
ldr r0, [r0, #0x24]
|
|
ldr r0, [r0, #4]
|
|
bl ov01_021E687C
|
|
mov r4, #0xe3
|
|
add r5, r0, #0
|
|
lsl r4, r4, #2
|
|
add r0, r5, r4
|
|
mov r1, #0xae
|
|
mov r2, #0x26
|
|
mov r3, #4
|
|
bl ov01_021FBCD8
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
add r0, r5, r4
|
|
add r0, #0x10
|
|
add r1, r5, r4
|
|
mov r2, #0xae
|
|
mov r3, #0x27
|
|
str r5, [sp, #4]
|
|
bl ov01_021FBE44
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
add r0, r5, r4
|
|
add r0, #0x24
|
|
add r1, r5, r4
|
|
mov r2, #0xae
|
|
mov r3, #0x28
|
|
str r5, [sp, #4]
|
|
bl ov01_021FBE44
|
|
add r0, r5, r4
|
|
add r0, #0x38
|
|
add r1, r5, r4
|
|
bl ov01_021FBF2C
|
|
add r0, r5, r4
|
|
add r1, r5, r4
|
|
add r0, #0x38
|
|
add r1, #0x10
|
|
bl ov01_021FBF50
|
|
add r0, r5, r4
|
|
add r1, r5, r4
|
|
add r0, #0x38
|
|
add r1, #0x24
|
|
bl ov01_021FBF50
|
|
add r0, r5, r4
|
|
add r0, #0x38
|
|
mov r1, #1
|
|
bl ov01_021FC004
|
|
add r0, r5, r4
|
|
add r0, #0x10
|
|
mov r1, #2
|
|
mov r2, #0
|
|
bl ov02_022510D4
|
|
ldr r0, [r6, #0x40]
|
|
bl PlayerAvatar_GetMapObject
|
|
add r1, sp, #8
|
|
bl MapObject_GetPositionVec
|
|
add r0, r5, r4
|
|
ldr r1, [sp, #8]
|
|
ldr r2, [sp, #0xc]
|
|
ldr r3, [sp, #0x10]
|
|
add r0, #0x38
|
|
bl ov01_021FC00C
|
|
ldr r0, _022519A8 ; =ov02_02251BA8
|
|
add r1, r5, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
ldr r1, _022519AC ; =0x000004A8
|
|
str r0, [r5, r1]
|
|
add sp, #0x14
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_022519A8: .word ov02_02251BA8
|
|
_022519AC: .word 0x000004A8
|
|
thumb_func_end ov02_022518F8
|
|
|
|
thumb_func_start ov02_022519B0
|
|
ov02_022519B0: ; 0x022519B0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x24]
|
|
ldr r0, [r0, #4]
|
|
bl ov01_021E687C
|
|
ldr r1, _02251AFC ; =0x0000043C
|
|
str r0, [sp, #0x10]
|
|
add r6, r0, r1
|
|
ldr r0, [r4, #8]
|
|
mov r4, #0
|
|
str r0, [r6, #0x64]
|
|
add r0, r6, #0
|
|
str r0, [sp, #0x14]
|
|
add r0, #0x18
|
|
str r0, [sp, #0x14]
|
|
_022519D4:
|
|
ldr r1, _02251B00 ; =ov02_02253B44
|
|
lsl r7, r4, #2
|
|
ldrb r1, [r1, r4]
|
|
add r5, r6, r7
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r0, #0xae
|
|
mov r2, #0
|
|
add r3, r5, #0
|
|
bl GfGfxLoader_GetScrnData
|
|
ldr r1, _02251B04 ; =ov02_02253B3C
|
|
ldr r3, [sp, #0x14]
|
|
str r0, [r5, #0x30]
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
ldrb r1, [r1, r4]
|
|
mov r0, #0xae
|
|
mov r2, #0
|
|
add r3, r3, r7
|
|
bl GfGfxLoader_GetScrnData
|
|
str r0, [r5, #0x48]
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #6
|
|
blo _022519D4
|
|
ldr r3, [r6]
|
|
ldr r0, [r6, #0x64]
|
|
add r2, r3, #0
|
|
ldr r3, [r3, #8]
|
|
mov r1, #2
|
|
add r2, #0xc
|
|
bl BG_LoadScreenTilemapData
|
|
ldr r3, [r6, #0x18]
|
|
ldr r0, [r6, #0x64]
|
|
add r2, r3, #0
|
|
ldr r3, [r3, #8]
|
|
mov r1, #3
|
|
add r2, #0xc
|
|
bl BG_LoadScreenTilemapData
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #6
|
|
str r0, [sp, #8]
|
|
mov r2, #0
|
|
ldr r0, [r6, #0x64]
|
|
mov r1, #2
|
|
add r3, r2, #0
|
|
bl BgTilemapRectChangePalette
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #6
|
|
str r0, [sp, #8]
|
|
mov r2, #0
|
|
ldr r0, [r6, #0x64]
|
|
mov r1, #3
|
|
add r3, r2, #0
|
|
bl BgTilemapRectChangePalette
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #4
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r6, #0x64]
|
|
mov r0, #0xae
|
|
mov r1, #0x35
|
|
mov r3, #2
|
|
bl GfGfxLoader_LoadCharData
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #4
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r6, #0x64]
|
|
mov r0, #0xae
|
|
mov r1, #0x35
|
|
mov r3, #3
|
|
bl GfGfxLoader_LoadCharData
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #4
|
|
str r0, [sp, #4]
|
|
mov r0, #0xae
|
|
mov r1, #0x36
|
|
mov r2, #0
|
|
mov r3, #0xc0
|
|
bl GfGfxLoader_GXLoadPal
|
|
ldr r0, _02251B08 ; =ov02_02251BC4
|
|
ldr r1, [sp, #0x10]
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
ldr r2, _02251B0C ; =0x000004A8
|
|
ldr r1, [sp, #0x10]
|
|
str r0, [r1, r2]
|
|
ldr r0, [r6, #0x64]
|
|
mov r1, #2
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
ldr r0, [r6, #0x64]
|
|
mov r1, #3
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
mov r0, #4
|
|
mov r1, #1
|
|
bl GX_EngineAToggleLayers
|
|
mov r0, #8
|
|
mov r1, #1
|
|
bl GX_EngineAToggleLayers
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
add r0, #0x63
|
|
strb r1, [r0]
|
|
str r1, [r6, #0x68]
|
|
ldr r3, _02251B10 ; =0x0400000C
|
|
mov r1, #3
|
|
ldrh r0, [r3]
|
|
bic r0, r1
|
|
strh r0, [r3]
|
|
ldrh r2, [r3, #2]
|
|
mov r0, #1
|
|
bic r2, r1
|
|
orr r0, r2
|
|
strh r0, [r3, #2]
|
|
sub r2, r3, #4
|
|
ldrh r3, [r2]
|
|
mov r0, #2
|
|
bic r3, r1
|
|
orr r0, r3
|
|
strh r0, [r2]
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02251AFC: .word 0x0000043C
|
|
_02251B00: .word ov02_02253B44
|
|
_02251B04: .word ov02_02253B3C
|
|
_02251B08: .word ov02_02251BC4
|
|
_02251B0C: .word 0x000004A8
|
|
_02251B10: .word 0x0400000C
|
|
thumb_func_end ov02_022519B0
|
|
|
|
thumb_func_start ov02_02251B14
|
|
ov02_02251B14: ; 0x02251B14
|
|
push {r3, r4, r5, lr}
|
|
ldr r0, [r0, #4]
|
|
ldr r5, [r0, #0x24]
|
|
ldr r0, [r5, #4]
|
|
bl ov01_021E687C
|
|
add r4, r0, #0
|
|
ldr r0, _02251B48 ; =0x000004A8
|
|
ldr r0, [r4, r0]
|
|
bl DestroySysTask
|
|
ldr r0, _02251B48 ; =0x000004A8
|
|
mov r1, #0
|
|
str r1, [r4, r0]
|
|
ldr r0, [r5, #0x24]
|
|
cmp r0, #8
|
|
bne _02251B3E
|
|
add r0, r4, #0
|
|
bl ov02_02251B4C
|
|
pop {r3, r4, r5, pc}
|
|
_02251B3E:
|
|
add r0, r4, #0
|
|
bl ov02_02251B70
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_02251B48: .word 0x000004A8
|
|
thumb_func_end ov02_02251B14
|
|
|
|
thumb_func_start ov02_02251B4C
|
|
ov02_02251B4C: ; 0x02251B4C
|
|
push {r3, r4, r5, lr}
|
|
mov r4, #0xe3
|
|
add r5, r0, #0
|
|
lsl r4, r4, #2
|
|
add r0, r5, r4
|
|
add r0, #0x24
|
|
add r1, r5, #0
|
|
bl ov01_021FBE80
|
|
add r0, r5, r4
|
|
add r0, #0x10
|
|
add r1, r5, #0
|
|
bl ov01_021FBE80
|
|
add r0, r5, r4
|
|
bl ov01_021FBDA8
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_02251B4C
|
|
|
|
thumb_func_start ov02_02251B70
|
|
ov02_02251B70: ; 0x02251B70
|
|
push {r4, r5, r6, lr}
|
|
ldr r1, _02251BA4 ; =0x0000043C
|
|
add r6, r0, r1
|
|
mov r0, #4
|
|
mov r1, #0
|
|
bl GX_EngineAToggleLayers
|
|
mov r0, #8
|
|
mov r1, #0
|
|
bl GX_EngineAToggleLayers
|
|
mov r4, #0
|
|
_02251B88:
|
|
lsl r0, r4, #2
|
|
add r5, r6, r0
|
|
ldr r0, [r5, #0x30]
|
|
bl FreeToHeap
|
|
ldr r0, [r5, #0x48]
|
|
bl FreeToHeap
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #6
|
|
blo _02251B88
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_02251BA4: .word 0x0000043C
|
|
thumb_func_end ov02_02251B70
|
|
|
|
thumb_func_start ov02_02251BA8
|
|
ov02_02251BA8: ; 0x02251BA8
|
|
push {r3, r4, r5, lr}
|
|
mov r4, #0xe3
|
|
add r5, r1, #0
|
|
lsl r4, r4, #2
|
|
add r0, r5, r4
|
|
add r0, #0x10
|
|
mov r1, #2
|
|
bl ov02_02251138
|
|
add r0, r5, r4
|
|
add r0, #0x38
|
|
bl ov01_021FBF68
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_02251BA8
|
|
|
|
thumb_func_start ov02_02251BC4
|
|
ov02_02251BC4: ; 0x02251BC4
|
|
push {r3, r4, lr}
|
|
sub sp, #0x1c
|
|
ldr r0, _02251CEC ; =0x0000043C
|
|
add r4, r1, r0
|
|
add r0, r4, #0
|
|
add r0, #0x63
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x63
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x63
|
|
ldrb r0, [r0]
|
|
cmp r0, #6
|
|
blo _02251C7E
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x63
|
|
strb r1, [r0]
|
|
ldr r0, [r4, #0x68]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x68]
|
|
cmp r0, #6
|
|
blt _02251BF8
|
|
str r1, [r4, #0x68]
|
|
_02251BF8:
|
|
mov r1, #0x20
|
|
str r1, [sp]
|
|
str r1, [sp, #4]
|
|
ldr r0, [r4, #0x68]
|
|
mov r2, #0
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r3, r2, #0
|
|
add r0, #0xc
|
|
str r0, [sp, #8]
|
|
str r2, [sp, #0xc]
|
|
str r2, [sp, #0x10]
|
|
str r1, [sp, #0x14]
|
|
str r1, [sp, #0x18]
|
|
ldr r0, [r4, #0x64]
|
|
mov r1, #2
|
|
bl CopyRectToBgTilemapRect
|
|
mov r1, #0x20
|
|
str r1, [sp]
|
|
str r1, [sp, #4]
|
|
ldr r0, [r4, #0x68]
|
|
mov r2, #0
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
ldr r0, [r0, #0x18]
|
|
add r3, r2, #0
|
|
add r0, #0xc
|
|
str r0, [sp, #8]
|
|
str r2, [sp, #0xc]
|
|
str r2, [sp, #0x10]
|
|
str r1, [sp, #0x14]
|
|
str r1, [sp, #0x18]
|
|
ldr r0, [r4, #0x64]
|
|
mov r1, #3
|
|
bl CopyRectToBgTilemapRect
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #6
|
|
str r0, [sp, #8]
|
|
mov r2, #0
|
|
ldr r0, [r4, #0x64]
|
|
mov r1, #2
|
|
add r3, r2, #0
|
|
bl BgTilemapRectChangePalette
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #6
|
|
str r0, [sp, #8]
|
|
mov r2, #0
|
|
ldr r0, [r4, #0x64]
|
|
mov r1, #3
|
|
add r3, r2, #0
|
|
bl BgTilemapRectChangePalette
|
|
ldr r0, [r4, #0x64]
|
|
mov r1, #2
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
ldr r0, [r4, #0x64]
|
|
mov r1, #3
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
_02251C7E:
|
|
add r0, r4, #0
|
|
add r0, #0x60
|
|
ldrb r0, [r0]
|
|
add r3, r4, #0
|
|
add r3, #0x60
|
|
sub r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x60
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x61
|
|
ldrb r0, [r0]
|
|
mov r2, #0
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x61
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x62
|
|
ldrb r0, [r0]
|
|
sub r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x62
|
|
strb r1, [r0]
|
|
ldrb r3, [r3]
|
|
ldr r0, [r4, #0x64]
|
|
mov r1, #2
|
|
bl ScheduleSetBgPosText
|
|
add r3, r4, #0
|
|
add r3, #0x62
|
|
ldrb r3, [r3]
|
|
ldr r0, [r4, #0x64]
|
|
mov r1, #2
|
|
mov r2, #3
|
|
bl ScheduleSetBgPosText
|
|
add r3, r4, #0
|
|
add r3, #0x61
|
|
ldrb r3, [r3]
|
|
ldr r0, [r4, #0x64]
|
|
mov r1, #3
|
|
mov r2, #0
|
|
bl ScheduleSetBgPosText
|
|
ldr r0, [r4, #0x64]
|
|
add r4, #0x62
|
|
mov r1, #3
|
|
ldrb r3, [r4]
|
|
add r2, r1, #0
|
|
bl ScheduleSetBgPosText
|
|
add sp, #0x1c
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_02251CEC: .word 0x0000043C
|
|
thumb_func_end ov02_02251BC4
|
|
|
|
thumb_func_start ov02_02251CF0
|
|
ov02_02251CF0: ; 0x02251CF0
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x20
|
|
add r5, r0, #0
|
|
mov r0, #4
|
|
mov r1, #0x28
|
|
bl AllocFromHeapAtEnd
|
|
ldr r1, [r5, #4]
|
|
str r0, [r1, #0x24]
|
|
ldr r0, [r5, #4]
|
|
ldr r4, [r0, #0x24]
|
|
ldr r0, _02251DAC ; =gGameVersion
|
|
ldrb r0, [r0]
|
|
strh r0, [r4, #0x1a]
|
|
ldrh r0, [r4, #0x1a]
|
|
cmp r0, #7
|
|
bne _02251D1A
|
|
bl GF_AssertFail
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, pc}
|
|
_02251D1A:
|
|
ldr r0, [r5, #0x24]
|
|
bl Camera_GetDistance
|
|
str r0, [r4]
|
|
ldr r1, [r5, #0x24]
|
|
add r0, sp, #0
|
|
bl Camera_GetAngle
|
|
add r0, sp, #0
|
|
ldrh r1, [r0]
|
|
strh r1, [r4, #4]
|
|
ldrh r1, [r0, #2]
|
|
strh r1, [r4, #6]
|
|
ldrh r1, [r0, #4]
|
|
strh r1, [r4, #8]
|
|
ldrh r0, [r0, #6]
|
|
strh r0, [r4, #0xa]
|
|
ldr r1, [r5, #0x24]
|
|
add r0, sp, #8
|
|
bl Camera_GetLookAtCamTarget
|
|
add r3, sp, #8
|
|
ldmia r3!, {r0, r1}
|
|
add r2, sp, #0x14
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
ldr r0, [r5, #0x24]
|
|
bl Camera_GetCurrentTarget
|
|
add r2, r4, #0
|
|
add r1, r0, #0
|
|
add r0, sp, #0x14
|
|
add r2, #0xc
|
|
bl VEC_Subtract
|
|
ldr r0, [r5, #0x24]
|
|
bl Camera_GetPerspectiveAngle
|
|
strh r0, [r4, #0x18]
|
|
ldr r0, [r5, #0x24]
|
|
bl Camera_GetPerspectiveClippingPlaneNear
|
|
str r0, [r4, #0x1c]
|
|
ldr r0, [r5, #0x24]
|
|
bl Camera_GetPerspectiveClippingPlaneFar
|
|
str r0, [r4, #0x20]
|
|
ldr r0, _02251DB0 ; =0x0029AEC1
|
|
ldr r1, [r5, #0x24]
|
|
bl Camera_SetDistance
|
|
ldr r0, _02251DB4 ; =ov02_02253C74
|
|
ldr r1, [r5, #0x24]
|
|
bl Camera_SetAnglePos
|
|
ldr r0, _02251DB8 ; =0x000005C1
|
|
ldr r1, [r5, #0x24]
|
|
bl Camera_SetPerspectiveAngle
|
|
ldr r0, _02251DBC ; =ov02_02253BC4
|
|
ldr r1, [r5, #0x24]
|
|
bl Camera_OffsetLookAtPosAndTarget
|
|
mov r0, #0x96
|
|
ldr r1, _02251DC0 ; =0x006A4000
|
|
ldr r2, [r5, #0x24]
|
|
lsl r0, r0, #0xc
|
|
bl Camera_SetPerspectiveClippingPlane
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_02251DAC: .word gGameVersion
|
|
_02251DB0: .word 0x0029AEC1
|
|
_02251DB4: .word ov02_02253C74
|
|
_02251DB8: .word 0x000005C1
|
|
_02251DBC: .word ov02_02253BC4
|
|
_02251DC0: .word 0x006A4000
|
|
thumb_func_end ov02_02251CF0
|
|
|
|
thumb_func_start ov02_02251DC4
|
|
ov02_02251DC4: ; 0x02251DC4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x24]
|
|
ldrh r0, [r0, #0x1a]
|
|
cmp r0, #7
|
|
bne _02251DD6
|
|
bl GF_AssertFail
|
|
_02251DD6:
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x24]
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
str r1, [r0, #0x24]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02251DC4
|
|
|
|
thumb_func_start ov02_02251DE8
|
|
ov02_02251DE8: ; 0x02251DE8
|
|
push {r4, r5, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #4]
|
|
ldr r4, [r0, #0x24]
|
|
ldrh r0, [r4, #0x1a]
|
|
cmp r0, #7
|
|
bne _02251E00
|
|
bl GF_AssertFail
|
|
add sp, #0x14
|
|
pop {r4, r5, pc}
|
|
_02251E00:
|
|
ldr r1, [r5, #0x24]
|
|
mov r0, #4
|
|
bl CreateCameraTranslationWrapper
|
|
str r0, [r4, #0x24]
|
|
add r3, r4, #0
|
|
ldrh r1, [r4, #4]
|
|
add r0, sp, #0
|
|
add r3, #0xc
|
|
strh r1, [r0]
|
|
ldrh r1, [r4, #0x18]
|
|
add r2, sp, #4
|
|
strh r1, [r0, #2]
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
add r1, sp, #0
|
|
str r0, [r2]
|
|
ldr r0, [r4]
|
|
mov r2, #0x1e
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r4, #0x24]
|
|
bl SetCameraTranslationPath
|
|
ldr r0, [r5, #0x10]
|
|
ldr r1, _02251E40 ; =ov02_02251E44
|
|
add r2, r5, #0
|
|
bl TaskManager_Call
|
|
add sp, #0x14
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_02251E40: .word ov02_02251E44
|
|
thumb_func_end ov02_02251DE8
|
|
|
|
thumb_func_start ov02_02251E44
|
|
ov02_02251E44: ; 0x02251E44
|
|
push {r4, r5, r6, lr}
|
|
bl TaskManager_GetEnv
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
ldr r5, [r0, #0x24]
|
|
ldr r6, [r5, #0x24]
|
|
add r0, r6, #0
|
|
bl IsCameraTranslationFinished
|
|
cmp r0, #0
|
|
beq _02251E70
|
|
add r0, r6, #0
|
|
bl DeleteCameraTranslationWrapper
|
|
ldr r0, [r5, #0x1c]
|
|
ldr r1, [r5, #0x20]
|
|
ldr r2, [r4, #0x24]
|
|
bl Camera_SetPerspectiveClippingPlane
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_02251E70:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov02_02251E44
|
|
|
|
thumb_func_start GetPhoneBookEntryName
|
|
GetPhoneBookEntryName: ; 0x02251E74
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldrb r1, [r0]
|
|
lsl r1, r1, #0x1f
|
|
lsr r1, r1, #0x1f
|
|
beq _02251E86
|
|
ldrb r0, [r0, #2]
|
|
cmp r0, #0x4b
|
|
blo _02251E92
|
|
_02251E86:
|
|
mov r0, #8
|
|
add r1, r4, #0
|
|
bl String_New
|
|
add r5, r0, #0
|
|
b _02251EB2
|
|
_02251E92:
|
|
bl GetPhoneMessageGmm
|
|
add r2, r0, #0
|
|
mov r0, #1
|
|
mov r1, #0x1b
|
|
add r3, r4, #0
|
|
bl NewMsgDataFromNarc
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
bl NewString_ReadMsgData
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl DestroyMsgData
|
|
_02251EB2:
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end GetPhoneBookEntryName
|
|
|
|
thumb_func_start ov02_02251EB8
|
|
ov02_02251EB8: ; 0x02251EB8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r1, #0x4b
|
|
blo _02251ED0
|
|
mov r0, #0xff
|
|
strb r0, [r4, #2]
|
|
strb r0, [r4, #5]
|
|
mov r0, #0
|
|
strb r0, [r4, #6]
|
|
bl GF_AssertFail
|
|
b _02251ED6
|
|
_02251ED0:
|
|
strb r1, [r4, #2]
|
|
strb r2, [r4, #5]
|
|
strb r3, [r4, #6]
|
|
_02251ED6:
|
|
ldr r0, _02251EE4 ; =0xFFFFFFF8
|
|
add r0, sp
|
|
ldrb r1, [r0, #0x10]
|
|
strb r1, [r4, #3]
|
|
ldrb r0, [r0, #0x14]
|
|
strb r0, [r4, #4]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_02251EE4: .word 0xFFFFFFF8
|
|
thumb_func_end ov02_02251EB8
|
|
|
|
thumb_func_start ov02_02251EE8
|
|
ov02_02251EE8: ; 0x02251EE8
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #5
|
|
bl MI_CpuFill8
|
|
ldrb r0, [r5, #2]
|
|
cmp r0, #0x4b
|
|
blo _02251F08
|
|
bl GF_AssertFail
|
|
mov r0, #0xff
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_02251F08:
|
|
ldrb r0, [r5, #5]
|
|
strb r0, [r4]
|
|
ldrb r0, [r5, #6]
|
|
strb r0, [r4, #1]
|
|
ldrb r0, [r5, #3]
|
|
strb r0, [r4, #3]
|
|
ldrb r0, [r5, #4]
|
|
strb r0, [r4, #4]
|
|
ldrb r0, [r5, #7]
|
|
strb r0, [r4, #2]
|
|
ldrb r0, [r5, #2]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_02251EE8
|
|
|
|
thumb_func_start ov02_02251F20
|
|
ov02_02251F20: ; 0x02251F20
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x38]
|
|
bl Save_LocalFieldData_Get
|
|
bl LocalFieldData_GetCurrentPosition
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
bl MapHeader_GetField14_1E
|
|
cmp r0, #0
|
|
bne _02251F3E
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02251F3E:
|
|
ldrb r0, [r5]
|
|
lsl r0, r0, #0x1f
|
|
lsr r0, r0, #0x1f
|
|
bne _02251F4E
|
|
ldr r1, [r5, #8]
|
|
ldr r0, [r5, #0xc]
|
|
cmp r1, r0
|
|
bge _02251F52
|
|
_02251F4E:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02251F52:
|
|
mov r0, #4
|
|
bl AllocAndReadPhoneBook
|
|
add r6, r0, #0
|
|
ldr r2, [r4]
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov02_022521C0
|
|
add r7, r0, #0
|
|
beq _02251F9C
|
|
add r0, r6, #0
|
|
bl FreePhoneBook
|
|
cmp r7, #2
|
|
bne _02251F90
|
|
ldr r2, [r5, #0x3c]
|
|
add r0, r2, #0
|
|
add r0, #0xd2
|
|
ldrb r1, [r0]
|
|
mov r0, #0x80
|
|
add r2, #0xd2
|
|
orr r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, [r5, #0x3c]
|
|
ldr r1, _02251FD8 ; =0x000007FF
|
|
mov r2, #0
|
|
bl StartMapSceneScript
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02251F90:
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov02_022522AC
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02251F9C:
|
|
bl MTRandom
|
|
mov r1, #0x64
|
|
bl _u32_div_f
|
|
ldrh r0, [r5, #0x12]
|
|
cmp r1, r0
|
|
bls _02251FB8
|
|
add r0, r6, #0
|
|
bl FreePhoneBook
|
|
mov r0, #0
|
|
str r0, [r5, #8]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02251FB8:
|
|
ldr r2, [r4]
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov02_02251FDC
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
bl FreePhoneBook
|
|
cmp r4, #0
|
|
bne _02251FD2
|
|
mov r0, #0
|
|
str r0, [r5, #8]
|
|
_02251FD2:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02251FD8: .word 0x000007FF
|
|
thumb_func_end ov02_02251F20
|
|
|
|
thumb_func_start ov02_02251FDC
|
|
ov02_02251FDC: ; 0x02251FDC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x30
|
|
str r0, [sp, #8]
|
|
ldr r0, [r0, #0x38]
|
|
add r6, r1, #0
|
|
str r2, [sp, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [sp, #8]
|
|
ldr r0, [r0, #0x38]
|
|
bl Save_PlayerData_GetProfileAddr
|
|
ldr r0, [sp, #8]
|
|
ldr r0, [r0, #0x38]
|
|
bl Save_Misc_Get
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #8]
|
|
ldr r0, [r0, #0x30]
|
|
bl GSPlayerMisc_FindEmptyGearPhonebookSlot
|
|
str r0, [sp, #0x2c]
|
|
ldr r0, [sp, #8]
|
|
mov r1, #4
|
|
ldr r0, [r0, #0x30]
|
|
bl GSPlayerMisc_AllocAndCopyPhonebook
|
|
str r0, [sp, #0x20]
|
|
ldr r1, [sp, #0x2c]
|
|
mov r0, #4
|
|
bl AllocFromHeapAtEnd
|
|
ldr r2, [sp, #0x2c]
|
|
mov r1, #0xff
|
|
add r4, r0, #0
|
|
bl MI_CpuFill8
|
|
bl LCRandom
|
|
mov r1, #0xfa
|
|
lsl r1, r1, #2
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x10
|
|
lsr r1, r0, #0x10
|
|
mov r0, #0x7d
|
|
lsl r0, r0, #2
|
|
cmp r1, r0
|
|
bhs _02252046
|
|
mov r0, #0
|
|
str r0, [sp, #0x24]
|
|
b _02252058
|
|
_02252046:
|
|
mov r0, #0x32
|
|
lsl r0, r0, #4
|
|
cmp r1, r0
|
|
bhs _02252054
|
|
mov r0, #1
|
|
str r0, [sp, #0x24]
|
|
b _02252058
|
|
_02252054:
|
|
mov r0, #2
|
|
str r0, [sp, #0x24]
|
|
_02252058:
|
|
ldr r0, [sp, #0x2c]
|
|
mov r7, #0
|
|
add r2, r7, #0
|
|
cmp r0, #0
|
|
bls _022520A2
|
|
_02252062:
|
|
ldr r0, [sp, #0x20]
|
|
mov r1, #0x14
|
|
ldrb r3, [r0, r2]
|
|
ldr r0, [r6, #4]
|
|
mul r1, r3
|
|
add r5, r0, r1
|
|
ldrb r1, [r5, #0xf]
|
|
ldr r0, [sp, #0x24]
|
|
cmp r0, r1
|
|
bne _02252096
|
|
ldrb r0, [r5, #1]
|
|
cmp r0, #0
|
|
beq _0225208C
|
|
cmp r0, #0xc
|
|
beq _0225208C
|
|
cmp r0, #0xb
|
|
beq _0225208C
|
|
cmp r0, #0xa
|
|
beq _0225208C
|
|
cmp r0, #0xe
|
|
bne _02252096
|
|
_0225208C:
|
|
add r1, r7, #1
|
|
add r0, r7, #0
|
|
lsl r1, r1, #0x18
|
|
lsr r7, r1, #0x18
|
|
strb r3, [r4, r0]
|
|
_02252096:
|
|
add r0, r2, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x18
|
|
ldr r0, [sp, #0x2c]
|
|
cmp r2, r0
|
|
blo _02252062
|
|
_022520A2:
|
|
cmp r7, #0
|
|
bne _022520B8
|
|
ldr r0, [sp, #0x20]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add sp, #0x30
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022520B8:
|
|
ldr r0, [sp, #0x20]
|
|
ldr r2, [sp, #0x2c]
|
|
mov r1, #0xff
|
|
bl MI_CpuFill8
|
|
ldr r0, [sp, #8]
|
|
ldr r0, [r0, #0x38]
|
|
bl Save_SysInfo_RTC_Get
|
|
ldr r0, [r0, #0x14]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp, #0x1c]
|
|
bl CheckFlag996
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0
|
|
str r0, [sp, #0x28]
|
|
ldr r0, [sp, #0x18]
|
|
ldr r1, [sp, #0x24]
|
|
bl sub_0202AAD4
|
|
cmp r0, r7
|
|
bne _022520F6
|
|
ldr r0, [sp, #0x18]
|
|
ldr r1, [sp, #0x24]
|
|
bl sub_0202AA9C
|
|
_022520F6:
|
|
mov r5, #0
|
|
cmp r7, #0
|
|
bls _02252164
|
|
_022520FC:
|
|
ldrb r2, [r4, r5]
|
|
mov r1, #0x14
|
|
ldr r0, [r6, #4]
|
|
mul r1, r2
|
|
add r0, r0, r1
|
|
ldrh r1, [r0, #6]
|
|
ldr r0, [sp, #0xc]
|
|
cmp r0, r1
|
|
beq _0225215A
|
|
ldr r0, [sp, #0x18]
|
|
ldr r1, [sp, #0x24]
|
|
bl sub_0202AA44
|
|
cmp r0, #0
|
|
bne _0225215A
|
|
ldrb r0, [r4, r5]
|
|
cmp r0, #8
|
|
bne _02252134
|
|
ldr r0, [sp, #0x14]
|
|
bl sub_02095FF8
|
|
cmp r0, #0
|
|
bne _0225215A
|
|
ldr r0, [sp, #0x1c]
|
|
bl Save_VarsFlags_IsInRocketTakeover
|
|
cmp r0, #0
|
|
bne _0225215A
|
|
_02252134:
|
|
ldrb r1, [r4, r5]
|
|
mov r2, #0x14
|
|
ldr r0, [r6, #4]
|
|
mul r2, r1
|
|
add r0, r0, r2
|
|
ldrh r0, [r0, #6]
|
|
cmp r0, #0x60
|
|
bne _0225214A
|
|
ldr r0, [sp, #0x10]
|
|
cmp r0, #0
|
|
bne _0225215A
|
|
_0225214A:
|
|
ldr r0, [sp, #0x28]
|
|
add r2, r0, #0
|
|
add r2, r2, #1
|
|
lsl r2, r2, #0x18
|
|
lsr r2, r2, #0x18
|
|
str r2, [sp, #0x28]
|
|
ldr r2, [sp, #0x20]
|
|
strb r1, [r2, r0]
|
|
_0225215A:
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
cmp r5, r7
|
|
blo _022520FC
|
|
_02252164:
|
|
ldr r0, [sp, #0x28]
|
|
cmp r0, #0
|
|
beq _022521AC
|
|
bl MTRandom
|
|
ldr r2, [sp, #0x28]
|
|
mov r1, #0x64
|
|
mul r1, r2
|
|
bl _u32_div_f
|
|
add r0, r1, #0
|
|
mov r1, #0x64
|
|
bl _u32_div_f
|
|
add r1, r0, #0
|
|
lsl r1, r1, #0x10
|
|
lsr r1, r1, #0x10
|
|
mov r0, #0
|
|
lsl r1, r1, #0x18
|
|
str r0, [sp]
|
|
lsr r2, r1, #0x18
|
|
str r0, [sp, #4]
|
|
ldr r1, [sp, #0x20]
|
|
ldr r0, [sp, #8]
|
|
ldrb r1, [r1, r2]
|
|
ldr r2, [sp, #0x24]
|
|
add r3, r7, #0
|
|
bl ov02_02251EB8
|
|
ldr r0, [sp, #8]
|
|
bl sub_02092DF4
|
|
ldr r0, [sp, #8]
|
|
mov r1, #1
|
|
bl ov02_022522AC
|
|
_022521AC:
|
|
ldr r0, [sp, #0x20]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
ldr r0, [sp, #0x28]
|
|
add sp, #0x30
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02251FDC
|
|
|
|
thumb_func_start ov02_022521C0
|
|
ov02_022521C0: ; 0x022521C0
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
bl ov02_02252218
|
|
add r6, r0, #0
|
|
cmp r6, #0xff
|
|
bne _022521D6
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_022521D6:
|
|
mov r0, #6
|
|
add r4, r6, #0
|
|
mul r4, r0
|
|
mov r0, #3
|
|
str r0, [sp]
|
|
ldr r0, _0225220C ; =ov02_02253C86
|
|
ldr r1, _02252210 ; =ov02_02253C84
|
|
ldrh r0, [r0, r4]
|
|
ldrb r1, [r1, r4]
|
|
mov r2, #0xff
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
mov r3, #0
|
|
bl ov02_02251EB8
|
|
add r0, r5, #0
|
|
bl sub_02092DF4
|
|
ldr r0, _02252214 ; =ov02_02253C88
|
|
strb r6, [r5, #7]
|
|
ldrb r0, [r0, r4]
|
|
add r0, r0, #1
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0225220C: .word ov02_02253C86
|
|
_02252210: .word ov02_02253C84
|
|
_02252214: .word ov02_02253C88
|
|
thumb_func_end ov02_022521C0
|
|
|
|
thumb_func_start ov02_02252218
|
|
ov02_02252218: ; 0x02252218
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r7, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #4
|
|
mov r1, #0xd
|
|
str r2, [sp, #4]
|
|
bl AllocFromHeapAtEnd
|
|
mov r1, #0
|
|
mov r2, #0xd
|
|
str r0, [sp, #8]
|
|
bl MI_CpuFill8
|
|
mov r5, #0
|
|
ldr r6, _022522A8 ; =ov02_02253C84
|
|
add r4, r5, #0
|
|
_0225223A:
|
|
lsl r1, r4, #0x18
|
|
ldr r0, [r7, #0x34]
|
|
lsr r1, r1, #0x18
|
|
bl sub_0202F08C
|
|
cmp r0, #0
|
|
beq _02252276
|
|
ldr r0, [sp]
|
|
mov r1, #0x14
|
|
ldr r2, [r0, #4]
|
|
ldrb r0, [r6]
|
|
mul r1, r0
|
|
add r0, r2, r1
|
|
ldrb r1, [r2, r1]
|
|
cmp r1, #6
|
|
bne _02252268
|
|
ldr r0, [r7, #0x30]
|
|
mov r1, #6
|
|
bl GSPlayerMisc_IsGearNumberRegistered
|
|
cmp r0, #0xff
|
|
beq _02252276
|
|
b _02252270
|
|
_02252268:
|
|
ldrh r1, [r0, #6]
|
|
ldr r0, [sp, #4]
|
|
cmp r1, r0
|
|
beq _02252276
|
|
_02252270:
|
|
ldr r0, [sp, #8]
|
|
strb r4, [r0, r5]
|
|
add r5, r5, #1
|
|
_02252276:
|
|
add r4, r4, #1
|
|
add r6, r6, #6
|
|
cmp r4, #0xd
|
|
blt _0225223A
|
|
cmp r5, #0
|
|
bne _0225228E
|
|
ldr r0, [sp, #8]
|
|
bl FreeToHeap
|
|
add sp, #0xc
|
|
mov r0, #0xff
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0225228E:
|
|
bl LCRandom
|
|
add r1, r5, #0
|
|
bl _s32_div_f
|
|
ldr r0, [sp, #8]
|
|
ldrb r4, [r0, r1]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_022522A8: .word ov02_02253C84
|
|
thumb_func_end ov02_02252218
|
|
|
|
thumb_func_start ov02_022522AC
|
|
ov02_022522AC: ; 0x022522AC
|
|
ldr r3, _022522B0 ; =GearPhone_ToggleRinging
|
|
bx r3
|
|
.balign 4, 0
|
|
_022522B0: .word GearPhone_ToggleRinging
|
|
thumb_func_end ov02_022522AC
|
|
|
|
thumb_func_start GetRadioMusicPlayingSeq
|
|
GetRadioMusicPlayingSeq: ; 0x022522B4
|
|
push {r3, lr}
|
|
bl SndRadio_GetSeqNo
|
|
lsl r0, r0, #0x10
|
|
ldr r2, _0225232C ; =SEQ_GS_RADIO_R_201
|
|
lsr r0, r0, #0x10
|
|
cmp r0, r2
|
|
bgt _022522F0
|
|
bge _0225231C
|
|
add r1, r2, #0
|
|
sub r1, #SEQ_GS_RADIO_R_201-SEQ_GS_HUE
|
|
cmp r0, r1
|
|
bgt _022522E8
|
|
sub r2, #SEQ_GS_RADIO_R_201-SEQ_GS_RADIO_KOMORIUTA
|
|
sub r1, r0, r2
|
|
bmi _02252328
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_022522E0: ; jump table
|
|
.short _02252314 - _022522E0 - 2 ; case SEQ_GS_RADIO_KOMORIUTA
|
|
.short _02252310 - _022522E0 - 2 ; case SEQ_GS_RADIO_MARCH
|
|
.short _02252320 - _022522E0 - 2 ; case SEQ_GS_RADIO_UNKNOWN
|
|
.short _02252324 - _022522E0 - 2 ; case SEQ_GS_HUE
|
|
_022522E8:
|
|
ldr r1, _02252330 ; =SEQ_GS_RADIO_R_101
|
|
cmp r0, r1
|
|
beq _02252318
|
|
b _02252328
|
|
_022522F0:
|
|
add r1, r2, #0
|
|
add r1, #SEQ_GS_P_RADIO_MARCH-SEQ_GS_RADIO_R_201
|
|
cmp r0, r1
|
|
bgt _02252308
|
|
add r1, r2, #0
|
|
add r1, #SEQ_GS_P_RADIO_MARCH-SEQ_GS_RADIO_R_201
|
|
cmp r0, r1
|
|
bge _02252310
|
|
add r2, #SEQ_GS_P_RADIO_KOMORIUTA-SEQ_GS_RADIO_R_201
|
|
cmp r0, r2
|
|
beq _02252314
|
|
b _02252328
|
|
_02252308:
|
|
add r2, #SEQ_GS_P_HUE-SEQ_GS_RADIO_R_201
|
|
cmp r0, r2
|
|
beq _02252324
|
|
b _02252328
|
|
_02252310:
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_02252314:
|
|
mov r0, #2
|
|
pop {r3, pc}
|
|
_02252318:
|
|
mov r0, #3
|
|
pop {r3, pc}
|
|
_0225231C:
|
|
mov r0, #4
|
|
pop {r3, pc}
|
|
_02252320:
|
|
mov r0, #6
|
|
pop {r3, pc}
|
|
_02252324:
|
|
mov r0, #5
|
|
pop {r3, pc}
|
|
_02252328:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_0225232C: .word SEQ_GS_RADIO_R_201
|
|
_02252330: .word SEQ_GS_RADIO_R_101
|
|
thumb_func_end GetRadioMusicPlayingSeq
|
|
|
|
thumb_func_start ov02_02252334
|
|
ov02_02252334: ; 0x02252334
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x40]
|
|
bl PlayerAvatar_GetMapObject
|
|
bl MapObject_AreBitsSetForMovementScriptInit
|
|
cmp r0, #0
|
|
bne _0225234A
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_0225234A:
|
|
add r0, r5, #0
|
|
bl FollowingPokemon_IsActive
|
|
cmp r0, #0
|
|
beq _022523B0
|
|
add r0, r5, #0
|
|
add r0, #0xf4
|
|
ldr r1, [r0]
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
cmp r1, r0
|
|
bne _022523B0
|
|
ldr r0, [r5, #0xc]
|
|
bl SaveArray_PlayerParty_Get
|
|
bl GetFirstAliveMonInParty_CrashIfNone
|
|
add r6, r0, #0
|
|
mov r1, #5
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
mov r1, #0x70
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r6, r0, #0
|
|
add r0, r5, #0
|
|
add r0, #0xf4
|
|
ldr r0, [r0]
|
|
cmp r4, r0
|
|
beq _02252392
|
|
bl GF_AssertFail
|
|
_02252392:
|
|
add r0, r5, #0
|
|
add r0, #0xf4
|
|
ldr r0, [r0]
|
|
cmp r4, r0
|
|
beq _022523A0
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_022523A0:
|
|
add r5, #0xfc
|
|
ldrh r0, [r5]
|
|
cmp r0, #1
|
|
bne _022523B0
|
|
cmp r6, #0
|
|
bne _022523B0
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_022523B0:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov02_02252334
|
|
|
|
thumb_func_start ov02_022523B4
|
|
ov02_022523B4: ; 0x022523B4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xb
|
|
mov r1, #0xc
|
|
bl AllocFromHeapAtEnd
|
|
add r2, r0, #0
|
|
ldr r1, _022523CC ; =ov02_022523D0
|
|
add r0, r4, #0
|
|
bl TaskManager_Call
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_022523CC: .word ov02_022523D0
|
|
thumb_func_end ov02_022523B4
|
|
|
|
thumb_func_start ov02_022523D0
|
|
ov02_022523D0: ; 0x022523D0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r6, r0, #0
|
|
bl TaskManager_GetStatePtr
|
|
add r5, r0, #0
|
|
add r0, r6, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
bl TaskManager_GetEnv
|
|
add r6, r0, #0
|
|
ldr r0, [r5]
|
|
cmp r0, #4
|
|
bls _022523F4
|
|
b _02252524
|
|
_022523F4:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02252400: ; jump table
|
|
.short _0225240A - _02252400 - 2 ; case 0
|
|
.short _02252426 - _02252400 - 2 ; case 1
|
|
.short _0225246E - _02252400 - 2 ; case 2
|
|
.short _022524D2 - _02252400 - 2 ; case 3
|
|
.short _022524EE - _02252400 - 2 ; case 4
|
|
_0225240A:
|
|
add r0, r4, #0
|
|
bl FollowingPokemon_GetMapObject
|
|
bl MapObject_UnpauseMovement
|
|
ldr r0, [r4, #0x10]
|
|
ldr r1, _0225252C ; =ov01_02205A60
|
|
mov r2, #0
|
|
bl TaskManager_Call
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02252524
|
|
_02252426:
|
|
add r0, r4, #0
|
|
bl FollowingPokemon_GetMapObject
|
|
add r1, sp, #0
|
|
bl MapObject_GetPositionVec
|
|
add r0, r4, #0
|
|
bl sub_02069FB0
|
|
cmp r0, #0
|
|
beq _0225244A
|
|
ldr r0, [r4, #0x44]
|
|
add r1, sp, #0
|
|
bl ov01_022052C4
|
|
str r0, [r6, #4]
|
|
mov r0, #1
|
|
b _0225244E
|
|
_0225244A:
|
|
mov r0, #0
|
|
str r0, [r6, #4]
|
|
_0225244E:
|
|
str r0, [r6, #8]
|
|
add r0, r4, #0
|
|
mov r2, #0
|
|
mov r1, #0x7b
|
|
str r2, [r6]
|
|
add r4, #0xfb
|
|
add r0, #0xe4
|
|
ldrb r3, [r4]
|
|
ldr r0, [r0]
|
|
lsl r1, r1, #2
|
|
bl FollowPokeMapObjectSetParams
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02252524
|
|
_0225246E:
|
|
ldr r0, [r6, #8]
|
|
cmp r0, #0
|
|
beq _02252490
|
|
ldr r0, [r6]
|
|
add r0, r0, #1
|
|
str r0, [r6]
|
|
cmp r0, #4
|
|
blt _02252524
|
|
add r4, #0xe4
|
|
ldr r0, [r4]
|
|
ldr r1, _02252530 ; =0x000003CE
|
|
bl ov01_021FA930
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02252524
|
|
_02252490:
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
bl MapObject_GetManager
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
bl MapObject_GetGfxID
|
|
add r7, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
bl sub_0205E420
|
|
add r2, r4, #0
|
|
add r2, #0xe4
|
|
ldr r2, [r2]
|
|
add r0, r6, #0
|
|
add r1, r7, #0
|
|
bl ov01_021FA108
|
|
add r4, #0xe4
|
|
ldr r0, [r4]
|
|
ldr r1, _02252530 ; =0x000003CE
|
|
bl sub_0205E38C
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02252524
|
|
_022524D2:
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
bl ov01_021FA2D4
|
|
cmp r0, #0
|
|
bne _02252524
|
|
mov r0, #0
|
|
add r4, #0xfc
|
|
strh r0, [r4]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02252524
|
|
_022524EE:
|
|
ldr r0, [r6, #4]
|
|
mov r5, #0
|
|
cmp r0, #0
|
|
bne _022524FA
|
|
mov r5, #1
|
|
b _0225250A
|
|
_022524FA:
|
|
bl ov01_022052F4
|
|
cmp r0, #0
|
|
beq _0225250A
|
|
ldr r0, [r6, #4]
|
|
bl sub_02068B48
|
|
mov r5, #1
|
|
_0225250A:
|
|
cmp r5, #0
|
|
beq _02252524
|
|
add r0, r6, #0
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl FollowingPokemon_GetMapObject
|
|
bl MapObject_PauseMovement
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02252524:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_0225252C: .word ov01_02205A60
|
|
_02252530: .word 0x000003CE
|
|
thumb_func_end ov02_022523D0
|
|
|
|
thumb_func_start ov02_02252534
|
|
ov02_02252534: ; 0x02252534
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0xb
|
|
mov r1, #0xf4
|
|
bl AllocFromHeapAtEnd
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
mov r2, #0xf4
|
|
bl MI_CpuFill8
|
|
str r5, [r4, #8]
|
|
ldr r0, [r5, #0x10]
|
|
ldr r1, _02252558 ; =ov02_0225255C
|
|
add r2, r4, #0
|
|
bl TaskManager_Call
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_02252558: .word ov02_0225255C
|
|
thumb_func_end ov02_02252534
|
|
|
|
thumb_func_start ov02_0225255C
|
|
ov02_0225255C: ; 0x0225255C
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
bl TaskManager_GetStatePtr
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r0, r4, #0
|
|
bl TaskManager_GetEnv
|
|
ldr r1, [r5]
|
|
add r4, r0, #0
|
|
cmp r1, #5
|
|
bls _0225257E
|
|
b _02252698
|
|
_0225257E:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0225258A: ; jump table
|
|
.short _02252596 - _0225258A - 2 ; case 0
|
|
.short _022525B4 - _0225258A - 2 ; case 1
|
|
.short _022525EA - _0225258A - 2 ; case 2
|
|
.short _0225260C - _0225258A - 2 ; case 3
|
|
.short _02252638 - _0225258A - 2 ; case 4
|
|
.short _0225266E - _0225258A - 2 ; case 5
|
|
_02252596:
|
|
mov r1, #4
|
|
str r1, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
ldr r3, _022526C4 ; =0x00007FFF
|
|
mov r0, #3
|
|
add r2, r1, #0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02252698
|
|
_022525B4:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _02252698
|
|
add r0, r4, #0
|
|
bl ov02_02252898
|
|
ldr r0, [r4, #8]
|
|
bl FollowingPokemon_GetMapObject
|
|
mov r1, #1
|
|
bl sub_02069DC8
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r3, _022526C4 ; =0x00007FFF
|
|
mov r0, #3
|
|
mov r2, #0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02252698
|
|
_022525EA:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _02252698
|
|
ldr r0, [r4, #8]
|
|
bl FollowingPokemon_GetMapObject
|
|
bl sub_0205F484
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r0, #0xf0
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02252698
|
|
_0225260C:
|
|
add r1, r4, #0
|
|
add r1, #0xf2
|
|
ldrb r1, [r1]
|
|
add r2, r1, #1
|
|
add r1, r4, #0
|
|
add r1, #0xf2
|
|
strb r2, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0xf2
|
|
ldrb r1, [r1]
|
|
cmp r1, #0x1e
|
|
blo _02252698
|
|
bl ov02_022526C8
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0xf2
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02252698
|
|
_02252638:
|
|
add r0, #0xf2
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0xf2
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0xf2
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x50
|
|
blo _02252698
|
|
mov r0, #0x1e
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
ldr r3, _022526C4 ; =0x00007FFF
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02252698
|
|
_0225266E:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _02252698
|
|
add r0, r4, #0
|
|
bl ov02_022526EC
|
|
cmp r0, #0
|
|
beq _02252698
|
|
add r0, r4, #0
|
|
bl ov02_0225296C
|
|
add r0, r4, #4
|
|
bl ov01_021F46DC
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r4, r5, pc}
|
|
_02252698:
|
|
add r0, r4, #0
|
|
add r0, #0xf0
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _022526AA
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
bl ov02_022529C4
|
|
_022526AA:
|
|
add r0, r4, #0
|
|
add r0, #0xf1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _022526BC
|
|
add r4, #0x68
|
|
add r0, r4, #0
|
|
bl ov01_021FBF68
|
|
_022526BC:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_022526C4: .word 0x00007FFF
|
|
thumb_func_end ov02_0225255C
|
|
|
|
thumb_func_start ov02_022526C8
|
|
ov02_022526C8: ; 0x022526C8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #3
|
|
mov r1, #0xd
|
|
bl ov01_021F467C
|
|
str r0, [r4, #4]
|
|
ldr r0, _022526E8 ; =ov02_022526FC
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
mov r0, #0
|
|
strb r0, [r4, #2]
|
|
pop {r4, pc}
|
|
nop
|
|
_022526E8: .word ov02_022526FC
|
|
thumb_func_end ov02_022526C8
|
|
|
|
thumb_func_start ov02_022526EC
|
|
ov02_022526EC: ; 0x022526EC
|
|
ldrb r0, [r0, #2]
|
|
cmp r0, #0
|
|
beq _022526F6
|
|
mov r0, #1
|
|
bx lr
|
|
_022526F6:
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov02_022526EC
|
|
|
|
thumb_func_start ov02_022526FC
|
|
ov02_022526FC: ; 0x022526FC
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0xee
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
beq _02252716
|
|
cmp r0, #1
|
|
beq _02252746
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
_02252716:
|
|
ldr r3, _02252760 ; =ov02_02253CE0
|
|
add r2, sp, #0
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #0x24]
|
|
bl Camera_GetPerspectiveAngle
|
|
add r1, sp, #0
|
|
strh r0, [r1, #8]
|
|
add r0, r4, #0
|
|
add r1, sp, #0
|
|
bl ov02_02252764
|
|
add r0, r4, #0
|
|
add r0, #0xee
|
|
ldrh r0, [r0]
|
|
add r4, #0xee
|
|
add sp, #0xc
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
pop {r4, r5, pc}
|
|
_02252746:
|
|
add r0, r4, #0
|
|
bl ov02_02252888
|
|
cmp r0, #0
|
|
beq _0225275A
|
|
mov r0, #1
|
|
strb r0, [r4, #2]
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
_0225275A:
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_02252760: .word ov02_02253CE0
|
|
thumb_func_end ov02_022526FC
|
|
|
|
thumb_func_start ov02_02252764
|
|
ov02_02252764: ; 0x02252764
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r1, #0
|
|
strb r1, [r5, #3]
|
|
add r0, #0xe6
|
|
strh r1, [r0]
|
|
add r0, r5, #0
|
|
ldr r1, [r4]
|
|
add r0, #0xe0
|
|
str r1, [r0]
|
|
add r0, r5, #0
|
|
ldrh r1, [r5]
|
|
add r0, #0xe4
|
|
strh r1, [r0]
|
|
ldr r0, [r5, #8]
|
|
ldr r0, [r0, #0x24]
|
|
bl Camera_GetPerspectiveAngle
|
|
add r1, r5, #0
|
|
add r1, #0xea
|
|
strh r0, [r1]
|
|
add r0, r5, #0
|
|
ldrh r1, [r4, #8]
|
|
add r0, #0xec
|
|
mov r2, #1
|
|
strh r1, [r0]
|
|
add r0, r5, #0
|
|
ldr r1, [r4, #4]
|
|
add r0, #0xe8
|
|
strh r1, [r0]
|
|
ldr r0, _022527AC ; =ov02_0225286C
|
|
add r1, r5, #0
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_022527AC: .word ov02_0225286C
|
|
thumb_func_end ov02_02252764
|
|
|
|
thumb_func_start ov02_022527B0
|
|
ov02_022527B0: ; 0x022527B0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x40
|
|
ldr r3, _02252864 ; =ov02_02253CD4
|
|
add r5, r0, #0
|
|
ldmia r3!, {r0, r1}
|
|
add r2, sp, #4
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
ldr r0, [r5, #8]
|
|
ldr r0, [r0, #0x24]
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
add r0, #0xe6
|
|
ldrh r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r5, #0
|
|
add r0, #0xe6
|
|
strh r1, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0xe6
|
|
ldrh r6, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0xe8
|
|
ldrh r7, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0xea
|
|
ldrh r4, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0xec
|
|
ldrh r0, [r0]
|
|
sub r1, r0, r4
|
|
add r0, r1, #0
|
|
mul r0, r6
|
|
add r1, r7, #0
|
|
bl _s32_div_f
|
|
add r4, r0, r4
|
|
add r0, r5, #0
|
|
add r0, #0xe0
|
|
ldr r1, [r0]
|
|
add r0, r1, #0
|
|
mul r0, r6
|
|
add r1, r7, #0
|
|
bl _s32_div_f
|
|
add r1, r5, #0
|
|
add r1, #0xe4
|
|
ldrh r1, [r1]
|
|
ldr r3, _02252868 ; =FX_SinCosTable_
|
|
add r0, r1, r0
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
asr r0, r0, #4
|
|
lsl r2, r0, #1
|
|
lsl r1, r2, #1
|
|
add r2, r2, #1
|
|
lsl r2, r2, #1
|
|
ldrsh r1, [r3, r1]
|
|
ldrsh r2, [r3, r2]
|
|
add r0, sp, #0x10
|
|
bl MTX_RotZ33_
|
|
add r0, sp, #4
|
|
add r1, sp, #0x10
|
|
add r2, sp, #0x34
|
|
bl MTX_MultVec33
|
|
ldr r1, [sp]
|
|
add r0, sp, #0x34
|
|
bl Camera_SetLookAtCamUp
|
|
lsl r0, r4, #0x10
|
|
ldr r1, [sp]
|
|
lsr r0, r0, #0x10
|
|
bl Camera_SetPerspectiveAngle
|
|
add r0, r5, #0
|
|
add r0, #0xe6
|
|
add r5, #0xe8
|
|
ldrh r1, [r0]
|
|
ldrh r0, [r5]
|
|
cmp r1, r0
|
|
blo _0225285E
|
|
add sp, #0x40
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225285E:
|
|
mov r0, #0
|
|
add sp, #0x40
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_02252864: .word ov02_02253CD4
|
|
_02252868: .word FX_SinCosTable_
|
|
thumb_func_end ov02_022527B0
|
|
|
|
thumb_func_start ov02_0225286C
|
|
ov02_0225286C: ; 0x0225286C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl ov02_022527B0
|
|
cmp r0, #0
|
|
beq _02252886
|
|
mov r0, #1
|
|
strb r0, [r4, #3]
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
_02252886:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_0225286C
|
|
|
|
thumb_func_start ov02_02252888
|
|
ov02_02252888: ; 0x02252888
|
|
ldrb r0, [r0, #3]
|
|
cmp r0, #0
|
|
beq _02252892
|
|
mov r0, #1
|
|
bx lr
|
|
_02252892:
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02252888
|
|
|
|
thumb_func_start ov02_02252898
|
|
ov02_02252898: ; 0x02252898
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
ldr r3, _02252968 ; =ov02_02253CEC
|
|
str r0, [sp, #8]
|
|
ldmia r3!, {r0, r1}
|
|
add r2, sp, #0x1c
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
mov r1, #4
|
|
str r0, [r2]
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0x20
|
|
add r0, #0xc
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
ldr r0, [sp, #8]
|
|
mov r1, #0xae
|
|
add r0, #0x1c
|
|
mov r2, #0x4b
|
|
mov r3, #4
|
|
bl ov01_021FBCD8
|
|
ldr r0, [sp, #8]
|
|
ldr r4, [sp, #8]
|
|
ldr r7, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
add r0, #0x1c
|
|
mov r5, #0
|
|
add r4, #0xc
|
|
add r7, #0x2c
|
|
str r0, [sp, #0xc]
|
|
_022528D6:
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r0, #0x14
|
|
mul r0, r5
|
|
str r4, [sp, #4]
|
|
lsl r6, r5, #2
|
|
add r3, sp, #0x1c
|
|
ldr r1, [sp, #0xc]
|
|
ldr r3, [r3, r6]
|
|
add r0, r7, r0
|
|
mov r2, #0xae
|
|
bl ov01_021FBE44
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
cmp r5, #3
|
|
blo _022528D6
|
|
ldr r0, [sp, #8]
|
|
ldr r1, [sp, #8]
|
|
add r0, #0x68
|
|
add r1, #0x1c
|
|
bl ov01_021FBF2C
|
|
ldr r6, [sp, #8]
|
|
ldr r4, [sp, #8]
|
|
mov r5, #0
|
|
add r6, #0x68
|
|
add r4, #0x2c
|
|
mov r7, #0x14
|
|
_02252912:
|
|
add r1, r5, #0
|
|
mul r1, r7
|
|
add r0, r6, #0
|
|
add r1, r4, r1
|
|
bl ov01_021FBF50
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
cmp r5, #3
|
|
blo _02252912
|
|
ldr r0, [sp, #8]
|
|
mov r1, #1
|
|
add r0, #0x68
|
|
bl ov01_021FC004
|
|
ldr r0, [sp, #8]
|
|
mov r1, #0
|
|
add r0, #0x2c
|
|
bl ov02_022529A0
|
|
ldr r0, [sp, #8]
|
|
ldr r0, [r0, #8]
|
|
bl FollowingPokemon_GetMapObject
|
|
add r1, sp, #0x10
|
|
bl MapObject_GetPositionVec
|
|
ldr r0, [sp, #8]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, [sp, #0x14]
|
|
ldr r3, [sp, #0x18]
|
|
add r0, #0x68
|
|
bl ov01_021FC00C
|
|
ldr r0, [sp, #8]
|
|
mov r1, #1
|
|
add r0, #0xf1
|
|
str r0, [sp, #8]
|
|
strb r1, [r0]
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02252968: .word ov02_02253CEC
|
|
thumb_func_end ov02_02252898
|
|
|
|
thumb_func_start ov02_0225296C
|
|
ov02_0225296C: ; 0x0225296C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r0, #0
|
|
add r6, r0, #0
|
|
str r0, [sp]
|
|
mov r5, #0
|
|
add r4, #0x2c
|
|
add r6, #0xc
|
|
mov r7, #0x14
|
|
_0225297C:
|
|
add r0, r5, #0
|
|
mul r0, r7
|
|
add r0, r4, r0
|
|
add r1, r6, #0
|
|
bl ov01_021FBE80
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
cmp r5, #3
|
|
blo _0225297C
|
|
ldr r0, [sp]
|
|
add r0, #0x1c
|
|
str r0, [sp]
|
|
bl ov01_021FBDA8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_0225296C
|
|
|
|
thumb_func_start ov02_022529A0
|
|
ov02_022529A0: ; 0x022529A0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r4, #0
|
|
mov r7, #0x14
|
|
_022529AA:
|
|
add r0, r4, #0
|
|
mul r0, r7
|
|
add r0, r5, r0
|
|
add r1, r6, #0
|
|
bl ov01_021FBF20
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #3
|
|
blo _022529AA
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_022529A0
|
|
|
|
thumb_func_start ov02_022529C4
|
|
ov02_022529C4: ; 0x022529C4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r5, #0
|
|
add r6, r0, #0
|
|
add r4, r5, #0
|
|
mov r7, #0x14
|
|
_022529CE:
|
|
add r0, r4, #0
|
|
mul r0, r7
|
|
mov r1, #1
|
|
add r0, r6, r0
|
|
lsl r1, r1, #0xc
|
|
bl ov01_021FBEE4
|
|
cmp r0, #0
|
|
beq _022529E6
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
_022529E6:
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #3
|
|
blo _022529CE
|
|
cmp r5, #3
|
|
bne _022529F8
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022529F8:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_022529C4
|
|
|
|
thumb_func_start ov02_022529FC
|
|
ov02_022529FC: ; 0x022529FC
|
|
push {r3, r4, r5, lr}
|
|
mov r1, #0x8a
|
|
add r5, r0, #0
|
|
mov r0, #0xb
|
|
lsl r1, r1, #2
|
|
bl AllocFromHeapAtEnd
|
|
mov r2, #0x8a
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #2
|
|
bl MI_CpuFill8
|
|
str r5, [r4]
|
|
ldr r0, [r5, #0x10]
|
|
ldr r1, _02252A24 ; =ov02_02252A28
|
|
add r2, r4, #0
|
|
bl TaskManager_Call
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_02252A24: .word ov02_02252A28
|
|
thumb_func_end ov02_022529FC
|
|
|
|
thumb_func_start ov02_02252A28
|
|
ov02_02252A28: ; 0x02252A28
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
bl TaskManager_GetStatePtr
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r0, r4, #0
|
|
bl TaskManager_GetEnv
|
|
add r4, r0, #0
|
|
ldr r0, [r5]
|
|
cmp r0, #5
|
|
bhi _02252B3A
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02252A54: ; jump table
|
|
.short _02252A60 - _02252A54 - 2 ; case 0
|
|
.short _02252A80 - _02252A54 - 2 ; case 1
|
|
.short _02252AAC - _02252A54 - 2 ; case 2
|
|
.short _02252AD2 - _02252A54 - 2 ; case 3
|
|
.short _02252AF2 - _02252A54 - 2 ; case 4
|
|
.short _02252B20 - _02252A54 - 2 ; case 5
|
|
_02252A60:
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
ldr r3, _02252B94 ; =0x00007FFF
|
|
mov r0, #3
|
|
add r2, r1, #0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02252B3A
|
|
_02252A80:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _02252B3A
|
|
add r0, r4, #0
|
|
bl ov02_02252BA4
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
ldr r3, _02252B94 ; =0x00007FFF
|
|
mov r0, #3
|
|
mov r2, #0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02252B3A
|
|
_02252AAC:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _02252B3A
|
|
mov r2, #0x89
|
|
lsl r2, r2, #2
|
|
mov r1, #1
|
|
strb r1, [r4, r2]
|
|
add r0, r2, #3
|
|
mov r3, #0
|
|
sub r2, #0x78
|
|
strb r3, [r4, r0]
|
|
add r0, r4, r2
|
|
bl ov01_021FC004
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02252B3A
|
|
_02252AD2:
|
|
ldr r1, _02252B98 ; =0x00000227
|
|
ldrb r0, [r4, r1]
|
|
add r0, r0, #1
|
|
strb r0, [r4, r1]
|
|
ldrb r0, [r4, r1]
|
|
cmp r0, #0x64
|
|
blo _02252B3A
|
|
mov r2, #1
|
|
sub r0, r1, #2
|
|
strb r2, [r4, r0]
|
|
mov r0, #0
|
|
strb r0, [r4, r1]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02252B3A
|
|
_02252AF2:
|
|
ldr r0, _02252B98 ; =0x00000227
|
|
ldrb r1, [r4, r0]
|
|
add r1, r1, #1
|
|
strb r1, [r4, r0]
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #0x96
|
|
blo _02252B3A
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
ldr r3, _02252B94 ; =0x00007FFF
|
|
mov r0, #3
|
|
add r2, r1, #0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02252B3A
|
|
_02252B20:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _02252B3A
|
|
add r0, r4, #0
|
|
bl ov02_02252DF8
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r4, r5, pc}
|
|
_02252B3A:
|
|
mov r0, #0x89
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _02252B58
|
|
add r0, r4, #0
|
|
add r0, #0x34
|
|
mov r1, #2
|
|
bl ov02_02252EA8
|
|
add r0, r4, #0
|
|
add r0, #0x5c
|
|
mov r1, #2
|
|
bl ov02_02252EA8
|
|
_02252B58:
|
|
ldr r0, _02252B9C ; =0x00000225
|
|
ldrb r1, [r4, r0]
|
|
cmp r1, #0
|
|
beq _02252B6A
|
|
sub r0, #0xa1
|
|
add r0, r4, r0
|
|
mov r1, #2
|
|
bl ov02_02252EA8
|
|
_02252B6A:
|
|
ldr r0, _02252BA0 ; =0x00000226
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _02252B8C
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
bl ov01_021FBF68
|
|
add r0, r4, #0
|
|
add r0, #0xfc
|
|
bl ov01_021FBF68
|
|
mov r0, #0x6b
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ov01_021FBF68
|
|
_02252B8C:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_02252B94: .word 0x00007FFF
|
|
_02252B98: .word 0x00000227
|
|
_02252B9C: .word 0x00000225
|
|
_02252BA0: .word 0x00000226
|
|
thumb_func_end ov02_02252A28
|
|
|
|
thumb_func_start ov02_02252BA4
|
|
ov02_02252BA4: ; 0x02252BA4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x50
|
|
ldr r3, _02252DEC ; =ov02_02253D14
|
|
add r2, sp, #0x40
|
|
str r0, [sp, #8]
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, _02252DF0 ; =ov02_02253CF8
|
|
ldr r1, [r0, #4]
|
|
ldr r2, [r0]
|
|
str r1, [sp, #0x30]
|
|
ldr r1, [r0, #8]
|
|
ldr r0, [r0, #0xc]
|
|
str r2, [sp, #0x2c]
|
|
str r0, [sp, #0x28]
|
|
ldr r0, [sp, #8]
|
|
str r1, [sp, #0x24]
|
|
add r0, r0, #4
|
|
mov r1, #4
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
ldr r4, [sp, #8]
|
|
mov r5, #0
|
|
add r4, #0x14
|
|
mov r7, #0xae
|
|
add r6, sp, #0x24
|
|
_02252BDE:
|
|
lsl r2, r5, #2
|
|
lsl r0, r5, #4
|
|
ldr r2, [r6, r2]
|
|
add r0, r4, r0
|
|
add r1, r7, #0
|
|
mov r3, #4
|
|
bl ov01_021FBCD8
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
cmp r5, #2
|
|
blo _02252BDE
|
|
mov r1, #0x5d
|
|
ldr r0, [sp, #8]
|
|
lsl r1, r1, #2
|
|
add r0, r0, r1
|
|
mov r1, #0xae
|
|
mov r2, #0x55
|
|
mov r3, #4
|
|
bl ov01_021FBCD8
|
|
mov r0, #0
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #8]
|
|
add r0, r0, #4
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [sp, #8]
|
|
str r0, [sp, #0x14]
|
|
add r0, #0x14
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp, #8]
|
|
str r0, [sp, #0x18]
|
|
add r0, #0x34
|
|
str r0, [sp, #0x18]
|
|
_02252C24:
|
|
ldr r0, [sp, #0x10]
|
|
mov r5, #0
|
|
lsl r1, r0, #3
|
|
add r0, sp, #0x40
|
|
add r6, r0, r1
|
|
ldr r0, [sp, #0x10]
|
|
add r1, r0, #0
|
|
lsl r7, r0, #4
|
|
mov r0, #0x28
|
|
add r2, r1, #0
|
|
mul r2, r0
|
|
ldr r0, [sp, #0x18]
|
|
add r4, r0, r2
|
|
_02252C3E:
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x1c]
|
|
ldr r1, [sp, #0x14]
|
|
str r0, [sp, #4]
|
|
mov r0, #0x14
|
|
lsl r3, r5, #2
|
|
mul r0, r5
|
|
ldr r3, [r6, r3]
|
|
add r0, r4, r0
|
|
add r1, r1, r7
|
|
mov r2, #0xae
|
|
bl ov01_021FBE44
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
cmp r5, #2
|
|
blo _02252C3E
|
|
ldr r0, [sp, #0x10]
|
|
add r0, r0, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x10]
|
|
cmp r0, #2
|
|
blo _02252C24
|
|
ldr r0, [sp, #8]
|
|
mov r1, #0x61
|
|
lsl r1, r1, #2
|
|
mov r5, #0
|
|
add r4, r0, #4
|
|
add r7, r0, r1
|
|
_02252C7E:
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r0, #0x14
|
|
mov r1, #0x5d
|
|
mul r0, r5
|
|
ldr r2, [sp, #8]
|
|
lsl r1, r1, #2
|
|
add r1, r2, r1
|
|
lsl r6, r5, #2
|
|
add r3, sp, #0x2c
|
|
ldr r3, [r3, r6]
|
|
add r0, r7, r0
|
|
mov r2, #0xae
|
|
str r4, [sp, #4]
|
|
bl ov01_021FBE44
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
cmp r5, #2
|
|
blo _02252C7E
|
|
ldr r4, [sp, #8]
|
|
ldr r6, [sp, #8]
|
|
mov r5, #0
|
|
add r4, #0x84
|
|
add r6, #0x14
|
|
mov r7, #0x78
|
|
_02252CB4:
|
|
add r0, r5, #0
|
|
mul r0, r7
|
|
lsl r1, r5, #4
|
|
add r0, r4, r0
|
|
add r1, r6, r1
|
|
bl ov01_021FBF2C
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
cmp r5, #2
|
|
blo _02252CB4
|
|
mov r2, #0x6b
|
|
ldr r0, [sp, #8]
|
|
lsl r2, r2, #2
|
|
add r0, r0, r2
|
|
ldr r1, [sp, #8]
|
|
sub r2, #0x38
|
|
add r1, r1, r2
|
|
bl ov01_021FBF2C
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #8]
|
|
ldr r7, [sp, #8]
|
|
str r0, [sp, #0x20]
|
|
add r0, #0x34
|
|
str r0, [sp, #0x20]
|
|
add r7, #0x84
|
|
_02252CEE:
|
|
ldr r1, [sp, #0xc]
|
|
mov r0, #0x28
|
|
add r2, r1, #0
|
|
mul r2, r0
|
|
ldr r0, [sp, #0x20]
|
|
add r6, r1, #0
|
|
add r4, r0, r2
|
|
mov r0, #0x78
|
|
mov r5, #0
|
|
mul r6, r0
|
|
_02252D02:
|
|
mov r1, #0x14
|
|
mul r1, r5
|
|
add r0, r7, r6
|
|
add r1, r4, r1
|
|
bl ov01_021FBF50
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
cmp r5, #2
|
|
blo _02252D02
|
|
ldr r0, [sp, #0xc]
|
|
add r0, r0, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0xc]
|
|
cmp r0, #2
|
|
blo _02252CEE
|
|
mov r6, #0x6b
|
|
lsl r6, r6, #2
|
|
add r1, r6, #0
|
|
ldr r0, [sp, #8]
|
|
sub r1, #0x28
|
|
mov r5, #0
|
|
add r4, r0, r1
|
|
mov r7, #0x14
|
|
_02252D36:
|
|
ldr r0, [sp, #8]
|
|
add r1, r5, #0
|
|
mul r1, r7
|
|
add r0, r0, r6
|
|
add r1, r4, r1
|
|
bl ov01_021FBF50
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
cmp r5, #2
|
|
blo _02252D36
|
|
ldr r4, [sp, #8]
|
|
ldr r6, [sp, #8]
|
|
mov r5, #0
|
|
add r4, #0x84
|
|
add r6, #0x34
|
|
mov r7, #0x28
|
|
_02252D5A:
|
|
mov r0, #0x78
|
|
mul r0, r5
|
|
add r0, r4, r0
|
|
mov r1, #1
|
|
bl ov01_021FC004
|
|
add r0, r5, #0
|
|
mul r0, r7
|
|
add r0, r6, r0
|
|
mov r1, #2
|
|
mov r2, #0
|
|
bl ov02_02252E80
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
cmp r5, #2
|
|
blo _02252D5A
|
|
mov r1, #0x6b
|
|
ldr r0, [sp, #8]
|
|
lsl r1, r1, #2
|
|
add r0, r0, r1
|
|
mov r1, #0
|
|
bl ov01_021FC004
|
|
mov r1, #0x61
|
|
ldr r0, [sp, #8]
|
|
lsl r1, r1, #2
|
|
add r0, r0, r1
|
|
mov r1, #2
|
|
mov r2, #0
|
|
bl ov02_02252E80
|
|
ldr r0, [sp, #8]
|
|
ldr r0, [r0]
|
|
bl FollowingPokemon_GetMapObject
|
|
add r1, sp, #0x34
|
|
bl MapObject_GetPositionVec
|
|
ldr r4, [sp, #8]
|
|
mov r5, #0
|
|
add r4, #0x84
|
|
mov r6, #0x78
|
|
_02252DB2:
|
|
add r0, r5, #0
|
|
mul r0, r6
|
|
ldr r1, [sp, #0x34]
|
|
ldr r2, [sp, #0x38]
|
|
ldr r3, [sp, #0x3c]
|
|
add r0, r4, r0
|
|
bl ov01_021FC00C
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
cmp r5, #2
|
|
blo _02252DB2
|
|
mov r1, #0x6b
|
|
ldr r0, [sp, #8]
|
|
lsl r1, r1, #2
|
|
add r0, r0, r1
|
|
ldr r1, [sp, #0x34]
|
|
ldr r2, [sp, #0x38]
|
|
ldr r3, [sp, #0x3c]
|
|
bl ov01_021FC00C
|
|
ldr r1, _02252DF4 ; =0x00000226
|
|
ldr r0, [sp, #8]
|
|
mov r2, #1
|
|
strb r2, [r0, r1]
|
|
add sp, #0x50
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02252DEC: .word ov02_02253D14
|
|
_02252DF0: .word ov02_02253CF8
|
|
_02252DF4: .word 0x00000226
|
|
thumb_func_end ov02_02252BA4
|
|
|
|
thumb_func_start ov02_02252DF8
|
|
ov02_02252DF8: ; 0x02252DF8
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
str r0, [sp, #8]
|
|
add r0, #0x14
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
str r0, [sp, #4]
|
|
add r0, #0x34
|
|
str r0, [sp, #4]
|
|
mov r7, #0x14
|
|
_02252E14:
|
|
ldr r1, [sp]
|
|
mov r0, #0x28
|
|
add r2, r1, #0
|
|
mul r2, r0
|
|
ldr r0, [sp, #4]
|
|
mov r4, #0
|
|
add r6, r0, r2
|
|
_02252E22:
|
|
add r0, r4, #0
|
|
mul r0, r7
|
|
add r0, r6, r0
|
|
add r1, r5, #4
|
|
bl ov01_021FBE80
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #2
|
|
blo _02252E22
|
|
ldr r0, [sp]
|
|
lsl r1, r0, #4
|
|
ldr r0, [sp, #8]
|
|
add r0, r0, r1
|
|
bl ov01_021FBDA8
|
|
ldr r0, [sp]
|
|
add r0, r0, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
cmp r0, #2
|
|
blo _02252E14
|
|
mov r0, #0x61
|
|
lsl r0, r0, #2
|
|
mov r4, #0
|
|
add r6, r5, r0
|
|
mov r7, #0x14
|
|
_02252E5C:
|
|
add r0, r4, #0
|
|
mul r0, r7
|
|
add r0, r6, r0
|
|
add r1, r5, #4
|
|
bl ov01_021FBE80
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #2
|
|
blo _02252E5C
|
|
mov r0, #0x5d
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
bl ov01_021FBDA8
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_02252DF8
|
|
|
|
thumb_func_start ov02_02252E80
|
|
ov02_02252E80: ; 0x02252E80
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
add r6, r0, #0
|
|
add r7, r2, #0
|
|
mov r4, #0
|
|
cmp r5, #0
|
|
bls _02252EA4
|
|
_02252E8E:
|
|
mov r0, #0x14
|
|
mul r0, r4
|
|
add r0, r6, r0
|
|
add r1, r7, #0
|
|
bl ov01_021FBF20
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, r5
|
|
blo _02252E8E
|
|
_02252EA4:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov02_02252E80
|
|
|
|
thumb_func_start ov02_02252EA8
|
|
ov02_02252EA8: ; 0x02252EA8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r5, #0
|
|
add r6, r1, #0
|
|
add r7, r0, #0
|
|
add r4, r5, #0
|
|
cmp r6, #0
|
|
bls _02252ED8
|
|
_02252EB6:
|
|
mov r0, #0x14
|
|
mul r0, r4
|
|
mov r1, #1
|
|
add r0, r7, r0
|
|
lsl r1, r1, #0xc
|
|
bl ov01_021FBEE4
|
|
cmp r0, #0
|
|
beq _02252ECE
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
_02252ECE:
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, r6
|
|
blo _02252EB6
|
|
_02252ED8:
|
|
cmp r5, r6
|
|
bne _02252EE0
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02252EE0:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_02252EA8
|
|
|
|
thumb_func_start ov02_02252EE4
|
|
ov02_02252EE4: ; 0x02252EE4
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r0, #0xb
|
|
mov r1, #0xf0
|
|
bl AllocFromHeapAtEnd
|
|
add r6, r0, #0
|
|
mov r1, #0
|
|
mov r2, #0xf0
|
|
bl MI_CpuFill8
|
|
add r0, r6, #0
|
|
str r5, [r6]
|
|
add r0, #0xef
|
|
strb r4, [r0]
|
|
ldr r0, [r5, #0x10]
|
|
ldr r1, _02252F10 ; =ov02_02252F14
|
|
add r2, r6, #0
|
|
bl TaskManager_Call
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_02252F10: .word ov02_02252F14
|
|
thumb_func_end ov02_02252EE4
|
|
|
|
thumb_func_start ov02_02252F14
|
|
ov02_02252F14: ; 0x02252F14
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
bl TaskManager_GetStatePtr
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r0, r5, #0
|
|
bl TaskManager_GetEnv
|
|
ldr r1, [r4]
|
|
add r5, r0, #0
|
|
cmp r1, #4
|
|
bhi _02252FD4
|
|
add r2, r1, r1
|
|
add r2, pc
|
|
ldrh r2, [r2, #6]
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
add pc, r2
|
|
_02252F40: ; jump table
|
|
.short _02252F4A - _02252F40 - 2 ; case 0
|
|
.short _02252F6A - _02252F40 - 2 ; case 1
|
|
.short _02252F96 - _02252F40 - 2 ; case 2
|
|
.short _02252FB6 - _02252F40 - 2 ; case 3
|
|
.short _02252FC4 - _02252F40 - 2 ; case 4
|
|
_02252F4A:
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
ldr r3, _02253008 ; =0x00007FFF
|
|
mov r0, #3
|
|
add r2, r1, #0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _02252FD4
|
|
_02252F6A:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _02252FD4
|
|
add r0, r5, #0
|
|
bl ov02_0225300C
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
ldr r3, _02253008 ; =0x00007FFF
|
|
mov r0, #3
|
|
mov r2, #0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _02252FD4
|
|
_02252F96:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _02252FD4
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
add r0, #0xec
|
|
strb r1, [r0]
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
add r0, #0xed
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _02252FD4
|
|
_02252FB6:
|
|
add r0, #0xed
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _02252FD4
|
|
add r0, r1, #1
|
|
str r0, [r4]
|
|
b _02252FD4
|
|
_02252FC4:
|
|
bl ov02_02253108
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r4, r5, pc}
|
|
_02252FD4:
|
|
add r0, r5, #0
|
|
add r0, #0xec
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _02252FEE
|
|
add r0, r5, #0
|
|
add r0, #0x24
|
|
mov r1, #4
|
|
bl ov02_02252EA8
|
|
add r1, r5, #0
|
|
add r1, #0xed
|
|
strb r0, [r1]
|
|
_02252FEE:
|
|
add r0, r5, #0
|
|
add r0, #0xee
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _02253000
|
|
add r5, #0x74
|
|
add r0, r5, #0
|
|
bl ov01_021FBF68
|
|
_02253000:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_02253008: .word 0x00007FFF
|
|
thumb_func_end ov02_02252F14
|
|
|
|
thumb_func_start ov02_0225300C
|
|
ov02_0225300C: ; 0x0225300C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x5c
|
|
ldr r4, _02253100 ; =ov02_02253D24
|
|
add r7, r0, #0
|
|
add r3, sp, #0x2c
|
|
mov r2, #6
|
|
_02253018:
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _02253018
|
|
ldr r3, _02253104 ; =ov02_02253D08
|
|
add r2, sp, #0x20
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
mov r1, #4
|
|
str r0, [r2]
|
|
add r0, r7, #4
|
|
mov r2, #0x20
|
|
bl GF_ExpHeap_FndInitAllocator
|
|
add r2, r7, #0
|
|
add r2, #0xef
|
|
ldrb r2, [r2]
|
|
add r0, r7, #0
|
|
add r0, #0x14
|
|
lsl r3, r2, #2
|
|
add r2, sp, #0x20
|
|
ldr r2, [r2, r3]
|
|
mov r1, #0xae
|
|
mov r3, #4
|
|
bl ov01_021FBCD8
|
|
add r0, r7, #4
|
|
str r0, [sp, #0x10]
|
|
add r0, r7, #0
|
|
str r0, [sp, #8]
|
|
add r0, #0x24
|
|
str r0, [sp, #8]
|
|
add r0, r7, #0
|
|
str r0, [sp, #0xc]
|
|
add r0, #0x14
|
|
mov r4, #0
|
|
str r0, [sp, #0xc]
|
|
_02253064:
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x10]
|
|
add r3, r7, #0
|
|
str r0, [sp, #4]
|
|
add r3, #0xef
|
|
ldrb r3, [r3]
|
|
mov r0, #0x14
|
|
add r1, r4, #0
|
|
mul r1, r0
|
|
ldr r0, [sp, #8]
|
|
lsl r6, r3, #4
|
|
add r3, sp, #0x2c
|
|
add r0, r0, r1
|
|
lsl r5, r4, #2
|
|
add r3, r3, r6
|
|
ldr r1, [sp, #0xc]
|
|
ldr r3, [r5, r3]
|
|
mov r2, #0xae
|
|
bl ov01_021FBE44
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #4
|
|
blo _02253064
|
|
add r0, r7, #0
|
|
add r1, r7, #0
|
|
add r0, #0x74
|
|
add r1, #0x14
|
|
bl ov01_021FBF2C
|
|
add r6, r7, #0
|
|
add r5, r7, #0
|
|
mov r4, #0
|
|
add r6, #0x74
|
|
add r5, #0x24
|
|
_022530AE:
|
|
mov r1, #0x14
|
|
mul r1, r4
|
|
add r0, r6, #0
|
|
add r1, r5, r1
|
|
bl ov01_021FBF50
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #4
|
|
blo _022530AE
|
|
add r0, r7, #0
|
|
add r0, #0x74
|
|
mov r1, #1
|
|
bl ov01_021FC004
|
|
add r0, r7, #0
|
|
add r0, #0x24
|
|
mov r1, #4
|
|
mov r2, #0
|
|
bl ov02_02252E80
|
|
ldr r0, [r7]
|
|
bl FollowingPokemon_GetMapObject
|
|
add r1, sp, #0x14
|
|
bl MapObject_GetPositionVec
|
|
add r0, r7, #0
|
|
ldr r1, [sp, #0x14]
|
|
ldr r2, [sp, #0x18]
|
|
ldr r3, [sp, #0x1c]
|
|
add r0, #0x74
|
|
bl ov01_021FC00C
|
|
mov r0, #1
|
|
add r7, #0xee
|
|
strb r0, [r7]
|
|
add sp, #0x5c
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_02253100: .word ov02_02253D24
|
|
_02253104: .word ov02_02253D08
|
|
thumb_func_end ov02_0225300C
|
|
|
|
thumb_func_start ov02_02253108
|
|
ov02_02253108: ; 0x02253108
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r6, r5, #0
|
|
mov r4, #0
|
|
add r6, #0x24
|
|
mov r7, #0x14
|
|
_02253114:
|
|
add r0, r4, #0
|
|
mul r0, r7
|
|
add r0, r6, r0
|
|
add r1, r5, #4
|
|
bl ov01_021FBE80
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #4
|
|
blo _02253114
|
|
add r5, #0x14
|
|
add r0, r5, #0
|
|
bl ov01_021FBDA8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_02253108
|
|
|
|
thumb_func_start ov02_02253134
|
|
ov02_02253134: ; 0x02253134
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
bl Save_FashionData_Get
|
|
bl Save_FashionData_GetFashionCase
|
|
ldr r6, _02253168 ; =ov02_02253D54
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
mov r7, #1
|
|
_02253146:
|
|
ldrb r1, [r6, r4]
|
|
add r0, r5, #0
|
|
add r2, r7, #0
|
|
bl sub_0202BA2C
|
|
cmp r0, #1
|
|
bne _02253158
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02253158:
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #0x27
|
|
blo _02253146
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02253168: .word ov02_02253D54
|
|
thumb_func_end ov02_02253134
|
|
|
|
thumb_func_start ov02_0225316C
|
|
ov02_0225316C: ; 0x0225316C
|
|
push {r3, lr}
|
|
bl LCRandom
|
|
mov r1, #0x27
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r1, r0, #0x18
|
|
ldr r0, _02253184 ; =ov02_02253D54
|
|
ldrb r0, [r0, r1]
|
|
pop {r3, pc}
|
|
nop
|
|
_02253184: .word ov02_02253D54
|
|
thumb_func_end ov02_0225316C
|
|
|
|
thumb_func_start ov02_02253188
|
|
ov02_02253188: ; 0x02253188
|
|
push {r3, r4, r5, lr}
|
|
bl Save_FashionData_Get
|
|
bl Save_FashionData_GetFashionCase
|
|
add r4, r0, #0
|
|
mov r5, #0
|
|
_02253196:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl sub_0202BA5C
|
|
cmp r0, #0
|
|
bne _022531A6
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_022531A6:
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
cmp r5, #0xe
|
|
blo _02253196
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov02_02253188
|
|
|
|
thumb_func_start ov02_022531B4
|
|
ov02_022531B4: ; 0x022531B4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
mov r4, #0
|
|
add r1, r4, #0
|
|
add r3, r4, #0
|
|
add r2, sp, #0
|
|
_022531C0:
|
|
strb r3, [r2, r1]
|
|
add r1, r1, #1
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
cmp r1, #0xe
|
|
blo _022531C0
|
|
bl Save_FashionData_Get
|
|
bl Save_FashionData_GetFashionCase
|
|
add r6, r0, #0
|
|
mov r5, #0
|
|
add r7, sp, #0
|
|
_022531DA:
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
bl sub_0202BA5C
|
|
cmp r0, #0
|
|
bne _022531EE
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
strb r5, [r7, r4]
|
|
lsr r4, r0, #0x18
|
|
_022531EE:
|
|
add r0, r5, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
cmp r5, #0xe
|
|
blo _022531DA
|
|
cmp r4, #0
|
|
bne _02253206
|
|
bl GF_AssertFail
|
|
add sp, #0x10
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02253206:
|
|
bl LCRandom
|
|
add r1, r4, #0
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r1, r0, #0x18
|
|
add r0, sp, #0
|
|
ldrb r0, [r0, r1]
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov02_022531B4
|
|
|
|
.rodata
|
|
|
|
ov02_0225321C:
|
|
.byte 0x0B, 0x00
|
|
|
|
ov02_0225321E:
|
|
.byte 0x04, 0x00
|
|
.byte 0x05, 0x00
|
|
|
|
ov02_02253222:
|
|
.byte 0x43, 0x00, 0x42, 0x00, 0x44, 0x00
|
|
|
|
ov02_02253228:
|
|
.byte 0x45, 0x00, 0x46, 0x00, 0x47, 0x00
|
|
|
|
ov02_0225322E:
|
|
.byte 0x3B, 0x00, 0x3C, 0x00, 0x3D, 0x00
|
|
|
|
ov02_02253234:
|
|
.byte 0x3E, 0x00, 0x3F, 0x00, 0x40, 0x00
|
|
|
|
ov02_0225323A:
|
|
.byte 0x48, 0x00, 0x49, 0x00, 0x4A, 0x00
|
|
|
|
ov02_02253240:
|
|
.byte 0x39, 0x00, 0x38, 0x00, 0x3A, 0x00
|
|
|
|
ov02_02253246:
|
|
.byte 0x07, 0x00, 0x08, 0x00, 0x09, 0x00
|
|
|
|
ov02_0225324C: ; 0x0225324C
|
|
.byte 0x01, 0x09, 0x0A, 0x0E
|
|
.byte 0x02, 0x00, 0x80, 0x00
|
|
|
|
ov02_02253254: ; 0x02253254
|
|
.byte 0xAE, 0x00, 0x37, 0x03
|
|
.word ov02_02253240
|
|
.byte 0xAE, 0x00, 0x41, 0x03
|
|
.word ov02_02253222
|
|
|
|
ov02_02253264: ; 0x02253264
|
|
.byte 0xAE, 0x00, 0x0A, 0x01
|
|
.word ov02_0225321C
|
|
.short SEQ_SE_GS_DENKI_TRAP
|
|
.balign 4
|
|
.byte 0xAE, 0x00, 0x03, 0x02
|
|
.word ov02_0225321E
|
|
.short SEQ_SE_GS_DOKU_TRAP
|
|
.balign 4
|
|
.byte 0xAE, 0x00, 0x06, 0x03
|
|
.word ov02_02253246
|
|
.short SEQ_SE_GS_IWA_TRAP
|
|
.balign 4
|
|
ov02_02253288:
|
|
.byte 0x1A, 0x1B, 0x00, 0x00
|
|
|
|
ov02_0225328C:
|
|
.byte 0x16, 0x17, 0x18, 0x19
|
|
|
|
ov02_02253290: ; 0x02253290
|
|
.byte 0x02, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253294: ; 0x02253294
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
|
|
|
|
ov02_022532A0: ; 0x022532A0
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00
|
|
|
|
ov02_022532B4: ; 0x022532B4
|
|
.word 0x0A, ov02_022532EC
|
|
.word 0x05, ov02_022532DC
|
|
.word 0x07, ov02_022532E4
|
|
.word 0x04, ov02_0225328C
|
|
.word 0x02, ov02_02253288
|
|
|
|
ov02_022532DC:
|
|
.byte 0x11, 0x12, 0x13, 0x14, 0x15, 0x00, 0x00, 0x00
|
|
|
|
ov02_022532E4:
|
|
.byte 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x00
|
|
|
|
ov02_022532EC:
|
|
.byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00, 0x00
|
|
|
|
ov02_022532F8:
|
|
.word ov02_02248E10
|
|
|
|
ov02_022532FC: ; 0x022532FC
|
|
.byte 0x07, 0x00, 0x08, 0x00
|
|
|
|
ov02_02253300:
|
|
.word ov02_0224AC28
|
|
|
|
ov02_02253304: ; 0x02253304
|
|
.byte 0x11, 0x00, 0x14, 0x00, 0x17, 0x00
|
|
|
|
ov02_0225330A: ; 0x0225330A
|
|
.byte 0x13, 0x00, 0x16, 0x00, 0x19, 0x00
|
|
|
|
ov02_02253310: ; 0x02253310
|
|
.byte 0x12, 0x00, 0x15, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253320: ; 0x02253320
|
|
.word ov02_022532F8, ov02_022534D0, 0x01, 0x0F
|
|
|
|
ov02_02253330:
|
|
.word ov02_0224ACE0, ov02_0224ADEC, 0x00, 0x06
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253348: ; 0x02253348
|
|
.byte 0x00, 0x00, 0x08, 0x00, 0x00, 0x40, 0x05, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253354: ; 0x02253354
|
|
.byte 0x00, 0x00, 0x08, 0x00, 0x00, 0x80, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253360: ; 0x02253360
|
|
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_0225336C: ; 0x0225336C
|
|
.byte 0x00, 0x14, 0x00, 0x00
|
|
.byte 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253378: ; 0x02253378
|
|
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253384: ; 0x02253384
|
|
.byte 0x00, 0x80, 0x12, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253390: ; 0x02253390
|
|
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_0225339C: ; 0x0225339C
|
|
.byte 0x00, 0x00, 0x08, 0x00
|
|
.byte 0x00, 0xF0, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_022533A8: ; 0x022533A8
|
|
.byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_022533B4: ; 0x022533B4
|
|
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_022533C0: ; 0x022533C0
|
|
.word ov02_02253300
|
|
.word ov02_02253330
|
|
.word ov02_02253420
|
|
|
|
ov02_022533CC: ; 0x022533CC
|
|
.byte 0x00, 0x20, 0x00, 0x00
|
|
.byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_022533D8: ; 0x022533D8
|
|
.byte 0x00, 0x80, 0x08, 0x00, 0x00, 0xF0, 0x04, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_022533E4: ; 0x022533E4
|
|
.byte 0x00, 0x80, 0x08, 0x00, 0x00, 0x80, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_022533F0: ; 0x022533F0
|
|
.byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_022533FC: ; 0x022533FC
|
|
.byte 0x00, 0x00, 0x08, 0x00
|
|
.byte 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253408: ; 0x02253408
|
|
.byte 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x06, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253414: ; 0x02253414
|
|
.byte 0x00, 0x80, 0x12, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253420:
|
|
.word ov02_0224AF70, ov02_0224B0E0, ov02_0224B158, ov02_0224B294
|
|
|
|
ov02_02253430: ; 0x02253430
|
|
.byte 0x00, 0xC0, 0xFF, 0xFF, 0x00, 0xA0, 0xFF, 0xFF, 0x00, 0x90, 0xFF, 0xFF, 0x00, 0x80, 0xFF, 0xFF
|
|
|
|
ov02_02253440: ; 0x02253440
|
|
.byte 0x08, 0x00, 0x00, 0x00
|
|
.word ov02_0224B6D0
|
|
.word sub_02068DD4
|
|
.word ov02_0224B6E4
|
|
.word sub_02068DD0
|
|
|
|
ov02_02253454: ; 0x02253454
|
|
.byte 0x74, 0x00, 0x00, 0x00
|
|
.word ov02_02248D98
|
|
.word ov02_02248DE4
|
|
.word ov02_02248DF0
|
|
.word sub_02068DD0
|
|
|
|
ov02_02253468: ; 0x02253468
|
|
.byte 0x24, 0x00, 0x00, 0x00
|
|
.word ov02_0224AA80
|
|
.word ov02_0224AAC8
|
|
.word ov02_0224AAD4
|
|
.word ov02_0224AB54
|
|
|
|
ov02_0225347C: ; 0x0225347C
|
|
.byte 0x68, 0x00, 0x00, 0x00
|
|
.word ov02_0224ABCC
|
|
.word ov02_0224ABF8
|
|
.word ov02_0224AC04
|
|
.word ov02_0224AC24
|
|
|
|
ov02_02253490: ; 0x02253490
|
|
.byte 0x0C, 0x00, 0x00, 0x00
|
|
.word ov02_0224B7CC
|
|
.word ov02_0224B804
|
|
.word ov02_0224B808
|
|
.word ov02_0224B87C
|
|
|
|
ov02_022534A4: ; 0x022534A4
|
|
.byte 0x24, 0x00, 0x00, 0x00
|
|
.word ov02_0224B350
|
|
.word sub_02068DD4
|
|
.word ov02_0224B3FC
|
|
.word sub_02068DD0
|
|
|
|
ov02_022534B8: ; 0x022534B8
|
|
.word ov02_0224B494
|
|
.word ov02_0224B4AC
|
|
.word ov02_0224B5F0
|
|
.word ov02_0224B638
|
|
.word ov02_0224B664
|
|
.word ov02_0224B68C
|
|
|
|
ov02_022534D0:
|
|
.word ov02_02248F88
|
|
.word ov02_02249088
|
|
.word ov02_022490BC
|
|
.word ov02_022491A8
|
|
.word ov02_022491CC
|
|
.word ov02_02249290
|
|
.word ov02_0224939C
|
|
.word ov02_022493EC
|
|
|
|
ov02_022534F0: ; 0x022534F0
|
|
.word ov02_022495D0
|
|
.word ov02_02249A5C
|
|
.word ov02_0224B938
|
|
.word ov02_0224B964
|
|
.word ov02_02249AD8
|
|
.word ov02_02249AF0
|
|
.word ov02_02249B80
|
|
.word ov02_02249BA8
|
|
.word ov02_02249C74
|
|
.word ov02_02249CD8
|
|
.word ov02_02249954
|
|
.word ov02_0224997C
|
|
|
|
ov02_02253520: ; 0x02253520
|
|
.byte 0x00, 0x40, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xC0, 0xFE, 0xFF, 0x00, 0x80, 0xFE, 0xFF
|
|
.byte 0x00, 0x60, 0xFE, 0xFF, 0x00, 0x40, 0xFE, 0xFF, 0x00, 0x40, 0xFE, 0xFF, 0x00, 0x40, 0xFE, 0xFF
|
|
.byte 0x00, 0x60, 0xFE, 0xFF, 0x00, 0x80, 0xFE, 0xFF, 0x00, 0xA0, 0xFE, 0xFF, 0x00, 0xC0, 0xFE, 0xFF
|
|
|
|
ov02_02253550: ; 0x02253550
|
|
.word ov02_022495B8
|
|
.word ov02_022495E8
|
|
.word ov02_02249658
|
|
.word ov02_02249690
|
|
.word ov02_022496D0
|
|
.word ov02_02249754
|
|
.word ov02_02249774
|
|
.word ov02_022497C0
|
|
.word ov02_02249838
|
|
.word ov02_02249858
|
|
.word ov02_022498BC
|
|
.word ov02_02249940
|
|
.word ov02_02249968
|
|
.word ov02_0224997C
|
|
|
|
ov02_02253588: ; 0x02253588
|
|
.word ov02_022495B8
|
|
.word ov02_022499EC
|
|
.word ov02_02249658
|
|
.word ov02_02249690
|
|
.word ov02_022496D0
|
|
.word ov02_02249754
|
|
.word ov02_02249774
|
|
.word ov02_022497C0
|
|
.word ov02_02249838
|
|
.word ov02_02249858
|
|
.word ov02_02249AC4
|
|
.word ov02_02249AD8
|
|
.word ov02_02249AF0
|
|
.word ov02_02249B10
|
|
.word ov02_02249B38
|
|
.word ov02_02249B60
|
|
.word ov02_02249BA8
|
|
.word ov02_02249BD8
|
|
.word ov02_02249C74
|
|
.word ov02_02249CD8
|
|
.word ov02_02249940
|
|
.word ov02_02249968
|
|
.word ov02_0224997C
|
|
|
|
ov02_022535E4: ; 0x022535E4
|
|
.byte 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00
|
|
.byte 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x30, 0x04, 0x00
|
|
.byte 0x00, 0x00, 0x01, 0x00, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00
|
|
.byte 0x00, 0xD0, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x0F, 0x00, 0x00, 0x50, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x85, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0xE0, 0x04, 0x00, 0x00, 0x80, 0x01, 0x00
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0xB0, 0x05, 0x00
|
|
.byte 0x00, 0x00, 0x01, 0x00, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00
|
|
.byte 0x00, 0x60, 0x05, 0x00, 0x00, 0x80, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x80, 0x03, 0x00, 0x00, 0x40, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x85, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x05, 0x00, 0x00, 0xD0, 0x06, 0x00, 0x00, 0x80, 0x01, 0x00
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x09, 0x00, 0x00, 0x40, 0x06, 0x00
|
|
.byte 0x00, 0x00, 0x01, 0x00, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00
|
|
.byte 0x00, 0xE0, 0x07, 0x00, 0x00, 0x80, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0xC0, 0x08, 0x00, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x80, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x0D, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x80, 0x01, 0x00
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
|
|
ov02_022536E8: ; 0x022536E8
|
|
.byte 0x21, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00
|
|
|
|
ov02_022536F0: ; 0x022536F0
|
|
.word ov02_0224C234
|
|
.word ov02_0224C2A8
|
|
.word ov02_0224C2EC
|
|
.word ov02_0224C338
|
|
|
|
ov02_02253700: ; 0x02253700
|
|
.word ov02_0224C05C
|
|
.word ov02_0224C0B0
|
|
.word ov02_0224C14C
|
|
.word ov02_0224C1B8
|
|
|
|
ov02_02253710: ; 0x02253710
|
|
.word ov02_0224C87C
|
|
.word ov02_0224C8D0
|
|
.word ov02_0224C93C
|
|
.word ov02_0224C9B8
|
|
.word ov02_0224CA38
|
|
|
|
ov02_02253724: ; 0x02253724
|
|
.word ov02_0224C4B4
|
|
.word ov02_0224C4D8
|
|
.word ov02_0224C71C
|
|
.word ov02_0224C75C
|
|
.word ov02_0224C7D4
|
|
.word ov02_0224C840
|
|
|
|
ov02_0225373C: ; 0x0225373C
|
|
.word ov02_0224C680
|
|
.word ov02_0224C698
|
|
.word ov02_0224C6DC
|
|
.word ov02_0224C75C
|
|
.word ov02_0224C7D4
|
|
.word ov02_0224C840
|
|
|
|
ov02_02253754: ; 0x02253754
|
|
.word ov02_0224C4B4
|
|
.word ov02_0224C4D8
|
|
.word ov02_0224C87C
|
|
.word ov02_0224C8D0
|
|
.word ov02_0224C93C
|
|
.word ov02_0224C9B8
|
|
.word ov02_0224CA38
|
|
|
|
ov02_02253770: ; 0x02253770
|
|
.byte 0x01, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x02, 0x00
|
|
.byte 0x00, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x02, 0x00
|
|
.byte 0xFE, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253794: ; 0x02253794
|
|
.byte 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
|
|
.byte 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
|
|
.byte 0x02, 0x00, 0x01, 0x00, 0xFE, 0x00, 0x00, 0x00
|
|
|
|
ov02_022537B8: ; 0x022537B8
|
|
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
|
|
.byte 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
|
|
.byte 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0xFE, 0x00, 0x00, 0x00
|
|
|
|
ov02_022537DC: ; 0x022537DC
|
|
.byte 0x01, 0x00, 0x01, 0x00
|
|
.byte 0x3C, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00
|
|
.byte 0x3C, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00
|
|
.byte 0x3C, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00
|
|
.byte 0x3C, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00, 0xFE, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253820: ; 0x02253820
|
|
.byte 0x01, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x02, 0x00
|
|
.byte 0x00, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x02, 0x00
|
|
.byte 0x01, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00
|
|
.byte 0x00, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00
|
|
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00
|
|
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00
|
|
.byte 0xFE, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253884: ; 0x02253884
|
|
.byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00
|
|
.byte 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00
|
|
.byte 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
|
|
.byte 0x3C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00
|
|
.byte 0x3C, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00
|
|
.byte 0x3C, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x04, 0x00, 0x03, 0x00, 0x01, 0x00
|
|
.byte 0x3C, 0x00, 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFE, 0x00, 0x00, 0x00
|
|
|
|
ov02_022538EC: ; 0x022538EC
|
|
.byte 0x10, 0x0F, 0x0E, 0x0B
|
|
.byte 0x0C, 0x09, 0xB4, 0x00, 0x00, 0x00, 0x0E, 0x01, 0x5A, 0x00, 0x00, 0x00
|
|
|
|
ov02_022538FC: ; 0x022538FC
|
|
.byte 0x00, 0x04, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00
|
|
.word ov02_0224D310
|
|
.word ov02_0224D3A4
|
|
.word ov02_0224D3B4
|
|
.word ov02_0224D3E8
|
|
|
|
ov02_02253914: ; 0x02253914
|
|
.byte 0x00, 0x04, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00
|
|
.word ov02_0224D5B4
|
|
.word ov02_0224D648
|
|
.word ov02_0224D658
|
|
.word ov02_0224D670
|
|
|
|
ov02_0225392C: ; 0x0225392C
|
|
.byte 0x00, 0x04, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00
|
|
.word ov02_0224DAA4
|
|
.word ov02_0224DB8C
|
|
.word ov02_0224DB9C
|
|
.word ov02_0224DC58
|
|
|
|
ov02_02253944: ; 0x02253944
|
|
.byte 0x00, 0x04, 0x00, 0x00, 0xCC, 0x01, 0x00, 0x00
|
|
.word ov02_0224D43C
|
|
.word ov02_0224D468
|
|
.word ov02_0224D488
|
|
.word ov02_0224D580
|
|
|
|
ov02_0225395C: ; 0x0225395C
|
|
.byte 0x00, 0x04, 0x00, 0x00, 0x10, 0x0D, 0x00, 0x00
|
|
.word ov02_0224D880
|
|
.word ov02_0224D914
|
|
.word ov02_0224D950
|
|
.word ov02_0224D98C
|
|
|
|
ov02_02253974: ; 0x02253974
|
|
.byte 0x00, 0x04, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00
|
|
.word ov02_0224D1E4
|
|
.word ov02_0224D278
|
|
.word ov02_0224D288
|
|
.word ov02_0224D2BC
|
|
|
|
ov02_0225398C: ; 0x0225398C
|
|
.byte 0x00, 0x04, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00
|
|
.word ov02_0224D358
|
|
.word ov02_0224D3A4
|
|
.word ov02_0224D3B4
|
|
.word ov02_0224D3E8
|
|
|
|
ov02_022539A4: ; 0x022539A4
|
|
.byte 0x00, 0x04, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00
|
|
.word ov02_0224D9C0
|
|
.word ov02_0224DB8C
|
|
.word ov02_0224DB9C
|
|
.word ov02_0224DC58
|
|
|
|
ov02_022539BC: ; 0x022539BC
|
|
.byte 0x00, 0x04, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00
|
|
.word ov02_0224D22C
|
|
.word ov02_0224D278
|
|
.word ov02_0224D288
|
|
.word ov02_0224D2BC
|
|
|
|
ov02_022539D4: ; 0x022539D4
|
|
.byte 0x00, 0x04, 0x00, 0x00, 0x9C, 0x0E, 0x00, 0x00
|
|
.word ov02_0224DCB0
|
|
.word ov02_0224DD4C
|
|
.word ov02_0224DD8C
|
|
.word ov02_0224DDC8
|
|
|
|
ov02_022539EC: ; 0x022539EC
|
|
.byte 0x00, 0x04, 0x00, 0x00, 0x9C, 0x0E, 0x00, 0x00
|
|
.word ov02_0224DD38
|
|
.word ov02_0224DD4C
|
|
.word ov02_0224DD8C
|
|
.word ov02_0224DDC8
|
|
|
|
ov02_02253A04: ; 0x02253A04
|
|
.word ov02_0224D2F0
|
|
.word ov02_0224D41C
|
|
.word ov02_0224D41C
|
|
.word ov02_0224D2F0
|
|
.word ov02_0224DC8C
|
|
.word ov02_0224DC8C
|
|
|
|
ov02_02253A1C: ; 0x02253A1C
|
|
.word ov02_0224D2C8
|
|
.word ov02_0224D3F4
|
|
.word ov02_0224D408
|
|
.word ov02_0224D2DC
|
|
.word ov02_0224DC64
|
|
.word ov02_0224DC78
|
|
|
|
ov02_02253A34: ; 0x02253A34
|
|
.word ov02_0224D2F8
|
|
.word ov02_0224D424
|
|
.word ov02_0224D424
|
|
.word ov02_0224D2F8
|
|
.word ov02_0224DC94
|
|
.word ov02_0224DC94
|
|
|
|
ov02_02253A4C: ; 0x02253A4C
|
|
.byte 0xFF, 0x01, 0xFF, 0x01
|
|
.byte 0x01, 0xFF, 0x00, 0x00
|
|
|
|
ov02_02253A54: ; 0x02253A54
|
|
.byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253A5C: ; 0x02253A5C
|
|
.byte 0xB5, 0x00, 0x00, 0x00
|
|
.byte 0xB6, 0x00, 0x00, 0x00, 0xB7, 0x00, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253A70: ; 0x02253A70
|
|
.byte 0x49, 0x00, 0x01, 0x00, 0x30, 0x00, 0x01, 0x00, 0x3E, 0x00, 0x01, 0x00, 0x4A, 0x00, 0x01, 0x00
|
|
.byte 0xFE, 0x00, 0x00, 0x00, 0x49, 0x00, 0x01, 0x00, 0x31, 0x00, 0x01, 0x00, 0x3E, 0x00, 0x01, 0x00
|
|
.byte 0x4A, 0x00, 0x01, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x49, 0x00, 0x01, 0x00, 0x32, 0x00, 0x01, 0x00
|
|
.byte 0x3E, 0x00, 0x01, 0x00, 0x4A, 0x00, 0x01, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x49, 0x00, 0x01, 0x00
|
|
.byte 0x33, 0x00, 0x01, 0x00, 0x3E, 0x00, 0x01, 0x00, 0x4A, 0x00, 0x01, 0x00, 0xFE, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253AC0: ; 0x02253AC0
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
|
|
.byte 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
|
|
.byte 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
|
|
.byte 0x06, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253B24: ; 0x02253B24
|
|
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
|
|
|
|
ov02_02253B30: ; 0x02253B30
|
|
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
|
|
|
|
ov02_02253B3C: ; 0x02253B3C
|
|
.byte 0x2F, 0x30, 0x31, 0x32
|
|
.byte 0x33, 0x34, 0x00, 0x00
|
|
|
|
ov02_02253B44: ; 0x02253B44
|
|
.byte 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x00, 0x00
|
|
|
|
ov02_02253B4C: ; 0x02253B4C
|
|
.byte 0x03, 0x00, 0x00, 0x00, 0xB8, 0x04, 0x00, 0x00
|
|
.word ov02_02250BC4
|
|
.word ov02_02250EC0
|
|
.word ov02_02250F1C
|
|
.word ov02_02250FE0
|
|
|
|
ov02_02253B64: ; 0x02253B64
|
|
.byte 0x00, 0xD0, 0xF3, 0xFF, 0x52, 0xB6, 0xF6, 0xFF, 0xEF, 0x2C, 0xFD, 0xFF
|
|
.byte 0x00, 0x60, 0x0C, 0x00, 0x52, 0xB6, 0xF6, 0xFF, 0xEF, 0x2C, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0xF9, 0xC3, 0xFD, 0xFF, 0x3D, 0x8F, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xFA, 0x1E, 0x00
|
|
.byte 0xAE, 0xCB, 0x01, 0x00
|
|
|
|
ov02_02253B94: ; 0x02253B94
|
|
.byte 0x00, 0x10, 0xF8, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF3, 0xFF
|
|
.byte 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF3, 0xFF, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFA, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0xF0, 0xE4, 0xFF
|
|
|
|
ov02_02253BC4: ; 0x02253BC4
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF1, 0xFF
|
|
|
|
ov02_02253BD0: ; 0x02253BD0
|
|
.byte 0xC1, 0xAE, 0x29, 0x00, 0x62, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x05
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x62, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0xC1, 0x05, 0x00, 0x00, 0x00, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x62, 0xF7, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x0C, 0x00, 0x00, 0x00, 0x00, 0xC1, 0xAE, 0x29, 0x00
|
|
.byte 0xA2, 0xFB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x0C, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253C20: ; 0x02253C20
|
|
.byte 0xC1, 0xAE, 0x29, 0x00, 0xE2, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x05
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0xE2, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0xC1, 0x05, 0x00, 0x00, 0x00, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0xF2, 0xDE, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x05, 0x00, 0x00, 0x00, 0x00, 0xC1, 0xAE, 0x29, 0x00
|
|
.byte 0xF2, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x05, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0xC1, 0xAE, 0x29, 0x00
|
|
|
|
ov02_02253C74: ; 0x02253C74
|
|
.byte 0xF2, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x05
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253C84: ; 0x02253C84
|
|
.byte 0x01, 0x00
|
|
|
|
ov02_02253C86: ; 0x02253C86
|
|
.byte 0x0D, 0x00
|
|
|
|
ov02_02253C88: ; 0x02253C88
|
|
.byte 0x00, 0x00, 0x01, 0x00, 0x07, 0x00, 0x00, 0x00
|
|
.byte 0x0F, 0x00, 0x55, 0x00, 0x01, 0x00, 0x09, 0x00, 0x5D, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00
|
|
.byte 0x8E, 0x00, 0x01, 0x00, 0x18, 0x00, 0x8F, 0x00, 0x01, 0x00, 0x18, 0x00, 0x90, 0x00, 0x01, 0x00
|
|
.byte 0x18, 0x00, 0x91, 0x00, 0x01, 0x00, 0x18, 0x00, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1B, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253CD4: ; 0x02253CD4
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253CE0: ; 0x02253CE0
|
|
.byte 0x00, 0x00, 0xFF, 0xFF, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00
|
|
|
|
ov02_02253CEC: ; 0x02253CEC
|
|
.byte 0x4C, 0x00, 0x00, 0x00
|
|
.byte 0x4E, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253CF8: ; 0x02253CF8
|
|
.byte 0x56, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00
|
|
.byte 0x4F, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253D08: ; 0x02253D08
|
|
.byte 0x58, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00
|
|
.byte 0x60, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253D14: ; 0x02253D14
|
|
.byte 0x50, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00
|
|
.byte 0x54, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253D24: ; 0x02253D24
|
|
.byte 0x64, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00
|
|
.byte 0x59, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00
|
|
.byte 0x5D, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00
|
|
.byte 0x61, 0x00, 0x00, 0x00
|
|
|
|
ov02_02253D54: ; 0x02253D54
|
|
.byte 0x2F, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42
|
|
.byte 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52
|
|
.byte 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5F, 0x60, 0x00
|
|
|
|
.data
|
|
|
|
ov02_02253D80: ; 0x02253D80
|
|
.word ov02_0225322E
|
|
|
|
ov02_02253D84: ; 0x02253D84
|
|
.word ov02_02253234
|
|
.word ov02_02253228
|
|
.word ov02_0225323A
|
|
|
|
ov02_02253D90: ; 0x02253D90
|
|
.byte 0x00, 0xB8, 0xFF, 0xFF
|
|
|
|
ov02_02253D94: ; 0x02253D94
|
|
.byte 0x00, 0xC0, 0x00, 0x00
|
|
|
|
ov02_02253D98: ; 0x02253D98
|
|
.byte 0x00, 0xB8, 0xFF, 0xFF, 0x00, 0x48, 0x00, 0x00
|
|
.byte 0x00, 0xC0, 0x00, 0x00, 0x00, 0xB8, 0xFF, 0xFF, 0x00, 0xB8, 0xFF, 0xFF, 0x00, 0xC0, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0xB8, 0xFF, 0xFF, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00
|
|
.byte 0x00, 0xC0, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00
|
|
|
|
ov02_02253DD8: ; 0x02253DD8
|
|
.byte 0x00, 0xB8, 0xFF, 0xFF
|
|
|
|
ov02_02253DDC: ; 0x02253DDC
|
|
.byte 0x00, 0xC0, 0x00, 0x00
|
|
|
|
ov02_02253DE0: ; 0x02253DE0
|
|
.byte 0x00, 0xB8, 0xFF, 0xFF, 0x00, 0x48, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xB8, 0xFF, 0xFF
|
|
.byte 0x00, 0xB8, 0xFF, 0xFF, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00
|
|
.byte 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB8, 0xFF, 0xFF, 0x00, 0xC0, 0x00, 0x00
|
|
.byte 0x00, 0x48, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00
|
|
_02253E20:
|