pokeemerald/asm/battle_controller_recorded_player.s

6145 lines
93 KiB
ArmAsm
Raw Normal View History

2017-09-03 18:58:40 +02:00
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start nullsub_120
nullsub_120: @ 8189948
bx lr
thumb_func_end nullsub_120
thumb_func_start SetBankFuncToRecordedPlayerBufferRunCommand
SetBankFuncToRecordedPlayerBufferRunCommand: @ 818994C
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, =RecordedPlayerBufferRunCommand
str r1, [r0]
bx lr
.pool
thumb_func_end SetBankFuncToRecordedPlayerBufferRunCommand
thumb_func_start RecordedPlayerBufferRunCommand
RecordedPlayerBufferRunCommand: @ 8189968
push {lr}
ldr r2, =gBattleExecBuffer
ldr r1, =gBitTable
ldr r0, =gActiveBank
ldrb r3, [r0]
lsls r0, r3, 2
adds r0, r1
ldr r1, [r2]
ldr r0, [r0]
ands r1, r0
cmp r1, 0
beq _081899B4
ldr r0, =gBattleBufferA
lsls r1, r3, 9
adds r1, r0
ldrb r0, [r1]
cmp r0, 0x38
bhi _081899B0
ldr r0, =gRecordedPlayerBufferCommands
ldrb r1, [r1]
lsls r1, 2
adds r1, r0
ldr r0, [r1]
bl _call_via_r0
b _081899B4
.pool
_081899B0:
bl RecordedPlayerBufferExecCompleted
_081899B4:
pop {r0}
bx r0
thumb_func_end RecordedPlayerBufferRunCommand
thumb_func_start sub_81899B8
sub_81899B8: @ 81899B8
push {lr}
ldr r2, =gSprites
ldr r1, =gBankSpriteIds
ldr r0, =gActiveBank
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _081899DC
bl RecordedPlayerBufferExecCompleted
_081899DC:
pop {r0}
bx r0
.pool
thumb_func_end sub_81899B8
thumb_func_start sub_81899F0
sub_81899F0: @ 81899F0
push {r4-r6,lr}
ldr r6, =gSprites
ldr r5, =gBankSpriteIds
ldr r4, =gActiveBank
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r6, 0
adds r1, 0x1C
adds r0, r1
ldr r1, [r0]
ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08189A40
movs r0, 0
bl nullsub_25
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
bl FreeSpriteOamMatrix
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
bl DestroySprite
bl RecordedPlayerBufferExecCompleted
_08189A40:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81899F0
thumb_func_start sub_8189A58
sub_8189A58: @ 8189A58
push {r4,lr}
2017-10-01 18:54:01 +02:00
ldr r4, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r1, [r4]
ldr r3, =gActiveBank
ldrb r0, [r3]
ldr r2, [r1, 0x4]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r2
ldrb r0, [r1, 0x9]
subs r0, 0x1
strb r0, [r1, 0x9]
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
bne _08189A90
ldr r0, [r4]
ldrb r1, [r3]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0
strb r1, [r0, 0x9]
bl RecordedPlayerBufferExecCompleted
_08189A90:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8189A58
thumb_func_start sub_8189AA0
sub_8189AA0: @ 8189AA0
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
movs r6, 0
ldr r4, =gActiveBank
ldrb r0, [r4]
bl GetBankIdentity
lsls r0, 24
cmp r0, 0
beq _08189ABA
b _08189C60
_08189ABA:
2017-10-09 18:18:40 +02:00
bl IsDoubleBattle
2017-09-03 18:58:40 +02:00
lsls r0, 24
cmp r0, 0
beq _08189ADA
2017-10-09 18:18:40 +02:00
bl IsDoubleBattle
2017-09-03 18:58:40 +02:00
lsls r0, 24
cmp r0, 0
beq _08189B0C
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x40
ands r0, r1
cmp r0, 0
beq _08189B0C
_08189ADA:
ldr r2, =gSprites
2017-09-08 22:27:27 +02:00
ldr r1, =gHealthBoxesIds
2017-09-03 18:58:40 +02:00
ldrb r0, [r4]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08189B42
b _08189B48
.pool
_08189B0C:
ldr r2, =gSprites
2017-09-08 22:27:27 +02:00
ldr r5, =gHealthBoxesIds
2017-09-03 18:58:40 +02:00
ldr r0, =gActiveBank
ldrb r3, [r0]
adds r0, r3, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r4, [r0]
ldr r0, =SpriteCallbackDummy
cmp r4, r0
bne _08189B42
movs r0, 0x2
eors r3, r0
adds r0, r3, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r0, [r0]
cmp r0, r4
bne _08189B42
movs r6, 0x1
_08189B42:
cmp r6, 0
bne _08189B48
b _08189D18
_08189B48:
2017-10-01 18:54:01 +02:00
ldr r0, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
mov r9, r0
ldr r0, [r0]
ldr r5, =gActiveBank
ldrb r2, [r5]
ldr r3, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r4, r0, r3
ldrb r1, [r4, 0x1]
movs r6, 0x1
adds r0, r6, 0
ands r0, r1
cmp r0, 0
bne _08189B6A
b _08189D18
_08189B6A:
movs r1, 0x2
mov r8, r1
mov r1, r8
eors r1, r2
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r3
ldrb r1, [r0, 0x1]
adds r0, r6, 0
ands r0, r1
cmp r0, 0
bne _08189B86
b _08189D18
_08189B86:
ldrb r1, [r4]
movs r3, 0x7F
adds r0, r3, 0
ands r0, r1
strb r0, [r4]
mov r1, r9
ldr r0, [r1]
ldrb r2, [r5]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r1, r0
ldrb r2, [r1, 0x1]
movs r4, 0x2
negs r4, r4
adds r0, r4, 0
ands r0, r2
strb r0, [r1, 0x1]
mov r0, r9
ldr r2, [r0]
ldrb r0, [r5]
mov r1, r8
eors r1, r0
ldr r2, [r2, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0]
ands r3, r1
strb r3, [r0]
mov r1, r9
ldr r2, [r1]
ldrb r0, [r5]
mov r1, r8
eors r1, r0
ldr r2, [r2, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x1]
ands r4, r1
strb r4, [r0, 0x1]
ldr r4, =0x000027f9
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
ldr r7, =gBattlePartyID
ldrb r1, [r5]
lsls r0, r1, 1
adds r0, r7
ldrh r0, [r0]
movs r6, 0x64
muls r0, r6
ldr r4, =gPlayerParty
adds r0, r4
bl sub_805E990
2017-10-09 18:18:40 +02:00
bl IsDoubleBattle
2017-09-03 18:58:40 +02:00
lsls r0, 24
cmp r0, 0
beq _08189C22
ldrb r0, [r5]
mov r1, r8
eors r1, r0
lsls r0, r1, 1
adds r0, r7
ldrh r0, [r0]
muls r0, r6
adds r0, r4
bl sub_805E990
_08189C22:
mov r1, r9
ldr r0, [r1]
ldrb r1, [r5]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x3
strb r1, [r0, 0x9]
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
b _08189D10
.pool
_08189C60:
2017-10-09 18:18:40 +02:00
bl IsDoubleBattle
2017-09-03 18:58:40 +02:00
lsls r0, 24
cmp r0, 0
beq _08189C80
2017-10-09 18:18:40 +02:00
bl IsDoubleBattle
2017-09-03 18:58:40 +02:00
lsls r0, 24
cmp r0, 0
beq _08189CB0
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x40
ands r0, r1
cmp r0, 0
beq _08189CB0
_08189C80:
ldr r2, =gSprites
2017-09-08 22:27:27 +02:00
ldr r1, =gHealthBoxesIds
2017-09-03 18:58:40 +02:00
ldrb r0, [r4]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08189CE6
b _08189CE4
.pool
_08189CB0:
ldr r2, =gSprites
2017-09-08 22:27:27 +02:00
ldr r5, =gHealthBoxesIds
2017-09-03 18:58:40 +02:00
ldr r0, =gActiveBank
ldrb r3, [r0]
adds r0, r3, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r4, [r0]
ldr r0, =SpriteCallbackDummy
cmp r4, r0
bne _08189CE6
movs r0, 0x2
eors r3, r0
adds r0, r3, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r0, [r0]
cmp r0, r4
bne _08189CE6
_08189CE4:
movs r6, 0x1
_08189CE6:
bl IsCryPlayingOrClearCrySongs
lsls r0, 24
cmp r0, 0
beq _08189CF2
movs r6, 0
_08189CF2:
cmp r6, 0
beq _08189D18
2017-10-01 18:54:01 +02:00
ldr r0, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r0, [r0]
ldr r3, =gActiveBank
ldrb r1, [r3]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x3
strb r1, [r0, 0x9]
ldr r1, =gBattleBankFunc
ldrb r0, [r3]
_08189D10:
lsls r0, 2
adds r0, r1
ldr r1, =sub_8189A58
str r1, [r0]
_08189D18:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8189AA0
thumb_func_start sub_8189D40
sub_8189D40: @ 8189D40
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
movs r0, 0
mov r10, r0
ldr r4, =gActiveBank
ldrb r0, [r4]
bl GetBankIdentity
lsls r0, 24
cmp r0, 0
bne _08189DBE
2017-10-01 18:54:01 +02:00
ldr r5, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r0, [r5]
ldrb r2, [r4]
ldr r1, [r0, 0x4]
lsls r3, r2, 1
adds r0, r3, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r6, 0x88
adds r0, r6, 0
ands r0, r1
cmp r0, 0
bne _08189D8C
ldr r0, =gBattlePartyID
adds r0, r3, r0
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, =gPlayerParty
adds r1, r0
adds r0, r2, 0
bl sub_8172EF0
_08189D8C:
ldr r2, [r5]
ldrb r1, [r4]
movs r0, 0x2
adds r3, r0, 0
eors r3, r1
ldr r1, [r2, 0x4]
lsls r2, r3, 1
adds r0, r2, r3
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
adds r0, r6, 0
ands r0, r1
cmp r0, 0
bne _08189DBE
ldr r0, =gBattlePartyID
adds r0, r2, r0
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, =gPlayerParty
adds r1, r0
adds r0, r3, 0
bl sub_8172EF0
_08189DBE:
2017-10-01 18:54:01 +02:00
ldr r3, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r0, [r3]
ldr r2, =gActiveBank
ldrb r5, [r2]
ldr r4, [r0, 0x4]
lsls r0, r5, 1
adds r0, r5
lsls r0, 2
adds r6, r0, r4
ldrb r1, [r6]
movs r0, 0x8
mov r12, r0
ands r0, r1
mov r9, r2
mov r8, r3
cmp r0, 0
bne _08189EA2
movs r7, 0x2
adds r1, r7, 0
eors r1, r5
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r1, [r0]
mov r0, r12
ands r0, r1
cmp r0, 0
bne _08189EA2
ldrb r1, [r6, 0x1]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08189E84
2017-10-09 18:18:40 +02:00
bl IsDoubleBattle
2017-09-03 18:58:40 +02:00
lsls r0, 24
cmp r0, 0
beq _08189E54
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x40
ands r0, r1
cmp r0, 0
bne _08189E54
2017-09-08 22:27:27 +02:00
ldr r4, =gHealthBoxesIds
2017-09-03 18:58:40 +02:00
mov r1, r9
ldrb r0, [r1]
adds r1, r7, 0
eors r1, r0
adds r0, r1, r4
ldrb r0, [r0]
ldr r2, =gBattlePartyID
lsls r1, 1
adds r1, r2
ldrh r2, [r1]
movs r1, 0x64
muls r1, r2
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0
2017-10-09 18:18:40 +02:00
bl UpdateHealthboxAttribute
2017-09-03 18:58:40 +02:00
mov r1, r9
ldrb r0, [r1]
eors r0, r7
bl sub_8076918
mov r1, r9
ldrb r0, [r1]
eors r0, r7
adds r0, r4
ldrb r0, [r0]
2017-10-09 18:18:40 +02:00
bl SetHealthboxSpriteVisible
2017-09-03 18:58:40 +02:00
_08189E54:
2017-09-08 22:27:27 +02:00
ldr r5, =gHealthBoxesIds
2017-09-03 18:58:40 +02:00
ldr r4, =gActiveBank
ldrb r1, [r4]
adds r0, r1, r5
ldrb r0, [r0]
ldr r2, =gBattlePartyID
lsls r1, 1
adds r1, r2
ldrh r2, [r1]
movs r1, 0x64
muls r1, r2
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0
2017-10-09 18:18:40 +02:00
bl UpdateHealthboxAttribute
2017-09-03 18:58:40 +02:00
ldrb r0, [r4]
bl sub_8076918
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
2017-10-09 18:18:40 +02:00
bl SetHealthboxSpriteVisible
2017-09-03 18:58:40 +02:00
_08189E84:
2017-10-01 18:54:01 +02:00
ldr r4, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r0, [r4]
ldr r3, =gActiveBank
ldrb r1, [r3]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x1]
movs r2, 0x80
orrs r1, r2
strb r1, [r0, 0x1]
mov r9, r3
mov r8, r4
_08189EA2:
mov r1, r8
ldr r0, [r1]
mov r1, r9
ldrb r2, [r1]
ldr r3, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r3
ldrb r1, [r0, 0x1]
movs r0, 0xC0
ands r0, r1
cmp r0, 0x80
bne _08189F62
movs r1, 0x2
eors r1, r2
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r3
ldrb r1, [r0, 0x1]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _08189F62
bl IsCryPlayingOrClearCrySongs
lsls r0, 24
cmp r0, 0
bne _08189F62
mov r1, r8
ldr r0, [r1]
mov r1, r9
ldrb r2, [r1]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0, 0x1]
movs r0, 0x20
ands r0, r1
cmp r0, 0
bne _08189F44
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x42
ands r0, r1
cmp r0, 0x42
bne _08189F38
adds r0, r2, 0
bl GetBankIdentity
lsls r0, 24
cmp r0, 0
bne _08189F44
ldr r0, =gMPlay_BGM
bl m4aMPlayContinue
b _08189F44
.pool
_08189F38:
ldr r0, =gMPlay_BGM
ldr r1, =0x0000ffff
movs r2, 0x80
lsls r2, 1
bl m4aMPlayVolumeControl
_08189F44:
2017-10-01 18:54:01 +02:00
ldr r0, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
ldr r2, [r2, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x1]
movs r2, 0x20
orrs r1, r2
strb r1, [r0, 0x1]
movs r0, 0x1
mov r10, r0
_08189F62:
mov r1, r10
cmp r1, 0
beq _0818A02A
ldr r7, =gSprites
ldr r6, =gUnknown_03005D7C
ldr r5, =gActiveBank
ldrb r3, [r5]
adds r0, r3, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r4, r7, 0
adds r4, 0x1C
adds r0, r4
ldr r2, [r0]
ldr r0, =SpriteCallbackDummy
cmp r2, r0
bne _0818A02A
ldr r0, =gBankSpriteIds
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r0, [r0]
cmp r0, r2
bne _0818A02A
2017-10-09 18:18:40 +02:00
bl IsDoubleBattle
2017-09-03 18:58:40 +02:00
lsls r0, 24
cmp r0, 0
beq _08189FC8
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x40
ands r0, r1
cmp r0, 0
bne _08189FC8
ldrb r1, [r5]
movs r0, 0x2
eors r0, r1
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
bl DestroySprite
_08189FC8:
ldr r1, =gUnknown_03005D7C
ldr r4, =gActiveBank
ldrb r0, [r4]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
bl DestroySprite
2017-10-01 18:54:01 +02:00
ldr r3, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r0, [r3]
ldr r2, [r0, 0x8]
ldrb r1, [r2, 0x9]
movs r0, 0x2
negs r0, r0
ands r0, r1
strb r0, [r2, 0x9]
ldr r0, [r3]
ldrb r2, [r4]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r1, r0
ldrb r2, [r1, 0x1]
movs r0, 0x21
negs r0, r0
ands r0, r2
strb r0, [r1, 0x1]
ldr r0, [r3]
ldrb r2, [r4]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r1, r0
ldrb r2, [r1, 0x1]
movs r0, 0x7F
ands r0, r2
strb r0, [r1, 0x1]
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, =sub_8189AA0
str r1, [r0]
_0818A02A:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8189D40
thumb_func_start sub_818A064
sub_818A064: @ 818A064
push {lr}
ldr r2, =gSprites
ldr r1, =gBankSpriteIds
ldr r0, =gActiveBank
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r0, r2
adds r0, r1, 0
adds r0, 0x3F
ldrb r0, [r0]
lsls r0, 27
cmp r0, 0
bge _0818A092
movs r2, 0x24
ldrsh r0, [r1, r2]
cmp r0, 0
bne _0818A092
bl RecordedPlayerBufferExecCompleted
_0818A092:
pop {r0}
bx r0
.pool
thumb_func_end sub_818A064
thumb_func_start sub_818A0A4
sub_818A0A4: @ 818A0A4
push {r4-r6,lr}
ldr r5, =gActiveBank
ldrb r0, [r5]
2017-09-08 22:27:27 +02:00
ldr r6, =gHealthBoxesIds
2017-09-03 18:58:40 +02:00
adds r1, r0, r6
ldrb r1, [r1]
movs r2, 0
movs r3, 0
bl sub_8074AA0
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldrb r0, [r5]
adds r0, r6
ldrb r0, [r0]
2017-10-09 18:18:40 +02:00
bl SetHealthboxSpriteVisible
2017-09-03 18:58:40 +02:00
lsls r4, 16
asrs r1, r4, 16
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0818A0EC
ldrb r0, [r5]
adds r0, r6
ldrb r0, [r0]
movs r2, 0
bl heathbar_draw_hp
b _0818A106
.pool
_0818A0EC:
ldr r2, =gBattlePartyID
ldrb r1, [r5]
lsls r0, r1, 1
adds r0, r2
ldrh r2, [r0]
movs r0, 0x64
muls r0, r2
ldr r2, =gPlayerParty
adds r0, r2
bl sub_805E990
bl RecordedPlayerBufferExecCompleted
_0818A106:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_818A0A4
thumb_func_start sub_818A114
sub_818A114: @ 818A114
push {r4-r6,lr}
ldr r6, =gSprites
ldr r5, =gBankSpriteIds
ldr r4, =gActiveBank
ldrb r2, [r4]
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r3, 0x22
ldrsh r1, [r0, r3]
movs r3, 0x26
ldrsh r0, [r0, r3]
adds r1, r0
cmp r1, 0xA0
ble _0818A190
ldr r1, =gBattlePartyID
lsls r0, r2, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r0, 16
bl nullsub_24
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
ldrb r0, [r0, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
bl DestroySprite
2017-09-08 22:27:27 +02:00
ldr r1, =gHealthBoxesIds
2017-09-03 18:58:40 +02:00
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
2017-10-09 18:18:40 +02:00
bl SetHealthboxSpriteInvisible
2017-09-03 18:58:40 +02:00
bl RecordedPlayerBufferExecCompleted
_0818A190:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_818A114
thumb_func_start sub_818A1B0
sub_818A1B0: @ 818A1B0
push {r4-r6,lr}
2017-10-01 18:54:01 +02:00
ldr r0, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r0, [r0]
ldr r6, =gActiveBank
ldrb r2, [r6]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _0818A204
ldr r5, =gBankSpriteIds
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =gSprites
adds r0, r4
bl FreeSpriteOamMatrix
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
2017-09-08 22:27:27 +02:00
ldr r1, =gHealthBoxesIds
2017-09-03 18:58:40 +02:00
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
2017-10-09 18:18:40 +02:00
bl SetHealthboxSpriteInvisible
2017-09-03 18:58:40 +02:00
bl RecordedPlayerBufferExecCompleted
_0818A204:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_818A1B0
thumb_func_start sub_818A220
sub_818A220: @ 818A220
push {lr}
movs r0, 0
bl IsTextPrinterActive
lsls r0, 16
cmp r0, 0
bne _0818A232
bl RecordedPlayerBufferExecCompleted
_0818A232:
pop {r0}
bx r0
thumb_func_end sub_818A220
thumb_func_start sub_818A238
sub_818A238: @ 818A238
push {r4,lr}
ldr r1, =gBankSpriteIds
ldr r0, =gActiveBank
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
ldr r2, =gSprites
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r4, r0, r2
movs r1, 0x30
ldrsh r0, [r4, r1]
cmp r0, 0x20
bne _0818A284
movs r3, 0
movs r0, 0
strh r0, [r4, 0x30]
adds r2, r4, 0
adds r2, 0x3E
ldrb r1, [r2]
subs r0, 0x5
ands r0, r1
strb r0, [r2]
ldr r0, =gDoingBattleAnim
strb r3, [r0]
bl RecordedPlayerBufferExecCompleted
b _0818A2AE
.pool
_0818A284:
ldrh r0, [r4, 0x30]
movs r1, 0x3
ands r0, r1
cmp r0, 0
bne _0818A2A8
adds r3, r4, 0
adds r3, 0x3E
ldrb r2, [r3]
lsls r0, r2, 29
lsrs r0, 31
movs r1, 0x1
eors r1, r0
lsls r1, 2
movs r0, 0x5
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_0818A2A8:
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
_0818A2AE:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_818A238
thumb_func_start sub_818A2B4
sub_818A2B4: @ 818A2B4
push {r4,lr}
ldr r2, =gSprites
2017-09-08 22:27:27 +02:00
ldr r0, =gHealthBoxesIds
2017-09-03 18:58:40 +02:00
ldr r4, =gActiveBank
ldrb r3, [r4]
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _0818A306
adds r0, r3, 0
bl sub_805E408
2017-10-01 18:54:01 +02:00
ldr r0, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r0, [r0]
ldrb r2, [r4]
ldr r1, [r0]
lsls r0, r2, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0818A2FA
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x6
bl move_anim_start_t4
_0818A2FA:
ldr r0, =gBattleBankFunc
ldrb r1, [r4]
lsls r1, 2
adds r1, r0
ldr r0, =sub_818A328
str r0, [r1]
_0818A306:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_818A2B4
thumb_func_start sub_818A328
sub_818A328: @ 818A328
push {lr}
2017-10-01 18:54:01 +02:00
ldr r0, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r1, [r0]
ldr r0, =gActiveBank
ldrb r3, [r0]
ldr r1, [r1, 0x4]
lsls r0, r3, 1
adds r0, r3
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _0818A364
ldr r2, =gSprites
ldr r0, =gBankSpriteIds
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _0818A364
bl RecordedPlayerBufferExecCompleted
_0818A364:
pop {r0}
bx r0
.pool
thumb_func_end sub_818A328
thumb_func_start sub_818A37C
sub_818A37C: @ 818A37C
push {r4-r7,lr}
mov r7, r8
push {r7}
2017-10-01 18:54:01 +02:00
ldr r3, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r0, [r3]
ldr r7, =gActiveBank
ldrb r1, [r7]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r2, r0, r2
ldrb r1, [r2, 0x1]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0818A438
ldrb r1, [r2]
movs r0, 0x7F
ands r0, r1
strb r0, [r2]
ldr r0, [r3]
ldrb r2, [r7]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r1, r0
ldrb r2, [r1, 0x1]
movs r0, 0x2
negs r0, r0
ands r0, r2
strb r0, [r1, 0x1]
ldr r4, =0x000027f9
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
ldr r0, =c3_0802FDF4
movs r1, 0xA
bl CreateTask
ldr r0, =gBattlePartyID
mov r8, r0
ldrb r1, [r7]
lsls r0, r1, 1
add r0, r8
ldrh r0, [r0]
movs r6, 0x64
muls r0, r6
ldr r5, =gPlayerParty
adds r0, r5
bl sub_805E990
ldr r1, =gBankSpriteIds
ldrb r0, [r7]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
movs r1, 0
bl StartSpriteAnim
2017-09-08 22:27:27 +02:00
ldr r4, =gHealthBoxesIds
2017-09-03 18:58:40 +02:00
ldrb r1, [r7]
adds r0, r1, r4
ldrb r0, [r0]
lsls r1, 1
add r1, r8
ldrh r1, [r1]
muls r1, r6
adds r1, r5
movs r2, 0
2017-10-09 18:18:40 +02:00
bl UpdateHealthboxAttribute
2017-09-03 18:58:40 +02:00
ldrb r0, [r7]
bl sub_8076918
ldrb r0, [r7]
adds r0, r4
ldrb r0, [r0]
2017-10-09 18:18:40 +02:00
bl SetHealthboxSpriteVisible
2017-09-03 18:58:40 +02:00
ldr r1, =gBattleBankFunc
ldrb r0, [r7]
lsls r0, 2
adds r0, r1
ldr r1, =sub_818A2B4
str r1, [r0]
_0818A438:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_818A37C
thumb_func_start sub_818A470
sub_818A470: @ 818A470
push {r4-r6,lr}
2017-10-01 18:54:01 +02:00
ldr r6, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r0, [r6]
ldr r4, =gActiveBank
ldrb r2, [r4]
ldr r1, [r0, 0x4]
lsls r3, r2, 1
adds r0, r3, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x88
ands r0, r1
cmp r0, 0
bne _0818A4A2
ldr r0, =gBattlePartyID
adds r0, r3, r0
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, =gPlayerParty
adds r1, r0
adds r0, r2, 0
bl sub_8172EF0
_0818A4A2:
ldr r5, =gSprites
ldr r0, =gUnknown_03005D7C
ldrb r2, [r4]
adds r0, r2, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r3, r0, 2
adds r0, r5, 0
adds r0, 0x1C
adds r0, r3, r0
ldr r1, [r0]
ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _0818A4E8
ldr r0, [r6]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x8
ands r0, r1
cmp r0, 0
bne _0818A4E8
adds r0, r3, r5
bl DestroySprite
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, =sub_818A37C
str r1, [r0]
_0818A4E8:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_818A470
thumb_func_start RecordedPlayerBufferExecCompleted
RecordedPlayerBufferExecCompleted: @ 818A514
push {r4,lr}
sub sp, 0x4
ldr r1, =gBattleBankFunc
ldr r4, =gActiveBank
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, =RecordedPlayerBufferRunCommand
str r1, [r0]
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x2
ands r0, r1
cmp r0, 0
beq _0818A568
2017-09-06 21:18:50 +02:00
bl GetMultiplayerId
2017-09-03 18:58:40 +02:00
mov r1, sp
strb r0, [r1]
movs r0, 0x2
movs r1, 0x4
mov r2, sp
bl PrepareBufferDataTransferLink
ldr r1, =gBattleBufferA
ldrb r0, [r4]
lsls r0, 9
adds r0, r1
movs r1, 0x38
strb r1, [r0]
b _0818A57A
.pool
_0818A568:
ldr r2, =gBattleExecBuffer
ldr r1, =gBitTable
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, [r0]
ldr r0, [r2]
bics r0, r1
str r0, [r2]
_0818A57A:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end RecordedPlayerBufferExecCompleted
thumb_func_start sub_818A58C
sub_818A58C: @ 818A58C
push {lr}
2017-10-01 18:54:01 +02:00
ldr r0, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
ldr r2, [r2, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _0818A5AE
bl RecordedPlayerBufferExecCompleted
_0818A5AE:
pop {r0}
bx r0
.pool
thumb_func_end sub_818A58C
thumb_func_start sub_818A5BC
sub_818A5BC: @ 818A5BC
push {lr}
2017-10-01 18:54:01 +02:00
ldr r0, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
ldr r2, [r2, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
bne _0818A5DE
bl RecordedPlayerBufferExecCompleted
_0818A5DE:
pop {r0}
bx r0
.pool
thumb_func_end sub_818A5BC
thumb_func_start sub_818A5EC
sub_818A5EC: @ 818A5EC
push {r4-r6,lr}
sub sp, 0x100
movs r6, 0
ldr r1, =gBattleBufferA
ldr r0, =gActiveBank
ldrb r2, [r0]
lsls r0, r2, 9
adds r1, 0x2
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0
bne _0818A624
ldr r0, =gBattlePartyID
lsls r1, r2, 1
adds r1, r0
ldrb r0, [r1]
mov r1, sp
bl sub_818A660
adds r6, r0, 0
b _0818A646
.pool
_0818A624:
ldrb r4, [r1]
movs r5, 0
_0818A628:
movs r0, 0x1
ands r0, r4
cmp r0, 0
beq _0818A63E
lsls r0, r5, 24
lsrs r0, 24
mov r2, sp
adds r1, r2, r6
bl sub_818A660
adds r6, r0
_0818A63E:
lsrs r4, 1
adds r5, 0x1
cmp r5, 0x5
ble _0818A628
_0818A646:
lsls r1, r6, 16
lsrs r1, 16
movs r0, 0x1
mov r2, sp
bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
bl RecordedPlayerBufferExecCompleted
add sp, 0x100
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_818A5EC
thumb_func_start sub_818A660
sub_818A660: @ 818A660
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x90
adds r7, r1, 0
lsls r0, 24
lsrs r5, r0, 24
movs r6, 0
ldr r2, =gBattleBufferA
ldr r3, =gActiveBank
ldrb r0, [r3]
lsls r0, 9
adds r1, r2, 0x1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x3B
bls _0818A68A
bl _0818ADF6
_0818A68A:
lsls r0, 2
ldr r1, =_0818A6A0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0818A6A0:
.4byte _0818A790
.4byte _0818A9B4
.4byte _0818A9C4
.4byte _0818A9D4
.4byte _0818AA3C
.4byte _0818AA3C
.4byte _0818AA3C
.4byte _0818AA3C
.4byte _0818AA58
.4byte _0818AA94
.4byte _0818AA94
.4byte _0818AA94
.4byte _0818AA94
.4byte _0818ADF6
.4byte _0818ADF6
.4byte _0818ADF6
.4byte _0818ADF6
.4byte _0818AAB0
.4byte _0818AAC0
.4byte _0818AAF0
.4byte _0818AB00
.4byte _0818AB10
.4byte _0818AB20
.4byte _0818AB30
.4byte _0818AB40
.4byte _0818AB50
.4byte _0818AB60
.4byte _0818AB70
.4byte _0818AB80
.4byte _0818AB90
.4byte _0818ABA0
.4byte _0818ABB0
.4byte _0818AC00
.4byte _0818AC10
.4byte _0818AC20
.4byte _0818AC30
.4byte _0818AC40
.4byte _0818AC50
.4byte _0818AC60
.4byte _0818AC70
.4byte _0818AC80
.4byte _0818ACB4
.4byte _0818ACC4
.4byte _0818ACD4
.4byte _0818ACE4
.4byte _0818ACF4
.4byte _0818AD04
.4byte _0818AD14
.4byte _0818AD24
.4byte _0818AD44
.4byte _0818AD54
.4byte _0818AD64
.4byte _0818AD74
.4byte _0818AD84
.4byte _0818AD94
.4byte _0818ADA4
.4byte _0818ADB4
.4byte _0818ADC4
.4byte _0818ADD4
.4byte _0818ADE4
_0818A790:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, =gPlayerParty
adds 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 r9, r0
movs r1, 0x3B
add r1, sp
mov r10, 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, 0x5
str r2, [sp, 0x84]
adds r0, 0x12
str r0, [sp, 0x88]
mov r8, r4
add r4, sp, 0xC
_0818A7DC:
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, r9
adds r1, r2, r6
strb r0, [r1]
adds r4, 0x2
adds r6, 0x1
cmp r6, 0x3
ble _0818A7DC
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, =gPlayerParty
adds r4, r0
adds r0, r4, 0
movs r1, 0x15
bl GetMonData
mov r1, r10
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
negs r1, r1
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, 5
ldrh r2, [r3, 0x14]
ldr r1, =0xfffffc1f
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, 2
ldrb r2, [r3, 0x15]
movs r1, 0x7D
negs r1, r1
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, 15
ldr r0, [sp, 0x14]
ldr r2, =0xfff07fff
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, 4
ldrh r2, [r3, 0x16]
ldr r1, =0xfffffe0f
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, 1
ldrb r2, [r3, 0x17]
movs r1, 0x3F
negs r1, r1
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, 0x2]
adds r0, r4, 0
movs r1, 0x3C
bl GetMonData
mov r1, sp
strh r0, [r1, 0x4]
adds r0, r4, 0
movs r1, 0x3D
bl GetMonData
mov r1, sp
strh r0, [r1, 0x6]
adds r0, r4, 0
movs r1, 0x3E
bl GetMonData
mov r1, sp
strh r0, [r1, 0x8]
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, 0x1
ands r0, r1
lsls r0, 6
ldrb r2, [r3, 0x17]
movs r1, 0x41
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x2E
bl GetMonData
mov r3, sp
lsls 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, 0x1
bl GetMonData
str r0, [sp, 0x54]
adds r0, r4, 0
movs r1, 0x2
ldr r2, [sp, 0x8C]
bl GetMonData
ldr r0, [sp, 0x84]
ldr r1, [sp, 0x8C]
bl StringCopy10
adds r0, r4, 0
movs r1, 0x7
ldr r2, [sp, 0x88]
bl GetMonData
mov r2, sp
movs r6, 0
_0818A994:
adds r0, r7, r6
adds r1, r2, r6
ldrb r1, [r1]
strb r1, [r0]
adds r6, 0x1
cmp r6, 0x57
bls _0818A994
b _0818ADF6
.pool
_0818A9B4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0xB
b _0818AD2E
.pool
_0818A9C4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0xC
b _0818AD2E
.pool
_0818A9D4:
movs r6, 0
add r2, sp, 0x58
mov r9, r2
add r0, sp, 0x60
mov r10, r0
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, =gPlayerParty
adds r4, r1, r0
mov r8, r9
_0818A9EA:
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, r10
adds r1, r2, r6
strb r0, [r1]
movs r0, 0x2
add r8, r0
adds r6, 0x1
cmp r6, 0x3
ble _0818A9EA
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x15
bl GetMonData
mov r1, r9
strb r0, [r1, 0xC]
mov r2, r9
movs r6, 0
_0818AA28:
adds r0, r7, r6
adds r1, r2, r6
ldrb r1, [r1]
strb r1, [r0]
adds r6, 0x1
cmp r6, 0xF
bls _0818AA28
b _0818ADF6
.pool
_0818AA3C:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldrb r1, [r3]
lsls r1, 9
adds r2, 0x1
adds r1, r2
ldrb r1, [r1]
adds r1, 0x9
b _0818AD2E
.pool
_0818AA58:
movs r6, 0
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r2, =gPlayerParty
mov r8, r2
_0818AA64:
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, 0x1
cmp r6, 0x3
ble _0818AA64
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x15
bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
b _0818ADF6
.pool
_0818AA94:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldrb r1, [r3]
lsls r1, 9
adds r2, 0x1
adds r1, r2
ldrb r1, [r1]
adds r1, 0x8
b _0818ADEE
.pool
_0818AAB0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x1
b _0818AACA
.pool
_0818AAC0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x19
_0818AACA:
bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
lsls r0, 8
ands r0, r1
lsrs r0, 8
strb r0, [r7, 0x1]
movs r0, 0xFF
lsls r0, 16
ands r0, r1
lsrs r0, 16
strb r0, [r7, 0x2]
movs r6, 0x3
b _0818ADF6
.pool
_0818AAF0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x1A
b _0818ADEE
.pool
_0818AB00:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x1B
b _0818ADEE
.pool
_0818AB10:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x1C
b _0818ADEE
.pool
_0818AB20:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x1D
b _0818ADEE
.pool
_0818AB30:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x1E
b _0818ADEE
.pool
_0818AB40:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x1F
b _0818ADEE
.pool
_0818AB50:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x20
b _0818ADEE
.pool
_0818AB60:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x22
b _0818ADEE
.pool
_0818AB70:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x23
b _0818ADEE
.pool
_0818AB80:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x24
b _0818ADEE
.pool
_0818AB90:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x25
b _0818ADEE
.pool
_0818ABA0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x26
b _0818ADEE
.pool
_0818ABB0:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, =gPlayerParty
adds 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, 0x1]
adds r0, r4, 0
movs r1, 0x29
bl GetMonData
strb r0, [r7, 0x2]
adds r0, r4, 0
movs r1, 0x2A
bl GetMonData
strb r0, [r7, 0x3]
adds r0, r4, 0
movs r1, 0x2B
bl GetMonData
strb r0, [r7, 0x4]
adds r0, r4, 0
movs r1, 0x2C
bl GetMonData
strb r0, [r7, 0x5]
movs r6, 0x6
b _0818ADF6
.pool
_0818AC00:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x27
b _0818ADEE
.pool
_0818AC10:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x28
b _0818ADEE
.pool
_0818AC20:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x29
b _0818ADEE
.pool
_0818AC30:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x2A
b _0818ADEE
.pool
_0818AC40:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x2B
b _0818ADEE
.pool
_0818AC50:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x2C
b _0818ADEE
.pool
_0818AC60:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0
b _0818AC8A
.pool
_0818AC70:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x9
b _0818AD2E
.pool
_0818AC80:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x37
_0818AC8A:
bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
lsls r0, 8
ands r0, r1
lsrs r0, 8
strb r0, [r7, 0x1]
movs r0, 0xFF
lsls r0, 16
ands r0, r1
lsrs r0, 16
strb r0, [r7, 0x2]
lsrs r0, r1, 24
strb r0, [r7, 0x3]
movs r6, 0x4
b _0818ADF6
.pool
_0818ACB4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x38
b _0818ADEE
.pool
_0818ACC4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x39
b _0818AD2E
.pool
_0818ACD4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x3A
b _0818AD2E
.pool
_0818ACE4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x3B
b _0818AD2E
.pool
_0818ACF4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x3C
b _0818AD2E
.pool
_0818AD04:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x3D
b _0818AD2E
.pool
_0818AD14:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x3E
b _0818AD2E
.pool
_0818AD24:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x3F
_0818AD2E:
bl GetMonData
lsls r0, 16
lsrs r0, 16
strb r0, [r7]
lsrs r0, 8
strb r0, [r7, 0x1]
movs r6, 0x2
b _0818ADF6
.pool
_0818AD44:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x16
b _0818ADEE
.pool
_0818AD54:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x17
b _0818ADEE
.pool
_0818AD64:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x18
b _0818ADEE
.pool
_0818AD74:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x21
b _0818ADEE
.pool
_0818AD84:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x2F
b _0818ADEE
.pool
_0818AD94:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x30
b _0818ADEE
.pool
_0818ADA4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x32
b _0818ADEE
.pool
_0818ADB4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x33
b _0818ADEE
.pool
_0818ADC4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x34
b _0818ADEE
.pool
_0818ADD4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x35
b _0818ADEE
.pool
_0818ADE4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x36
_0818ADEE:
bl GetMonData
strb r0, [r7]
movs r6, 0x1
_0818ADF6:
adds r0, r6, 0
add sp, 0x90
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_818A660
thumb_func_start sub_818AE0C
sub_818AE0C: @ 818AE0C
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818AE0C
thumb_func_start sub_818AE18
sub_818AE18: @ 818AE18
push {r4,r5,lr}
ldr r1, =gBattleBufferA
ldr r0, =gActiveBank
ldrb r2, [r0]
lsls r0, r2, 9
adds r1, 0x2
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0
bne _0818AE48
ldr r0, =gBattlePartyID
lsls r1, r2, 1
adds r1, r0
ldrb r0, [r1]
bl sub_818AE70
b _0818AE66
.pool
_0818AE48:
ldrb r4, [r1]
movs r5, 0
_0818AE4C:
movs r0, 0x1
ands r0, r4
cmp r0, 0
beq _0818AE5A
adds r0, r5, 0
bl sub_818AE70
_0818AE5A:
lsrs r4, 1
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x5
bls _0818AE4C
_0818AE66:
bl RecordedPlayerBufferExecCompleted
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_818AE18
thumb_func_start sub_818AE70
sub_818AE70: @ 818AE70
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x34
lsls r0, 24
lsrs r5, r0, 24
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 9
ldr r2, =gBattleBufferA + 3
2017-09-03 18:58:40 +02:00
adds r3, r0, r2
adds r6, r3, 0
subs r1, r2, 0x2
adds r0, r1
ldrb r0, [r0]
adds r7, r2, 0
cmp r0, 0x3B
bls _0818AE9C
bl _0818B836
_0818AE9C:
lsls r0, 2
ldr r1, =_0818AEB4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0818AEB4:
.4byte _0818AFA4
.4byte _0818B13C
.4byte _0818B15C
.4byte _0818B17C
.4byte _0818B1D4
.4byte _0818B1D4
.4byte _0818B1D4
.4byte _0818B1D4
.4byte _0818B1FC
.4byte _0818B260
.4byte _0818B260
.4byte _0818B260
.4byte _0818B260
.4byte _0818B836
.4byte _0818B836
.4byte _0818B836
.4byte _0818B836
.4byte _0818B290
.4byte _0818B2B0
.4byte _0818B2D0
.4byte _0818B2F0
.4byte _0818B310
.4byte _0818B330
.4byte _0818B350
.4byte _0818B370
.4byte _0818B390
.4byte _0818B3B0
.4byte _0818B3D0
.4byte _0818B3F0
.4byte _0818B410
.4byte _0818B430
.4byte _0818B450
.4byte _0818B4C0
.4byte _0818B4E0
.4byte _0818B500
.4byte _0818B520
.4byte _0818B540
.4byte _0818B560
.4byte _0818B580
.4byte _0818B5A0
.4byte _0818B5C0
.4byte _0818B5E0
.4byte _0818B600
.4byte _0818B620
.4byte _0818B640
.4byte _0818B660
.4byte _0818B680
.4byte _0818B6A0
.4byte _0818B6C0
.4byte _0818B6E0
.4byte _0818B700
.4byte _0818B720
.4byte _0818B740
.4byte _0818B760
.4byte _0818B780
.4byte _0818B7A0
.4byte _0818B7C0
.4byte _0818B7E0
.4byte _0818B800
.4byte _0818B820
_0818AFA4:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, =gPlayerParty
adds 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, r6
mov r10, r0
adds r0, r6, 0
adds r0, 0x2B
str r0, [sp, 0x20]
adds r0, 0x19
str r0, [sp, 0x28]
adds r0, 0x4
str r0, [sp, 0x2C]
adds r0, 0x4
str r0, [sp, 0x30]
subs r0, 0x22
str r0, [sp, 0x1C]
subs r0, 0x2
str r0, [sp, 0x18]
adds r0, 0x4
str r0, [sp, 0x24]
adds r0, r6, 0x2
str r0, [sp, 0x4]
adds r0, r6, 0x4
str r0, [sp, 0x8]
adds r0, r6, 0x6
str r0, [sp, 0xC]
adds r0, 0x2
str r0, [sp, 0x10]
adds r0, 0x2
str r0, [sp, 0x14]
mov r9, r4
adds r7, r6, 0
adds r7, 0x24
adds r4, r6, 0
adds r4, 0xC
_0818B00A:
mov r1, r8
adds r1, 0xD
mov r0, r9
adds r2, r4, 0
bl SetMonData
mov r1, r8
adds r1, 0x11
mov r0, r9
adds r2, r7, 0
bl SetMonData
adds r7, 0x1
adds r4, 0x2
movs r0, 0x1
add r8, r0
mov r0, r8
cmp r0, 0x3
ble _0818B00A
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, =gPlayerParty
adds r4, r0
adds r0, r4, 0
movs r1, 0x15
mov r2, r10
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, 27
lsrs r0, 27
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, 22
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x28
mov r2, sp
bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x15]
lsls r0, 25
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x29
mov r2, sp
bl SetMonData
mov r1, sp
ldr r0, [r6, 0x14]
lsls r0, 12
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x2A
mov r2, sp
bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x16]
lsls r0, 23
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x2B
mov r2, sp
bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x17]
lsls r0, 26
lsrs r0, 27
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, 0x4]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
ldr r2, [sp, 0x8]
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 _0818B836
.pool
_0818B13C:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0xB
bl SetMonData
b _0818B836
.pool
_0818B15C:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0xC
bl SetMonData
b _0818B836
.pool
_0818B17C:
movs r0, 0
mov r8, r0
movs r0, 0xC
adds r0, r3
mov r9, r0
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, =gPlayerParty
adds r7, r1, r0
adds r6, r3, 0
adds r6, 0x8
adds r4, r3, 0
_0818B196:
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, 0x1
adds r4, 0x2
movs r0, 0x1
add r8, r0
mov r0, r8
cmp r0, 0x3
ble _0818B196
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x15
mov r2, r9
bl SetMonData
b _0818B836
.pool
_0818B1D4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r3, =gBattleBufferA
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r1, r3, 0x1
adds r1, r2, r1
ldrb r1, [r1]
adds r1, 0x9
b _0818B278
.pool
_0818B1FC:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, =gPlayerParty
adds r4, r0
ldr r5, =gActiveBank
ldrb r2, [r5]
lsls r2, 9
adds r2, r7
adds r0, r4, 0
movs r1, 0x11
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x12
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x13
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x14
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x15
bl SetMonData
b _0818B836
.pool
_0818B260:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r3, =gBattleBufferA
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r1, r3, 0x1
adds r1, r2, r1
ldrb r1, [r1]
adds r1, 0x8
_0818B278:
adds r3, 0x3
adds r2, r3
bl SetMonData
b _0818B836
.pool
_0818B290:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1
bl SetMonData
b _0818B836
.pool
_0818B2B0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x19
bl SetMonData
b _0818B836
.pool
_0818B2D0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1A
bl SetMonData
b _0818B836
.pool
_0818B2F0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1B
bl SetMonData
b _0818B836
.pool
_0818B310:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1C
bl SetMonData
b _0818B836
.pool
_0818B330:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1D
bl SetMonData
b _0818B836
.pool
_0818B350:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1E
bl SetMonData
b _0818B836
.pool
_0818B370:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1F
bl SetMonData
b _0818B836
.pool
_0818B390:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x20
bl SetMonData
b _0818B836
.pool
_0818B3B0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x22
bl SetMonData
b _0818B836
.pool
_0818B3D0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x23
bl SetMonData
b _0818B836
.pool
_0818B3F0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x24
bl SetMonData
b _0818B836
.pool
_0818B410:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x25
bl SetMonData
b _0818B836
.pool
_0818B430:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x26
bl SetMonData
b _0818B836
.pool
_0818B450:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, =gPlayerParty
adds r4, r0
ldr r5, =gActiveBank
ldrb r2, [r5]
lsls r2, 9
adds r2, r7
adds r0, r4, 0
movs r1, 0x27
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x28
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x29
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x2A
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x2B
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x5
adds r2, r0
adds r0, r4, 0
b _0818B570
.pool
_0818B4C0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x27
bl SetMonData
b _0818B836
.pool
_0818B4E0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x28
bl SetMonData
b _0818B836
.pool
_0818B500:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x29
bl SetMonData
b _0818B836
.pool
_0818B520:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x2A
bl SetMonData
b _0818B836
.pool
_0818B540:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x2B
bl SetMonData
b _0818B836
.pool
_0818B560:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
_0818B570:
movs r1, 0x2C
bl SetMonData
b _0818B836
.pool
_0818B580:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0
bl SetMonData
b _0818B836
.pool
_0818B5A0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x9
bl SetMonData
b _0818B836
.pool
_0818B5C0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x37
bl SetMonData
b _0818B836
.pool
_0818B5E0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x38
bl SetMonData
b _0818B836
.pool
_0818B600:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x39
bl SetMonData
b _0818B836
.pool
_0818B620:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x3A
bl SetMonData
b _0818B836
.pool
_0818B640:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x3B
bl SetMonData
b _0818B836
.pool
_0818B660:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x3C
bl SetMonData
b _0818B836
.pool
_0818B680:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x3D
bl SetMonData
b _0818B836
.pool
_0818B6A0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x3E
bl SetMonData
b _0818B836
.pool
_0818B6C0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x3F
bl SetMonData
b _0818B836
.pool
_0818B6E0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x16
bl SetMonData
b _0818B836
.pool
_0818B700:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x17
bl SetMonData
b _0818B836
.pool
_0818B720:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x18
bl SetMonData
b _0818B836
.pool
_0818B740:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x21
bl SetMonData
b _0818B836
.pool
_0818B760:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x2F
bl SetMonData
b _0818B836
.pool
_0818B780:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x30
bl SetMonData
b _0818B836
.pool
_0818B7A0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x32
bl SetMonData
b _0818B836
.pool
_0818B7C0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x33
bl SetMonData
b _0818B836
.pool
_0818B7E0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x34
bl SetMonData
b _0818B836
.pool
_0818B800:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x35
bl SetMonData
b _0818B836
.pool
_0818B820:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x36
bl SetMonData
_0818B836:
ldr r2, =gBattlePartyID
ldr r0, =gActiveBank
ldrb r1, [r0]
lsls r0, r1, 1
adds r0, r2
ldrh r2, [r0]
movs r0, 0x64
muls r0, r2
ldr r2, =gPlayerParty
adds r0, r2
bl sub_805E990
add sp, 0x34
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_818AE70
thumb_func_start sub_818B86C
sub_818B86C: @ 818B86C
push {r4-r7,lr}
ldr r1, =gBattlePartyID
ldr r7, =gActiveBank
ldrb r2, [r7]
lsls r0, r2, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
adds r3, r1, 0
muls r3, r0
ldr r4, =gBattleBufferA
lsls r2, 9
adds r0, r4, 0x1
adds r0, r2, r0
ldrb r0, [r0]
ldr r1, =gPlayerParty
adds r0, r1
adds r5, r3, r0
movs r3, 0
adds r0, r4, 0x2
adds r2, r0
ldrb r2, [r2]
cmp r3, r2
bcs _0818B8C4
adds r6, r4, 0
adds r2, r7, 0
adds r4, r0, 0
_0818B8A2:
adds r1, r5, r3
ldrb r0, [r2]
lsls r0, 9
adds r0, 0x3
adds r0, r3, r0
adds r0, r6
ldrb r0, [r0]
strb r0, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
ldrb r0, [r2]
lsls r0, 9
adds r0, r4
ldrb r0, [r0]
cmp r3, r0
bcc _0818B8A2
_0818B8C4:
bl RecordedPlayerBufferExecCompleted
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_818B86C
thumb_func_start sub_818B8E0
sub_818B8E0: @ 818B8E0
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r0, =gBattlePartyID
mov r8, r0
ldr r6, =gActiveBank
ldrb r1, [r6]
lsls r0, r1, 1
add r0, r8
ldrh r0, [r0]
movs r5, 0x64
muls r0, r5
ldr r4, =gPlayerParty
adds r0, r4
2017-10-09 18:18:40 +02:00
bl BattleLoadPlayerMonSpriteGfx
2017-09-03 18:58:40 +02:00
ldrb r0, [r6]
lsls r0, 1
add r0, r8
ldrh r0, [r0]
muls r0, r5
adds r0, r4
movs r1, 0xB
bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldrb r0, [r6]
bl GetBankIdentity
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_806A068
ldr r0, =gUnknown_0202499C
mov r8, r0
ldrb r0, [r6]
movs r1, 0x2
bl sub_80A5C6C
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldrb r0, [r6]
bl sub_80A6138
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldrb r0, [r6]
bl sub_80A82E4
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
mov r0, r8
adds r1, r5, 0
adds r2, r4, 0
bl CreateSprite
ldr r4, =gBankSpriteIds
ldrb r1, [r6]
adds r1, r4
strb r0, [r1]
ldr r5, =gSprites
ldrb r0, [r6]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, =0x0000ff10
strh r1, [r0, 0x24]
ldrb r2, [r6]
adds r0, r2, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
strh r2, [r0, 0x2E]
ldrb r3, [r6]
adds r0, r3, r4
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
lsls r3, 4
ldrb r2, [r1, 0x5]
movs r0, 0xF
ands r0, r2
orrs r0, r3
strb r0, [r1, 0x5]
ldrb r2, [r6]
adds r4, r2, r4
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
2017-09-11 11:35:41 +02:00
ldr r1, =gBattleMonForms
2017-09-03 18:58:40 +02:00
adds r2, r1
ldrb r1, [r2]
bl StartSpriteAnim
ldr r1, =gBattleBankFunc
ldrb r0, [r6]
lsls r0, 2
adds r0, r1
ldr r1, =sub_818A064
str r1, [r0]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_818B8E0
thumb_func_start sub_818B9FC
sub_818B9FC: @ 818B9FC
push {r4-r6,lr}
ldr r5, =gActiveBank
ldrb r0, [r5]
ldr r4, =gBattleBufferA
lsls r1, r0, 9
adds r6, r4, 0x2
adds r1, r6
ldrb r1, [r1]
bl sub_805EF84
ldr r2, =gBattlePartyID
ldrb r0, [r5]
lsls r1, r0, 1
adds r1, r2
lsls r0, 9
adds r4, 0x1
adds r0, r4
ldrb r0, [r0]
strh r0, [r1]
ldrb r1, [r5]
lsls r0, r1, 1
adds r0, r2
ldrh r2, [r0]
movs r0, 0x64
muls r0, r2
ldr r2, =gPlayerParty
adds r0, r2
2017-10-09 18:18:40 +02:00
bl BattleLoadPlayerMonSpriteGfx
2017-09-03 18:58:40 +02:00
ldrb r0, [r5]
lsls r1, r0, 9
adds r1, r6
ldrb r1, [r1]
bl sub_818BA6C
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, =sub_818A470
str r1, [r0]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_818B9FC
thumb_func_start sub_818BA6C
sub_818BA6C: @ 818BA6C
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
lsls r1, 24
lsrs r1, 24
adds r0, r6, 0
bl sub_805EF84
ldr r0, =gBattlePartyID
lsls r2, r6, 1
adds r2, r0
ldr r0, =gBattleBufferA
lsls r1, r6, 9
adds r0, 0x1
adds r1, r0
ldrb r0, [r1]
strh r0, [r2]
ldrh r1, [r2]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0xB
bl GetMonData
mov r8, r0
lsls r0, 16
lsrs r0, 16
mov r8, r0
ldr r0, =sub_805D714
bl CreateInvisibleSpriteWithCallback
ldr r1, =gUnknown_03005D7C
mov r9, r1
add r9, r6
mov r1, r9
strb r0, [r1]
adds r0, r6, 0
bl GetBankIdentity
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r8
bl sub_806A068
ldr r0, =gUnknown_0202499C
mov r10, r0
adds r0, r6, 0
movs r1, 0x2
bl sub_80A5C6C
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
adds r0, r6, 0
bl sub_80A6138
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
bl sub_80A82E4
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
mov r0, r10
adds r1, r5, 0
adds r2, r4, 0
bl CreateSprite
ldr r4, =gBankSpriteIds
adds r4, r6, r4
strb r0, [r4]
ldr r5, =gSprites
mov r0, r9
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldrb r1, [r4]
strh r1, [r0, 0x30]
mov r0, r9
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
strh r6, [r0, 0x32]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
strh r6, [r0, 0x2E]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
mov r1, r8
strh r1, [r0, 0x32]
ldrb r0, [r4]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
lsls r3, r6, 4
ldrb r2, [r1, 0x5]
movs r0, 0xF
ands r0, r2
orrs r0, r3
strb r0, [r1, 0x5]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
2017-09-11 11:35:41 +02:00
ldr r1, =gBattleMonForms
2017-09-03 18:58:40 +02:00
adds r6, r1
ldrb r1, [r6]
bl StartSpriteAnim
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =SpriteCallbackDummy
str r1, [r0]
movs r0, 0
movs r1, 0xFF
bl sub_80753E8
mov r1, r9
ldrb r2, [r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r5
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0x2E]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_818BA6C
thumb_func_start sub_818BBE8
sub_818BBE8: @ 818BBE8
push {r4-r6,lr}
ldr r1, =gBattleBufferA
ldr r6, =gActiveBank
ldrb r2, [r6]
lsls r0, r2, 9
adds r1, 0x1
adds r0, r1
ldrb r3, [r0]
cmp r3, 0
bne _0818BC30
2017-10-01 18:54:01 +02:00
ldr r0, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
strb r3, [r0, 0x4]
ldr r1, =gBattleBankFunc
ldrb r0, [r6]
lsls r0, 2
adds r0, r1
ldr r1, =sub_818BC78
str r1, [r0]
b _0818BC66
.pool
_0818BC30:
ldr r5, =gBankSpriteIds
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =gSprites
adds r0, r4
bl FreeSpriteOamMatrix
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
2017-09-08 22:27:27 +02:00
ldr r1, =gHealthBoxesIds
2017-09-03 18:58:40 +02:00
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
2017-10-09 18:18:40 +02:00
bl SetHealthboxSpriteInvisible
2017-09-03 18:58:40 +02:00
bl RecordedPlayerBufferExecCompleted
_0818BC66:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_818BBE8
thumb_func_start sub_818BC78
sub_818BC78: @ 818BC78
push {r4-r6,lr}
2017-10-01 18:54:01 +02:00
ldr r6, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r4, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
ldr r1, [r4, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r3, r0, r1
ldrb r0, [r3, 0x4]
cmp r0, 0
beq _0818BCA0
cmp r0, 0x1
beq _0818BCCE
b _0818BCF6
.pool
_0818BCA0:
ldr r1, [r4]
lsls r0, r2, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0818BCBA
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x5
bl move_anim_start_t4
_0818BCBA:
ldr r0, [r6]
ldrb r1, [r5]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x1
strb r1, [r0, 0x4]
b _0818BCF6
_0818BCCE:
ldrb r1, [r3]
movs r0, 0x40
ands r0, r1
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _0818BCF6
strb r0, [r3, 0x4]
ldrb r2, [r5]
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x1
bl move_anim_start_t4
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, =sub_818A1B0
str r1, [r0]
_0818BCF6:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_818BC78
thumb_func_start sub_818BD04
sub_818BD04: @ 818BD04
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r0, =gBattleTypeFlags
ldr r1, [r0]
movs r0, 0x80
lsls r0, 18
ands r0, r1
cmp r0, 0
beq _0818BD48
movs r0, 0x40
ands r1, r0
cmp r1, 0
beq _0818BD30
bl sub_8185F40
lsls r0, 24
lsrs r4, r0, 24
b _0818BD4C
.pool
_0818BD30:
2017-09-06 21:18:50 +02:00
ldr r2, =gLinkPlayers
2017-09-03 18:58:40 +02:00
ldr r0, =gUnknown_0203C7B4
ldrb r1, [r0]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
adds r0, r2
b _0818BD4A
.pool
_0818BD48:
2017-09-06 21:18:50 +02:00
ldr r0, =gLinkPlayers
2017-09-03 18:58:40 +02:00
_0818BD4A:
ldrb r4, [r0, 0x13]
_0818BD4C:
ldr r0, =gBattleTypeFlags
ldr r1, [r0]
movs r2, 0x40
ands r1, r2
adds r5, r0, 0
cmp r1, 0
beq _0818BD98
ldr r0, =gActiveBank
ldrb r0, [r0]
bl GetBankIdentity
movs r1, 0x2
ands r1, r0
movs r0, 0x20
mov r9, r0
cmp r1, 0
beq _0818BD72
movs r1, 0x5A
mov r9, r1
_0818BD72:
ldr r0, [r5]
movs r1, 0x80
lsls r1, 15
ands r0, r1
cmp r0, 0
beq _0818BD9C
movs r0, 0x5A
mov r9, r0
ldr r1, =gTrainerFrontPicCoords
2017-09-03 18:58:40 +02:00
b _0818BD9E
.pool
_0818BD98:
movs r0, 0x50
mov r9, r0
_0818BD9C:
2017-10-09 18:18:40 +02:00
ldr r1, =gTrainerBackPicCoords
2017-09-03 18:58:40 +02:00
_0818BD9E:
lsls r0, r4, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x8
subs r0, r1
lsls r0, 18
movs r1, 0xA0
lsls r1, 15
adds r0, r1
lsrs r7, r0, 16
ldr r0, [r5]
movs r1, 0x80
lsls r1, 15
ands r0, r1
cmp r0, 0
bne _0818BDC0
b _0818BEDC
_0818BDC0:
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
bl sub_806F000
lsls r0, 16
lsrs r4, r0, 16
adds r5, r4, 0
ldr r6, =gActiveBank
ldrb r1, [r6]
adds r0, r5, 0
bl sub_805DF38
ldrb r0, [r6]
bl GetBankIdentity
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl sub_806A1C0
ldr r0, =gUnknown_0202499C
mov r8, r0
lsls r4, r7, 16
asrs r4, 16
ldrb r0, [r6]
bl sub_80A82E4
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
mov r0, r8
mov r1, r9
adds r2, r4, 0
bl CreateSprite
ldr r4, =gBankSpriteIds
ldrb r1, [r6]
adds r1, r4
strb r0, [r1]
ldr r0, =gTrainerFrontPicPaletteTable
lsls r5, 3
adds r5, r0
ldrh r0, [r5, 0x4]
bl IndexOfSpritePaletteTag
ldr r5, =gSprites
ldrb r1, [r6]
adds r1, r4
ldrb r1, [r1]
lsls r2, r1, 4
adds r2, r1
lsls r2, 2
adds r2, r5
lsls r0, 4
ldrb r3, [r2, 0x5]
movs r1, 0xF
ands r1, r3
orrs r1, r0
strb r1, [r2, 0x5]
ldrb r0, [r6]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0xF0
strh r1, [r0, 0x24]
ldrb r0, [r6]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0x30
strh r1, [r0, 0x26]
ldrb r0, [r6]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, =0x0000fffe
strh r1, [r0, 0x2E]
ldrb r0, [r6]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =sub_805D7AC
str r1, [r0]
ldrb r0, [r6]
adds r0, r4
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
ldrb r2, [r1, 0x1]
movs r0, 0x4
negs r0, r0
ands r0, r2
strb r0, [r1, 0x1]
ldrb r0, [r6]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
adds r0, 0x3F
ldrb r1, [r0]
movs r2, 0x1
orrs r1, r2
strb r1, [r0]
b _0818BF72
.pool
_0818BEDC:
ldr r5, =gActiveBank
ldrb r1, [r5]
adds r0, r4, 0
2017-10-09 18:18:40 +02:00
bl LoadBackTrainerBankSpriteGfx
2017-09-03 18:58:40 +02:00
ldrb r0, [r5]
bl GetBankIdentity
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
2017-09-11 18:27:54 +02:00
bl sub_806A12C
2017-09-03 18:58:40 +02:00
ldr r6, =gUnknown_0202499C
mov r8, r9
lsls r4, r7, 16
asrs r4, 16
ldrb r0, [r5]
bl sub_80A82E4
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r6, 0
mov r1, r8
adds r2, r4, 0
bl CreateSprite
ldr r6, =gBankSpriteIds
ldrb r1, [r5]
adds r1, r6
strb r0, [r1]
ldr r4, =gSprites
ldrb r3, [r5]
adds r0, r3, r6
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
lsls r3, 4
ldrb r2, [r1, 0x5]
movs r0, 0xF
ands r0, r2
orrs r0, r3
strb r0, [r1, 0x5]
ldrb r0, [r5]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0xF0
strh r1, [r0, 0x24]
ldrb r0, [r5]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, =0x0000fffe
strh r1, [r0, 0x2E]
ldrb r0, [r5]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r4, 0x1C
adds r0, r4
ldr r1, =sub_805D7AC
str r1, [r0]
_0818BF72:
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, =sub_81899B8
str r1, [r0]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_818BD04
thumb_func_start sub_818BFAC
sub_818BFAC: @ 818BFAC
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818BFAC
thumb_func_start sub_818BFB8
sub_818BFB8: @ 818BFB8
push {r4-r6,lr}
ldr r6, =gBankSpriteIds
ldr r4, =gActiveBank
ldrb r0, [r4]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r5, =gSprites
adds r0, r5
bl oamt_add_pos2_onto_pos1
ldrb r0, [r4]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0x23
strh r1, [r0, 0x2E]
ldrb r0, [r4]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, =0x0000ffd8
strh r1, [r0, 0x32]
ldrb r0, [r4]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldrh r1, [r0, 0x22]
strh r1, [r0, 0x36]
ldrb r0, [r4]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =sub_80A6EEC
str r1, [r0]
ldrb r0, [r4]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, =SpriteCallbackDummy
2017-09-04 12:22:04 +02:00
bl StoreSpriteCallbackInData6
2017-09-03 18:58:40 +02:00
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, =sub_81899F0
str r1, [r0]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_818BFB8
thumb_func_start sub_818C064
sub_818C064: @ 818C064
push {r4-r6,lr}
2017-10-01 18:54:01 +02:00
ldr r6, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r4, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
ldr r0, [r4, 0x4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r3, r1, r0
ldrb r0, [r3, 0x4]
cmp r0, 0
bne _0818C0B8
ldr r1, [r4]
lsls r0, r2, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0818C098
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x5
bl move_anim_start_t4
_0818C098:
ldr r0, [r6]
ldrb r1, [r5]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x4]
adds r1, 0x1
strb r1, [r0, 0x4]
b _0818C12E
.pool
_0818C0B8:
ldrb r1, [r3]
movs r0, 0x40
ands r0, r1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _0818C12E
strb r4, [r3, 0x4]
ldr r2, =gBattlePartyID
ldrb r1, [r5]
lsls r0, r1, 1
adds r0, r2
ldrh r2, [r0]
movs r0, 0x64
muls r0, r2
ldr r2, =gPlayerParty
adds r0, r2
bl sub_805E990
movs r1, 0x40
negs r1, r1
movs r0, 0x10
bl PlaySE12WithPanning
ldr r2, =gSprites
ldr r3, =gBankSpriteIds
ldrb r0, [r5]
adds r0, r3
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r4, [r0, 0x30]
ldrb r0, [r5]
adds r0, r3
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x5
strh r1, [r0, 0x32]
ldrb r0, [r5]
adds r0, r3
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, =sub_8039C00
str r1, [r0]
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, =sub_818A114
str r1, [r0]
_0818C12E:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_818C064
thumb_func_start sub_818C150
sub_818C150: @ 818C150
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C150
thumb_func_start sub_818C15C
sub_818C15C: @ 818C15C
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C15C
thumb_func_start sub_818C168
sub_818C168: @ 818C168
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C168
thumb_func_start sub_818C174
sub_818C174: @ 818C174
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C174
thumb_func_start sub_818C180
sub_818C180: @ 818C180
push {r4-r6,lr}
ldr r6, =gActiveBank
ldrb r0, [r6]
bl mplay_80342A4
lsls r0, 24
cmp r0, 0
beq _0818C192
b _0818C2A6
_0818C192:
ldr r0, =gBattleBufferA
mov r12, r0
ldrb r2, [r6]
lsls r2, 9
adds r0, 0x1
adds r0, r2, r0
ldrb r0, [r0]
mov r1, r12
adds r1, 0x2
adds r1, r2, r1
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
ldr r5, =gUnknown_02038432
mov r1, r12
adds r1, 0x3
adds r2, r1
ldrb r1, [r2]
strb r1, [r5]
2017-09-03 20:13:23 +02:00
ldr r4, =gMovePowerMoveAnim
2017-09-03 18:58:40 +02:00
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0x4
adds r1, r2, r1
ldrb r3, [r1]
mov r1, r12
adds r1, 0x5
adds r2, r1
ldrb r1, [r2]
lsls r1, 8
orrs r3, r1
strh r3, [r4]
2017-09-03 20:13:23 +02:00
ldr r4, =gMoveDmgMoveAnim
2017-09-03 18:58:40 +02:00
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0x6
adds r1, r2, r1
ldrb r3, [r1]
mov r1, r12
adds r1, 0x7
adds r1, r2, r1
ldrb r1, [r1]
lsls r1, 8
orrs r3, r1
mov r1, r12
adds r1, 0x8
adds r1, r2, r1
ldrb r1, [r1]
lsls r1, 16
orrs r3, r1
mov r1, r12
adds r1, 0x9
adds r2, r1
ldrb r1, [r2]
lsls r1, 24
orrs r3, r1
str r3, [r4]
2017-09-03 20:13:23 +02:00
ldr r3, =gHappinessMoveAnim
2017-09-03 18:58:40 +02:00
ldrb r1, [r6]
lsls r1, 9
mov r2, r12
adds r2, 0xA
adds r1, r2
ldrb r1, [r1]
strb r1, [r3]
2017-09-03 20:13:23 +02:00
ldr r4, =gWeatherMoveAnim
2017-09-03 18:58:40 +02:00
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0xC
adds r1, r2, r1
ldrb r3, [r1]
mov r1, r12
adds r1, 0xD
adds r2, r1
ldrb r1, [r2]
lsls r1, 8
orrs r3, r1
strh r3, [r4]
2017-09-03 20:13:23 +02:00
ldr r3, =gDisableStructMoveAnim
2017-09-03 18:58:40 +02:00
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0x10
adds r2, r1
str r2, [r3]
ldr r3, =gUnknown_020244BC
ldrb r1, [r6]
lsls r1, 2
adds r1, r3
ldr r2, [r2]
str r2, [r1]
ldrb r1, [r5]
bl sub_805DB8C
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0
beq _0818C288
bl RecordedPlayerBufferExecCompleted
b _0818C2A6
.pool
_0818C288:
2017-10-01 18:54:01 +02:00
ldr r0, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r0, [r0]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
strb r3, [r0, 0x4]
ldr r1, =gBattleBankFunc
ldrb r0, [r6]
lsls r0, 2
adds r0, r1
ldr r1, =bx_move_anim_2
str r1, [r0]
_0818C2A6:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_818C180
thumb_func_start bx_move_anim_2
bx_move_anim_2: @ 818C2B8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r2, =gBattleBufferA
ldr r6, =gActiveBank
ldrb r3, [r6]
lsls r1, r3, 9
adds r0, r2, 0x1
mov r10, r0
adds r0, r1, r0
ldrb r4, [r0]
adds r5, r2, 0x2
mov r9, r5
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, 8
orrs r4, r0
adds r2, 0xB
adds r1, r2
ldrb r1, [r1]
mov r8, r1
2017-10-01 18:54:01 +02:00
ldr r7, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r5, [r7]
ldr r1, [r5, 0x4]
lsls r0, r3, 1
adds r0, r3
lsls r0, 2
adds r0, r1
ldrb r2, [r0, 0x4]
cmp r2, 0x1
beq _0818C350
cmp r2, 0x1
bgt _0818C310
cmp r2, 0
beq _0818C31A
b _0818C42C
.pool
_0818C310:
cmp r2, 0x2
beq _0818C37A
cmp r2, 0x3
beq _0818C3F0
b _0818C42C
_0818C31A:
ldr r1, [r5]
lsls r0, r3, 2
adds r1, r0, r1
ldrb r2, [r1]
movs r0, 0xC
ands r0, r2
cmp r0, 0x4
bne _0818C33C
movs r0, 0x8
orrs r0, r2
strb r0, [r1]
ldrb r2, [r6]
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x5
bl move_anim_start_t4
_0818C33C:
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x1
strb r1, [r0, 0x4]
b _0818C42C
_0818C350:
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _0818C42C
movs r0, 0
bl sub_805EB9C
adds r0, r4, 0
bl move_anim_start_t1
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x2
strb r1, [r0, 0x4]
b _0818C42C
_0818C37A:
2017-09-03 20:13:23 +02:00
ldr r0, =gAnimScriptCallback
2017-09-03 18:58:40 +02:00
ldr r0, [r0]
bl _call_via_r0
2017-09-03 20:13:23 +02:00
ldr r0, =gAnimScriptActive
2017-09-03 18:58:40 +02:00
ldrb r0, [r0]
cmp r0, 0
bne _0818C42C
movs r0, 0x1
bl sub_805EB9C
ldr r0, [r7]
ldrb r2, [r6]
ldr r1, [r0]
lsls r0, r2, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0818C3C8
mov r0, r8
cmp r0, 0x1
bhi _0818C3C8
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x6
bl move_anim_start_t4
ldr r0, [r7]
ldrb r1, [r6]
ldr r0, [r0]
lsls r1, 2
adds r1, r0
ldrb r2, [r1]
movs r0, 0x9
negs r0, r0
ands r0, r2
strb r0, [r1]
_0818C3C8:
2017-10-01 18:54:01 +02:00
ldr r0, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
ldr r2, [r2, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x3
strb r1, [r0, 0x4]
b _0818C42C
.pool
_0818C3F0:
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _0818C42C
bl sub_805E394
ldrb r0, [r6]
lsls r2, r0, 9
mov r3, r10
adds r1, r2, r3
ldrb r1, [r1]
add r2, r9
ldrb r2, [r2]
lsls r2, 8
orrs r1, r2
bl sub_805E94C
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
strb r4, [r0, 0x4]
bl RecordedPlayerBufferExecCompleted
_0818C42C:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end bx_move_anim_2
thumb_func_start sub_818C43C
sub_818C43C: @ 818C43C
push {r4,lr}
2017-10-01 01:12:42 +02:00
ldr r0, =gBattle_BG0_X
2017-09-03 18:58:40 +02:00
movs r1, 0
strh r1, [r0]
2017-10-01 01:12:42 +02:00
ldr r0, =gBattle_BG0_Y
2017-09-03 18:58:40 +02:00
strh r1, [r0]
ldr r4, =gActiveBank
ldrb r0, [r4]
lsls r0, 9
ldr r1, =gBattleBufferA + 2
2017-09-03 18:58:40 +02:00
adds r0, r1
ldrh r0, [r0]
2017-09-05 20:13:34 +02:00
bl BufferStringBattle
ldr r0, =gDisplayedStringBattle
2017-09-03 18:58:40 +02:00
movs r1, 0
2017-09-25 00:09:13 +02:00
bl sub_814F9EC
2017-09-03 18:58:40 +02:00
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, =sub_818A220
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_818C43C
thumb_func_start sub_818C490
sub_818C490: @ 818C490
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C490
thumb_func_start sub_818C49C
sub_818C49C: @ 818C49C
push {lr}
ldr r1, =gBattleCommunication
ldr r0, =gNoOfAllBanks
ldrb r0, [r0]
ldrb r1, [r1, 0x4]
lsrs r0, 1
cmp r1, r0
bcc _0818C4C6
ldr r0, =gActiveBank
ldrb r0, [r0]
bl sub_8185054
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
movs r0, 0x1
movs r2, 0
2017-10-10 18:01:45 +02:00
bl EmitCmd_x21
2017-09-03 18:58:40 +02:00
bl RecordedPlayerBufferExecCompleted
_0818C4C6:
pop {r0}
bx r0
.pool
thumb_func_end sub_818C49C
thumb_func_start sub_818C4D8
sub_818C4D8: @ 818C4D8
push {lr}
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x80
lsls r1, 10
ands r0, r1
cmp r0, 0
beq _0818C508
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, =sub_818C49C
str r1, [r0]
b _0818C522
.pool
_0818C508:
ldr r0, =gActiveBank
ldrb r0, [r0]
bl sub_8185054
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
movs r0, 0x1
movs r2, 0
2017-10-10 18:01:45 +02:00
bl EmitCmd_x21
2017-09-03 18:58:40 +02:00
bl RecordedPlayerBufferExecCompleted
_0818C522:
pop {r0}
bx r0
.pool
thumb_func_end sub_818C4D8
thumb_func_start sub_818C52C
sub_818C52C: @ 818C52C
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C52C
thumb_func_start sub_818C538
sub_818C538: @ 818C538
push {r4,r5,lr}
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x80
lsls r1, 10
ands r0, r1
cmp r0, 0
beq _0818C560
bl sub_805D19C
adds r2, r0, 0
lsls r2, 16
lsrs r2, 16
movs r0, 0x1
movs r1, 0xA
2017-10-10 18:01:45 +02:00
bl EmitCmd_x21
2017-09-03 18:58:40 +02:00
b _0818C584
.pool
_0818C560:
ldr r5, =gActiveBank
ldrb r0, [r5]
bl sub_8185054
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldrb r0, [r5]
bl sub_8185054
adds r2, r0, 0
lsls r2, 24
lsrs r2, 16
orrs r2, r4
movs r0, 0x1
movs r1, 0xA
2017-10-10 18:01:45 +02:00
bl EmitCmd_x21
2017-09-03 18:58:40 +02:00
_0818C584:
bl RecordedPlayerBufferExecCompleted
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_818C538
thumb_func_start sub_818C594
sub_818C594: @ 818C594
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C594
thumb_func_start sub_818C5A0
sub_818C5A0: @ 818C5A0
push {r4,lr}
ldr r4, =gActiveBank
ldrb r0, [r4]
bl sub_8185054
ldrb r1, [r4]
ldr r3, =gBattleStruct
ldr r2, [r3]
adds r1, r2
adds r1, 0x5C
strb r0, [r1]
ldrb r0, [r4]
ldr r1, [r3]
adds r0, r1
adds r0, 0x5C
ldrb r1, [r0]
movs r0, 0x1
movs r2, 0
bl dp01_build_cmdbuf_x22_a_three_bytes
bl RecordedPlayerBufferExecCompleted
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_818C5A0
thumb_func_start sub_818C5DC
sub_818C5DC: @ 818C5DC
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C5DC
thumb_func_start sub_818C5E8
sub_818C5E8: @ 818C5E8
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
movs r0, 0
bl load_gfxc_health_bar
ldr r3, =gBattleBufferA
ldr r0, =gActiveBank
mov r9, r0
ldrb r4, [r0]
lsls r2, r4, 9
adds r0, r3, 0x2
adds r0, r2, r0
ldrb r1, [r0]
adds r3, 0x3
adds r2, r3
ldrb r0, [r2]
lsls r0, 8
orrs r1, r0
lsls r1, 16
asrs r7, r1, 16
ldr r0, =0x00007fff
cmp r7, r0
beq _0818C678
ldr r6, =gBattlePartyID
lsls r0, r4, 1
adds r0, r6
ldrh r0, [r0]
movs r5, 0x64
muls r0, r5
ldr r4, =gPlayerParty
adds r0, r4
movs r1, 0x3A
bl GetMonData
mov r8, r0
mov r1, r9
ldrb r0, [r1]
lsls r0, 1
adds r0, r6
ldrh r0, [r0]
muls r0, r5
adds r0, r4
movs r1, 0x39
bl GetMonData
adds r3, r0, 0
mov r1, r9
ldrb r0, [r1]
2017-09-08 22:27:27 +02:00
ldr r1, =gHealthBoxesIds
2017-09-03 18:58:40 +02:00
adds r1, r0, r1
ldrb r1, [r1]
str r7, [sp]
mov r2, r8
bl sub_807294C
b _0818C6B2
.pool
_0818C678:
ldr r1, =gBattlePartyID
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x3A
bl GetMonData
adds r2, r0, 0
mov r1, r9
ldrb r0, [r1]
2017-09-08 22:27:27 +02:00
ldr r4, =gHealthBoxesIds
2017-09-03 18:58:40 +02:00
adds r1, r0, r4
ldrb r1, [r1]
str r7, [sp]
movs r3, 0
bl sub_807294C
mov r1, r9
ldrb r0, [r1]
adds r0, r4
ldrb r0, [r0]
movs r1, 0
movs r2, 0
bl heathbar_draw_hp
_0818C6B2:
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, =sub_818A0A4
str r1, [r0]
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_818C5E8
thumb_func_start sub_818C6E8
sub_818C6E8: @ 818C6E8
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C6E8
thumb_func_start sub_818C6F4
sub_818C6F4: @ 818C6F4
push {r4,lr}
ldr r4, =gActiveBank
ldrb r0, [r4]
bl mplay_80342A4
lsls r0, 24
cmp r0, 0
bne _0818C748
2017-09-08 22:27:27 +02:00
ldr r0, =gHealthBoxesIds
2017-09-03 18:58:40 +02:00
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
ldr r2, =gBattlePartyID
lsls r1, 1
adds r1, r2
ldrh r2, [r1]
movs r1, 0x64
muls r1, r2
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0x9
2017-10-09 18:18:40 +02:00
bl UpdateHealthboxAttribute
2017-09-03 18:58:40 +02:00
ldrb r2, [r4]
2017-10-01 18:54:01 +02:00
ldr r0, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r0, [r0]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r1, r0
ldrb r2, [r1]
movs r0, 0x11
negs r0, r0
ands r0, r2
strb r0, [r1]
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, =sub_818A58C
str r1, [r0]
_0818C748:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_818C6F4
thumb_func_start sub_818C76C
sub_818C76C: @ 818C76C
push {r4,r5,lr}
ldr r5, =gActiveBank
ldrb r0, [r5]
bl mplay_80342A4
lsls r0, 24
cmp r0, 0
bne _0818C7BC
ldr r4, =gBattleBufferA
ldrb r3, [r5]
lsls r3, 9
adds r0, r4, 0x1
adds r0, r3, r0
ldrb r0, [r0]
adds r1, r4, 0x2
adds r1, r3, r1
ldrb r1, [r1]
adds r2, r4, 0x3
adds r2, r3, r2
ldrb r2, [r2]
lsls r2, 8
orrs r1, r2
adds r2, r4, 0x4
adds r2, r3, r2
ldrb r2, [r2]
lsls r2, 16
orrs r1, r2
adds r4, 0x5
adds r3, r4
ldrb r2, [r3]
lsls r2, 24
orrs r1, r2
bl move_anim_start_t2_for_situation
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, =sub_818A58C
str r1, [r0]
_0818C7BC:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_818C76C
thumb_func_start sub_818C7D4
sub_818C7D4: @ 818C7D4
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C7D4
thumb_func_start sub_818C7E0
sub_818C7E0: @ 818C7E0
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C7E0
thumb_func_start sub_818C7EC
sub_818C7EC: @ 818C7EC
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C7EC
thumb_func_start sub_818C7F8
sub_818C7F8: @ 818C7F8
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C7F8
thumb_func_start sub_818C804
sub_818C804: @ 818C804
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C804
thumb_func_start sub_818C810
sub_818C810: @ 818C810
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C810
thumb_func_start sub_818C81C
sub_818C81C: @ 818C81C
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C81C
thumb_func_start sub_818C828
sub_818C828: @ 818C828
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C828
thumb_func_start sub_818C834
sub_818C834: @ 818C834
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C834
thumb_func_start sub_818C840
sub_818C840: @ 818C840
push {lr}
ldr r2, =gUnknown_02022D0C
ldrb r1, [r2]
movs r0, 0x80
negs r0, r0
ands r0, r1
strb r0, [r2]
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.pool
thumb_func_end sub_818C840
thumb_func_start sub_818C85C
sub_818C85C: @ 818C85C
push {lr}
ldr r3, =gUnknown_02022D0C
ldr r1, =gBattleBufferA
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 9
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
movs r1, 0x7F
ands r1, r0
ldrb r2, [r3]
movs r0, 0x80
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.pool
thumb_func_end sub_818C85C
thumb_func_start sub_818C894
sub_818C894: @ 818C894
push {lr}
ldr r2, =gUnknown_02022D0C
ldrb r1, [r2]
movs r0, 0x7F
ands r0, r1
strb r0, [r2]
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.pool
thumb_func_end sub_818C894
thumb_func_start sub_818C8AC
sub_818C8AC: @ 818C8AC
push {lr}
ldr r3, =gUnknown_02022D0C
ldr r1, [r3]
lsls r1, 24
lsrs r1, 31
movs r0, 0x1
eors r1, r0
lsls r1, 7
ldrb r2, [r3]
movs r0, 0x7F
ands r0, r2
orrs r0, r1
strb r0, [r3]
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.pool
thumb_func_end sub_818C8AC
thumb_func_start sub_818C8D4
sub_818C8D4: @ 818C8D4
push {r4,lr}
ldr r3, =gSprites
ldr r2, =gBankSpriteIds
ldr r4, =gActiveBank
ldrb r0, [r4]
adds r0, r2
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
bge _0818C908
bl RecordedPlayerBufferExecCompleted
b _0818C932
.pool
_0818C908:
ldr r1, =gDoingBattleAnim
movs r0, 0x1
strb r0, [r1]
ldrb r0, [r4]
adds r0, r2
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
movs r1, 0
strh r1, [r0, 0x30]
ldrb r0, [r4]
bl sub_80769F4
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, =sub_818A238
str r1, [r0]
_0818C932:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_818C8D4
thumb_func_start sub_818C944
sub_818C944: @ 818C944
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818C944
thumb_func_start sub_818C950
sub_818C950: @ 818C950
push {r4,lr}
ldr r4, =gActiveBank
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
movs r3, 0x3F
cmp r0, 0
bne _0818C964
movs r3, 0xC0
_0818C964:
ldr r2, =gBattleBufferA
ldrb r1, [r4]
lsls r1, 9
adds r0, r2, 0x1
adds r0, r1, r0
ldrb r0, [r0]
adds r2, 0x2
adds r1, r2
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
lsls r1, r3, 24
asrs r1, 24
bl PlaySE12WithPanning
bl RecordedPlayerBufferExecCompleted
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_818C950
thumb_func_start sub_818C994
sub_818C994: @ 818C994
push {r4,r5,lr}
ldr r4, =gBattleBufferA
ldr r5, =gActiveBank
ldrb r0, [r5]
lsls r3, r0, 9
adds r0, r4, 0x3
adds r0, r3, r0
ldrb r0, [r0]
cmp r0, 0
beq _0818C9D0
2017-09-22 21:33:49 +02:00
bl BattleMusicStop
2017-09-03 18:58:40 +02:00
ldrb r1, [r5]
lsls r1, 9
adds r0, r4, 0x1
adds r0, r1, r0
ldrb r0, [r0]
adds r2, r4, 0x2
adds r1, r2
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
bl PlayBGM
b _0818C9E4
.pool
_0818C9D0:
adds r0, r4, 0x1
adds r0, r3, r0
ldrb r0, [r0]
adds r1, r4, 0x2
adds r1, r3, r1
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
bl PlayFanfare
_0818C9E4:
bl RecordedPlayerBufferExecCompleted
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_818C994
thumb_func_start sub_818C9F0
sub_818C9F0: @ 818C9F0
push {lr}
ldr r1, =gBattlePartyID
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r0, 16
movs r1, 0x19
negs r1, r1
movs r2, 0x5
bl PlayCry3
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.pool
thumb_func_end sub_818C9F0
thumb_func_start dp01t_2E_2_battle_intro
dp01t_2E_2_battle_intro: @ 818CA30
push {lr}
ldr r1, =gBattleBufferA
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 9
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
bl battle_intro_launch
ldr r2, =gUnknown_020243FC
ldrh r0, [r2]
movs r1, 0x1
orrs r0, r1
strh r0, [r2]
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.pool
thumb_func_end dp01t_2E_2_battle_intro
thumb_func_start sub_818CA64
sub_818CA64: @ 818CA64
push {r4-r6,lr}
ldr r5, =gBankSpriteIds
ldr r6, =gActiveBank
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =gSprites
adds r0, r4
bl oamt_add_pos2_onto_pos1
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x32
strh r1, [r0, 0x2E]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, =0x0000ffd8
strh r1, [r0, 0x32]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r1, [r0, 0x22]
strh r1, [r0, 0x36]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r4, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =sub_80A6EEC
str r1, [r0]
ldrb r2, [r6]
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
strh r2, [r0, 0x38]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, =sub_805CC00
2017-09-04 12:22:04 +02:00
bl StoreSpriteCallbackInData6
2017-09-03 18:58:40 +02:00
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x1
bl StartSpriteAnim
ldr r0, =0x0000d6f9
bl AllocSpritePalette
lsls r0, 24
lsrs r5, r0, 24
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x80
lsls r1, 18
ands r0, r1
cmp r0, 0
beq _0818CB54
2017-09-06 21:18:50 +02:00
ldr r4, =gLinkPlayers
2017-09-03 18:58:40 +02:00
ldrb r0, [r6]
bl sub_806D864
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r4
ldrb r0, [r1, 0x13]
b _0818CB5A
.pool
_0818CB54:
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
_0818CB5A:
ldr r1, =gTrainerBackPicPaletteTable
lsls r0, 3
adds r0, r1
ldr r0, [r0]
lsls r4, r5, 4
movs r2, 0x80
lsls r2, 1
adds r1, r4, r2
movs r2, 0x20
bl LoadCompressedPalette
ldr r2, =gSprites
ldr r1, =gBankSpriteIds
ldr r5, =gActiveBank
ldrb r0, [r5]
adds r0, r1
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
ldrb r2, [r1, 0x5]
movs r0, 0xF
ands r0, r2
orrs r0, r4
strb r0, [r1, 0x5]
ldr r0, =sub_818CC24
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r4, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r4
ldrb r0, [r5]
strh r0, [r1, 0x8]
2017-10-01 18:54:01 +02:00
ldr r3, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r0, [r3]
ldrb r2, [r5]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0818CBD4
ldr r0, =gUnknown_020244B4
adds r0, r2, r0
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r4
ldr r1, =sub_8073C30
str r1, [r0]
_0818CBD4:
ldr r0, [r3]
ldr r2, [r0, 0x8]
ldrb r0, [r2, 0x9]
movs r1, 0x1
orrs r0, r1
strb r0, [r2, 0x9]
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, =nullsub_120
str r1, [r0]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_818CA64
thumb_func_start sub_818CC24
sub_818CC24: @ 818CC24
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r1, =gTasks
lsls r0, 2
add r0, r8
lsls r0, 3
adds r1, r0, r1
ldrh r2, [r1, 0xA]
movs r3, 0xA
ldrsh r0, [r1, r3]
cmp r0, 0x17
bgt _0818CC50
adds r0, r2, 0x1
strh r0, [r1, 0xA]
b _0818CD0C
.pool
_0818CC50:
ldr r7, =gActiveBank
ldrb r0, [r7]
mov r9, r0
ldrh r0, [r1, 0x8]
strb r0, [r7]
2017-10-09 18:18:40 +02:00
bl IsDoubleBattle
2017-09-03 18:58:40 +02:00
lsls r0, 24
cmp r0, 0
beq _0818CC70
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x40
ands r0, r1
cmp r0, 0
beq _0818CCA0
_0818CC70:
ldr r0, =gBattleBufferA
ldrb r1, [r7]
lsls r2, r1, 9
adds r0, 0x1
adds r2, r0
ldr r0, =gBattlePartyID
lsls r1, 1
adds r1, r0
ldrh r0, [r1]
strb r0, [r2]
ldrb r0, [r7]
movs r1, 0
bl sub_818BA6C
b _0818CCF4
.pool
_0818CCA0:
ldr r4, =gBattleBufferA
ldrb r0, [r7]
lsls r1, r0, 9
adds r4, 0x1
adds r1, r4
ldr r5, =gBattlePartyID
lsls r0, 1
adds r0, r5
ldrh r0, [r0]
strb r0, [r1]
ldrb r0, [r7]
movs r1, 0
bl sub_818BA6C
ldrb r0, [r7]
movs r6, 0x2
eors r0, r6
strb r0, [r7]
ldrb r0, [r7]
lsls r1, r0, 9
adds r1, r4
lsls r0, 1
adds r0, r5
ldrh r0, [r0]
strb r0, [r1]
ldrb r1, [r7]
lsls r0, r1, 1
adds r0, r5
ldrh r2, [r0]
movs r0, 0x64
muls r0, r2
ldr r2, =gPlayerParty
adds r0, r2
2017-10-09 18:18:40 +02:00
bl BattleLoadPlayerMonSpriteGfx
2017-09-03 18:58:40 +02:00
ldrb r0, [r7]
movs r1, 0
bl sub_818BA6C
ldrb r0, [r7]
eors r0, r6
strb r0, [r7]
_0818CCF4:
ldr r1, =gBattleBankFunc
ldr r2, =gActiveBank
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, =sub_8189D40
str r1, [r0]
mov r3, r9
strb r3, [r2]
mov r0, r8
bl DestroyTask
_0818CD0C:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_818CC24
thumb_func_start sub_818CD30
sub_818CD30: @ 818CD30
push {r4-r6,lr}
ldr r1, =gBattleBufferA
ldr r0, =gActiveBank
ldrb r2, [r0]
lsls r0, r2, 9
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _0818CD60
adds r0, r2, 0
bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _0818CD60
bl RecordedPlayerBufferExecCompleted
b _0818CDD4
.pool
_0818CD60:
2017-10-01 18:54:01 +02:00
ldr r6, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r0, [r6]
ldr r5, =gActiveBank
ldrb r1, [r5]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0]
movs r2, 0x1
orrs r1, r2
strb r1, [r0]
ldrb r0, [r5]
lsls r3, r0, 9
ldr r4, =gBattleBufferA + 4
2017-09-03 18:58:40 +02:00
adds r1, r3, r4
subs r2, r4, 0x3
adds r2, r3, r2
ldrb r2, [r2]
subs r4, 0x2
adds r3, r4
ldrb r3, [r3]
bl sub_80735DC
ldr r2, =gUnknown_020244B4
ldrb r1, [r5]
adds r1, r2
movs r3, 0
strb r0, [r1]
ldr r0, [r6]
ldrb r1, [r5]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
strb r3, [r0, 0x5]
ldrb r2, [r5]
lsls r0, r2, 9
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
beq _0818CDC8
ldr r0, [r6]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
movs r1, 0x5D
strb r1, [r0, 0x5]
_0818CDC8:
ldr r0, =gBattleBankFunc
ldrb r1, [r5]
lsls r1, 2
adds r1, r0
ldr r0, =bx_increment_dp11b_field_5_till_x60_then_resume
str r0, [r1]
_0818CDD4:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_818CD30
thumb_func_start bx_increment_dp11b_field_5_till_x60_then_resume
bx_increment_dp11b_field_5_till_x60_then_resume: @ 818CDF4
push {r4,lr}
2017-10-01 18:54:01 +02:00
ldr r4, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r0, [r4]
ldr r3, =gActiveBank
ldrb r1, [r3]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x5]
adds r2, r1, 0x1
strb r2, [r0, 0x5]
lsls r1, 24
lsrs r1, 24
cmp r1, 0x5C
bls _0818CE2C
ldr r0, [r4]
ldrb r1, [r3]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0
strb r1, [r0, 0x5]
bl RecordedPlayerBufferExecCompleted
_0818CE2C:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end bx_increment_dp11b_field_5_till_x60_then_resume
thumb_func_start sub_818CE3C
sub_818CE3C: @ 818CE3C
push {lr}
2017-10-01 18:54:01 +02:00
ldr r0, =gBattleSpritesDataPtr
2017-09-03 18:58:40 +02:00
ldr r1, [r0]
ldr r0, =gActiveBank
ldrb r3, [r0]
ldr r1, [r1, 0x4]
lsls r0, r3, 1
adds r0, r3
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0818CE6E
ldr r2, =gTasks
ldr r0, =gUnknown_020244B4
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldr r1, =sub_8073C30
str r1, [r0]
_0818CE6E:
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.pool
thumb_func_end sub_818CE3C
thumb_func_start sub_818CE8C
sub_818CE8C: @ 818CE8C
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818CE8C
thumb_func_start sub_818CE98
sub_818CE98: @ 818CE98
push {r4,lr}
ldr r4, =gActiveBank
ldrb r0, [r4]
bl sub_80A6A90
lsls r0, 24
cmp r0, 0
beq _0818CEDE
ldr r3, =gSprites
ldr r0, =gBankSpriteIds
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r3
ldr r0, =gBattleBufferA
lsls r1, 9
adds r0, 0x1
adds r1, r0
adds r2, 0x3E
movs r0, 0x1
ldrb r1, [r1]
ands r1, r0
lsls r1, 2
ldrb r3, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2]
ldrb r0, [r4]
bl sub_805E408
_0818CEDE:
bl RecordedPlayerBufferExecCompleted
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_818CE98
thumb_func_start sub_818CEF8
sub_818CEF8: @ 818CEF8
push {r4-r6,lr}
sub sp, 0x4
ldr r6, =gActiveBank
ldrb r0, [r6]
bl mplay_80342A4
lsls r0, 24
cmp r0, 0
bne _0818CF50
ldr r5, =gBattleBufferA
ldrb r2, [r6]
lsls r1, r2, 9
adds r0, r5, 0x1
adds r0, r1, r0
ldrb r3, [r0]
adds r0, r5, 0x2
adds r0, r1, r0
ldrb r4, [r0]
adds r5, 0x3
adds r1, r5
ldrb r0, [r1]
lsls r0, 8
orrs r4, r0
str r4, [sp]
adds r0, r2, 0
adds r1, r2, 0
bl move_anim_start_t3
lsls r0, 24
cmp r0, 0
beq _0818CF44
bl RecordedPlayerBufferExecCompleted
b _0818CF50
.pool
_0818CF44:
ldr r0, =gBattleBankFunc
ldrb r1, [r6]
lsls r1, 2
adds r1, r0
ldr r0, =sub_818A5BC
str r0, [r1]
_0818CF50:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_818CEF8
thumb_func_start sub_818CF60
sub_818CF60: @ 818CF60
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818CF60
thumb_func_start sub_818CF6C
sub_818CF6C: @ 818CF6C
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_818CF6C
thumb_func_start sub_818CF78
sub_818CF78: @ 818CF78
push {r4,lr}
ldr r2, =gBattleOutcome
ldr r1, =gBattleBufferA
ldr r4, =gActiveBank
ldrb r0, [r4]
lsls r0, 9
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
strb r0, [r2]
movs r0, 0x5
bl FadeOutMapMusic
movs r0, 0x3
bl BeginFastPaletteFade
bl RecordedPlayerBufferExecCompleted
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, =sub_80587B0
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_818CF78
thumb_func_start nullsub_121
nullsub_121: @ 818CFC4
bx lr
thumb_func_end nullsub_121
.align 2, 0 @ Don't pad with nop.