mirror of
https://github.com/pret/pokeemerald-jp.git
synced 2026-09-29 22:10:15 -04:00
6917 lines
124 KiB
ArmAsm
6917 lines
124 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
.text
|
|
.syntax unified
|
|
|
|
thumb_func_start PlayerPartnerCmdEnd
|
|
PlayerPartnerCmdEnd: @ 0x081BAA8C
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerCmdEnd
|
|
|
|
thumb_func_start SetControllerToPlayerPartner
|
|
SetControllerToPlayerPartner: @ 0x081BAA90
|
|
ldr r1, _081BAAA0
|
|
ldr r0, _081BAAA4
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BAAA8
|
|
str r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_081BAAA0: .4byte 0x03005AC0
|
|
_081BAAA4: .4byte 0x02023D08
|
|
_081BAAA8: .4byte 0x081BAAAD
|
|
thumb_func_end SetControllerToPlayerPartner
|
|
|
|
thumb_func_start PlayerPartnerBufferRunCommand
|
|
PlayerPartnerBufferRunCommand: @ 0x081BAAAC
|
|
push {lr}
|
|
ldr r2, _081BAAE0
|
|
ldr r1, _081BAAE4
|
|
ldr r0, _081BAAE8
|
|
ldrb r3, [r0]
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r2]
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _081BAAF8
|
|
ldr r0, _081BAAEC
|
|
lsls r1, r3, #9
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, #0x38
|
|
bhi _081BAAF4
|
|
ldr r0, _081BAAF0
|
|
ldrb r1, [r1]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, [r1]
|
|
bl _call_via_r0
|
|
b _081BAAF8
|
|
.align 2, 0
|
|
_081BAAE0: .4byte 0x02023D0C
|
|
_081BAAE4: .4byte 0x082FACB4
|
|
_081BAAE8: .4byte 0x02023D08
|
|
_081BAAEC: .4byte 0x02022D08
|
|
_081BAAF0: .4byte 0x085E732C
|
|
_081BAAF4:
|
|
bl PlayerPartnerBufferExecCompleted
|
|
_081BAAF8:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerPartnerBufferRunCommand
|
|
|
|
thumb_func_start CompleteOnBattlerSpriteCallbackDummy
|
|
CompleteOnBattlerSpriteCallbackDummy: @ 0x081BAAFC
|
|
push {lr}
|
|
ldr r2, _081BAB24
|
|
ldr r1, _081BAB28
|
|
ldr r0, _081BAB2C
|
|
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, _081BAB30
|
|
cmp r1, r0
|
|
bne _081BAB20
|
|
bl PlayerPartnerBufferExecCompleted
|
|
_081BAB20:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BAB24: .4byte 0x020205AC
|
|
_081BAB28: .4byte 0x02023E88
|
|
_081BAB2C: .4byte 0x02023D08
|
|
_081BAB30: .4byte 0x08007141
|
|
thumb_func_end CompleteOnBattlerSpriteCallbackDummy
|
|
|
|
thumb_func_start sub_081BAB34
|
|
sub_081BAB34: @ 0x081BAB34
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _081BAB8C
|
|
ldr r5, _081BAB90
|
|
ldr r4, _081BAB94
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r6, #0
|
|
adds r1, #0x1c
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, _081BAB98
|
|
cmp r1, r0
|
|
bne _081BAB84
|
|
movs r0, #0
|
|
bl sub_0805DBFC
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
bl FreeSpriteOamMatrix
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
bl DestroySprite
|
|
bl PlayerPartnerBufferExecCompleted
|
|
_081BAB84:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BAB8C: .4byte 0x020205AC
|
|
_081BAB90: .4byte 0x02023E88
|
|
_081BAB94: .4byte 0x02023D08
|
|
_081BAB98: .4byte 0x08007141
|
|
thumb_func_end sub_081BAB34
|
|
|
|
thumb_func_start sub_081BAB9C
|
|
sub_081BAB9C: @ 0x081BAB9C
|
|
push {r4, lr}
|
|
ldr r4, _081BABDC
|
|
ldr r1, [r4]
|
|
ldr r3, _081BABE0
|
|
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 _081BABD4
|
|
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 PlayerPartnerBufferExecCompleted
|
|
_081BABD4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BABDC: .4byte 0x02024174
|
|
_081BABE0: .4byte 0x02023D08
|
|
thumb_func_end sub_081BAB9C
|
|
|
|
thumb_func_start sub_081BABE4
|
|
sub_081BABE4: @ 0x081BABE4
|
|
push {r4, r5, r6, lr}
|
|
movs r6, #0
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _081BAC08
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _081BAC3C
|
|
ldr r0, _081BAC28
|
|
ldr r0, [r0]
|
|
movs r1, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _081BAC3C
|
|
_081BAC08:
|
|
ldr r2, _081BAC2C
|
|
ldr r1, _081BAC30
|
|
ldr r0, _081BAC34
|
|
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, _081BAC38
|
|
cmp r1, r0
|
|
bne _081BAC74
|
|
b _081BAC72
|
|
.align 2, 0
|
|
_081BAC28: .4byte 0x02022C90
|
|
_081BAC2C: .4byte 0x020205AC
|
|
_081BAC30: .4byte 0x03005AD0
|
|
_081BAC34: .4byte 0x02023D08
|
|
_081BAC38: .4byte 0x08007141
|
|
_081BAC3C:
|
|
ldr r2, _081BACAC
|
|
ldr r5, _081BACB0
|
|
ldr r0, _081BACB4
|
|
ldrb r3, [r0]
|
|
adds r0, r3, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r4, r2, #0
|
|
adds r4, #0x1c
|
|
adds r0, r0, r4
|
|
ldr r2, [r0]
|
|
ldr r0, _081BACB8
|
|
cmp r2, r0
|
|
bne _081BAC74
|
|
movs r0, #2
|
|
eors r3, r0
|
|
adds r0, r3, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldr r0, [r0]
|
|
cmp r0, r2
|
|
bne _081BAC74
|
|
_081BAC72:
|
|
movs r6, #1
|
|
_081BAC74:
|
|
bl IsCryPlayingOrClearCrySongs
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _081BAC80
|
|
movs r6, #0
|
|
_081BAC80:
|
|
cmp r6, #0
|
|
beq _081BACA6
|
|
ldr r0, _081BACBC
|
|
ldr r0, [r0]
|
|
ldr r3, _081BACB4
|
|
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, _081BACC0
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BACC4
|
|
str r1, [r0]
|
|
_081BACA6:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BACAC: .4byte 0x020205AC
|
|
_081BACB0: .4byte 0x03005AD0
|
|
_081BACB4: .4byte 0x02023D08
|
|
_081BACB8: .4byte 0x08007141
|
|
_081BACBC: .4byte 0x02024174
|
|
_081BACC0: .4byte 0x03005AC0
|
|
_081BACC4: .4byte 0x081BAB9D
|
|
thumb_func_end sub_081BABE4
|
|
|
|
thumb_func_start sub_081BACC8
|
|
sub_081BACC8: @ 0x081BACC8
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
ldr r0, _081BAE40
|
|
mov ip, r0
|
|
ldr r0, [r0]
|
|
ldr r7, _081BAE44
|
|
ldrb r2, [r7]
|
|
ldr r3, [r0, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r4, r0, r3
|
|
ldrb r1, [r4]
|
|
movs r5, #8
|
|
adds r0, r5, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _081BACF4
|
|
b _081BAE32
|
|
_081BACF4:
|
|
movs r1, #2
|
|
mov r8, r1
|
|
adds r1, r2, #0
|
|
mov r0, r8
|
|
eors r1, r0
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldrb r1, [r0]
|
|
adds r0, r5, #0
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
cmp r6, #0
|
|
beq _081BAD16
|
|
b _081BAE32
|
|
_081BAD16:
|
|
ldr r1, _081BAE48
|
|
mov sl, r1
|
|
ldr r0, _081BAE4C
|
|
mov sb, r0
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
mov r5, sl
|
|
adds r5, #0x1c
|
|
adds r0, r0, r5
|
|
ldr r3, [r0]
|
|
ldr r0, _081BAE50
|
|
cmp r3, r0
|
|
bne _081BAE32
|
|
ldr r0, _081BAE54
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldr r0, [r0]
|
|
cmp r0, r3
|
|
bne _081BAE32
|
|
ldrb r0, [r4, #9]
|
|
adds r0, #1
|
|
strb r0, [r4, #9]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
beq _081BAE32
|
|
mov r1, ip
|
|
ldr r0, [r1]
|
|
ldrb r1, [r7]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
strb r6, [r0, #9]
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _081BADD0
|
|
ldr r0, _081BAE58
|
|
ldr r0, [r0]
|
|
movs r1, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _081BADD0
|
|
ldrb r0, [r7]
|
|
mov r1, r8
|
|
eors r0, r1
|
|
add r0, sb
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
add r0, sl
|
|
bl DestroySprite
|
|
ldr r4, _081BAE5C
|
|
ldrb r0, [r7]
|
|
mov r1, r8
|
|
eors r1, r0
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
ldr r2, _081BAE60
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, #0x64
|
|
muls r1, r2, r1
|
|
ldr r2, _081BAE64
|
|
adds r1, r1, r2
|
|
movs r2, #0
|
|
bl UpdateHealthboxAttribute
|
|
ldrb r0, [r7]
|
|
mov r1, r8
|
|
eors r0, r1
|
|
bl sub_08076320
|
|
ldrb r0, [r7]
|
|
mov r1, r8
|
|
eors r0, r1
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteVisible
|
|
_081BADD0:
|
|
ldr r1, _081BAE4C
|
|
ldr r4, _081BAE44
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r1, _081BAE48
|
|
adds r0, r0, r1
|
|
bl DestroySprite
|
|
ldr r5, _081BAE5C
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
ldr r2, _081BAE60
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, #0x64
|
|
muls r1, r2, r1
|
|
ldr r2, _081BAE64
|
|
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
|
|
ldr r0, _081BAE40
|
|
ldr r0, [r0]
|
|
ldr r2, [r0, #8]
|
|
ldrb r1, [r2, #9]
|
|
movs r0, #2
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r2, #9]
|
|
ldr r1, _081BAE68
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BAE6C
|
|
str r1, [r0]
|
|
_081BAE32:
|
|
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
|
|
_081BAE40: .4byte 0x02024174
|
|
_081BAE44: .4byte 0x02023D08
|
|
_081BAE48: .4byte 0x020205AC
|
|
_081BAE4C: .4byte 0x03005ADC
|
|
_081BAE50: .4byte 0x08007141
|
|
_081BAE54: .4byte 0x02023E88
|
|
_081BAE58: .4byte 0x02022C90
|
|
_081BAE5C: .4byte 0x03005AD0
|
|
_081BAE60: .4byte 0x02023D12
|
|
_081BAE64: .4byte 0x02024190
|
|
_081BAE68: .4byte 0x03005AC0
|
|
_081BAE6C: .4byte 0x081BABE5
|
|
thumb_func_end sub_081BACC8
|
|
|
|
thumb_func_start sub_081BAE70
|
|
sub_081BAE70: @ 0x081BAE70
|
|
push {lr}
|
|
ldr r2, _081BAEA4
|
|
ldr r1, _081BAEA8
|
|
ldr r0, _081BAEAC
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r0, r2
|
|
adds r0, r1, #0
|
|
adds r0, #0x3f
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1b
|
|
cmp r0, #0
|
|
bge _081BAE9E
|
|
movs r2, #0x24
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, #0
|
|
bne _081BAE9E
|
|
bl PlayerPartnerBufferExecCompleted
|
|
_081BAE9E:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BAEA4: .4byte 0x020205AC
|
|
_081BAEA8: .4byte 0x02023E88
|
|
_081BAEAC: .4byte 0x02023D08
|
|
thumb_func_end sub_081BAE70
|
|
|
|
thumb_func_start CompleteOnHealthbarDone
|
|
CompleteOnHealthbarDone: @ 0x081BAEB0
|
|
push {r4, r5, r6, lr}
|
|
ldr r5, _081BAEF0
|
|
ldrb r0, [r5]
|
|
ldr r6, _081BAEF4
|
|
adds r1, r0, r6
|
|
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, [r5]
|
|
adds r0, r0, r6
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteVisible
|
|
lsls r4, r4, #0x10
|
|
asrs r1, r4, #0x10
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
cmp r1, r0
|
|
beq _081BAEF8
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r6
|
|
ldrb r0, [r0]
|
|
movs r2, #0
|
|
bl sub_080726F4
|
|
b _081BAF12
|
|
.align 2, 0
|
|
_081BAEF0: .4byte 0x02023D08
|
|
_081BAEF4: .4byte 0x03005AD0
|
|
_081BAEF8:
|
|
ldr r2, _081BAF18
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r2, r0
|
|
ldr r2, _081BAF1C
|
|
adds r0, r0, r2
|
|
bl HandleLowHpMusicChange
|
|
bl PlayerPartnerBufferExecCompleted
|
|
_081BAF12:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BAF18: .4byte 0x02023D12
|
|
_081BAF1C: .4byte 0x02024190
|
|
thumb_func_end CompleteOnHealthbarDone
|
|
|
|
thumb_func_start CompleteOnInactiveTextPrinter
|
|
CompleteOnInactiveTextPrinter: @ 0x081BAF20
|
|
push {lr}
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _081BAF32
|
|
bl PlayerPartnerBufferExecCompleted
|
|
_081BAF32:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end CompleteOnInactiveTextPrinter
|
|
|
|
thumb_func_start Task_GiveExpToMon
|
|
Task_GiveExpToMon: @ 0x081BAF38
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x10
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov sb, r0
|
|
ldr r1, _081BB038
|
|
lsls r0, r0, #2
|
|
add r0, sb
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
mov r8, r0
|
|
ldrb r0, [r0, #8]
|
|
mov sl, r0
|
|
mov r1, r8
|
|
ldrb r7, [r1, #0xc]
|
|
str r7, [sp, #8]
|
|
ldrh r2, [r1, #0xa]
|
|
str r2, [sp, #0xc]
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
beq _081BAF7E
|
|
ldr r1, _081BB03C
|
|
lsls r0, r7, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
cmp sl, r0
|
|
bne _081BAF7E
|
|
b _081BB094
|
|
_081BAF7E:
|
|
movs r0, #0x64
|
|
mov r1, sl
|
|
muls r1, r0, r1
|
|
ldr r0, _081BB040
|
|
adds r6, r1, r0
|
|
adds r0, r6, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
adds r5, r0, #0
|
|
lsls r5, r5, #0x10
|
|
lsrs r5, r5, #0x10
|
|
adds r0, r6, #0
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
adds r0, r6, #0
|
|
movs r1, #0x19
|
|
bl GetMonData
|
|
str r0, [sp, #4]
|
|
ldr r3, _081BB044
|
|
adds r4, #1
|
|
lsls r4, r4, #2
|
|
ldr r2, _081BB048
|
|
lsls r1, r5, #3
|
|
subs r1, r1, r5
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldrb r2, [r1, #0x13]
|
|
movs r1, #0xca
|
|
lsls r1, r1, #1
|
|
muls r1, r2, r1
|
|
adds r4, r4, r1
|
|
adds r4, r4, r3
|
|
ldr r2, [r4]
|
|
str r2, [sp]
|
|
ldr r3, [sp, #0xc]
|
|
lsls r1, r3, #0x10
|
|
asrs r1, r1, #0x10
|
|
adds r0, r0, r1
|
|
cmp r0, r2
|
|
blo _081BB06C
|
|
adds r0, r6, #0
|
|
movs r1, #0x19
|
|
mov r2, sp
|
|
bl SetMonData
|
|
adds r0, r6, #0
|
|
bl CalculateMonStats
|
|
ldr r2, [sp]
|
|
add r0, sp, #4
|
|
ldrh r0, [r0]
|
|
subs r2, r2, r0
|
|
ldr r0, [sp, #0xc]
|
|
subs r2, r0, r2
|
|
ldr r4, _081BB04C
|
|
ldrb r5, [r4]
|
|
strb r7, [r4]
|
|
lsls r2, r2, #0x10
|
|
lsrs r2, r2, #0x10
|
|
movs r0, #1
|
|
movs r1, #0xb
|
|
bl BtlController_EmitTwoReturnValues
|
|
strb r5, [r4]
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bne _081BB054
|
|
ldr r2, _081BB03C
|
|
lsls r0, r7, #1
|
|
adds r0, r0, r2
|
|
mov r1, sl
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
beq _081BB032
|
|
movs r0, #2
|
|
eors r7, r0
|
|
lsls r0, r7, #1
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _081BB054
|
|
_081BB032:
|
|
ldr r0, _081BB050
|
|
b _081BB096
|
|
.align 2, 0
|
|
_081BB038: .4byte 0x03005B60
|
|
_081BB03C: .4byte 0x02023D12
|
|
_081BB040: .4byte 0x02024190
|
|
_081BB044: .4byte 0x082F00B4
|
|
_081BB048: .4byte 0x082F0D54
|
|
_081BB04C: .4byte 0x02023D08
|
|
_081BB050: .4byte 0x081BB2C5
|
|
_081BB054:
|
|
ldr r0, _081BB064
|
|
mov r2, sb
|
|
lsls r1, r2, #2
|
|
add r1, sb
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldr r0, _081BB068
|
|
b _081BB098
|
|
.align 2, 0
|
|
_081BB064: .4byte 0x03005B60
|
|
_081BB068: .4byte 0x081BB3DD
|
|
_081BB06C:
|
|
str r0, [sp, #4]
|
|
add r2, sp, #4
|
|
adds r0, r6, #0
|
|
movs r1, #0x19
|
|
bl SetMonData
|
|
ldr r1, _081BB08C
|
|
ldr r3, [sp, #8]
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BB090
|
|
str r1, [r0]
|
|
mov r0, sb
|
|
bl DestroyTask
|
|
b _081BB09A
|
|
.align 2, 0
|
|
_081BB08C: .4byte 0x03005AC0
|
|
_081BB090: .4byte 0x081BAF21
|
|
_081BB094:
|
|
ldr r0, _081BB0AC
|
|
_081BB096:
|
|
mov r1, r8
|
|
_081BB098:
|
|
str r0, [r1]
|
|
_081BB09A:
|
|
add sp, #0x10
|
|
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
|
|
_081BB0AC: .4byte 0x081BB0B1
|
|
thumb_func_end Task_GiveExpToMon
|
|
|
|
thumb_func_start Task_PrepareToGiveExpWithExpBar
|
|
Task_PrepareToGiveExpWithExpBar: @ 0x081BB0B0
|
|
push {r4, r5, r6, lr}
|
|
mov r6, sl
|
|
mov r5, sb
|
|
mov r4, r8
|
|
push {r4, r5, r6}
|
|
sub sp, #4
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r1, _081BB168
|
|
lsls r2, r0, #2
|
|
mov r8, r2
|
|
add r8, r0
|
|
mov r0, r8
|
|
lsls r0, r0, #3
|
|
mov r8, r0
|
|
add r8, r1
|
|
mov r2, r8
|
|
ldrb r1, [r2, #8]
|
|
movs r0, #0xa
|
|
ldrsh r2, [r2, r0]
|
|
mov sb, r2
|
|
mov r2, r8
|
|
ldrb r2, [r2, #0xc]
|
|
mov sl, r2
|
|
movs r0, #0x64
|
|
adds r6, r1, #0
|
|
muls r6, r0, r6
|
|
ldr r0, _081BB16C
|
|
adds r6, r6, r0
|
|
adds r0, r6, #0
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
adds r0, r6, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
adds r5, r0, #0
|
|
lsls r5, r5, #0x10
|
|
lsrs r5, r5, #0x10
|
|
adds r0, r6, #0
|
|
movs r1, #0x19
|
|
bl GetMonData
|
|
adds r3, r0, #0
|
|
ldr r6, _081BB170
|
|
lsls r1, r4, #2
|
|
ldr r2, _081BB174
|
|
lsls r0, r5, #3
|
|
subs r0, r0, r5
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r2, [r0, #0x13]
|
|
movs r0, #0xca
|
|
lsls r0, r0, #1
|
|
muls r0, r2, r0
|
|
adds r1, r1, r0
|
|
adds r1, r1, r6
|
|
ldr r1, [r1]
|
|
subs r3, r3, r1
|
|
adds r4, #1
|
|
lsls r4, r4, #2
|
|
adds r4, r4, r0
|
|
adds r4, r4, r6
|
|
ldr r2, [r4]
|
|
subs r2, r2, r1
|
|
ldr r0, _081BB178
|
|
add r0, sl
|
|
ldrb r1, [r0]
|
|
mov r0, sb
|
|
rsbs r0, r0, #0
|
|
str r0, [sp]
|
|
mov r0, sl
|
|
bl SetBattleBarStruct
|
|
movs r0, #0x21
|
|
bl PlaySE
|
|
ldr r0, _081BB17C
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
add sp, #4
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BB168: .4byte 0x03005B60
|
|
_081BB16C: .4byte 0x02024190
|
|
_081BB170: .4byte 0x082F00B4
|
|
_081BB174: .4byte 0x082F0D54
|
|
_081BB178: .4byte 0x03005AD0
|
|
_081BB17C: .4byte 0x081BB181
|
|
thumb_func_end Task_PrepareToGiveExpWithExpBar
|
|
|
|
thumb_func_start sub_081BB180
|
|
sub_081BB180: @ 0x081BB180
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #8
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov r8, r0
|
|
ldr r1, _081BB1AC
|
|
lsls r0, r0, #2
|
|
add r0, r8
|
|
lsls r0, r0, #3
|
|
adds r6, r0, r1
|
|
ldrh r1, [r6, #0x1c]
|
|
movs r2, #0x1c
|
|
ldrsh r0, [r6, r2]
|
|
cmp r0, #0xc
|
|
bgt _081BB1B0
|
|
adds r0, r1, #1
|
|
strh r0, [r6, #0x1c]
|
|
b _081BB2AC
|
|
.align 2, 0
|
|
_081BB1AC: .4byte 0x03005B60
|
|
_081BB1B0:
|
|
ldrb r0, [r6, #8]
|
|
mov sb, r0
|
|
ldrh r2, [r6, #0xa]
|
|
mov sl, r2
|
|
ldrb r7, [r6, #0xc]
|
|
ldr r5, _081BB278
|
|
adds r5, r7, r5
|
|
ldrb r1, [r5]
|
|
adds r0, r7, #0
|
|
movs r2, #1
|
|
movs r3, #0
|
|
bl MoveBattleBar
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x10
|
|
lsrs r4, r4, #0x10
|
|
ldrb r0, [r5]
|
|
bl SetHealthboxSpriteVisible
|
|
lsls r4, r4, #0x10
|
|
asrs r4, r4, #0x10
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
cmp r4, r0
|
|
bne _081BB2AC
|
|
movs r0, #0x21
|
|
bl m4aSongNumStop
|
|
movs r0, #0x64
|
|
mov r1, sb
|
|
muls r1, r0, r1
|
|
ldr r0, _081BB27C
|
|
adds r5, r1, r0
|
|
adds r0, r5, #0
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
adds r0, r5, #0
|
|
movs r1, #0x19
|
|
bl GetMonData
|
|
str r0, [sp, #4]
|
|
adds r0, r5, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
ldr r3, _081BB280
|
|
adds r4, #1
|
|
lsls r4, r4, #2
|
|
ldr r2, _081BB284
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1, #0x13]
|
|
movs r0, #0xca
|
|
lsls r0, r0, #1
|
|
muls r0, r1, r0
|
|
adds r4, r4, r0
|
|
adds r4, r4, r3
|
|
ldr r1, [r4]
|
|
str r1, [sp]
|
|
mov r2, sl
|
|
lsls r0, r2, #0x10
|
|
asrs r4, r0, #0x10
|
|
ldr r0, [sp, #4]
|
|
adds r0, r0, r4
|
|
cmp r0, r1
|
|
blt _081BB290
|
|
adds r0, r5, #0
|
|
movs r1, #0x19
|
|
mov r2, sp
|
|
bl SetMonData
|
|
adds r0, r5, #0
|
|
bl CalculateMonStats
|
|
ldr r2, [sp]
|
|
add r0, sp, #4
|
|
ldrh r0, [r0]
|
|
subs r2, r2, r0
|
|
subs r2, r4, r2
|
|
ldr r4, _081BB288
|
|
ldrb r5, [r4]
|
|
strb r7, [r4]
|
|
lsls r2, r2, #0x10
|
|
lsrs r2, r2, #0x10
|
|
movs r0, #1
|
|
movs r1, #0xb
|
|
bl BtlController_EmitTwoReturnValues
|
|
strb r5, [r4]
|
|
ldr r0, _081BB28C
|
|
str r0, [r6]
|
|
b _081BB2AC
|
|
.align 2, 0
|
|
_081BB278: .4byte 0x03005AD0
|
|
_081BB27C: .4byte 0x02024190
|
|
_081BB280: .4byte 0x082F00B4
|
|
_081BB284: .4byte 0x082F0D54
|
|
_081BB288: .4byte 0x02023D08
|
|
_081BB28C: .4byte 0x081BB2C5
|
|
_081BB290:
|
|
str r0, [sp, #4]
|
|
add r2, sp, #4
|
|
adds r0, r5, #0
|
|
movs r1, #0x19
|
|
bl SetMonData
|
|
ldr r1, _081BB2BC
|
|
lsls r0, r7, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BB2C0
|
|
str r1, [r0]
|
|
mov r0, r8
|
|
bl DestroyTask
|
|
_081BB2AC:
|
|
add sp, #8
|
|
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
|
|
_081BB2BC: .4byte 0x03005AC0
|
|
_081BB2C0: .4byte 0x081BAF21
|
|
thumb_func_end sub_081BB180
|
|
|
|
thumb_func_start sub_081BB2C4
|
|
sub_081BB2C4: @ 0x081BB2C4
|
|
push {r4, r5, r6, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
ldr r1, _081BB318
|
|
lsls r0, r5, #2
|
|
adds r0, r0, r5
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
ldrb r4, [r0, #0xc]
|
|
ldrb r6, [r0, #8]
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bne _081BB2F8
|
|
ldr r1, _081BB31C
|
|
movs r0, #2
|
|
adds r2, r4, #0
|
|
eors r2, r0
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r6, r0
|
|
bne _081BB2F8
|
|
adds r4, r2, #0
|
|
_081BB2F8:
|
|
adds r0, r4, #0
|
|
adds r1, r4, #0
|
|
adds r2, r4, #0
|
|
movs r3, #0
|
|
bl InitAndLaunchSpecialAnimation
|
|
ldr r0, _081BB318
|
|
lsls r1, r5, #2
|
|
adds r1, r1, r5
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldr r0, _081BB320
|
|
str r0, [r1]
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BB318: .4byte 0x03005B60
|
|
_081BB31C: .4byte 0x02023D12
|
|
_081BB320: .4byte 0x081BB325
|
|
thumb_func_end sub_081BB2C4
|
|
|
|
thumb_func_start sub_081BB324
|
|
sub_081BB324: @ 0x081BB324
|
|
push {r4, r5, r6, r7, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
ldr r1, _081BB390
|
|
lsls r0, r6, #2
|
|
adds r0, r0, r6
|
|
lsls r0, r0, #3
|
|
adds r2, r0, r1
|
|
ldrb r5, [r2, #0xc]
|
|
ldr r0, _081BB394
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #4]
|
|
lsls r0, r5, #1
|
|
adds r0, r0, r5
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _081BB3C6
|
|
ldrb r4, [r2, #8]
|
|
movs r0, #0x64
|
|
adds r1, r4, #0
|
|
muls r1, r0, r1
|
|
ldr r0, _081BB398
|
|
adds r7, r1, r0
|
|
adds r0, r7, #0
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bne _081BB3A4
|
|
ldr r1, _081BB39C
|
|
movs r0, #2
|
|
adds r2, r5, #0
|
|
eors r2, r0
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
bne _081BB3A4
|
|
ldr r0, _081BB3A0
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
adds r1, r7, #0
|
|
movs r2, #0
|
|
bl UpdateHealthboxAttribute
|
|
b _081BB3B8
|
|
.align 2, 0
|
|
_081BB390: .4byte 0x03005B60
|
|
_081BB394: .4byte 0x02024174
|
|
_081BB398: .4byte 0x02024190
|
|
_081BB39C: .4byte 0x02023D12
|
|
_081BB3A0: .4byte 0x03005AD0
|
|
_081BB3A4:
|
|
ldr r0, _081BB3CC
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
movs r1, #0x64
|
|
muls r1, r4, r1
|
|
ldr r2, _081BB3D0
|
|
adds r1, r1, r2
|
|
movs r2, #0
|
|
bl UpdateHealthboxAttribute
|
|
_081BB3B8:
|
|
ldr r0, _081BB3D4
|
|
lsls r1, r6, #2
|
|
adds r1, r1, r6
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldr r0, _081BB3D8
|
|
str r0, [r1]
|
|
_081BB3C6:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BB3CC: .4byte 0x03005AD0
|
|
_081BB3D0: .4byte 0x02024190
|
|
_081BB3D4: .4byte 0x03005B60
|
|
_081BB3D8: .4byte 0x081BB3DD
|
|
thumb_func_end sub_081BB324
|
|
|
|
thumb_func_start DestroyExpTaskAndCompleteOnInactiveTextPrinter
|
|
DestroyExpTaskAndCompleteOnInactiveTextPrinter: @ 0x081BB3DC
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
lsls r5, r5, #0x18
|
|
lsrs r5, r5, #0x18
|
|
ldr r0, _081BB418
|
|
lsls r4, r5, #2
|
|
adds r4, r4, r5
|
|
lsls r4, r4, #3
|
|
adds r4, r4, r0
|
|
ldrb r1, [r4, #8]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _081BB41C
|
|
adds r0, r0, r1
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
ldrb r0, [r4, #0xc]
|
|
ldr r1, _081BB420
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BB424
|
|
str r1, [r0]
|
|
adds r0, r5, #0
|
|
bl DestroyTask
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BB418: .4byte 0x03005B60
|
|
_081BB41C: .4byte 0x02024190
|
|
_081BB420: .4byte 0x03005AC0
|
|
_081BB424: .4byte 0x081BAF21
|
|
thumb_func_end DestroyExpTaskAndCompleteOnInactiveTextPrinter
|
|
|
|
thumb_func_start sub_081BB428
|
|
sub_081BB428: @ 0x081BB428
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _081BB4AC
|
|
ldr r5, _081BB4B0
|
|
ldr r4, _081BB4B4
|
|
ldrb r2, [r4]
|
|
adds r0, r2, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
movs r3, #0x22
|
|
ldrsh r1, [r0, r3]
|
|
movs r3, #0x26
|
|
ldrsh r0, [r0, r3]
|
|
adds r1, r1, r0
|
|
cmp r1, #0xa0
|
|
ble _081BB4A4
|
|
ldr r1, _081BB4B8
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _081BB4BC
|
|
adds r0, r0, r1
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
bl sub_0805DB50
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldrb r0, [r0, #3]
|
|
lsls r0, r0, #0x1a
|
|
lsrs r0, r0, #0x1b
|
|
bl FreeOamMatrix
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
bl DestroySprite
|
|
ldr r1, _081BB4C0
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteInvisible
|
|
bl PlayerPartnerBufferExecCompleted
|
|
_081BB4A4:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BB4AC: .4byte 0x020205AC
|
|
_081BB4B0: .4byte 0x02023E88
|
|
_081BB4B4: .4byte 0x02023D08
|
|
_081BB4B8: .4byte 0x02023D12
|
|
_081BB4BC: .4byte 0x02024190
|
|
_081BB4C0: .4byte 0x03005AD0
|
|
thumb_func_end sub_081BB428
|
|
|
|
thumb_func_start sub_081BB4C4
|
|
sub_081BB4C4: @ 0x081BB4C4
|
|
push {r4, r5, r6, lr}
|
|
ldr r0, _081BB520
|
|
ldr r0, [r0]
|
|
ldr r6, _081BB524
|
|
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 _081BB518
|
|
ldr r5, _081BB528
|
|
adds r0, r2, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r4, _081BB52C
|
|
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
|
|
ldr r1, _081BB530
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteInvisible
|
|
bl PlayerPartnerBufferExecCompleted
|
|
_081BB518:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BB520: .4byte 0x02024174
|
|
_081BB524: .4byte 0x02023D08
|
|
_081BB528: .4byte 0x02023E88
|
|
_081BB52C: .4byte 0x020205AC
|
|
_081BB530: .4byte 0x03005AD0
|
|
thumb_func_end sub_081BB4C4
|
|
|
|
thumb_func_start CompleteOnInactiveTextPrinter2
|
|
CompleteOnInactiveTextPrinter2: @ 0x081BB534
|
|
push {lr}
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _081BB546
|
|
bl PlayerPartnerBufferExecCompleted
|
|
_081BB546:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end CompleteOnInactiveTextPrinter2
|
|
|
|
thumb_func_start DoHitAnimBlinkSpriteEffect
|
|
DoHitAnimBlinkSpriteEffect: @ 0x081BB54C
|
|
push {r4, lr}
|
|
ldr r1, _081BB588
|
|
ldr r0, _081BB58C
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
ldr r2, _081BB590
|
|
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 _081BB598
|
|
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, _081BB594
|
|
strb r3, [r0]
|
|
bl PlayerPartnerBufferExecCompleted
|
|
b _081BB5C2
|
|
.align 2, 0
|
|
_081BB588: .4byte 0x02023E88
|
|
_081BB58C: .4byte 0x02023D08
|
|
_081BB590: .4byte 0x020205AC
|
|
_081BB594: .4byte 0x0202415D
|
|
_081BB598:
|
|
ldrh r0, [r4, #0x30]
|
|
movs r1, #3
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _081BB5BC
|
|
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]
|
|
_081BB5BC:
|
|
ldrh r0, [r4, #0x30]
|
|
adds r0, #1
|
|
strh r0, [r4, #0x30]
|
|
_081BB5C2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end DoHitAnimBlinkSpriteEffect
|
|
|
|
thumb_func_start sub_081BB5C8
|
|
sub_081BB5C8: @ 0x081BB5C8
|
|
push {r4, lr}
|
|
ldr r2, _081BB620
|
|
ldr r0, _081BB624
|
|
ldr r4, _081BB628
|
|
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, _081BB62C
|
|
cmp r1, r0
|
|
bne _081BB61A
|
|
adds r0, r3, #0
|
|
bl CopyBattleSpriteInvisibility
|
|
ldr r0, _081BB630
|
|
ldr r0, [r0]
|
|
ldrb r2, [r4]
|
|
ldr r1, [r0]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _081BB60E
|
|
adds r0, r2, #0
|
|
adds r1, r2, #0
|
|
movs r3, #6
|
|
bl InitAndLaunchSpecialAnimation
|
|
_081BB60E:
|
|
ldr r0, _081BB634
|
|
ldrb r1, [r4]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, _081BB638
|
|
str r0, [r1]
|
|
_081BB61A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BB620: .4byte 0x020205AC
|
|
_081BB624: .4byte 0x03005AD0
|
|
_081BB628: .4byte 0x02023D08
|
|
_081BB62C: .4byte 0x08007141
|
|
_081BB630: .4byte 0x02024174
|
|
_081BB634: .4byte 0x03005AC0
|
|
_081BB638: .4byte 0x081BB63D
|
|
thumb_func_end sub_081BB5C8
|
|
|
|
thumb_func_start sub_081BB63C
|
|
sub_081BB63C: @ 0x081BB63C
|
|
push {lr}
|
|
ldr r0, _081BB67C
|
|
ldr r1, [r0]
|
|
ldr r0, _081BB680
|
|
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, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _081BB678
|
|
ldr r2, _081BB684
|
|
ldr r0, _081BB688
|
|
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, _081BB68C
|
|
cmp r1, r0
|
|
bne _081BB678
|
|
bl PlayerPartnerBufferExecCompleted
|
|
_081BB678:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BB67C: .4byte 0x02024174
|
|
_081BB680: .4byte 0x02023D08
|
|
_081BB684: .4byte 0x020205AC
|
|
_081BB688: .4byte 0x02023E88
|
|
_081BB68C: .4byte 0x08007141
|
|
thumb_func_end sub_081BB63C
|
|
|
|
thumb_func_start sub_081BB690
|
|
sub_081BB690: @ 0x081BB690
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r3, _081BB758
|
|
ldr r0, [r3]
|
|
ldr r7, _081BB75C
|
|
ldrb r1, [r7]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, r0, r2
|
|
ldrb r1, [r2, #1]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _081BB74C
|
|
ldrb r1, [r2]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, [r3]
|
|
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 r0, #2
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1, #1]
|
|
ldr r4, _081BB760
|
|
adds r0, r4, #0
|
|
bl FreeSpriteTilesByTag
|
|
adds r0, r4, #0
|
|
bl FreeSpritePaletteByTag
|
|
ldr r0, _081BB764
|
|
movs r1, #0xa
|
|
bl CreateTask
|
|
ldr r0, _081BB768
|
|
mov r8, r0
|
|
ldrb r1, [r7]
|
|
lsls r0, r1, #1
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
movs r6, #0x64
|
|
muls r0, r6, r0
|
|
ldr r5, _081BB76C
|
|
adds r0, r0, r5
|
|
bl HandleLowHpMusicChange
|
|
ldr r1, _081BB770
|
|
ldrb r0, [r7]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r1, _081BB774
|
|
adds r0, r0, r1
|
|
movs r1, #0
|
|
bl StartSpriteAnim
|
|
ldr r4, _081BB778
|
|
ldrb r1, [r7]
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
lsls r1, r1, #1
|
|
add r1, r8
|
|
ldrh r1, [r1]
|
|
muls r1, r6, r1
|
|
adds r1, r1, r5
|
|
movs r2, #0
|
|
bl UpdateHealthboxAttribute
|
|
ldrb r0, [r7]
|
|
bl sub_08076320
|
|
ldrb r0, [r7]
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteVisible
|
|
ldr r1, _081BB77C
|
|
ldrb r0, [r7]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BB780
|
|
str r1, [r0]
|
|
_081BB74C:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BB758: .4byte 0x02024174
|
|
_081BB75C: .4byte 0x02023D08
|
|
_081BB760: .4byte 0x000027F9
|
|
_081BB764: .4byte 0x08058D11
|
|
_081BB768: .4byte 0x02023D12
|
|
_081BB76C: .4byte 0x02024190
|
|
_081BB770: .4byte 0x02023E88
|
|
_081BB774: .4byte 0x020205AC
|
|
_081BB778: .4byte 0x03005AD0
|
|
_081BB77C: .4byte 0x03005AC0
|
|
_081BB780: .4byte 0x081BB5C9
|
|
thumb_func_end sub_081BB690
|
|
|
|
thumb_func_start sub_081BB784
|
|
sub_081BB784: @ 0x081BB784
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _081BB804
|
|
ldr r0, [r6]
|
|
ldr r4, _081BB808
|
|
ldrb r2, [r4]
|
|
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 _081BB7B6
|
|
ldr r0, _081BB80C
|
|
adds r0, r3, r0
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r1, r0, r1
|
|
ldr r0, _081BB810
|
|
adds r1, r1, r0
|
|
adds r0, r2, #0
|
|
bl sub_08172CD4
|
|
_081BB7B6:
|
|
ldr r5, _081BB814
|
|
ldr r0, _081BB818
|
|
ldrb r2, [r4]
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r3, r0, #2
|
|
adds r0, r5, #0
|
|
adds r0, #0x1c
|
|
adds r0, r3, r0
|
|
ldr r1, [r0]
|
|
ldr r0, _081BB81C
|
|
cmp r1, r0
|
|
bne _081BB7FC
|
|
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 _081BB7FC
|
|
adds r0, r3, r5
|
|
bl DestroySprite
|
|
ldr r1, _081BB820
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BB824
|
|
str r1, [r0]
|
|
_081BB7FC:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BB804: .4byte 0x02024174
|
|
_081BB808: .4byte 0x02023D08
|
|
_081BB80C: .4byte 0x02023D12
|
|
_081BB810: .4byte 0x02024190
|
|
_081BB814: .4byte 0x020205AC
|
|
_081BB818: .4byte 0x03005ADC
|
|
_081BB81C: .4byte 0x08007141
|
|
_081BB820: .4byte 0x03005AC0
|
|
_081BB824: .4byte 0x081BB691
|
|
thumb_func_end sub_081BB784
|
|
|
|
thumb_func_start PlayerPartnerBufferExecCompleted
|
|
PlayerPartnerBufferExecCompleted: @ 0x081BB828
|
|
push {r4, lr}
|
|
sub sp, #4
|
|
ldr r1, _081BB868
|
|
ldr r4, _081BB86C
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BB870
|
|
str r1, [r0]
|
|
ldr r0, _081BB874
|
|
ldr r0, [r0]
|
|
movs r1, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _081BB87C
|
|
bl GetMultiplayerId
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
movs r0, #2
|
|
movs r1, #4
|
|
mov r2, sp
|
|
bl PrepareBufferDataTransferLink
|
|
ldr r1, _081BB878
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #9
|
|
adds r0, r0, r1
|
|
movs r1, #0x38
|
|
strb r1, [r0]
|
|
b _081BB88E
|
|
.align 2, 0
|
|
_081BB868: .4byte 0x03005AC0
|
|
_081BB86C: .4byte 0x02023D08
|
|
_081BB870: .4byte 0x081BAAAD
|
|
_081BB874: .4byte 0x02022C90
|
|
_081BB878: .4byte 0x02022D08
|
|
_081BB87C:
|
|
ldr r2, _081BB898
|
|
ldr r1, _081BB89C
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
_081BB88E:
|
|
add sp, #4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BB898: .4byte 0x02023D0C
|
|
_081BB89C: .4byte 0x082FACB4
|
|
thumb_func_end PlayerPartnerBufferExecCompleted
|
|
|
|
thumb_func_start CompleteOnFinishedStatusAnimation
|
|
CompleteOnFinishedStatusAnimation: @ 0x081BB8A0
|
|
push {lr}
|
|
ldr r0, _081BB8C8
|
|
ldr r2, [r0]
|
|
ldr r0, _081BB8CC
|
|
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 _081BB8C2
|
|
bl PlayerPartnerBufferExecCompleted
|
|
_081BB8C2:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BB8C8: .4byte 0x02024174
|
|
_081BB8CC: .4byte 0x02023D08
|
|
thumb_func_end CompleteOnFinishedStatusAnimation
|
|
|
|
thumb_func_start CompleteOnFinishedBattleAnimation
|
|
CompleteOnFinishedBattleAnimation: @ 0x081BB8D0
|
|
push {lr}
|
|
ldr r0, _081BB8F8
|
|
ldr r2, [r0]
|
|
ldr r0, _081BB8FC
|
|
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 _081BB8F2
|
|
bl PlayerPartnerBufferExecCompleted
|
|
_081BB8F2:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BB8F8: .4byte 0x02024174
|
|
_081BB8FC: .4byte 0x02023D08
|
|
thumb_func_end CompleteOnFinishedBattleAnimation
|
|
|
|
thumb_func_start PlayerPartnerHandleGetMonData
|
|
PlayerPartnerHandleGetMonData: @ 0x081BB900
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x100
|
|
movs r6, #0
|
|
ldr r1, _081BB92C
|
|
ldr r0, _081BB930
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, #9
|
|
adds r1, #2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, #0
|
|
bne _081BB938
|
|
ldr r0, _081BB934
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
mov r1, sp
|
|
bl CopyPlayerPartnerMonData
|
|
adds r6, r0, #0
|
|
b _081BB95A
|
|
.align 2, 0
|
|
_081BB92C: .4byte 0x02022D08
|
|
_081BB930: .4byte 0x02023D08
|
|
_081BB934: .4byte 0x02023D12
|
|
_081BB938:
|
|
ldrb r4, [r1]
|
|
movs r5, #0
|
|
_081BB93C:
|
|
movs r0, #1
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
beq _081BB952
|
|
lsls r0, r5, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov r2, sp
|
|
adds r1, r2, r6
|
|
bl CopyPlayerPartnerMonData
|
|
adds r6, r6, r0
|
|
_081BB952:
|
|
lsrs r4, r4, #1
|
|
adds r5, #1
|
|
cmp r5, #5
|
|
ble _081BB93C
|
|
_081BB95A:
|
|
lsls r1, r6, #0x10
|
|
lsrs r1, r1, #0x10
|
|
movs r0, #1
|
|
mov r2, sp
|
|
bl BtlController_EmitDataTransfer
|
|
bl PlayerPartnerBufferExecCompleted
|
|
add sp, #0x100
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleGetMonData
|
|
|
|
thumb_func_start CopyPlayerPartnerMonData
|
|
CopyPlayerPartnerMonData: @ 0x081BB974
|
|
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, _081BB9A8
|
|
ldr r3, _081BB9AC
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #9
|
|
adds r1, r2, #1
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x3b
|
|
bls _081BB99E
|
|
bl _081BC10A
|
|
_081BB99E:
|
|
lsls r0, r0, #2
|
|
ldr r1, _081BB9B0
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_081BB9A8: .4byte 0x02022D08
|
|
_081BB9AC: .4byte 0x02023D08
|
|
_081BB9B0: .4byte 0x081BB9B4
|
|
_081BB9B4: @ jump table
|
|
.4byte _081BBAA4 @ case 0
|
|
.4byte _081BBCC8 @ case 1
|
|
.4byte _081BBCD8 @ case 2
|
|
.4byte _081BBCE8 @ case 3
|
|
.4byte _081BBD50 @ case 4
|
|
.4byte _081BBD50 @ case 5
|
|
.4byte _081BBD50 @ case 6
|
|
.4byte _081BBD50 @ case 7
|
|
.4byte _081BBD6C @ case 8
|
|
.4byte _081BBDA8 @ case 9
|
|
.4byte _081BBDA8 @ case 10
|
|
.4byte _081BBDA8 @ case 11
|
|
.4byte _081BBDA8 @ case 12
|
|
.4byte _081BC10A @ case 13
|
|
.4byte _081BC10A @ case 14
|
|
.4byte _081BC10A @ case 15
|
|
.4byte _081BC10A @ case 16
|
|
.4byte _081BBDC4 @ case 17
|
|
.4byte _081BBDD4 @ case 18
|
|
.4byte _081BBE04 @ case 19
|
|
.4byte _081BBE14 @ case 20
|
|
.4byte _081BBE24 @ case 21
|
|
.4byte _081BBE34 @ case 22
|
|
.4byte _081BBE44 @ case 23
|
|
.4byte _081BBE54 @ case 24
|
|
.4byte _081BBE64 @ case 25
|
|
.4byte _081BBE74 @ case 26
|
|
.4byte _081BBE84 @ case 27
|
|
.4byte _081BBE94 @ case 28
|
|
.4byte _081BBEA4 @ case 29
|
|
.4byte _081BBEB4 @ case 30
|
|
.4byte _081BBEC4 @ case 31
|
|
.4byte _081BBF14 @ case 32
|
|
.4byte _081BBF24 @ case 33
|
|
.4byte _081BBF34 @ case 34
|
|
.4byte _081BBF44 @ case 35
|
|
.4byte _081BBF54 @ case 36
|
|
.4byte _081BBF64 @ case 37
|
|
.4byte _081BBF74 @ case 38
|
|
.4byte _081BBF84 @ case 39
|
|
.4byte _081BBF94 @ case 40
|
|
.4byte _081BBFC8 @ case 41
|
|
.4byte _081BBFD8 @ case 42
|
|
.4byte _081BBFE8 @ case 43
|
|
.4byte _081BBFF8 @ case 44
|
|
.4byte _081BC008 @ case 45
|
|
.4byte _081BC018 @ case 46
|
|
.4byte _081BC028 @ case 47
|
|
.4byte _081BC038 @ case 48
|
|
.4byte _081BC058 @ case 49
|
|
.4byte _081BC068 @ case 50
|
|
.4byte _081BC078 @ case 51
|
|
.4byte _081BC088 @ case 52
|
|
.4byte _081BC098 @ case 53
|
|
.4byte _081BC0A8 @ case 54
|
|
.4byte _081BC0B8 @ case 55
|
|
.4byte _081BC0C8 @ case 56
|
|
.4byte _081BC0D8 @ case 57
|
|
.4byte _081BC0E8 @ case 58
|
|
.4byte _081BC0F8 @ case 59
|
|
_081BBAA4:
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _081BBCB8
|
|
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
|
|
_081BBAF0:
|
|
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 _081BBAF0
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _081BBCB8
|
|
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, _081BBCBC
|
|
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, _081BBCC0
|
|
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, _081BBCC4
|
|
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
|
|
_081BBCA8:
|
|
adds r0, r7, r6
|
|
adds r1, r2, r6
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r6, #1
|
|
cmp r6, #0x57
|
|
bls _081BBCA8
|
|
b _081BC10A
|
|
.align 2, 0
|
|
_081BBCB8: .4byte 0x02024190
|
|
_081BBCBC: .4byte 0xFFFFFC1F
|
|
_081BBCC0: .4byte 0xFFF07FFF
|
|
_081BBCC4: .4byte 0xFFFFFE0F
|
|
_081BBCC8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBCD4
|
|
adds r0, r0, r1
|
|
movs r1, #0xb
|
|
b _081BC042
|
|
.align 2, 0
|
|
_081BBCD4: .4byte 0x02024190
|
|
_081BBCD8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBCE4
|
|
adds r0, r0, r1
|
|
movs r1, #0xc
|
|
b _081BC042
|
|
.align 2, 0
|
|
_081BBCE4: .4byte 0x02024190
|
|
_081BBCE8:
|
|
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, _081BBD4C
|
|
adds r4, r1, r0
|
|
mov r8, sb
|
|
_081BBCFE:
|
|
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 _081BBCFE
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBD4C
|
|
adds r0, r0, r1
|
|
movs r1, #0x15
|
|
bl GetMonData
|
|
mov r1, sb
|
|
strb r0, [r1, #0xc]
|
|
mov r2, sb
|
|
movs r6, #0
|
|
_081BBD3C:
|
|
adds r0, r7, r6
|
|
adds r1, r2, r6
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r6, #1
|
|
cmp r6, #0xf
|
|
bls _081BBD3C
|
|
b _081BC10A
|
|
.align 2, 0
|
|
_081BBD4C: .4byte 0x02024190
|
|
_081BBD50:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBD68
|
|
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 _081BC042
|
|
.align 2, 0
|
|
_081BBD68: .4byte 0x02024190
|
|
_081BBD6C:
|
|
movs r6, #0
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r2, _081BBDA4
|
|
mov r8, r2
|
|
_081BBD78:
|
|
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 _081BBD78
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBDA4
|
|
adds r0, r0, r1
|
|
movs r1, #0x15
|
|
bl GetMonData
|
|
adds r1, r7, r6
|
|
strb r0, [r1]
|
|
adds r6, #1
|
|
b _081BC10A
|
|
.align 2, 0
|
|
_081BBDA4: .4byte 0x02024190
|
|
_081BBDA8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBDC0
|
|
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 _081BC102
|
|
.align 2, 0
|
|
_081BBDC0: .4byte 0x02024190
|
|
_081BBDC4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBDD0
|
|
adds r0, r0, r1
|
|
movs r1, #1
|
|
b _081BBDDE
|
|
.align 2, 0
|
|
_081BBDD0: .4byte 0x02024190
|
|
_081BBDD4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBE00
|
|
adds r0, r0, r1
|
|
movs r1, #0x19
|
|
_081BBDDE:
|
|
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 _081BC10A
|
|
.align 2, 0
|
|
_081BBE00: .4byte 0x02024190
|
|
_081BBE04:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBE10
|
|
adds r0, r0, r1
|
|
movs r1, #0x1a
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBE10: .4byte 0x02024190
|
|
_081BBE14:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBE20
|
|
adds r0, r0, r1
|
|
movs r1, #0x1b
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBE20: .4byte 0x02024190
|
|
_081BBE24:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBE30
|
|
adds r0, r0, r1
|
|
movs r1, #0x1c
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBE30: .4byte 0x02024190
|
|
_081BBE34:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBE40
|
|
adds r0, r0, r1
|
|
movs r1, #0x1d
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBE40: .4byte 0x02024190
|
|
_081BBE44:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBE50
|
|
adds r0, r0, r1
|
|
movs r1, #0x1e
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBE50: .4byte 0x02024190
|
|
_081BBE54:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBE60
|
|
adds r0, r0, r1
|
|
movs r1, #0x1f
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBE60: .4byte 0x02024190
|
|
_081BBE64:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBE70
|
|
adds r0, r0, r1
|
|
movs r1, #0x20
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBE70: .4byte 0x02024190
|
|
_081BBE74:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBE80
|
|
adds r0, r0, r1
|
|
movs r1, #0x22
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBE80: .4byte 0x02024190
|
|
_081BBE84:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBE90
|
|
adds r0, r0, r1
|
|
movs r1, #0x23
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBE90: .4byte 0x02024190
|
|
_081BBE94:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBEA0
|
|
adds r0, r0, r1
|
|
movs r1, #0x24
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBEA0: .4byte 0x02024190
|
|
_081BBEA4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBEB0
|
|
adds r0, r0, r1
|
|
movs r1, #0x25
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBEB0: .4byte 0x02024190
|
|
_081BBEB4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBEC0
|
|
adds r0, r0, r1
|
|
movs r1, #0x26
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBEC0: .4byte 0x02024190
|
|
_081BBEC4:
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _081BBF10
|
|
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 _081BC10A
|
|
.align 2, 0
|
|
_081BBF10: .4byte 0x02024190
|
|
_081BBF14:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBF20
|
|
adds r0, r0, r1
|
|
movs r1, #0x27
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBF20: .4byte 0x02024190
|
|
_081BBF24:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBF30
|
|
adds r0, r0, r1
|
|
movs r1, #0x28
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBF30: .4byte 0x02024190
|
|
_081BBF34:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBF40
|
|
adds r0, r0, r1
|
|
movs r1, #0x29
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBF40: .4byte 0x02024190
|
|
_081BBF44:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBF50
|
|
adds r0, r0, r1
|
|
movs r1, #0x2a
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBF50: .4byte 0x02024190
|
|
_081BBF54:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBF60
|
|
adds r0, r0, r1
|
|
movs r1, #0x2b
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBF60: .4byte 0x02024190
|
|
_081BBF64:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBF70
|
|
adds r0, r0, r1
|
|
movs r1, #0x2c
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBF70: .4byte 0x02024190
|
|
_081BBF74:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBF80
|
|
adds r0, r0, r1
|
|
movs r1, #0
|
|
b _081BBF9E
|
|
.align 2, 0
|
|
_081BBF80: .4byte 0x02024190
|
|
_081BBF84:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBF90
|
|
adds r0, r0, r1
|
|
movs r1, #9
|
|
b _081BC042
|
|
.align 2, 0
|
|
_081BBF90: .4byte 0x02024190
|
|
_081BBF94:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBFC4
|
|
adds r0, r0, r1
|
|
movs r1, #0x37
|
|
_081BBF9E:
|
|
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 _081BC10A
|
|
.align 2, 0
|
|
_081BBFC4: .4byte 0x02024190
|
|
_081BBFC8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBFD4
|
|
adds r0, r0, r1
|
|
movs r1, #0x38
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BBFD4: .4byte 0x02024190
|
|
_081BBFD8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBFE4
|
|
adds r0, r0, r1
|
|
movs r1, #0x39
|
|
b _081BC042
|
|
.align 2, 0
|
|
_081BBFE4: .4byte 0x02024190
|
|
_081BBFE8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BBFF4
|
|
adds r0, r0, r1
|
|
movs r1, #0x3a
|
|
b _081BC042
|
|
.align 2, 0
|
|
_081BBFF4: .4byte 0x02024190
|
|
_081BBFF8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC004
|
|
adds r0, r0, r1
|
|
movs r1, #0x3b
|
|
b _081BC042
|
|
.align 2, 0
|
|
_081BC004: .4byte 0x02024190
|
|
_081BC008:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC014
|
|
adds r0, r0, r1
|
|
movs r1, #0x3c
|
|
b _081BC042
|
|
.align 2, 0
|
|
_081BC014: .4byte 0x02024190
|
|
_081BC018:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC024
|
|
adds r0, r0, r1
|
|
movs r1, #0x3d
|
|
b _081BC042
|
|
.align 2, 0
|
|
_081BC024: .4byte 0x02024190
|
|
_081BC028:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC034
|
|
adds r0, r0, r1
|
|
movs r1, #0x3e
|
|
b _081BC042
|
|
.align 2, 0
|
|
_081BC034: .4byte 0x02024190
|
|
_081BC038:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC054
|
|
adds r0, r0, r1
|
|
movs r1, #0x3f
|
|
_081BC042:
|
|
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 _081BC10A
|
|
.align 2, 0
|
|
_081BC054: .4byte 0x02024190
|
|
_081BC058:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC064
|
|
adds r0, r0, r1
|
|
movs r1, #0x16
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BC064: .4byte 0x02024190
|
|
_081BC068:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC074
|
|
adds r0, r0, r1
|
|
movs r1, #0x17
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BC074: .4byte 0x02024190
|
|
_081BC078:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC084
|
|
adds r0, r0, r1
|
|
movs r1, #0x18
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BC084: .4byte 0x02024190
|
|
_081BC088:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC094
|
|
adds r0, r0, r1
|
|
movs r1, #0x21
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BC094: .4byte 0x02024190
|
|
_081BC098:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC0A4
|
|
adds r0, r0, r1
|
|
movs r1, #0x2f
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BC0A4: .4byte 0x02024190
|
|
_081BC0A8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC0B4
|
|
adds r0, r0, r1
|
|
movs r1, #0x30
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BC0B4: .4byte 0x02024190
|
|
_081BC0B8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC0C4
|
|
adds r0, r0, r1
|
|
movs r1, #0x32
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BC0C4: .4byte 0x02024190
|
|
_081BC0C8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC0D4
|
|
adds r0, r0, r1
|
|
movs r1, #0x33
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BC0D4: .4byte 0x02024190
|
|
_081BC0D8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC0E4
|
|
adds r0, r0, r1
|
|
movs r1, #0x34
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BC0E4: .4byte 0x02024190
|
|
_081BC0E8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC0F4
|
|
adds r0, r0, r1
|
|
movs r1, #0x35
|
|
b _081BC102
|
|
.align 2, 0
|
|
_081BC0F4: .4byte 0x02024190
|
|
_081BC0F8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC11C
|
|
adds r0, r0, r1
|
|
movs r1, #0x36
|
|
_081BC102:
|
|
bl GetMonData
|
|
strb r0, [r7]
|
|
movs r6, #1
|
|
_081BC10A:
|
|
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
|
|
_081BC11C: .4byte 0x02024190
|
|
thumb_func_end CopyPlayerPartnerMonData
|
|
|
|
thumb_func_start PlayerPartnerHandleGetRawMonData
|
|
PlayerPartnerHandleGetRawMonData: @ 0x081BC120
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleGetRawMonData
|
|
|
|
thumb_func_start PlayerPartnerHandleSetMonData
|
|
PlayerPartnerHandleSetMonData: @ 0x081BC12C
|
|
push {r4, r5, lr}
|
|
ldr r1, _081BC150
|
|
ldr r0, _081BC154
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, #9
|
|
adds r1, #2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, #0
|
|
bne _081BC15C
|
|
ldr r0, _081BC158
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
bl SetPlayerPartnerMonData
|
|
b _081BC17A
|
|
.align 2, 0
|
|
_081BC150: .4byte 0x02022D08
|
|
_081BC154: .4byte 0x02023D08
|
|
_081BC158: .4byte 0x02023D12
|
|
_081BC15C:
|
|
ldrb r4, [r1]
|
|
movs r5, #0
|
|
_081BC160:
|
|
movs r0, #1
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
beq _081BC16E
|
|
adds r0, r5, #0
|
|
bl SetPlayerPartnerMonData
|
|
_081BC16E:
|
|
lsrs r4, r4, #1
|
|
adds r0, r5, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
cmp r5, #5
|
|
bls _081BC160
|
|
_081BC17A:
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerPartnerHandleSetMonData
|
|
|
|
thumb_func_start SetPlayerPartnerMonData
|
|
SetPlayerPartnerMonData: @ 0x081BC184
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x34
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
ldr r0, _081BC1BC
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #9
|
|
ldr r2, _081BC1C0
|
|
adds r3, r0, r2
|
|
adds r6, r3, #0
|
|
subs r1, r2, #2
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
adds r7, r2, #0
|
|
cmp r0, #0x3b
|
|
bls _081BC1B0
|
|
bl _081BCB4A
|
|
_081BC1B0:
|
|
lsls r0, r0, #2
|
|
ldr r1, _081BC1C4
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_081BC1BC: .4byte 0x02023D08
|
|
_081BC1C0: .4byte 0x02022D0B
|
|
_081BC1C4: .4byte 0x081BC1C8
|
|
_081BC1C8: @ jump table
|
|
.4byte _081BC2B8 @ case 0
|
|
.4byte _081BC450 @ case 1
|
|
.4byte _081BC470 @ case 2
|
|
.4byte _081BC490 @ case 3
|
|
.4byte _081BC4E8 @ case 4
|
|
.4byte _081BC4E8 @ case 5
|
|
.4byte _081BC4E8 @ case 6
|
|
.4byte _081BC4E8 @ case 7
|
|
.4byte _081BC510 @ case 8
|
|
.4byte _081BC574 @ case 9
|
|
.4byte _081BC574 @ case 10
|
|
.4byte _081BC574 @ case 11
|
|
.4byte _081BC574 @ case 12
|
|
.4byte _081BCB4A @ case 13
|
|
.4byte _081BCB4A @ case 14
|
|
.4byte _081BCB4A @ case 15
|
|
.4byte _081BCB4A @ case 16
|
|
.4byte _081BC5A4 @ case 17
|
|
.4byte _081BC5C4 @ case 18
|
|
.4byte _081BC5E4 @ case 19
|
|
.4byte _081BC604 @ case 20
|
|
.4byte _081BC624 @ case 21
|
|
.4byte _081BC644 @ case 22
|
|
.4byte _081BC664 @ case 23
|
|
.4byte _081BC684 @ case 24
|
|
.4byte _081BC6A4 @ case 25
|
|
.4byte _081BC6C4 @ case 26
|
|
.4byte _081BC6E4 @ case 27
|
|
.4byte _081BC704 @ case 28
|
|
.4byte _081BC724 @ case 29
|
|
.4byte _081BC744 @ case 30
|
|
.4byte _081BC764 @ case 31
|
|
.4byte _081BC7D4 @ case 32
|
|
.4byte _081BC7F4 @ case 33
|
|
.4byte _081BC814 @ case 34
|
|
.4byte _081BC834 @ case 35
|
|
.4byte _081BC854 @ case 36
|
|
.4byte _081BC874 @ case 37
|
|
.4byte _081BC894 @ case 38
|
|
.4byte _081BC8B4 @ case 39
|
|
.4byte _081BC8D4 @ case 40
|
|
.4byte _081BC8F4 @ case 41
|
|
.4byte _081BC914 @ case 42
|
|
.4byte _081BC934 @ case 43
|
|
.4byte _081BC954 @ case 44
|
|
.4byte _081BC974 @ case 45
|
|
.4byte _081BC994 @ case 46
|
|
.4byte _081BC9B4 @ case 47
|
|
.4byte _081BC9D4 @ case 48
|
|
.4byte _081BC9F4 @ case 49
|
|
.4byte _081BCA14 @ case 50
|
|
.4byte _081BCA34 @ case 51
|
|
.4byte _081BCA54 @ case 52
|
|
.4byte _081BCA74 @ case 53
|
|
.4byte _081BCA94 @ case 54
|
|
.4byte _081BCAB4 @ case 55
|
|
.4byte _081BCAD4 @ case 56
|
|
.4byte _081BCAF4 @ case 57
|
|
.4byte _081BCB14 @ case 58
|
|
.4byte _081BCB34 @ case 59
|
|
_081BC2B8:
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _081BC44C
|
|
adds r4, r4, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0xb
|
|
adds r2, r6, #0
|
|
bl SetMonData
|
|
adds r2, r6, #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, r6
|
|
mov sl, r0
|
|
adds r0, r6, #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, r6, #2
|
|
str r0, [sp, #4]
|
|
adds r0, r6, #4
|
|
str r0, [sp, #8]
|
|
adds r0, r6, #6
|
|
str r0, [sp, #0xc]
|
|
adds r0, #2
|
|
str r0, [sp, #0x10]
|
|
adds r0, #2
|
|
str r0, [sp, #0x14]
|
|
mov sb, r4
|
|
adds r7, r6, #0
|
|
adds r7, #0x24
|
|
adds r4, r6, #0
|
|
adds r4, #0xc
|
|
_081BC31E:
|
|
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, r7, #0
|
|
bl SetMonData
|
|
adds r7, #1
|
|
adds r4, #2
|
|
movs r0, #1
|
|
add r8, r0
|
|
mov r0, r8
|
|
cmp r0, #3
|
|
ble _081BC31E
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _081BC44C
|
|
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, [r6, #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, [r6, #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, [r6, #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, [r6, #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, [r6, #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, [r6, #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 _081BCB4A
|
|
.align 2, 0
|
|
_081BC44C: .4byte 0x02024190
|
|
_081BC450:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC468
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC46C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0xb
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC468: .4byte 0x02024190
|
|
_081BC46C: .4byte 0x02023D08
|
|
_081BC470:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC488
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC48C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0xc
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC488: .4byte 0x02024190
|
|
_081BC48C: .4byte 0x02023D08
|
|
_081BC490:
|
|
movs r0, #0
|
|
mov r8, r0
|
|
movs r0, #0xc
|
|
adds r0, r0, r3
|
|
mov sb, r0
|
|
movs r0, #0x64
|
|
adds r1, r5, #0
|
|
muls r1, r0, r1
|
|
ldr r0, _081BC4E4
|
|
adds r7, r1, r0
|
|
adds r6, r3, #0
|
|
adds r6, #8
|
|
adds r4, r3, #0
|
|
_081BC4AA:
|
|
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 _081BC4AA
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC4E4
|
|
adds r0, r0, r1
|
|
movs r1, #0x15
|
|
mov r2, sb
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC4E4: .4byte 0x02024190
|
|
_081BC4E8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC504
|
|
adds r0, r0, r1
|
|
ldr r3, _081BC508
|
|
ldr r1, _081BC50C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r1, r3, #1
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
adds r1, #9
|
|
b _081BC58C
|
|
.align 2, 0
|
|
_081BC504: .4byte 0x02024190
|
|
_081BC508: .4byte 0x02022D08
|
|
_081BC50C: .4byte 0x02023D08
|
|
_081BC510:
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _081BC56C
|
|
adds r4, r4, r0
|
|
ldr r5, _081BC570
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
adds r0, r4, #0
|
|
movs r1, #0x11
|
|
bl SetMonData
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r0, r7, #1
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x12
|
|
bl SetMonData
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r0, r7, #2
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x13
|
|
bl SetMonData
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r0, r7, #3
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x14
|
|
bl SetMonData
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r0, r7, #4
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x15
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC56C: .4byte 0x02024190
|
|
_081BC570: .4byte 0x02023D08
|
|
_081BC574:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC598
|
|
adds r0, r0, r1
|
|
ldr r3, _081BC59C
|
|
ldr r1, _081BC5A0
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r1, r3, #1
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
adds r1, #8
|
|
_081BC58C:
|
|
adds r3, #3
|
|
adds r2, r2, r3
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC598: .4byte 0x02024190
|
|
_081BC59C: .4byte 0x02022D08
|
|
_081BC5A0: .4byte 0x02023D08
|
|
_081BC5A4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC5BC
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC5C0
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #1
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC5BC: .4byte 0x02024190
|
|
_081BC5C0: .4byte 0x02023D08
|
|
_081BC5C4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC5DC
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC5E0
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x19
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC5DC: .4byte 0x02024190
|
|
_081BC5E0: .4byte 0x02023D08
|
|
_081BC5E4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC5FC
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC600
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x1a
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC5FC: .4byte 0x02024190
|
|
_081BC600: .4byte 0x02023D08
|
|
_081BC604:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC61C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC620
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x1b
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC61C: .4byte 0x02024190
|
|
_081BC620: .4byte 0x02023D08
|
|
_081BC624:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC63C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC640
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x1c
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC63C: .4byte 0x02024190
|
|
_081BC640: .4byte 0x02023D08
|
|
_081BC644:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC65C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC660
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x1d
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC65C: .4byte 0x02024190
|
|
_081BC660: .4byte 0x02023D08
|
|
_081BC664:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC67C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC680
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x1e
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC67C: .4byte 0x02024190
|
|
_081BC680: .4byte 0x02023D08
|
|
_081BC684:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC69C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC6A0
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x1f
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC69C: .4byte 0x02024190
|
|
_081BC6A0: .4byte 0x02023D08
|
|
_081BC6A4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC6BC
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC6C0
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x20
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC6BC: .4byte 0x02024190
|
|
_081BC6C0: .4byte 0x02023D08
|
|
_081BC6C4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC6DC
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC6E0
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x22
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC6DC: .4byte 0x02024190
|
|
_081BC6E0: .4byte 0x02023D08
|
|
_081BC6E4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC6FC
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC700
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x23
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC6FC: .4byte 0x02024190
|
|
_081BC700: .4byte 0x02023D08
|
|
_081BC704:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC71C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC720
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x24
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC71C: .4byte 0x02024190
|
|
_081BC720: .4byte 0x02023D08
|
|
_081BC724:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC73C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC740
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x25
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC73C: .4byte 0x02024190
|
|
_081BC740: .4byte 0x02023D08
|
|
_081BC744:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC75C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC760
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x26
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC75C: .4byte 0x02024190
|
|
_081BC760: .4byte 0x02023D08
|
|
_081BC764:
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _081BC7CC
|
|
adds r4, r4, r0
|
|
ldr r5, _081BC7D0
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
adds r0, r4, #0
|
|
movs r1, #0x27
|
|
bl SetMonData
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r0, r7, #1
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x28
|
|
bl SetMonData
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r0, r7, #2
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x29
|
|
bl SetMonData
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r0, r7, #3
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x2a
|
|
bl SetMonData
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r0, r7, #4
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x2b
|
|
bl SetMonData
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r0, r7, #5
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
b _081BC884
|
|
.align 2, 0
|
|
_081BC7CC: .4byte 0x02024190
|
|
_081BC7D0: .4byte 0x02023D08
|
|
_081BC7D4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC7EC
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC7F0
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x27
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC7EC: .4byte 0x02024190
|
|
_081BC7F0: .4byte 0x02023D08
|
|
_081BC7F4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC80C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC810
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x28
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC80C: .4byte 0x02024190
|
|
_081BC810: .4byte 0x02023D08
|
|
_081BC814:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC82C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC830
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x29
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC82C: .4byte 0x02024190
|
|
_081BC830: .4byte 0x02023D08
|
|
_081BC834:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC84C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC850
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x2a
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC84C: .4byte 0x02024190
|
|
_081BC850: .4byte 0x02023D08
|
|
_081BC854:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC86C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC870
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x2b
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC86C: .4byte 0x02024190
|
|
_081BC870: .4byte 0x02023D08
|
|
_081BC874:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC88C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC890
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
_081BC884:
|
|
movs r1, #0x2c
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC88C: .4byte 0x02024190
|
|
_081BC890: .4byte 0x02023D08
|
|
_081BC894:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC8AC
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC8B0
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC8AC: .4byte 0x02024190
|
|
_081BC8B0: .4byte 0x02023D08
|
|
_081BC8B4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC8CC
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC8D0
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #9
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC8CC: .4byte 0x02024190
|
|
_081BC8D0: .4byte 0x02023D08
|
|
_081BC8D4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC8EC
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC8F0
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x37
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC8EC: .4byte 0x02024190
|
|
_081BC8F0: .4byte 0x02023D08
|
|
_081BC8F4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC90C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC910
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x38
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC90C: .4byte 0x02024190
|
|
_081BC910: .4byte 0x02023D08
|
|
_081BC914:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC92C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC930
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x39
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC92C: .4byte 0x02024190
|
|
_081BC930: .4byte 0x02023D08
|
|
_081BC934:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC94C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC950
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x3a
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC94C: .4byte 0x02024190
|
|
_081BC950: .4byte 0x02023D08
|
|
_081BC954:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC96C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC970
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x3b
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC96C: .4byte 0x02024190
|
|
_081BC970: .4byte 0x02023D08
|
|
_081BC974:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC98C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC990
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x3c
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC98C: .4byte 0x02024190
|
|
_081BC990: .4byte 0x02023D08
|
|
_081BC994:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC9AC
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC9B0
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x3d
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC9AC: .4byte 0x02024190
|
|
_081BC9B0: .4byte 0x02023D08
|
|
_081BC9B4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC9CC
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC9D0
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x3e
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC9CC: .4byte 0x02024190
|
|
_081BC9D0: .4byte 0x02023D08
|
|
_081BC9D4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BC9EC
|
|
adds r0, r0, r1
|
|
ldr r1, _081BC9F0
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x3f
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BC9EC: .4byte 0x02024190
|
|
_081BC9F0: .4byte 0x02023D08
|
|
_081BC9F4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BCA0C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BCA10
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x16
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BCA0C: .4byte 0x02024190
|
|
_081BCA10: .4byte 0x02023D08
|
|
_081BCA14:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BCA2C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BCA30
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x17
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BCA2C: .4byte 0x02024190
|
|
_081BCA30: .4byte 0x02023D08
|
|
_081BCA34:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BCA4C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BCA50
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x18
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BCA4C: .4byte 0x02024190
|
|
_081BCA50: .4byte 0x02023D08
|
|
_081BCA54:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BCA6C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BCA70
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x21
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BCA6C: .4byte 0x02024190
|
|
_081BCA70: .4byte 0x02023D08
|
|
_081BCA74:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BCA8C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BCA90
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x2f
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BCA8C: .4byte 0x02024190
|
|
_081BCA90: .4byte 0x02023D08
|
|
_081BCA94:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BCAAC
|
|
adds r0, r0, r1
|
|
ldr r1, _081BCAB0
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x30
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BCAAC: .4byte 0x02024190
|
|
_081BCAB0: .4byte 0x02023D08
|
|
_081BCAB4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BCACC
|
|
adds r0, r0, r1
|
|
ldr r1, _081BCAD0
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x32
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BCACC: .4byte 0x02024190
|
|
_081BCAD0: .4byte 0x02023D08
|
|
_081BCAD4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BCAEC
|
|
adds r0, r0, r1
|
|
ldr r1, _081BCAF0
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x33
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BCAEC: .4byte 0x02024190
|
|
_081BCAF0: .4byte 0x02023D08
|
|
_081BCAF4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BCB0C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BCB10
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x34
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BCB0C: .4byte 0x02024190
|
|
_081BCB10: .4byte 0x02023D08
|
|
_081BCB14:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BCB2C
|
|
adds r0, r0, r1
|
|
ldr r1, _081BCB30
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x35
|
|
bl SetMonData
|
|
b _081BCB4A
|
|
.align 2, 0
|
|
_081BCB2C: .4byte 0x02024190
|
|
_081BCB30: .4byte 0x02023D08
|
|
_081BCB34:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _081BCB74
|
|
adds r0, r0, r1
|
|
ldr r1, _081BCB78
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x36
|
|
bl SetMonData
|
|
_081BCB4A:
|
|
ldr r2, _081BCB7C
|
|
ldr r0, _081BCB78
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r2, r0
|
|
ldr r2, _081BCB74
|
|
adds r0, r0, r2
|
|
bl HandleLowHpMusicChange
|
|
add sp, #0x34
|
|
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
|
|
_081BCB74: .4byte 0x02024190
|
|
_081BCB78: .4byte 0x02023D08
|
|
_081BCB7C: .4byte 0x02023D12
|
|
thumb_func_end SetPlayerPartnerMonData
|
|
|
|
thumb_func_start PlayerPartnerHandleSetRawMonData
|
|
PlayerPartnerHandleSetRawMonData: @ 0x081BCB80
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r1, _081BCBE4
|
|
ldr r7, _081BCBE8
|
|
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, _081BCBEC
|
|
lsls r2, r2, #9
|
|
adds r0, r4, #1
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
ldr r1, _081BCBF0
|
|
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 _081BCBD8
|
|
adds r6, r4, #0
|
|
adds r2, r7, #0
|
|
adds r4, r0, #0
|
|
_081BCBB6:
|
|
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 _081BCBB6
|
|
_081BCBD8:
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BCBE4: .4byte 0x02023D12
|
|
_081BCBE8: .4byte 0x02023D08
|
|
_081BCBEC: .4byte 0x02022D08
|
|
_081BCBF0: .4byte 0x02024190
|
|
thumb_func_end PlayerPartnerHandleSetRawMonData
|
|
|
|
thumb_func_start PlayerPartnerHandleLoadMonSprite
|
|
PlayerPartnerHandleLoadMonSprite: @ 0x081BCBF4
|
|
push {r4, r5, r6, lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
ldr r0, _081BCCE8
|
|
mov r8, r0
|
|
ldr r6, _081BCCEC
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, #1
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
movs r5, #0x64
|
|
muls r0, r5, r0
|
|
ldr r4, _081BCCF0
|
|
adds r0, r0, r4
|
|
bl BattleLoadPlayerMonSpriteGfx
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #1
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x10
|
|
lsrs r4, r4, #0x10
|
|
ldrb r0, [r6]
|
|
bl GetBattlerPosition
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
adds r0, r4, #0
|
|
bl SetMultiuseSpriteTemplateToPokemon
|
|
ldr r0, _081BCCF4
|
|
mov r8, 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, r8
|
|
adds r1, r5, #0
|
|
adds r2, r4, #0
|
|
bl CreateSprite
|
|
ldr r4, _081BCCF8
|
|
ldrb r1, [r6]
|
|
adds r1, r1, r4
|
|
strb r0, [r1]
|
|
ldr r5, _081BCCFC
|
|
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, _081BCD00
|
|
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 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, _081BCD04
|
|
adds r2, r2, r1
|
|
ldrb r1, [r2]
|
|
bl StartSpriteAnim
|
|
ldr r1, _081BCD08
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BCD0C
|
|
str r1, [r0]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BCCE8: .4byte 0x02023D12
|
|
_081BCCEC: .4byte 0x02023D08
|
|
_081BCCF0: .4byte 0x02024190
|
|
_081BCCF4: .4byte 0x02024640
|
|
_081BCCF8: .4byte 0x02023E88
|
|
_081BCCFC: .4byte 0x020205AC
|
|
_081BCD00: .4byte 0x0000FF10
|
|
_081BCD04: .4byte 0x02024188
|
|
_081BCD08: .4byte 0x03005AC0
|
|
_081BCD0C: .4byte 0x081BAE71
|
|
thumb_func_end PlayerPartnerHandleLoadMonSprite
|
|
|
|
thumb_func_start PlayerPartnerHandleSwitchInAnim
|
|
PlayerPartnerHandleSwitchInAnim: @ 0x081BCD10
|
|
push {r4, r5, r6, lr}
|
|
ldr r5, _081BCD68
|
|
ldrb r0, [r5]
|
|
ldr r4, _081BCD6C
|
|
lsls r1, r0, #9
|
|
adds r6, r4, #2
|
|
adds r1, r1, r6
|
|
ldrb r1, [r1]
|
|
bl ClearTemporarySpeciesSpriteData
|
|
ldr r2, _081BCD70
|
|
ldrb r0, [r5]
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r2
|
|
lsls r0, r0, #9
|
|
adds r4, #1
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
strh r0, [r1]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r2, r0
|
|
ldr r2, _081BCD74
|
|
adds r0, r0, r2
|
|
bl BattleLoadPlayerMonSpriteGfx
|
|
ldrb r0, [r5]
|
|
lsls r1, r0, #9
|
|
adds r1, r1, r6
|
|
ldrb r1, [r1]
|
|
bl sub_081BCD80
|
|
ldr r1, _081BCD78
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BCD7C
|
|
str r1, [r0]
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BCD68: .4byte 0x02023D08
|
|
_081BCD6C: .4byte 0x02022D08
|
|
_081BCD70: .4byte 0x02023D12
|
|
_081BCD74: .4byte 0x02024190
|
|
_081BCD78: .4byte 0x03005AC0
|
|
_081BCD7C: .4byte 0x081BB785
|
|
thumb_func_end PlayerPartnerHandleSwitchInAnim
|
|
|
|
thumb_func_start sub_081BCD80
|
|
sub_081BCD80: @ 0x081BCD80
|
|
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, _081BCED4
|
|
lsls r2, r6, #1
|
|
adds r2, r2, r0
|
|
ldr r0, _081BCED8
|
|
lsls r1, r6, #9
|
|
adds r0, #1
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
strh r0, [r2]
|
|
ldrh r1, [r2]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _081BCEDC
|
|
adds r0, r0, r1
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
mov r8, r0
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
mov r8, r0
|
|
ldr r0, _081BCEE0
|
|
bl CreateInvisibleSpriteWithCallback
|
|
ldr r1, _081BCEE4
|
|
mov sb, r1
|
|
add sb, r6
|
|
mov r1, sb
|
|
strb r0, [r1]
|
|
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, _081BCEE8
|
|
mov sl, 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, sl
|
|
adds r1, r5, #0
|
|
adds r2, r4, #0
|
|
bl CreateSprite
|
|
ldr r4, _081BCEEC
|
|
adds r4, r6, r4
|
|
strb r0, [r4]
|
|
ldr r5, _081BCEF0
|
|
mov r0, sb
|
|
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, sb
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
strh r6, [r0, #0x32]
|
|
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]
|
|
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, _081BCEF4
|
|
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, _081BCEF8
|
|
str r1, [r0]
|
|
movs r0, #0
|
|
movs r1, #0xff
|
|
bl DoPokeballSendOutAnimation
|
|
mov r1, sb
|
|
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
|
|
_081BCED4: .4byte 0x02023D12
|
|
_081BCED8: .4byte 0x02022D08
|
|
_081BCEDC: .4byte 0x02024190
|
|
_081BCEE0: .4byte 0x0805D331
|
|
_081BCEE4: .4byte 0x03005ADC
|
|
_081BCEE8: .4byte 0x02024640
|
|
_081BCEEC: .4byte 0x02023E88
|
|
_081BCEF0: .4byte 0x020205AC
|
|
_081BCEF4: .4byte 0x02024188
|
|
_081BCEF8: .4byte 0x08007141
|
|
thumb_func_end sub_081BCD80
|
|
|
|
thumb_func_start PlayerPartnerHandleReturnMonToBall
|
|
PlayerPartnerHandleReturnMonToBall: @ 0x081BCEFC
|
|
push {r4, r5, r6, lr}
|
|
ldr r1, _081BCF30
|
|
ldr r6, _081BCF34
|
|
ldrb r2, [r6]
|
|
lsls r0, r2, #9
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r3, [r0]
|
|
cmp r3, #0
|
|
bne _081BCF44
|
|
ldr r0, _081BCF38
|
|
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, _081BCF3C
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BCF40
|
|
str r1, [r0]
|
|
b _081BCF7A
|
|
.align 2, 0
|
|
_081BCF30: .4byte 0x02022D08
|
|
_081BCF34: .4byte 0x02023D08
|
|
_081BCF38: .4byte 0x02024174
|
|
_081BCF3C: .4byte 0x03005AC0
|
|
_081BCF40: .4byte 0x081BCF8D
|
|
_081BCF44:
|
|
ldr r5, _081BCF80
|
|
adds r0, r2, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r4, _081BCF84
|
|
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
|
|
ldr r1, _081BCF88
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteInvisible
|
|
bl PlayerPartnerBufferExecCompleted
|
|
_081BCF7A:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BCF80: .4byte 0x02023E88
|
|
_081BCF84: .4byte 0x020205AC
|
|
_081BCF88: .4byte 0x03005AD0
|
|
thumb_func_end PlayerPartnerHandleReturnMonToBall
|
|
|
|
thumb_func_start DoSwitchOutAnimation
|
|
DoSwitchOutAnimation: @ 0x081BCF8C
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _081BCFAC
|
|
ldr r4, [r6]
|
|
ldr r5, _081BCFB0
|
|
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 _081BCFB4
|
|
cmp r0, #1
|
|
beq _081BCFE2
|
|
b _081BD00A
|
|
.align 2, 0
|
|
_081BCFAC: .4byte 0x02024174
|
|
_081BCFB0: .4byte 0x02023D08
|
|
_081BCFB4:
|
|
ldr r1, [r4]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _081BCFCE
|
|
adds r0, r2, #0
|
|
adds r1, r2, #0
|
|
movs r3, #5
|
|
bl InitAndLaunchSpecialAnimation
|
|
_081BCFCE:
|
|
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 _081BD00A
|
|
_081BCFE2:
|
|
ldrb r1, [r3]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _081BD00A
|
|
strb r0, [r3, #4]
|
|
ldrb r2, [r5]
|
|
adds r0, r2, #0
|
|
adds r1, r2, #0
|
|
movs r3, #1
|
|
bl InitAndLaunchSpecialAnimation
|
|
ldr r1, _081BD010
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BD014
|
|
str r1, [r0]
|
|
_081BD00A:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BD010: .4byte 0x03005AC0
|
|
_081BD014: .4byte 0x081BB4C5
|
|
thumb_func_end DoSwitchOutAnimation
|
|
|
|
thumb_func_start PlayerPartnerHandleDrawTrainerPic
|
|
PlayerPartnerHandleDrawTrainerPic: @ 0x081BD018
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
ldr r2, _081BD038
|
|
ldrh r1, [r2]
|
|
ldr r0, _081BD03C
|
|
cmp r1, r0
|
|
bne _081BD044
|
|
movs r4, #7
|
|
movs r0, #0x5a
|
|
mov sb, r0
|
|
ldr r0, _081BD040
|
|
ldrb r1, [r0, #0x1c]
|
|
b _081BD05A
|
|
.align 2, 0
|
|
_081BD038: .4byte 0x0203886E
|
|
_081BD03C: .4byte 0x00000C03
|
|
_081BD040: .4byte 0x082D95BC
|
|
_081BD044:
|
|
ldrh r0, [r2]
|
|
bl GetFrontierTrainerFrontSpriteId
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
movs r0, #0x20
|
|
mov sb, r0
|
|
ldr r1, _081BD10C
|
|
lsls r0, r4, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
_081BD05A:
|
|
movs r0, #8
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #0x12
|
|
movs r1, #0xa0
|
|
lsls r1, r1, #0xf
|
|
adds r0, r0, r1
|
|
lsrs r7, r0, #0x10
|
|
ldr r0, _081BD110
|
|
ldrh r1, [r0]
|
|
ldr r0, _081BD114
|
|
cmp r1, r0
|
|
bne _081BD130
|
|
ldr r5, _081BD118
|
|
ldrb r1, [r5]
|
|
adds r0, r4, #0
|
|
bl DecompressTrainerBackPic
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
adds r0, r4, #0
|
|
bl SetMultiuseSpriteTemplateToTrainerBack
|
|
ldr r6, _081BD11C
|
|
mov r8, sb
|
|
lsls r4, r7, #0x10
|
|
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, r8
|
|
adds r2, r4, #0
|
|
bl CreateSprite
|
|
ldr r6, _081BD120
|
|
ldrb r1, [r5]
|
|
adds r1, r1, r6
|
|
strb r0, [r1]
|
|
ldr r4, _081BD124
|
|
ldrb r3, [r5]
|
|
adds r0, r3, r6
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, #4
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r4
|
|
lsls r3, r3, #4
|
|
ldrb r2, [r1, #5]
|
|
movs r0, #0xf
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
strb r0, [r1, #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
|
|
movs r1, #0xf0
|
|
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
|
|
ldr r1, _081BD128
|
|
strh r1, [r0, #0x2e]
|
|
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, _081BD12C
|
|
str r1, [r0]
|
|
b _081BD218
|
|
.align 2, 0
|
|
_081BD10C: .4byte 0x082D8D70
|
|
_081BD110: .4byte 0x0203886E
|
|
_081BD114: .4byte 0x00000C03
|
|
_081BD118: .4byte 0x02023D08
|
|
_081BD11C: .4byte 0x02024640
|
|
_081BD120: .4byte 0x02023E88
|
|
_081BD124: .4byte 0x020205AC
|
|
_081BD128: .4byte 0x0000FFFE
|
|
_081BD12C: .4byte 0x0805D3C9
|
|
_081BD130:
|
|
adds r5, r4, #0
|
|
ldr r6, _081BD234
|
|
ldrb r1, [r6]
|
|
adds r0, r5, #0
|
|
bl DecompressTrainerFrontPic
|
|
ldrb r0, [r6]
|
|
bl GetBattlerPosition
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
adds r0, r5, #0
|
|
bl SetMultiuseSpriteTemplateToTrainerFront
|
|
ldr r0, _081BD238
|
|
mov r8, r0
|
|
lsls r4, r7, #0x10
|
|
asrs r4, r4, #0x10
|
|
ldrb r0, [r6]
|
|
bl GetBattlerSpriteSubpriority
|
|
adds r3, r0, #0
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
mov r0, r8
|
|
mov r1, sb
|
|
adds r2, r4, #0
|
|
bl CreateSprite
|
|
ldr r4, _081BD23C
|
|
ldrb r1, [r6]
|
|
adds r1, r1, r4
|
|
strb r0, [r1]
|
|
ldr r0, _081BD240
|
|
lsls r5, r5, #3
|
|
adds r5, r5, r0
|
|
ldrh r0, [r5, #4]
|
|
bl IndexOfSpritePaletteTag
|
|
ldr r5, _081BD244
|
|
ldrb r1, [r6]
|
|
adds r1, r1, r4
|
|
ldrb r1, [r1]
|
|
lsls r2, r1, #4
|
|
adds r2, r2, r1
|
|
lsls r2, r2, #2
|
|
adds r2, r2, r5
|
|
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, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
movs r1, #0xf0
|
|
strh r1, [r0, #0x24]
|
|
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
|
|
movs r1, #0x30
|
|
strh r1, [r0, #0x26]
|
|
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, _081BD248
|
|
strh r1, [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 r1, r5, #0
|
|
adds r1, #0x1c
|
|
adds r0, r0, r1
|
|
ldr r1, _081BD24C
|
|
str r1, [r0]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, #4
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrb r2, [r1, #1]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1, #1]
|
|
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
|
|
adds r0, #0x3f
|
|
ldrb r1, [r0]
|
|
movs r2, #1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_081BD218:
|
|
ldr r1, _081BD250
|
|
ldr r0, _081BD234
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BD254
|
|
str r1, [r0]
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BD234: .4byte 0x02023D08
|
|
_081BD238: .4byte 0x02024640
|
|
_081BD23C: .4byte 0x02023E88
|
|
_081BD240: .4byte 0x082D91CC
|
|
_081BD244: .4byte 0x020205AC
|
|
_081BD248: .4byte 0x0000FFFE
|
|
_081BD24C: .4byte 0x0805D3C9
|
|
_081BD250: .4byte 0x03005AC0
|
|
_081BD254: .4byte 0x081BAAFD
|
|
thumb_func_end PlayerPartnerHandleDrawTrainerPic
|
|
|
|
thumb_func_start PlayerPartnerHandleTrainerSlide
|
|
PlayerPartnerHandleTrainerSlide: @ 0x081BD258
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleTrainerSlide
|
|
|
|
thumb_func_start PlayerPartnerHandleTrainerSlideBack
|
|
PlayerPartnerHandleTrainerSlideBack: @ 0x081BD264
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _081BD2F0
|
|
ldr r4, _081BD2F4
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r5, _081BD2F8
|
|
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
|
|
ldr r1, _081BD2FC
|
|
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, _081BD300
|
|
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, _081BD304
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r1, _081BD308
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BD30C
|
|
str r1, [r0]
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BD2F0: .4byte 0x02023E88
|
|
_081BD2F4: .4byte 0x02023D08
|
|
_081BD2F8: .4byte 0x020205AC
|
|
_081BD2FC: .4byte 0x0000FFD8
|
|
_081BD300: .4byte 0x080A67B5
|
|
_081BD304: .4byte 0x08007141
|
|
_081BD308: .4byte 0x03005AC0
|
|
_081BD30C: .4byte 0x081BAB35
|
|
thumb_func_end PlayerPartnerHandleTrainerSlideBack
|
|
|
|
thumb_func_start PlayerPartnerHandleFaintAnimation
|
|
PlayerPartnerHandleFaintAnimation: @ 0x081BD310
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _081BD35C
|
|
ldr r4, [r6]
|
|
ldr r5, _081BD360
|
|
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 _081BD364
|
|
ldr r1, [r4]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _081BD344
|
|
adds r0, r2, #0
|
|
adds r1, r2, #0
|
|
movs r3, #5
|
|
bl InitAndLaunchSpecialAnimation
|
|
_081BD344:
|
|
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 _081BD3DA
|
|
.align 2, 0
|
|
_081BD35C: .4byte 0x02024174
|
|
_081BD360: .4byte 0x02023D08
|
|
_081BD364:
|
|
ldrb r1, [r3]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #0
|
|
bne _081BD3DA
|
|
strb r4, [r3, #4]
|
|
ldr r2, _081BD3E0
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r2, r0
|
|
ldr r2, _081BD3E4
|
|
adds r0, r0, r2
|
|
bl HandleLowHpMusicChange
|
|
movs r1, #0x40
|
|
rsbs r1, r1, #0
|
|
movs r0, #0x10
|
|
bl PlaySE12WithPanning
|
|
ldr r2, _081BD3E8
|
|
ldr r3, _081BD3EC
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
strh r4, [r0, #0x30]
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #5
|
|
strh r1, [r0, #0x32]
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, _081BD3F0
|
|
str r1, [r0]
|
|
ldr r1, _081BD3F4
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BD3F8
|
|
str r1, [r0]
|
|
_081BD3DA:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BD3E0: .4byte 0x02023D12
|
|
_081BD3E4: .4byte 0x02024190
|
|
_081BD3E8: .4byte 0x020205AC
|
|
_081BD3EC: .4byte 0x02023E88
|
|
_081BD3F0: .4byte 0x08039845
|
|
_081BD3F4: .4byte 0x03005AC0
|
|
_081BD3F8: .4byte 0x081BB429
|
|
thumb_func_end PlayerPartnerHandleFaintAnimation
|
|
|
|
thumb_func_start PlayerPartnerHandlePaletteFade
|
|
PlayerPartnerHandlePaletteFade: @ 0x081BD3FC
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandlePaletteFade
|
|
|
|
thumb_func_start PlayerPartnerHandleSuccessBallThrowAnim
|
|
PlayerPartnerHandleSuccessBallThrowAnim: @ 0x081BD408
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleSuccessBallThrowAnim
|
|
|
|
thumb_func_start PlayerPartnerHandleBallThrowAnim
|
|
PlayerPartnerHandleBallThrowAnim: @ 0x081BD414
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleBallThrowAnim
|
|
|
|
thumb_func_start PlayerPartnerHandlePause
|
|
PlayerPartnerHandlePause: @ 0x081BD420
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandlePause
|
|
|
|
thumb_func_start PlayerPartnerHandleMoveAnimation
|
|
PlayerPartnerHandleMoveAnimation: @ 0x081BD42C
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _081BD510
|
|
ldrb r0, [r6]
|
|
bl mplay_80342A4
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _081BD43E
|
|
b _081BD552
|
|
_081BD43E:
|
|
ldr r0, _081BD514
|
|
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, _081BD518
|
|
mov r1, ip
|
|
adds r1, #3
|
|
adds r2, r2, r1
|
|
ldrb r1, [r2]
|
|
strb r1, [r5]
|
|
ldr r4, _081BD51C
|
|
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, _081BD520
|
|
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, _081BD524
|
|
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, _081BD528
|
|
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, _081BD52C
|
|
ldrb r2, [r6]
|
|
lsls r2, r2, #9
|
|
mov r1, ip
|
|
adds r1, #0x10
|
|
adds r2, r2, r1
|
|
str r2, [r3]
|
|
ldr r3, _081BD530
|
|
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 _081BD534
|
|
bl PlayerPartnerBufferExecCompleted
|
|
b _081BD552
|
|
.align 2, 0
|
|
_081BD510: .4byte 0x02023D08
|
|
_081BD514: .4byte 0x02022D08
|
|
_081BD518: .4byte 0x020380D2
|
|
_081BD51C: .4byte 0x020380A8
|
|
_081BD520: .4byte 0x020380A4
|
|
_081BD524: .4byte 0x020380BA
|
|
_081BD528: .4byte 0x020380BC
|
|
_081BD52C: .4byte 0x020380A0
|
|
_081BD530: .4byte 0x02024160
|
|
_081BD534:
|
|
ldr r0, _081BD558
|
|
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, _081BD55C
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BD560
|
|
str r1, [r0]
|
|
_081BD552:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BD558: .4byte 0x02024174
|
|
_081BD55C: .4byte 0x03005AC0
|
|
_081BD560: .4byte 0x081BD565
|
|
thumb_func_end PlayerPartnerHandleMoveAnimation
|
|
|
|
thumb_func_start PlayerPartnerDoMoveAnimation
|
|
PlayerPartnerDoMoveAnimation: @ 0x081BD564
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
ldr r2, _081BD5B0
|
|
ldr r6, _081BD5B4
|
|
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, _081BD5B8
|
|
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 _081BD5FC
|
|
cmp r2, #1
|
|
bgt _081BD5BC
|
|
cmp r2, #0
|
|
beq _081BD5C6
|
|
b _081BD6D8
|
|
.align 2, 0
|
|
_081BD5B0: .4byte 0x02022D08
|
|
_081BD5B4: .4byte 0x02023D08
|
|
_081BD5B8: .4byte 0x02024174
|
|
_081BD5BC:
|
|
cmp r2, #2
|
|
beq _081BD626
|
|
cmp r2, #3
|
|
beq _081BD69C
|
|
b _081BD6D8
|
|
_081BD5C6:
|
|
ldr r1, [r5]
|
|
lsls r0, r3, #2
|
|
adds r1, r0, r1
|
|
ldrb r2, [r1]
|
|
movs r0, #0xc
|
|
ands r0, r2
|
|
cmp r0, #4
|
|
bne _081BD5E8
|
|
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
|
|
_081BD5E8:
|
|
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 _081BD6D8
|
|
_081BD5FC:
|
|
ldrb r1, [r0]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _081BD6D8
|
|
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 _081BD6D8
|
|
_081BD626:
|
|
ldr r0, _081BD68C
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r0, _081BD690
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _081BD6D8
|
|
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 _081BD674
|
|
mov r0, r8
|
|
cmp r0, #1
|
|
bhi _081BD674
|
|
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]
|
|
_081BD674:
|
|
ldr r0, _081BD694
|
|
ldr r2, [r0]
|
|
ldr r0, _081BD698
|
|
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 _081BD6D8
|
|
.align 2, 0
|
|
_081BD68C: .4byte 0x02038098
|
|
_081BD690: .4byte 0x0203809D
|
|
_081BD694: .4byte 0x02024174
|
|
_081BD698: .4byte 0x02023D08
|
|
_081BD69C:
|
|
ldrb r1, [r0]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #0
|
|
bne _081BD6D8
|
|
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 PlayerPartnerBufferExecCompleted
|
|
_081BD6D8:
|
|
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 PlayerPartnerDoMoveAnimation
|
|
|
|
thumb_func_start PlayerPartnerHandlePrintString
|
|
PlayerPartnerHandlePrintString: @ 0x081BD6E8
|
|
push {r4, lr}
|
|
ldr r0, _081BD720
|
|
movs r1, #0
|
|
strh r1, [r0]
|
|
ldr r0, _081BD724
|
|
strh r1, [r0]
|
|
ldr r4, _081BD728
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #9
|
|
ldr r1, _081BD72C
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
bl BufferStringBattle
|
|
ldr r0, _081BD730
|
|
movs r1, #0
|
|
bl sub_0814FA04
|
|
ldr r1, _081BD734
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BD738
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BD720: .4byte 0x02022AC8
|
|
_081BD724: .4byte 0x02022ACA
|
|
_081BD728: .4byte 0x02023D08
|
|
_081BD72C: .4byte 0x02022D0A
|
|
_081BD730: .4byte 0x02022AE0
|
|
_081BD734: .4byte 0x03005AC0
|
|
_081BD738: .4byte 0x081BB535
|
|
thumb_func_end PlayerPartnerHandlePrintString
|
|
|
|
thumb_func_start PlayerPartnerHandlePrintSelectionString
|
|
PlayerPartnerHandlePrintSelectionString: @ 0x081BD73C
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandlePrintSelectionString
|
|
|
|
thumb_func_start PlayerPartnerHandleChooseAction
|
|
PlayerPartnerHandleChooseAction: @ 0x081BD748
|
|
push {lr}
|
|
bl AI_TrySwitchOrUseItem
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleChooseAction
|
|
|
|
thumb_func_start PlayerPartnerHandleUnknownYesNoBox
|
|
PlayerPartnerHandleUnknownYesNoBox: @ 0x081BD758
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleUnknownYesNoBox
|
|
|
|
thumb_func_start PlayerPartnerHandleChooseMove
|
|
PlayerPartnerHandleChooseMove: @ 0x081BD764
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _081BD7F4
|
|
ldrb r4, [r6]
|
|
lsls r4, r4, #9
|
|
ldr r0, _081BD7F8
|
|
adds r4, r4, r0
|
|
movs r0, #0xf
|
|
bl BattleAI_SetupAIData
|
|
bl BattleAI_ChooseMoveOrAction
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
ldr r2, _081BD7FC
|
|
lsls r0, r5, #1
|
|
adds r4, r4, r0
|
|
ldrh r1, [r4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #6]
|
|
movs r0, #0x12
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _081BD79E
|
|
ldr r1, _081BD800
|
|
ldrb r0, [r6]
|
|
strb r0, [r1]
|
|
_081BD79E:
|
|
ldrh r1, [r4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #6]
|
|
movs r0, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _081BD7D8
|
|
movs r0, #1
|
|
bl GetBattlerAtPosition
|
|
ldr r4, _081BD800
|
|
strb r0, [r4]
|
|
ldr r0, _081BD804
|
|
ldrb r1, [r0]
|
|
ldr r2, _081BD808
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _081BD7D8
|
|
movs r0, #3
|
|
bl GetBattlerAtPosition
|
|
strb r0, [r4]
|
|
_081BD7D8:
|
|
ldr r0, _081BD800
|
|
ldrb r2, [r0]
|
|
lsls r2, r2, #8
|
|
orrs r2, r5
|
|
movs r0, #1
|
|
movs r1, #0xa
|
|
bl BtlController_EmitTwoReturnValues
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BD7F4: .4byte 0x02023D08
|
|
_081BD7F8: .4byte 0x02022D0C
|
|
_081BD7FC: .4byte 0x082ED220
|
|
_081BD800: .4byte 0x02023EB0
|
|
_081BD804: .4byte 0x02023EB4
|
|
_081BD808: .4byte 0x082FACB4
|
|
thumb_func_end PlayerPartnerHandleChooseMove
|
|
|
|
thumb_func_start PlayerPartnerHandleChooseItem
|
|
PlayerPartnerHandleChooseItem: @ 0x081BD80C
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleChooseItem
|
|
|
|
thumb_func_start PlayerPartnerHandleChoosePokemon
|
|
PlayerPartnerHandleChoosePokemon: @ 0x081BD818
|
|
push {r4, r5, r6, lr}
|
|
bl GetMostSuitableMonToSwitchInto
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #6
|
|
bne _081BD86C
|
|
movs r0, #0
|
|
bl GetBattlerAtPosition
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
movs r0, #2
|
|
bl GetBattlerAtPosition
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
movs r4, #3
|
|
b _081BD840
|
|
_081BD83E:
|
|
adds r4, #1
|
|
_081BD840:
|
|
cmp r4, #5
|
|
bgt _081BD86C
|
|
movs r0, #0x64
|
|
muls r0, r4, r0
|
|
ldr r1, _081BD890
|
|
adds r0, r0, r1
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _081BD83E
|
|
ldr r1, _081BD894
|
|
lsls r0, r6, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
beq _081BD83E
|
|
lsls r0, r5, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
beq _081BD83E
|
|
_081BD86C:
|
|
ldr r0, _081BD898
|
|
ldrb r0, [r0]
|
|
ldr r1, _081BD89C
|
|
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 PlayerPartnerBufferExecCompleted
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BD890: .4byte 0x02024190
|
|
_081BD894: .4byte 0x02023D12
|
|
_081BD898: .4byte 0x02023D08
|
|
_081BD89C: .4byte 0x02024140
|
|
thumb_func_end PlayerPartnerHandleChoosePokemon
|
|
|
|
thumb_func_start PlayerPartnerHandleCmd23
|
|
PlayerPartnerHandleCmd23: @ 0x081BD8A0
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleCmd23
|
|
|
|
thumb_func_start PlayerPartnerHandleHealthBarUpdate
|
|
PlayerPartnerHandleHealthBarUpdate: @ 0x081BD8AC
|
|
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, _081BD924
|
|
ldr r0, _081BD928
|
|
mov sb, r0
|
|
ldrb r4, [r0]
|
|
lsls r2, r4, #9
|
|
adds r0, r3, #2
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
adds r3, #3
|
|
adds r2, r2, r3
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
lsls r1, r1, #0x10
|
|
asrs r7, r1, #0x10
|
|
ldr r0, _081BD92C
|
|
cmp r7, r0
|
|
beq _081BD93C
|
|
ldr r6, _081BD930
|
|
lsls r0, r4, #1
|
|
adds r0, r0, r6
|
|
ldrh r0, [r0]
|
|
movs r5, #0x64
|
|
muls r0, r5, r0
|
|
ldr r4, _081BD934
|
|
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, _081BD938
|
|
adds r1, r0, r1
|
|
ldrb r1, [r1]
|
|
str r7, [sp]
|
|
mov r2, r8
|
|
bl SetBattleBarStruct
|
|
b _081BD966
|
|
.align 2, 0
|
|
_081BD924: .4byte 0x02022D08
|
|
_081BD928: .4byte 0x02023D08
|
|
_081BD92C: .4byte 0x00007FFF
|
|
_081BD930: .4byte 0x02023D12
|
|
_081BD934: .4byte 0x02024190
|
|
_081BD938: .4byte 0x03005AD0
|
|
_081BD93C:
|
|
ldr r1, _081BD984
|
|
lsls r0, r4, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _081BD988
|
|
adds r0, r0, r1
|
|
movs r1, #0x3a
|
|
bl GetMonData
|
|
adds r2, r0, #0
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
ldr r1, _081BD98C
|
|
adds r1, r0, r1
|
|
ldrb r1, [r1]
|
|
str r7, [sp]
|
|
movs r3, #0
|
|
bl SetBattleBarStruct
|
|
_081BD966:
|
|
ldr r1, _081BD990
|
|
ldr r0, _081BD994
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BD998
|
|
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
|
|
_081BD984: .4byte 0x02023D12
|
|
_081BD988: .4byte 0x02024190
|
|
_081BD98C: .4byte 0x03005AD0
|
|
_081BD990: .4byte 0x03005AC0
|
|
_081BD994: .4byte 0x02023D08
|
|
_081BD998: .4byte 0x081BAEB1
|
|
thumb_func_end PlayerPartnerHandleHealthBarUpdate
|
|
|
|
thumb_func_start PlayerPartnerHandleExpUpdate
|
|
PlayerPartnerHandleExpUpdate: @ 0x081BD99C
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r5, _081BD9C8
|
|
ldr r6, _081BD9CC
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #9
|
|
adds r1, r5, #1
|
|
adds r0, r0, r1
|
|
ldrb r7, [r0]
|
|
movs r0, #0x64
|
|
adds r1, r7, #0
|
|
muls r1, r0, r1
|
|
ldr r0, _081BD9D0
|
|
adds r4, r1, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
cmp r0, #0x63
|
|
bls _081BD9D4
|
|
bl PlayerPartnerBufferExecCompleted
|
|
b _081BDA20
|
|
.align 2, 0
|
|
_081BD9C8: .4byte 0x02022D08
|
|
_081BD9CC: .4byte 0x02023D08
|
|
_081BD9D0: .4byte 0x02024190
|
|
_081BD9D4:
|
|
movs r0, #1
|
|
bl LoadBattleBarGfx
|
|
adds r0, r4, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
ldrb r1, [r6]
|
|
lsls r1, r1, #9
|
|
adds r0, r5, #2
|
|
adds r0, r1, r0
|
|
ldrb r4, [r0]
|
|
adds r0, r5, #3
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #8
|
|
orrs r4, r0
|
|
ldr r0, _081BDA28
|
|
movs r1, #0xa
|
|
bl CreateTask
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r2, _081BDA2C
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
strh r7, [r1, #8]
|
|
strh r4, [r1, #0xa]
|
|
ldrb r0, [r6]
|
|
strh r0, [r1, #0xc]
|
|
ldr r1, _081BDA30
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BDA34
|
|
str r1, [r0]
|
|
_081BDA20:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BDA28: .4byte 0x081BAF39
|
|
_081BDA2C: .4byte 0x03005B60
|
|
_081BDA30: .4byte 0x03005AC0
|
|
_081BDA34: .4byte 0x08057069
|
|
thumb_func_end PlayerPartnerHandleExpUpdate
|
|
|
|
thumb_func_start PlayerPartnerHandleStatusIconUpdate
|
|
PlayerPartnerHandleStatusIconUpdate: @ 0x081BDA38
|
|
push {r4, lr}
|
|
ldr r4, _081BDA94
|
|
ldrb r0, [r4]
|
|
bl mplay_80342A4
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _081BDA8C
|
|
ldr r0, _081BDA98
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
ldr r2, _081BDA9C
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, #0x64
|
|
muls r1, r2, r1
|
|
ldr r2, _081BDAA0
|
|
adds r1, r1, r2
|
|
movs r2, #9
|
|
bl UpdateHealthboxAttribute
|
|
ldrb r2, [r4]
|
|
ldr r0, _081BDAA4
|
|
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, _081BDAA8
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BDAAC
|
|
str r1, [r0]
|
|
_081BDA8C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BDA94: .4byte 0x02023D08
|
|
_081BDA98: .4byte 0x03005AD0
|
|
_081BDA9C: .4byte 0x02023D12
|
|
_081BDAA0: .4byte 0x02024190
|
|
_081BDAA4: .4byte 0x02024174
|
|
_081BDAA8: .4byte 0x03005AC0
|
|
_081BDAAC: .4byte 0x081BB8A1
|
|
thumb_func_end PlayerPartnerHandleStatusIconUpdate
|
|
|
|
thumb_func_start PlayerPartnerHandleStatusAnimation
|
|
PlayerPartnerHandleStatusAnimation: @ 0x081BDAB0
|
|
push {r4, r5, lr}
|
|
ldr r5, _081BDB08
|
|
ldrb r0, [r5]
|
|
bl mplay_80342A4
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _081BDB00
|
|
ldr r4, _081BDB0C
|
|
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, _081BDB10
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BDB14
|
|
str r1, [r0]
|
|
_081BDB00:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BDB08: .4byte 0x02023D08
|
|
_081BDB0C: .4byte 0x02022D08
|
|
_081BDB10: .4byte 0x03005AC0
|
|
_081BDB14: .4byte 0x081BB8A1
|
|
thumb_func_end PlayerPartnerHandleStatusAnimation
|
|
|
|
thumb_func_start PlayerPartnerHandleStatusXor
|
|
PlayerPartnerHandleStatusXor: @ 0x081BDB18
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleStatusXor
|
|
|
|
thumb_func_start PlayerPartnerHandleDataTransfer
|
|
PlayerPartnerHandleDataTransfer: @ 0x081BDB24
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleDataTransfer
|
|
|
|
thumb_func_start PlayerPartnerHandleDMA3Transfer
|
|
PlayerPartnerHandleDMA3Transfer: @ 0x081BDB30
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleDMA3Transfer
|
|
|
|
thumb_func_start PlayerPartnerHandlePlayBGM
|
|
PlayerPartnerHandlePlayBGM: @ 0x081BDB3C
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandlePlayBGM
|
|
|
|
thumb_func_start PlayerPartnerHandleCmd32
|
|
PlayerPartnerHandleCmd32: @ 0x081BDB48
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleCmd32
|
|
|
|
thumb_func_start PlayerPartnerHandleTwoReturnValues
|
|
PlayerPartnerHandleTwoReturnValues: @ 0x081BDB54
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleTwoReturnValues
|
|
|
|
thumb_func_start PlayerPartnerHandleChosenMonReturnValue
|
|
PlayerPartnerHandleChosenMonReturnValue: @ 0x081BDB60
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleChosenMonReturnValue
|
|
|
|
thumb_func_start PlayerPartnerHandleOneReturnValue
|
|
PlayerPartnerHandleOneReturnValue: @ 0x081BDB6C
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleOneReturnValue
|
|
|
|
thumb_func_start PlayerPartnerHandleOneReturnValue_Duplicate
|
|
PlayerPartnerHandleOneReturnValue_Duplicate: @ 0x081BDB78
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleOneReturnValue_Duplicate
|
|
|
|
thumb_func_start PlayerPartnerHandleCmd37
|
|
PlayerPartnerHandleCmd37: @ 0x081BDB84
|
|
push {lr}
|
|
ldr r2, _081BDB9C
|
|
ldrb r1, [r2]
|
|
movs r0, #0x80
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BDB9C: .4byte 0x020229C0
|
|
thumb_func_end PlayerPartnerHandleCmd37
|
|
|
|
thumb_func_start PlayerPartnerHandleCmd38
|
|
PlayerPartnerHandleCmd38: @ 0x081BDBA0
|
|
push {lr}
|
|
ldr r3, _081BDBCC
|
|
ldr r1, _081BDBD0
|
|
ldr r0, _081BDBD4
|
|
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 PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BDBCC: .4byte 0x020229C0
|
|
_081BDBD0: .4byte 0x02022D08
|
|
_081BDBD4: .4byte 0x02023D08
|
|
thumb_func_end PlayerPartnerHandleCmd38
|
|
|
|
thumb_func_start PlayerPartnerHandleCmd39
|
|
PlayerPartnerHandleCmd39: @ 0x081BDBD8
|
|
push {lr}
|
|
ldr r2, _081BDBEC
|
|
ldrb r1, [r2]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BDBEC: .4byte 0x020229C0
|
|
thumb_func_end PlayerPartnerHandleCmd39
|
|
|
|
thumb_func_start PlayerPartnerHandleCmd40
|
|
PlayerPartnerHandleCmd40: @ 0x081BDBF0
|
|
push {lr}
|
|
ldr r3, _081BDC14
|
|
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 PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BDC14: .4byte 0x020229C0
|
|
thumb_func_end PlayerPartnerHandleCmd40
|
|
|
|
thumb_func_start PlayerPartnerHandleHitAnimation
|
|
PlayerPartnerHandleHitAnimation: @ 0x081BDC18
|
|
push {r4, lr}
|
|
ldr r3, _081BDC40
|
|
ldr r2, _081BDC44
|
|
ldr r4, _081BDC48
|
|
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 _081BDC4C
|
|
bl PlayerPartnerBufferExecCompleted
|
|
b _081BDC76
|
|
.align 2, 0
|
|
_081BDC40: .4byte 0x020205AC
|
|
_081BDC44: .4byte 0x02023E88
|
|
_081BDC48: .4byte 0x02023D08
|
|
_081BDC4C:
|
|
ldr r1, _081BDC7C
|
|
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, _081BDC80
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BDC84
|
|
str r1, [r0]
|
|
_081BDC76:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BDC7C: .4byte 0x0202415D
|
|
_081BDC80: .4byte 0x03005AC0
|
|
_081BDC84: .4byte 0x081BB54D
|
|
thumb_func_end PlayerPartnerHandleHitAnimation
|
|
|
|
thumb_func_start PlayerPartnerHandleCmd42
|
|
PlayerPartnerHandleCmd42: @ 0x081BDC88
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleCmd42
|
|
|
|
thumb_func_start PlayerPartnerHandlePlaySE
|
|
PlayerPartnerHandlePlaySE: @ 0x081BDC94
|
|
push {r4, lr}
|
|
ldr r4, _081BDCD0
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
movs r3, #0x3f
|
|
cmp r0, #0
|
|
bne _081BDCA8
|
|
movs r3, #0xc0
|
|
_081BDCA8:
|
|
ldr r2, _081BDCD4
|
|
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 PlayerPartnerBufferExecCompleted
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BDCD0: .4byte 0x02023D08
|
|
_081BDCD4: .4byte 0x02022D08
|
|
thumb_func_end PlayerPartnerHandlePlaySE
|
|
|
|
thumb_func_start PlayerPartnerHandlePlayFanfareOrBGM
|
|
PlayerPartnerHandlePlayFanfareOrBGM: @ 0x081BDCD8
|
|
push {r4, r5, lr}
|
|
ldr r4, _081BDD0C
|
|
ldr r5, _081BDD10
|
|
ldrb r0, [r5]
|
|
lsls r3, r0, #9
|
|
adds r0, r4, #3
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _081BDD14
|
|
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 _081BDD28
|
|
.align 2, 0
|
|
_081BDD0C: .4byte 0x02022D08
|
|
_081BDD10: .4byte 0x02023D08
|
|
_081BDD14:
|
|
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
|
|
_081BDD28:
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandlePlayFanfareOrBGM
|
|
|
|
thumb_func_start PlayerPartnerHandleFaintingCry
|
|
PlayerPartnerHandleFaintingCry: @ 0x081BDD34
|
|
push {lr}
|
|
ldr r1, _081BDD68
|
|
ldr r0, _081BDD6C
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _081BDD70
|
|
adds r0, r0, r1
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0x19
|
|
rsbs r1, r1, #0
|
|
movs r2, #5
|
|
bl PlayCry3
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BDD68: .4byte 0x02023D12
|
|
_081BDD6C: .4byte 0x02023D08
|
|
_081BDD70: .4byte 0x02024190
|
|
thumb_func_end PlayerPartnerHandleFaintingCry
|
|
|
|
thumb_func_start PlayerPartnerHandleIntroSlide
|
|
PlayerPartnerHandleIntroSlide: @ 0x081BDD74
|
|
push {lr}
|
|
ldr r1, _081BDD9C
|
|
ldr r0, _081BDDA0
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #9
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
bl HandleIntroSlide
|
|
ldr r2, _081BDDA4
|
|
ldrh r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BDD9C: .4byte 0x02022D08
|
|
_081BDDA0: .4byte 0x02023D08
|
|
_081BDDA4: .4byte 0x020240A0
|
|
thumb_func_end PlayerPartnerHandleIntroSlide
|
|
|
|
thumb_func_start PlayerPartnerHandleIntroTrainerBallThrow
|
|
PlayerPartnerHandleIntroTrainerBallThrow: @ 0x081BDDA8
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _081BDE70
|
|
ldr r5, _081BDE74
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r4, _081BDE78
|
|
adds r0, r0, r4
|
|
bl SetSpritePrimaryCoordsFromSecondaryCoords
|
|
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, #0x32
|
|
strh r1, [r0, #0x2e]
|
|
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, _081BDE7C
|
|
strh r1, [r0, #0x32]
|
|
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
|
|
ldrh r1, [r0, #0x22]
|
|
strh r1, [r0, #0x36]
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r6
|
|
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, _081BDE80
|
|
str r1, [r0]
|
|
ldrb r2, [r5]
|
|
adds r0, r2, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
strh r2, [r0, #0x38]
|
|
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, _081BDE84
|
|
bl StoreSpriteCallbackInData6
|
|
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, #1
|
|
bl StartSpriteAnim
|
|
ldr r0, _081BDE88
|
|
bl AllocSpritePalette
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
ldr r2, _081BDE8C
|
|
ldrh r1, [r2]
|
|
ldr r0, _081BDE90
|
|
cmp r1, r0
|
|
bne _081BDE98
|
|
ldr r0, _081BDE94
|
|
ldr r0, [r0, #0x38]
|
|
lsls r4, r4, #4
|
|
movs r2, #0x80
|
|
lsls r2, r2, #1
|
|
adds r1, r4, r2
|
|
movs r2, #0x20
|
|
bl LoadCompressedPalette
|
|
b _081BDEB6
|
|
.align 2, 0
|
|
_081BDE70: .4byte 0x02023E88
|
|
_081BDE74: .4byte 0x02023D08
|
|
_081BDE78: .4byte 0x020205AC
|
|
_081BDE7C: .4byte 0x0000FFD8
|
|
_081BDE80: .4byte 0x080A67B5
|
|
_081BDE84: .4byte 0x0805C81D
|
|
_081BDE88: .4byte 0x0000D6F9
|
|
_081BDE8C: .4byte 0x0203886E
|
|
_081BDE90: .4byte 0x00000C03
|
|
_081BDE94: .4byte 0x082D961C
|
|
_081BDE98:
|
|
ldrh r0, [r2]
|
|
bl GetFrontierTrainerFrontSpriteId
|
|
lsls r0, r0, #0x18
|
|
ldr r1, _081BDF38
|
|
lsrs r0, r0, #0x15
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
lsls r4, r4, #4
|
|
movs r2, #0x80
|
|
lsls r2, r2, #1
|
|
adds r1, r4, r2
|
|
movs r2, #0x20
|
|
bl LoadCompressedPalette
|
|
_081BDEB6:
|
|
ldr r2, _081BDF3C
|
|
ldr r1, _081BDF40
|
|
ldr r5, _081BDF44
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, #4
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldrb r2, [r1, #5]
|
|
movs r0, #0xf
|
|
ands r0, r2
|
|
orrs r0, r4
|
|
strb r0, [r1, #5]
|
|
ldr r0, _081BDF48
|
|
movs r1, #5
|
|
bl CreateTask
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r4, _081BDF4C
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r4
|
|
ldrb r0, [r5]
|
|
strh r0, [r1, #8]
|
|
ldr r3, _081BDF50
|
|
ldr r0, [r3]
|
|
ldrb r2, [r5]
|
|
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 _081BDF1A
|
|
ldr r0, _081BDF54
|
|
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, _081BDF58
|
|
str r1, [r0]
|
|
_081BDF1A:
|
|
ldr r0, [r3]
|
|
ldr r2, [r0, #8]
|
|
ldrb r0, [r2, #9]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #9]
|
|
ldr r1, _081BDF5C
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BDF60
|
|
str r1, [r0]
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BDF38: .4byte 0x082D91CC
|
|
_081BDF3C: .4byte 0x020205AC
|
|
_081BDF40: .4byte 0x02023E88
|
|
_081BDF44: .4byte 0x02023D08
|
|
_081BDF48: .4byte 0x081BDF65
|
|
_081BDF4C: .4byte 0x03005B60
|
|
_081BDF50: .4byte 0x02024174
|
|
_081BDF54: .4byte 0x02024158
|
|
_081BDF58: .4byte 0x0807352D
|
|
_081BDF5C: .4byte 0x03005AC0
|
|
_081BDF60: .4byte 0x081BAA8D
|
|
thumb_func_end PlayerPartnerHandleIntroTrainerBallThrow
|
|
|
|
thumb_func_start sub_081BDF64
|
|
sub_081BDF64: @ 0x081BDF64
|
|
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 r1, _081BDF8C
|
|
lsls r0, r0, #2
|
|
add r0, r8
|
|
lsls r0, r0, #3
|
|
adds r1, r0, r1
|
|
ldrh r2, [r1, #0xa]
|
|
movs r3, #0xa
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, #0x17
|
|
bgt _081BDF90
|
|
adds r0, r2, #1
|
|
strh r0, [r1, #0xa]
|
|
b _081BE04C
|
|
.align 2, 0
|
|
_081BDF8C: .4byte 0x03005B60
|
|
_081BDF90:
|
|
ldr r7, _081BDFD0
|
|
ldrb r0, [r7]
|
|
mov sb, r0
|
|
ldrh r0, [r1, #8]
|
|
strb r0, [r7]
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _081BDFB0
|
|
ldr r0, _081BDFD4
|
|
ldr r0, [r0]
|
|
movs r1, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _081BDFE0
|
|
_081BDFB0:
|
|
ldr r0, _081BDFD8
|
|
ldrb r1, [r7]
|
|
lsls r2, r1, #9
|
|
adds r0, #1
|
|
adds r2, r2, r0
|
|
ldr r0, _081BDFDC
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
strb r0, [r2]
|
|
ldrb r0, [r7]
|
|
movs r1, #0
|
|
bl sub_081BCD80
|
|
b _081BE034
|
|
.align 2, 0
|
|
_081BDFD0: .4byte 0x02023D08
|
|
_081BDFD4: .4byte 0x02022C90
|
|
_081BDFD8: .4byte 0x02022D08
|
|
_081BDFDC: .4byte 0x02023D12
|
|
_081BDFE0:
|
|
ldr r4, _081BE058
|
|
ldrb r0, [r7]
|
|
lsls r1, r0, #9
|
|
adds r4, #1
|
|
adds r1, r1, r4
|
|
ldr r5, _081BE05C
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r5
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
movs r1, #0
|
|
bl sub_081BCD80
|
|
ldrb r0, [r7]
|
|
movs r6, #2
|
|
eors r0, r6
|
|
strb r0, [r7]
|
|
ldrb r0, [r7]
|
|
lsls r1, r0, #9
|
|
adds r1, r1, r4
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r5
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r1, [r7]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r5
|
|
ldrh r2, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r2, r0
|
|
ldr r2, _081BE060
|
|
adds r0, r0, r2
|
|
bl BattleLoadPlayerMonSpriteGfx
|
|
ldrb r0, [r7]
|
|
movs r1, #0
|
|
bl sub_081BCD80
|
|
ldrb r0, [r7]
|
|
eors r0, r6
|
|
strb r0, [r7]
|
|
_081BE034:
|
|
ldr r1, _081BE064
|
|
ldr r2, _081BE068
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BE06C
|
|
str r1, [r0]
|
|
mov r3, sb
|
|
strb r3, [r2]
|
|
mov r0, r8
|
|
bl DestroyTask
|
|
_081BE04C:
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BE058: .4byte 0x02022D08
|
|
_081BE05C: .4byte 0x02023D12
|
|
_081BE060: .4byte 0x02024190
|
|
_081BE064: .4byte 0x03005AC0
|
|
_081BE068: .4byte 0x02023D08
|
|
_081BE06C: .4byte 0x081BACC9
|
|
thumb_func_end sub_081BDF64
|
|
|
|
thumb_func_start PlayerPartnerHandleDrawPartyStatusSummary
|
|
PlayerPartnerHandleDrawPartyStatusSummary: @ 0x081BE070
|
|
push {r4, r5, r6, lr}
|
|
ldr r1, _081BE098
|
|
ldr r0, _081BE09C
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, #9
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _081BE0A0
|
|
adds r0, r2, #0
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _081BE0A0
|
|
bl PlayerPartnerBufferExecCompleted
|
|
b _081BE114
|
|
.align 2, 0
|
|
_081BE098: .4byte 0x02022D08
|
|
_081BE09C: .4byte 0x02023D08
|
|
_081BE0A0:
|
|
ldr r6, _081BE11C
|
|
ldr r0, [r6]
|
|
ldr r5, _081BE120
|
|
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]
|
|
movs r2, #1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldrb r0, [r5]
|
|
lsls r3, r0, #9
|
|
ldr r4, _081BE124
|
|
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, _081BE128
|
|
ldrb r1, [r5]
|
|
adds r1, r1, r2
|
|
movs r3, #0
|
|
strb r0, [r1]
|
|
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 _081BE108
|
|
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]
|
|
_081BE108:
|
|
ldr r0, _081BE12C
|
|
ldrb r1, [r5]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, _081BE130
|
|
str r0, [r1]
|
|
_081BE114:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BE11C: .4byte 0x02024174
|
|
_081BE120: .4byte 0x02023D08
|
|
_081BE124: .4byte 0x02022D0C
|
|
_081BE128: .4byte 0x02024158
|
|
_081BE12C: .4byte 0x03005AC0
|
|
_081BE130: .4byte 0x081BE135
|
|
thumb_func_end PlayerPartnerHandleDrawPartyStatusSummary
|
|
|
|
thumb_func_start sub_081BE134
|
|
sub_081BE134: @ 0x081BE134
|
|
push {r4, lr}
|
|
ldr r4, _081BE174
|
|
ldr r0, [r4]
|
|
ldr r3, _081BE178
|
|
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 _081BE16C
|
|
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 PlayerPartnerBufferExecCompleted
|
|
_081BE16C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BE174: .4byte 0x02024174
|
|
_081BE178: .4byte 0x02023D08
|
|
thumb_func_end sub_081BE134
|
|
|
|
thumb_func_start PlayerPartnerHandleHidePartyStatusSummary
|
|
PlayerPartnerHandleHidePartyStatusSummary: @ 0x081BE17C
|
|
push {lr}
|
|
ldr r0, _081BE1B8
|
|
ldr r1, [r0]
|
|
ldr r0, _081BE1BC
|
|
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 _081BE1AE
|
|
ldr r2, _081BE1C0
|
|
ldr r0, _081BE1C4
|
|
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, _081BE1C8
|
|
str r1, [r0]
|
|
_081BE1AE:
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BE1B8: .4byte 0x02024174
|
|
_081BE1BC: .4byte 0x02023D08
|
|
_081BE1C0: .4byte 0x03005B60
|
|
_081BE1C4: .4byte 0x02024158
|
|
_081BE1C8: .4byte 0x0807352D
|
|
thumb_func_end PlayerPartnerHandleHidePartyStatusSummary
|
|
|
|
thumb_func_start PlayerPartnerHandleEndBounceEffect
|
|
PlayerPartnerHandleEndBounceEffect: @ 0x081BE1CC
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleEndBounceEffect
|
|
|
|
thumb_func_start PlayerPartnerHandleSpriteInvisibility
|
|
PlayerPartnerHandleSpriteInvisibility: @ 0x081BE1D8
|
|
push {r4, lr}
|
|
ldr r4, _081BE228
|
|
ldrb r0, [r4]
|
|
bl IsBattlerSpritePresent
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _081BE21E
|
|
ldr r3, _081BE22C
|
|
ldr r0, _081BE230
|
|
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, _081BE234
|
|
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
|
|
_081BE21E:
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BE228: .4byte 0x02023D08
|
|
_081BE22C: .4byte 0x020205AC
|
|
_081BE230: .4byte 0x02023E88
|
|
_081BE234: .4byte 0x02022D08
|
|
thumb_func_end PlayerPartnerHandleSpriteInvisibility
|
|
|
|
thumb_func_start PlayerPartnerHandleBattleAnimation
|
|
PlayerPartnerHandleBattleAnimation: @ 0x081BE238
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #4
|
|
ldr r6, _081BE27C
|
|
ldrb r0, [r6]
|
|
bl mplay_80342A4
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _081BE290
|
|
ldr r5, _081BE280
|
|
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 _081BE284
|
|
bl PlayerPartnerBufferExecCompleted
|
|
b _081BE290
|
|
.align 2, 0
|
|
_081BE27C: .4byte 0x02023D08
|
|
_081BE280: .4byte 0x02022D08
|
|
_081BE284:
|
|
ldr r0, _081BE298
|
|
ldrb r1, [r6]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, _081BE29C
|
|
str r0, [r1]
|
|
_081BE290:
|
|
add sp, #4
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BE298: .4byte 0x03005AC0
|
|
_081BE29C: .4byte 0x081BB8D1
|
|
thumb_func_end PlayerPartnerHandleBattleAnimation
|
|
|
|
thumb_func_start PlayerPartnerHandleLinkStandbyMsg
|
|
PlayerPartnerHandleLinkStandbyMsg: @ 0x081BE2A0
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleLinkStandbyMsg
|
|
|
|
thumb_func_start PlayerPartnerHandleResetActionMoveSelection
|
|
PlayerPartnerHandleResetActionMoveSelection: @ 0x081BE2AC
|
|
push {lr}
|
|
bl PlayerPartnerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerPartnerHandleResetActionMoveSelection
|
|
|
|
thumb_func_start PlayerPartnerHandleCmd55
|
|
PlayerPartnerHandleCmd55: @ 0x081BE2B8
|
|
push {r4, lr}
|
|
ldr r2, _081BE2F0
|
|
ldr r1, _081BE2F4
|
|
ldr r4, _081BE2F8
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #9
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
movs r0, #5
|
|
bl FadeOutMapMusic
|
|
movs r0, #3
|
|
bl BeginFastPaletteFade
|
|
bl PlayerPartnerBufferExecCompleted
|
|
ldr r1, _081BE2FC
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _081BE300
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081BE2F0: .4byte 0x02023FDE
|
|
_081BE2F4: .4byte 0x02022D08
|
|
_081BE2F8: .4byte 0x02023D08
|
|
_081BE2FC: .4byte 0x03005AC0
|
|
_081BE300: .4byte 0x080583C1
|
|
thumb_func_end PlayerPartnerHandleCmd55
|
|
|
|
thumb_func_start nullsub_77
|
|
nullsub_77: @ 0x081BE304
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end nullsub_77
|
|
|