summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/battle_1.s8
-rw-r--r--asm/battle_anim.s1647
-rw-r--r--asm/battle_anim_80FE840.s34
-rwxr-xr-xasm/battle_anim_815A0D4.s18
-rw-r--r--asm/battle_anim_sound_tasks.s24
-rw-r--r--asm/battle_controller_linkopponent.s2
-rw-r--r--asm/battle_controller_linkpartner.s2
-rw-r--r--asm/battle_controller_opponent.s2
-rw-r--r--asm/battle_controller_player.s2
-rw-r--r--asm/battle_controller_player_partner.s2
-rw-r--r--asm/battle_controller_recorded_opponent.s2
-rw-r--r--asm/battle_controller_recorded_player.s2
-rw-r--r--asm/battle_controller_wally.s2
-rw-r--r--asm/contest.s12
-rw-r--r--data/battle_anims.s42
-rw-r--r--include/battle.h3
-rw-r--r--include/battle_anim.h12
-rw-r--r--include/contest.h1
-rw-r--r--src/battle_anim.c640
19 files changed, 736 insertions, 1721 deletions
diff --git a/asm/battle_1.s b/asm/battle_1.s
index 416fd87ec..d450df884 100644
--- a/asm/battle_1.s
+++ b/asm/battle_1.s
@@ -1424,8 +1424,8 @@ _0803575A:
.pool
thumb_func_end ApplyPlayerChosenFrameToBattleMenu
- thumb_func_start load_battle_oval_graphics
-load_battle_oval_graphics: @ 8035770
+ thumb_func_start LoadFittingBackgroundForBattle
+LoadFittingBackgroundForBattle: @ 8035770
push {r4,r5,lr}
ldr r0, =gBattleTypeFlags
ldr r1, [r0]
@@ -1665,7 +1665,7 @@ _08035A8A:
pop {r0}
bx r0
.pool
- thumb_func_end load_battle_oval_graphics
+ thumb_func_end LoadFittingBackgroundForBattle
thumb_func_start LoadBattleTextboxAndBackground
LoadBattleTextboxAndBackground: @ 8035AA4
@@ -1686,7 +1686,7 @@ LoadBattleTextboxAndBackground: @ 8035AA4
movs r2, 0x40
bl LoadCompressedPalette
bl ApplyPlayerChosenFrameToBattleMenu
- bl load_battle_oval_graphics
+ bl LoadFittingBackgroundForBattle
pop {r0}
bx r0
.pool
diff --git a/asm/battle_anim.s b/asm/battle_anim.s
index a35f322d4..a25ef98c6 100644
--- a/asm/battle_anim.s
+++ b/asm/battle_anim.s
@@ -5,1640 +5,7 @@
.text
-
- thumb_func_start sub_80A46A0
-sub_80A46A0: @ 80A46A0
- push {r4-r7,lr}
- sub sp, 0x10
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- ldrh r0, [r0]
- bl IsSpeciesNotUnown
- lsls r0, 24
- cmp r0, 0
- beq _080A4712
- mov r0, sp
- bl sub_80A6B30
- ldr r6, [sp, 0x4]
- movs r5, 0
- movs r0, 0x7
- mov r12, r0
- movs r7, 0
-_080A46C6:
- movs r4, 0
- adds r3, r7, r6
- mov r1, r12
- lsls r0, r1, 1
- adds r2, r0, r6
-_080A46D0:
- ldrh r1, [r3]
- ldrh r0, [r2]
- strh r0, [r3]
- strh r1, [r2]
- adds r3, 0x2
- subs r2, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _080A46D0
- movs r0, 0x20
- add r12, r0
- adds r7, 0x40
- adds r5, 0x1
- cmp r5, 0x7
- ble _080A46C6
- movs r5, 0
- movs r1, 0x80
- lsls r1, 3
- adds r3, r1, 0
-_080A46F6:
- adds r2, r5, 0x1
- lsls r0, r5, 6
- adds r1, r0, r6
- movs r4, 0x7
-_080A46FE:
- ldrh r0, [r1]
- eors r0, r3
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080A46FE
- adds r5, r2, 0
- cmp r5, 0x7
- ble _080A46F6
-_080A4712:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A46A0
-
- thumb_func_start sub_80A4720
-sub_80A4720: @ 80A4720
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r1
- adds r6, r2, 0
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r3, 24
- movs r0, 0x40
- mov r12, r0
- cmp r3, 0
- bne _080A473C
- movs r1, 0x20
- mov r12, r1
-_080A473C:
- lsls r0, r5, 28
- lsrs r5, r0, 16
- movs r0, 0
- cmp r0, r12
- bge _080A476C
- ldr r7, =0x00000fff
-_080A4748:
- adds r4, r0, 0x1
- lsls r0, 6
- mov r1, r8
- adds r3, r0, r1
- movs r2, 0x1F
-_080A4752:
- ldrh r1, [r3]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r5
- adds r0, r6
- strh r0, [r3]
- adds r3, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080A4752
- adds r0, r4, 0
- cmp r0, r12
- blt _080A4748
-_080A476C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A4720
-
- thumb_func_start sub_80A477C
-sub_80A477C: @ 80A477C
- push {r4,lr}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, sp
- bl sub_80A6B30
- cmp r4, 0
- beq _080A479C
- bl IsContest
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080A47B8
-_080A479C:
- movs r0, 0x1
- bl sub_80A6C68
- ldr r0, =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r1, [r0]
- b _080A47C6
- .pool
-_080A47B8:
- movs r0, 0x2
- bl sub_80A6C68
- ldr r0, =gBattle_BG2_X
- strh r4, [r0]
- ldr r0, =gBattle_BG2_Y
- strh r4, [r0]
-_080A47C6:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A477C
-
- thumb_func_start task_pA_ma0A_obj_to_bg_pal
-@ void task_pA_ma0A_obj_to_bg_pal(int task_id)
-task_pA_ma0A_obj_to_bg_pal: @ 80A47D8
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- ldrb r4, [r5, 0x8]
- ldrb r6, [r5, 0x14]
- mov r0, sp
- bl sub_80A6B30
- ldr r0, =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r1, 0x24]
- ldrh r0, [r1, 0x20]
- adds r2, r0
- ldrh r0, [r5, 0xA]
- subs r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r2, [r1, 0x26]
- ldrh r1, [r1, 0x22]
- adds r2, r1
- ldrh r0, [r5, 0xC]
- subs r0, r2
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x12
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A4870
- ldr r1, =gBattle_BG1_X
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r3, [r5, 0xE]
- adds r0, r3
- strh r0, [r1]
- ldr r1, =gBattle_BG1_Y
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r5, [r5, 0x10]
- adds r0, r5
- strh r0, [r1]
- lsls r0, r6, 5
- ldr r2, =gPlttBufferFaded + 0x200
- adds r0, r2
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 5
- ldr r3, =0xfffffe00
- adds r2, r3
- adds r1, r2
- ldr r2, =0x04000008
- bl CpuSet
- b _080A4896
- .pool
-_080A4870:
- ldr r1, =gBattle_BG2_X
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r3, [r5, 0xE]
- adds r0, r3
- strh r0, [r1]
- ldr r1, =gBattle_BG2_Y
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r5, [r5, 0x10]
- adds r0, r5
- strh r0, [r1]
- lsls r0, r6, 5
- ldr r1, =gPlttBufferFaded + 0x200
- adds r0, r1
- subs r1, 0xE0
- ldr r2, =0x04000008
- bl CpuSet
-_080A4896:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_pA_ma0A_obj_to_bg_pal
-
- thumb_func_start ma0B_0807324C
-ma0B_0807324C: @ 80A48B0
- push {r4,r5,lr}
- ldr r0, =gBattleAnimScriptPtr
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r4, [r2, 0x1]
- cmp r4, 0
- bne _080A48C8
- movs r4, 0x2
- b _080A48D2
- .pool
-_080A48C8:
- cmp r4, 0x1
- bne _080A48CE
- movs r4, 0x3
-_080A48CE:
- cmp r4, 0
- beq _080A48D6
-_080A48D2:
- cmp r4, 0x2
- bne _080A48E0
-_080A48D6:
- ldr r0, =gAnimBankAttacker
- b _080A48E2
- .pool
-_080A48E0:
- ldr r0, =gAnimBankTarget
-_080A48E2:
- ldrb r5, [r0]
- ldr r3, =gMonAnimTaskIdArray
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _080A4908
- ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
- adds r0, r5, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080A4908:
- cmp r4, 0x1
- bls _080A4948
- ldrb r0, [r3, 0x1]
- cmp r0, 0xFF
- beq _080A4948
- ldr r3, =gSprites
- ldr r2, =gBankSpriteIds
- movs r1, 0x2
- adds r0, r5, 0
- eors r0, r1
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- b _080A494A
- .pool
-_080A4948:
- movs r4, 0
-_080A494A:
- ldr r0, =sub_80A4980
- movs r1, 0x5
- 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 r4, [r1, 0x8]
- strh r5, [r1, 0xC]
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma0B_0807324C
-
- thumb_func_start sub_80A4980
-sub_80A4980: @ 80A4980
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _080A4A0A
- ldrb r0, [r1, 0xC]
- bl GetBankIdentity
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _080A49BC
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A49C4
-_080A49BC:
- movs r4, 0
- b _080A49C6
- .pool
-_080A49C4:
- movs r4, 0x1
-_080A49C6:
- ldr r6, =gMonAnimTaskIdArray
- ldrb r0, [r6]
- cmp r0, 0xFF
- beq _080A49DE
- adds r0, r4, 0
- bl sub_80A477C
- ldrb r0, [r6]
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r6]
-_080A49DE:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- ble _080A4A04
- movs r0, 0x1
- eors r4, r0
- adds r0, r4, 0
- bl sub_80A477C
- ldrb r0, [r6, 0x1]
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r6, 0x1]
-_080A4A04:
- adds r0, r5, 0
- bl DestroyTask
-_080A4A0A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A4980
-
- thumb_func_start sub_80A4A18
-sub_80A4A18: @ 80A4A18
- push {r4,r5,lr}
- ldr r0, =gBattleAnimScriptPtr
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r5, [r2, 0x1]
- cmp r5, 0
- bne _080A4A30
- movs r5, 0x2
- b _080A4A3A
- .pool
-_080A4A30:
- cmp r5, 0x1
- bne _080A4A36
- movs r5, 0x3
-_080A4A36:
- cmp r5, 0
- beq _080A4A3E
-_080A4A3A:
- cmp r5, 0x2
- bne _080A4A48
-_080A4A3E:
- ldr r0, =gAnimBankAttacker
- b _080A4A4A
- .pool
-_080A4A48:
- ldr r0, =gAnimBankTarget
-_080A4A4A:
- ldrb r4, [r0]
- adds r0, r4, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080A4A8A
- adds r0, r4, 0
- bl GetBankIdentity
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _080A4A76
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A4A80
-_080A4A76:
- movs r1, 0
- b _080A4A82
- .pool
-_080A4A80:
- movs r1, 0x1
-_080A4A82:
- adds r0, r4, 0
- movs r2, 0
- bl sub_80A438C
-_080A4A8A:
- movs r0, 0x2
- eors r4, r0
- cmp r5, 0x1
- bls _080A4ACA
- adds r0, r4, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080A4ACA
- adds r0, r4, 0
- bl GetBankIdentity
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _080A4ABC
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A4AC0
-_080A4ABC:
- movs r1, 0
- b _080A4AC2
-_080A4AC0:
- movs r1, 0x1
-_080A4AC2:
- adds r0, r4, 0
- movs r2, 0
- bl sub_80A438C
-_080A4ACA:
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A4A18
-
- thumb_func_start ma23_8073484
-ma23_8073484: @ 80A4ADC
- push {r4-r6,lr}
- ldr r0, =gBattleAnimScriptPtr
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r5, [r2, 0x1]
- cmp r5, 0
- bne _080A4AF4
- movs r5, 0x2
- b _080A4AFE
- .pool
-_080A4AF4:
- cmp r5, 0x1
- bne _080A4AFA
- movs r5, 0x3
-_080A4AFA:
- cmp r5, 0
- beq _080A4B02
-_080A4AFE:
- cmp r5, 0x2
- bne _080A4B0C
-_080A4B02:
- ldr r0, =gAnimBankAttacker
- b _080A4B0E
- .pool
-_080A4B0C:
- ldr r0, =gAnimBankTarget
-_080A4B0E:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080A4B38
- ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
- adds r0, r6, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080A4B38:
- cmp r5, 0x1
- bls _080A4B78
- movs r0, 0x2
- adds r4, r6, 0
- eors r4, r0
- adds r0, r4, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080A4B78
- ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- b _080A4B7A
- .pool
-_080A4B78:
- movs r5, 0
-_080A4B7A:
- ldr r0, =sub_80A4BB0
- movs r1, 0x5
- 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 r5, [r1, 0x8]
- strh r6, [r1, 0xC]
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma23_8073484
-
- thumb_func_start sub_80A4BB0
-sub_80A4BB0: @ 80A4BB0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _080A4C3E
- ldrb r4, [r1, 0xC]
- adds r0, r4, 0
- bl GetBankIdentity
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _080A4BEE
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A4BF8
-_080A4BEE:
- movs r5, 0
- b _080A4BFA
- .pool
-_080A4BF8:
- movs r5, 0x1
-_080A4BFA:
- adds r0, r4, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080A4C0C
- adds r0, r5, 0
- bl sub_80A477C
-_080A4C0C:
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- ble _080A4C38
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080A4C38
- movs r0, 0x1
- eors r5, r0
- adds r0, r5, 0
- bl sub_80A477C
-_080A4C38:
- adds r0, r6, 0
- bl DestroyTask
-_080A4C3E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A4BB0
-
- thumb_func_start ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument
-ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument: @ 80A4C48
- push {r4,r5,lr}
- ldr r2, =gBattleAnimScriptPtr
- ldr r0, [r2]
- adds r1, r0, 0x1
- str r1, [r2]
- ldrb r5, [r0, 0x1]
- adds r0, r1, 0x1
- str r0, [r2]
- ldrb r4, [r1, 0x1]
- lsls r4, 8
- adds r0, 0x1
- str r0, [r2]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- orrs r5, r4
- movs r0, 0x52
- adds r1, r5, 0
- bl SetGpuReg
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument
-
- thumb_func_start ma1E_set_BLDCNT
-ma1E_set_BLDCNT: @ 80A4C80
- push {lr}
- ldr r3, =gBattleAnimScriptPtr
- ldr r0, [r3]
- adds r2, r0, 0x1
- str r2, [r3]
- ldrb r1, [r0, 0x1]
- adds r0, r2, 0x1
- str r0, [r3]
- ldrb r2, [r2, 0x1]
- lsls r2, 8
- adds r0, 0x1
- str r0, [r3]
- orrs r1, r2
- movs r0, 0x50
- bl SetGpuReg
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma1E_set_BLDCNT
-
- thumb_func_start ma0D_reset_BLDCNT_and_BLDALPHA
-ma0D_reset_BLDCNT_and_BLDALPHA: @ 80A4CA8
- push {lr}
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma0D_reset_BLDCNT_and_BLDALPHA
-
- thumb_func_start ma0E_call
-ma0E_call: @ 80A4CCC
- push {r4,lr}
- ldr r4, =gBattleAnimScriptPtr
- ldr r1, [r4]
- adds r3, r1, 0x1
- str r3, [r4]
- ldr r2, =gBattleAnimScriptRetAddr
- adds r0, r1, 0x5
- str r0, [r2]
- ldrb r1, [r1, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma0E_call
-
- thumb_func_start sub_80A4D00
-sub_80A4D00: @ 80A4D00
- ldr r0, =gBattleAnimScriptPtr
- ldr r1, =gBattleAnimScriptRetAddr
- ldr r1, [r1]
- str r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_80A4D00
-
- thumb_func_start ma10_080736AC
-ma10_080736AC: @ 80A4D14
- push {r4,r5,lr}
- ldr r5, =gBattleAnimScriptPtr
- ldr r1, [r5]
- adds r0, r1, 0x1
- str r0, [r5]
- ldrb r2, [r1, 0x1]
- adds r3, r0, 0x1
- str r3, [r5]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r4, r0
- adds r1, 0x4
- str r1, [r5]
- ldr r0, =gBattleAnimArgs
- lsls r2, 1
- adds r2, r0
- strh r4, [r2]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma10_080736AC
-
- thumb_func_start ma11_if_else
-ma11_if_else: @ 80A4D48
- push {lr}
- ldr r3, =gBattleAnimScriptPtr
- ldr r2, [r3]
- adds r0, r2, 0x1
- str r0, [r3]
- ldr r0, =gUnknown_02038432
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A4D62
- adds r0, r2, 0x5
- str r0, [r3]
-_080A4D62:
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma11_if_else
-
- thumb_func_start ma12_cond_if
-ma12_cond_if: @ 80A4D88
- push {r4,r5,lr}
- ldr r5, =gBattleAnimScriptPtr
- ldr r4, [r5]
- adds r2, r4, 0x1
- str r2, [r5]
- ldrb r1, [r4, 0x1]
- adds r3, r2, 0x1
- str r3, [r5]
- ldr r0, =gUnknown_02038432
- ldrb r0, [r0]
- cmp r1, r0
- bne _080A4DC0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r5]
- b _080A4DC4
- .pool
-_080A4DC0:
- adds r0, r4, 0x6
- str r0, [r5]
-_080A4DC4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ma12_cond_if
-
- thumb_func_start ma13_goto
-ma13_goto: @ 80A4DCC
- ldr r3, =gBattleAnimScriptPtr
- ldr r0, [r3]
- adds r2, r0, 0x1
- str r2, [r3]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- bx lr
- .pool
- thumb_func_end ma13_goto
-
- thumb_func_start IsContest
-IsContest: @ 80A4DF0
- push {lr}
- ldr r0, =gMain
- ldr r1, =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A4E10
- movs r0, 0
- b _080A4E12
- .pool
-_080A4E10:
- movs r0, 0x1
-_080A4E12:
- pop {r1}
- bx r1
- thumb_func_end IsContest
-
- thumb_func_start ma14_load_background
-ma14_load_background: @ 80A4E18
- push {r4,lr}
- ldr r1, =gBattleAnimScriptPtr
- ldr r2, [r1]
- adds r0, r2, 0x1
- str r0, [r1]
- ldrb r4, [r2, 0x1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, =task_p5_load_battle_screen_elements
- movs r1, 0x5
- 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 r4, [r1, 0x8]
- ldr r1, =gUnknown_02038433
- movs r0, 0x1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma14_load_background
-
- thumb_func_start sub_80A4E5C
-sub_80A4E5C: @ 80A4E5C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r2, =gBattleAnimScriptPtr
- ldr r1, [r2]
- adds r0, r1, 0x1
- str r0, [r2]
- ldrb r3, [r1, 0x1]
- mov r8, r3
- ldrb r7, [r0, 0x1]
- ldrb r6, [r0, 0x2]
- adds r1, 0x4
- str r1, [r2]
- ldr r0, =task_p5_load_battle_screen_elements
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A4EA8
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x8]
- b _080A4EDA
- .pool
-_080A4EA8:
- ldr r0, =gAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080A4ECC
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0x8]
- b _080A4EDA
- .pool
-_080A4ECC:
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- mov r1, r8
- strh r1, [r0, 0x8]
-_080A4EDA:
- ldr r1, =gUnknown_02038433
- movs r0, 0x1
- strb r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A4E5C
-
- thumb_func_start task_p5_load_battle_screen_elements
-task_p5_load_battle_screen_elements: @ 80A4EF4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r6, [r4, 0x1C]
- movs r0, 0x1C
- ldrsh r3, [r4, r0]
- adds r7, r1, 0
- cmp r3, 0
- bne _080A4F2C
- str r3, [sp]
- movs r0, 0xE8
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginHardwarePaletteFade
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- b _080A4FBC
- .pool
-_080A4F2C:
- ldr r2, =gPaletteFade
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A4FBC
- cmp r3, 0x1
- bne _080A4F50
- adds r0, r6, 0x1
- strh r0, [r4, 0x1C]
- ldr r1, =gUnknown_02038433
- movs r0, 0x2
- strb r0, [r1]
- b _080A4F94
- .pool
-_080A4F50:
- cmp r3, 0x2
- bne _080A4F94
- ldrh r0, [r4, 0x8]
- lsls r2, r0, 16
- asrs r1, r2, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080A4F68
- bl dp01t_11_3_message_for_player_only
- b _080A4F6E
-_080A4F68:
- lsrs r0, r2, 16
- bl sub_80A4FC8
-_080A4F6E:
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xE8
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginHardwarePaletteFade
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x1C]
- adds r1, 0x1
- strh r1, [r0, 0x1C]
- b _080A4FBC
- .pool
-_080A4F94:
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080A4FBC
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r7
- movs r1, 0x1C
- ldrsh r0, [r0, r1]
- cmp r0, 0x3
- bne _080A4FBC
- adds r0, r5, 0
- bl DestroyTask
- ldr r0, =gUnknown_02038433
- strb r4, [r0]
-_080A4FBC:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_p5_load_battle_screen_elements
-
- thumb_func_start sub_80A4FC8
-sub_80A4FC8: @ 80A4FC8
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r7, r0, 16
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A5050
- ldr r6, =gUnknown_08525D54
- lsls r4, r7, 1
- adds r4, r7
- lsls r4, 2
- adds r0, r6, 0
- adds r0, 0x8
- adds r0, r4, r0
- ldr r0, [r0]
- ldr r5, =0x0201c000
- adds r1, r5, 0
- bl LZDecompressWram
- bl sub_80A6D94
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- adds r1, r5, 0
- movs r3, 0
- bl sub_80A4720
- ldr r1, =0x0600d000
- ldr r0, =0x040000d4
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, =0x84000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- adds r0, r4, r6
- ldr r0, [r0]
- ldr r1, =0x06002000
- bl LZDecompressVram
- adds r6, 0x4
- adds r4, r6
- ldr r4, [r4]
- bl sub_80A6D94
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 20
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- b _080A507E
- .pool
-_080A5050:
- ldr r5, =gUnknown_08525D54
- lsls r4, r7, 1
- adds r4, r7
- lsls r4, 2
- adds r0, r5, 0
- adds r0, 0x8
- adds r0, r4, r0
- ldr r0, [r0]
- ldr r1, =0x0600d000
- bl LZDecompressVram
- adds r0, r4, r5
- ldr r0, [r0]
- ldr r1, =0x06008000
- bl LZDecompressVram
- adds r5, 0x4
- adds r4, r5
- ldr r0, [r4]
- movs r1, 0x20
- movs r2, 0x20
- bl LoadCompressedPalette
-_080A507E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A4FC8
-
- thumb_func_start dp01t_11_3_message_for_player_only
-dp01t_11_3_message_for_player_only: @ 80A5090
- push {lr}
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A50A2
- bl sub_80D7724
- b _080A50A6
-_080A50A2:
- bl load_battle_oval_graphics
-_080A50A6:
- pop {r0}
- bx r0
- thumb_func_end dp01t_11_3_message_for_player_only
-
- thumb_func_start ma15_load_battle_screen_elements
-ma15_load_battle_screen_elements: @ 80A50AC
- push {lr}
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, =task_p5_load_battle_screen_elements
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, =0x0000ffff
- strh r0, [r1, 0x8]
- ldr r1, =gUnknown_02038433
- movs r0, 0x1
- strb r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma15_load_battle_screen_elements
- thumb_func_start ma16_wait_for_battle_screen_elements_s2
-ma16_wait_for_battle_screen_elements_s2: @ 80A50F0
- push {lr}
- ldr r0, =gUnknown_02038433
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080A5114
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r1, =gAnimFramesToWait
- movs r0, 0
- b _080A5118
- .pool
-_080A5114:
- ldr r1, =gAnimFramesToWait
- movs r0, 0x1
-_080A5118:
- strb r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma16_wait_for_battle_screen_elements_s2
-
- thumb_func_start sub_80A5124
-sub_80A5124: @ 80A5124
- push {lr}
- ldr r0, =gUnknown_02038433
- ldrb r2, [r0]
- cmp r2, 0
- bne _080A5148
- ldr r0, =gBattleAnimScriptPtr
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- ldr r0, =gAnimFramesToWait
- strb r2, [r0]
- b _080A514E
- .pool
-_080A5148:
- ldr r1, =gAnimFramesToWait
- movs r0, 0x1
- strb r0, [r1]
-_080A514E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A5124
-
- thumb_func_start ma18_load_background_probably
-ma18_load_background_probably: @ 80A5158
- push {r4,lr}
- ldr r4, =gBattleAnimScriptPtr
- ldr r1, [r4]
- adds r0, r1, 0x1
- str r0, [r4]
- ldrb r0, [r1, 0x1]
- bl sub_80A4FC8
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma18_load_background_probably
-
- thumb_func_start BattleAnimGetPanControl
-BattleAnimGetPanControl: @ 80A5178
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A51C0
- ldr r0, =gBattleSpritesDataPtr
- ldr r1, [r0]
- ldr r0, =gAnimBankAttacker
- ldrb r2, [r0]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A51C0
- adds r0, r2, 0
- bl GetBankSide
- lsls r0, 24
- movs r4, 0xC0
- cmp r0, 0
- beq _080A5252
- movs r4, 0x3F
- b _080A5252
- .pool
-_080A51C0:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A51E8
- ldr r0, =gAnimBankAttacker
- ldr r1, =gAnimBankTarget
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080A524C
- cmp r0, 0x2
- bne _080A524C
- cmp r4, 0x3F
- beq _080A525E
- b _080A524C
- .pool
-_080A51E8:
- ldr r0, =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080A5226
- ldr r0, =gAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080A5252
- lsls r0, r4, 24
- asrs r1, r0, 24
- cmp r1, 0x3F
- bne _080A5218
- movs r4, 0xC0
- b _080A5252
- .pool
-_080A5218:
- movs r0, 0x40
- negs r0, r0
- cmp r1, r0
- beq _080A5252
- negs r0, r1
- lsls r0, 24
- b _080A5250
-_080A5226:
- ldr r0, =gAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A524C
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0x40
- negs r1, r1
- cmp r0, r1
- bne _080A5252
- movs r4, 0x3F
- b _080A5252
- .pool
-_080A524C:
- lsls r0, r4, 24
- negs r0, r0
-_080A5250:
- lsrs r4, r0, 24
-_080A5252:
- lsls r0, r4, 24
- asrs r0, 24
- cmp r0, 0x3F
- ble _080A525E
- movs r4, 0x3F
- b _080A526C
-_080A525E:
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0x40
- negs r1, r1
- cmp r0, r1
- bge _080A526C
- movs r4, 0xC0
-_080A526C:
- lsls r0, r4, 24
- asrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end BattleAnimGetPanControl
-
- thumb_func_start sub_80A5278
-sub_80A5278: @ 80A5278
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A52C0
- ldr r0, =gBattleSpritesDataPtr
- ldr r1, [r0]
- ldr r0, =gAnimBankAttacker
- ldrb r2, [r0]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A52C0
- adds r0, r2, 0
- bl GetBankSide
- lsls r0, 24
- movs r4, 0xC0
- cmp r0, 0
- beq _080A52DE
- movs r4, 0x3F
- b _080A52DE
- .pool
-_080A52C0:
- ldr r0, =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080A52D8
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A52DE
-_080A52D8:
- lsls r0, r4, 24
- negs r0, r0
- lsrs r4, r0, 24
-_080A52DE:
- lsls r0, r4, 24
- asrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80A5278
-
- thumb_func_start sub_80A52EC
-sub_80A52EC: @ 80A52EC
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r2, r0, 16
- cmp r2, 0x3F
- ble _080A52FC
- movs r1, 0x3F
- b _080A5306
-_080A52FC:
- movs r0, 0x40
- negs r0, r0
- cmp r2, r0
- bge _080A5306
- ldr r1, =0x0000ffc0
-_080A5306:
- lsls r0, r1, 16
- asrs r0, 16
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80A52EC
-
- thumb_func_start sub_80A5314
-sub_80A5314: @ 80A5314
- push {lr}
- lsls r2, 16
- lsrs r2, 16
- adds r3, r2, 0
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bge _080A5332
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0
- bge _080A5342
- b _080A5340
-_080A5332:
- cmp r0, r1
- ble _080A5348
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0
- bge _080A5340
- negs r0, r0
-_080A5340:
- negs r0, r0
-_080A5342:
- lsls r0, 16
- lsrs r0, 16
- b _080A534A
-_080A5348:
- movs r0, 0
-_080A534A:
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80A5314
-
- thumb_func_start ma19_08073BC8
-ma19_08073BC8: @ 80A5354
- push {r4,r5,lr}
- ldr r5, =gBattleAnimScriptPtr
- ldr r0, [r5]
- adds r1, r0, 0x1
- str r1, [r5]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r4, r0
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl BattleAnimGetPanControl
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r4, 0
- bl PlaySE12WithPanning
- ldr r0, [r5]
- adds r0, 0x3
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma19_08073BC8
-
- thumb_func_start ma1A_8073C00
-ma1A_8073C00: @ 80A538C
- push {r4,lr}
- ldr r4, =gBattleAnimScriptPtr
- ldr r1, [r4]
- adds r0, r1, 0x1
- str r0, [r4]
- movs r0, 0x1
- ldrsb r0, [r1, r0]
- bl BattleAnimGetPanControl
- lsls r0, 24
- asrs r0, 24
- bl SE12PanpotControl
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma1A_8073C00
thumb_func_start ma1B_8073C2C
ma1B_8073C2C: @ 80A53B8
@@ -1665,14 +32,14 @@ ma1B_8073C2C: @ 80A53B8
ldrb r7, [r1, 0x5]
movs r0, 0x2
ldrsb r0, [r1, r0]
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
lsls r4, 24
asrs r4, 24
adds r0, r4, 0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
mov r8, r0
lsls r5, 24
asrs r5, 24
@@ -1898,14 +265,14 @@ sub_80A559C: @ 80A559C
ldrb r7, [r1, 0x5]
movs r0, 0x2
ldrsb r0, [r1, r0]
- bl sub_80A5278
+ bl BattleAnimAdjustPanning2
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
lsls r4, 24
asrs r4, 24
adds r0, r4, 0
- bl sub_80A5278
+ bl BattleAnimAdjustPanning2
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
@@ -1914,7 +281,7 @@ sub_80A559C: @ 80A559C
asrs r1, 24
mov r8, r1
mov r0, r8
- bl sub_80A5278
+ bl BattleAnimAdjustPanning2
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -1980,7 +347,7 @@ ma1C_8073ED0: @ 80A565C
mov r9, r2
movs r0, 0x2
ldrsb r0, [r1, r0]
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -2085,7 +452,7 @@ ma1D_08073FB4: @ 80A5740
mov r8, r0
movs r0, 0x2
ldrsb r0, [r1, r0]
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s
index 318f8061c..1556523e2 100644
--- a/asm/battle_anim_80FE840.s
+++ b/asm/battle_anim_80FE840.s
@@ -2640,7 +2640,7 @@ _080FFD56:
cmp r0, 0
bne _080FFD8A
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -2658,7 +2658,7 @@ _080FFD8A:
str r0, [r4, 0x1C]
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -5778,7 +5778,7 @@ _08101604:
adds r0, r1
strh r0, [r5, 0x38]
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -5975,7 +5975,7 @@ _081017A4:
movs r2, 0x4
bl LoadPalette
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -7213,7 +7213,7 @@ sub_810217C: @ 810217C
strh r5, [r4, 0x34]
strh r5, [r4, 0x36]
subs r0, 0x42
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
lsls r0, 24
asrs r0, 24
strh r0, [r4, 0x38]
@@ -10604,7 +10604,7 @@ _08103C90:
strh r0, [r4, 0xA]
movs r0, 0x3F
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -11235,7 +11235,7 @@ sub_810421C: @ 810421C
push {r4,lr}
adds r4, r0, 0
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -12986,7 +12986,7 @@ sub_810501C: @ 810501C
adds r0, 0x2
strh r0, [r4, 0x38]
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
lsls r0, 24
asrs r0, 24
strh r0, [r4, 0x3A]
@@ -25228,12 +25228,12 @@ _0810B2DC:
movs r0, 0xC
strh r0, [r5, 0x1E]
subs r0, 0x4C
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0x20]
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0x22]
@@ -29951,7 +29951,7 @@ sub_810D984: @ 810D984
strh r0, [r5, 0x34]
ldrh r0, [r1, 0x4]
strh r0, [r5, 0x36]
- ldr r0, =gUnknown_02038432
+ ldr r0, =gAnimMoveTurn
ldrb r6, [r0]
ldrb r0, [r4]
bl GetBankSide
@@ -35110,7 +35110,7 @@ _081102B8:
beq _08110360
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -36713,13 +36713,13 @@ _0811101E:
strh r4, [r6, 0x16]
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r4, r0, 0
lsls r4, 24
asrs r4, 8
lsrs r4, 16
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
lsls r0, 24
strh r4, [r6, 0x22]
asrs r0, 24
@@ -43629,7 +43629,7 @@ sub_8114960: @ 8114960
push {lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r2, =gUnknown_02038432
+ ldr r2, =gAnimMoveTurn
ldrb r0, [r2]
cmp r0, 0x1
bhi _08114974
@@ -48614,7 +48614,7 @@ _08117280:
bne _081172CC
movs r0, 0x40
negs r0, r0
- bl sub_80A5278
+ bl BattleAnimAdjustPanning2
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -48625,7 +48625,7 @@ _08117280:
_081172CC:
movs r0, 0x40
negs r0, r0
- bl sub_80A5278
+ bl BattleAnimAdjustPanning2
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
diff --git a/asm/battle_anim_815A0D4.s b/asm/battle_anim_815A0D4.s
index 55c7037cd..45f207eb9 100755
--- a/asm/battle_anim_815A0D4.s
+++ b/asm/battle_anim_815A0D4.s
@@ -1349,7 +1349,7 @@ sub_815AB5C: @ 815AB5C
bne _0815ABBA
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -2004,7 +2004,7 @@ _0815B0BC:
lsrs r4, r0, 24
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -3551,7 +3551,7 @@ _0815BD8E:
strh r0, [r1, 0x8]
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -10271,7 +10271,7 @@ _0815F3CE:
bne _0815F482
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -10341,7 +10341,7 @@ _0815F460:
bne _0815F482
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -10431,7 +10431,7 @@ _0815F520:
cmp r0, 0
blt _0815F61A
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -10460,7 +10460,7 @@ _0815F544:
cmp r1, 0x7F
ble _0815F61A
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -10502,7 +10502,7 @@ _0815F5B4:
cmp r0, 0x8
ble _0815F61A
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -11557,7 +11557,7 @@ _0815FE92:
cmp r1, r0
bne _0815FF2C
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
diff --git a/asm/battle_anim_sound_tasks.s b/asm/battle_anim_sound_tasks.s
index 27b7a8013..817e64b07 100644
--- a/asm/battle_anim_sound_tasks.s
+++ b/asm/battle_anim_sound_tasks.s
@@ -22,12 +22,12 @@ sub_8158B30: @ 8158B30
strh r0, [r6, 0xA]
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r5, r0, 0
lsls r4, 24
asrs r4, 24
@@ -128,7 +128,7 @@ sub_8158C04: @ 8158C04
movs r0, 0
strh r0, [r4, 0x1C]
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
ldrh r0, [r4, 0xA]
lsls r1, 24
@@ -175,14 +175,14 @@ mas_80DCF38: @ 8158C58
ldrb r0, [r0, 0x2]
lsls r0, 24
asrs r0, 24
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r5, 24
asrs r5, 24
adds r0, r5, 0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r5, r0, 0
lsls r4, 24
asrs r4, 24
@@ -307,7 +307,7 @@ sub_8158D8C: @ 8158D8C
movs r4, 0
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
lsls r0, 24
lsrs r6, r0, 24
bl IsContest
@@ -432,7 +432,7 @@ sub_8158E9C: @ 8158E9C
movs r4, 0
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
lsls r0, 24
lsrs r5, r0, 24
bl IsContest
@@ -691,7 +691,7 @@ sub_81590B8: @ 81590B8
strh r1, [r0, 0x1C]
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
lsls r0, 24
lsrs r5, r0, 24
bl IsContest
@@ -849,7 +849,7 @@ sub_8159210: @ 8159210
ldrb r0, [r0, 0x2]
lsls r0, 24
asrs r0, 24
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -874,7 +874,7 @@ sub_8159244: @ 8159244
ldrb r0, [r0, 0x2]
lsls r0, 24
asrs r0, 24
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -906,14 +906,14 @@ sub_8159278: @ 8159278
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r5, 24
asrs r5, 24
adds r0, r5, 0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r5, r0, 0
lsls r4, 24
asrs r4, 24
diff --git a/asm/battle_controller_linkopponent.s b/asm/battle_controller_linkopponent.s
index 85794d9e8..ddc506b8c 100644
--- a/asm/battle_controller_linkopponent.s
+++ b/asm/battle_controller_linkopponent.s
@@ -4721,7 +4721,7 @@ _08066D32:
ldrb r0, [r0]
lsls r0, 8
orrs r6, r0
- ldr r0, =gUnknown_02038432
+ ldr r0, =gAnimMoveTurn
mov r8, r0
mov r0, r12
adds r0, 0x3
diff --git a/asm/battle_controller_linkpartner.s b/asm/battle_controller_linkpartner.s
index 954abc779..acbc40a76 100644
--- a/asm/battle_controller_linkpartner.s
+++ b/asm/battle_controller_linkpartner.s
@@ -4030,7 +4030,7 @@ _0814D2CE:
ldrb r0, [r0]
lsls r0, 8
orrs r6, r0
- ldr r0, =gUnknown_02038432
+ ldr r0, =gAnimMoveTurn
mov r8, r0
mov r0, r12
adds r0, 0x3
diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s
index c32ba8938..aef7dd7ec 100644
--- a/asm/battle_controller_opponent.s
+++ b/asm/battle_controller_opponent.s
@@ -4871,7 +4871,7 @@ _08061C8A:
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
- ldr r5, =gUnknown_02038432
+ ldr r5, =gAnimMoveTurn
mov r1, r12
adds r1, 0x3
adds r2, r1
diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s
index a4dcf0a52..aaf4ec9ba 100644
--- a/asm/battle_controller_player.s
+++ b/asm/battle_controller_player.s
@@ -8134,7 +8134,7 @@ _0805BCBE:
ldrb r0, [r0]
lsls r0, 8
orrs r6, r0
- ldr r0, =gUnknown_02038432
+ ldr r0, =gAnimMoveTurn
mov r8, r0
mov r0, r12
adds r0, 0x3
diff --git a/asm/battle_controller_player_partner.s b/asm/battle_controller_player_partner.s
index 8da3eac54..90ceaf291 100644
--- a/asm/battle_controller_player_partner.s
+++ b/asm/battle_controller_player_partner.s
@@ -4652,7 +4652,7 @@ _081BD7A2:
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
- ldr r5, =gUnknown_02038432
+ ldr r5, =gAnimMoveTurn
mov r1, r12
adds r1, 0x3
adds r2, r1
diff --git a/asm/battle_controller_recorded_opponent.s b/asm/battle_controller_recorded_opponent.s
index b52aafcea..bdfe7e721 100644
--- a/asm/battle_controller_recorded_opponent.s
+++ b/asm/battle_controller_recorded_opponent.s
@@ -4408,7 +4408,7 @@ _08188BE6:
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
- ldr r5, =gUnknown_02038432
+ ldr r5, =gAnimMoveTurn
mov r1, r12
adds r1, 0x3
adds r2, r1
diff --git a/asm/battle_controller_recorded_player.s b/asm/battle_controller_recorded_player.s
index 6b2710b8e..9a1c7b9f9 100644
--- a/asm/battle_controller_recorded_player.s
+++ b/asm/battle_controller_recorded_player.s
@@ -4508,7 +4508,7 @@ _0818C192:
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
- ldr r5, =gUnknown_02038432
+ ldr r5, =gAnimMoveTurn
mov r1, r12
adds r1, 0x3
adds r2, r1
diff --git a/asm/battle_controller_wally.s b/asm/battle_controller_wally.s
index 2a45ccb3e..cf059a5ba 100644
--- a/asm/battle_controller_wally.s
+++ b/asm/battle_controller_wally.s
@@ -3316,7 +3316,7 @@ sub_816A144: @ 816A144
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
- ldr r5, =gUnknown_02038432
+ ldr r5, =gAnimMoveTurn
mov r1, r12
adds r1, 0x3
adds r2, r1
diff --git a/asm/contest.s b/asm/contest.s
index 51dc80176..480a5a664 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -76,8 +76,8 @@ sub_80D7678: @ 80D7678
.pool
thumb_func_end sub_80D7678
- thumb_func_start sub_80D7724
-sub_80D7724: @ 80D7724
+ thumb_func_start LoadContestBgAfterMoveAnim
+LoadContestBgAfterMoveAnim: @ 80D7724
push {r4,r5,lr}
ldr r0, =gUnknown_08C17AB0
movs r1, 0xC0
@@ -119,7 +119,7 @@ _080D775E:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80D7724
+ thumb_func_end LoadContestBgAfterMoveAnim
thumb_func_start sub_80D779C
sub_80D779C: @ 80D779C
@@ -13662,7 +13662,7 @@ _080DE8FA:
cmp r0, 0x7
bne _080DE99C
_080DE910:
- ldr r1, =gUnknown_02038432
+ ldr r1, =gAnimMoveTurn
movs r0, 0
b _080DE9A0
.pool
@@ -13715,12 +13715,12 @@ _080DE978:
bne _080DE99C
movs r0, 0x2
strb r0, [r2]
- ldr r0, =gUnknown_02038432
+ ldr r0, =gAnimMoveTurn
strb r1, [r0]
b _080DE9A2
.pool
_080DE99C:
- ldr r1, =gUnknown_02038432
+ ldr r1, =gAnimMoveTurn
movs r0, 0x1
_080DE9A0:
strb r0, [r1]
diff --git a/data/battle_anims.s b/data/battle_anims.s
index 5cbdee7cf..39d5df006 100644
--- a/data/battle_anims.s
+++ b/data/battle_anims.s
@@ -902,7 +902,7 @@ gUnknown_08525CB4:: @ 8525CB4
obj_pal 0x08c1bf5c, 0x2830
.align 2
-gUnknown_08525D54:: @ 8525D54
+gBattleAnimBackgroundTable:: @ 8525D54
.4byte 0x08c1c844, 0x08c1ce3c, 0x08c1ce5c
.4byte 0x08c1c844, 0x08c1ce3c, 0x08c1ce5c
.4byte 0x08d90074, 0x08d90d3c, 0x08d90d58
@@ -944,33 +944,33 @@ sScriptCmdTable:: @ 8525E98
.4byte ScriptCmd_end
.4byte ScriptCmd_playse
.4byte ScriptCmd_monbg
- .4byte ma0B_0807324C
- .4byte ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument
- .4byte ma0D_reset_BLDCNT_and_BLDALPHA
- .4byte ma0E_call
- .4byte sub_80A4D00
- .4byte ma10_080736AC
- .4byte ma11_if_else
- .4byte ma12_cond_if
- .4byte ma13_goto
- .4byte ma14_load_background
- .4byte ma15_load_battle_screen_elements
- .4byte ma16_wait_for_battle_screen_elements_s2
- .4byte sub_80A5124
- .4byte ma18_load_background_probably
- .4byte ma19_08073BC8
- .4byte ma1A_8073C00
+ .4byte ScriptCmd_clearmonbg
+ .4byte ScriptCmd_setalpha
+ .4byte ScriptCmd_blendoff
+ .4byte ScriptCmd_call
+ .4byte ScriptCmd_return
+ .4byte ScriptCmd_setarg
+ .4byte ScriptCmd_choosetwoturnanim
+ .4byte ScriptCmd_jumpifmoveturn
+ .4byte ScriptCmd_jump
+ .4byte ScriptCmd_fadetobg
+ .4byte ScriptCmd_restorebg
+ .4byte ScriptCmd_waitbgfadeout
+ .4byte ScriptCmd_waitbgfadein
+ .4byte ScriptCmd_changebg
+ .4byte ScriptCmd_playsewithpan
+ .4byte ScriptCmd_setpan
.4byte ma1B_8073C2C
.4byte ma1C_8073ED0
.4byte ma1D_08073FB4
- .4byte ma1E_set_BLDCNT
+ .4byte ScriptCmd_setbldcnt
.4byte sub_80A57F8
.4byte ma20_wait_for_something
.4byte ma21_08074164
- .4byte sub_80A4A18
- .4byte ma23_8073484
+ .4byte ScriptCmd_monbg_22
+ .4byte ScriptCmd_clearmonbg_23
.4byte sub_80A5944
- .4byte sub_80A4E5C
+ .4byte ScriptCmd_fadetobgfromset
.4byte sub_80A5508
.4byte sub_80A559C
.4byte sub_80A5984
diff --git a/include/battle.h b/include/battle.h
index f00b7f9ab..a9243182e 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -826,6 +826,7 @@ void LoadBattleTextboxAndBackground(void);
void LoadBattleEntryBackground(void);
void ApplyPlayerChosenFrameToBattleMenu(void);
bool8 LoadChosenBattleElement(u8 caseId);
+void LoadFittingBackgroundForBattle(void);
void task00_0800F6FC(u8 taskId);
// battle_5
@@ -890,6 +891,8 @@ struct BattleHealthboxInfo
u8 flag_x1 : 1;
u8 flag_x2 : 1;
u8 flag_x4 : 1;
+ u8 flag_x8 : 1;
+ u8 flag_x10 : 1;
u8 field_1;
u8 field_2;
u8 field_3;
diff --git a/include/battle_anim.h b/include/battle_anim.h
index 8ba25f9c5..86eb20aec 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -30,6 +30,13 @@ struct UnknownAnimStruct2
u16 unkC;
};
+struct BattleAnimBackground
+{
+ void *image;
+ void *palette;
+ void *tilemap;
+};
+
void ClearBattleAnimationVars(void);
void DoMoveAnim(u16 move);
void DoBattleAnim(const u8 *const animsTable[], u16 tableId, bool8 isMoveAnim);
@@ -38,8 +45,11 @@ void DestroyAnimVisualTask(u8 taskId);
void DestroyAnimSoundTask(u8 taskId);
bool8 IsAnimBankSpriteVisible(u8 bank);
void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible);
-
bool8 IsContest(void);
+s8 BattleAnimAdjustPanning(s8 pan);
+s8 BattleAnimAdjustPanning2(s8 pan);
+s16 sub_80A52EC(s16 a);
+s16 sub_80A5314(s16 a, s16 b, s16 c);
// battle_anim_80FE840.s
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value);
diff --git a/include/contest.h b/include/contest.h
index 7635e7358..7dcde7da2 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -36,5 +36,6 @@ struct ContestResources
extern struct ContestResources *gContestResources;
bool8 IsSpeciesNotUnown(u16 species);
+void LoadContestBgAfterMoveAnim(void);
#endif //GUARD_CONTEST_H
diff --git a/src/battle_anim.c b/src/battle_anim.c
index 6c316157f..7a2b7902c 100644
--- a/src/battle_anim.c
+++ b/src/battle_anim.c
@@ -13,13 +13,18 @@
#include "bg.h"
#include "gpu_regs.h"
#include "palette.h"
+#include "main.h"
// sprites start at 10000 and thus must be subtracted of 10000 to account for the true index.
#define GET_TRUE_SPRITE_INDEX(i) ((i - 10000))
+
#define SCRIPT_READ_32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24)
-#define SCRIPT_READ_32_(ptr) (((ptr)[0]) + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
#define SCRIPT_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8))
+#define SCRIPT_READ_PTR(ptr) ((const u8*)(SCRIPT_READ_32(ptr)))
+
#define SCRIPT_READ_16_(ptr) ((ptr)[0] + ((ptr)[1] << 8))
+#define SCRIPT_READ_32_(ptr) (((ptr)[0]) + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
+#define SCRIPT_READ_PTR_(ptr) ((const u8*)(SCRIPT_READ_32_(ptr)))
#define ANIM_SPRITE_INDEX_COUNT 8
#define ANIM_ARGS_COUNT 8
@@ -56,7 +61,7 @@ EWRAM_DATA u16 gWeatherMoveAnim = 0;
EWRAM_DATA s16 gBattleAnimArgs[ANIM_ARGS_COUNT] = {0};
EWRAM_DATA u16 gSoundAnimFramesToWait = 0;
EWRAM_DATA u8 gMonAnimTaskIdArray[2] = {0};
-EWRAM_DATA u8 gUnknown_02038432 = 0;
+EWRAM_DATA u8 gAnimMoveTurn = 0;
EWRAM_DATA u8 gUnknown_02038433 = 0;
EWRAM_DATA u16 gAnimMoveIndex = 0; // set but unused.
EWRAM_DATA u8 gAnimBankAttacker = 0;
@@ -69,6 +74,7 @@ extern const u16 gUnknown_082C8D64[];
extern const u8 * const gBattleAnims_Moves[];
extern const struct CompressedSpriteSheet gBattleAnimPicTable[];
extern const struct CompressedSpritePalette gBattleAnimPaletteTable[];
+extern const struct BattleAnimBackground gBattleAnimBackgroundTable[];
extern void sub_80A8278(void); // rom_80A5C6C.s
extern void sub_80A6B30(struct UnknownAnimStruct2*); // rom_80A5C6C.s
@@ -76,11 +82,18 @@ extern void sub_80A6B90(struct UnknownAnimStruct2*, u32 arg1); // rom_80A5C6C.s
extern u8 sub_80A82E4(u8 bank); // rom_80A5C6C.s
extern u8 sub_80A5C6C(u8 bank, u8 attributeId); // rom_80A5C6C.s
extern bool8 AnimBankSpriteExists(u8 bank); // rom_80A5C6C.s
+extern void sub_80A6C68(u8 arg0); // rom_80A5C6C.s
+extern u8 sub_80A6D94(void);
// this file's functions
void RunAnimScriptCommand(void);
void task_pA_ma0A_obj_to_bg_pal(u8 taskId);
void sub_80A46A0(void);
+void sub_80A4980(u8 taskId);
+void sub_80A4BB0(u8 taskId);
+void Task_FadeToBg(u8 taskId);
+void LoadDefaultBg(void);
+void LoadMoveBg(u16 bgId);
void ClearBattleAnimationVars(void)
{
@@ -105,7 +118,7 @@ void ClearBattleAnimationVars(void)
gMonAnimTaskIdArray[0] = 0xFF;
gMonAnimTaskIdArray[1] = 0xFF;
- gUnknown_02038432 = 0;
+ gAnimMoveTurn = 0;
gUnknown_02038433 = 0;
gAnimMoveIndex = 0;
gAnimBankAttacker = 0;
@@ -648,3 +661,624 @@ void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible)
}
}
+/*static*/ void sub_80A46A0(void)
+{
+ s32 i, j;
+ struct UnknownAnimStruct2 unknownStruct;
+ u16 *ptr;
+
+ if (IsSpeciesNotUnown(gContestResources->field_18->field_0))
+ {
+ sub_80A6B30(&unknownStruct);
+ ptr = unknownStruct.unk4;
+ for (i = 0; i < 8; i++)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ u16 temp = ptr[j + i * 32];
+
+ ptr[j + i * 32] = ptr[7 - j + i * 32];
+ ptr[7 - j + i * 32] = temp;
+ }
+ }
+ for (i = 0; i < 8; i++)
+ {
+ for (j = 0; j < 8; j++)
+ ptr[j + i * 32] ^= 0x400;
+ }
+ }
+}
+
+void sub_80A4720(u16 a, u16 *b, u32 c, u8 d)
+{
+ s32 i, j;
+ s32 var;
+
+ if (d == 0)
+ var = 32;
+ else
+ var = 64;
+ a <<= 12;
+ for (i = 0; i < var; i++)
+ {
+ for (j = 0; j < 32; j++)
+ b[j + i * 32] = ((b[j + i * 32] & 0xFFF) | a) + c;
+ }
+}
+
+void sub_80A477C(bool8 to_BG2)
+{
+ struct UnknownAnimStruct2 unknownStruct;
+ sub_80A6B30(&unknownStruct);
+
+ if (!to_BG2 || IsContest())
+ {
+ sub_80A6C68(1);
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ }
+ else
+ {
+ sub_80A6C68(2);
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 0;
+ }
+}
+
+/*static*/ void task_pA_ma0A_obj_to_bg_pal(u8 taskId)
+{
+ u8 r4;
+ u8 r6;
+ s16 r3;
+ s16 r2;
+ struct UnknownAnimStruct2 unknownStruct;
+
+ r4 = gTasks[taskId].data[0];
+ r6 = gTasks[taskId].data[6];
+ sub_80A6B30(&unknownStruct);
+ r3 = gTasks[taskId].data[1] - (gSprites[r4].pos1.x + gSprites[r4].pos2.x);
+ r2 = gTasks[taskId].data[2] - (gSprites[r4].pos1.y + gSprites[r4].pos2.y);
+
+ if (gTasks[taskId].data[5] == 0)
+ {
+ u16 *src;
+ u16 *dst;
+
+ gBattle_BG1_X = r3 + gTasks[taskId].data[3];
+ gBattle_BG1_Y = r2 + gTasks[taskId].data[4];
+ src = gPlttBufferFaded + 0x100 + r6 * 16;
+ dst = gPlttBufferFaded + 0x100 + unknownStruct.unk8 * 16 - 256;
+ CpuCopy32(src, dst, 0x20);
+ }
+ else
+ {
+ u16 *src;
+ u16 *dst;
+
+ gBattle_BG2_X = r3 + gTasks[taskId].data[3];
+ gBattle_BG2_Y = r2 + gTasks[taskId].data[4];
+ src = gPlttBufferFaded + 0x100 + r6 * 16;
+ dst = gPlttBufferFaded + 0x100 - 112;
+ CpuCopy32(src, dst, 0x20);
+ }
+}
+
+/*static*/ void ScriptCmd_clearmonbg(void)
+{
+ u8 animBankId;
+ u8 bank;
+ u8 taskId;
+
+ gBattleAnimScriptPtr++;
+ animBankId = gBattleAnimScriptPtr[0];
+
+ if (animBankId == ANIM_BANK_ATTACKER)
+ animBankId = ANIM_BANK_ATK_PARTNER;
+ else if (animBankId == ANIM_BANK_TARGET)
+ animBankId = ANIM_BANK_DEF_PARTNER;
+
+ if (animBankId == ANIM_BANK_ATTACKER || animBankId == ANIM_BANK_ATK_PARTNER)
+ bank = gAnimBankAttacker;
+ else
+ bank = gAnimBankTarget;
+
+ if (gMonAnimTaskIdArray[0] != 0xFF)
+ gSprites[gBankSpriteIds[bank]].invisible = 0;
+ if (animBankId > 1 && gMonAnimTaskIdArray[1] != 0xFF)
+ gSprites[gBankSpriteIds[bank ^ BIT_MON]].invisible = 0;
+ else
+ animBankId = 0;
+
+ taskId = CreateTask(sub_80A4980, 5);
+ gTasks[taskId].data[0] = animBankId;
+ gTasks[taskId].data[2] = bank;
+
+ gBattleAnimScriptPtr++;
+}
+
+/*static*/ void sub_80A4980(u8 taskId)
+{
+ gTasks[taskId].data[1]++;
+ if (gTasks[taskId].data[1] != 1)
+ {
+ u8 to_BG2;
+ u8 identity = GetBankIdentity(gTasks[taskId].data[2]);
+ if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest())
+ to_BG2 = FALSE;
+ else
+ to_BG2 = TRUE;
+
+ if (gMonAnimTaskIdArray[0] != 0xFF)
+ {
+ sub_80A477C(to_BG2);
+ DestroyTask(gMonAnimTaskIdArray[0]);
+ gMonAnimTaskIdArray[0] = 0xFF;
+ }
+ if (gTasks[taskId].data[0] > 1)
+ {
+ sub_80A477C(to_BG2 ^ 1);
+ DestroyTask(gMonAnimTaskIdArray[1]);
+ gMonAnimTaskIdArray[1] = 0xFF;
+ }
+ DestroyTask(taskId);
+ }
+}
+
+/*static*/ void ScriptCmd_monbg_22(void)
+{
+ bool8 toBG_2;
+ u8 bank;
+ u8 animBankId;
+
+ gBattleAnimScriptPtr++;
+
+ animBankId = gBattleAnimScriptPtr[0];
+
+ if (animBankId == ANIM_BANK_ATTACKER)
+ animBankId = ANIM_BANK_ATK_PARTNER;
+ else if (animBankId == ANIM_BANK_TARGET)
+ animBankId = ANIM_BANK_DEF_PARTNER;
+
+ if (animBankId == ANIM_BANK_ATTACKER || animBankId == ANIM_BANK_ATK_PARTNER)
+ bank = gAnimBankAttacker;
+ else
+ bank = gAnimBankTarget;
+
+ if (IsAnimBankSpriteVisible(bank))
+ {
+ u8 identity = GetBankIdentity(bank);
+ if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest())
+ toBG_2 = FALSE;
+ else
+ toBG_2 = TRUE;
+
+ sub_80A438C(bank, toBG_2, FALSE);
+ }
+
+ bank ^= BIT_MON;
+ if (animBankId > 1 && IsAnimBankSpriteVisible(bank))
+ {
+ u8 identity = GetBankIdentity(bank);
+ if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest())
+ toBG_2 = FALSE;
+ else
+ toBG_2 = TRUE;
+
+ sub_80A438C(bank, toBG_2, FALSE);
+ }
+
+ gBattleAnimScriptPtr++;
+}
+
+/*static*/ void ScriptCmd_clearmonbg_23(void)
+{
+ u8 animBankId;
+ u8 bank;
+ u8 taskId;
+
+ gBattleAnimScriptPtr++;
+ animBankId = gBattleAnimScriptPtr[0];
+
+ if (animBankId == ANIM_BANK_ATTACKER)
+ animBankId = ANIM_BANK_ATK_PARTNER;
+ else if (animBankId == ANIM_BANK_TARGET)
+ animBankId = ANIM_BANK_DEF_PARTNER;
+
+ if (animBankId == ANIM_BANK_ATTACKER || animBankId == ANIM_BANK_ATK_PARTNER)
+ bank = gAnimBankAttacker;
+ else
+ bank = gAnimBankTarget;
+
+ if (IsAnimBankSpriteVisible(bank))
+ gSprites[gBankSpriteIds[bank]].invisible = 0;
+ if (animBankId > 1 && IsAnimBankSpriteVisible(bank ^ BIT_MON))
+ gSprites[gBankSpriteIds[bank ^ BIT_MON]].invisible = 0;
+ else
+ animBankId = 0;
+
+ taskId = CreateTask(sub_80A4BB0, 5);
+ gTasks[taskId].data[0] = animBankId;
+ gTasks[taskId].data[2] = bank;
+
+ gBattleAnimScriptPtr++;
+}
+
+/*static*/ void sub_80A4BB0(u8 taskId)
+{
+ gTasks[taskId].data[1]++;
+ if (gTasks[taskId].data[1] != 1)
+ {
+ bool8 toBG_2;
+ u8 bank = gTasks[taskId].data[2];
+ u8 identity = GetBankIdentity(bank);
+ if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest())
+ toBG_2 = FALSE;
+ else
+ toBG_2 = TRUE;
+
+ if (IsAnimBankSpriteVisible(bank))
+ sub_80A477C(toBG_2);
+ if (gTasks[taskId].data[0] > 1 && IsAnimBankSpriteVisible(bank ^ BIT_MON))
+ sub_80A477C(toBG_2 ^ 1);
+
+ DestroyTask(taskId);
+ }
+}
+
+#undef t1_MONBG_BANK
+#undef t1_MON_IN_BG2
+#undef t1_CREATE_ANOTHER_TASK
+#undef t1_IS_SECONDMON_BG
+
+#undef t2_BANK_SPRITE_ID
+#undef t2_MON_IN_BG2
+#undef t2_MONBG_BANK
+
+/*static*/ void ScriptCmd_setalpha(void)
+{
+ u16 half1, half2;
+
+ gBattleAnimScriptPtr++;
+ half1 = *(gBattleAnimScriptPtr++);
+ half2 = *(gBattleAnimScriptPtr++) << 8;
+ SetGpuReg(REG_OFFSET_BLDCNT, 0x3F40);
+ SetGpuReg(REG_OFFSET_BLDALPHA, half1 | half2);
+}
+
+/*static*/ void ScriptCmd_setbldcnt(void)
+{
+ u16 half1, half2;
+
+ gBattleAnimScriptPtr++;
+ half1 = *(gBattleAnimScriptPtr++);
+ half2 = *(gBattleAnimScriptPtr++) << 8;
+ SetGpuReg(REG_OFFSET_BLDCNT, half1 | half2);
+}
+
+/*static*/ void ScriptCmd_blendoff(void)
+{
+ gBattleAnimScriptPtr++;
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+}
+
+/*static*/ void ScriptCmd_call(void)
+{
+ gBattleAnimScriptPtr++;
+ gBattleAnimScriptRetAddr = gBattleAnimScriptPtr + 4;
+ gBattleAnimScriptPtr = SCRIPT_READ_PTR_(gBattleAnimScriptPtr);
+}
+
+/*static*/ void ScriptCmd_return(void)
+{
+ gBattleAnimScriptPtr = gBattleAnimScriptRetAddr;
+}
+
+/*static*/ void ScriptCmd_setarg(void)
+{
+ const u8 *addr = gBattleAnimScriptPtr;
+ u16 value;
+ u8 argId;
+
+ gBattleAnimScriptPtr++;
+ argId = gBattleAnimScriptPtr[0];
+ gBattleAnimScriptPtr++;
+ value = SCRIPT_READ_16(gBattleAnimScriptPtr);
+ gBattleAnimScriptPtr = addr + 4;
+ gBattleAnimArgs[argId] = value;
+}
+
+/*static*/ void ScriptCmd_choosetwoturnanim(void)
+{
+ gBattleAnimScriptPtr++;
+ if (gAnimMoveTurn & 1)
+ gBattleAnimScriptPtr += 4;
+ gBattleAnimScriptPtr = SCRIPT_READ_PTR_(gBattleAnimScriptPtr);
+}
+
+/*static*/ void ScriptCmd_jumpifmoveturn(void)
+{
+ u8 toCheck;
+ gBattleAnimScriptPtr++;
+ toCheck = gBattleAnimScriptPtr[0];
+ gBattleAnimScriptPtr++;
+
+ if (toCheck == gAnimMoveTurn)
+ gBattleAnimScriptPtr = SCRIPT_READ_PTR_(gBattleAnimScriptPtr);
+ else
+ gBattleAnimScriptPtr += 4;
+}
+
+/*static*/ void ScriptCmd_jump(void)
+{
+ gBattleAnimScriptPtr++;
+ gBattleAnimScriptPtr = SCRIPT_READ_PTR_(gBattleAnimScriptPtr);
+}
+
+// Uses of this function that rely on a TRUE return are expecting inBattle to not be ticked as defined in contest behavior. As a result, if misused, this function cannot reliably discern between field and contest status and could result in undefined behavior.
+bool8 IsContest(void)
+{
+ if (!gMain.inBattle)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+#define tBackgroundId data[0]
+#define tState data[10]
+
+/*static*/ void ScriptCmd_fadetobg(void)
+{
+ u8 backgroundId;
+ u8 taskId;
+
+ gBattleAnimScriptPtr++;
+ backgroundId = gBattleAnimScriptPtr[0];
+ gBattleAnimScriptPtr++;
+ taskId = CreateTask(Task_FadeToBg, 5);
+ gTasks[taskId].tBackgroundId = backgroundId;
+ gUnknown_02038433 = 1;
+}
+
+/*static*/ void ScriptCmd_fadetobgfromset(void)
+{
+ u8 bg1, bg2, bg3;
+ u8 taskId;
+
+ gBattleAnimScriptPtr++;
+ bg1 = gBattleAnimScriptPtr[0];
+ bg2 = gBattleAnimScriptPtr[1];
+ bg3 = gBattleAnimScriptPtr[2];
+ gBattleAnimScriptPtr += 3;
+ taskId = CreateTask(Task_FadeToBg, 5);
+
+ if (IsContest())
+ gTasks[taskId].tBackgroundId = bg3;
+ else if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER)
+ gTasks[taskId].tBackgroundId = bg2;
+ else
+ gTasks[taskId].tBackgroundId = bg1;
+
+ gUnknown_02038433 = 1;
+}
+
+/*static*/ void Task_FadeToBg(u8 taskId)
+{
+ if (gTasks[taskId].tState == 0)
+ {
+ BeginHardwarePaletteFade(0xE8, 0, 0, 16, 0);
+ gTasks[taskId].tState++;
+ return;
+ }
+ if (gPaletteFade.active)
+ return;
+ if (gTasks[taskId].tState == 1)
+ {
+ gTasks[taskId].tState++;
+ gUnknown_02038433 = 2;
+ }
+ else if (gTasks[taskId].tState == 2)
+ {
+ s16 bgId = (u16)gTasks[taskId].tBackgroundId;
+
+ if (bgId == -1)
+ LoadDefaultBg();
+ else
+ LoadMoveBg(bgId);
+
+ BeginHardwarePaletteFade(0xE8, 0, 16, 0, 1);
+ gTasks[taskId].tState++;
+ return;
+ }
+ if (gPaletteFade.active)
+ return;
+ if (gTasks[taskId].tState == 3)
+ {
+ DestroyTask(taskId);
+ gUnknown_02038433 = 0;
+ }
+}
+
+extern u8 gDecompressionBuffer[];
+
+/*static*/ void LoadMoveBg(u16 bgId)
+{
+ if (IsContest())
+ {
+ void *tilemap = gBattleAnimBackgroundTable[bgId].tilemap;
+ void *dmaSrc;
+ void *dmaDest;
+
+ LZDecompressWram(tilemap, gDecompressionBuffer);
+ sub_80A4720(sub_80A6D94(), (void*)(gDecompressionBuffer), 0x100, 0);
+ dmaSrc = gDecompressionBuffer;
+ dmaDest = (void *)(VRAM + 0xD000);
+ DmaCopy32(3, dmaSrc, dmaDest, 0x800);
+ LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(VRAM + 0x2000));
+ LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, sub_80A6D94() * 16, 32);
+ }
+ else
+ {
+ LZDecompressVram(gBattleAnimBackgroundTable[bgId].tilemap, (void *)(VRAM + 0xD000));
+ LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(VRAM + 0x8000));
+ LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, 32, 32);
+ }
+}
+
+/*static*/ void LoadDefaultBg(void)
+{
+ if (IsContest())
+ LoadContestBgAfterMoveAnim();
+ else
+ LoadFittingBackgroundForBattle();
+}
+
+/*static*/ void ScriptCmd_restorebg(void)
+{
+ u8 taskId;
+
+ gBattleAnimScriptPtr++;
+ taskId = CreateTask(Task_FadeToBg, 5);
+ gTasks[taskId].data[0] = 0xFFFF;
+ gUnknown_02038433 = 1;
+}
+
+/*static*/ void ScriptCmd_waitbgfadeout(void)
+{
+ if (gUnknown_02038433 == 2)
+ {
+ gBattleAnimScriptPtr++;
+ gAnimFramesToWait = 0;
+ }
+ else
+ {
+ gAnimFramesToWait = 1;
+ }
+}
+
+/*static*/ void ScriptCmd_waitbgfadein(void)
+{
+ if (gUnknown_02038433 == 0)
+ {
+ gBattleAnimScriptPtr++;
+ gAnimFramesToWait = 0;
+ }
+ else
+ {
+ gAnimFramesToWait = 1;
+ }
+}
+
+/*static*/ void ScriptCmd_changebg(void)
+{
+ gBattleAnimScriptPtr++;
+ LoadMoveBg(gBattleAnimScriptPtr[0]);
+ gBattleAnimScriptPtr++;
+}
+
+s8 BattleAnimAdjustPanning(s8 pan)
+{
+ if (!IsContest() && gBattleSpritesDataPtr->healthBoxesData[gAnimBankAttacker].flag_x10)
+ {
+ if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER)
+ pan = 63;
+ else
+ pan = -64;
+ }
+ else if (IsContest())
+ {
+ if (gAnimBankAttacker != gAnimBankTarget || gAnimBankAttacker != 2 || pan != 63)
+ pan *= -1;
+ }
+ else if (GetBankSide(gAnimBankAttacker) == SIDE_PLAYER)
+ {
+ if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER)
+ {
+ if (pan == 63)
+ pan = -64;
+ else if (pan != -64)
+ pan *= -1;
+ }
+ }
+ else if (GetBankSide(gAnimBankTarget) == SIDE_OPPONENT)
+ {
+ if (pan == -64)
+ pan = 63;
+ }
+ else
+ {
+ pan *= -1;
+ }
+
+ if (pan > 63)
+ pan = 63;
+ else if (pan < -64)
+ pan = -64;
+
+ return pan;
+}
+
+s8 BattleAnimAdjustPanning2(s8 pan)
+{
+ if (!IsContest() && gBattleSpritesDataPtr->healthBoxesData[gAnimBankAttacker].flag_x10)
+ {
+ if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER)
+ pan = 63;
+ else
+ pan = -64;
+ }
+ else
+ {
+ if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER || IsContest())
+ pan = -pan;
+ }
+ return pan;
+}
+
+s16 sub_80A52EC(s16 a)
+{
+ s16 var = a;
+
+ if (var > 63)
+ var = 63;
+ else if (var < -64)
+ var = -64;
+
+ return var;
+}
+
+s16 sub_80A5314(s16 a, s16 b, s16 c)
+{
+ u16 var;
+
+ if (a < b)
+ var = ((c < 0) ? -c : c);
+ else if (a > b)
+ var = -((c < 0) ? -c : c);
+ else
+ var = 0;
+
+ return var;
+}
+
+/*static*/ void ScriptCmd_playsewithpan(void)
+{
+ u16 songId;
+ s8 pan;
+
+ gBattleAnimScriptPtr++;
+ songId = SCRIPT_READ_16(gBattleAnimScriptPtr);
+ pan = gBattleAnimScriptPtr[2];
+ PlaySE12WithPanning(songId, BattleAnimAdjustPanning(pan));
+ gBattleAnimScriptPtr += 3;
+}
+
+/*static*/ void ScriptCmd_setpan(void)
+{
+ s8 pan;
+
+ gBattleAnimScriptPtr++;
+ pan = gBattleAnimScriptPtr[0];
+ SE12PanpotControl(BattleAnimAdjustPanning(pan));
+ gBattleAnimScriptPtr++;
+}