mirror of
https://github.com/pret/pokeemerald-jp.git
synced 2026-09-27 21:47:34 -04:00
7182 lines
125 KiB
ArmAsm
7182 lines
125 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
.text
|
|
.syntax unified
|
|
|
|
thumb_func_start sub_0805ED7C
|
|
sub_0805ED7C: @ 0x0805ED7C
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end sub_0805ED7C
|
|
|
|
thumb_func_start SetControllerToOpponent
|
|
SetControllerToOpponent: @ 0x0805ED80
|
|
ldr r1, _0805ED90
|
|
ldr r0, _0805ED94
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805ED98
|
|
str r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805ED90: .4byte 0x03005AC0
|
|
_0805ED94: .4byte 0x02023D08
|
|
_0805ED98: .4byte 0x0805ED9D
|
|
thumb_func_end SetControllerToOpponent
|
|
|
|
thumb_func_start OpponentBufferRunCommand
|
|
OpponentBufferRunCommand: @ 0x0805ED9C
|
|
push {lr}
|
|
ldr r2, _0805EDD0
|
|
ldr r1, _0805EDD4
|
|
ldr r0, _0805EDD8
|
|
ldrb r3, [r0]
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r2]
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _0805EDE8
|
|
ldr r0, _0805EDDC
|
|
lsls r1, r3, #9
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, #0x38
|
|
bhi _0805EDE4
|
|
ldr r0, _0805EDE0
|
|
ldrb r1, [r1]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, [r1]
|
|
bl _call_via_r0
|
|
b _0805EDE8
|
|
.align 2, 0
|
|
_0805EDD0: .4byte 0x02023D0C
|
|
_0805EDD4: .4byte 0x082FACB4
|
|
_0805EDD8: .4byte 0x02023D08
|
|
_0805EDDC: .4byte 0x02022D08
|
|
_0805EDE0: .4byte 0x082ED050
|
|
_0805EDE4:
|
|
bl OpponentBufferExecCompleted
|
|
_0805EDE8:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end OpponentBufferRunCommand
|
|
|
|
thumb_func_start OpponentHandleIntroSlide
|
|
OpponentHandleIntroSlide: @ 0x0805EDEC
|
|
push {lr}
|
|
ldr r2, _0805EE14
|
|
ldr r1, _0805EE18
|
|
ldr r0, _0805EE1C
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, _0805EE20
|
|
cmp r1, r0
|
|
bne _0805EE10
|
|
bl OpponentBufferExecCompleted
|
|
_0805EE10:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805EE14: .4byte 0x020205AC
|
|
_0805EE18: .4byte 0x02023E88
|
|
_0805EE1C: .4byte 0x02023D08
|
|
_0805EE20: .4byte 0x08007141
|
|
thumb_func_end OpponentHandleIntroSlide
|
|
|
|
thumb_func_start OpponentHandleChooseItem
|
|
OpponentHandleChooseItem: @ 0x0805EE24
|
|
push {lr}
|
|
ldr r2, _0805EE4C
|
|
ldr r1, _0805EE50
|
|
ldr r0, _0805EE54
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, _0805EE58
|
|
cmp r1, r0
|
|
bne _0805EE48
|
|
bl OpponentBufferExecCompleted
|
|
_0805EE48:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805EE4C: .4byte 0x020205AC
|
|
_0805EE50: .4byte 0x02023E88
|
|
_0805EE54: .4byte 0x02023D08
|
|
_0805EE58: .4byte 0x08007141
|
|
thumb_func_end OpponentHandleChooseItem
|
|
|
|
thumb_func_start sub_0805EE5C
|
|
sub_0805EE5C: @ 0x0805EE5C
|
|
push {r4, r5, r6, lr}
|
|
ldr r5, _0805EEB4
|
|
ldr r6, _0805EEB8
|
|
ldr r4, _0805EEBC
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r2, r0, #2
|
|
adds r0, r5, #0
|
|
adds r0, #0x1c
|
|
adds r0, r2, r0
|
|
ldr r1, [r0]
|
|
ldr r0, _0805EEC0
|
|
cmp r1, r0
|
|
bne _0805EEAE
|
|
adds r0, r2, r5
|
|
ldrh r0, [r0, #6]
|
|
bl FreeTrainerFrontPicPalette
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
bl FreeSpriteOamMatrix
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
bl DestroySprite
|
|
bl OpponentBufferExecCompleted
|
|
_0805EEAE:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805EEB4: .4byte 0x020205AC
|
|
_0805EEB8: .4byte 0x02023E88
|
|
_0805EEBC: .4byte 0x02023D08
|
|
_0805EEC0: .4byte 0x08007141
|
|
thumb_func_end sub_0805EE5C
|
|
|
|
thumb_func_start sub_0805EEC4
|
|
sub_0805EEC4: @ 0x0805EEC4
|
|
push {r4, lr}
|
|
ldr r4, _0805EF04
|
|
ldr r1, [r4]
|
|
ldr r3, _0805EF08
|
|
ldrb r0, [r3]
|
|
ldr r2, [r1, #4]
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1, #9]
|
|
subs r0, #1
|
|
strb r0, [r1, #9]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0xff
|
|
bne _0805EEFC
|
|
ldr r0, [r4]
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #0
|
|
strb r1, [r0, #9]
|
|
bl OpponentBufferExecCompleted
|
|
_0805EEFC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805EF04: .4byte 0x02024174
|
|
_0805EF08: .4byte 0x02023D08
|
|
thumb_func_end sub_0805EEC4
|
|
|
|
thumb_func_start sub_0805EF0C
|
|
sub_0805EF0C: @ 0x0805EF0C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
movs r0, #0
|
|
mov sb, r0
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0805EF48
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0805EF3A
|
|
ldr r0, _0805EF70
|
|
ldr r0, [r0]
|
|
movs r1, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805EF48
|
|
_0805EF3A:
|
|
ldr r0, _0805EF70
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805EF84
|
|
_0805EF48:
|
|
ldr r2, _0805EF74
|
|
ldr r1, _0805EF78
|
|
ldr r3, _0805EF7C
|
|
ldrb r0, [r3]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, _0805EF80
|
|
mov sl, r3
|
|
cmp r1, r0
|
|
bne _0805EF6C
|
|
movs r1, #1
|
|
mov sb, r1
|
|
_0805EF6C:
|
|
movs r6, #0
|
|
b _0805EFC0
|
|
.align 2, 0
|
|
_0805EF70: .4byte 0x02022C90
|
|
_0805EF74: .4byte 0x020205AC
|
|
_0805EF78: .4byte 0x03005AD0
|
|
_0805EF7C: .4byte 0x02023D08
|
|
_0805EF80: .4byte 0x08007141
|
|
_0805EF84:
|
|
ldr r3, _0805F090
|
|
ldr r6, _0805F094
|
|
ldr r2, _0805F098
|
|
ldrb r4, [r2]
|
|
adds r0, r4, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r3, #0x1c
|
|
adds r0, r0, r3
|
|
ldr r5, [r0]
|
|
ldr r0, _0805F09C
|
|
mov sl, r2
|
|
cmp r5, r0
|
|
bne _0805EFBE
|
|
movs r0, #2
|
|
eors r4, r0
|
|
adds r0, r4, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldr r0, [r0]
|
|
cmp r0, r5
|
|
bne _0805EFBE
|
|
movs r0, #1
|
|
mov sb, r0
|
|
_0805EFBE:
|
|
movs r6, #1
|
|
_0805EFC0:
|
|
ldr r3, _0805F0A0
|
|
ldr r1, _0805F0A4
|
|
mov r8, r1
|
|
ldr r2, [r1]
|
|
mov r7, sl
|
|
ldrb r1, [r7]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r5, [r2, #4]
|
|
adds r0, r5, r0
|
|
str r0, [r3]
|
|
ldr r2, _0805F0A8
|
|
ldrb r0, [r7]
|
|
movs r1, #2
|
|
mov ip, r1
|
|
mov r1, ip
|
|
eors r1, r0
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r5, r0
|
|
str r0, [r2]
|
|
mov r0, sb
|
|
cmp r0, #0
|
|
bne _0805EFF6
|
|
b _0805F12A
|
|
_0805EFF6:
|
|
cmp r6, #1
|
|
bne _0805F0B0
|
|
ldrb r2, [r7]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r4, r0, r5
|
|
ldrb r1, [r4, #1]
|
|
adds r0, r6, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805F010
|
|
b _0805F12A
|
|
_0805F010:
|
|
mov r0, ip
|
|
eors r0, r2
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1, #1]
|
|
ands r6, r0
|
|
cmp r6, #0
|
|
bne _0805F026
|
|
b _0805F12A
|
|
_0805F026:
|
|
ldrb r1, [r4]
|
|
movs r3, #0x7f
|
|
adds r0, r3, #0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldrb r2, [r7]
|
|
ldr r0, [r0, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r2, [r1, #1]
|
|
movs r4, #2
|
|
rsbs r4, r4, #0
|
|
adds r0, r4, #0
|
|
ands r0, r2
|
|
strb r0, [r1, #1]
|
|
mov r0, r8
|
|
ldr r2, [r0]
|
|
ldrb r0, [r7]
|
|
mov r1, ip
|
|
eors r1, r0
|
|
ldr r2, [r2, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
ands r3, r1
|
|
strb r3, [r0]
|
|
mov r1, r8
|
|
ldr r2, [r1]
|
|
ldrb r0, [r7]
|
|
mov r1, ip
|
|
eors r1, r0
|
|
ldr r2, [r2, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #1]
|
|
ands r4, r1
|
|
strb r4, [r0, #1]
|
|
ldr r4, _0805F0AC
|
|
adds r0, r4, #0
|
|
bl FreeSpriteTilesByTag
|
|
adds r0, r4, #0
|
|
bl FreeSpritePaletteByTag
|
|
b _0805F108
|
|
.align 2, 0
|
|
_0805F090: .4byte 0x020205AC
|
|
_0805F094: .4byte 0x03005AD0
|
|
_0805F098: .4byte 0x02023D08
|
|
_0805F09C: .4byte 0x08007141
|
|
_0805F0A0: .4byte 0x0202417C
|
|
_0805F0A4: .4byte 0x02024174
|
|
_0805F0A8: .4byte 0x02024180
|
|
_0805F0AC: .4byte 0x000027F9
|
|
_0805F0B0:
|
|
mov r0, sl
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, r0, r5
|
|
ldrb r1, [r2, #1]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805F12A
|
|
ldrb r1, [r2]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
mov r1, sl
|
|
ldrb r2, [r1]
|
|
ldr r0, [r0, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r2, [r1, #1]
|
|
movs r0, #2
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1, #1]
|
|
mov r1, sl
|
|
ldrb r0, [r1]
|
|
bl GetBattlerPosition
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #3
|
|
bne _0805F108
|
|
ldr r4, _0805F138
|
|
adds r0, r4, #0
|
|
bl FreeSpriteTilesByTag
|
|
adds r0, r4, #0
|
|
bl FreeSpritePaletteByTag
|
|
_0805F108:
|
|
ldr r0, _0805F13C
|
|
ldr r0, [r0]
|
|
ldr r3, _0805F140
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #3
|
|
strb r1, [r0, #9]
|
|
ldr r1, _0805F144
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805F148
|
|
str r1, [r0]
|
|
_0805F12A:
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F138: .4byte 0x000027F9
|
|
_0805F13C: .4byte 0x02024174
|
|
_0805F140: .4byte 0x02023D08
|
|
_0805F144: .4byte 0x03005AC0
|
|
_0805F148: .4byte 0x0805EEC5
|
|
thumb_func_end sub_0805EF0C
|
|
|
|
thumb_func_start sub_0805F14C
|
|
sub_0805F14C: @ 0x0805F14C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #4
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
mov sl, r0
|
|
ldr r5, _0805F334
|
|
ldr r0, [r5]
|
|
ldr r4, _0805F338
|
|
ldrb r2, [r4]
|
|
ldr r1, [r0, #4]
|
|
lsls r3, r2, #1
|
|
adds r0, r3, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r6, #0xc4
|
|
lsls r6, r6, #1
|
|
adds r0, r6, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805F192
|
|
ldr r0, _0805F33C
|
|
adds r0, r3, r0
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r1, r0, r1
|
|
ldr r0, _0805F340
|
|
adds r1, r1, r0
|
|
adds r0, r2, #0
|
|
bl sub_08172CD4
|
|
_0805F192:
|
|
ldr r0, _0805F344
|
|
ldr r0, [r0]
|
|
ldr r1, _0805F348
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805F1DA
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0805F1DA
|
|
ldr r2, [r5]
|
|
ldrb r1, [r4]
|
|
movs r0, #2
|
|
adds r3, r0, #0
|
|
eors r3, r1
|
|
ldr r1, [r2, #4]
|
|
lsls r2, r3, #1
|
|
adds r0, r2, r3
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
adds r0, r6, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805F1DA
|
|
ldr r0, _0805F33C
|
|
adds r0, r2, r0
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r1, r0, r1
|
|
ldr r0, _0805F340
|
|
adds r1, r1, r0
|
|
adds r0, r3, #0
|
|
bl sub_08172CD4
|
|
_0805F1DA:
|
|
ldr r2, _0805F334
|
|
ldr r0, [r2]
|
|
ldr r1, _0805F338
|
|
mov r8, r1
|
|
ldrb r4, [r1]
|
|
ldr r5, [r0, #4]
|
|
lsls r0, r4, #1
|
|
adds r0, r0, r4
|
|
lsls r0, r0, #2
|
|
adds r3, r0, r5
|
|
ldrb r1, [r3]
|
|
movs r6, #8
|
|
adds r0, r6, #0
|
|
ands r0, r1
|
|
mov sb, r2
|
|
cmp r0, #0
|
|
bne _0805F2BC
|
|
movs r7, #2
|
|
adds r1, r7, #0
|
|
eors r1, r4
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
adds r0, r6, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805F2BC
|
|
ldrb r1, [r3, #1]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805F2A0
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0805F270
|
|
ldr r0, _0805F344
|
|
ldr r0, [r0]
|
|
movs r1, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805F270
|
|
ldr r4, _0805F34C
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
adds r1, r7, #0
|
|
eors r1, r0
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
ldr r2, _0805F33C
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, #0x64
|
|
muls r1, r2, r1
|
|
ldr r2, _0805F340
|
|
adds r1, r1, r2
|
|
movs r2, #0
|
|
bl UpdateHealthboxAttribute
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
eors r0, r7
|
|
bl sub_08076320
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
eors r0, r7
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteVisible
|
|
_0805F270:
|
|
ldr r5, _0805F34C
|
|
ldr r4, _0805F338
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
ldr r2, _0805F33C
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, #0x64
|
|
muls r1, r2, r1
|
|
ldr r2, _0805F340
|
|
adds r1, r1, r2
|
|
movs r2, #0
|
|
bl UpdateHealthboxAttribute
|
|
ldrb r0, [r4]
|
|
bl sub_08076320
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteVisible
|
|
_0805F2A0:
|
|
ldr r3, _0805F334
|
|
ldr r2, [r3]
|
|
ldr r0, _0805F338
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #1]
|
|
movs r2, #0x80
|
|
orrs r1, r2
|
|
strb r1, [r0, #1]
|
|
mov sb, r3
|
|
_0805F2BC:
|
|
mov r1, sb
|
|
ldr r0, [r1]
|
|
ldr r4, _0805F338
|
|
ldrb r2, [r4]
|
|
ldr r3, [r0, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldrb r1, [r0, #1]
|
|
movs r0, #0xc0
|
|
ands r0, r1
|
|
cmp r0, #0x80
|
|
bne _0805F37E
|
|
movs r1, #2
|
|
eors r1, r2
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldrb r1, [r0, #1]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805F37E
|
|
bl IsCryPlayingOrClearCrySongs
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0805F37E
|
|
mov r1, sb
|
|
ldr r0, [r1]
|
|
ldrb r4, [r4]
|
|
ldr r1, [r0, #4]
|
|
lsls r0, r4, #1
|
|
adds r0, r0, r4
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0, #1]
|
|
movs r0, #0x20
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805F360
|
|
ldr r0, _0805F344
|
|
ldr r0, [r0]
|
|
movs r1, #0x42
|
|
ands r0, r1
|
|
cmp r0, #0x42
|
|
bne _0805F354
|
|
adds r0, r4, #0
|
|
bl GetBattlerPosition
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bne _0805F360
|
|
ldr r0, _0805F350
|
|
bl m4aMPlayContinue
|
|
b _0805F360
|
|
.align 2, 0
|
|
_0805F334: .4byte 0x02024174
|
|
_0805F338: .4byte 0x02023D08
|
|
_0805F33C: .4byte 0x02023D12
|
|
_0805F340: .4byte 0x020243E8
|
|
_0805F344: .4byte 0x02022C90
|
|
_0805F348: .4byte 0x00008040
|
|
_0805F34C: .4byte 0x03005AD0
|
|
_0805F350: .4byte 0x030074D0
|
|
_0805F354:
|
|
ldr r0, _0805F3D8
|
|
ldr r1, _0805F3DC
|
|
movs r2, #0x80
|
|
lsls r2, r2, #1
|
|
bl m4aMPlayVolumeControl
|
|
_0805F360:
|
|
ldr r0, _0805F3E0
|
|
ldr r2, [r0]
|
|
ldr r0, _0805F3E4
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #1]
|
|
movs r2, #0x20
|
|
orrs r1, r2
|
|
strb r1, [r0, #1]
|
|
movs r0, #1
|
|
str r0, [sp]
|
|
_0805F37E:
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0805F39E
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0805F3FC
|
|
ldr r0, _0805F3E8
|
|
ldr r0, [r0]
|
|
movs r1, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805F3FC
|
|
_0805F39E:
|
|
ldr r2, _0805F3EC
|
|
ldr r0, _0805F3F0
|
|
ldr r1, _0805F3E4
|
|
ldrb r4, [r1]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r3, [r0]
|
|
ldr r0, _0805F3F4
|
|
cmp r3, r0
|
|
bne _0805F45A
|
|
ldr r0, _0805F3F8
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, r3
|
|
bne _0805F45A
|
|
movs r1, #1
|
|
mov sl, r1
|
|
b _0805F45A
|
|
.align 2, 0
|
|
_0805F3D8: .4byte 0x030074D0
|
|
_0805F3DC: .4byte 0x0000FFFF
|
|
_0805F3E0: .4byte 0x02024174
|
|
_0805F3E4: .4byte 0x02023D08
|
|
_0805F3E8: .4byte 0x02022C90
|
|
_0805F3EC: .4byte 0x020205AC
|
|
_0805F3F0: .4byte 0x03005ADC
|
|
_0805F3F4: .4byte 0x08007141
|
|
_0805F3F8: .4byte 0x02023E88
|
|
_0805F3FC:
|
|
ldr r2, _0805F554
|
|
ldr r7, _0805F558
|
|
ldr r0, _0805F55C
|
|
ldrb r3, [r0]
|
|
adds r0, r3, r7
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r4, [r0]
|
|
ldr r0, _0805F560
|
|
cmp r4, r0
|
|
bne _0805F45A
|
|
ldr r6, _0805F564
|
|
adds r0, r3, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r5, [r0]
|
|
cmp r5, r4
|
|
bne _0805F45A
|
|
movs r0, #2
|
|
eors r3, r0
|
|
adds r0, r3, r7
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r4, [r0]
|
|
cmp r4, r5
|
|
bne _0805F45A
|
|
adds r0, r3, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, r4
|
|
bne _0805F45A
|
|
movs r0, #1
|
|
mov sl, r0
|
|
_0805F45A:
|
|
ldr r1, [sp]
|
|
cmp r1, #0
|
|
beq _0805F544
|
|
mov r0, sl
|
|
cmp r0, #0
|
|
beq _0805F544
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0805F4BE
|
|
ldr r0, _0805F568
|
|
ldr r0, [r0]
|
|
movs r1, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805F4BE
|
|
ldr r1, _0805F558
|
|
ldr r5, _0805F55C
|
|
ldrb r0, [r5]
|
|
movs r4, #2
|
|
eors r0, r4
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r1, _0805F554
|
|
adds r0, r0, r1
|
|
bl DestroySprite
|
|
ldrb r0, [r5]
|
|
eors r4, r0
|
|
ldr r1, _0805F56C
|
|
lsls r0, r4, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0805F570
|
|
adds r0, r0, r1
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
adds r0, r4, #0
|
|
bl SetBattlerShadowSpriteCallback
|
|
_0805F4BE:
|
|
ldr r1, _0805F558
|
|
ldr r4, _0805F55C
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r1, _0805F554
|
|
adds r0, r0, r1
|
|
bl DestroySprite
|
|
ldrb r5, [r4]
|
|
ldr r1, _0805F56C
|
|
lsls r0, r5, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0805F570
|
|
adds r0, r0, r1
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
adds r0, r5, #0
|
|
bl SetBattlerShadowSpriteCallback
|
|
ldr r3, _0805F574
|
|
ldr r0, [r3]
|
|
ldr r2, [r0, #8]
|
|
ldrb r1, [r2, #9]
|
|
movs r0, #2
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r2, #9]
|
|
ldr r0, [r3]
|
|
ldrb r2, [r4]
|
|
ldr r0, [r0, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r2, [r1, #1]
|
|
movs r0, #0x21
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1, #1]
|
|
ldr r0, [r3]
|
|
ldrb r2, [r4]
|
|
ldr r0, [r0, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r2, [r1, #1]
|
|
movs r0, #0x7f
|
|
ands r0, r2
|
|
strb r0, [r1, #1]
|
|
ldr r1, _0805F578
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805F57C
|
|
str r1, [r0]
|
|
_0805F544:
|
|
add sp, #4
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F554: .4byte 0x020205AC
|
|
_0805F558: .4byte 0x03005ADC
|
|
_0805F55C: .4byte 0x02023D08
|
|
_0805F560: .4byte 0x08007141
|
|
_0805F564: .4byte 0x02023E88
|
|
_0805F568: .4byte 0x02022C90
|
|
_0805F56C: .4byte 0x02023D12
|
|
_0805F570: .4byte 0x020243E8
|
|
_0805F574: .4byte 0x02024174
|
|
_0805F578: .4byte 0x03005AC0
|
|
_0805F57C: .4byte 0x0805EF0D
|
|
thumb_func_end sub_0805F14C
|
|
|
|
thumb_func_start sub_0805F580
|
|
sub_0805F580: @ 0x0805F580
|
|
push {r4, r5, lr}
|
|
ldr r2, _0805F63C
|
|
ldr r0, _0805F640
|
|
ldr r1, _0805F644
|
|
ldrb r3, [r1]
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #0x24
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, #0
|
|
bne _0805F5CC
|
|
ldr r0, _0805F648
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #4]
|
|
lsls r2, r3, #1
|
|
adds r0, r2, r3
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805F5CC
|
|
ldr r0, _0805F64C
|
|
adds r0, r2, r0
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r1, r0, r1
|
|
ldr r0, _0805F650
|
|
adds r1, r1, r0
|
|
adds r0, r3, #0
|
|
bl sub_08172CD4
|
|
_0805F5CC:
|
|
ldr r2, _0805F63C
|
|
ldr r0, _0805F640
|
|
ldr r5, _0805F644
|
|
ldrb r3, [r5]
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, _0805F654
|
|
cmp r1, r0
|
|
bne _0805F634
|
|
ldr r4, _0805F648
|
|
ldr r0, [r4]
|
|
ldr r1, [r0, #4]
|
|
lsls r0, r3, #1
|
|
adds r0, r0, r3
|
|
lsls r0, r0, #2
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2, #1]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805F634
|
|
ldrb r1, [r2]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, [r4]
|
|
ldrb r2, [r5]
|
|
ldr r0, [r0, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r2, [r1, #1]
|
|
movs r0, #2
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1, #1]
|
|
ldr r4, _0805F658
|
|
adds r0, r4, #0
|
|
bl FreeSpriteTilesByTag
|
|
adds r0, r4, #0
|
|
bl FreeSpritePaletteByTag
|
|
bl OpponentBufferExecCompleted
|
|
_0805F634:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F63C: .4byte 0x020205AC
|
|
_0805F640: .4byte 0x02023E88
|
|
_0805F644: .4byte 0x02023D08
|
|
_0805F648: .4byte 0x02024174
|
|
_0805F64C: .4byte 0x02023D12
|
|
_0805F650: .4byte 0x020243E8
|
|
_0805F654: .4byte 0x08007141
|
|
_0805F658: .4byte 0x000027F9
|
|
thumb_func_end sub_0805F580
|
|
|
|
thumb_func_start sub_0805F65C
|
|
sub_0805F65C: @ 0x0805F65C
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _0805F69C
|
|
ldrb r0, [r6]
|
|
ldr r5, _0805F6A0
|
|
adds r1, r0, r5
|
|
ldrb r1, [r1]
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl MoveBattleBar
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x10
|
|
lsrs r4, r4, #0x10
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteVisible
|
|
lsls r4, r4, #0x10
|
|
asrs r1, r4, #0x10
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
cmp r1, r0
|
|
beq _0805F6A4
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
movs r2, #0
|
|
bl sub_080726F4
|
|
b _0805F6A8
|
|
.align 2, 0
|
|
_0805F69C: .4byte 0x02023D08
|
|
_0805F6A0: .4byte 0x03005AD0
|
|
_0805F6A4:
|
|
bl OpponentBufferExecCompleted
|
|
_0805F6A8:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end sub_0805F65C
|
|
|
|
thumb_func_start OpponentHandleCmd38
|
|
OpponentHandleCmd38: @ 0x0805F6B0
|
|
push {lr}
|
|
ldr r2, _0805F6E4
|
|
ldr r0, _0805F6E8
|
|
ldr r1, _0805F6EC
|
|
ldrb r3, [r1]
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
adds r0, #0x3e
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1f
|
|
cmp r0, #0
|
|
bne _0805F6DE
|
|
ldr r0, _0805F6F0
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteInvisible
|
|
bl OpponentBufferExecCompleted
|
|
_0805F6DE:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F6E4: .4byte 0x020205AC
|
|
_0805F6E8: .4byte 0x02023E88
|
|
_0805F6EC: .4byte 0x02023D08
|
|
_0805F6F0: .4byte 0x03005AD0
|
|
thumb_func_end OpponentHandleCmd38
|
|
|
|
thumb_func_start sub_0805F6F4
|
|
sub_0805F6F4: @ 0x0805F6F4
|
|
push {r4, r5, r6, lr}
|
|
ldr r0, _0805F754
|
|
ldr r0, [r0]
|
|
ldr r6, _0805F758
|
|
ldrb r2, [r6]
|
|
ldr r1, [r0, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805F74E
|
|
ldr r5, _0805F75C
|
|
adds r0, r2, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r4, _0805F760
|
|
adds r0, r0, r4
|
|
bl FreeSpriteOamMatrix
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
bl DestroySprite
|
|
ldrb r0, [r6]
|
|
bl HideBattlerShadowSprite
|
|
ldr r1, _0805F764
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteInvisible
|
|
bl OpponentBufferExecCompleted
|
|
_0805F74E:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F754: .4byte 0x02024174
|
|
_0805F758: .4byte 0x02023D08
|
|
_0805F75C: .4byte 0x02023E88
|
|
_0805F760: .4byte 0x020205AC
|
|
_0805F764: .4byte 0x03005AD0
|
|
thumb_func_end sub_0805F6F4
|
|
|
|
thumb_func_start OpponentHandleBallThrow
|
|
OpponentHandleBallThrow: @ 0x0805F768
|
|
push {lr}
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _0805F77A
|
|
bl OpponentBufferExecCompleted
|
|
_0805F77A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandleBallThrow
|
|
|
|
thumb_func_start OpponentHandleHitAnimation
|
|
OpponentHandleHitAnimation: @ 0x0805F780
|
|
push {r4, lr}
|
|
ldr r1, _0805F7BC
|
|
ldr r0, _0805F7C0
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
ldr r2, _0805F7C4
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r4, r0, r2
|
|
movs r1, #0x30
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, #0x20
|
|
bne _0805F7CC
|
|
movs r3, #0
|
|
movs r0, #0
|
|
strh r0, [r4, #0x30]
|
|
adds r2, r4, #0
|
|
adds r2, #0x3e
|
|
ldrb r1, [r2]
|
|
subs r0, #5
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _0805F7C8
|
|
strb r3, [r0]
|
|
bl OpponentBufferExecCompleted
|
|
b _0805F7F6
|
|
.align 2, 0
|
|
_0805F7BC: .4byte 0x02023E88
|
|
_0805F7C0: .4byte 0x02023D08
|
|
_0805F7C4: .4byte 0x020205AC
|
|
_0805F7C8: .4byte 0x0202415D
|
|
_0805F7CC:
|
|
ldrh r0, [r4, #0x30]
|
|
movs r1, #3
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805F7F0
|
|
adds r3, r4, #0
|
|
adds r3, #0x3e
|
|
ldrb r2, [r3]
|
|
lsls r0, r2, #0x1d
|
|
lsrs r0, r0, #0x1f
|
|
movs r1, #1
|
|
eors r1, r0
|
|
lsls r1, r1, #2
|
|
movs r0, #5
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_0805F7F0:
|
|
ldrh r0, [r4, #0x30]
|
|
adds r0, #1
|
|
strh r0, [r4, #0x30]
|
|
_0805F7F6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end OpponentHandleHitAnimation
|
|
|
|
thumb_func_start sub_0805F7FC
|
|
sub_0805F7FC: @ 0x0805F7FC
|
|
push {r4, lr}
|
|
ldr r2, _0805F850
|
|
ldr r0, _0805F854
|
|
ldr r4, _0805F858
|
|
ldrb r3, [r4]
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, _0805F85C
|
|
cmp r1, r0
|
|
bne _0805F848
|
|
ldr r0, _0805F860
|
|
ldr r0, [r0]
|
|
ldr r1, [r0]
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805F83C
|
|
adds r0, r3, #0
|
|
adds r1, r3, #0
|
|
adds r2, r3, #0
|
|
movs r3, #6
|
|
bl InitAndLaunchSpecialAnimation
|
|
_0805F83C:
|
|
ldr r0, _0805F864
|
|
ldrb r1, [r4]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, _0805F868
|
|
str r0, [r1]
|
|
_0805F848:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F850: .4byte 0x020205AC
|
|
_0805F854: .4byte 0x03005AD0
|
|
_0805F858: .4byte 0x02023D08
|
|
_0805F85C: .4byte 0x08007141
|
|
_0805F860: .4byte 0x02024174
|
|
_0805F864: .4byte 0x03005AC0
|
|
_0805F868: .4byte 0x0805F86D
|
|
thumb_func_end sub_0805F7FC
|
|
|
|
thumb_func_start sub_0805F86C
|
|
sub_0805F86C: @ 0x0805F86C
|
|
push {r4, lr}
|
|
ldr r0, _0805F8CC
|
|
ldr r0, [r0]
|
|
ldr r4, _0805F8D0
|
|
ldrb r1, [r4]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805F8C6
|
|
bl IsCryPlayingOrClearCrySongs
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0805F8C6
|
|
ldr r2, _0805F8D4
|
|
ldr r1, _0805F8D8
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, _0805F8DC
|
|
cmp r1, r0
|
|
beq _0805F8B6
|
|
ldr r0, _0805F8E0
|
|
cmp r1, r0
|
|
bne _0805F8C6
|
|
_0805F8B6:
|
|
ldr r0, _0805F8E4
|
|
ldr r1, _0805F8E8
|
|
movs r2, #0x80
|
|
lsls r2, r2, #1
|
|
bl m4aMPlayVolumeControl
|
|
bl OpponentBufferExecCompleted
|
|
_0805F8C6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F8CC: .4byte 0x02024174
|
|
_0805F8D0: .4byte 0x02023D08
|
|
_0805F8D4: .4byte 0x020205AC
|
|
_0805F8D8: .4byte 0x02023E88
|
|
_0805F8DC: .4byte 0x08007141
|
|
_0805F8E0: .4byte 0x080394FD
|
|
_0805F8E4: .4byte 0x030074D0
|
|
_0805F8E8: .4byte 0x0000FFFF
|
|
thumb_func_end sub_0805F86C
|
|
|
|
thumb_func_start sub_0805F8EC
|
|
sub_0805F8EC: @ 0x0805F8EC
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r4, _0805F9B0
|
|
ldr r0, [r4]
|
|
ldr r5, _0805F9B4
|
|
ldrb r2, [r5]
|
|
ldr r1, [r0, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r3, r0, r1
|
|
ldrb r1, [r3, #1]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805F9A8
|
|
ldr r7, _0805F9B8
|
|
ldr r6, _0805F9BC
|
|
adds r0, r2, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r7, #0
|
|
adds r1, #0x1c
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, _0805F9C0
|
|
cmp r1, r0
|
|
bne _0805F9A8
|
|
ldrb r1, [r3]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
ldr r0, [r4]
|
|
ldrb r2, [r5]
|
|
ldr r0, [r0, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r2, [r1, #1]
|
|
movs r0, #2
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1, #1]
|
|
ldr r4, _0805F9C4
|
|
adds r0, r4, #0
|
|
bl FreeSpriteTilesByTag
|
|
adds r0, r4, #0
|
|
bl FreeSpritePaletteByTag
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r7
|
|
movs r1, #0
|
|
bl StartSpriteAnim
|
|
ldr r4, _0805F9C8
|
|
ldrb r1, [r5]
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
ldr r2, _0805F9CC
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, #0x64
|
|
muls r1, r2, r1
|
|
ldr r2, _0805F9D0
|
|
adds r1, r1, r2
|
|
movs r2, #0
|
|
bl UpdateHealthboxAttribute
|
|
ldrb r0, [r5]
|
|
bl sub_08076320
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteVisible
|
|
ldrb r0, [r5]
|
|
bl CopyBattleSpriteInvisibility
|
|
ldr r1, _0805F9D4
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805F9D8
|
|
str r1, [r0]
|
|
_0805F9A8:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F9B0: .4byte 0x02024174
|
|
_0805F9B4: .4byte 0x02023D08
|
|
_0805F9B8: .4byte 0x020205AC
|
|
_0805F9BC: .4byte 0x02023E88
|
|
_0805F9C0: .4byte 0x08007141
|
|
_0805F9C4: .4byte 0x000027F9
|
|
_0805F9C8: .4byte 0x03005AD0
|
|
_0805F9CC: .4byte 0x02023D12
|
|
_0805F9D0: .4byte 0x020243E8
|
|
_0805F9D4: .4byte 0x03005AC0
|
|
_0805F9D8: .4byte 0x0805F7FD
|
|
thumb_func_end sub_0805F8EC
|
|
|
|
thumb_func_start sub_0805F9DC
|
|
sub_0805F9DC: @ 0x0805F9DC
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _0805FA80
|
|
ldr r0, [r6]
|
|
ldr r5, _0805FA84
|
|
ldrb r2, [r5]
|
|
ldr r1, [r0, #4]
|
|
lsls r3, r2, #1
|
|
adds r0, r3, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #0x88
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805FA0E
|
|
ldr r0, _0805FA88
|
|
adds r0, r3, r0
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r1, r0, r1
|
|
ldr r0, _0805FA8C
|
|
adds r1, r1, r0
|
|
adds r0, r2, #0
|
|
bl sub_08172CD4
|
|
_0805FA0E:
|
|
ldr r4, _0805FA90
|
|
ldr r0, _0805FA94
|
|
ldrb r2, [r5]
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r3, r0, #2
|
|
adds r0, r4, #0
|
|
adds r0, #0x1c
|
|
adds r0, r3, r0
|
|
ldr r1, [r0]
|
|
ldr r0, _0805FA98
|
|
cmp r1, r0
|
|
bne _0805FA78
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805FA78
|
|
adds r0, r3, r4
|
|
bl DestroySprite
|
|
ldrb r4, [r5]
|
|
ldr r1, _0805FA88
|
|
lsls r0, r4, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0805FA8C
|
|
adds r0, r0, r1
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
adds r0, r4, #0
|
|
bl SetBattlerShadowSpriteCallback
|
|
ldr r1, _0805FA9C
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805FAA0
|
|
str r1, [r0]
|
|
_0805FA78:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805FA80: .4byte 0x02024174
|
|
_0805FA84: .4byte 0x02023D08
|
|
_0805FA88: .4byte 0x02023D12
|
|
_0805FA8C: .4byte 0x020243E8
|
|
_0805FA90: .4byte 0x020205AC
|
|
_0805FA94: .4byte 0x03005ADC
|
|
_0805FA98: .4byte 0x08007141
|
|
_0805FA9C: .4byte 0x03005AC0
|
|
_0805FAA0: .4byte 0x0805F8ED
|
|
thumb_func_end sub_0805F9DC
|
|
|
|
thumb_func_start OpponentHandleCmd37
|
|
OpponentHandleCmd37: @ 0x0805FAA4
|
|
push {lr}
|
|
ldr r0, _0805FACC
|
|
ldr r2, [r0]
|
|
ldr r0, _0805FAD0
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, #0x10
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805FAC6
|
|
bl OpponentBufferExecCompleted
|
|
_0805FAC6:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805FACC: .4byte 0x02024174
|
|
_0805FAD0: .4byte 0x02023D08
|
|
thumb_func_end OpponentHandleCmd37
|
|
|
|
thumb_func_start OpponentHandleCmd39
|
|
OpponentHandleCmd39: @ 0x0805FAD4
|
|
push {lr}
|
|
ldr r0, _0805FAFC
|
|
ldr r2, [r0]
|
|
ldr r0, _0805FB00
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, #0x20
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805FAF6
|
|
bl OpponentBufferExecCompleted
|
|
_0805FAF6:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805FAFC: .4byte 0x02024174
|
|
_0805FB00: .4byte 0x02023D08
|
|
thumb_func_end OpponentHandleCmd39
|
|
|
|
thumb_func_start OpponentBufferExecCompleted
|
|
OpponentBufferExecCompleted: @ 0x0805FB04
|
|
push {r4, lr}
|
|
sub sp, #4
|
|
ldr r1, _0805FB44
|
|
ldr r4, _0805FB48
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805FB4C
|
|
str r1, [r0]
|
|
ldr r0, _0805FB50
|
|
ldr r0, [r0]
|
|
movs r1, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805FB58
|
|
bl GetMultiplayerId
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
movs r0, #2
|
|
movs r1, #4
|
|
mov r2, sp
|
|
bl PrepareBufferDataTransferLink
|
|
ldr r1, _0805FB54
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #9
|
|
adds r0, r0, r1
|
|
movs r1, #0x38
|
|
strb r1, [r0]
|
|
b _0805FB6A
|
|
.align 2, 0
|
|
_0805FB44: .4byte 0x03005AC0
|
|
_0805FB48: .4byte 0x02023D08
|
|
_0805FB4C: .4byte 0x0805ED9D
|
|
_0805FB50: .4byte 0x02022C90
|
|
_0805FB54: .4byte 0x02022D08
|
|
_0805FB58:
|
|
ldr r2, _0805FB74
|
|
ldr r1, _0805FB78
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
_0805FB6A:
|
|
add sp, #4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805FB74: .4byte 0x02023D0C
|
|
_0805FB78: .4byte 0x082FACB4
|
|
thumb_func_end OpponentBufferExecCompleted
|
|
|
|
thumb_func_start OpponentHandleGetMonData
|
|
OpponentHandleGetMonData: @ 0x0805FB7C
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x100
|
|
movs r6, #0
|
|
ldr r1, _0805FBA8
|
|
ldr r0, _0805FBAC
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, #9
|
|
adds r1, #2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, #0
|
|
bne _0805FBB4
|
|
ldr r0, _0805FBB0
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
mov r1, sp
|
|
bl GetOpponentMonData
|
|
adds r6, r0, #0
|
|
b _0805FBD6
|
|
.align 2, 0
|
|
_0805FBA8: .4byte 0x02022D08
|
|
_0805FBAC: .4byte 0x02023D08
|
|
_0805FBB0: .4byte 0x02023D12
|
|
_0805FBB4:
|
|
ldrb r4, [r1]
|
|
movs r5, #0
|
|
_0805FBB8:
|
|
movs r0, #1
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
beq _0805FBCE
|
|
lsls r0, r5, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov r2, sp
|
|
adds r1, r2, r6
|
|
bl GetOpponentMonData
|
|
adds r6, r6, r0
|
|
_0805FBCE:
|
|
lsrs r4, r4, #1
|
|
adds r5, #1
|
|
cmp r5, #5
|
|
ble _0805FBB8
|
|
_0805FBD6:
|
|
lsls r1, r6, #0x10
|
|
lsrs r1, r1, #0x10
|
|
movs r0, #1
|
|
mov r2, sp
|
|
bl BtlController_EmitDataTransfer
|
|
bl OpponentBufferExecCompleted
|
|
add sp, #0x100
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandleGetMonData
|
|
|
|
thumb_func_start GetOpponentMonData
|
|
GetOpponentMonData: @ 0x0805FBF0
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x90
|
|
adds r7, r1, #0
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
movs r6, #0
|
|
ldr r2, _0805FC24
|
|
ldr r3, _0805FC28
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #9
|
|
adds r1, r2, #1
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x3b
|
|
bls _0805FC1A
|
|
bl _08060386
|
|
_0805FC1A:
|
|
lsls r0, r0, #2
|
|
ldr r1, _0805FC2C
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0805FC24: .4byte 0x02022D08
|
|
_0805FC28: .4byte 0x02023D08
|
|
_0805FC2C: .4byte 0x0805FC30
|
|
_0805FC30: @ jump table
|
|
.4byte _0805FD20 @ case 0
|
|
.4byte _0805FF44 @ case 1
|
|
.4byte _0805FF54 @ case 2
|
|
.4byte _0805FF64 @ case 3
|
|
.4byte _0805FFCC @ case 4
|
|
.4byte _0805FFCC @ case 5
|
|
.4byte _0805FFCC @ case 6
|
|
.4byte _0805FFCC @ case 7
|
|
.4byte _0805FFE8 @ case 8
|
|
.4byte _08060024 @ case 9
|
|
.4byte _08060024 @ case 10
|
|
.4byte _08060024 @ case 11
|
|
.4byte _08060024 @ case 12
|
|
.4byte _08060386 @ case 13
|
|
.4byte _08060386 @ case 14
|
|
.4byte _08060386 @ case 15
|
|
.4byte _08060386 @ case 16
|
|
.4byte _08060040 @ case 17
|
|
.4byte _08060050 @ case 18
|
|
.4byte _08060080 @ case 19
|
|
.4byte _08060090 @ case 20
|
|
.4byte _080600A0 @ case 21
|
|
.4byte _080600B0 @ case 22
|
|
.4byte _080600C0 @ case 23
|
|
.4byte _080600D0 @ case 24
|
|
.4byte _080600E0 @ case 25
|
|
.4byte _080600F0 @ case 26
|
|
.4byte _08060100 @ case 27
|
|
.4byte _08060110 @ case 28
|
|
.4byte _08060120 @ case 29
|
|
.4byte _08060130 @ case 30
|
|
.4byte _08060140 @ case 31
|
|
.4byte _08060190 @ case 32
|
|
.4byte _080601A0 @ case 33
|
|
.4byte _080601B0 @ case 34
|
|
.4byte _080601C0 @ case 35
|
|
.4byte _080601D0 @ case 36
|
|
.4byte _080601E0 @ case 37
|
|
.4byte _080601F0 @ case 38
|
|
.4byte _08060200 @ case 39
|
|
.4byte _08060210 @ case 40
|
|
.4byte _08060244 @ case 41
|
|
.4byte _08060254 @ case 42
|
|
.4byte _08060264 @ case 43
|
|
.4byte _08060274 @ case 44
|
|
.4byte _08060284 @ case 45
|
|
.4byte _08060294 @ case 46
|
|
.4byte _080602A4 @ case 47
|
|
.4byte _080602B4 @ case 48
|
|
.4byte _080602D4 @ case 49
|
|
.4byte _080602E4 @ case 50
|
|
.4byte _080602F4 @ case 51
|
|
.4byte _08060304 @ case 52
|
|
.4byte _08060314 @ case 53
|
|
.4byte _08060324 @ case 54
|
|
.4byte _08060334 @ case 55
|
|
.4byte _08060344 @ case 56
|
|
.4byte _08060354 @ case 57
|
|
.4byte _08060364 @ case 58
|
|
.4byte _08060374 @ case 59
|
|
_0805FD20:
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _0805FF34
|
|
adds r4, r4, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0xc
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, #0x2e]
|
|
movs r6, #0
|
|
add r0, sp, #0x24
|
|
mov sb, r0
|
|
movs r1, #0x3b
|
|
add r1, sp
|
|
mov sl, r1
|
|
mov r2, sp
|
|
adds r2, #0x2b
|
|
str r2, [sp, #0x80]
|
|
mov r0, sp
|
|
adds r0, #0x2a
|
|
str r0, [sp, #0x7c]
|
|
mov r1, sp
|
|
adds r1, #0x68
|
|
str r1, [sp, #0x8c]
|
|
adds r2, #5
|
|
str r2, [sp, #0x84]
|
|
adds r0, #0x12
|
|
str r0, [sp, #0x88]
|
|
mov r8, r4
|
|
add r4, sp, #0xc
|
|
_0805FD6C:
|
|
adds r1, r6, #0
|
|
adds r1, #0xd
|
|
mov r0, r8
|
|
bl GetMonData
|
|
strh r0, [r4]
|
|
adds r1, r6, #0
|
|
adds r1, #0x11
|
|
mov r0, r8
|
|
bl GetMonData
|
|
mov r2, sb
|
|
adds r1, r2, r6
|
|
strb r0, [r1]
|
|
adds r4, #2
|
|
adds r6, #1
|
|
cmp r6, #3
|
|
ble _0805FD6C
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _0805FF34
|
|
adds r4, r4, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x15
|
|
bl GetMonData
|
|
mov r1, sl
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0x20
|
|
bl GetMonData
|
|
ldr r2, [sp, #0x80]
|
|
strb r0, [r2]
|
|
adds r0, r4, #0
|
|
movs r1, #0x19
|
|
bl GetMonData
|
|
str r0, [sp, #0x44]
|
|
adds r0, r4, #0
|
|
movs r1, #0x27
|
|
bl GetMonData
|
|
mov r3, sp
|
|
movs r5, #0x1f
|
|
ands r0, r5
|
|
ldrb r2, [r3, #0x14]
|
|
movs r1, #0x20
|
|
rsbs r1, r1, #0
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, #0x14]
|
|
adds r0, r4, #0
|
|
movs r1, #0x28
|
|
bl GetMonData
|
|
mov r3, sp
|
|
movs r6, #0x1f
|
|
ands r0, r6
|
|
lsls r0, r0, #5
|
|
ldrh r2, [r3, #0x14]
|
|
ldr r1, _0805FF38
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strh r1, [r3, #0x14]
|
|
adds r0, r4, #0
|
|
movs r1, #0x29
|
|
bl GetMonData
|
|
mov r3, sp
|
|
ands r0, r5
|
|
lsls r0, r0, #2
|
|
ldrb r2, [r3, #0x15]
|
|
movs r1, #0x7d
|
|
rsbs r1, r1, #0
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, #0x15]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2a
|
|
bl GetMonData
|
|
movs r1, #0x1f
|
|
ands r1, r0
|
|
lsls r1, r1, #0xf
|
|
ldr r0, [sp, #0x14]
|
|
ldr r2, _0805FF3C
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
str r0, [sp, #0x14]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2b
|
|
bl GetMonData
|
|
mov r3, sp
|
|
ands r0, r6
|
|
lsls r0, r0, #4
|
|
ldrh r2, [r3, #0x16]
|
|
ldr r1, _0805FF40
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strh r1, [r3, #0x16]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2c
|
|
bl GetMonData
|
|
mov r3, sp
|
|
ands r0, r5
|
|
lsls r0, r0, #1
|
|
ldrb r2, [r3, #0x17]
|
|
movs r1, #0x3f
|
|
rsbs r1, r1, #0
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, #0x17]
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl GetMonData
|
|
str r0, [sp, #0x48]
|
|
adds r0, r4, #0
|
|
movs r1, #0x37
|
|
bl GetMonData
|
|
str r0, [sp, #0x4c]
|
|
adds r0, r4, #0
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
ldr r1, [sp, #0x7c]
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, #0x28]
|
|
adds r0, r4, #0
|
|
movs r1, #0x3a
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, #0x2c]
|
|
adds r0, r4, #0
|
|
movs r1, #0x3b
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, #2]
|
|
adds r0, r4, #0
|
|
movs r1, #0x3c
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, #4]
|
|
adds r0, r4, #0
|
|
movs r1, #0x3d
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, #6]
|
|
adds r0, r4, #0
|
|
movs r1, #0x3e
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, #8]
|
|
adds r0, r4, #0
|
|
movs r1, #0x3f
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, #0xa]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2d
|
|
bl GetMonData
|
|
mov r3, sp
|
|
movs r1, #1
|
|
ands r0, r1
|
|
lsls r0, r0, #6
|
|
ldrb r2, [r3, #0x17]
|
|
movs r1, #0x41
|
|
rsbs r1, r1, #0
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, #0x17]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2e
|
|
bl GetMonData
|
|
mov r3, sp
|
|
lsls r0, r0, #7
|
|
ldrb r2, [r3, #0x17]
|
|
movs r1, #0x7f
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, #0x17]
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl GetMonData
|
|
str r0, [sp, #0x54]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
ldr r2, [sp, #0x8c]
|
|
bl GetMonData
|
|
ldr r0, [sp, #0x84]
|
|
ldr r1, [sp, #0x8c]
|
|
bl StringCopy10
|
|
adds r0, r4, #0
|
|
movs r1, #7
|
|
ldr r2, [sp, #0x88]
|
|
bl GetMonData
|
|
mov r2, sp
|
|
movs r6, #0
|
|
_0805FF24:
|
|
adds r0, r7, r6
|
|
adds r1, r2, r6
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r6, #1
|
|
cmp r6, #0x57
|
|
bls _0805FF24
|
|
b _08060386
|
|
.align 2, 0
|
|
_0805FF34: .4byte 0x020243E8
|
|
_0805FF38: .4byte 0xFFFFFC1F
|
|
_0805FF3C: .4byte 0xFFF07FFF
|
|
_0805FF40: .4byte 0xFFFFFE0F
|
|
_0805FF44:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805FF50
|
|
adds r0, r0, r1
|
|
movs r1, #0xb
|
|
b _080602BE
|
|
.align 2, 0
|
|
_0805FF50: .4byte 0x020243E8
|
|
_0805FF54:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805FF60
|
|
adds r0, r0, r1
|
|
movs r1, #0xc
|
|
b _080602BE
|
|
.align 2, 0
|
|
_0805FF60: .4byte 0x020243E8
|
|
_0805FF64:
|
|
movs r6, #0
|
|
add r2, sp, #0x58
|
|
mov sb, r2
|
|
add r0, sp, #0x60
|
|
mov sl, r0
|
|
movs r0, #0x64
|
|
adds r1, r5, #0
|
|
muls r1, r0, r1
|
|
ldr r0, _0805FFC8
|
|
adds r4, r1, r0
|
|
mov r8, sb
|
|
_0805FF7A:
|
|
adds r1, r6, #0
|
|
adds r1, #0xd
|
|
adds r0, r4, #0
|
|
bl GetMonData
|
|
mov r1, r8
|
|
strh r0, [r1]
|
|
adds r1, r6, #0
|
|
adds r1, #0x11
|
|
adds r0, r4, #0
|
|
bl GetMonData
|
|
mov r2, sl
|
|
adds r1, r2, r6
|
|
strb r0, [r1]
|
|
movs r0, #2
|
|
add r8, r0
|
|
adds r6, #1
|
|
cmp r6, #3
|
|
ble _0805FF7A
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805FFC8
|
|
adds r0, r0, r1
|
|
movs r1, #0x15
|
|
bl GetMonData
|
|
mov r1, sb
|
|
strb r0, [r1, #0xc]
|
|
mov r2, sb
|
|
movs r6, #0
|
|
_0805FFB8:
|
|
adds r0, r7, r6
|
|
adds r1, r2, r6
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r6, #1
|
|
cmp r6, #0xf
|
|
bls _0805FFB8
|
|
b _08060386
|
|
.align 2, 0
|
|
_0805FFC8: .4byte 0x020243E8
|
|
_0805FFCC:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805FFE4
|
|
adds r0, r0, r1
|
|
ldrb r1, [r3]
|
|
lsls r1, r1, #9
|
|
adds r2, #1
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1]
|
|
adds r1, #9
|
|
b _080602BE
|
|
.align 2, 0
|
|
_0805FFE4: .4byte 0x020243E8
|
|
_0805FFE8:
|
|
movs r6, #0
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r2, _08060020
|
|
mov r8, r2
|
|
_0805FFF4:
|
|
adds r1, r6, #0
|
|
adds r1, #0x11
|
|
mov r2, r8
|
|
adds r0, r4, r2
|
|
bl GetMonData
|
|
adds r1, r7, r6
|
|
strb r0, [r1]
|
|
adds r6, #1
|
|
cmp r6, #3
|
|
ble _0805FFF4
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060020
|
|
adds r0, r0, r1
|
|
movs r1, #0x15
|
|
bl GetMonData
|
|
adds r1, r7, r6
|
|
strb r0, [r1]
|
|
adds r6, #1
|
|
b _08060386
|
|
.align 2, 0
|
|
_08060020: .4byte 0x020243E8
|
|
_08060024:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0806003C
|
|
adds r0, r0, r1
|
|
ldrb r1, [r3]
|
|
lsls r1, r1, #9
|
|
adds r2, #1
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1]
|
|
adds r1, #8
|
|
b _0806037E
|
|
.align 2, 0
|
|
_0806003C: .4byte 0x020243E8
|
|
_08060040:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0806004C
|
|
adds r0, r0, r1
|
|
movs r1, #1
|
|
b _0806005A
|
|
.align 2, 0
|
|
_0806004C: .4byte 0x020243E8
|
|
_08060050:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0806007C
|
|
adds r0, r0, r1
|
|
movs r1, #0x19
|
|
_0806005A:
|
|
bl GetMonData
|
|
adds r1, r0, #0
|
|
strb r1, [r7]
|
|
movs r0, #0xff
|
|
lsls r0, r0, #8
|
|
ands r0, r1
|
|
lsrs r0, r0, #8
|
|
strb r0, [r7, #1]
|
|
movs r0, #0xff
|
|
lsls r0, r0, #0x10
|
|
ands r0, r1
|
|
lsrs r0, r0, #0x10
|
|
strb r0, [r7, #2]
|
|
movs r6, #3
|
|
b _08060386
|
|
.align 2, 0
|
|
_0806007C: .4byte 0x020243E8
|
|
_08060080:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0806008C
|
|
adds r0, r0, r1
|
|
movs r1, #0x1a
|
|
b _0806037E
|
|
.align 2, 0
|
|
_0806008C: .4byte 0x020243E8
|
|
_08060090:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0806009C
|
|
adds r0, r0, r1
|
|
movs r1, #0x1b
|
|
b _0806037E
|
|
.align 2, 0
|
|
_0806009C: .4byte 0x020243E8
|
|
_080600A0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080600AC
|
|
adds r0, r0, r1
|
|
movs r1, #0x1c
|
|
b _0806037E
|
|
.align 2, 0
|
|
_080600AC: .4byte 0x020243E8
|
|
_080600B0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080600BC
|
|
adds r0, r0, r1
|
|
movs r1, #0x1d
|
|
b _0806037E
|
|
.align 2, 0
|
|
_080600BC: .4byte 0x020243E8
|
|
_080600C0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080600CC
|
|
adds r0, r0, r1
|
|
movs r1, #0x1e
|
|
b _0806037E
|
|
.align 2, 0
|
|
_080600CC: .4byte 0x020243E8
|
|
_080600D0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080600DC
|
|
adds r0, r0, r1
|
|
movs r1, #0x1f
|
|
b _0806037E
|
|
.align 2, 0
|
|
_080600DC: .4byte 0x020243E8
|
|
_080600E0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080600EC
|
|
adds r0, r0, r1
|
|
movs r1, #0x20
|
|
b _0806037E
|
|
.align 2, 0
|
|
_080600EC: .4byte 0x020243E8
|
|
_080600F0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080600FC
|
|
adds r0, r0, r1
|
|
movs r1, #0x22
|
|
b _0806037E
|
|
.align 2, 0
|
|
_080600FC: .4byte 0x020243E8
|
|
_08060100:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0806010C
|
|
adds r0, r0, r1
|
|
movs r1, #0x23
|
|
b _0806037E
|
|
.align 2, 0
|
|
_0806010C: .4byte 0x020243E8
|
|
_08060110:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0806011C
|
|
adds r0, r0, r1
|
|
movs r1, #0x24
|
|
b _0806037E
|
|
.align 2, 0
|
|
_0806011C: .4byte 0x020243E8
|
|
_08060120:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0806012C
|
|
adds r0, r0, r1
|
|
movs r1, #0x25
|
|
b _0806037E
|
|
.align 2, 0
|
|
_0806012C: .4byte 0x020243E8
|
|
_08060130:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0806013C
|
|
adds r0, r0, r1
|
|
movs r1, #0x26
|
|
b _0806037E
|
|
.align 2, 0
|
|
_0806013C: .4byte 0x020243E8
|
|
_08060140:
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _0806018C
|
|
adds r4, r4, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x27
|
|
bl GetMonData
|
|
strb r0, [r7]
|
|
adds r0, r4, #0
|
|
movs r1, #0x28
|
|
bl GetMonData
|
|
strb r0, [r7, #1]
|
|
adds r0, r4, #0
|
|
movs r1, #0x29
|
|
bl GetMonData
|
|
strb r0, [r7, #2]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2a
|
|
bl GetMonData
|
|
strb r0, [r7, #3]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2b
|
|
bl GetMonData
|
|
strb r0, [r7, #4]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2c
|
|
bl GetMonData
|
|
strb r0, [r7, #5]
|
|
movs r6, #6
|
|
b _08060386
|
|
.align 2, 0
|
|
_0806018C: .4byte 0x020243E8
|
|
_08060190:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0806019C
|
|
adds r0, r0, r1
|
|
movs r1, #0x27
|
|
b _0806037E
|
|
.align 2, 0
|
|
_0806019C: .4byte 0x020243E8
|
|
_080601A0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080601AC
|
|
adds r0, r0, r1
|
|
movs r1, #0x28
|
|
b _0806037E
|
|
.align 2, 0
|
|
_080601AC: .4byte 0x020243E8
|
|
_080601B0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080601BC
|
|
adds r0, r0, r1
|
|
movs r1, #0x29
|
|
b _0806037E
|
|
.align 2, 0
|
|
_080601BC: .4byte 0x020243E8
|
|
_080601C0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080601CC
|
|
adds r0, r0, r1
|
|
movs r1, #0x2a
|
|
b _0806037E
|
|
.align 2, 0
|
|
_080601CC: .4byte 0x020243E8
|
|
_080601D0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080601DC
|
|
adds r0, r0, r1
|
|
movs r1, #0x2b
|
|
b _0806037E
|
|
.align 2, 0
|
|
_080601DC: .4byte 0x020243E8
|
|
_080601E0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080601EC
|
|
adds r0, r0, r1
|
|
movs r1, #0x2c
|
|
b _0806037E
|
|
.align 2, 0
|
|
_080601EC: .4byte 0x020243E8
|
|
_080601F0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080601FC
|
|
adds r0, r0, r1
|
|
movs r1, #0
|
|
b _0806021A
|
|
.align 2, 0
|
|
_080601FC: .4byte 0x020243E8
|
|
_08060200:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0806020C
|
|
adds r0, r0, r1
|
|
movs r1, #9
|
|
b _080602BE
|
|
.align 2, 0
|
|
_0806020C: .4byte 0x020243E8
|
|
_08060210:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060240
|
|
adds r0, r0, r1
|
|
movs r1, #0x37
|
|
_0806021A:
|
|
bl GetMonData
|
|
adds r1, r0, #0
|
|
strb r1, [r7]
|
|
movs r0, #0xff
|
|
lsls r0, r0, #8
|
|
ands r0, r1
|
|
lsrs r0, r0, #8
|
|
strb r0, [r7, #1]
|
|
movs r0, #0xff
|
|
lsls r0, r0, #0x10
|
|
ands r0, r1
|
|
lsrs r0, r0, #0x10
|
|
strb r0, [r7, #2]
|
|
lsrs r0, r1, #0x18
|
|
strb r0, [r7, #3]
|
|
movs r6, #4
|
|
b _08060386
|
|
.align 2, 0
|
|
_08060240: .4byte 0x020243E8
|
|
_08060244:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060250
|
|
adds r0, r0, r1
|
|
movs r1, #0x38
|
|
b _0806037E
|
|
.align 2, 0
|
|
_08060250: .4byte 0x020243E8
|
|
_08060254:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060260
|
|
adds r0, r0, r1
|
|
movs r1, #0x39
|
|
b _080602BE
|
|
.align 2, 0
|
|
_08060260: .4byte 0x020243E8
|
|
_08060264:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060270
|
|
adds r0, r0, r1
|
|
movs r1, #0x3a
|
|
b _080602BE
|
|
.align 2, 0
|
|
_08060270: .4byte 0x020243E8
|
|
_08060274:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060280
|
|
adds r0, r0, r1
|
|
movs r1, #0x3b
|
|
b _080602BE
|
|
.align 2, 0
|
|
_08060280: .4byte 0x020243E8
|
|
_08060284:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060290
|
|
adds r0, r0, r1
|
|
movs r1, #0x3c
|
|
b _080602BE
|
|
.align 2, 0
|
|
_08060290: .4byte 0x020243E8
|
|
_08060294:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080602A0
|
|
adds r0, r0, r1
|
|
movs r1, #0x3d
|
|
b _080602BE
|
|
.align 2, 0
|
|
_080602A0: .4byte 0x020243E8
|
|
_080602A4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080602B0
|
|
adds r0, r0, r1
|
|
movs r1, #0x3e
|
|
b _080602BE
|
|
.align 2, 0
|
|
_080602B0: .4byte 0x020243E8
|
|
_080602B4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080602D0
|
|
adds r0, r0, r1
|
|
movs r1, #0x3f
|
|
_080602BE:
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
strb r0, [r7]
|
|
lsrs r0, r0, #8
|
|
strb r0, [r7, #1]
|
|
movs r6, #2
|
|
b _08060386
|
|
.align 2, 0
|
|
_080602D0: .4byte 0x020243E8
|
|
_080602D4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080602E0
|
|
adds r0, r0, r1
|
|
movs r1, #0x16
|
|
b _0806037E
|
|
.align 2, 0
|
|
_080602E0: .4byte 0x020243E8
|
|
_080602E4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080602F0
|
|
adds r0, r0, r1
|
|
movs r1, #0x17
|
|
b _0806037E
|
|
.align 2, 0
|
|
_080602F0: .4byte 0x020243E8
|
|
_080602F4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060300
|
|
adds r0, r0, r1
|
|
movs r1, #0x18
|
|
b _0806037E
|
|
.align 2, 0
|
|
_08060300: .4byte 0x020243E8
|
|
_08060304:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060310
|
|
adds r0, r0, r1
|
|
movs r1, #0x21
|
|
b _0806037E
|
|
.align 2, 0
|
|
_08060310: .4byte 0x020243E8
|
|
_08060314:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060320
|
|
adds r0, r0, r1
|
|
movs r1, #0x2f
|
|
b _0806037E
|
|
.align 2, 0
|
|
_08060320: .4byte 0x020243E8
|
|
_08060324:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060330
|
|
adds r0, r0, r1
|
|
movs r1, #0x30
|
|
b _0806037E
|
|
.align 2, 0
|
|
_08060330: .4byte 0x020243E8
|
|
_08060334:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060340
|
|
adds r0, r0, r1
|
|
movs r1, #0x32
|
|
b _0806037E
|
|
.align 2, 0
|
|
_08060340: .4byte 0x020243E8
|
|
_08060344:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060350
|
|
adds r0, r0, r1
|
|
movs r1, #0x33
|
|
b _0806037E
|
|
.align 2, 0
|
|
_08060350: .4byte 0x020243E8
|
|
_08060354:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060360
|
|
adds r0, r0, r1
|
|
movs r1, #0x34
|
|
b _0806037E
|
|
.align 2, 0
|
|
_08060360: .4byte 0x020243E8
|
|
_08060364:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060370
|
|
adds r0, r0, r1
|
|
movs r1, #0x35
|
|
b _0806037E
|
|
.align 2, 0
|
|
_08060370: .4byte 0x020243E8
|
|
_08060374:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060398
|
|
adds r0, r0, r1
|
|
movs r1, #0x36
|
|
_0806037E:
|
|
bl GetMonData
|
|
strb r0, [r7]
|
|
movs r6, #1
|
|
_08060386:
|
|
adds r0, r6, #0
|
|
add sp, #0x90
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060398: .4byte 0x020243E8
|
|
thumb_func_end GetOpponentMonData
|
|
|
|
thumb_func_start OpponentHandleGetRawMonData
|
|
OpponentHandleGetRawMonData: @ 0x0806039C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x58
|
|
ldr r2, _08060414
|
|
ldr r5, _08060418
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, #0x64
|
|
adds r4, r2, #0
|
|
muls r4, r0, r4
|
|
ldr r3, _0806041C
|
|
lsls r1, r1, #9
|
|
adds r0, r3, #1
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
ldr r0, _08060420
|
|
adds r0, r2, r0
|
|
adds r6, r4, r0
|
|
mov r0, sp
|
|
adds r4, r0, r2
|
|
movs r2, #0
|
|
adds r0, r3, #2
|
|
adds r1, r1, r0
|
|
adds r7, r5, #0
|
|
mov ip, r3
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bhs _080603F2
|
|
adds r3, r0, #0
|
|
_080603D8:
|
|
adds r1, r4, r2
|
|
adds r0, r6, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r2, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #9
|
|
adds r0, r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
blo _080603D8
|
|
_080603F2:
|
|
ldrb r0, [r7]
|
|
lsls r0, r0, #9
|
|
mov r1, ip
|
|
adds r1, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #1
|
|
adds r2, r4, #0
|
|
bl BtlController_EmitDataTransfer
|
|
bl OpponentBufferExecCompleted
|
|
add sp, #0x58
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08060414: .4byte 0x02023D12
|
|
_08060418: .4byte 0x02023D08
|
|
_0806041C: .4byte 0x02022D08
|
|
_08060420: .4byte 0x020243E8
|
|
thumb_func_end OpponentHandleGetRawMonData
|
|
|
|
thumb_func_start OpponentHandleSetMonData
|
|
OpponentHandleSetMonData: @ 0x08060424
|
|
push {r4, r5, lr}
|
|
ldr r1, _08060448
|
|
ldr r0, _0806044C
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, #9
|
|
adds r1, #2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, #0
|
|
bne _08060454
|
|
ldr r0, _08060450
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
bl SetOpponentMonData
|
|
b _08060472
|
|
.align 2, 0
|
|
_08060448: .4byte 0x02022D08
|
|
_0806044C: .4byte 0x02023D08
|
|
_08060450: .4byte 0x02023D12
|
|
_08060454:
|
|
ldrb r4, [r1]
|
|
movs r5, #0
|
|
_08060458:
|
|
movs r0, #1
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
beq _08060466
|
|
adds r0, r5, #0
|
|
bl SetOpponentMonData
|
|
_08060466:
|
|
lsrs r4, r4, #1
|
|
adds r0, r5, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
cmp r5, #5
|
|
bls _08060458
|
|
_08060472:
|
|
bl OpponentBufferExecCompleted
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end OpponentHandleSetMonData
|
|
|
|
thumb_func_start SetOpponentMonData
|
|
SetOpponentMonData: @ 0x0806047C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x38
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
ldr r3, _080604B4
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #9
|
|
ldr r2, _080604B8
|
|
adds r4, r0, r2
|
|
adds r7, r4, #0
|
|
subs r1, r2, #2
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
adds r6, r3, #0
|
|
adds r3, r2, #0
|
|
cmp r0, #0x3b
|
|
bls _080604AA
|
|
bl _08060D88
|
|
_080604AA:
|
|
lsls r0, r0, #2
|
|
ldr r1, _080604BC
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080604B4: .4byte 0x02023D08
|
|
_080604B8: .4byte 0x02022D0B
|
|
_080604BC: .4byte 0x080604C0
|
|
_080604C0: @ jump table
|
|
.4byte _080605B0 @ case 0
|
|
.4byte _08060748 @ case 1
|
|
.4byte _08060764 @ case 2
|
|
.4byte _08060780 @ case 3
|
|
.4byte _080607D4 @ case 4
|
|
.4byte _080607D4 @ case 5
|
|
.4byte _080607D4 @ case 6
|
|
.4byte _080607D4 @ case 7
|
|
.4byte _080607F4 @ case 8
|
|
.4byte _0806085C @ case 9
|
|
.4byte _0806085C @ case 10
|
|
.4byte _0806085C @ case 11
|
|
.4byte _0806085C @ case 12
|
|
.4byte _08060D88 @ case 13
|
|
.4byte _08060D88 @ case 14
|
|
.4byte _08060D88 @ case 15
|
|
.4byte _08060D88 @ case 16
|
|
.4byte _08060884 @ case 17
|
|
.4byte _080608A0 @ case 18
|
|
.4byte _080608BC @ case 19
|
|
.4byte _080608D8 @ case 20
|
|
.4byte _080608F4 @ case 21
|
|
.4byte _08060910 @ case 22
|
|
.4byte _0806092C @ case 23
|
|
.4byte _08060948 @ case 24
|
|
.4byte _08060964 @ case 25
|
|
.4byte _08060980 @ case 26
|
|
.4byte _0806099C @ case 27
|
|
.4byte _080609B8 @ case 28
|
|
.4byte _080609D4 @ case 29
|
|
.4byte _080609F0 @ case 30
|
|
.4byte _08060A0C @ case 31
|
|
.4byte _08060A80 @ case 32
|
|
.4byte _08060A9C @ case 33
|
|
.4byte _08060AB8 @ case 34
|
|
.4byte _08060AD4 @ case 35
|
|
.4byte _08060AF0 @ case 36
|
|
.4byte _08060B0C @ case 37
|
|
.4byte _08060B28 @ case 38
|
|
.4byte _08060B44 @ case 39
|
|
.4byte _08060B60 @ case 40
|
|
.4byte _08060B7C @ case 41
|
|
.4byte _08060B98 @ case 42
|
|
.4byte _08060BB4 @ case 43
|
|
.4byte _08060BD0 @ case 44
|
|
.4byte _08060BEC @ case 45
|
|
.4byte _08060C08 @ case 46
|
|
.4byte _08060C24 @ case 47
|
|
.4byte _08060C40 @ case 48
|
|
.4byte _08060C5C @ case 49
|
|
.4byte _08060C78 @ case 50
|
|
.4byte _08060C94 @ case 51
|
|
.4byte _08060CB0 @ case 52
|
|
.4byte _08060CCC @ case 53
|
|
.4byte _08060CE8 @ case 54
|
|
.4byte _08060D04 @ case 55
|
|
.4byte _08060D20 @ case 56
|
|
.4byte _08060D3C @ case 57
|
|
.4byte _08060D58 @ case 58
|
|
.4byte _08060D74 @ case 59
|
|
_080605B0:
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _08060744
|
|
adds r4, r4, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0xb
|
|
adds r2, r7, #0
|
|
bl SetMonData
|
|
adds r2, r7, #0
|
|
adds r2, #0x2e
|
|
adds r0, r4, #0
|
|
movs r1, #0xc
|
|
bl SetMonData
|
|
movs r0, #0
|
|
mov r8, r0
|
|
movs r0, #0x3b
|
|
adds r0, r0, r7
|
|
mov sl, r0
|
|
adds r0, r7, #0
|
|
adds r0, #0x2b
|
|
str r0, [sp, #0x20]
|
|
adds r0, #0x19
|
|
str r0, [sp, #0x28]
|
|
adds r0, #4
|
|
str r0, [sp, #0x2c]
|
|
adds r0, #4
|
|
str r0, [sp, #0x30]
|
|
subs r0, #0x22
|
|
str r0, [sp, #0x1c]
|
|
subs r0, #2
|
|
str r0, [sp, #0x18]
|
|
adds r0, #4
|
|
str r0, [sp, #0x24]
|
|
adds r0, r7, #2
|
|
str r0, [sp, #4]
|
|
adds r0, r7, #4
|
|
str r0, [sp, #8]
|
|
adds r0, r7, #6
|
|
str r0, [sp, #0xc]
|
|
adds r0, #2
|
|
str r0, [sp, #0x10]
|
|
adds r0, #2
|
|
str r0, [sp, #0x14]
|
|
mov sb, r4
|
|
adds r6, r7, #0
|
|
adds r6, #0x24
|
|
adds r4, r7, #0
|
|
adds r4, #0xc
|
|
_08060616:
|
|
mov r1, r8
|
|
adds r1, #0xd
|
|
mov r0, sb
|
|
adds r2, r4, #0
|
|
bl SetMonData
|
|
mov r1, r8
|
|
adds r1, #0x11
|
|
mov r0, sb
|
|
adds r2, r6, #0
|
|
bl SetMonData
|
|
adds r6, #1
|
|
adds r4, #2
|
|
movs r0, #1
|
|
add r8, r0
|
|
mov r0, r8
|
|
cmp r0, #3
|
|
ble _08060616
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _08060744
|
|
adds r4, r4, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x15
|
|
mov r2, sl
|
|
bl SetMonData
|
|
adds r0, r4, #0
|
|
movs r1, #0x20
|
|
ldr r2, [sp, #0x20]
|
|
bl SetMonData
|
|
adds r0, r4, #0
|
|
movs r1, #0x19
|
|
ldr r2, [sp, #0x28]
|
|
bl SetMonData
|
|
ldrb r0, [r7, #0x14]
|
|
lsls r0, r0, #0x1b
|
|
lsrs r0, r0, #0x1b
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0x27
|
|
mov r2, sp
|
|
bl SetMonData
|
|
mov r1, sp
|
|
ldrh r0, [r7, #0x14]
|
|
lsls r0, r0, #0x16
|
|
lsrs r0, r0, #0x1b
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0x28
|
|
mov r2, sp
|
|
bl SetMonData
|
|
mov r1, sp
|
|
ldrb r0, [r7, #0x15]
|
|
lsls r0, r0, #0x19
|
|
lsrs r0, r0, #0x1b
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0x29
|
|
mov r2, sp
|
|
bl SetMonData
|
|
mov r1, sp
|
|
ldr r0, [r7, #0x14]
|
|
lsls r0, r0, #0xc
|
|
lsrs r0, r0, #0x1b
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2a
|
|
mov r2, sp
|
|
bl SetMonData
|
|
mov r1, sp
|
|
ldrh r0, [r7, #0x16]
|
|
lsls r0, r0, #0x17
|
|
lsrs r0, r0, #0x1b
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2b
|
|
mov r2, sp
|
|
bl SetMonData
|
|
mov r1, sp
|
|
ldrb r0, [r7, #0x17]
|
|
lsls r0, r0, #0x1a
|
|
lsrs r0, r0, #0x1b
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2c
|
|
mov r2, sp
|
|
bl SetMonData
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
ldr r2, [sp, #0x2c]
|
|
bl SetMonData
|
|
adds r0, r4, #0
|
|
movs r1, #0x37
|
|
ldr r2, [sp, #0x30]
|
|
bl SetMonData
|
|
adds r0, r4, #0
|
|
movs r1, #0x38
|
|
ldr r2, [sp, #0x1c]
|
|
bl SetMonData
|
|
adds r0, r4, #0
|
|
movs r1, #0x39
|
|
ldr r2, [sp, #0x18]
|
|
bl SetMonData
|
|
adds r0, r4, #0
|
|
movs r1, #0x3a
|
|
ldr r2, [sp, #0x24]
|
|
bl SetMonData
|
|
adds r0, r4, #0
|
|
movs r1, #0x3b
|
|
ldr r2, [sp, #4]
|
|
bl SetMonData
|
|
adds r0, r4, #0
|
|
movs r1, #0x3c
|
|
ldr r2, [sp, #8]
|
|
bl SetMonData
|
|
adds r0, r4, #0
|
|
movs r1, #0x3d
|
|
ldr r2, [sp, #0xc]
|
|
bl SetMonData
|
|
adds r0, r4, #0
|
|
movs r1, #0x3e
|
|
ldr r2, [sp, #0x10]
|
|
bl SetMonData
|
|
adds r0, r4, #0
|
|
movs r1, #0x3f
|
|
ldr r2, [sp, #0x14]
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060744: .4byte 0x020243E8
|
|
_08060748:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060760
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0xb
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060760: .4byte 0x020243E8
|
|
_08060764:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0806077C
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0xc
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_0806077C: .4byte 0x020243E8
|
|
_08060780:
|
|
movs r0, #0
|
|
mov r8, r0
|
|
movs r0, #0xc
|
|
adds r0, r0, r4
|
|
mov sb, r0
|
|
movs r0, #0x64
|
|
adds r1, r5, #0
|
|
muls r1, r0, r1
|
|
ldr r0, _080607D0
|
|
adds r7, r1, r0
|
|
adds r6, r4, #0
|
|
adds r6, #8
|
|
_08060798:
|
|
mov r1, r8
|
|
adds r1, #0xd
|
|
adds r0, r7, #0
|
|
adds r2, r4, #0
|
|
bl SetMonData
|
|
mov r1, r8
|
|
adds r1, #0x11
|
|
adds r0, r7, #0
|
|
adds r2, r6, #0
|
|
bl SetMonData
|
|
adds r6, #1
|
|
adds r4, #2
|
|
movs r0, #1
|
|
add r8, r0
|
|
mov r0, r8
|
|
cmp r0, #3
|
|
ble _08060798
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080607D0
|
|
adds r0, r0, r1
|
|
movs r1, #0x15
|
|
mov r2, sb
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_080607D0: .4byte 0x020243E8
|
|
_080607D4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080607EC
|
|
adds r0, r0, r1
|
|
ldr r3, _080607F0
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r1, r3, #1
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
adds r1, #9
|
|
b _08060872
|
|
.align 2, 0
|
|
_080607EC: .4byte 0x020243E8
|
|
_080607F0: .4byte 0x02022D08
|
|
_080607F4:
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _08060858
|
|
adds r4, r4, r0
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
adds r0, r4, #0
|
|
movs r1, #0x11
|
|
str r3, [sp, #0x34]
|
|
bl SetMonData
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
ldr r3, [sp, #0x34]
|
|
adds r0, r3, #1
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x12
|
|
bl SetMonData
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
ldr r3, [sp, #0x34]
|
|
adds r0, r3, #2
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x13
|
|
bl SetMonData
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
ldr r3, [sp, #0x34]
|
|
adds r0, r3, #3
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x14
|
|
bl SetMonData
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
ldr r3, [sp, #0x34]
|
|
adds r0, r3, #4
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x15
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060858: .4byte 0x020243E8
|
|
_0806085C:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0806087C
|
|
adds r0, r0, r1
|
|
ldr r3, _08060880
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r1, r3, #1
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
adds r1, #8
|
|
_08060872:
|
|
adds r3, #3
|
|
adds r2, r2, r3
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_0806087C: .4byte 0x020243E8
|
|
_08060880: .4byte 0x02022D08
|
|
_08060884:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0806089C
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #1
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_0806089C: .4byte 0x020243E8
|
|
_080608A0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080608B8
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x19
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_080608B8: .4byte 0x020243E8
|
|
_080608BC:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080608D4
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x1a
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_080608D4: .4byte 0x020243E8
|
|
_080608D8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080608F0
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x1b
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_080608F0: .4byte 0x020243E8
|
|
_080608F4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0806090C
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x1c
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_0806090C: .4byte 0x020243E8
|
|
_08060910:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060928
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x1d
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060928: .4byte 0x020243E8
|
|
_0806092C:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060944
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x1e
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060944: .4byte 0x020243E8
|
|
_08060948:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060960
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x1f
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060960: .4byte 0x020243E8
|
|
_08060964:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0806097C
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x20
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_0806097C: .4byte 0x020243E8
|
|
_08060980:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060998
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x22
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060998: .4byte 0x020243E8
|
|
_0806099C:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080609B4
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x23
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_080609B4: .4byte 0x020243E8
|
|
_080609B8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080609D0
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x24
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_080609D0: .4byte 0x020243E8
|
|
_080609D4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _080609EC
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x25
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_080609EC: .4byte 0x020243E8
|
|
_080609F0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060A08
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x26
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060A08: .4byte 0x020243E8
|
|
_08060A0C:
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _08060A7C
|
|
adds r4, r4, r0
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
adds r0, r4, #0
|
|
movs r1, #0x27
|
|
str r3, [sp, #0x34]
|
|
bl SetMonData
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
ldr r3, [sp, #0x34]
|
|
adds r0, r3, #1
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x28
|
|
bl SetMonData
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
ldr r3, [sp, #0x34]
|
|
adds r0, r3, #2
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x29
|
|
bl SetMonData
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
ldr r3, [sp, #0x34]
|
|
adds r0, r3, #3
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x2a
|
|
bl SetMonData
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
ldr r3, [sp, #0x34]
|
|
adds r0, r3, #4
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x2b
|
|
bl SetMonData
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
ldr r3, [sp, #0x34]
|
|
adds r0, r3, #5
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
b _08060B1A
|
|
.align 2, 0
|
|
_08060A7C: .4byte 0x020243E8
|
|
_08060A80:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060A98
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x27
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060A98: .4byte 0x020243E8
|
|
_08060A9C:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060AB4
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x28
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060AB4: .4byte 0x020243E8
|
|
_08060AB8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060AD0
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x29
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060AD0: .4byte 0x020243E8
|
|
_08060AD4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060AEC
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x2a
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060AEC: .4byte 0x020243E8
|
|
_08060AF0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060B08
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x2b
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060B08: .4byte 0x020243E8
|
|
_08060B0C:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060B24
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
_08060B1A:
|
|
movs r1, #0x2c
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060B24: .4byte 0x020243E8
|
|
_08060B28:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060B40
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060B40: .4byte 0x020243E8
|
|
_08060B44:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060B5C
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #9
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060B5C: .4byte 0x020243E8
|
|
_08060B60:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060B78
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x37
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060B78: .4byte 0x020243E8
|
|
_08060B7C:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060B94
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x38
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060B94: .4byte 0x020243E8
|
|
_08060B98:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060BB0
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x39
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060BB0: .4byte 0x020243E8
|
|
_08060BB4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060BCC
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x3a
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060BCC: .4byte 0x020243E8
|
|
_08060BD0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060BE8
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x3b
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060BE8: .4byte 0x020243E8
|
|
_08060BEC:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060C04
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x3c
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060C04: .4byte 0x020243E8
|
|
_08060C08:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060C20
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x3d
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060C20: .4byte 0x020243E8
|
|
_08060C24:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060C3C
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x3e
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060C3C: .4byte 0x020243E8
|
|
_08060C40:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060C58
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x3f
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060C58: .4byte 0x020243E8
|
|
_08060C5C:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060C74
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x16
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060C74: .4byte 0x020243E8
|
|
_08060C78:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060C90
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x17
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060C90: .4byte 0x020243E8
|
|
_08060C94:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060CAC
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x18
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060CAC: .4byte 0x020243E8
|
|
_08060CB0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060CC8
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x21
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060CC8: .4byte 0x020243E8
|
|
_08060CCC:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060CE4
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x2f
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060CE4: .4byte 0x020243E8
|
|
_08060CE8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060D00
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x30
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060D00: .4byte 0x020243E8
|
|
_08060D04:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060D1C
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x32
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060D1C: .4byte 0x020243E8
|
|
_08060D20:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060D38
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x33
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060D38: .4byte 0x020243E8
|
|
_08060D3C:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060D54
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x34
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060D54: .4byte 0x020243E8
|
|
_08060D58:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060D70
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x35
|
|
bl SetMonData
|
|
b _08060D88
|
|
.align 2, 0
|
|
_08060D70: .4byte 0x020243E8
|
|
_08060D74:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08060D98
|
|
adds r0, r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r3
|
|
movs r1, #0x36
|
|
bl SetMonData
|
|
_08060D88:
|
|
add sp, #0x38
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08060D98: .4byte 0x020243E8
|
|
thumb_func_end SetOpponentMonData
|
|
|
|
thumb_func_start OpponentHandleSetRawMonData
|
|
OpponentHandleSetRawMonData: @ 0x08060D9C
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r1, _08060E00
|
|
ldr r7, _08060E04
|
|
ldrb r2, [r7]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
adds r3, r1, #0
|
|
muls r3, r0, r3
|
|
ldr r4, _08060E08
|
|
lsls r2, r2, #9
|
|
adds r0, r4, #1
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
ldr r1, _08060E0C
|
|
adds r0, r0, r1
|
|
adds r5, r3, r0
|
|
movs r3, #0
|
|
adds r0, r4, #2
|
|
adds r2, r2, r0
|
|
ldrb r2, [r2]
|
|
cmp r3, r2
|
|
bhs _08060DF4
|
|
adds r6, r4, #0
|
|
adds r2, r7, #0
|
|
adds r4, r0, #0
|
|
_08060DD2:
|
|
adds r1, r5, r3
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #9
|
|
adds r0, #3
|
|
adds r0, r3, r0
|
|
adds r0, r0, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r3, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r3, r0, #0x18
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #9
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
blo _08060DD2
|
|
_08060DF4:
|
|
bl OpponentBufferExecCompleted
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08060E00: .4byte 0x02023D12
|
|
_08060E04: .4byte 0x02023D08
|
|
_08060E08: .4byte 0x02022D08
|
|
_08060E0C: .4byte 0x020243E8
|
|
thumb_func_end OpponentHandleSetRawMonData
|
|
|
|
thumb_func_start OpponentHandleLoadMonSprite
|
|
OpponentHandleLoadMonSprite: @ 0x08060E10
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
ldr r6, _08060F40
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #1
|
|
ldr r1, _08060F44
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
movs r7, #0x64
|
|
muls r0, r7, r0
|
|
ldr r2, _08060F48
|
|
mov sl, r2
|
|
add r0, sl
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
mov r8, r0
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
mov r8, r0
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, #1
|
|
ldr r2, _08060F44
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
muls r0, r7, r0
|
|
add r0, sl
|
|
bl BattleLoadOpponentMonSpriteGfx
|
|
ldrb r0, [r6]
|
|
bl GetBattlerPosition
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
mov r0, r8
|
|
bl SetMultiuseSpriteTemplateToPokemon
|
|
ldr r0, _08060F4C
|
|
mov sb, r0
|
|
ldrb r0, [r6]
|
|
movs r1, #2
|
|
bl GetBattlerSpriteCoord
|
|
adds r5, r0, #0
|
|
lsls r5, r5, #0x18
|
|
lsrs r5, r5, #0x18
|
|
ldrb r0, [r6]
|
|
bl GetBattlerSpriteDefault_Y
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
ldrb r0, [r6]
|
|
bl GetBattlerSpriteSubpriority
|
|
adds r3, r0, #0
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
mov r0, sb
|
|
adds r1, r5, #0
|
|
adds r2, r4, #0
|
|
bl CreateSprite
|
|
ldr r4, _08060F50
|
|
ldrb r1, [r6]
|
|
adds r1, r1, r4
|
|
strb r0, [r1]
|
|
ldr r5, _08060F54
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldr r1, _08060F58
|
|
strh r1, [r0, #0x24]
|
|
ldrb r2, [r6]
|
|
adds r0, r2, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
strh r2, [r0, #0x2e]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
mov r1, r8
|
|
strh r1, [r0, #0x32]
|
|
ldrb r3, [r6]
|
|
adds r0, r3, r4
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, #4
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
lsls r3, r3, #4
|
|
ldrb r2, [r1, #5]
|
|
movs r0, #0xf
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
strb r0, [r1, #5]
|
|
ldrb r2, [r6]
|
|
adds r4, r2, r4
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldr r1, _08060F5C
|
|
adds r2, r2, r1
|
|
ldrb r1, [r2]
|
|
bl StartSpriteAnim
|
|
ldrb r4, [r6]
|
|
lsls r0, r4, #1
|
|
ldr r2, _08060F44
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
muls r0, r7, r0
|
|
add r0, sl
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
adds r0, r4, #0
|
|
bl SetBattlerShadowSpriteCallback
|
|
ldr r1, _08060F60
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08060F64
|
|
str r1, [r0]
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08060F40: .4byte 0x02023D08
|
|
_08060F44: .4byte 0x02023D12
|
|
_08060F48: .4byte 0x020243E8
|
|
_08060F4C: .4byte 0x02024640
|
|
_08060F50: .4byte 0x02023E88
|
|
_08060F54: .4byte 0x020205AC
|
|
_08060F58: .4byte 0x0000FF10
|
|
_08060F5C: .4byte 0x02024188
|
|
_08060F60: .4byte 0x03005AC0
|
|
_08060F64: .4byte 0x0805F581
|
|
thumb_func_end OpponentHandleLoadMonSprite
|
|
|
|
thumb_func_start OpponentHandleSwitchInAnim
|
|
OpponentHandleSwitchInAnim: @ 0x08060F68
|
|
push {r4, lr}
|
|
ldr r4, _08060FB0
|
|
ldrb r0, [r4]
|
|
ldr r1, _08060FB4
|
|
ldr r1, [r1]
|
|
adds r0, r0, r1
|
|
adds r0, #0x5c
|
|
movs r1, #6
|
|
strb r1, [r0]
|
|
ldr r1, _08060FB8
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, #1
|
|
adds r2, r2, r1
|
|
ldr r3, _08060FBC
|
|
lsls r0, r0, #9
|
|
adds r1, r3, #1
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
strh r0, [r2]
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, #9
|
|
adds r3, #2
|
|
adds r1, r1, r3
|
|
ldrb r1, [r1]
|
|
bl sub_08060FC8
|
|
ldr r1, _08060FC0
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08060FC4
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08060FB0: .4byte 0x02023D08
|
|
_08060FB4: .4byte 0x02024140
|
|
_08060FB8: .4byte 0x02023D12
|
|
_08060FBC: .4byte 0x02022D08
|
|
_08060FC0: .4byte 0x03005AC0
|
|
_08060FC4: .4byte 0x0805F9DD
|
|
thumb_func_end OpponentHandleSwitchInAnim
|
|
|
|
thumb_func_start sub_08060FC8
|
|
sub_08060FC8: @ 0x08060FC8
|
|
push {r4, r5, r6, lr}
|
|
mov r6, sl
|
|
mov r5, sb
|
|
mov r4, r8
|
|
push {r4, r5, r6}
|
|
adds r6, r0, #0
|
|
lsls r6, r6, #0x18
|
|
lsrs r6, r6, #0x18
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
adds r0, r6, #0
|
|
bl ClearTemporarySpeciesSpriteData
|
|
ldr r0, _08061130
|
|
lsls r4, r6, #1
|
|
adds r4, r4, r0
|
|
ldr r0, _08061134
|
|
lsls r1, r6, #9
|
|
adds r0, #1
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
strh r0, [r4]
|
|
ldrh r0, [r4]
|
|
movs r1, #0x64
|
|
mov sb, r1
|
|
mov r1, sb
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
ldr r5, _08061138
|
|
adds r0, r0, r5
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
mov r8, r0
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
mov r8, r0
|
|
ldr r0, _0806113C
|
|
bl CreateInvisibleSpriteWithCallback
|
|
ldr r1, _08061140
|
|
mov sl, r1
|
|
add sl, r6
|
|
mov r1, sl
|
|
strb r0, [r1]
|
|
ldrh r0, [r4]
|
|
mov r1, sb
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
adds r0, r0, r5
|
|
adds r1, r6, #0
|
|
bl BattleLoadOpponentMonSpriteGfx
|
|
adds r0, r6, #0
|
|
bl GetBattlerPosition
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
mov r0, r8
|
|
bl SetMultiuseSpriteTemplateToPokemon
|
|
ldr r0, _08061144
|
|
mov sb, r0
|
|
adds r0, r6, #0
|
|
movs r1, #2
|
|
bl GetBattlerSpriteCoord
|
|
adds r5, r0, #0
|
|
lsls r5, r5, #0x18
|
|
lsrs r5, r5, #0x18
|
|
adds r0, r6, #0
|
|
bl GetBattlerSpriteDefault_Y
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
adds r0, r6, #0
|
|
bl GetBattlerSpriteSubpriority
|
|
adds r3, r0, #0
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
mov r0, sb
|
|
adds r1, r5, #0
|
|
adds r2, r4, #0
|
|
bl CreateSprite
|
|
ldr r4, _08061148
|
|
adds r4, r6, r4
|
|
strb r0, [r4]
|
|
ldr r5, _0806114C
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
strh r6, [r0, #0x2e]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
mov r1, r8
|
|
strh r1, [r0, #0x32]
|
|
mov r0, sl
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldrb r1, [r4]
|
|
strh r1, [r0, #0x30]
|
|
mov r0, sl
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
strh r6, [r0, #0x32]
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, #4
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
lsls r3, r6, #4
|
|
ldrb r2, [r1, #5]
|
|
movs r0, #0xf
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
strb r0, [r1, #5]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldr r1, _08061150
|
|
adds r6, r6, r1
|
|
ldrb r1, [r6]
|
|
bl StartSpriteAnim
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
adds r0, #0x3e
|
|
ldrb r1, [r0]
|
|
movs r2, #4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r5, #0
|
|
adds r1, #0x1c
|
|
adds r0, r0, r1
|
|
ldr r1, _08061154
|
|
str r1, [r0]
|
|
movs r0, #0
|
|
movs r1, #0xfe
|
|
bl DoPokeballSendOutAnimation
|
|
mov r1, sl
|
|
ldrb r2, [r1]
|
|
lsls r1, r2, #4
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
strh r0, [r1, #0x2e]
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061130: .4byte 0x02023D12
|
|
_08061134: .4byte 0x02022D08
|
|
_08061138: .4byte 0x020243E8
|
|
_0806113C: .4byte 0x0805D331
|
|
_08061140: .4byte 0x03005ADC
|
|
_08061144: .4byte 0x02024640
|
|
_08061148: .4byte 0x02023E88
|
|
_0806114C: .4byte 0x020205AC
|
|
_08061150: .4byte 0x02024188
|
|
_08061154: .4byte 0x08007141
|
|
thumb_func_end sub_08060FC8
|
|
|
|
thumb_func_start OpponentHandleReturnMonToBall
|
|
OpponentHandleReturnMonToBall: @ 0x08061158
|
|
push {r4, r5, r6, lr}
|
|
ldr r1, _0806118C
|
|
ldr r6, _08061190
|
|
ldrb r2, [r6]
|
|
lsls r0, r2, #9
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r3, [r0]
|
|
cmp r3, #0
|
|
bne _080611A0
|
|
ldr r0, _08061194
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
strb r3, [r0, #4]
|
|
ldr r1, _08061198
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0806119C
|
|
str r1, [r0]
|
|
b _080611DC
|
|
.align 2, 0
|
|
_0806118C: .4byte 0x02022D08
|
|
_08061190: .4byte 0x02023D08
|
|
_08061194: .4byte 0x02024174
|
|
_08061198: .4byte 0x03005AC0
|
|
_0806119C: .4byte 0x080611F1
|
|
_080611A0:
|
|
ldr r5, _080611E4
|
|
adds r0, r2, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r4, _080611E8
|
|
adds r0, r0, r4
|
|
bl FreeSpriteOamMatrix
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
bl DestroySprite
|
|
ldrb r0, [r6]
|
|
bl HideBattlerShadowSprite
|
|
ldr r1, _080611EC
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteInvisible
|
|
bl OpponentBufferExecCompleted
|
|
_080611DC:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080611E4: .4byte 0x02023E88
|
|
_080611E8: .4byte 0x020205AC
|
|
_080611EC: .4byte 0x03005AD0
|
|
thumb_func_end OpponentHandleReturnMonToBall
|
|
|
|
thumb_func_start OpponentHandleHidePartyStatusSummary
|
|
OpponentHandleHidePartyStatusSummary: @ 0x080611F0
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _08061210
|
|
ldr r4, [r6]
|
|
ldr r5, _08061214
|
|
ldrb r2, [r5]
|
|
ldr r1, [r4, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r3, r0, r1
|
|
ldrb r0, [r3, #4]
|
|
cmp r0, #0
|
|
beq _08061218
|
|
cmp r0, #1
|
|
beq _08061246
|
|
b _0806126E
|
|
.align 2, 0
|
|
_08061210: .4byte 0x02024174
|
|
_08061214: .4byte 0x02023D08
|
|
_08061218:
|
|
ldr r1, [r4]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08061232
|
|
adds r0, r2, #0
|
|
adds r1, r2, #0
|
|
movs r3, #5
|
|
bl InitAndLaunchSpecialAnimation
|
|
_08061232:
|
|
ldr r0, [r6]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #1
|
|
strb r1, [r0, #4]
|
|
b _0806126E
|
|
_08061246:
|
|
ldrb r1, [r3]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0806126E
|
|
strb r0, [r3, #4]
|
|
ldrb r2, [r5]
|
|
adds r0, r2, #0
|
|
adds r1, r2, #0
|
|
movs r3, #2
|
|
bl InitAndLaunchSpecialAnimation
|
|
ldr r1, _08061274
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08061278
|
|
str r1, [r0]
|
|
_0806126E:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061274: .4byte 0x03005AC0
|
|
_08061278: .4byte 0x0805F6F5
|
|
thumb_func_end OpponentHandleHidePartyStatusSummary
|
|
|
|
thumb_func_start OpponentHandleDrawTrainerPic
|
|
OpponentHandleDrawTrainerPic: @ 0x0806127C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
ldr r0, _08061298
|
|
ldr r2, [r0]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x14
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _0806129C
|
|
bl GetSecretBaseTrainerClass
|
|
b _08061346
|
|
.align 2, 0
|
|
_08061298: .4byte 0x02022C90
|
|
_0806129C:
|
|
ldr r3, _080612AC
|
|
ldrh r1, [r3]
|
|
ldr r0, _080612B0
|
|
cmp r1, r0
|
|
bne _080612B4
|
|
bl PrintHyphens
|
|
b _08061346
|
|
.align 2, 0
|
|
_080612AC: .4byte 0x0203886A
|
|
_080612B0: .4byte 0x000003FE
|
|
_080612B4:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x13
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _080612F4
|
|
movs r0, #0x80
|
|
lsls r0, r0, #8
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
beq _080612EC
|
|
ldr r0, _080612D8
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _080612DC
|
|
ldrh r0, [r3]
|
|
bl GetTrainerHillTrainerFrontSpriteId
|
|
b _08061346
|
|
.align 2, 0
|
|
_080612D8: .4byte 0x02023D08
|
|
_080612DC:
|
|
ldr r0, _080612E8
|
|
ldrh r0, [r0]
|
|
bl GetTrainerHillTrainerFrontSpriteId
|
|
b _08061346
|
|
.align 2, 0
|
|
_080612E8: .4byte 0x0203886C
|
|
_080612EC:
|
|
ldrh r0, [r3]
|
|
bl GetTrainerHillTrainerFrontSpriteId
|
|
b _08061346
|
|
_080612F4:
|
|
ldr r0, _08061314
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _08061338
|
|
ldr r0, _08061318
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
beq _08061330
|
|
ldr r0, _0806131C
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _08061320
|
|
ldrh r0, [r3]
|
|
bl GetFrontierTrainerFrontSpriteId
|
|
b _08061346
|
|
.align 2, 0
|
|
_08061314: .4byte 0x003F0100
|
|
_08061318: .4byte 0x00808000
|
|
_0806131C: .4byte 0x02023D08
|
|
_08061320:
|
|
ldr r0, _0806132C
|
|
ldrh r0, [r0]
|
|
bl GetFrontierTrainerFrontSpriteId
|
|
b _08061346
|
|
.align 2, 0
|
|
_0806132C: .4byte 0x0203886C
|
|
_08061330:
|
|
ldrh r0, [r3]
|
|
bl GetFrontierTrainerFrontSpriteId
|
|
b _08061346
|
|
_08061338:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #4
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _0806134C
|
|
bl GetMonCountForBattleMode
|
|
_08061346:
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
b _0806137E
|
|
_0806134C:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #8
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
beq _08061374
|
|
ldr r0, _08061368
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
beq _08061374
|
|
ldr r1, _0806136C
|
|
ldr r0, _08061370
|
|
ldrh r0, [r0]
|
|
b _08061378
|
|
.align 2, 0
|
|
_08061368: .4byte 0x02023D08
|
|
_0806136C: .4byte 0x082E383C
|
|
_08061370: .4byte 0x0203886C
|
|
_08061374:
|
|
ldr r1, _080613A0
|
|
ldrh r0, [r3]
|
|
_08061378:
|
|
lsls r0, r0, #5
|
|
adds r0, r0, r1
|
|
ldrb r4, [r0, #3]
|
|
_0806137E:
|
|
ldr r0, _080613A4
|
|
ldr r0, [r0]
|
|
ldr r1, _080613A8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080613B0
|
|
ldr r0, _080613AC
|
|
ldrb r0, [r0]
|
|
bl GetBattlerPosition
|
|
movs r1, #2
|
|
ands r1, r0
|
|
movs r7, #0xc8
|
|
cmp r1, #0
|
|
beq _080613B2
|
|
movs r7, #0x98
|
|
b _080613B2
|
|
.align 2, 0
|
|
_080613A0: .4byte 0x082E383C
|
|
_080613A4: .4byte 0x02022C90
|
|
_080613A8: .4byte 0x00008040
|
|
_080613AC: .4byte 0x02023D08
|
|
_080613B0:
|
|
movs r7, #0xb0
|
|
_080613B2:
|
|
mov r8, r4
|
|
ldr r5, _08061498
|
|
ldrb r1, [r5]
|
|
mov r0, r8
|
|
bl DecompressTrainerFrontPic
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
mov r0, r8
|
|
bl SetMultiuseSpriteTemplateToTrainerBack
|
|
ldr r6, _0806149C
|
|
mov sb, r7
|
|
ldr r1, _080614A0
|
|
mov r2, r8
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
movs r4, #8
|
|
subs r4, r4, r0
|
|
lsls r4, r4, #0x12
|
|
movs r0, #0xa0
|
|
lsls r0, r0, #0xe
|
|
adds r4, r4, r0
|
|
asrs r4, r4, #0x10
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSpriteSubpriority
|
|
adds r3, r0, #0
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
adds r0, r6, #0
|
|
mov r1, sb
|
|
adds r2, r4, #0
|
|
bl CreateSprite
|
|
ldr r6, _080614A4
|
|
ldrb r1, [r5]
|
|
adds r1, r1, r6
|
|
strb r0, [r1]
|
|
ldr r4, _080614A8
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldr r1, _080614AC
|
|
strh r1, [r0, #0x24]
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
movs r1, #2
|
|
strh r1, [r0, #0x2e]
|
|
ldr r1, _080614B0
|
|
mov r2, r8
|
|
lsls r0, r2, #3
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0, #4]
|
|
bl IndexOfSpritePaletteTag
|
|
ldrb r1, [r5]
|
|
adds r1, r1, r6
|
|
ldrb r1, [r1]
|
|
lsls r2, r1, #4
|
|
adds r2, r2, r1
|
|
lsls r2, r2, #2
|
|
adds r2, r2, r4
|
|
lsls r0, r0, #4
|
|
ldrb r3, [r2, #5]
|
|
movs r1, #0xf
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
strb r1, [r2, #5]
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
mov r1, r8
|
|
strh r1, [r0, #6]
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r4, #0x1c
|
|
adds r0, r0, r4
|
|
ldr r1, _080614B4
|
|
str r1, [r0]
|
|
ldr r1, _080614B8
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _080614BC
|
|
str r1, [r0]
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061498: .4byte 0x02023D08
|
|
_0806149C: .4byte 0x02024640
|
|
_080614A0: .4byte 0x082D8D70
|
|
_080614A4: .4byte 0x02023E88
|
|
_080614A8: .4byte 0x020205AC
|
|
_080614AC: .4byte 0x0000FF10
|
|
_080614B0: .4byte 0x082D91CC
|
|
_080614B4: .4byte 0x0805D3C9
|
|
_080614B8: .4byte 0x03005AC0
|
|
_080614BC: .4byte 0x0805EDED
|
|
thumb_func_end OpponentHandleDrawTrainerPic
|
|
|
|
thumb_func_start OpponentHandleTrainerSlide
|
|
OpponentHandleTrainerSlide: @ 0x080614C0
|
|
push {r4, r5, r6, lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
ldr r0, _080614DC
|
|
ldr r2, [r0]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x14
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _080614E0
|
|
bl GetSecretBaseTrainerClass
|
|
b _0806158A
|
|
.align 2, 0
|
|
_080614DC: .4byte 0x02022C90
|
|
_080614E0:
|
|
ldr r3, _080614F0
|
|
ldrh r1, [r3]
|
|
ldr r0, _080614F4
|
|
cmp r1, r0
|
|
bne _080614F8
|
|
bl PrintHyphens
|
|
b _0806158A
|
|
.align 2, 0
|
|
_080614F0: .4byte 0x0203886A
|
|
_080614F4: .4byte 0x000003FE
|
|
_080614F8:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x13
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _08061538
|
|
movs r0, #0x80
|
|
lsls r0, r0, #8
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
beq _08061530
|
|
ldr r0, _0806151C
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _08061520
|
|
ldrh r0, [r3]
|
|
bl GetTrainerHillTrainerFrontSpriteId
|
|
b _0806158A
|
|
.align 2, 0
|
|
_0806151C: .4byte 0x02023D08
|
|
_08061520:
|
|
ldr r0, _0806152C
|
|
ldrh r0, [r0]
|
|
bl GetTrainerHillTrainerFrontSpriteId
|
|
b _0806158A
|
|
.align 2, 0
|
|
_0806152C: .4byte 0x0203886C
|
|
_08061530:
|
|
ldrh r0, [r3]
|
|
bl GetTrainerHillTrainerFrontSpriteId
|
|
b _0806158A
|
|
_08061538:
|
|
ldr r0, _08061558
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _0806157C
|
|
ldr r0, _0806155C
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
beq _08061574
|
|
ldr r0, _08061560
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _08061564
|
|
ldrh r0, [r3]
|
|
bl GetFrontierTrainerFrontSpriteId
|
|
b _0806158A
|
|
.align 2, 0
|
|
_08061558: .4byte 0x003F0100
|
|
_0806155C: .4byte 0x00808000
|
|
_08061560: .4byte 0x02023D08
|
|
_08061564:
|
|
ldr r0, _08061570
|
|
ldrh r0, [r0]
|
|
bl GetFrontierTrainerFrontSpriteId
|
|
b _0806158A
|
|
.align 2, 0
|
|
_08061570: .4byte 0x0203886C
|
|
_08061574:
|
|
ldrh r0, [r3]
|
|
bl GetFrontierTrainerFrontSpriteId
|
|
b _0806158A
|
|
_0806157C:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #4
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _08061590
|
|
bl GetMonCountForBattleMode
|
|
_0806158A:
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
b _080615C2
|
|
_08061590:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #8
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
beq _080615B8
|
|
ldr r0, _080615AC
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
beq _080615B8
|
|
ldr r1, _080615B0
|
|
ldr r0, _080615B4
|
|
ldrh r0, [r0]
|
|
b _080615BC
|
|
.align 2, 0
|
|
_080615AC: .4byte 0x02023D08
|
|
_080615B0: .4byte 0x082E383C
|
|
_080615B4: .4byte 0x0203886C
|
|
_080615B8:
|
|
ldr r1, _080616A8
|
|
ldrh r0, [r3]
|
|
_080615BC:
|
|
lsls r0, r0, #5
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0, #3]
|
|
_080615C2:
|
|
mov r8, r0
|
|
ldr r6, _080616AC
|
|
ldrb r1, [r6]
|
|
bl DecompressTrainerFrontPic
|
|
ldrb r0, [r6]
|
|
bl GetBattlerPosition
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
mov r0, r8
|
|
bl SetMultiuseSpriteTemplateToTrainerBack
|
|
ldr r0, _080616B0
|
|
ldr r2, _080616B4
|
|
mov r3, r8
|
|
lsls r1, r3, #2
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1]
|
|
movs r2, #8
|
|
subs r2, r2, r1
|
|
lsls r2, r2, #0x12
|
|
movs r1, #0xa0
|
|
lsls r1, r1, #0xe
|
|
adds r2, r2, r1
|
|
asrs r2, r2, #0x10
|
|
movs r1, #0xb0
|
|
movs r3, #0x1e
|
|
bl CreateSprite
|
|
ldr r5, _080616B8
|
|
ldrb r1, [r6]
|
|
adds r1, r1, r5
|
|
strb r0, [r1]
|
|
ldr r4, _080616BC
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
movs r1, #0x60
|
|
strh r1, [r0, #0x24]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldrh r1, [r0, #0x20]
|
|
adds r1, #0x20
|
|
strh r1, [r0, #0x20]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldr r1, _080616C0
|
|
strh r1, [r0, #0x2e]
|
|
ldr r1, _080616C4
|
|
mov r2, r8
|
|
lsls r0, r2, #3
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0, #4]
|
|
bl IndexOfSpritePaletteTag
|
|
ldrb r1, [r6]
|
|
adds r1, r1, r5
|
|
ldrb r1, [r1]
|
|
lsls r2, r1, #4
|
|
adds r2, r2, r1
|
|
lsls r2, r2, #2
|
|
adds r2, r2, r4
|
|
lsls r0, r0, #4
|
|
ldrb r3, [r2, #5]
|
|
movs r1, #0xf
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
strb r1, [r2, #5]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
mov r3, r8
|
|
strh r3, [r0, #6]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r4, #0x1c
|
|
adds r0, r0, r4
|
|
ldr r1, _080616C8
|
|
str r1, [r0]
|
|
ldr r1, _080616CC
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _080616D0
|
|
str r1, [r0]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080616A8: .4byte 0x082E383C
|
|
_080616AC: .4byte 0x02023D08
|
|
_080616B0: .4byte 0x02024640
|
|
_080616B4: .4byte 0x082D8D70
|
|
_080616B8: .4byte 0x02023E88
|
|
_080616BC: .4byte 0x020205AC
|
|
_080616C0: .4byte 0x0000FFFE
|
|
_080616C4: .4byte 0x082D91CC
|
|
_080616C8: .4byte 0x0805D3C9
|
|
_080616CC: .4byte 0x03005AC0
|
|
_080616D0: .4byte 0x0805EE25
|
|
thumb_func_end OpponentHandleTrainerSlide
|
|
|
|
thumb_func_start OpponentHandleTrainerSlideBack
|
|
OpponentHandleTrainerSlideBack: @ 0x080616D4
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _08061764
|
|
ldr r4, _08061768
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r5, _0806176C
|
|
adds r0, r0, r5
|
|
bl SetSpritePrimaryCoordsFromSecondaryCoords
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
movs r1, #0x23
|
|
strh r1, [r0, #0x2e]
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
movs r1, #0x8c
|
|
lsls r1, r1, #1
|
|
strh r1, [r0, #0x32]
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldrh r1, [r0, #0x22]
|
|
strh r1, [r0, #0x36]
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r5, #0
|
|
adds r1, #0x1c
|
|
adds r0, r0, r1
|
|
ldr r1, _08061770
|
|
str r1, [r0]
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldr r1, _08061774
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r1, _08061778
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0806177C
|
|
str r1, [r0]
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061764: .4byte 0x02023E88
|
|
_08061768: .4byte 0x02023D08
|
|
_0806176C: .4byte 0x020205AC
|
|
_08061770: .4byte 0x080A67B5
|
|
_08061774: .4byte 0x08007141
|
|
_08061778: .4byte 0x03005AC0
|
|
_0806177C: .4byte 0x0805EE5D
|
|
thumb_func_end OpponentHandleTrainerSlideBack
|
|
|
|
thumb_func_start OpponentHandleFaintAnimation
|
|
OpponentHandleFaintAnimation: @ 0x08061780
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _080617CC
|
|
ldr r4, [r6]
|
|
ldr r5, _080617D0
|
|
ldrb r2, [r5]
|
|
ldr r0, [r4, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r3, r1, r0
|
|
ldrb r0, [r3, #4]
|
|
cmp r0, #0
|
|
bne _080617D4
|
|
ldr r1, [r4]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080617B4
|
|
adds r0, r2, #0
|
|
adds r1, r2, #0
|
|
movs r3, #5
|
|
bl InitAndLaunchSpecialAnimation
|
|
_080617B4:
|
|
ldr r0, [r6]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #4]
|
|
adds r1, #1
|
|
strb r1, [r0, #4]
|
|
b _08061810
|
|
.align 2, 0
|
|
_080617CC: .4byte 0x02024174
|
|
_080617D0: .4byte 0x02023D08
|
|
_080617D4:
|
|
ldrb r1, [r3]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08061810
|
|
strb r0, [r3, #4]
|
|
movs r0, #0x10
|
|
movs r1, #0x3f
|
|
bl PlaySE12WithPanning
|
|
ldr r2, _08061818
|
|
ldr r1, _0806181C
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, _08061820
|
|
str r1, [r0]
|
|
ldr r1, _08061824
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08061828
|
|
str r1, [r0]
|
|
_08061810:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061818: .4byte 0x020205AC
|
|
_0806181C: .4byte 0x02023E88
|
|
_08061820: .4byte 0x08039579
|
|
_08061824: .4byte 0x03005AC0
|
|
_08061828: .4byte 0x0805F6B1
|
|
thumb_func_end OpponentHandleFaintAnimation
|
|
|
|
thumb_func_start OpponentHandlePaletteFade
|
|
OpponentHandlePaletteFade: @ 0x0806182C
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandlePaletteFade
|
|
|
|
thumb_func_start OpponentHandlePause
|
|
OpponentHandlePause: @ 0x08061838
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandlePause
|
|
|
|
thumb_func_start OpponentHandleSuccessBallThrowAnim
|
|
OpponentHandleSuccessBallThrowAnim: @ 0x08061844
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandleSuccessBallThrowAnim
|
|
|
|
thumb_func_start OpponentHandleChosenMonReturnValue
|
|
OpponentHandleChosenMonReturnValue: @ 0x08061850
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandleChosenMonReturnValue
|
|
|
|
thumb_func_start OpponentHandleMoveAnimation
|
|
OpponentHandleMoveAnimation: @ 0x0806185C
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _08061940
|
|
ldrb r0, [r6]
|
|
bl mplay_80342A4
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0806186E
|
|
b _08061982
|
|
_0806186E:
|
|
ldr r0, _08061944
|
|
mov ip, r0
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
adds r0, #1
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
mov r1, ip
|
|
adds r1, #2
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
lsls r1, r1, #8
|
|
orrs r0, r1
|
|
ldr r5, _08061948
|
|
mov r1, ip
|
|
adds r1, #3
|
|
adds r2, r2, r1
|
|
ldrb r1, [r2]
|
|
strb r1, [r5]
|
|
ldr r4, _0806194C
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
mov r1, ip
|
|
adds r1, #4
|
|
adds r1, r2, r1
|
|
ldrb r3, [r1]
|
|
mov r1, ip
|
|
adds r1, #5
|
|
adds r2, r2, r1
|
|
ldrb r1, [r2]
|
|
lsls r1, r1, #8
|
|
orrs r3, r1
|
|
strh r3, [r4]
|
|
ldr r4, _08061950
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
mov r1, ip
|
|
adds r1, #6
|
|
adds r1, r2, r1
|
|
ldrb r3, [r1]
|
|
mov r1, ip
|
|
adds r1, #7
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
lsls r1, r1, #8
|
|
orrs r3, r1
|
|
mov r1, ip
|
|
adds r1, #8
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
lsls r1, r1, #0x10
|
|
orrs r3, r1
|
|
mov r1, ip
|
|
adds r1, #9
|
|
adds r2, r2, r1
|
|
ldrb r1, [r2]
|
|
lsls r1, r1, #0x18
|
|
orrs r3, r1
|
|
str r3, [r4]
|
|
ldr r3, _08061954
|
|
ldrb r1, [r6]
|
|
lsls r1, r1, #9
|
|
mov r2, ip
|
|
adds r2, #0xa
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r3]
|
|
ldr r4, _08061958
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
mov r1, ip
|
|
adds r1, #0xc
|
|
adds r1, r2, r1
|
|
ldrb r3, [r1]
|
|
mov r1, ip
|
|
adds r1, #0xd
|
|
adds r2, r2, r1
|
|
ldrb r1, [r2]
|
|
lsls r1, r1, #8
|
|
orrs r3, r1
|
|
strh r3, [r4]
|
|
ldr r3, _0806195C
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
mov r1, ip
|
|
adds r1, #0x10
|
|
adds r2, r2, r1
|
|
str r2, [r3]
|
|
ldr r3, _08061960
|
|
ldrb r1, [r6]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r3
|
|
ldr r2, [r2]
|
|
str r2, [r1]
|
|
ldrb r1, [r5]
|
|
bl IsMoveWithoutAnimation
|
|
lsls r0, r0, #0x18
|
|
lsrs r3, r0, #0x18
|
|
cmp r3, #0
|
|
beq _08061964
|
|
bl OpponentBufferExecCompleted
|
|
b _08061982
|
|
.align 2, 0
|
|
_08061940: .4byte 0x02023D08
|
|
_08061944: .4byte 0x02022D08
|
|
_08061948: .4byte 0x020380D2
|
|
_0806194C: .4byte 0x020380A8
|
|
_08061950: .4byte 0x020380A4
|
|
_08061954: .4byte 0x020380BA
|
|
_08061958: .4byte 0x020380BC
|
|
_0806195C: .4byte 0x020380A0
|
|
_08061960: .4byte 0x02024160
|
|
_08061964:
|
|
ldr r0, _08061988
|
|
ldr r0, [r0]
|
|
ldrb r1, [r6]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
strb r3, [r0, #4]
|
|
ldr r1, _0806198C
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08061990
|
|
str r1, [r0]
|
|
_08061982:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061988: .4byte 0x02024174
|
|
_0806198C: .4byte 0x03005AC0
|
|
_08061990: .4byte 0x08061995
|
|
thumb_func_end OpponentHandleMoveAnimation
|
|
|
|
thumb_func_start OpponentDoMoveAnimation
|
|
OpponentDoMoveAnimation: @ 0x08061994
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
ldr r2, _080619E0
|
|
ldr r6, _080619E4
|
|
ldrb r3, [r6]
|
|
lsls r1, r3, #9
|
|
adds r0, r2, #1
|
|
mov sl, r0
|
|
adds r0, r1, r0
|
|
ldrb r4, [r0]
|
|
adds r5, r2, #2
|
|
mov sb, r5
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #8
|
|
orrs r4, r0
|
|
adds r2, #0xb
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1]
|
|
mov r8, r1
|
|
ldr r7, _080619E8
|
|
ldr r5, [r7]
|
|
ldr r1, [r5, #4]
|
|
lsls r0, r3, #1
|
|
adds r0, r0, r3
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r2, [r0, #4]
|
|
cmp r2, #1
|
|
beq _08061A2C
|
|
cmp r2, #1
|
|
bgt _080619EC
|
|
cmp r2, #0
|
|
beq _080619F6
|
|
b _08061B08
|
|
.align 2, 0
|
|
_080619E0: .4byte 0x02022D08
|
|
_080619E4: .4byte 0x02023D08
|
|
_080619E8: .4byte 0x02024174
|
|
_080619EC:
|
|
cmp r2, #2
|
|
beq _08061A56
|
|
cmp r2, #3
|
|
beq _08061ACC
|
|
b _08061B08
|
|
_080619F6:
|
|
ldr r1, [r5]
|
|
lsls r0, r3, #2
|
|
adds r1, r0, r1
|
|
ldrb r2, [r1]
|
|
movs r0, #0xc
|
|
ands r0, r2
|
|
cmp r0, #4
|
|
bne _08061A18
|
|
movs r0, #8
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldrb r2, [r6]
|
|
adds r0, r2, #0
|
|
adds r1, r2, #0
|
|
movs r3, #5
|
|
bl InitAndLaunchSpecialAnimation
|
|
_08061A18:
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #1
|
|
strb r1, [r0, #4]
|
|
b _08061B08
|
|
_08061A2C:
|
|
ldrb r1, [r0]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08061B08
|
|
movs r0, #0
|
|
bl sub_0805E7B8
|
|
adds r0, r4, #0
|
|
bl DoMoveAnim
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #2
|
|
strb r1, [r0, #4]
|
|
b _08061B08
|
|
_08061A56:
|
|
ldr r0, _08061ABC
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r0, _08061AC0
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _08061B08
|
|
movs r0, #1
|
|
bl sub_0805E7B8
|
|
ldr r0, [r7]
|
|
ldrb r2, [r6]
|
|
ldr r1, [r0]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08061AA4
|
|
mov r0, r8
|
|
cmp r0, #1
|
|
bhi _08061AA4
|
|
adds r0, r2, #0
|
|
adds r1, r2, #0
|
|
movs r3, #6
|
|
bl InitAndLaunchSpecialAnimation
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r0, [r0]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, #9
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
_08061AA4:
|
|
ldr r0, _08061AC4
|
|
ldr r2, [r0]
|
|
ldr r0, _08061AC8
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #3
|
|
strb r1, [r0, #4]
|
|
b _08061B08
|
|
.align 2, 0
|
|
_08061ABC: .4byte 0x02038098
|
|
_08061AC0: .4byte 0x0203809D
|
|
_08061AC4: .4byte 0x02024174
|
|
_08061AC8: .4byte 0x02023D08
|
|
_08061ACC:
|
|
ldrb r1, [r0]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #0
|
|
bne _08061B08
|
|
bl CopyAllBattleSpritesInvisibilities
|
|
ldrb r0, [r6]
|
|
lsls r2, r0, #9
|
|
mov r3, sl
|
|
adds r1, r2, r3
|
|
ldrb r1, [r1]
|
|
add r2, sb
|
|
ldrb r2, [r2]
|
|
lsls r2, r2, #8
|
|
orrs r1, r2
|
|
bl TrySetBehindSubstituteSpriteBit
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
strb r4, [r0, #4]
|
|
bl OpponentBufferExecCompleted
|
|
_08061B08:
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentDoMoveAnimation
|
|
|
|
thumb_func_start OpponentHandlePrintString
|
|
OpponentHandlePrintString: @ 0x08061B18
|
|
push {r4, r5, lr}
|
|
ldr r0, _08061B58
|
|
movs r1, #0
|
|
strh r1, [r0]
|
|
ldr r0, _08061B5C
|
|
strh r1, [r0]
|
|
ldr r5, _08061B60
|
|
ldrb r4, [r5]
|
|
lsls r4, r4, #9
|
|
ldr r0, _08061B64
|
|
adds r4, r4, r0
|
|
ldrh r0, [r4]
|
|
bl BufferStringBattle
|
|
ldr r0, _08061B68
|
|
movs r1, #0
|
|
bl sub_0814FA04
|
|
ldr r1, _08061B6C
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08061B70
|
|
str r1, [r0]
|
|
ldrb r0, [r5]
|
|
ldrh r1, [r4]
|
|
bl BattleArena_DeductMindPoints
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061B58: .4byte 0x02022AC8
|
|
_08061B5C: .4byte 0x02022ACA
|
|
_08061B60: .4byte 0x02023D08
|
|
_08061B64: .4byte 0x02022D0A
|
|
_08061B68: .4byte 0x02022AE0
|
|
_08061B6C: .4byte 0x03005AC0
|
|
_08061B70: .4byte 0x0805F769
|
|
thumb_func_end OpponentHandlePrintString
|
|
|
|
thumb_func_start OpponentHandleCmd23
|
|
OpponentHandleCmd23: @ 0x08061B74
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandleCmd23
|
|
|
|
thumb_func_start OpponentHandleChooseAction
|
|
OpponentHandleChooseAction: @ 0x08061B80
|
|
push {lr}
|
|
bl AI_TrySwitchOrUseItem
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandleChooseAction
|
|
|
|
thumb_func_start OpponentHandleCmd32
|
|
OpponentHandleCmd32: @ 0x08061B90
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandleCmd32
|
|
|
|
thumb_func_start OpponentHandleChooseMove
|
|
OpponentHandleChooseMove: @ 0x08061B9C
|
|
push {r4, r5, r6, lr}
|
|
ldr r0, _08061BC4
|
|
ldr r2, [r0]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xa
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _08061BC8
|
|
bl ChooseMoveAndTargetInBattlePalace
|
|
adds r2, r0, #0
|
|
lsls r2, r2, #0x10
|
|
lsrs r2, r2, #0x10
|
|
movs r0, #1
|
|
movs r1, #0xa
|
|
_08061BBA:
|
|
bl BtlController_EmitTwoReturnValues
|
|
_08061BBE:
|
|
bl OpponentBufferExecCompleted
|
|
b _08061D3A
|
|
.align 2, 0
|
|
_08061BC4: .4byte 0x02022C90
|
|
_08061BC8:
|
|
ldr r0, _08061BF8
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #9
|
|
ldr r1, _08061BFC
|
|
adds r5, r0, r1
|
|
movs r0, #0x93
|
|
lsls r0, r0, #3
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
beq _08061CA8
|
|
movs r0, #0xf
|
|
bl BattleAI_SetupAIData
|
|
bl BattleAI_ChooseMoveOrAction
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #5
|
|
beq _08061C06
|
|
cmp r4, #5
|
|
bgt _08061C00
|
|
cmp r4, #4
|
|
beq _08061C0C
|
|
b _08061C24
|
|
.align 2, 0
|
|
_08061BF8: .4byte 0x02023D08
|
|
_08061BFC: .4byte 0x02022D0C
|
|
_08061C00:
|
|
cmp r4, #6
|
|
beq _08061C14
|
|
b _08061C24
|
|
_08061C06:
|
|
movs r0, #1
|
|
movs r1, #4
|
|
b _08061C10
|
|
_08061C0C:
|
|
movs r0, #1
|
|
movs r1, #3
|
|
_08061C10:
|
|
movs r2, #0
|
|
b _08061BBA
|
|
_08061C14:
|
|
ldr r0, _08061C20
|
|
ldrb r2, [r0]
|
|
movs r0, #1
|
|
movs r1, #0xf
|
|
b _08061BBA
|
|
.align 2, 0
|
|
_08061C20: .4byte 0x02023EB0
|
|
_08061C24:
|
|
ldr r3, _08061C94
|
|
lsls r0, r4, #1
|
|
adds r2, r5, r0
|
|
ldrh r1, [r2]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldrb r1, [r0, #6]
|
|
movs r0, #0x12
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08061C46
|
|
ldr r0, _08061C98
|
|
ldr r1, _08061C9C
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
_08061C46:
|
|
ldrh r1, [r2]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldrb r1, [r0, #6]
|
|
movs r0, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08061C80
|
|
movs r0, #0
|
|
bl GetBattlerAtPosition
|
|
ldr r5, _08061C98
|
|
strb r0, [r5]
|
|
ldr r0, _08061CA0
|
|
ldrb r1, [r0]
|
|
ldr r2, _08061CA4
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _08061C80
|
|
movs r0, #2
|
|
bl GetBattlerAtPosition
|
|
strb r0, [r5]
|
|
_08061C80:
|
|
ldr r0, _08061C98
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #8
|
|
orrs r4, r0
|
|
movs r0, #1
|
|
movs r1, #0xa
|
|
adds r2, r4, #0
|
|
bl BtlController_EmitTwoReturnValues
|
|
b _08061BBE
|
|
.align 2, 0
|
|
_08061C94: .4byte 0x082ED220
|
|
_08061C98: .4byte 0x02023EB0
|
|
_08061C9C: .4byte 0x02023D08
|
|
_08061CA0: .4byte 0x02023EB4
|
|
_08061CA4: .4byte 0x082FACB4
|
|
_08061CA8:
|
|
movs r6, #3
|
|
_08061CAA:
|
|
bl Random
|
|
adds r4, r0, #0
|
|
ands r4, r6
|
|
lsls r0, r4, #1
|
|
adds r0, r5, r0
|
|
ldrh r2, [r0]
|
|
cmp r2, #0
|
|
beq _08061CAA
|
|
ldr r1, _08061CE4
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0, #6]
|
|
movs r0, #0x12
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08061CEC
|
|
ldr r0, _08061CE8
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #8
|
|
orrs r4, r0
|
|
movs r0, #1
|
|
movs r1, #0xa
|
|
adds r2, r4, #0
|
|
bl BtlController_EmitTwoReturnValues
|
|
b _08061D36
|
|
.align 2, 0
|
|
_08061CE4: .4byte 0x082ED220
|
|
_08061CE8: .4byte 0x02023D08
|
|
_08061CEC:
|
|
ldr r0, _08061D1C
|
|
ldr r0, [r0]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08061D20
|
|
bl Random
|
|
movs r1, #2
|
|
ands r1, r0
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
adds r0, r1, #0
|
|
bl GetBattlerAtPosition
|
|
adds r2, r0, #0
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x10
|
|
orrs r2, r4
|
|
movs r0, #1
|
|
movs r1, #0xa
|
|
bl BtlController_EmitTwoReturnValues
|
|
b _08061D36
|
|
.align 2, 0
|
|
_08061D1C: .4byte 0x02022C90
|
|
_08061D20:
|
|
movs r0, #0
|
|
bl GetBattlerAtPosition
|
|
adds r2, r0, #0
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x10
|
|
orrs r2, r4
|
|
movs r0, #1
|
|
movs r1, #0xa
|
|
bl BtlController_EmitTwoReturnValues
|
|
_08061D36:
|
|
bl OpponentBufferExecCompleted
|
|
_08061D3A:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end OpponentHandleChooseMove
|
|
|
|
thumb_func_start OpponentHandleCmd40
|
|
OpponentHandleCmd40: @ 0x08061D40
|
|
push {lr}
|
|
ldr r0, _08061D64
|
|
ldrb r0, [r0]
|
|
lsrs r0, r0, #1
|
|
ldr r1, _08061D68
|
|
ldr r1, [r1]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
adds r0, #0xc0
|
|
ldrb r1, [r0]
|
|
movs r0, #1
|
|
bl BtlController_EmitOneReturnValue
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061D64: .4byte 0x02023D08
|
|
_08061D68: .4byte 0x02024140
|
|
thumb_func_end OpponentHandleCmd40
|
|
|
|
thumb_func_start OpponentHandleChoosePokemon
|
|
OpponentHandleChoosePokemon: @ 0x08061D6C
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r0, _08061DAC
|
|
ldrb r0, [r0]
|
|
ldr r1, _08061DB0
|
|
ldr r1, [r1]
|
|
adds r0, r0, r1
|
|
movs r2, #0xa5
|
|
lsls r2, r2, #2
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, #6
|
|
bne _08061E38
|
|
bl GetMostSuitableMonToSwitchInto
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #6
|
|
bne _08061E3E
|
|
ldr r0, _08061DB4
|
|
ldr r0, [r0]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08061DB8
|
|
movs r0, #1
|
|
bl GetBattlerAtPosition
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
adds r7, r5, #0
|
|
b _08061DCC
|
|
.align 2, 0
|
|
_08061DAC: .4byte 0x02023D08
|
|
_08061DB0: .4byte 0x02024140
|
|
_08061DB4: .4byte 0x02022C90
|
|
_08061DB8:
|
|
movs r0, #1
|
|
bl GetBattlerAtPosition
|
|
lsls r0, r0, #0x18
|
|
lsrs r7, r0, #0x18
|
|
movs r0, #3
|
|
bl GetBattlerAtPosition
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
_08061DCC:
|
|
ldr r0, _08061DE8
|
|
ldr r0, [r0]
|
|
ldr r1, _08061DEC
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08061DF8
|
|
ldr r0, _08061DF0
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _08061DF4
|
|
movs r0, #0
|
|
movs r6, #3
|
|
b _08061DFC
|
|
.align 2, 0
|
|
_08061DE8: .4byte 0x02022C90
|
|
_08061DEC: .4byte 0x00808000
|
|
_08061DF0: .4byte 0x02023D08
|
|
_08061DF4:
|
|
movs r0, #3
|
|
b _08061DFA
|
|
_08061DF8:
|
|
movs r0, #0
|
|
_08061DFA:
|
|
movs r6, #6
|
|
_08061DFC:
|
|
adds r4, r0, #0
|
|
b _08061E02
|
|
_08061E00:
|
|
adds r4, #1
|
|
_08061E02:
|
|
cmp r4, r6
|
|
bge _08061E3E
|
|
movs r0, #0x64
|
|
muls r0, r4, r0
|
|
ldr r1, _08061E30
|
|
adds r0, r0, r1
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _08061E00
|
|
ldr r1, _08061E34
|
|
lsls r0, r7, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
beq _08061E00
|
|
lsls r0, r5, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
beq _08061E00
|
|
b _08061E3E
|
|
.align 2, 0
|
|
_08061E30: .4byte 0x020243E8
|
|
_08061E34: .4byte 0x02023D12
|
|
_08061E38:
|
|
ldrb r4, [r1]
|
|
movs r0, #6
|
|
strb r0, [r1]
|
|
_08061E3E:
|
|
ldr r0, _08061E64
|
|
ldrb r0, [r0]
|
|
ldr r1, _08061E68
|
|
ldr r1, [r1]
|
|
adds r0, r0, r1
|
|
adds r0, #0x5c
|
|
strb r4, [r0]
|
|
lsls r1, r4, #0x18
|
|
lsrs r1, r1, #0x18
|
|
movs r0, #1
|
|
movs r2, #0
|
|
bl BtlController_EmitChosenMonReturnValue
|
|
bl OpponentBufferExecCompleted
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061E64: .4byte 0x02023D08
|
|
_08061E68: .4byte 0x02024140
|
|
thumb_func_end OpponentHandleChoosePokemon
|
|
|
|
thumb_func_start OpponentHandleCmd42
|
|
OpponentHandleCmd42: @ 0x08061E6C
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandleCmd42
|
|
|
|
thumb_func_start OpponentHandleHealthBarUpdate
|
|
OpponentHandleHealthBarUpdate: @ 0x08061E78
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
sub sp, #4
|
|
movs r0, #0
|
|
bl LoadBattleBarGfx
|
|
ldr r3, _08061EF0
|
|
ldr r0, _08061EF4
|
|
mov sb, r0
|
|
ldrb r4, [r0]
|
|
lsls r2, r4, #9
|
|
adds r0, r3, #3
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #8
|
|
adds r3, #2
|
|
adds r2, r2, r3
|
|
ldrb r0, [r2]
|
|
orrs r0, r1
|
|
lsls r0, r0, #0x10
|
|
asrs r7, r0, #0x10
|
|
ldr r0, _08061EF8
|
|
cmp r7, r0
|
|
beq _08061F08
|
|
ldr r6, _08061EFC
|
|
lsls r0, r4, #1
|
|
adds r0, r0, r6
|
|
ldrh r0, [r0]
|
|
movs r5, #0x64
|
|
muls r0, r5, r0
|
|
ldr r4, _08061F00
|
|
adds r0, r0, r4
|
|
movs r1, #0x3a
|
|
bl GetMonData
|
|
mov r8, r0
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r6
|
|
ldrh r0, [r0]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
adds r3, r0, #0
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
ldr r1, _08061F04
|
|
adds r1, r0, r1
|
|
ldrb r1, [r1]
|
|
str r7, [sp]
|
|
mov r2, r8
|
|
bl SetBattleBarStruct
|
|
b _08061F32
|
|
.align 2, 0
|
|
_08061EF0: .4byte 0x02022D08
|
|
_08061EF4: .4byte 0x02023D08
|
|
_08061EF8: .4byte 0x00007FFF
|
|
_08061EFC: .4byte 0x02023D12
|
|
_08061F00: .4byte 0x020243E8
|
|
_08061F04: .4byte 0x03005AD0
|
|
_08061F08:
|
|
ldr r1, _08061F50
|
|
lsls r0, r4, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _08061F54
|
|
adds r0, r0, r1
|
|
movs r1, #0x3a
|
|
bl GetMonData
|
|
adds r2, r0, #0
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
ldr r1, _08061F58
|
|
adds r1, r0, r1
|
|
ldrb r1, [r1]
|
|
str r7, [sp]
|
|
movs r3, #0
|
|
bl SetBattleBarStruct
|
|
_08061F32:
|
|
ldr r1, _08061F5C
|
|
ldr r0, _08061F60
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08061F64
|
|
str r1, [r0]
|
|
add sp, #4
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061F50: .4byte 0x02023D12
|
|
_08061F54: .4byte 0x020243E8
|
|
_08061F58: .4byte 0x03005AD0
|
|
_08061F5C: .4byte 0x03005AC0
|
|
_08061F60: .4byte 0x02023D08
|
|
_08061F64: .4byte 0x0805F65D
|
|
thumb_func_end OpponentHandleHealthBarUpdate
|
|
|
|
thumb_func_start OpponentHandleDMA3Transfer
|
|
OpponentHandleDMA3Transfer: @ 0x08061F68
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandleDMA3Transfer
|
|
|
|
thumb_func_start OpponentHandleStatusIconUpdate
|
|
OpponentHandleStatusIconUpdate: @ 0x08061F74
|
|
push {r4, lr}
|
|
ldr r4, _08061FD0
|
|
ldrb r0, [r4]
|
|
bl mplay_80342A4
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08061FC8
|
|
ldr r0, _08061FD4
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
ldr r2, _08061FD8
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, #0x64
|
|
muls r1, r2, r1
|
|
ldr r2, _08061FDC
|
|
adds r1, r1, r2
|
|
movs r2, #9
|
|
bl UpdateHealthboxAttribute
|
|
ldrb r2, [r4]
|
|
ldr r0, _08061FE0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, #0x11
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r1, _08061FE4
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08061FE8
|
|
str r1, [r0]
|
|
_08061FC8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061FD0: .4byte 0x02023D08
|
|
_08061FD4: .4byte 0x03005AD0
|
|
_08061FD8: .4byte 0x02023D12
|
|
_08061FDC: .4byte 0x020243E8
|
|
_08061FE0: .4byte 0x02024174
|
|
_08061FE4: .4byte 0x03005AC0
|
|
_08061FE8: .4byte 0x0805FAA5
|
|
thumb_func_end OpponentHandleStatusIconUpdate
|
|
|
|
thumb_func_start OpponentHandleStatusAnimation
|
|
OpponentHandleStatusAnimation: @ 0x08061FEC
|
|
push {r4, r5, lr}
|
|
ldr r5, _08062044
|
|
ldrb r0, [r5]
|
|
bl mplay_80342A4
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0806203C
|
|
ldr r4, _08062048
|
|
ldrb r3, [r5]
|
|
lsls r3, r3, #9
|
|
adds r0, r4, #1
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
adds r1, r4, #2
|
|
adds r1, r3, r1
|
|
ldrb r1, [r1]
|
|
adds r2, r4, #3
|
|
adds r2, r3, r2
|
|
ldrb r2, [r2]
|
|
lsls r2, r2, #8
|
|
orrs r1, r2
|
|
adds r2, r4, #4
|
|
adds r2, r3, r2
|
|
ldrb r2, [r2]
|
|
lsls r2, r2, #0x10
|
|
orrs r1, r2
|
|
adds r4, #5
|
|
adds r3, r3, r4
|
|
ldrb r2, [r3]
|
|
lsls r2, r2, #0x18
|
|
orrs r1, r2
|
|
bl InitAndLaunchChosenStatusAnimation
|
|
ldr r1, _0806204C
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08062050
|
|
str r1, [r0]
|
|
_0806203C:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062044: .4byte 0x02023D08
|
|
_08062048: .4byte 0x02022D08
|
|
_0806204C: .4byte 0x03005AC0
|
|
_08062050: .4byte 0x0805FAA5
|
|
thumb_func_end OpponentHandleStatusAnimation
|
|
|
|
thumb_func_start OpponentHandleDataTransfer
|
|
OpponentHandleDataTransfer: @ 0x08062054
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandleDataTransfer
|
|
|
|
thumb_func_start OpponentHandleEndBounceEffect
|
|
OpponentHandleEndBounceEffect: @ 0x08062060
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandleEndBounceEffect
|
|
|
|
thumb_func_start OpponentHandleExpUpdate
|
|
OpponentHandleExpUpdate: @ 0x0806206C
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandleExpUpdate
|
|
|
|
thumb_func_start OpponentHandleLinkStandbyMsg
|
|
OpponentHandleLinkStandbyMsg: @ 0x08062078
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandleLinkStandbyMsg
|
|
|
|
thumb_func_start OpponentHandleOneReturnValue
|
|
OpponentHandleOneReturnValue: @ 0x08062084
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandleOneReturnValue
|
|
|
|
thumb_func_start OpponentHandleOneReturnValue_Duplicate
|
|
OpponentHandleOneReturnValue_Duplicate: @ 0x08062090
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandleOneReturnValue_Duplicate
|
|
|
|
thumb_func_start OpponentHandlePlayBGM
|
|
OpponentHandlePlayBGM: @ 0x0806209C
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandlePlayBGM
|
|
|
|
thumb_func_start OpponentHandlePrintSelectionString
|
|
OpponentHandlePrintSelectionString: @ 0x080620A8
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandlePrintSelectionString
|
|
|
|
thumb_func_start OpponentHandleResetActionMoveSelection
|
|
OpponentHandleResetActionMoveSelection: @ 0x080620B4
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandleResetActionMoveSelection
|
|
|
|
thumb_func_start OpponentHandleStatusXor
|
|
OpponentHandleStatusXor: @ 0x080620C0
|
|
push {lr}
|
|
ldr r2, _080620D8
|
|
ldrb r1, [r2]
|
|
movs r0, #0x80
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080620D8: .4byte 0x020229C0
|
|
thumb_func_end OpponentHandleStatusXor
|
|
|
|
thumb_func_start OpponentHandleTwoReturnValues
|
|
OpponentHandleTwoReturnValues: @ 0x080620DC
|
|
push {lr}
|
|
ldr r3, _08062108
|
|
ldr r1, _0806210C
|
|
ldr r0, _08062110
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #9
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, #0x7f
|
|
ands r1, r0
|
|
ldrb r2, [r3]
|
|
movs r0, #0x80
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062108: .4byte 0x020229C0
|
|
_0806210C: .4byte 0x02022D08
|
|
_08062110: .4byte 0x02023D08
|
|
thumb_func_end OpponentHandleTwoReturnValues
|
|
|
|
thumb_func_start OpponentHandleUnknownYesNoBox
|
|
OpponentHandleUnknownYesNoBox: @ 0x08062114
|
|
push {lr}
|
|
ldr r2, _08062128
|
|
ldrb r1, [r2]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062128: .4byte 0x020229C0
|
|
thumb_func_end OpponentHandleUnknownYesNoBox
|
|
|
|
thumb_func_start sub_0806212C
|
|
sub_0806212C: @ 0x0806212C
|
|
push {lr}
|
|
ldr r3, _08062150
|
|
ldr r1, [r3]
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x1f
|
|
movs r0, #1
|
|
eors r1, r0
|
|
lsls r1, r1, #7
|
|
ldrb r2, [r3]
|
|
movs r0, #0x7f
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062150: .4byte 0x020229C0
|
|
thumb_func_end sub_0806212C
|
|
|
|
thumb_func_start sub_08062154
|
|
sub_08062154: @ 0x08062154
|
|
push {r4, lr}
|
|
ldr r3, _0806217C
|
|
ldr r2, _08062180
|
|
ldr r4, _08062184
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
adds r0, #0x3e
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1d
|
|
cmp r0, #0
|
|
bge _08062188
|
|
bl OpponentBufferExecCompleted
|
|
b _080621B2
|
|
.align 2, 0
|
|
_0806217C: .4byte 0x020205AC
|
|
_08062180: .4byte 0x02023E88
|
|
_08062184: .4byte 0x02023D08
|
|
_08062188:
|
|
ldr r1, _080621B8
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
movs r1, #0
|
|
strh r1, [r0, #0x30]
|
|
ldrb r0, [r4]
|
|
bl DoHitAnimHealthboxEffect
|
|
ldr r1, _080621BC
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _080621C0
|
|
str r1, [r0]
|
|
_080621B2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080621B8: .4byte 0x0202415D
|
|
_080621BC: .4byte 0x03005AC0
|
|
_080621C0: .4byte 0x0805F781
|
|
thumb_func_end sub_08062154
|
|
|
|
thumb_func_start OpponentCmdEnd
|
|
OpponentCmdEnd: @ 0x080621C4
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentCmdEnd
|
|
|
|
thumb_func_start OpponentHandlePlaySE
|
|
OpponentHandlePlaySE: @ 0x080621D0
|
|
push {r4, lr}
|
|
ldr r4, _0806220C
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
movs r3, #0x3f
|
|
cmp r0, #0
|
|
bne _080621E4
|
|
movs r3, #0xc0
|
|
_080621E4:
|
|
ldr r2, _08062210
|
|
ldrb r1, [r4]
|
|
lsls r1, r1, #9
|
|
adds r0, r2, #1
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
adds r2, #2
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, r1, #8
|
|
orrs r0, r1
|
|
lsls r1, r3, #0x18
|
|
asrs r1, r1, #0x18
|
|
bl PlaySE12WithPanning
|
|
bl OpponentBufferExecCompleted
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806220C: .4byte 0x02023D08
|
|
_08062210: .4byte 0x02022D08
|
|
thumb_func_end OpponentHandlePlaySE
|
|
|
|
thumb_func_start OpponentHandlePlayFanfareOrBGM
|
|
OpponentHandlePlayFanfareOrBGM: @ 0x08062214
|
|
push {r4, r5, lr}
|
|
ldr r4, _08062248
|
|
ldr r5, _0806224C
|
|
ldrb r0, [r5]
|
|
lsls r3, r0, #9
|
|
adds r0, r4, #3
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _08062250
|
|
bl BattleStopLowHpSound
|
|
ldrb r1, [r5]
|
|
lsls r1, r1, #9
|
|
adds r0, r4, #1
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
adds r2, r4, #2
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, r1, #8
|
|
orrs r0, r1
|
|
bl PlayBGM
|
|
b _08062264
|
|
.align 2, 0
|
|
_08062248: .4byte 0x02022D08
|
|
_0806224C: .4byte 0x02023D08
|
|
_08062250:
|
|
adds r0, r4, #1
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
adds r1, r4, #2
|
|
adds r1, r3, r1
|
|
ldrb r1, [r1]
|
|
lsls r1, r1, #8
|
|
orrs r0, r1
|
|
bl PlayFanfare
|
|
_08062264:
|
|
bl OpponentBufferExecCompleted
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end OpponentHandlePlayFanfareOrBGM
|
|
|
|
thumb_func_start OpponentHandleFaintingCry
|
|
OpponentHandleFaintingCry: @ 0x08062270
|
|
push {lr}
|
|
ldr r1, _080622A0
|
|
ldr r0, _080622A4
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _080622A8
|
|
adds r0, r0, r1
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0x19
|
|
movs r2, #5
|
|
bl PlayCry3
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080622A0: .4byte 0x02023D12
|
|
_080622A4: .4byte 0x02023D08
|
|
_080622A8: .4byte 0x020243E8
|
|
thumb_func_end OpponentHandleFaintingCry
|
|
|
|
thumb_func_start nullsub_26
|
|
nullsub_26: @ 0x080622AC
|
|
push {lr}
|
|
ldr r1, _080622D4
|
|
ldr r0, _080622D8
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #9
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
bl HandleIntroSlide
|
|
ldr r2, _080622DC
|
|
ldrh r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080622D4: .4byte 0x02022D08
|
|
_080622D8: .4byte 0x02023D08
|
|
_080622DC: .4byte 0x020240A0
|
|
thumb_func_end nullsub_26
|
|
|
|
thumb_func_start OpponentHandleIntroTrainerBallThrow
|
|
OpponentHandleIntroTrainerBallThrow: @ 0x080622E0
|
|
push {r4, r5, r6, lr}
|
|
ldr r5, _080623C0
|
|
ldr r6, _080623C4
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r4, _080623C8
|
|
adds r0, r0, r4
|
|
bl SetSpritePrimaryCoordsFromSecondaryCoords
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
movs r1, #0x23
|
|
strh r1, [r0, #0x2e]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
movs r1, #0x8c
|
|
lsls r1, r1, #1
|
|
strh r1, [r0, #0x32]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldrh r1, [r0, #0x22]
|
|
strh r1, [r0, #0x36]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r4, #0
|
|
adds r1, #0x1c
|
|
adds r0, r0, r1
|
|
ldr r1, _080623CC
|
|
str r1, [r0]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldr r1, _080623D0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080623D4
|
|
movs r1, #5
|
|
bl CreateTask
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r4, _080623D8
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r4
|
|
ldrb r0, [r6]
|
|
strh r0, [r1, #8]
|
|
ldr r3, _080623DC
|
|
ldr r0, [r3]
|
|
ldrb r2, [r6]
|
|
ldr r1, [r0, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080623A2
|
|
ldr r0, _080623E0
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r4
|
|
ldr r1, _080623E4
|
|
str r1, [r0]
|
|
_080623A2:
|
|
ldr r0, [r3]
|
|
ldr r2, [r0, #8]
|
|
ldrb r0, [r2, #9]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #9]
|
|
ldr r1, _080623E8
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _080623EC
|
|
str r1, [r0]
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080623C0: .4byte 0x02023E88
|
|
_080623C4: .4byte 0x02023D08
|
|
_080623C8: .4byte 0x020205AC
|
|
_080623CC: .4byte 0x080A67B5
|
|
_080623D0: .4byte 0x080623F1
|
|
_080623D4: .4byte 0x0806240D
|
|
_080623D8: .4byte 0x03005B60
|
|
_080623DC: .4byte 0x02024174
|
|
_080623E0: .4byte 0x02024158
|
|
_080623E4: .4byte 0x0807352D
|
|
_080623E8: .4byte 0x03005AC0
|
|
_080623EC: .4byte 0x0805ED7D
|
|
thumb_func_end OpponentHandleIntroTrainerBallThrow
|
|
|
|
thumb_func_start sub_080623F0
|
|
sub_080623F0: @ 0x080623F0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrh r0, [r4, #6]
|
|
bl FreeTrainerFrontPicPalette
|
|
adds r0, r4, #0
|
|
bl FreeSpriteOamMatrix
|
|
adds r0, r4, #0
|
|
bl DestroySprite
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_080623F0
|
|
|
|
thumb_func_start OpponentHandleDrawPartyStatusSummary
|
|
OpponentHandleDrawPartyStatusSummary: @ 0x0806240C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov r8, r0
|
|
ldr r7, _08062470
|
|
ldrb r0, [r7]
|
|
mov sb, r0
|
|
ldr r1, _08062474
|
|
mov r2, r8
|
|
lsls r0, r2, #2
|
|
add r0, r8
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0, #8]
|
|
strb r0, [r7]
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08062450
|
|
ldr r0, _08062478
|
|
ldr r1, [r0]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08062450
|
|
movs r0, #0x80
|
|
lsls r0, r0, #8
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _08062484
|
|
_08062450:
|
|
ldr r0, _0806247C
|
|
ldrb r1, [r7]
|
|
lsls r2, r1, #9
|
|
adds r0, #1
|
|
adds r2, r2, r0
|
|
ldr r0, _08062480
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
strb r0, [r2]
|
|
ldrb r0, [r7]
|
|
movs r1, #0
|
|
bl sub_08060FC8
|
|
b _080624C4
|
|
.align 2, 0
|
|
_08062470: .4byte 0x02023D08
|
|
_08062474: .4byte 0x03005B60
|
|
_08062478: .4byte 0x02022C90
|
|
_0806247C: .4byte 0x02022D08
|
|
_08062480: .4byte 0x02023D12
|
|
_08062484:
|
|
ldr r4, _080624E8
|
|
ldrb r0, [r7]
|
|
lsls r1, r0, #9
|
|
adds r4, #1
|
|
adds r1, r1, r4
|
|
ldr r6, _080624EC
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r6
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
movs r1, #0
|
|
bl sub_08060FC8
|
|
ldrb r0, [r7]
|
|
movs r5, #2
|
|
eors r0, r5
|
|
strb r0, [r7]
|
|
ldrb r0, [r7]
|
|
lsls r1, r0, #9
|
|
adds r1, r1, r4
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r6
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
movs r1, #0
|
|
bl sub_08060FC8
|
|
ldrb r0, [r7]
|
|
eors r0, r5
|
|
strb r0, [r7]
|
|
_080624C4:
|
|
ldr r1, _080624F0
|
|
ldr r2, _080624F4
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _080624F8
|
|
str r1, [r0]
|
|
mov r0, sb
|
|
strb r0, [r2]
|
|
mov r0, r8
|
|
bl DestroyTask
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080624E8: .4byte 0x02022D08
|
|
_080624EC: .4byte 0x02023D12
|
|
_080624F0: .4byte 0x03005AC0
|
|
_080624F4: .4byte 0x02023D08
|
|
_080624F8: .4byte 0x0805F14D
|
|
thumb_func_end OpponentHandleDrawPartyStatusSummary
|
|
|
|
thumb_func_start sub_080624FC
|
|
sub_080624FC: @ 0x080624FC
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r1, _08062524
|
|
ldr r0, _08062528
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, #9
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0806252C
|
|
adds r0, r2, #0
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0806252C
|
|
bl OpponentBufferExecCompleted
|
|
b _080625F6
|
|
.align 2, 0
|
|
_08062524: .4byte 0x02022D08
|
|
_08062528: .4byte 0x02023D08
|
|
_0806252C:
|
|
ldr r4, _08062584
|
|
ldr r0, [r4]
|
|
ldr r3, _08062588
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, #1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r1, _0806258C
|
|
ldrb r2, [r3]
|
|
lsls r0, r2, #9
|
|
adds r1, #2
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
adds r7, r3, #0
|
|
cmp r0, #0
|
|
beq _08062598
|
|
ldr r0, [r4]
|
|
ldr r1, [r0, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r3, r0, r1
|
|
ldrb r2, [r3, #1]
|
|
lsls r1, r2, #0x1b
|
|
lsrs r0, r1, #0x1c
|
|
cmp r0, #1
|
|
bhi _08062590
|
|
adds r0, #1
|
|
movs r1, #0xf
|
|
ands r0, r1
|
|
lsls r0, r0, #1
|
|
movs r1, #0x1f
|
|
rsbs r1, r1, #0
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, #1]
|
|
b _080625F6
|
|
.align 2, 0
|
|
_08062584: .4byte 0x02024174
|
|
_08062588: .4byte 0x02023D08
|
|
_0806258C: .4byte 0x02022D08
|
|
_08062590:
|
|
movs r0, #0x1f
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r3, #1]
|
|
_08062598:
|
|
adds r5, r7, #0
|
|
ldrb r0, [r5]
|
|
lsls r3, r0, #9
|
|
ldr r4, _080625FC
|
|
adds r1, r3, r4
|
|
subs r2, r4, #3
|
|
adds r2, r3, r2
|
|
ldrb r2, [r2]
|
|
subs r4, #2
|
|
adds r3, r3, r4
|
|
ldrb r3, [r3]
|
|
bl CreatePartyStatusSummarySprites
|
|
ldr r2, _08062600
|
|
ldrb r1, [r5]
|
|
adds r1, r1, r2
|
|
movs r3, #0
|
|
strb r0, [r1]
|
|
ldr r6, _08062604
|
|
ldr r0, [r6]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
strb r3, [r0, #5]
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, #9
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _080625EA
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
movs r1, #0x5d
|
|
strb r1, [r0, #5]
|
|
_080625EA:
|
|
ldr r0, _08062608
|
|
ldrb r1, [r7]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, _0806260C
|
|
str r0, [r1]
|
|
_080625F6:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080625FC: .4byte 0x02022D0C
|
|
_08062600: .4byte 0x02024158
|
|
_08062604: .4byte 0x02024174
|
|
_08062608: .4byte 0x03005AC0
|
|
_0806260C: .4byte 0x08062611
|
|
thumb_func_end sub_080624FC
|
|
|
|
thumb_func_start sub_08062610
|
|
sub_08062610: @ 0x08062610
|
|
push {r4, lr}
|
|
ldr r4, _08062650
|
|
ldr r0, [r4]
|
|
ldr r3, _08062654
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #5]
|
|
adds r2, r1, #1
|
|
strb r2, [r0, #5]
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
cmp r1, #0x5c
|
|
bls _08062648
|
|
ldr r0, [r4]
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #0
|
|
strb r1, [r0, #5]
|
|
bl OpponentBufferExecCompleted
|
|
_08062648:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062650: .4byte 0x02024174
|
|
_08062654: .4byte 0x02023D08
|
|
thumb_func_end sub_08062610
|
|
|
|
thumb_func_start sub_08062658
|
|
sub_08062658: @ 0x08062658
|
|
push {lr}
|
|
ldr r0, _08062694
|
|
ldr r1, [r0]
|
|
ldr r0, _08062698
|
|
ldrb r3, [r0]
|
|
ldr r1, [r1, #4]
|
|
lsls r0, r3, #1
|
|
adds r0, r0, r3
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806268A
|
|
ldr r2, _0806269C
|
|
ldr r0, _080626A0
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r2
|
|
ldr r1, _080626A4
|
|
str r1, [r0]
|
|
_0806268A:
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062694: .4byte 0x02024174
|
|
_08062698: .4byte 0x02023D08
|
|
_0806269C: .4byte 0x03005B60
|
|
_080626A0: .4byte 0x02024158
|
|
_080626A4: .4byte 0x0807352D
|
|
thumb_func_end sub_08062658
|
|
|
|
thumb_func_start sub_080626A8
|
|
sub_080626A8: @ 0x080626A8
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end sub_080626A8
|
|
|
|
thumb_func_start OpponentHandleSpriteInvisibility
|
|
OpponentHandleSpriteInvisibility: @ 0x080626B4
|
|
push {r4, lr}
|
|
ldr r4, _08062704
|
|
ldrb r0, [r4]
|
|
bl IsBattlerSpritePresent
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _080626FA
|
|
ldr r3, _08062708
|
|
ldr r0, _0806270C
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, #4
|
|
adds r2, r2, r0
|
|
lsls r2, r2, #2
|
|
adds r2, r2, r3
|
|
ldr r0, _08062710
|
|
lsls r1, r1, #9
|
|
adds r0, #1
|
|
adds r1, r1, r0
|
|
adds r2, #0x3e
|
|
movs r0, #1
|
|
ldrb r1, [r1]
|
|
ands r1, r0
|
|
lsls r1, r1, #2
|
|
ldrb r3, [r2]
|
|
movs r0, #5
|
|
rsbs r0, r0, #0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r4]
|
|
bl CopyBattleSpriteInvisibility
|
|
_080626FA:
|
|
bl OpponentBufferExecCompleted
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062704: .4byte 0x02023D08
|
|
_08062708: .4byte 0x020205AC
|
|
_0806270C: .4byte 0x02023E88
|
|
_08062710: .4byte 0x02022D08
|
|
thumb_func_end OpponentHandleSpriteInvisibility
|
|
|
|
thumb_func_start OpponentHandleBattleAnimation
|
|
OpponentHandleBattleAnimation: @ 0x08062714
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #4
|
|
ldr r6, _08062758
|
|
ldrb r0, [r6]
|
|
bl mplay_80342A4
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0806276C
|
|
ldr r5, _0806275C
|
|
ldrb r2, [r6]
|
|
lsls r1, r2, #9
|
|
adds r0, r5, #1
|
|
adds r0, r1, r0
|
|
ldrb r3, [r0]
|
|
adds r0, r5, #2
|
|
adds r0, r1, r0
|
|
ldrb r4, [r0]
|
|
adds r5, #3
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #8
|
|
orrs r4, r0
|
|
str r4, [sp]
|
|
adds r0, r2, #0
|
|
adds r1, r2, #0
|
|
bl TryHandleLaunchBattleTableAnimation
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08062760
|
|
bl OpponentBufferExecCompleted
|
|
b _0806276C
|
|
.align 2, 0
|
|
_08062758: .4byte 0x02023D08
|
|
_0806275C: .4byte 0x02022D08
|
|
_08062760:
|
|
ldr r0, _08062774
|
|
ldrb r1, [r6]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, _08062778
|
|
str r0, [r1]
|
|
_0806276C:
|
|
add sp, #4
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062774: .4byte 0x03005AC0
|
|
_08062778: .4byte 0x0805FAD5
|
|
thumb_func_end OpponentHandleBattleAnimation
|
|
|
|
thumb_func_start sub_0806277C
|
|
sub_0806277C: @ 0x0806277C
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end sub_0806277C
|
|
|
|
thumb_func_start sub_08062788
|
|
sub_08062788: @ 0x08062788
|
|
push {lr}
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end sub_08062788
|
|
|
|
thumb_func_start OpponentHandleCmd55
|
|
OpponentHandleCmd55: @ 0x08062794
|
|
push {lr}
|
|
ldr r0, _080627C8
|
|
ldr r0, [r0]
|
|
movs r1, #6
|
|
ands r0, r1
|
|
cmp r0, #2
|
|
bne _080627BE
|
|
ldr r2, _080627CC
|
|
ldr r0, _080627D0
|
|
adds r3, r2, r0
|
|
ldrb r1, [r3]
|
|
movs r0, #3
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
ldr r0, _080627D4
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
ldr r0, [r2, #8]
|
|
bl SetMainCallback2
|
|
_080627BE:
|
|
bl OpponentBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080627C8: .4byte 0x02022C90
|
|
_080627CC: .4byte 0x03002360
|
|
_080627D0: .4byte 0x00000439
|
|
_080627D4: .4byte 0x03005A60
|
|
thumb_func_end OpponentHandleCmd55
|
|
|
|
thumb_func_start sub_080627D8
|
|
sub_080627D8: @ 0x080627D8
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end sub_080627D8
|
|
|