battle_anim_sound_tasks
This commit is contained in:
+14
-14
@@ -152,7 +152,7 @@ LaunchBattleAnimation: @ 80725D4
|
||||
movs r4, 0
|
||||
ldr r6, _08072618 @ =gBattlerPartyIndexes
|
||||
movs r7, 0x64
|
||||
ldr r5, _0807261C @ =gUnknown_2037F1C
|
||||
ldr r5, _0807261C @ =gAnimBattlerSpecies
|
||||
_08072600:
|
||||
lsls r0, r4, 24
|
||||
lsrs r0, 24
|
||||
@@ -166,7 +166,7 @@ _08072600:
|
||||
b _0807262A
|
||||
.align 2, 0
|
||||
_08072618: .4byte gBattlerPartyIndexes
|
||||
_0807261C: .4byte gUnknown_2037F1C
|
||||
_0807261C: .4byte gAnimBattlerSpecies
|
||||
_08072620: .4byte gEnemyParty
|
||||
_08072624:
|
||||
ldrh r0, [r6]
|
||||
@@ -2767,8 +2767,8 @@ ScriptCmd_changebg: @ 8073A24
|
||||
_08073A40: .4byte gUnknown_2037ED4
|
||||
thumb_func_end ScriptCmd_changebg
|
||||
|
||||
thumb_func_start sub_8073A44
|
||||
sub_8073A44: @ 8073A44
|
||||
thumb_func_start BattleAnimAdjustPanning
|
||||
BattleAnimAdjustPanning: @ 8073A44
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
@@ -2867,7 +2867,7 @@ _08073AFC:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8073A44
|
||||
thumb_func_end BattleAnimAdjustPanning
|
||||
|
||||
thumb_func_start sub_8073B08
|
||||
sub_8073B08: @ 8073B08
|
||||
@@ -2916,8 +2916,8 @@ _08073B56:
|
||||
bx r1
|
||||
thumb_func_end sub_8073B08
|
||||
|
||||
thumb_func_start sub_8073B60
|
||||
sub_8073B60: @ 8073B60
|
||||
thumb_func_start KeepPanInRange
|
||||
KeepPanInRange: @ 8073B60
|
||||
push {lr}
|
||||
lsls r0, 16
|
||||
lsrs r1, r0, 16
|
||||
@@ -2939,7 +2939,7 @@ _08073B7A:
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08073B84: .4byte 0x0000ffc0
|
||||
thumb_func_end sub_8073B60
|
||||
thumb_func_end KeepPanInRange
|
||||
|
||||
thumb_func_start CalculatePanIncrement
|
||||
CalculatePanIncrement: @ 8073B88
|
||||
@@ -2994,7 +2994,7 @@ ScriptCmd_playsewithpan: @ 8073BC8
|
||||
orrs r4, r0
|
||||
movs r0, 0x2
|
||||
ldrsb r0, [r1, r0]
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
@@ -3019,7 +3019,7 @@ ScriptCmd_setpan: @ 8073C00
|
||||
str r0, [r4]
|
||||
movs r0, 0x1
|
||||
ldrsb r0, [r1, r0]
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
lsls r0, 24
|
||||
asrs r0, 24
|
||||
bl SE12PanpotControl
|
||||
@@ -3058,14 +3058,14 @@ ScriptCmd_panse_1B: @ 8073C2C
|
||||
ldrb r7, [r1, 0x5]
|
||||
movs r0, 0x2
|
||||
ldrsb r0, [r1, r0]
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r5, r0, 0
|
||||
lsls r5, 24
|
||||
lsrs r5, 24
|
||||
lsls r4, 24
|
||||
asrs r4, 24
|
||||
adds r0, r4, 0
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
mov r8, r0
|
||||
lsls r5, 24
|
||||
asrs r5, 24
|
||||
@@ -3387,7 +3387,7 @@ ScriptCmd_loopsewithpan: @ 8073ED0
|
||||
mov r9, r2
|
||||
movs r0, 0x2
|
||||
ldrsb r0, [r1, r0]
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
@@ -3498,7 +3498,7 @@ ScriptCmd_waitplaysewithpan: @ 8073FB4
|
||||
mov r8, r0
|
||||
movs r0, 0x2
|
||||
ldrsb r0, [r1, r0]
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
|
||||
@@ -2672,7 +2672,7 @@ _080A3756:
|
||||
cmp r0, 0
|
||||
bne _080A378A
|
||||
movs r0, 0x3F
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
@@ -2690,7 +2690,7 @@ _080A378A:
|
||||
str r0, [r4, 0x1C]
|
||||
movs r0, 0x40
|
||||
negs r0, r0
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
@@ -5915,7 +5915,7 @@ _080A5004:
|
||||
adds r0, r1
|
||||
strh r0, [r5, 0x38]
|
||||
movs r0, 0x3F
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
@@ -6126,7 +6126,7 @@ _080A51A4:
|
||||
movs r2, 0x4
|
||||
bl LoadPalette
|
||||
movs r0, 0x3F
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
@@ -7436,7 +7436,7 @@ sub_80A5B7C: @ 80A5B7C
|
||||
strh r5, [r4, 0x34]
|
||||
strh r5, [r4, 0x36]
|
||||
subs r0, 0x42
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
lsls r0, 24
|
||||
asrs r0, 24
|
||||
strh r0, [r4, 0x38]
|
||||
|
||||
@@ -1118,7 +1118,7 @@ _080A7690:
|
||||
strh r0, [r4, 0xA]
|
||||
movs r0, 0x3F
|
||||
negs r0, r0
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
@@ -1789,7 +1789,7 @@ sub_80A7C1C: @ 80A7C1C
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
movs r0, 0x3F
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
@@ -3626,7 +3626,7 @@ sub_80A8A1C: @ 80A8A1C
|
||||
adds r0, 0x2
|
||||
strh r0, [r4, 0x38]
|
||||
movs r0, 0x3F
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
lsls r0, 24
|
||||
asrs r0, 24
|
||||
strh r0, [r4, 0x3A]
|
||||
|
||||
@@ -1414,7 +1414,7 @@ sub_80DED48: @ 80DED48
|
||||
bne _080DEDA6
|
||||
movs r0, 0x40
|
||||
negs r0, r0
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
@@ -2109,7 +2109,7 @@ _080DF2A8:
|
||||
lsrs r4, r0, 24
|
||||
movs r0, 0x40
|
||||
negs r0, r0
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
@@ -3603,7 +3603,7 @@ _080DFE66:
|
||||
strh r0, [r1, 0x8]
|
||||
movs r0, 0x40
|
||||
negs r0, r0
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
@@ -10554,7 +10554,7 @@ _080E3412:
|
||||
bne _080E34C6
|
||||
movs r0, 0x40
|
||||
negs r0, r0
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
@@ -10627,7 +10627,7 @@ _080E34A4:
|
||||
bne _080E34C6
|
||||
movs r0, 0x40
|
||||
negs r0, r0
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
@@ -10724,7 +10724,7 @@ _080E3564:
|
||||
cmp r0, 0
|
||||
blt _080E365E
|
||||
movs r0, 0x3F
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
@@ -10753,7 +10753,7 @@ _080E3588:
|
||||
cmp r1, 0x7F
|
||||
ble _080E365E
|
||||
movs r0, 0x3F
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
@@ -10797,7 +10797,7 @@ _080E35F8:
|
||||
cmp r0, 0x8
|
||||
ble _080E365E
|
||||
movs r0, 0x3F
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
@@ -11883,7 +11883,7 @@ _080E3E96:
|
||||
cmp r1, r0
|
||||
bne _080E3F28
|
||||
movs r0, 0x3F
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
|
||||
@@ -512,14 +512,14 @@ sub_8074844: @ 8074844
|
||||
ldrh r0, [r1, 0x2]
|
||||
cmp r0, 0
|
||||
bne _0807487C
|
||||
ldr r1, _08074878 @ =gUnknown_2037F1C
|
||||
ldr r1, _08074878 @ =gAnimBattlerSpecies
|
||||
lsls r0, r2, 1
|
||||
adds r0, r1
|
||||
ldrh r1, [r0]
|
||||
b _0807487E
|
||||
.align 2, 0
|
||||
_08074874: .4byte gBattleSpritesDataPtr
|
||||
_08074878: .4byte gUnknown_2037F1C
|
||||
_08074878: .4byte gAnimBattlerSpecies
|
||||
_0807487C:
|
||||
ldrh r1, [r1, 0x2]
|
||||
_0807487E:
|
||||
|
||||
@@ -1,927 +0,0 @@
|
||||
.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.
|
||||
+2
-2
@@ -2279,12 +2279,12 @@ _080AED20:
|
||||
movs r0, 0xC
|
||||
strh r0, [r5, 0x1E]
|
||||
subs r0, 0x4C
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
lsls r0, 24
|
||||
asrs r0, 24
|
||||
strh r0, [r5, 0x20]
|
||||
movs r0, 0x3F
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
lsls r0, 24
|
||||
asrs r0, 24
|
||||
strh r0, [r5, 0x22]
|
||||
|
||||
+1
-1
@@ -2099,7 +2099,7 @@ _080B3EFC:
|
||||
beq _080B3FA4
|
||||
movs r0, 0x40
|
||||
negs r0, r0
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
|
||||
+2
-2
@@ -806,13 +806,13 @@ _080B4C7A:
|
||||
strh r4, [r6, 0x16]
|
||||
movs r0, 0x40
|
||||
negs r0, r0
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
asrs r4, 8
|
||||
lsrs r4, 16
|
||||
movs r0, 0x3F
|
||||
bl sub_8073A44
|
||||
bl BattleAnimAdjustPanning
|
||||
lsls r0, 24
|
||||
strh r4, [r6, 0x22]
|
||||
asrs r0, 24
|
||||
|
||||
@@ -65,6 +65,8 @@ extern u8 gUnknown_02038440;
|
||||
extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
|
||||
extern u16 gAnimMovePower;
|
||||
extern s32 gAnimMoveDmg;
|
||||
extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT];
|
||||
extern u8 gUnknown_2037F24;
|
||||
|
||||
void ClearBattleAnimationVars(void);
|
||||
void DoMoveAnim(u16 move);
|
||||
@@ -80,6 +82,7 @@ s8 BattleAnimAdjustPanning2(s8 pan);
|
||||
s16 sub_80A52EC(s16 a);
|
||||
s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan);
|
||||
bool8 IsBattlerSpriteVisible(u8 battlerId);
|
||||
s16 KeepPanInRange(s16 a, s32 oldPan);
|
||||
|
||||
// battle_anim_80FE840.s
|
||||
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value);
|
||||
|
||||
+1
-1
@@ -200,7 +200,7 @@ SECTIONS {
|
||||
src/save.o(.text);
|
||||
src/mystery_event_script.o(.text);
|
||||
asm/field_effect_helpers.o(.text);
|
||||
asm/battle_anim_sound_tasks.o(.text);
|
||||
src/battle_anim_sound_tasks.o(.text);
|
||||
src/battle_controller_safari.o(.text);
|
||||
src/fldeff_sweetscent.o(.text);
|
||||
asm/battle_anim_effects_3.o(.text);
|
||||
|
||||
@@ -0,0 +1,313 @@
|
||||
#include "global.h"
|
||||
#include "battle.h"
|
||||
#include "battle_anim.h"
|
||||
#include "sound.h"
|
||||
#include "task.h"
|
||||
#include "constants/battle_anim.h"
|
||||
#include "constants/species.h"
|
||||
|
||||
static void sub_80DCE78(u8 taskId);
|
||||
static void sub_80DCEE4(u8 taskId);
|
||||
static void sub_80DCFE8(u8 taskId);
|
||||
static void sub_80DD270(u8 taskId);
|
||||
static void sub_80DD390(u8 taskId);
|
||||
static void sub_80DD4D4(u8 taskId);
|
||||
|
||||
void sub_80DCE10(u8 taskId)
|
||||
{
|
||||
s8 pan1, pan2, panIncrement;
|
||||
|
||||
gTasks[taskId].data[0] = gBattleAnimArgs[0];
|
||||
gTasks[taskId].data[1] = gBattleAnimArgs[1];
|
||||
pan1 = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER);
|
||||
pan2 = BattleAnimAdjustPanning(SOUND_PAN_TARGET);
|
||||
panIncrement = CalculatePanIncrement(pan1, pan2, 2);
|
||||
gTasks[taskId].data[2] = pan1;
|
||||
gTasks[taskId].data[3] = pan2;
|
||||
gTasks[taskId].data[4] = panIncrement;
|
||||
gTasks[taskId].data[10] = 10;
|
||||
gTasks[taskId].func = sub_80DCE78;
|
||||
}
|
||||
|
||||
static void sub_80DCE78(u8 taskId)
|
||||
{
|
||||
s16 pan = gTasks[taskId].data[2];
|
||||
s8 panIncrement = gTasks[taskId].data[4];
|
||||
|
||||
if (++gTasks[taskId].data[11] == 111)
|
||||
{
|
||||
gTasks[taskId].data[10] = 5;
|
||||
gTasks[taskId].data[11] = 0;
|
||||
gTasks[taskId].func = sub_80DCEE4;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (++gTasks[taskId].data[10] == 11)
|
||||
{
|
||||
gTasks[taskId].data[10] = 0;
|
||||
PlaySE12WithPanning(gTasks[taskId].data[0], pan);
|
||||
}
|
||||
pan += panIncrement;
|
||||
gTasks[taskId].data[2] = KeepPanInRange(pan, panIncrement);
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_80DCEE4(u8 taskId)
|
||||
{
|
||||
if (++gTasks[taskId].data[10] == 6)
|
||||
{
|
||||
s8 pan;
|
||||
|
||||
gTasks[taskId].data[10] = 0;
|
||||
pan = BattleAnimAdjustPanning(SOUND_PAN_TARGET);
|
||||
PlaySE12WithPanning(gTasks[taskId].data[1], pan);
|
||||
if (++gTasks[taskId].data[11] == 2)
|
||||
DestroyAnimSoundTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
void mas_80DCF38(u8 taskId)
|
||||
{
|
||||
u16 songId = gBattleAnimArgs[0];
|
||||
s8 targetPan = gBattleAnimArgs[2];
|
||||
s8 panIncrement = gBattleAnimArgs[3];
|
||||
u8 r10 = gBattleAnimArgs[4];
|
||||
u8 r7 = gBattleAnimArgs[5];
|
||||
u8 r9 = gBattleAnimArgs[6];
|
||||
s8 sourcePan = BattleAnimAdjustPanning(gBattleAnimArgs[1]);
|
||||
|
||||
targetPan = BattleAnimAdjustPanning(targetPan);
|
||||
panIncrement = CalculatePanIncrement(sourcePan, targetPan, panIncrement);
|
||||
gTasks[taskId].data[0] = songId;
|
||||
gTasks[taskId].data[1] = sourcePan;
|
||||
gTasks[taskId].data[2] = targetPan;
|
||||
gTasks[taskId].data[3] = panIncrement;
|
||||
gTasks[taskId].data[4] = r10;
|
||||
gTasks[taskId].data[5] = r7;
|
||||
gTasks[taskId].data[6] = r9;
|
||||
gTasks[taskId].data[10] = 0;
|
||||
gTasks[taskId].data[11] = sourcePan;
|
||||
gTasks[taskId].data[12] = r9;
|
||||
gTasks[taskId].func = sub_80DCFE8;
|
||||
sub_80DCFE8(taskId);
|
||||
}
|
||||
|
||||
static void sub_80DCFE8(u8 taskId)
|
||||
{
|
||||
if (gTasks[taskId].data[12]++ == gTasks[taskId].data[6])
|
||||
{
|
||||
gTasks[taskId].data[12] = 0;
|
||||
PlaySE12WithPanning(gTasks[taskId].data[0], gTasks[taskId].data[11]);
|
||||
if (--gTasks[taskId].data[4] == 0)
|
||||
{
|
||||
DestroyAnimSoundTask(taskId);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (gTasks[taskId].data[10]++ == gTasks[taskId].data[5])
|
||||
{
|
||||
u16 dPan, oldPan;
|
||||
|
||||
gTasks[taskId].data[10] = 0;
|
||||
dPan = gTasks[taskId].data[3];
|
||||
oldPan = gTasks[taskId].data[11] ;
|
||||
gTasks[taskId].data[11] = dPan + oldPan;
|
||||
gTasks[taskId].data[11] = KeepPanInRange(gTasks[taskId].data[11], oldPan);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80DD06C(u8 taskId)
|
||||
{
|
||||
u16 species = SPECIES_NONE;
|
||||
u8 battlerId;
|
||||
s8 pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER);
|
||||
|
||||
// Get wanted battler.
|
||||
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
|
||||
battlerId = gBattleAnimAttacker;
|
||||
else if (gBattleAnimArgs[0] == ANIM_TARGET)
|
||||
battlerId = gBattleAnimTarget;
|
||||
else if (gBattleAnimArgs[0] == ANIM_ATK_PARTNER)
|
||||
battlerId = BATTLE_PARTNER(gBattleAnimAttacker);
|
||||
else
|
||||
battlerId = BATTLE_PARTNER(gBattleAnimTarget);
|
||||
// Check if battler is visible.
|
||||
if ((gBattleAnimArgs[0] == ANIM_TARGET || gBattleAnimArgs[0] == ANIM_DEF_PARTNER)
|
||||
&& !IsBattlerSpriteVisible(battlerId))
|
||||
{
|
||||
DestroyAnimVisualTask(taskId);
|
||||
return;
|
||||
}
|
||||
if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
|
||||
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES);
|
||||
else
|
||||
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES);
|
||||
if (species != SPECIES_NONE)
|
||||
PlayCry3(species, pan, 3);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void sub_80DD148(u8 taskId)
|
||||
{
|
||||
u16 species = SPECIES_NONE;
|
||||
u8 battlerId;
|
||||
s8 pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER);
|
||||
|
||||
// Get wanted battler.
|
||||
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
|
||||
battlerId = gBattleAnimAttacker;
|
||||
else if (gBattleAnimArgs[0] == ANIM_TARGET)
|
||||
battlerId = gBattleAnimTarget;
|
||||
else if (gBattleAnimArgs[0] == ANIM_ATK_PARTNER)
|
||||
battlerId = BATTLE_PARTNER(gBattleAnimAttacker);
|
||||
else
|
||||
battlerId = BATTLE_PARTNER(gBattleAnimTarget);
|
||||
// Check if battler is visible.
|
||||
if ((gBattleAnimArgs[0] == ANIM_TARGET || gBattleAnimArgs[0] == ANIM_DEF_PARTNER)
|
||||
&& !IsBattlerSpriteVisible(battlerId))
|
||||
{
|
||||
DestroyAnimVisualTask(taskId);
|
||||
return;
|
||||
}
|
||||
if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
|
||||
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES);
|
||||
else
|
||||
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES);
|
||||
gTasks[taskId].data[0] = gBattleAnimArgs[1];
|
||||
gTasks[taskId].data[1] = species;
|
||||
gTasks[taskId].data[2] = pan;
|
||||
if (species != SPECIES_NONE)
|
||||
{
|
||||
if (gBattleAnimArgs[1] == TASK_NONE)
|
||||
PlayCry3(species, pan, 9);
|
||||
else
|
||||
PlayCry3(species, pan, 7);
|
||||
gTasks[taskId].func = sub_80DD270;
|
||||
}
|
||||
else
|
||||
{
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_80DD270(u8 taskId)
|
||||
{
|
||||
u16 species = gTasks[taskId].data[1];
|
||||
s8 pan = gTasks[taskId].data[2];
|
||||
|
||||
if (gTasks[taskId].data[9] < 2)
|
||||
{
|
||||
++gTasks[taskId].data[9];
|
||||
}
|
||||
else if (gTasks[taskId].data[0] == TASK_NONE)
|
||||
{
|
||||
if (!IsCryPlaying())
|
||||
{
|
||||
PlayCry3(species, pan, 10);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
}
|
||||
else if (!IsCryPlaying())
|
||||
{
|
||||
PlayCry3(species, pan, 8);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80DD2F4(u8 taskId)
|
||||
{
|
||||
if (gTasks[taskId].data[9] < 2)
|
||||
++gTasks[taskId].data[9];
|
||||
else if (!IsCryPlaying())
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void sub_80DD334(u8 taskId)
|
||||
{
|
||||
u16 species;
|
||||
s8 pan;
|
||||
|
||||
pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER);
|
||||
species = gAnimBattlerSpecies[gBattleAnimAttacker];
|
||||
gTasks[taskId].data[1] = species;
|
||||
gTasks[taskId].data[2] = pan;
|
||||
if (species != SPECIES_NONE)
|
||||
{
|
||||
PlayCry3(species, pan, 4);
|
||||
gTasks[taskId].func = sub_80DD390;
|
||||
}
|
||||
else
|
||||
{
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_80DD390(u8 taskId)
|
||||
{
|
||||
|
||||
if (gTasks[taskId].data[9] < 2)
|
||||
{
|
||||
++gTasks[taskId].data[9];
|
||||
}
|
||||
else if (!IsCryPlaying())
|
||||
{
|
||||
u16 species = gTasks[taskId].data[1];
|
||||
s8 pan = gTasks[taskId].data[2];
|
||||
|
||||
PlayCry3(species, pan, 6);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80DD3DC(u8 taskId)
|
||||
{
|
||||
u16 songId = gBattleAnimArgs[0];
|
||||
s8 pan = BattleAnimAdjustPanning(gBattleAnimArgs[1]);
|
||||
|
||||
PlaySE1WithPanning(songId, pan);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void sub_80DD410(u8 taskId)
|
||||
{
|
||||
u16 songId = gBattleAnimArgs[0];
|
||||
s8 pan = BattleAnimAdjustPanning(gBattleAnimArgs[1]);
|
||||
|
||||
PlaySE2WithPanning(songId, pan);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void sub_80DD444(u8 taskId)
|
||||
{
|
||||
s8 targetPan = gBattleAnimArgs[1];
|
||||
s8 panIncrement = gBattleAnimArgs[2];
|
||||
u16 r9 = gBattleAnimArgs[3];
|
||||
s8 sourcePan = BattleAnimAdjustPanning(gBattleAnimArgs[0]);
|
||||
|
||||
targetPan = BattleAnimAdjustPanning(targetPan);
|
||||
panIncrement = CalculatePanIncrement(sourcePan, targetPan, panIncrement);
|
||||
gTasks[taskId].data[1] = sourcePan;
|
||||
gTasks[taskId].data[2] = targetPan;
|
||||
gTasks[taskId].data[3] = panIncrement;
|
||||
gTasks[taskId].data[5] = r9;
|
||||
gTasks[taskId].data[10] = 0;
|
||||
gTasks[taskId].data[11] = sourcePan;
|
||||
gTasks[taskId].func = sub_80DD4D4;
|
||||
sub_80DD4D4(taskId);
|
||||
}
|
||||
|
||||
static void sub_80DD4D4(u8 taskId)
|
||||
{
|
||||
u16 oldPan, panIncrement = gTasks[taskId].data[3];
|
||||
|
||||
if (gTasks[taskId].data[10]++ == gTasks[taskId].data[5])
|
||||
{
|
||||
gTasks[taskId].data[10] = 0;
|
||||
oldPan = gTasks[taskId].data[11];
|
||||
gTasks[taskId].data[11] = panIncrement + oldPan;
|
||||
gTasks[taskId].data[11] = KeepPanInRange(gTasks[taskId].data[11], oldPan);
|
||||
}
|
||||
gUnknown_2037F24 = gTasks[taskId].data[11];
|
||||
if (gTasks[taskId].data[11] == gTasks[taskId].data[2])
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
+1
-1
@@ -669,7 +669,7 @@ gBattleAnimAttacker: @ 2037F1A
|
||||
gBattleAnimTarget: @ 2037F1B
|
||||
.space 0x1
|
||||
|
||||
gUnknown_2037F1C: @ 2037F1C
|
||||
gAnimBattlerSpecies: @ 2037F1C
|
||||
.space 0x8
|
||||
|
||||
gUnknown_2037F24: @ 2037F24
|
||||
|
||||
Reference in New Issue
Block a user