mirror of
https://github.com/pret/pokeheartgold.git
synced 2024-11-24 13:49:45 +00:00
ef830ff24c
Up to Battle Random functions start cleaning up encounter.c fix build fix build again remove two files from bad rebase switch fully to battle type constants rename TRAINER to Trainer few more funcs finish cleanup address some review comments de-capitalise std_script
791 lines
14 KiB
ArmAsm
791 lines
14 KiB
ArmAsm
#include "constants/items.h"
|
|
#include "constants/moves.h"
|
|
#include "constants/pokemon.h"
|
|
#include "constants/ribbon.h"
|
|
#include "constants/party_menu.h"
|
|
#include "msgdata/msg/msg_0300.h"
|
|
.include "asm/macros.inc"
|
|
.include "unk_02078834.inc"
|
|
.include "global.inc"
|
|
|
|
.public _020FA484
|
|
.public gNatureStatMods
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_02078834
|
|
sub_02078834: ; 0x02078834
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0
|
|
add r0, r6, #0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #4]
|
|
cmp r1, #0x19
|
|
bls _0207884E
|
|
b _02078B1C
|
|
_0207884E:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0207885A: ; jump table
|
|
.short _0207888E - _0207885A - 2 ; case 0
|
|
.short _02078894 - _0207885A - 2 ; case 1
|
|
.short _020788B8 - _0207885A - 2 ; case 2
|
|
.short _020788CA - _0207885A - 2 ; case 3
|
|
.short _0207899C - _0207885A - 2 ; case 4
|
|
.short _020789B2 - _0207885A - 2 ; case 5
|
|
.short _020789B8 - _0207885A - 2 ; case 6
|
|
.short _020789C6 - _0207885A - 2 ; case 7
|
|
.short _020789CC - _0207885A - 2 ; case 8
|
|
.short _020789E8 - _0207885A - 2 ; case 9
|
|
.short _020789E8 - _0207885A - 2 ; case 10
|
|
.short _020789E8 - _0207885A - 2 ; case 11
|
|
.short _020789FE - _0207885A - 2 ; case 12
|
|
.short _02078A16 - _0207885A - 2 ; case 13
|
|
.short _02078A2C - _0207885A - 2 ; case 14
|
|
.short _02078A3E - _0207885A - 2 ; case 15
|
|
.short _02078A52 - _0207885A - 2 ; case 16
|
|
.short _02078A66 - _0207885A - 2 ; case 17
|
|
.short _02078A7C - _0207885A - 2 ; case 18
|
|
.short _02078A8E - _0207885A - 2 ; case 19
|
|
.short _02078AA2 - _0207885A - 2 ; case 20
|
|
.short _02078AB6 - _0207885A - 2 ; case 21
|
|
.short _02078ACC - _0207885A - 2 ; case 22
|
|
.short _02078ADE - _0207885A - 2 ; case 23
|
|
.short _02078AF2 - _0207885A - 2 ; case 24
|
|
.short _02078B06 - _0207885A - 2 ; case 25
|
|
_0207888E:
|
|
ldr r1, [r5, #0xc]
|
|
ldr r0, [r4]
|
|
str r1, [r0]
|
|
_02078894:
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #1
|
|
bne _020788E6
|
|
ldr r0, [r5, #0xc]
|
|
bl sub_0203A05C
|
|
cmp r0, #0
|
|
beq _020788E6
|
|
mov r0, #0xa
|
|
str r0, [r4, #4]
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
b _02078B20
|
|
_020788B8:
|
|
ldr r1, _02078B24 ; =_02101290
|
|
ldr r2, [r4]
|
|
add r0, r6, #0
|
|
bl CallApplicationAsTask
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_020788CA:
|
|
ldr r0, [r5, #0xc]
|
|
bl sub_0203A05C
|
|
cmp r0, #0
|
|
beq _020788DE
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_VarsFlags_Get
|
|
bl SetFlag970
|
|
_020788DE:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0xf
|
|
bls _020788E8
|
|
_020788E6:
|
|
b _02078B20
|
|
_020788E8:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_020788F4: ; jump table
|
|
.short _02078B20 - _020788F4 - 2 ; case 0
|
|
.short _02078920 - _020788F4 - 2 ; case 1
|
|
.short _0207892E - _020788F4 - 2 ; case 2
|
|
.short _02078914 - _020788F4 - 2 ; case 3
|
|
.short _0207894A - _020788F4 - 2 ; case 4
|
|
.short _02078958 - _020788F4 - 2 ; case 5
|
|
.short _0207893C - _020788F4 - 2 ; case 6
|
|
.short _02078966 - _020788F4 - 2 ; case 7
|
|
.short _02078978 - _020788F4 - 2 ; case 8
|
|
.short _02078996 - _020788F4 - 2 ; case 9
|
|
.short _0207896C - _020788F4 - 2 ; case 10
|
|
.short _02078B20 - _020788F4 - 2 ; case 11
|
|
.short _0207897E - _020788F4 - 2 ; case 12
|
|
.short _02078984 - _020788F4 - 2 ; case 13
|
|
.short _0207898A - _020788F4 - 2 ; case 14
|
|
.short _02078990 - _020788F4 - 2 ; case 15
|
|
_02078914:
|
|
mov r0, #0
|
|
strb r0, [r4, #0xc]
|
|
strb r0, [r4, #0xd]
|
|
mov r0, #4
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_02078920:
|
|
mov r0, #0x32
|
|
strb r0, [r4, #0xc]
|
|
mov r0, #0
|
|
strb r0, [r4, #0xd]
|
|
mov r0, #4
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_0207892E:
|
|
mov r0, #0x64
|
|
strb r0, [r4, #0xc]
|
|
mov r0, #0
|
|
strb r0, [r4, #0xd]
|
|
mov r0, #4
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_0207893C:
|
|
mov r0, #0
|
|
strb r0, [r4, #0xc]
|
|
mov r0, #1
|
|
strb r0, [r4, #0xd]
|
|
mov r0, #4
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_0207894A:
|
|
mov r0, #0x32
|
|
strb r0, [r4, #0xc]
|
|
mov r0, #1
|
|
strb r0, [r4, #0xd]
|
|
mov r0, #4
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_02078958:
|
|
mov r0, #0x64
|
|
strb r0, [r4, #0xc]
|
|
mov r0, #1
|
|
strb r0, [r4, #0xd]
|
|
mov r0, #4
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_02078966:
|
|
mov r0, #6
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_0207896C:
|
|
ldr r0, [r4, #8]
|
|
mov r1, #1
|
|
strh r1, [r0]
|
|
mov r0, #0xb
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_02078978:
|
|
mov r0, #9
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_0207897E:
|
|
mov r0, #0xc
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_02078984:
|
|
mov r0, #0xe
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_0207898A:
|
|
mov r0, #0x12
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_02078990:
|
|
mov r0, #0x16
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_02078996:
|
|
mov r0, #8
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_0207899C:
|
|
ldr r1, [r4]
|
|
ldrb r2, [r4, #0xc]
|
|
ldrb r3, [r4, #0xd]
|
|
ldr r1, [r1, #8]
|
|
add r0, r6, #0
|
|
bl CallTask_02050960
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_020789B2:
|
|
mov r0, #2
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_020789B8:
|
|
add r0, r6, #0
|
|
bl sub_0203F4A8
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_020789C6:
|
|
mov r0, #2
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_020789CC:
|
|
ldr r2, _02078B28 ; =0x00040100
|
|
mov r0, #3
|
|
mov r1, #0x35
|
|
bl CreateHeap
|
|
bl LoadOVY13
|
|
mov r0, #0x35
|
|
bl ov13_0221BA00
|
|
mov r0, #0
|
|
bl OS_ResetSystem
|
|
b _02078B20
|
|
_020789E8:
|
|
ldr r0, [r4]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_020789FE:
|
|
mov r0, #0
|
|
bl sub_020378E4
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl sub_020968B0
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_02078A16:
|
|
add r0, r5, #0
|
|
bl FieldSystem_ApplicationIsRunning
|
|
cmp r0, #0
|
|
bne _02078B20
|
|
ldr r0, [r4, #0x10]
|
|
bl FreeToHeap
|
|
mov r0, #2
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_02078A2C:
|
|
add r1, r5, #0
|
|
mov r2, #0xb
|
|
mov r3, #1
|
|
bl sub_02078B9C
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_02078A3E:
|
|
add r0, r5, #0
|
|
bl FieldSystem_ApplicationIsRunning
|
|
cmp r0, #0
|
|
bne _02078B20
|
|
add r0, r4, #0
|
|
bl sub_02078BD8
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_02078A52:
|
|
ldr r2, [r4, #0x14]
|
|
add r0, r5, #0
|
|
mov r1, #0xb
|
|
bl sub_02078C18
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_02078A66:
|
|
add r0, r5, #0
|
|
bl FieldSystem_ApplicationIsRunning
|
|
cmp r0, #0
|
|
bne _02078B20
|
|
mov r0, #2
|
|
str r0, [r4, #4]
|
|
ldr r0, [r4, #0x10]
|
|
bl sub_02078C60
|
|
b _02078B20
|
|
_02078A7C:
|
|
add r1, r5, #0
|
|
mov r2, #0xb
|
|
mov r3, #2
|
|
bl sub_02078B9C
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_02078A8E:
|
|
add r0, r5, #0
|
|
bl FieldSystem_ApplicationIsRunning
|
|
cmp r0, #0
|
|
bne _02078B20
|
|
add r0, r4, #0
|
|
bl sub_02078BD8
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_02078AA2:
|
|
ldr r2, [r4, #0x14]
|
|
add r0, r5, #0
|
|
mov r1, #0xb
|
|
bl sub_02078C74
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_02078AB6:
|
|
add r0, r5, #0
|
|
bl FieldSystem_ApplicationIsRunning
|
|
cmp r0, #0
|
|
bne _02078B20
|
|
mov r0, #2
|
|
str r0, [r4, #4]
|
|
ldr r0, [r4, #0x10]
|
|
bl sub_02078CB4
|
|
b _02078B20
|
|
_02078ACC:
|
|
add r1, r5, #0
|
|
mov r2, #0xb
|
|
mov r3, #3
|
|
bl sub_02078B9C
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_02078ADE:
|
|
add r0, r5, #0
|
|
bl FieldSystem_ApplicationIsRunning
|
|
cmp r0, #0
|
|
bne _02078B20
|
|
add r0, r4, #0
|
|
bl sub_02078BD8
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_02078AF2:
|
|
ldr r2, [r4, #0x14]
|
|
add r0, r5, #0
|
|
mov r1, #0xb
|
|
bl sub_02078CC8
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
b _02078B20
|
|
_02078B06:
|
|
add r0, r5, #0
|
|
bl FieldSystem_ApplicationIsRunning
|
|
cmp r0, #0
|
|
bne _02078B20
|
|
mov r0, #2
|
|
str r0, [r4, #4]
|
|
ldr r0, [r4, #0x10]
|
|
bl sub_02078D10
|
|
b _02078B20
|
|
_02078B1C:
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_02078B20:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_02078B24: .word _02101290
|
|
_02078B28: .word 0x00040100
|
|
thumb_func_end sub_02078834
|
|
|
|
thumb_func_start sub_02078B2C
|
|
sub_02078B2C: ; 0x02078B2C
|
|
push {r4, lr}
|
|
mov r0, #0xb
|
|
mov r1, #0x18
|
|
bl AllocFromHeapAtEnd
|
|
mov r1, #0
|
|
mov r2, #0x18
|
|
add r4, r0, #0
|
|
bl MI_CpuFill8
|
|
mov r0, #0xb
|
|
mov r1, #0xc
|
|
bl AllocFromHeapAtEnd
|
|
mov r1, #0
|
|
mov r2, #0xc
|
|
str r0, [r4]
|
|
bl MI_CpuFill8
|
|
add r0, r4, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end sub_02078B2C
|
|
|
|
thumb_func_start sub_02078B58
|
|
sub_02078B58: ; 0x02078B58
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl sub_02078B2C
|
|
add r2, r0, #0
|
|
ldr r0, [r2]
|
|
mov r1, #2
|
|
str r1, [r0, #4]
|
|
ldr r1, _02078B74 ; =sub_02078834
|
|
add r0, r4, #0
|
|
bl TaskManager_Call
|
|
pop {r4, pc}
|
|
nop
|
|
_02078B74: .word sub_02078834
|
|
thumb_func_end sub_02078B58
|
|
|
|
thumb_func_start sub_02078B78
|
|
sub_02078B78: ; 0x02078B78
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl sub_02078B2C
|
|
add r2, r0, #0
|
|
ldr r0, [r2]
|
|
mov r1, #1
|
|
str r1, [r0, #4]
|
|
ldr r1, _02078B98 ; =sub_02078834
|
|
add r0, r5, #0
|
|
str r4, [r2, #8]
|
|
bl TaskManager_Call
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_02078B98: .word sub_02078834
|
|
thumb_func_end sub_02078B78
|
|
|
|
thumb_func_start sub_02078B9C
|
|
sub_02078B9C: ; 0x02078B9C
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
add r0, r2, #0
|
|
mov r1, #0xc
|
|
add r4, r3, #0
|
|
bl AllocFromHeap
|
|
add r2, r0, #0
|
|
strb r4, [r2]
|
|
mov r0, #2
|
|
strb r0, [r2, #1]
|
|
ldr r0, _02078BD0 ; =_0210125C
|
|
ldr r1, _02078BD4 ; =_02101280
|
|
ldrb r0, [r0, r4]
|
|
strb r0, [r2, #2]
|
|
mov r0, #0
|
|
strb r0, [r2, #3]
|
|
strb r0, [r2, #4]
|
|
ldr r0, [r5, #0xc]
|
|
str r0, [r2, #8]
|
|
add r0, r5, #0
|
|
str r2, [r6, #0x10]
|
|
bl FieldSystem_LaunchApplication
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_02078BD0: .word _0210125C
|
|
_02078BD4: .word _02101280
|
|
thumb_func_end sub_02078B9C
|
|
|
|
thumb_func_start sub_02078BD8
|
|
sub_02078BD8: ; 0x02078BD8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x10]
|
|
ldrb r1, [r0, #3]
|
|
cmp r1, #1
|
|
bne _02078C04
|
|
ldrb r1, [r0]
|
|
cmp r1, #1
|
|
beq _02078BF2
|
|
cmp r1, #2
|
|
beq _02078BF8
|
|
cmp r1, #3
|
|
b _02078BFE
|
|
_02078BF2:
|
|
mov r1, #0x10
|
|
str r1, [r4, #4]
|
|
b _02078C08
|
|
_02078BF8:
|
|
mov r1, #0x14
|
|
str r1, [r4, #4]
|
|
b _02078C08
|
|
_02078BFE:
|
|
mov r1, #0x18
|
|
str r1, [r4, #4]
|
|
b _02078C08
|
|
_02078C04:
|
|
mov r1, #1
|
|
str r1, [r4, #4]
|
|
_02078C08:
|
|
ldrb r0, [r0, #4]
|
|
str r0, [r4, #0x14]
|
|
ldr r0, [r4, #0x10]
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #4]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end sub_02078BD8
|
|
|
|
thumb_func_start sub_02078C18
|
|
sub_02078C18: ; 0x02078C18
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r0, r1, #0
|
|
mov r1, #0x3c
|
|
add r6, r2, #0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
mov r2, #0x3c
|
|
bl memset
|
|
add r0, r4, #0
|
|
add r0, #0x38
|
|
strb r6, [r0]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x39
|
|
strb r1, [r0]
|
|
ldr r0, [r5, #0xc]
|
|
mov r1, #2
|
|
str r0, [r4, #0x34]
|
|
ldr r0, _02078C58 ; =FS_OVERLAY_ID(OVY_90)
|
|
bl HandleLoadOverlay
|
|
ldr r1, _02078C5C ; =_02101260
|
|
add r0, r5, #0
|
|
add r2, r4, #0
|
|
bl FieldSystem_LaunchApplication
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_02078C58: .word FS_OVERLAY_ID(OVY_90)
|
|
_02078C5C: .word _02101260
|
|
thumb_func_end sub_02078C18
|
|
|
|
thumb_func_start sub_02078C60
|
|
sub_02078C60: ; 0x02078C60
|
|
push {r3, lr}
|
|
bl FreeToHeap
|
|
ldr r0, _02078C70 ; =FS_OVERLAY_ID(OVY_90)
|
|
bl UnloadOverlayByID
|
|
pop {r3, pc}
|
|
nop
|
|
_02078C70: .word FS_OVERLAY_ID(OVY_90)
|
|
thumb_func_end sub_02078C60
|
|
|
|
thumb_func_start sub_02078C74
|
|
sub_02078C74: ; 0x02078C74
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r0, r1, #0
|
|
mov r1, #0x40
|
|
add r6, r2, #0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
mov r2, #0x40
|
|
bl memset
|
|
str r6, [r4, #0x3c]
|
|
mov r0, #0
|
|
str r0, [r4, #0x38]
|
|
ldr r0, [r5, #0xc]
|
|
mov r1, #2
|
|
str r0, [r4, #0x34]
|
|
ldr r0, _02078CAC ; =FS_OVERLAY_ID(OVY_90)
|
|
bl HandleLoadOverlay
|
|
ldr r1, _02078CB0 ; =_02101270
|
|
add r0, r5, #0
|
|
add r2, r4, #0
|
|
bl FieldSystem_LaunchApplication
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_02078CAC: .word FS_OVERLAY_ID(OVY_90)
|
|
_02078CB0: .word _02101270
|
|
thumb_func_end sub_02078C74
|
|
|
|
thumb_func_start sub_02078CB4
|
|
sub_02078CB4: ; 0x02078CB4
|
|
push {r3, lr}
|
|
bl FreeToHeap
|
|
ldr r0, _02078CC4 ; =FS_OVERLAY_ID(OVY_90)
|
|
bl UnloadOverlayByID
|
|
pop {r3, pc}
|
|
nop
|
|
_02078CC4: .word FS_OVERLAY_ID(OVY_90)
|
|
thumb_func_end sub_02078CB4
|
|
|
|
thumb_func_start sub_02078CC8
|
|
sub_02078CC8: ; 0x02078CC8
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r0, r1, #0
|
|
mov r1, #0x3c
|
|
add r6, r2, #0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
mov r2, #0x3c
|
|
bl MI_CpuFill8
|
|
add r0, r4, #0
|
|
add r0, #0x38
|
|
strb r6, [r0]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x39
|
|
strb r1, [r0]
|
|
ldr r0, [r5, #0xc]
|
|
mov r1, #2
|
|
str r0, [r4, #0x34]
|
|
ldr r0, _02078D08 ; =FS_OVERLAY_ID(OVY_90)
|
|
bl HandleLoadOverlay
|
|
ldr r1, _02078D0C ; =_021012A0
|
|
add r0, r5, #0
|
|
add r2, r4, #0
|
|
bl FieldSystem_LaunchApplication
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_02078D08: .word FS_OVERLAY_ID(OVY_90)
|
|
_02078D0C: .word _021012A0
|
|
thumb_func_end sub_02078CC8
|
|
|
|
thumb_func_start sub_02078D10
|
|
sub_02078D10: ; 0x02078D10
|
|
push {r3, lr}
|
|
bl FreeToHeap
|
|
ldr r0, _02078D20 ; =FS_OVERLAY_ID(OVY_90)
|
|
bl UnloadOverlayByID
|
|
pop {r3, pc}
|
|
nop
|
|
_02078D20: .word FS_OVERLAY_ID(OVY_90)
|
|
thumb_func_end sub_02078D10
|
|
|
|
thumb_func_start sub_02078D24
|
|
sub_02078D24: ; 0x02078D24
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl sub_020398C8
|
|
mov r1, #0x24
|
|
ldrb r2, [r0, #0x1b]
|
|
mul r1, r4
|
|
add r0, r0, r1
|
|
add r0, #0x3f
|
|
ldrb r0, [r0]
|
|
cmp r2, #0xc
|
|
bne _02078D44
|
|
cmp r0, #5
|
|
bne _02078D44
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02078D44:
|
|
cmp r2, #0xd
|
|
bne _02078D50
|
|
cmp r0, #6
|
|
bne _02078D50
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02078D50:
|
|
cmp r2, #0xe
|
|
bne _02078D5C
|
|
cmp r0, #7
|
|
bne _02078D5C
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02078D5C:
|
|
cmp r2, #9
|
|
bne _02078D68
|
|
cmp r0, #2
|
|
bne _02078D68
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02078D68:
|
|
cmp r2, #0xa
|
|
bne _02078D74
|
|
cmp r0, #3
|
|
bne _02078D74
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02078D74:
|
|
cmp r2, #0xb
|
|
bne _02078D80
|
|
cmp r0, #4
|
|
bne _02078D80
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02078D80:
|
|
cmp r2, #0xf
|
|
bne _02078D8C
|
|
cmp r0, #8
|
|
bne _02078D8C
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02078D8C:
|
|
cmp r2, #0x13
|
|
bne _02078D98
|
|
cmp r0, #0x12
|
|
bne _02078D98
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02078D98:
|
|
cmp r2, #0x15
|
|
bne _02078DA4
|
|
cmp r0, #0x14
|
|
bne _02078DA4
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02078DA4:
|
|
cmp r2, #0x17
|
|
bne _02078DB0
|
|
cmp r0, #0x16
|
|
bne _02078DB0
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02078DB0:
|
|
cmp r2, #0x19
|
|
bne _02078DBC
|
|
cmp r0, #0x18
|
|
bne _02078DBC
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02078DBC:
|
|
cmp r2, #0x1b
|
|
bne _02078DC8
|
|
cmp r0, #0x1a
|
|
bne _02078DC8
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02078DC8:
|
|
cmp r2, #0x10
|
|
bne _02078DD4
|
|
cmp r0, #1
|
|
bne _02078DD4
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02078DD4:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end sub_02078D24
|
|
|
|
.rodata
|
|
|
|
_0210125C:
|
|
.byte 0x03, 0x04, 0x04, 0x04
|
|
_02101260:
|
|
.word ov91_0225C540, ov91_0225C58C, ov91_0225C9EC, FS_OVERLAY_ID(OVY_91)
|
|
_02101270:
|
|
.word ov92_0225CAB4, ov92_0225CDF4, ov92_0225D36C, FS_OVERLAY_ID(OVY_92)
|
|
_02101280:
|
|
.word ov44_02232EA8, ov44_02232F64, ov44_022330A8, FS_OVERLAY_ID(OVY_44)
|
|
_02101290:
|
|
.word ov44_0222A4B4, ov44_0222A60C, ov44_0222A758, FS_OVERLAY_ID(OVY_44)
|
|
_021012A0:
|
|
.word ov93_0225C540, ov93_0225C574, ov93_0225C6C0, FS_OVERLAY_ID(OVY_93)
|