1823 lines
29 KiB
ArmAsm
1823 lines
29 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
|
|
thumb_func_start sub_805C114
|
|
sub_805C114: @ 805C114
|
|
push {lr}
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0805C13E
|
|
ldr r0, =gBattle_BG0_X
|
|
strh r1, [r0]
|
|
ldr r1, =gBattle_BG0_Y
|
|
movs r2, 0xA0
|
|
lsls r2, 1
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r1, =gBattleBankFunc
|
|
ldr r0, =gActiveBank
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =HandleInputChooseMove
|
|
str r1, [r0]
|
|
_0805C13E:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C114
|
|
|
|
thumb_func_start sub_805C158
|
|
sub_805C158: @ 805C158
|
|
push {lr}
|
|
ldr r0, =gActiveBank
|
|
ldrb r1, [r0]
|
|
ldr r0, =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
movs r0, 0xA6
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805C194
|
|
ldr r1, =gBattlePalaceMoveSelectionRngValue
|
|
ldr r0, =gRngValue
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
bl sub_805D19C
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r0, 0x1
|
|
movs r1, 0xA
|
|
bl EmitChoiceReturnValue
|
|
bl PlayerBufferExecCompleted
|
|
_0805C194:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C158
|
|
|
|
thumb_func_start PlayerHandleChooseMove
|
|
PlayerHandleChooseMove: @ 805C1A8
|
|
push {lr}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805C1EC
|
|
ldr r2, =gActiveBank
|
|
ldrb r0, [r2]
|
|
ldr r1, =gBattleStruct
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
movs r1, 0xA6
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
movs r1, 0x8
|
|
strb r1, [r0]
|
|
ldr r1, =gBattleBankFunc
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805C158
|
|
b _0805C1FC
|
|
.pool
|
|
_0805C1EC:
|
|
bl sub_805C210
|
|
ldr r1, =gBattleBankFunc
|
|
ldr r0, =gActiveBank
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805C114
|
|
_0805C1FC:
|
|
str r1, [r0]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleChooseMove
|
|
|
|
thumb_func_start sub_805C210
|
|
sub_805C210: @ 805C210
|
|
push {lr}
|
|
bl MoveSelectionDisplayMoveNames
|
|
ldr r1, =gMultiUsePlayerCursor
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
ldr r1, =gMoveSelectionCursor
|
|
ldr r0, =gActiveBank
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl MoveSelectionCreateCursorAt
|
|
bl MoveSelectionDisplayPpString
|
|
bl MoveSelectionDisplayPpNumber
|
|
bl MoveSelectionDisplayMoveType
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C210
|
|
|
|
thumb_func_start PlayerHandleOpenBag
|
|
PlayerHandleOpenBag: @ 805C248
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, =gBattleBankFunc
|
|
ldr r2, =gActiveBank
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80598A4
|
|
str r1, [r0]
|
|
ldr r1, =gBankInMenu
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
movs r3, 0
|
|
ldr r5, =gUnknown_0203CF00
|
|
ldr r4, =gBattleBufferA
|
|
_0805C276:
|
|
adds r0, r3, r5
|
|
ldrb r1, [r2]
|
|
lsls r1, 9
|
|
adds r1, 0x1
|
|
adds r1, r3, r1
|
|
adds r1, r4
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r3, 0x1
|
|
cmp r3, 0x2
|
|
ble _0805C276
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleOpenBag
|
|
|
|
thumb_func_start PlayerHandleChoosePokemon
|
|
PlayerHandleChoosePokemon: @ 805C2AC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
movs r3, 0
|
|
ldr r0, =gUnknown_0203CF00
|
|
mov r12, r0
|
|
ldr r1, =gBattleBufferA
|
|
mov r8, r1
|
|
ldr r2, =gActiveBank
|
|
ldr r7, =gBattleTypeFlags
|
|
mov r6, r12
|
|
mov r5, r8
|
|
adds r4, r2, 0
|
|
_0805C2C8:
|
|
adds r0, r3, r6
|
|
ldrb r1, [r4]
|
|
lsls r1, 9
|
|
adds r1, 0x4
|
|
adds r1, r3, r1
|
|
adds r1, r5
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r3, 0x1
|
|
cmp r3, 0x2
|
|
ble _0805C2C8
|
|
ldr r0, [r7]
|
|
movs r1, 0x80
|
|
lsls r1, 11
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805C330
|
|
ldrb r3, [r2]
|
|
lsls r0, r3, 9
|
|
mov r1, r8
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0x2
|
|
beq _0805C330
|
|
ldr r1, =gBattlePartyID
|
|
lsls r0, r3, 1
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0x1
|
|
mov r2, r12
|
|
bl EmitCmd34
|
|
bl PlayerBufferExecCompleted
|
|
b _0805C3BC
|
|
.pool
|
|
_0805C330:
|
|
ldr r0, =TaskDummy
|
|
movs r1, 0xFF
|
|
bl CreateTask
|
|
ldr r3, =gUnknown_03005D7C
|
|
ldr r4, =gActiveBank
|
|
ldrb r1, [r4]
|
|
adds r1, r3
|
|
movs r2, 0
|
|
mov r8, r2
|
|
strb r0, [r1]
|
|
ldr r5, =gTasks
|
|
ldrb r2, [r4]
|
|
adds r3, r2, r3
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r5
|
|
ldr r5, =gBattleBufferA
|
|
lsls r2, 9
|
|
adds r6, r5, 0x1
|
|
adds r2, r6
|
|
ldrb r2, [r2]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
strh r0, [r1, 0x8]
|
|
ldr r3, =gBattleStruct
|
|
ldr r1, [r3]
|
|
adds r1, 0x49
|
|
ldrb r0, [r4]
|
|
lsls r0, 9
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
lsrs r0, 4
|
|
strb r0, [r1]
|
|
ldr r2, [r3]
|
|
adds r2, 0x8B
|
|
ldrb r0, [r4]
|
|
lsls r0, 9
|
|
adds r1, r5, 0x2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r1, [r3]
|
|
adds r1, 0xB0
|
|
ldrb r0, [r4]
|
|
lsls r0, 9
|
|
adds r5, 0x3
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
mov r1, r8
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, =gBattleBankFunc
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80597CC
|
|
str r1, [r0]
|
|
ldr r1, =gBankInMenu
|
|
ldrb r0, [r4]
|
|
strb r0, [r1]
|
|
_0805C3BC:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleChoosePokemon
|
|
|
|
thumb_func_start PlayerHandleCmd23
|
|
PlayerHandleCmd23: @ 805C3EC
|
|
push {lr}
|
|
sub sp, 0x4
|
|
bl BattleMusicStop
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
bl PlayerBufferExecCompleted
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerHandleCmd23
|
|
|
|
thumb_func_start PlayerHandleHealthBarUpdate
|
|
PlayerHandleHealthBarUpdate: @ 805C410
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
bl LoadBattleBarGfx
|
|
ldr r3, =gBattleBufferA
|
|
ldr r0, =gActiveBank
|
|
mov r9, r0
|
|
ldrb r1, [r0]
|
|
lsls r1, 9
|
|
adds r0, r3, 0x2
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
adds r3, 0x3
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
lsls r2, 16
|
|
asrs r7, r2, 16
|
|
cmp r7, 0
|
|
ble _0805C44A
|
|
ldr r1, =gUnknown_0203CD70
|
|
ldr r0, [r1]
|
|
adds r0, r7
|
|
str r0, [r1]
|
|
_0805C44A:
|
|
ldr r0, =0x00007fff
|
|
cmp r7, r0
|
|
beq _0805C4B4
|
|
ldr r6, =gBattlePartyID
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
lsls r0, 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 r2, r9
|
|
ldrb r0, [r2]
|
|
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]
|
|
ldr r1, =gHealthBoxesIds
|
|
adds r1, r0, r1
|
|
ldrb r1, [r1]
|
|
str r7, [sp]
|
|
mov r2, r8
|
|
bl SetBattleBarStruct
|
|
b _0805C4F2
|
|
.pool
|
|
_0805C4B4:
|
|
ldr r1, =gBattlePartyID
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
lsls r0, 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]
|
|
ldr r4, =gHealthBoxesIds
|
|
adds r1, r0, r4
|
|
ldrb r1, [r1]
|
|
str r7, [sp]
|
|
movs r3, 0
|
|
bl SetBattleBarStruct
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl UpdateHpTextInHealthbox
|
|
_0805C4F2:
|
|
ldr r1, =gBattleBankFunc
|
|
ldr r0, =gActiveBank
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =bx_t1_healthbar_update
|
|
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 PlayerHandleHealthBarUpdate
|
|
|
|
thumb_func_start PlayerHandleExpUpdate
|
|
PlayerHandleExpUpdate: @ 805C528
|
|
push {r4-r7,lr}
|
|
ldr r5, =gBattleBufferA
|
|
ldr r6, =gActiveBank
|
|
ldrb r0, [r6]
|
|
lsls r0, 9
|
|
adds r1, r5, 0x1
|
|
adds r0, r1
|
|
ldrb r7, [r0]
|
|
movs r0, 0x64
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
cmp r0, 0x63
|
|
bls _0805C560
|
|
bl PlayerBufferExecCompleted
|
|
b _0805C5AC
|
|
.pool
|
|
_0805C560:
|
|
movs r0, 0x1
|
|
bl LoadBattleBarGfx
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
ldrb r1, [r6]
|
|
lsls r1, 9
|
|
adds r0, r5, 0x2
|
|
adds r0, r1, r0
|
|
ldrb r4, [r0]
|
|
adds r0, r5, 0x3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r4, r0
|
|
ldr r0, =sub_80591B8
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
strh r7, [r1, 0x8]
|
|
strh r4, [r1, 0xA]
|
|
ldrb r0, [r6]
|
|
strh r0, [r1, 0xC]
|
|
ldr r1, =gBattleBankFunc
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =nullsub_21
|
|
str r1, [r0]
|
|
_0805C5AC:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleExpUpdate
|
|
|
|
thumb_func_start PlayerHandleStatusIconUpdate
|
|
PlayerHandleStatusIconUpdate: @ 805C5C4
|
|
push {r4,lr}
|
|
ldr r4, =gActiveBank
|
|
ldrb r0, [r4]
|
|
bl mplay_80342A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805C618
|
|
ldr r0, =gHealthBoxesIds
|
|
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
|
|
bl UpdateHealthboxAttribute
|
|
ldrb r2, [r4]
|
|
ldr r0, =gBattleSpritesDataPtr
|
|
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_8059D60
|
|
str r1, [r0]
|
|
_0805C618:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleStatusIconUpdate
|
|
|
|
thumb_func_start PlayerHandleStatusAnimation
|
|
PlayerHandleStatusAnimation: @ 805C63C
|
|
push {r4,r5,lr}
|
|
ldr r5, =gActiveBank
|
|
ldrb r0, [r5]
|
|
bl mplay_80342A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805C68C
|
|
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_8059D60
|
|
str r1, [r0]
|
|
_0805C68C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleStatusAnimation
|
|
|
|
thumb_func_start PlayerHandleStatusXor
|
|
PlayerHandleStatusXor: @ 805C6A4
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x4
|
|
ldr r0, =gBattlePartyID
|
|
mov r8, r0
|
|
ldr r4, =gActiveBank
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
movs r6, 0x64
|
|
muls r0, r6
|
|
ldr r5, =gPlayerParty
|
|
adds r0, r5
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
ldr r2, =gBattleBufferA
|
|
ldrb r1, [r4]
|
|
lsls r1, 9
|
|
adds r2, 0x1
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
eors r0, r1
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
muls r0, r6
|
|
adds r0, r5
|
|
movs r1, 0x37
|
|
mov r2, sp
|
|
bl SetMonData
|
|
bl PlayerBufferExecCompleted
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleStatusXor
|
|
|
|
thumb_func_start PlayerHandleDataTransfer
|
|
PlayerHandleDataTransfer: @ 805C710
|
|
push {lr}
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerHandleDataTransfer
|
|
|
|
thumb_func_start PlayerHandleDMA3Transfer
|
|
PlayerHandleDMA3Transfer: @ 805C71C
|
|
push {r4,r5,lr}
|
|
ldr r3, =gBattleBufferA
|
|
ldr r0, =gActiveBank
|
|
ldrb r2, [r0]
|
|
lsls r2, 9
|
|
adds r0, r3, 0x1
|
|
adds r0, r2, r0
|
|
ldrb r5, [r0]
|
|
adds r0, r3, 0x2
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r5, r0
|
|
adds r0, r3, 0x3
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 16
|
|
orrs r5, r0
|
|
adds r0, r3, 0x4
|
|
adds r0, r2, r0
|
|
ldrb r4, [r0]
|
|
lsls r4, 24
|
|
adds r0, r3, 0x5
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
adds r0, r3, 0x6
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
adds r3, 0x7
|
|
adds r2, r3
|
|
orrs r5, r4
|
|
lsrs r4, r1, 16
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
cmp r4, r0
|
|
bhi _0805C78C
|
|
ldr r0, =0x040000d4
|
|
str r2, [r0]
|
|
str r5, [r0, 0x4]
|
|
lsrs r1, 17
|
|
movs r2, 0x80
|
|
lsls r2, 24
|
|
orrs r1, r2
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
b _0805C7B8
|
|
.pool
|
|
_0805C78C:
|
|
ldr r3, =0x040000d4
|
|
str r2, [r3]
|
|
str r5, [r3, 0x4]
|
|
ldr r0, =0x80000800
|
|
str r0, [r3, 0x8]
|
|
ldr r0, [r3, 0x8]
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
adds r2, r0
|
|
adds r5, r0
|
|
ldr r1, =0xfffff000
|
|
adds r4, r1
|
|
cmp r4, r0
|
|
bhi _0805C78C
|
|
str r2, [r3]
|
|
str r5, [r3, 0x4]
|
|
lsrs r0, r4, 1
|
|
movs r1, 0x80
|
|
lsls r1, 24
|
|
orrs r0, r1
|
|
str r0, [r3, 0x8]
|
|
ldr r0, [r3, 0x8]
|
|
_0805C7B8:
|
|
bl PlayerBufferExecCompleted
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleDMA3Transfer
|
|
|
|
thumb_func_start PlayerHandlePlayBGM
|
|
PlayerHandlePlayBGM: @ 805C7D0
|
|
push {lr}
|
|
ldr r2, =gBattleBufferA
|
|
ldr r0, =gActiveBank
|
|
ldrb r1, [r0]
|
|
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
|
|
bl PlayBGM
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandlePlayBGM
|
|
|
|
thumb_func_start PlayerHandleCmd32
|
|
PlayerHandleCmd32: @ 805C800
|
|
push {lr}
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerHandleCmd32
|
|
|
|
thumb_func_start PlayerHandleCmd33
|
|
PlayerHandleCmd33: @ 805C80C
|
|
push {lr}
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl EmitChoiceReturnValue
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerHandleCmd33
|
|
|
|
thumb_func_start PlayerHandleCmd34
|
|
PlayerHandleCmd34: @ 805C820
|
|
push {lr}
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl EmitCmd34
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerHandleCmd34
|
|
|
|
thumb_func_start PlayerHandleCmd35
|
|
PlayerHandleCmd35: @ 805C834
|
|
push {lr}
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl EmitCmd35
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerHandleCmd35
|
|
|
|
thumb_func_start PlayerHandleCmd36
|
|
PlayerHandleCmd36: @ 805C848
|
|
push {lr}
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl EmitCmd36
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerHandleCmd36
|
|
|
|
thumb_func_start PlayerHandleCmd37
|
|
PlayerHandleCmd37: @ 805C85C
|
|
push {lr}
|
|
ldr r2, =gUnknown_02022D0C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x80
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleCmd37
|
|
|
|
thumb_func_start PlayerHandleCmd38
|
|
PlayerHandleCmd38: @ 805C878
|
|
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 PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleCmd38
|
|
|
|
thumb_func_start PlayerHandleCmd39
|
|
PlayerHandleCmd39: @ 805C8B0
|
|
push {lr}
|
|
ldr r2, =gUnknown_02022D0C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleCmd39
|
|
|
|
thumb_func_start PlayerHandleCmd40
|
|
PlayerHandleCmd40: @ 805C8C8
|
|
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 PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleCmd40
|
|
|
|
thumb_func_start PlayerHandleHitAnimation
|
|
PlayerHandleHitAnimation: @ 805C8F0
|
|
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 _0805C924
|
|
bl PlayerBufferExecCompleted
|
|
b _0805C94E
|
|
.pool
|
|
_0805C924:
|
|
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, =DoHitAnimBlinkEffect
|
|
str r1, [r0]
|
|
_0805C94E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleHitAnimation
|
|
|
|
thumb_func_start PlayerHandleCmd42
|
|
PlayerHandleCmd42: @ 805C960
|
|
push {lr}
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerHandleCmd42
|
|
|
|
thumb_func_start PlayerHandleEffectivenessSound
|
|
PlayerHandleEffectivenessSound: @ 805C96C
|
|
push {r4,lr}
|
|
ldr r4, =gActiveBank
|
|
ldrb r0, [r4]
|
|
bl GetBankSide
|
|
lsls r0, 24
|
|
movs r3, 0x3F
|
|
cmp r0, 0
|
|
bne _0805C980
|
|
movs r3, 0xC0
|
|
_0805C980:
|
|
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 PlayerBufferExecCompleted
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleEffectivenessSound
|
|
|
|
thumb_func_start PlayerHandlePlayFanfareOrBGM
|
|
PlayerHandlePlayFanfareOrBGM: @ 805C9B0
|
|
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 _0805C9EC
|
|
bl BattleMusicStop
|
|
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 _0805CA00
|
|
.pool
|
|
_0805C9EC:
|
|
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
|
|
_0805CA00:
|
|
bl PlayerBufferExecCompleted
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerHandlePlayFanfareOrBGM
|
|
|
|
thumb_func_start PlayerHandleFaintingCry
|
|
PlayerHandleFaintingCry: @ 805CA0C
|
|
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 PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleFaintingCry
|
|
|
|
thumb_func_start PlayerHandleIntroSlide
|
|
PlayerHandleIntroSlide: @ 805CA4C
|
|
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 PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleIntroSlide
|
|
|
|
thumb_func_start PlayerHandleIntroTrainerBallThrow
|
|
PlayerHandleIntroTrainerBallThrow: @ 805CA80
|
|
push {r4-r7,lr}
|
|
ldr r6, =gBankSpriteIds
|
|
ldr r7, =gActiveBank
|
|
ldrb r0, [r7]
|
|
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, [r7]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x32
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r0, [r7]
|
|
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, [r7]
|
|
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, [r7]
|
|
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 r2, [r7]
|
|
adds r0, r2, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r2, [r0, 0x38]
|
|
ldrb r0, [r7]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r1, =sub_805CC00
|
|
bl StoreSpriteCallbackInData6
|
|
ldrb r0, [r7]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
ldr r0, =0x0000d6f8
|
|
bl AllocSpritePalette
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
ldr r1, =gTrainerBackPicPaletteTable
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x8]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
lsrs r4, 20
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r4, r2
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
ldrb r0, [r7]
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r2, [r1, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
orrs r0, r4
|
|
strb r0, [r1, 0x5]
|
|
ldr r0, =task05_08033660
|
|
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, [r7]
|
|
strh r0, [r1, 0x8]
|
|
ldr r3, =gBattleSpritesDataPtr
|
|
ldr r0, [r3]
|
|
ldrb r2, [r7]
|
|
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 _0805CBA2
|
|
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]
|
|
_0805CBA2:
|
|
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, [r7]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =nullsub_21
|
|
str r1, [r0]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleIntroTrainerBallThrow
|
|
|
|
thumb_func_start sub_805CC00
|
|
sub_805CC00: @ 805CC00
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldrh r4, [r5, 0x38]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl FreeSpriteOamMatrix
|
|
ldrb r0, [r5, 0x5]
|
|
lsrs r0, 4
|
|
bl GetSpritePaletteTagByPaletteNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl FreeSpritePaletteByTag
|
|
adds r0, r5, 0
|
|
bl DestroySprite
|
|
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
|
|
adds r1, r4, 0
|
|
bl BattleLoadPlayerMonSpriteGfx
|
|
ldr r0, =gBankSpriteIds
|
|
adds r4, r0
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805CC00
|
|
|
|
thumb_func_start task05_08033660
|
|
task05_08033660: @ 805CC68
|
|
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, 0x1E
|
|
bgt _0805CC94
|
|
adds r0, r2, 0x1
|
|
strh r0, [r1, 0xA]
|
|
b _0805CD50
|
|
.pool
|
|
_0805CC94:
|
|
ldr r7, =gActiveBank
|
|
ldrb r0, [r7]
|
|
mov r9, r0
|
|
ldrh r0, [r1, 0x8]
|
|
strb r0, [r7]
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805CCB4
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805CCE4
|
|
_0805CCB4:
|
|
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_805B258
|
|
b _0805CD38
|
|
.pool
|
|
_0805CCE4:
|
|
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_805B258
|
|
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
|
|
bl BattleLoadPlayerMonSpriteGfx
|
|
ldrb r0, [r7]
|
|
movs r1, 0
|
|
bl sub_805B258
|
|
ldrb r0, [r7]
|
|
eors r0, r6
|
|
strb r0, [r7]
|
|
_0805CD38:
|
|
ldr r1, =gBattleBankFunc
|
|
ldr r2, =gActiveBank
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8058B40
|
|
str r1, [r0]
|
|
mov r3, r9
|
|
strb r3, [r2]
|
|
mov r0, r8
|
|
bl DestroyTask
|
|
_0805CD50:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end task05_08033660
|
|
|
|
thumb_func_start PlayerHandleDrawPartyStatusSummary
|
|
PlayerHandleDrawPartyStatusSummary: @ 805CD74
|
|
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 _0805CDA4
|
|
adds r0, r2, 0
|
|
bl GetBankSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805CDA4
|
|
bl PlayerBufferExecCompleted
|
|
b _0805CE18
|
|
.pool
|
|
_0805CDA4:
|
|
ldr r6, =gBattleSpritesDataPtr
|
|
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
|
|
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 CreatePartyStatusSummarySprites
|
|
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 _0805CE0C
|
|
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]
|
|
_0805CE0C:
|
|
ldr r0, =gBattleBankFunc
|
|
ldrb r1, [r5]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, =sub_805CE38
|
|
str r0, [r1]
|
|
_0805CE18:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleDrawPartyStatusSummary
|
|
|
|
thumb_func_start sub_805CE38
|
|
sub_805CE38: @ 805CE38
|
|
push {r4,lr}
|
|
ldr r4, =gBattleSpritesDataPtr
|
|
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 _0805CE70
|
|
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 PlayerBufferExecCompleted
|
|
_0805CE70:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805CE38
|
|
|
|
thumb_func_start PlayerHandleCmd49
|
|
PlayerHandleCmd49: @ 805CE80
|
|
push {lr}
|
|
ldr r0, =gBattleSpritesDataPtr
|
|
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 _0805CEB2
|
|
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]
|
|
_0805CEB2:
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleCmd49
|
|
|
|
thumb_func_start PlayerHandleCmd50
|
|
PlayerHandleCmd50: @ 805CED0
|
|
push {r4,lr}
|
|
ldr r4, =gActiveBank
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl dp11b_obj_free
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl dp11b_obj_free
|
|
bl PlayerBufferExecCompleted
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleCmd50
|
|
|
|
thumb_func_start PlayerHandleSpriteInvisibility
|
|
PlayerHandleSpriteInvisibility: @ 805CEF4
|
|
push {r4,lr}
|
|
ldr r4, =gActiveBank
|
|
ldrb r0, [r4]
|
|
bl AnimBankSpriteExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805CF3A
|
|
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
|
|
_0805CF3A:
|
|
bl PlayerBufferExecCompleted
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleSpriteInvisibility
|
|
|
|
thumb_func_start PlayerHandleBattleAnimation
|
|
PlayerHandleBattleAnimation: @ 805CF54
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
ldr r5, =gActiveBank
|
|
ldrb r0, [r5]
|
|
bl mplay_80342A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805CFB6
|
|
ldr r4, =gBattleBufferA
|
|
ldrb r2, [r5]
|
|
lsls r1, r2, 9
|
|
adds r0, r4, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r6, [r0]
|
|
adds r0, r4, 0x2
|
|
adds r0, r1, r0
|
|
ldrb r3, [r0]
|
|
adds r4, 0x3
|
|
adds r1, r4
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r3, r0
|
|
str r3, [sp]
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
adds r3, r6, 0
|
|
bl move_anim_start_t3
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805CFA4
|
|
bl PlayerBufferExecCompleted
|
|
b _0805CFB0
|
|
.pool
|
|
_0805CFA4:
|
|
ldr r0, =gBattleBankFunc
|
|
ldrb r1, [r5]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, =sub_8059D90
|
|
str r0, [r1]
|
|
_0805CFB0:
|
|
adds r0, r6, 0
|
|
bl sub_817E32C
|
|
_0805CFB6:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleBattleAnimation
|
|
|
|
thumb_func_start PlayerHandleLinkStandbyMsg
|
|
PlayerHandleLinkStandbyMsg: @ 805CFC8
|
|
push {r4,r5,lr}
|
|
ldr r5, =gActiveBank
|
|
ldrb r0, [r5]
|
|
lsls r0, 9
|
|
ldr r4, =gBattleBufferA + 2
|
|
adds r0, r4
|
|
bl sub_81851A8
|
|
ldrb r0, [r5]
|
|
lsls r0, 9
|
|
subs r4, 0x1
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0805D002
|
|
cmp r0, 0x1
|
|
bgt _0805CFF8
|
|
cmp r0, 0
|
|
beq _0805CFFE
|
|
b _0805D020
|
|
.pool
|
|
_0805CFF8:
|
|
cmp r0, 0x2
|
|
beq _0805D01C
|
|
b _0805D020
|
|
_0805CFFE:
|
|
bl PrintLinkStandbyMsg
|
|
_0805D002:
|
|
ldr r4, =gActiveBank
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl dp11b_obj_free
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl dp11b_obj_free
|
|
b _0805D020
|
|
.pool
|
|
_0805D01C:
|
|
bl PrintLinkStandbyMsg
|
|
_0805D020:
|
|
bl PlayerBufferExecCompleted
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerHandleLinkStandbyMsg
|
|
|
|
thumb_func_start PlayerHandleResetActionMoveSelection
|
|
PlayerHandleResetActionMoveSelection: @ 805D02C
|
|
push {r4,lr}
|
|
ldr r1, =gBattleBufferA
|
|
ldr r4, =gActiveBank
|
|
ldrb r3, [r4]
|
|
lsls r0, r3, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r2, [r0]
|
|
cmp r2, 0x1
|
|
beq _0805D074
|
|
cmp r2, 0x1
|
|
bgt _0805D054
|
|
cmp r2, 0
|
|
beq _0805D05A
|
|
b _0805D084
|
|
.pool
|
|
_0805D054:
|
|
cmp r2, 0x2
|
|
beq _0805D07C
|
|
b _0805D084
|
|
_0805D05A:
|
|
ldr r0, =gActionSelectionCursor
|
|
adds r0, r3, r0
|
|
strb r2, [r0]
|
|
ldr r1, =gMoveSelectionCursor
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
b _0805D084
|
|
.pool
|
|
_0805D074:
|
|
ldr r0, =gActionSelectionCursor
|
|
b _0805D07E
|
|
.pool
|
|
_0805D07C:
|
|
ldr r0, =gMoveSelectionCursor
|
|
_0805D07E:
|
|
adds r0, r3, r0
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
_0805D084:
|
|
bl PlayerBufferExecCompleted
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleResetActionMoveSelection
|
|
|
|
thumb_func_start PlayerHandleCmd55
|
|
PlayerHandleCmd55: @ 805D094
|
|
push {r4,r5,lr}
|
|
ldr r5, =gActiveBank
|
|
ldrb r0, [r5]
|
|
lsls r0, 9
|
|
ldr r4, =gBattleBufferA + 4
|
|
adds r0, r4
|
|
bl sub_81851A8
|
|
ldr r2, =gBattleOutcome
|
|
ldrb r0, [r5]
|
|
lsls r0, 9
|
|
subs r1, r4, 0x3
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r3, [r0]
|
|
ldrb r0, [r5]
|
|
lsls r0, 9
|
|
subs r4, 0x2
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
ldr r1, =0x00000ca9
|
|
adds r3, r1
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
lsls r1, 3
|
|
ldrb r2, [r3]
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
movs r0, 0x5
|
|
bl FadeOutMapMusic
|
|
movs r0, 0x3
|
|
bl BeginFastPaletteFade
|
|
bl PlayerBufferExecCompleted
|
|
ldr r1, =gBattleBankFunc
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80587B0
|
|
str r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end PlayerHandleCmd55
|
|
|
|
thumb_func_start nullsub_22
|
|
nullsub_22: @ 805D114
|
|
bx lr
|
|
thumb_func_end nullsub_22
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|