mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-22 22:05:06 -05:00
928 lines
16 KiB
ArmAsm
928 lines
16 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_80DCE10
|
|
sub_80DCE10: @ 80DCE10
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080DCE6C @ =gTasks
|
|
lsls r6, r0, 2
|
|
adds r6, r0
|
|
lsls r6, 3
|
|
adds r6, r1
|
|
ldr r1, _080DCE70 @ =gBattleAnimArgs
|
|
ldrh r0, [r1]
|
|
strh r0, [r6, 0x8]
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r6, 0xA]
|
|
movs r0, 0x40
|
|
negs r0, r0
|
|
bl sub_8073A44
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x3F
|
|
bl sub_8073A44
|
|
adds r5, r0, 0
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
lsls r5, 24
|
|
asrs r5, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x2
|
|
bl CalculatePanIncrement
|
|
strh r4, [r6, 0xC]
|
|
strh r5, [r6, 0xE]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
strh r0, [r6, 0x10]
|
|
movs r0, 0xA
|
|
strh r0, [r6, 0x1C]
|
|
ldr r0, _080DCE74 @ =sub_80DCE78
|
|
str r0, [r6]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080DCE6C: .4byte gTasks
|
|
_080DCE70: .4byte gBattleAnimArgs
|
|
_080DCE74: .4byte sub_80DCE78
|
|
thumb_func_end sub_80DCE10
|
|
|
|
thumb_func_start sub_80DCE78
|
|
sub_80DCE78: @ 80DCE78
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080DCEA8 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
ldrh r5, [r4, 0xC]
|
|
ldrb r6, [r4, 0x10]
|
|
ldrh r0, [r4, 0x1E]
|
|
adds r0, 0x1
|
|
movs r1, 0
|
|
strh r0, [r4, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x6F
|
|
bne _080DCEB0
|
|
movs r0, 0x5
|
|
strh r0, [r4, 0x1C]
|
|
strh r1, [r4, 0x1E]
|
|
ldr r0, _080DCEAC @ =sub_80DCEE4
|
|
str r0, [r4]
|
|
b _080DCEDE
|
|
.align 2, 0
|
|
_080DCEA8: .4byte gTasks
|
|
_080DCEAC: .4byte sub_80DCEE4
|
|
_080DCEB0:
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xB
|
|
bne _080DCECA
|
|
strh r1, [r4, 0x1C]
|
|
ldrh r0, [r4, 0x8]
|
|
lsls r1, r5, 24
|
|
asrs r1, 24
|
|
bl PlaySE12WithPanning
|
|
_080DCECA:
|
|
lsls r1, r6, 24
|
|
asrs r1, 24
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_8073B60
|
|
strh r0, [r4, 0xC]
|
|
_080DCEDE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DCE78
|
|
|
|
thumb_func_start sub_80DCEE4
|
|
sub_80DCEE4: @ 80DCEE4
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080DCF34 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x6
|
|
bne _080DCF2C
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1C]
|
|
movs r0, 0x3F
|
|
bl sub_8073A44
|
|
adds r1, r0, 0
|
|
ldrh r0, [r4, 0xA]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
bl PlaySE12WithPanning
|
|
ldrh r0, [r4, 0x1E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
bne _080DCF2C
|
|
adds r0, r5, 0
|
|
bl DestroyAnimSoundTask
|
|
_080DCF2C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080DCF34: .4byte gTasks
|
|
thumb_func_end sub_80DCEE4
|
|
|
|
thumb_func_start mas_80DCF38
|
|
mas_80DCF38: @ 80DCF38
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
mov r8, r0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r0, _080DCFDC @ =gBattleAnimArgs
|
|
ldrh r1, [r0]
|
|
str r1, [sp]
|
|
ldrb r5, [r0, 0x4]
|
|
ldrb r6, [r0, 0x6]
|
|
ldrb r3, [r0, 0x8]
|
|
mov r10, r3
|
|
ldrb r7, [r0, 0xA]
|
|
ldrb r1, [r0, 0xC]
|
|
mov r9, r1
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
bl sub_8073A44
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 24
|
|
asrs r5, 24
|
|
adds r0, r5, 0
|
|
bl sub_8073A44
|
|
adds r5, r0, 0
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
lsls r5, 24
|
|
asrs r5, 24
|
|
lsls r6, 24
|
|
asrs r6, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
bl CalculatePanIncrement
|
|
ldr r2, _080DCFE0 @ =gTasks
|
|
mov r3, r8
|
|
lsls r1, r3, 2
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r2, 0
|
|
mov r6, sp
|
|
ldrh r6, [r6]
|
|
strh r6, [r1, 0x8]
|
|
strh r4, [r1, 0xA]
|
|
strh r5, [r1, 0xC]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
strh r0, [r1, 0xE]
|
|
mov r0, r10
|
|
strh r0, [r1, 0x10]
|
|
strh r7, [r1, 0x12]
|
|
mov r3, r9
|
|
strh r3, [r1, 0x14]
|
|
strh r2, [r1, 0x1C]
|
|
strh r4, [r1, 0x1E]
|
|
strh r3, [r1, 0x20]
|
|
ldr r2, _080DCFE4 @ =sub_80DCFE8
|
|
str r2, [r1]
|
|
mov r0, r8
|
|
bl _call_via_r2
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080DCFDC: .4byte gBattleAnimArgs
|
|
_080DCFE0: .4byte gTasks
|
|
_080DCFE4: .4byte sub_80DCFE8
|
|
thumb_func_end mas_80DCF38
|
|
|
|
thumb_func_start sub_80DCFE8
|
|
sub_80DCFE8: @ 80DCFE8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080DD02C @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x20]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x20]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x14
|
|
ldrsh r1, [r4, r2]
|
|
cmp r0, r1
|
|
bne _080DD030
|
|
movs r0, 0
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r4, 0x8]
|
|
movs r1, 0x1E
|
|
ldrsb r1, [r4, r1]
|
|
bl PlaySE12WithPanning
|
|
ldrh r0, [r4, 0x10]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x10]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080DD030
|
|
adds r0, r5, 0
|
|
bl DestroyAnimSoundTask
|
|
b _080DD062
|
|
.align 2, 0
|
|
_080DD02C: .4byte gTasks
|
|
_080DD030:
|
|
ldr r1, _080DD068 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x12
|
|
ldrsh r1, [r4, r2]
|
|
cmp r0, r1
|
|
bne _080DD062
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1C]
|
|
ldrh r0, [r4, 0xE]
|
|
ldrh r1, [r4, 0x1E]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x1E]
|
|
movs r2, 0x1E
|
|
ldrsh r0, [r4, r2]
|
|
bl sub_8073B60
|
|
strh r0, [r4, 0x1E]
|
|
_080DD062:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080DD068: .4byte gTasks
|
|
thumb_func_end sub_80DCFE8
|
|
|
|
thumb_func_start sub_80DD06C
|
|
sub_80DD06C: @ 80DD06C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r0, 0x40
|
|
negs r0, r0
|
|
bl sub_8073A44
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, _080DD090 @ =gBattleAnimArgs
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080DD098
|
|
ldr r0, _080DD094 @ =gBattleAnimAttacker
|
|
ldrb r4, [r0]
|
|
b _080DD0BE
|
|
.align 2, 0
|
|
_080DD090: .4byte gBattleAnimArgs
|
|
_080DD094: .4byte gBattleAnimAttacker
|
|
_080DD098:
|
|
cmp r0, 0x1
|
|
bne _080DD0A8
|
|
ldr r0, _080DD0A4 @ =gBattleAnimTarget
|
|
ldrb r4, [r0]
|
|
b _080DD0BE
|
|
.align 2, 0
|
|
_080DD0A4: .4byte gBattleAnimTarget
|
|
_080DD0A8:
|
|
cmp r0, 0x2
|
|
bne _080DD0B4
|
|
ldr r0, _080DD0B0 @ =gBattleAnimAttacker
|
|
b _080DD0B6
|
|
.align 2, 0
|
|
_080DD0B0: .4byte gBattleAnimAttacker
|
|
_080DD0B4:
|
|
ldr r0, _080DD0E0 @ =gBattleAnimTarget
|
|
_080DD0B6:
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
adds r4, r0, 0
|
|
eors r4, r1
|
|
_080DD0BE:
|
|
ldr r0, _080DD0E4 @ =gBattleAnimArgs
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x1
|
|
beq _080DD0CC
|
|
cmp r0, 0x3
|
|
bne _080DD0E8
|
|
_080DD0CC:
|
|
adds r0, r4, 0
|
|
bl IsBattlerSpriteVisible
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080DD0E8
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080DD13A
|
|
.align 2, 0
|
|
_080DD0E0: .4byte gBattleAnimTarget
|
|
_080DD0E4: .4byte gBattleAnimArgs
|
|
_080DD0E8:
|
|
adds r0, r4, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080DD10C
|
|
ldr r1, _080DD104 @ =gBattlerPartyIndexes
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080DD108 @ =gEnemyParty
|
|
b _080DD11A
|
|
.align 2, 0
|
|
_080DD104: .4byte gBattlerPartyIndexes
|
|
_080DD108: .4byte gEnemyParty
|
|
_080DD10C:
|
|
ldr r1, _080DD140 @ =gBattlerPartyIndexes
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080DD144 @ =gPlayerParty
|
|
_080DD11A:
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0
|
|
beq _080DD134
|
|
lsls r1, r6, 24
|
|
asrs r1, 24
|
|
movs r2, 0x3
|
|
bl PlayCry3
|
|
_080DD134:
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080DD13A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080DD140: .4byte gBattlerPartyIndexes
|
|
_080DD144: .4byte gPlayerParty
|
|
thumb_func_end sub_80DD06C
|
|
|
|
thumb_func_start sub_80DD148
|
|
sub_80DD148: @ 80DD148
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r0, 0x40
|
|
negs r0, r0
|
|
bl sub_8073A44
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, _080DD16C @ =gBattleAnimArgs
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080DD174
|
|
ldr r0, _080DD170 @ =gBattleAnimAttacker
|
|
ldrb r4, [r0]
|
|
b _080DD19A
|
|
.align 2, 0
|
|
_080DD16C: .4byte gBattleAnimArgs
|
|
_080DD170: .4byte gBattleAnimAttacker
|
|
_080DD174:
|
|
cmp r0, 0x1
|
|
bne _080DD184
|
|
ldr r0, _080DD180 @ =gBattleAnimTarget
|
|
ldrb r4, [r0]
|
|
b _080DD19A
|
|
.align 2, 0
|
|
_080DD180: .4byte gBattleAnimTarget
|
|
_080DD184:
|
|
cmp r0, 0x2
|
|
bne _080DD190
|
|
ldr r0, _080DD18C @ =gBattleAnimAttacker
|
|
b _080DD192
|
|
.align 2, 0
|
|
_080DD18C: .4byte gBattleAnimAttacker
|
|
_080DD190:
|
|
ldr r0, _080DD1BC @ =gBattleAnimTarget
|
|
_080DD192:
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
adds r4, r0, 0
|
|
eors r4, r1
|
|
_080DD19A:
|
|
ldr r0, _080DD1C0 @ =gBattleAnimArgs
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0x1
|
|
beq _080DD1A8
|
|
cmp r0, 0x3
|
|
bne _080DD1C4
|
|
_080DD1A8:
|
|
adds r0, r4, 0
|
|
bl IsBattlerSpriteVisible
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080DD1C4
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080DD26A
|
|
.align 2, 0
|
|
_080DD1BC: .4byte gBattleAnimTarget
|
|
_080DD1C0: .4byte gBattleAnimArgs
|
|
_080DD1C4:
|
|
adds r0, r4, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080DD1E8
|
|
ldr r1, _080DD1E0 @ =gBattlerPartyIndexes
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080DD1E4 @ =gEnemyParty
|
|
b _080DD1F6
|
|
.align 2, 0
|
|
_080DD1E0: .4byte gBattlerPartyIndexes
|
|
_080DD1E4: .4byte gEnemyParty
|
|
_080DD1E8:
|
|
ldr r1, _080DD234 @ =gBattlerPartyIndexes
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080DD238 @ =gPlayerParty
|
|
_080DD1F6:
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldr r1, _080DD23C @ =gTasks
|
|
lsls r2, r6, 2
|
|
adds r0, r2, r6
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r4, _080DD240 @ =gBattleAnimArgs
|
|
ldrh r1, [r4, 0x2]
|
|
strh r1, [r0, 0x8]
|
|
strh r3, [r0, 0xA]
|
|
lsls r1, r5, 24
|
|
asrs r1, 24
|
|
strh r1, [r0, 0xC]
|
|
adds r5, r2, 0
|
|
cmp r3, 0
|
|
beq _080DD264
|
|
movs r2, 0x2
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0xFF
|
|
bne _080DD244
|
|
adds r0, r3, 0
|
|
movs r2, 0x9
|
|
bl PlayCry3
|
|
b _080DD24C
|
|
.align 2, 0
|
|
_080DD234: .4byte gBattlerPartyIndexes
|
|
_080DD238: .4byte gPlayerParty
|
|
_080DD23C: .4byte gTasks
|
|
_080DD240: .4byte gBattleAnimArgs
|
|
_080DD244:
|
|
adds r0, r3, 0
|
|
movs r2, 0x7
|
|
bl PlayCry3
|
|
_080DD24C:
|
|
ldr r0, _080DD25C @ =gTasks
|
|
adds r1, r5, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080DD260 @ =sub_80DD270
|
|
str r0, [r1]
|
|
b _080DD26A
|
|
.align 2, 0
|
|
_080DD25C: .4byte gTasks
|
|
_080DD260: .4byte sub_80DD270
|
|
_080DD264:
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
_080DD26A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DD148
|
|
|
|
thumb_func_start sub_80DD270
|
|
sub_80DD270: @ 80DD270
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
mov r9, r4
|
|
ldr r1, _080DD2A0 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r1, r0, r1
|
|
ldrh r6, [r1, 0xA]
|
|
mov r8, r6
|
|
ldrb r5, [r1, 0xC]
|
|
adds r7, r5, 0
|
|
ldrh r2, [r1, 0x1A]
|
|
movs r3, 0x1A
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0x1
|
|
bgt _080DD2A4
|
|
adds r0, r2, 0x1
|
|
strh r0, [r1, 0x1A]
|
|
b _080DD2E6
|
|
.align 2, 0
|
|
_080DD2A0: .4byte gTasks
|
|
_080DD2A4:
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0xFF
|
|
bne _080DD2CA
|
|
bl IsCryPlaying
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080DD2E6
|
|
lsls r1, r5, 24
|
|
asrs r1, 24
|
|
adds r0, r6, 0
|
|
movs r2, 0xA
|
|
bl PlayCry3
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080DD2E6
|
|
_080DD2CA:
|
|
bl IsCryPlaying
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080DD2E6
|
|
lsls r1, r7, 24
|
|
asrs r1, 24
|
|
mov r0, r8
|
|
movs r2, 0x8
|
|
bl PlayCry3
|
|
mov r0, r9
|
|
bl DestroyAnimVisualTask
|
|
_080DD2E6:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DD270
|
|
|
|
thumb_func_start sub_80DD2F4
|
|
sub_80DD2F4: @ 80DD2F4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r4, r0, 0
|
|
ldr r1, _080DD318 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r1, r0, r1
|
|
ldrh r2, [r1, 0x1A]
|
|
movs r3, 0x1A
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0x1
|
|
bgt _080DD31C
|
|
adds r0, r2, 0x1
|
|
strh r0, [r1, 0x1A]
|
|
b _080DD32C
|
|
.align 2, 0
|
|
_080DD318: .4byte gTasks
|
|
_080DD31C:
|
|
bl IsCryPlaying
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080DD32C
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080DD32C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DD2F4
|
|
|
|
thumb_func_start sub_80DD334
|
|
sub_80DD334: @ 80DD334
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r0, 0x40
|
|
negs r0, r0
|
|
bl sub_8073A44
|
|
ldr r2, _080DD374 @ =gUnknown_2037F1C
|
|
ldr r1, _080DD378 @ =gBattleAnimAttacker
|
|
ldrb r1, [r1]
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r3, [r1]
|
|
ldr r2, _080DD37C @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
strh r3, [r4, 0xA]
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
strh r1, [r4, 0xC]
|
|
cmp r3, 0
|
|
beq _080DD384
|
|
adds r0, r3, 0
|
|
movs r2, 0x4
|
|
bl PlayCry3
|
|
ldr r0, _080DD380 @ =sub_80DD390
|
|
str r0, [r4]
|
|
b _080DD38A
|
|
.align 2, 0
|
|
_080DD374: .4byte gUnknown_2037F1C
|
|
_080DD378: .4byte gBattleAnimAttacker
|
|
_080DD37C: .4byte gTasks
|
|
_080DD380: .4byte sub_80DD390
|
|
_080DD384:
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080DD38A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DD334
|
|
|
|
thumb_func_start sub_80DD390
|
|
sub_80DD390: @ 80DD390
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
ldr r1, _080DD3B4 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrh r1, [r4, 0x1A]
|
|
movs r2, 0x1A
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x1
|
|
bgt _080DD3B8
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x1A]
|
|
b _080DD3D4
|
|
.align 2, 0
|
|
_080DD3B4: .4byte gTasks
|
|
_080DD3B8:
|
|
bl IsCryPlaying
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080DD3D4
|
|
ldrh r0, [r4, 0xA]
|
|
movs r1, 0xC
|
|
ldrsb r1, [r4, r1]
|
|
movs r2, 0x6
|
|
bl PlayCry3
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080DD3D4:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80DD390
|
|
|
|
thumb_func_start sub_80DD3DC
|
|
sub_80DD3DC: @ 80DD3DC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _080DD40C @ =gBattleAnimArgs
|
|
ldrh r5, [r0]
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
bl sub_8073A44
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
adds r0, r5, 0
|
|
bl PlaySE1WithPanning
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080DD40C: .4byte gBattleAnimArgs
|
|
thumb_func_end sub_80DD3DC
|
|
|
|
thumb_func_start sub_80DD410
|
|
sub_80DD410: @ 80DD410
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _080DD440 @ =gBattleAnimArgs
|
|
ldrh r5, [r0]
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
bl sub_8073A44
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
adds r0, r5, 0
|
|
bl PlaySE2WithPanning
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080DD440: .4byte gBattleAnimArgs
|
|
thumb_func_end sub_80DD410
|
|
|
|
thumb_func_start sub_80DD444
|
|
sub_80DD444: @ 80DD444
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
mov r8, r0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r0, _080DD4C8 @ =gBattleAnimArgs
|
|
ldrb r5, [r0, 0x2]
|
|
ldrb r6, [r0, 0x4]
|
|
ldrh r1, [r0, 0x6]
|
|
mov r9, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
bl sub_8073A44
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 24
|
|
asrs r5, 24
|
|
adds r0, r5, 0
|
|
bl sub_8073A44
|
|
adds r5, r0, 0
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
lsls r5, 24
|
|
asrs r5, 24
|
|
lsls r6, 24
|
|
asrs r6, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
bl CalculatePanIncrement
|
|
ldr r2, _080DD4CC @ =gTasks
|
|
mov r3, r8
|
|
lsls r1, r3, 2
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r2, 0
|
|
strh r4, [r1, 0xA]
|
|
strh r5, [r1, 0xC]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
strh r0, [r1, 0xE]
|
|
mov r0, r9
|
|
strh r0, [r1, 0x12]
|
|
strh r2, [r1, 0x1C]
|
|
strh r4, [r1, 0x1E]
|
|
ldr r2, _080DD4D0 @ =sub_80DD4D4
|
|
str r2, [r1]
|
|
mov r0, r8
|
|
bl _call_via_r2
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080DD4C8: .4byte gBattleAnimArgs
|
|
_080DD4CC: .4byte gTasks
|
|
_080DD4D0: .4byte sub_80DD4D4
|
|
thumb_func_end sub_80DD444
|
|
|
|
thumb_func_start sub_80DD4D4
|
|
sub_80DD4D4: @ 80DD4D4
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
ldr r1, _080DD52C @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrh r2, [r4, 0xE]
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x12
|
|
ldrsh r1, [r4, r3]
|
|
cmp r0, r1
|
|
bne _080DD50E
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1C]
|
|
ldrh r1, [r4, 0x1E]
|
|
adds r0, r2, r1
|
|
strh r0, [r4, 0x1E]
|
|
movs r2, 0x1E
|
|
ldrsh r0, [r4, r2]
|
|
bl sub_8073B60
|
|
strh r0, [r4, 0x1E]
|
|
_080DD50E:
|
|
ldr r1, _080DD530 @ =gUnknown_2037F24
|
|
ldrh r0, [r4, 0x1E]
|
|
strb r0, [r1]
|
|
movs r3, 0x1E
|
|
ldrsh r1, [r4, r3]
|
|
movs r2, 0xC
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
bne _080DD526
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080DD526:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080DD52C: .4byte gTasks
|
|
_080DD530: .4byte gUnknown_2037F24
|
|
thumb_func_end sub_80DD4D4
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|