summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_anim_812C144.s2314
-rw-r--r--asm/ghost.s1105
2 files changed, 0 insertions, 3419 deletions
diff --git a/asm/battle_anim_812C144.s b/asm/battle_anim_812C144.s
index 6345d9d3b..ec7a7211f 100644
--- a/asm/battle_anim_812C144.s
+++ b/asm/battle_anim_812C144.s
@@ -5,2320 +5,6 @@
.text
- thumb_func_start sub_812D7E8
-sub_812D7E8: @ 812D7E8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _0812D818 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r3, r1, 0
- cmp r0, 0x4
- bls _0812D80E
- b _0812DAFA
-_0812D80E:
- lsls r0, 2
- ldr r1, _0812D81C @ =_0812D820
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812D818: .4byte gTasks
-_0812D81C: .4byte _0812D820
- .align 2, 0
-_0812D820:
- .4byte _0812D834
- .4byte _0812D888
- .4byte _0812D8C4
- .4byte _0812DA48
- .4byte _0812DA84
-_0812D834:
- ldr r1, _0812D850 @ =REG_MOSAIC
- movs r0, 0
- strh r0, [r1]
- ldr r0, _0812D854 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBattlerPosition_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812D85C
- ldr r0, _0812D858 @ =REG_BG1CNT
- b _0812D85E
- .align 2, 0
-_0812D850: .4byte REG_MOSAIC
-_0812D854: .4byte gAnimBankAttacker
-_0812D858: .4byte REG_BG1CNT
-_0812D85C:
- ldr r0, _0812D87C @ =REG_BG2CNT
-_0812D85E:
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0812D880 @ =gTasks
- mov r6, r8
- lsls r1, r6, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812D884 @ =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r1, 0x1C]
- b _0812DA2A
- .align 2, 0
-_0812D87C: .4byte REG_BG2CNT
-_0812D880: .4byte gTasks
-_0812D884: .4byte gBattleAnimArgs
-_0812D888:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0xC]
- adds r1, r0, 0x1
- strh r1, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bgt _0812D8A2
- b _0812DAFA
-_0812D8A2:
- movs r0, 0
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- ldrh r2, [r4, 0xA]
- ldr r1, _0812D8C0 @ =REG_MOSAIC
- lsls r0, r2, 4
- orrs r0, r2
- strh r0, [r1]
- cmp r2, 0xF
- beq _0812D8BC
- b _0812DAFA
-_0812D8BC:
- b _0812DA78
- .align 2, 0
-_0812D8C0: .4byte REG_MOSAIC
-_0812D8C4:
- ldr r5, _0812D8F4 @ =gAnimBankAttacker
- ldrb r0, [r5]
- ldr r1, _0812D8F8 @ =gAnimBankTarget
- ldrb r1, [r1]
- mov r2, r8
- lsls r4, r2, 2
- adds r2, r4, r2
- lsls r2, 3
- adds r2, r3
- ldrb r2, [r2, 0x1C]
- bl sub_8031FC4
- ldrb r1, [r5]
- mov r0, sp
- bl sub_8078954
- bl IsContest
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- beq _0812D8FC
- movs r1, 0
- b _0812D906
- .align 2, 0
-_0812D8F4: .4byte gAnimBankAttacker
-_0812D8F8: .4byte gAnimBankTarget
-_0812D8FC:
- ldrb r0, [r5]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r1, r0, 24
-_0812D906:
- ldr r0, _0812D9CC @ =gUnknown_081FAF4C
- lsls r1, 2
- adds r1, r0
- ldr r2, _0812D9D0 @ =gBattleMonForms
- ldr r0, _0812D9D4 @ =gAnimBankAttacker
- ldrb r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 11
- ldr r1, [r1]
- adds r1, r0
- ldr r2, [sp]
- ldr r0, _0812D9D8 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0812D9DC @ =0x84000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0812DA20
- ldr r5, _0812D9E0 @ =gSharedMem + 0x19348
- ldrh r0, [r5]
- bl IsSpeciesNotUnown
- adds r4, r0, 0
- ldrh r0, [r5, 0x2]
- bl IsSpeciesNotUnown
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _0812D9A2
- ldr r6, [sp, 0x4]
- movs r5, 0
- movs r0, 0x7
- mov r12, r0
- movs r7, 0
-_0812D956:
- movs r4, 0
- adds r3, r7, r6
- mov r1, r12
- lsls r0, r1, 1
- adds r2, r0, r6
-_0812D960:
- 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 _0812D960
- movs r2, 0x20
- add r12, r2
- adds r7, 0x40
- adds r5, 0x1
- cmp r5, 0x7
- ble _0812D956
- movs r5, 0
- movs r0, 0x80
- lsls r0, 3
- adds r3, r0, 0
-_0812D986:
- adds r2, r5, 0x1
- lsls r0, r5, 6
- adds r1, r0, r6
- movs r4, 0x7
-_0812D98E:
- ldrh r0, [r1]
- eors r0, r3
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _0812D98E
- adds r5, r2, 0
- cmp r5, 0x7
- ble _0812D986
-_0812D9A2:
- ldr r0, _0812D9E0 @ =gSharedMem + 0x19348
- ldrh r0, [r0, 0x2]
- bl IsSpeciesNotUnown
- lsls r0, 24
- cmp r0, 0
- beq _0812D9F0
- ldr r3, _0812D9E4 @ =gSprites
- ldr r4, _0812D9E8 @ =gBankSpriteIds
- ldr r2, _0812D9D4 @ =gAnimBankAttacker
- ldrb r0, [r2]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, _0812D9EC @ =gSpriteAffineAnimTable_81E7C18
- b _0812DA0A
- .align 2, 0
-_0812D9CC: .4byte gUnknown_081FAF4C
-_0812D9D0: .4byte gBattleMonForms
-_0812D9D4: .4byte gAnimBankAttacker
-_0812D9D8: .4byte 0x040000d4
-_0812D9DC: .4byte 0x84000200
-_0812D9E0: .4byte gSharedMem + 0x19348
-_0812D9E4: .4byte gSprites
-_0812D9E8: .4byte gBankSpriteIds
-_0812D9EC: .4byte gSpriteAffineAnimTable_81E7C18
-_0812D9F0:
- ldr r3, _0812DA34 @ =gSprites
- ldr r4, _0812DA38 @ =gBankSpriteIds
- ldr r2, _0812DA3C @ =gAnimBankAttacker
- ldrb r0, [r2]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, _0812DA40 @ =gSpriteAffineAnimTable_81E7BEC
-_0812DA0A:
- str r1, [r0]
- ldrb r0, [r2]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- bl StartSpriteAffineAnim
-_0812DA20:
- ldr r0, _0812DA44 @ =gTasks
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
-_0812DA2A:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0812DAFA
- .align 2, 0
-_0812DA34: .4byte gSprites
-_0812DA38: .4byte gBankSpriteIds
-_0812DA3C: .4byte gAnimBankAttacker
-_0812DA40: .4byte gSpriteAffineAnimTable_81E7BEC
-_0812DA44: .4byte gTasks
-_0812DA48:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0xC]
- adds r1, r0, 0x1
- strh r1, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812DAFA
- movs r0, 0
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- ldrh r2, [r4, 0xA]
- ldr r1, _0812DA80 @ =REG_MOSAIC
- lsls r0, r2, 4
- orrs r0, r2
- strh r0, [r1]
- cmp r2, 0
- bne _0812DAFA
-_0812DA78:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812DAFA
- .align 2, 0
-_0812DA80: .4byte REG_MOSAIC
-_0812DA84:
- ldr r1, _0812DAA0 @ =REG_MOSAIC
- movs r0, 0
- strh r0, [r1]
- ldr r0, _0812DAA4 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBattlerPosition_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812DAAC
- ldr r2, _0812DAA8 @ =REG_BG1CNT
- b _0812DAAE
- .align 2, 0
-_0812DAA0: .4byte REG_MOSAIC
-_0812DAA4: .4byte gAnimBankAttacker
-_0812DAA8: .4byte REG_BG1CNT
-_0812DAAC:
- ldr r2, _0812DB08 @ =REG_BG2CNT
-_0812DAAE:
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0812DAF4
- ldr r4, _0812DB0C @ =gAnimBankAttacker
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812DAF4
- ldr r0, _0812DB10 @ =gTasks
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r6, 0x1C
- ldrsh r0, [r1, r6]
- cmp r0, 0
- bne _0812DAF4
- ldrb r0, [r4]
- lsls r1, r0, 2
- ldr r2, _0812DB14 @ =gSharedMem + 0x17800
- adds r1, r2
- ldrh r1, [r1, 0x2]
- bl sub_8032984
-_0812DAF4:
- mov r0, r8
- bl DestroyAnimVisualTask
-_0812DAFA:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812DB08: .4byte REG_BG2CNT
-_0812DB0C: .4byte gAnimBankAttacker
-_0812DB10: .4byte gTasks
-_0812DB14: .4byte gSharedMem + 0x17800
- thumb_func_end sub_812D7E8
-
- thumb_func_start c3_80DFBE4
-c3_80DFBE4: @ 812DB18
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0812DB48 @ =gBattleAnimArgs
- ldr r3, _0812DB4C @ =gSprites
- ldr r2, _0812DB50 @ =gBankSpriteIds
- ldr r1, _0812DB54 @ =gAnimBankAttacker
- ldrb r1, [r1]
- adds r1, r2
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- adds r1, 0x3E
- ldrb r1, [r1]
- lsls r1, 29
- lsrs r1, 31
- strh r1, [r4, 0xE]
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812DB48: .4byte gBattleAnimArgs
-_0812DB4C: .4byte gSprites
-_0812DB50: .4byte gBankSpriteIds
-_0812DB54: .4byte gAnimBankAttacker
- thumb_func_end c3_80DFBE4
-
- thumb_func_start sub_812DB58
-sub_812DB58: @ 812DB58
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0812DB7C @ =gAnimBankAttacker
- ldrb r0, [r0]
- ldr r1, _0812DB80 @ =gAnimBankTarget
- ldrb r1, [r1]
- movs r2, 0x1
- bl sub_8031FC4
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812DB7C: .4byte gAnimBankAttacker
-_0812DB80: .4byte gAnimBankTarget
- thumb_func_end sub_812DB58
-
- thumb_func_start sub_812DB84
-sub_812DB84: @ 812DB84
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _0812DBB4 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _0812DBA8
- b _0812DE80
-_0812DBA8:
- lsls r0, 2
- ldr r1, _0812DBB8 @ =_0812DBBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812DBB4: .4byte gTasks
-_0812DBB8: .4byte _0812DBBC
- .align 2, 0
-_0812DBBC:
- .4byte _0812DBD0
- .4byte _0812DCFC
- .4byte _0812DD4C
- .4byte _0812DDB6
- .4byte _0812DDEA
-_0812DBD0:
- ldr r1, _0812DC70 @ =REG_BLDCNT
- ldr r4, _0812DC74 @ =0x00003f42
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _0812DC78 @ =REG_BG1CNT
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0812DC12
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_0812DC12:
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0xC]
- ldr r2, _0812DC7C @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0812DC80 @ =0x85000400
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _0812DC84 @ =gUnknown_08D2AA98
- bl LZDecompressVram
- ldr r0, _0812DC88 @ =gUnknown_08D2A9E0
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _0812DC8C @ =gUnknown_08D2AA80
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0812DC9C
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
- ldr r1, _0812DC90 @ =gBattle_BG1_X
- ldr r2, _0812DC94 @ =0x0000ffc8
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0812DC98 @ =gBattle_BG1_Y
- strh r4, [r0]
- b _0812DCCE
- .align 2, 0
-_0812DC70: .4byte REG_BLDCNT
-_0812DC74: .4byte 0x00003f42
-_0812DC78: .4byte REG_BG1CNT
-_0812DC7C: .4byte 0x040000d4
-_0812DC80: .4byte 0x85000400
-_0812DC84: .4byte gUnknown_08D2AA98
-_0812DC88: .4byte gUnknown_08D2A9E0
-_0812DC8C: .4byte gUnknown_08D2AA80
-_0812DC90: .4byte gBattle_BG1_X
-_0812DC94: .4byte 0x0000ffc8
-_0812DC98: .4byte gBattle_BG1_Y
-_0812DC9C:
- ldr r0, _0812DCB4 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0812DCC0
- ldr r1, _0812DCB8 @ =gBattle_BG1_X
- ldr r4, _0812DCBC @ =0x0000ff79
- adds r0, r4, 0
- b _0812DCC6
- .align 2, 0
-_0812DCB4: .4byte gAnimBankAttacker
-_0812DCB8: .4byte gBattle_BG1_X
-_0812DCBC: .4byte 0x0000ff79
-_0812DCC0:
- ldr r1, _0812DCEC @ =gBattle_BG1_X
- ldr r2, _0812DCF0 @ =0x0000fff6
- adds r0, r2, 0
-_0812DCC6:
- strh r0, [r1]
- ldr r1, _0812DCF4 @ =gBattle_BG1_Y
- movs r0, 0
- strh r0, [r1]
-_0812DCCE:
- ldr r0, _0812DCF8 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812DCEC @ =gBattle_BG1_X
- ldrh r0, [r0]
- strh r0, [r1, 0x1C]
- ldr r0, _0812DCF4 @ =gBattle_BG1_Y
- ldrh r0, [r0]
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- b _0812DDD2
- .align 2, 0
-_0812DCEC: .4byte gBattle_BG1_X
-_0812DCF0: .4byte 0x0000fff6
-_0812DCF4: .4byte gBattle_BG1_Y
-_0812DCF8: .4byte gTasks
-_0812DCFC:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x10]
- adds r1, r0, 0x1
- strh r1, [r3, 0x10]
- lsls r0, 16
- cmp r0, 0
- bgt _0812DD12
- b _0812DE80
-_0812DD12:
- movs r0, 0
- strh r0, [r3, 0x10]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _0812DD28
- movs r0, 0xC
- strh r0, [r3, 0xA]
-_0812DD28:
- ldr r2, _0812DD48 @ =REG_BLDALPHA
- ldrh r1, [r3, 0xA]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- movs r4, 0xA
- ldrsh r0, [r3, r4]
- cmp r0, 0xC
- beq _0812DD40
- b _0812DE80
-_0812DD40:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _0812DE80
- .align 2, 0
-_0812DD48: .4byte REG_BLDALPHA
-_0812DD4C:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- cmp r0, 0
- bge _0812DD64
- movs r0, 0
- strh r0, [r3, 0xA]
-_0812DD64:
- ldr r2, _0812DDA4 @ =REG_BLDALPHA
- ldrh r1, [r3, 0xA]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _0812DD7C
- b _0812DE80
-_0812DD7C:
- ldr r2, _0812DDA8 @ =gBattle_BG1_X
- ldr r1, _0812DDAC @ =gUnknown_084025C0
- movs r4, 0xC
- ldrsh r0, [r3, r4]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r3, 0x1C]
- adds r0, r1
- strh r0, [r2]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0812DDB0
- strh r0, [r3, 0x8]
- b _0812DE80
- .align 2, 0
-_0812DDA4: .4byte REG_BLDALPHA
-_0812DDA8: .4byte gBattle_BG1_X
-_0812DDAC: .4byte gUnknown_084025C0
-_0812DDB0:
- movs r0, 0x3
- strh r0, [r3, 0x8]
- b _0812DE80
-_0812DDB6:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0xE]
- adds r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0812DE80
- movs r0, 0
- strh r0, [r1, 0xE]
- movs r0, 0x1
-_0812DDD2:
- strh r0, [r1, 0x8]
- movs r0, 0x40
- negs r0, r0
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xE4
- bl PlaySE12WithPanning
- b _0812DE80
-_0812DDEA:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- add r5, sp, 0xC
- movs r6, 0
- ldr r1, _0812DE90 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r8, r5
- ldr r0, _0812DE94 @ =0x85000400
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_0812DE0C:
- str r6, [sp, 0xC]
- mov r0, r8
- str r0, [r1]
- str r2, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _0812DE0C
- str r6, [sp, 0xC]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0xC]
- ldr r0, _0812DE90 @ =0x040000d4
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0812DE98 @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0812DE5A
- ldr r2, _0812DE9C @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0812DE5A:
- ldr r2, _0812DE9C @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812DEA0 @ =gBattle_BG1_X
- strh r4, [r0]
- ldr r0, _0812DEA4 @ =gBattle_BG1_Y
- strh r4, [r0]
- ldr r0, _0812DEA8 @ =REG_BLDCNT
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, r7, 0
- bl DestroyAnimVisualTask
-_0812DE80:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812DE90: .4byte 0x040000d4
-_0812DE94: .4byte 0x85000400
-_0812DE98: .4byte 0x85000200
-_0812DE9C: .4byte REG_BG1CNT
-_0812DEA0: .4byte gBattle_BG1_X
-_0812DEA4: .4byte gBattle_BG1_Y
-_0812DEA8: .4byte REG_BLDCNT
- thumb_func_end sub_812DB84
-
- thumb_func_start sub_812DEAC
-sub_812DEAC: @ 812DEAC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- bl Random
- lsls r0, 16
- movs r1, 0xFC
- lsls r1, 14
- ands r1, r0
- lsrs r5, r1, 16
- adds r1, r5, 0
- cmp r1, 0x1F
- ble _0812DED6
- movs r0, 0x20
- subs r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
-_0812DED6:
- ldr r4, _0812DFD0 @ =gAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r5
- strh r0, [r7, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r7, 0x22]
- ldr r1, _0812DFD4 @ =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r7, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r7, 0x32]
- ldr r4, _0812DFD8 @ =gBattleAnimSpriteTemplate_84025EC
- movs r0, 0x20
- ldrsh r1, [r7, r0]
- movs r0, 0x22
- ldrsh r2, [r7, r0]
- adds r5, r7, 0
- adds r5, 0x43
- ldrb r3, [r5]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- bl CreateSprite
- mov r9, r0
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r0, 0x20
- ldrsh r1, [r7, r0]
- movs r0, 0x22
- ldrsh r2, [r7, r0]
- ldrb r3, [r5]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- bl CreateSprite
- mov r8, r0
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r0, r9
- lsls r2, r0, 4
- add r2, r9
- lsls r2, 2
- ldr r1, _0812DFDC @ =gSprites
- mov r10, r1
- adds r5, r2, r1
- adds r0, r5, 0
- movs r1, 0x1
- str r2, [sp]
- bl StartSpriteAnim
- mov r0, r8
- lsls r6, r0, 4
- add r6, r8
- lsls r6, 2
- mov r1, r10
- adds r4, r6, r1
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r1, _0812DFD4 @ =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x32]
- ldrh r0, [r1]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x32]
- ldr r0, _0812DFE0 @ =0x0000ffff
- strh r0, [r5, 0x3C]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r4, 0x3C]
- adds r5, 0x3E
- ldrb r0, [r5]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5]
- adds r4, 0x3E
- ldrb r0, [r4]
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x1C
- add r10, r0
- ldr r2, [sp]
- add r2, r10
- ldr r0, _0812DFE4 @ =sub_812E0F8
- str r0, [r2]
- add r6, r10
- str r0, [r6]
- mov r1, r9
- strh r1, [r7, 0x3A]
- mov r0, r8
- strh r0, [r7, 0x3C]
- ldr r0, _0812DFE8 @ =sub_812DFEC
- str r0, [r7, 0x1C]
- 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
-_0812DFD0: .4byte gAnimBankAttacker
-_0812DFD4: .4byte gBattleAnimArgs
-_0812DFD8: .4byte gBattleAnimSpriteTemplate_84025EC
-_0812DFDC: .4byte gSprites
-_0812DFE0: .4byte 0x0000ffff
-_0812DFE4: .4byte sub_812E0F8
-_0812DFE8: .4byte sub_812DFEC
- thumb_func_end sub_812DEAC
-
- thumb_func_start sub_812DFEC
-sub_812DFEC: @ 812DFEC
- push {lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x32]
- ldrh r0, [r3, 0x34]
- adds r2, r0
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r3, 0x26]
- subs r1, r0
- strh r1, [r3, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r3, 0x34]
- movs r2, 0x36
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _0812E03A
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x8
- negs r1, r1
- cmp r0, r1
- bge _0812E03A
- ldr r2, _0812E094 @ =gSprites
- movs r0, 0x3A
- ldrsh r1, [r3, 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]
- ldrh r0, [r3, 0x36]
- adds r0, 0x1
- strh r0, [r3, 0x36]
-_0812E03A:
- movs r1, 0x36
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- bne _0812E06E
- movs r2, 0x26
- ldrsh r1, [r3, r2]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _0812E06E
- ldr r2, _0812E094 @ =gSprites
- movs r0, 0x3C
- ldrsh r1, [r3, 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]
- ldrh r0, [r3, 0x36]
- adds r0, 0x1
- strh r0, [r3, 0x36]
-_0812E06E:
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0812E090
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812E098 @ =sub_812E09C
- str r0, [r3, 0x1C]
-_0812E090:
- pop {r0}
- bx r0
- .align 2, 0
-_0812E094: .4byte gSprites
-_0812E098: .4byte sub_812E09C
- thumb_func_end sub_812DFEC
-
- thumb_func_start sub_812E09C
-sub_812E09C: @ 812E09C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _0812E0F0 @ =gSprites
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r6, r5, 0
- adds r6, 0x1C
- adds r0, r3, r6
- ldr r2, [r0]
- ldr r0, _0812E0F4 @ =SpriteCallbackDummy
- cmp r2, r0
- bne _0812E0E8
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldr r0, [r1]
- cmp r0, r2
- bne _0812E0E8
- adds r0, r3, r5
- bl DestroySprite
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0812E0E8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E0F0: .4byte gSprites
-_0812E0F4: .4byte SpriteCallbackDummy
- thumb_func_end sub_812E09C
-
- thumb_func_start sub_812E0F8
-sub_812E0F8: @ 812E0F8
- push {lr}
- adds r3, r0, 0
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0812E144
- ldrh r2, [r3, 0x32]
- ldrh r1, [r3, 0x34]
- adds r2, r1
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r3, 0x26]
- subs r0, r1
- strh r0, [r3, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r3, 0x34]
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0812E144
- mov r1, r12
- ldrb r0, [r1]
- movs r1, 0x4
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldr r0, _0812E148 @ =SpriteCallbackDummy
- str r0, [r3, 0x1C]
-_0812E144:
- pop {r0}
- bx r0
- .align 2, 0
-_0812E148: .4byte SpriteCallbackDummy
- thumb_func_end sub_812E0F8
-
- thumb_func_start sub_812E14C
-sub_812E14C: @ 812E14C
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0812E174 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _0812E16A
- b _0812E476
-_0812E16A:
- lsls r0, 2
- ldr r1, _0812E178 @ =_0812E17C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812E174: .4byte gTasks
-_0812E178: .4byte _0812E17C
- .align 2, 0
-_0812E17C:
- .4byte _0812E194
- .4byte _0812E300
- .4byte _0812E388
- .4byte _0812E3BC
- .4byte _0812E3E8
- .4byte _0812E420
-_0812E194:
- ldr r1, _0812E230 @ =REG_BLDCNT
- ldr r3, _0812E234 @ =0x00003f42
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0812E238 @ =0x00000d03
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _0812E23C @ =REG_BG1CNT
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0812E1D4
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_0812E1D4:
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0xC]
- ldr r2, _0812E240 @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0812E244 @ =0x85000400
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _0812E248 @ =gUnknown_08D2AA98
- bl LZDecompressVram
- ldr r0, _0812E24C @ =gUnknown_08D2A9E0
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _0812E250 @ =gUnknown_08D2AA80
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0812E260
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
- ldr r1, _0812E254 @ =gBattle_BG1_X
- ldr r3, _0812E258 @ =0x0000ffc8
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0812E25C @ =gBattle_BG1_Y
- strh r4, [r0]
- b _0812E2D2
- .align 2, 0
-_0812E230: .4byte REG_BLDCNT
-_0812E234: .4byte 0x00003f42
-_0812E238: .4byte 0x00000d03
-_0812E23C: .4byte REG_BG1CNT
-_0812E240: .4byte 0x040000d4
-_0812E244: .4byte 0x85000400
-_0812E248: .4byte gUnknown_08D2AA98
-_0812E24C: .4byte gUnknown_08D2A9E0
-_0812E250: .4byte gUnknown_08D2AA80
-_0812E254: .4byte gBattle_BG1_X
-_0812E258: .4byte 0x0000ffc8
-_0812E25C: .4byte gBattle_BG1_Y
-_0812E260:
- ldr r0, _0812E2A0 @ =gAnimBankTarget
- ldrb r0, [r0]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812E2B4
- ldr r1, _0812E2A4 @ =gBattle_BG1_X
- cmp r4, 0x1
- bne _0812E284
- ldr r2, _0812E2A8 @ =0x0000ff65
- adds r0, r2, 0
- strh r0, [r1]
-_0812E284:
- cmp r4, 0x3
- bne _0812E28E
- ldr r3, _0812E2AC @ =0x0000ff8d
- adds r0, r3, 0
- strh r0, [r1]
-_0812E28E:
- cmp r4, 0
- bne _0812E296
- movs r0, 0xE
- strh r0, [r1]
-_0812E296:
- cmp r4, 0x2
- bne _0812E2CC
- ldr r1, _0812E2A4 @ =gBattle_BG1_X
- ldr r2, _0812E2B0 @ =0x0000ffec
- b _0812E2C8
- .align 2, 0
-_0812E2A0: .4byte gAnimBankTarget
-_0812E2A4: .4byte gBattle_BG1_X
-_0812E2A8: .4byte 0x0000ff65
-_0812E2AC: .4byte 0x0000ff8d
-_0812E2B0: .4byte 0x0000ffec
-_0812E2B4:
- cmp r4, 0x1
- bne _0812E2C0
- ldr r1, _0812E2EC @ =gBattle_BG1_X
- ldr r3, _0812E2F0 @ =0x0000ff79
- adds r0, r3, 0
- strh r0, [r1]
-_0812E2C0:
- cmp r4, 0
- bne _0812E2CC
- ldr r1, _0812E2EC @ =gBattle_BG1_X
- ldr r2, _0812E2F4 @ =0x0000fff6
-_0812E2C8:
- adds r0, r2, 0
- strh r0, [r1]
-_0812E2CC:
- ldr r1, _0812E2F8 @ =gBattle_BG1_Y
- movs r0, 0
- strh r0, [r1]
-_0812E2D2:
- ldr r0, _0812E2FC @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812E2EC @ =gBattle_BG1_X
- ldrh r0, [r0]
- strh r0, [r1, 0x1C]
- ldr r0, _0812E2F8 @ =gBattle_BG1_Y
- ldrh r0, [r0]
- strh r0, [r1, 0x1E]
- b _0812E380
- .align 2, 0
-_0812E2EC: .4byte gBattle_BG1_X
-_0812E2F0: .4byte 0x0000ff79
-_0812E2F4: .4byte 0x0000fff6
-_0812E2F8: .4byte gBattle_BG1_Y
-_0812E2FC: .4byte gTasks
-_0812E300:
- ldr r1, _0812E334 @ =gTasks
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r0, 0
- strh r0, [r5, 0xE]
- ldr r0, _0812E338 @ =gAnimBankTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812E344
- ldr r2, _0812E33C @ =gBattle_BG1_X
- ldr r1, _0812E340 @ =gUnknown_08402604
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r5, [r5, 0x1C]
- adds r0, r5
- b _0812E356
- .align 2, 0
-_0812E334: .4byte gTasks
-_0812E338: .4byte gAnimBankTarget
-_0812E33C: .4byte gBattle_BG1_X
-_0812E340: .4byte gUnknown_08402604
-_0812E344:
- ldr r2, _0812E374 @ =gBattle_BG1_X
- ldr r1, _0812E378 @ =gUnknown_08402604
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrh r0, [r5, 0x1C]
- subs r0, r1
-_0812E356:
- strh r0, [r2]
- ldr r0, _0812E37C @ =gTasks
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0812E380
- strh r0, [r1, 0x8]
- b _0812E476
- .align 2, 0
-_0812E374: .4byte gBattle_BG1_X
-_0812E378: .4byte gUnknown_08402604
-_0812E37C: .4byte gTasks
-_0812E380:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0812E476
-_0812E388:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _0812E3A2
- movs r0, 0x5
- strh r0, [r4, 0xA]
-_0812E3A2:
- ldr r2, _0812E3B8 @ =REG_BLDALPHA
- ldrh r0, [r4, 0xA]
- lsls r0, 8
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bne _0812E476
- b _0812E3DC
- .align 2, 0
-_0812E3B8: .4byte REG_BLDALPHA
-_0812E3BC:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r1, [r4, 0xE]
- adds r1, 0x1
- strh r1, [r4, 0xE]
- lsls r1, 16
- asrs r1, 16
- ldr r2, _0812E3E4 @ =gUnknown_08402608
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- adds r0, r2
- ldrb r0, [r0]
- cmp r1, r0
- ble _0812E476
-_0812E3DC:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812E476
- .align 2, 0
-_0812E3E4: .4byte gUnknown_08402608
-_0812E3E8:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- ble _0812E402
- movs r0, 0xD
- strh r0, [r4, 0xA]
-_0812E402:
- ldr r2, _0812E41C @ =REG_BLDALPHA
- ldrh r0, [r4, 0xA]
- lsls r0, 8
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0xD
- bne _0812E476
- movs r0, 0x1
- strh r0, [r4, 0x8]
- b _0812E476
- .align 2, 0
-_0812E41C: .4byte REG_BLDALPHA
-_0812E420:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0xC]
- ldr r1, _0812E480 @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _0812E484 @ =0x85000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0812E450
- ldr r2, _0812E488 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0812E450:
- ldr r2, _0812E488 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812E48C @ =gBattle_BG1_X
- strh r4, [r0]
- ldr r0, _0812E490 @ =gBattle_BG1_Y
- strh r4, [r0]
- ldr r0, _0812E494 @ =REG_BLDCNT
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_0812E476:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E480: .4byte 0x040000d4
-_0812E484: .4byte 0x85000200
-_0812E488: .4byte REG_BG1CNT
-_0812E48C: .4byte gBattle_BG1_X
-_0812E490: .4byte gBattle_BG1_Y
-_0812E494: .4byte REG_BLDCNT
- thumb_func_end sub_812E14C
-
- thumb_func_start sub_812E498
-sub_812E498: @ 812E498
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0812E4D0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812E4D8
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812E4D4 @ =gUnknown_08402610
- adds r0, r4, 0
- bl sub_80798F4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812E4EA
- .align 2, 0
-_0812E4D0: .4byte gTasks
-_0812E4D4: .4byte gUnknown_08402610
-_0812E4D8:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812E4EA
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_0812E4EA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812E498
-
- thumb_func_start sub_812E4F0
-sub_812E4F0: @ 812E4F0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _0812E50E
- adds r0, r4, 0
- movs r1, 0
- bl InitAnimSpritePos
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0812E562
-_0812E50E:
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- cmp r1, 0x14
- ble _0812E562
- ldrh r0, [r4, 0x30]
- adds r0, 0xA0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- adds r0, 0x80
- strh r0, [r4, 0x32]
- ldr r0, _0812E53C @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0812E540
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- b _0812E546
- .align 2, 0
-_0812E53C: .4byte gAnimBankAttacker
-_0812E540:
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
-_0812E546:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- ble _0812E562
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0812E562:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812E4F0
-
- thumb_func_start sub_812E568
-sub_812E568: @ 812E568
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _0812E58C @ =gTasks
- adds r4, r0, r1
- ldr r5, _0812E590 @ =gBattleAnimArgs
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0812E594
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _0812E628
- .align 2, 0
-_0812E58C: .4byte gTasks
-_0812E590: .4byte gBattleAnimArgs
-_0812E594:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bge _0812E5A0
- movs r0, 0
- strh r0, [r5, 0x4]
-_0812E5A0:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0x2
- ble _0812E5AC
- movs r0, 0x2
- strh r0, [r5, 0x4]
-_0812E5AC:
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- lsls r1, 1
- movs r0, 0x8
- subs r0, r1
- strh r0, [r4, 0xE]
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- lsls r0, 7
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0x10]
- ldrh r0, [r5, 0x4]
- adds r0, 0x2
- strh r0, [r4, 0x12]
- ldrh r0, [r5, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x14]
- ldrb r0, [r5]
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0812E5F8
- ldr r0, _0812E5F4 @ =gAnimBankAttacker
- b _0812E5FA
- .align 2, 0
-_0812E5F4: .4byte gAnimBankAttacker
-_0812E5F8:
- ldr r0, _0812E630 @ =gAnimBankTarget
-_0812E5FA:
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812E618
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x12]
-_0812E618:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8078E70
- ldr r0, _0812E634 @ =sub_812E638
- str r0, [r4]
-_0812E628:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E630: .4byte gAnimBankTarget
-_0812E634: .4byte sub_812E638
- thumb_func_end sub_812E568
-
- thumb_func_start sub_812E638
-sub_812E638: @ 812E638
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0812E65C @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r6, [r4, r0]
- cmp r6, 0x1
- beq _0812E6C0
- cmp r6, 0x1
- bgt _0812E660
- cmp r6, 0
- beq _0812E66C
- b _0812E798
- .align 2, 0
-_0812E65C: .4byte gTasks
-_0812E660:
- cmp r6, 0x2
- beq _0812E718
- cmp r6, 0x3
- bne _0812E66A
- b _0812E788
-_0812E66A:
- b _0812E798
-_0812E66C:
- ldr r2, _0812E6BC @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0xC]
- ldrh r1, [r4, 0x10]
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _0812E798
- strh r6, [r4, 0xA]
- b _0812E780
- .align 2, 0
-_0812E6BC: .4byte gSprites
-_0812E6C0:
- ldr r2, _0812E714 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- ldrh r2, [r4, 0x12]
- subs r1, r2
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0xC]
- adds r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- lsls r0, 1
- cmp r1, r0
- blt _0812E798
- movs r0, 0
- strh r0, [r4, 0xA]
- b _0812E780
- .align 2, 0
-_0812E714: .4byte gSprites
-_0812E718:
- ldr r2, _0812E77C @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- movs r5, 0
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0xC]
- ldrh r1, [r4, 0x10]
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _0812E798
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0812E780
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0x8]
- b _0812E798
- .align 2, 0
-_0812E77C: .4byte gSprites
-_0812E780:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812E798
-_0812E788:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_0812E798:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812E638
-
- thumb_func_start sub_812E7A0
-sub_812E7A0: @ 812E7A0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0812E7BC @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0812E7C4
- strh r0, [r4, 0x20]
- ldr r1, _0812E7C0 @ =gBattleAnimArgs
- ldrh r0, [r1]
- b _0812E7CE
- .align 2, 0
-_0812E7BC: .4byte gAnimBankAttacker
-_0812E7C0: .4byte gBattleAnimArgs
-_0812E7C4:
- movs r0, 0xF0
- strh r0, [r4, 0x20]
- ldr r1, _0812E7E8 @ =gBattleAnimArgs
- ldrh r0, [r1]
- subs r0, 0x1E
-_0812E7CE:
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldrb r1, [r1, 0x2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _0812E7EC @ =sub_812E7F0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E7E8: .4byte gBattleAnimArgs
-_0812E7EC: .4byte sub_812E7F0
- thumb_func_end sub_812E7A0
-
- thumb_func_start sub_812E7F0
-sub_812E7F0: @ 812E7F0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x3
- strh r0, [r4, 0x2E]
- ldr r0, _0812E830 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0812E834
- ldrh r1, [r4, 0x20]
- adds r1, 0x5
- strh r1, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xF0
- ble _0812E822
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0812E822:
- ldrh r1, [r4, 0x2E]
- movs r0, 0xFF
- ands r0, r1
- movs r1, 0x10
- bl Sin
- b _0812E858
- .align 2, 0
-_0812E830: .4byte gAnimBankAttacker
-_0812E834:
- ldrh r1, [r4, 0x20]
- subs r1, 0x5
- strh r1, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- lsls r1, 16
- cmp r1, 0
- bge _0812E84C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0812E84C:
- ldrh r1, [r4, 0x2E]
- movs r0, 0xFF
- ands r0, r1
- movs r1, 0x10
- bl Cos
-_0812E858:
- strh r0, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812E7F0
-
- thumb_func_start sub_812E860
-sub_812E860: @ 812E860
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _0812E8A8 @ =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r0, 0x20
- strh r0, [r4, 0x20]
- movs r0, 0x40
- strh r0, [r4, 0x22]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r4, 0x24]
- ldr r0, _0812E8AC @ =gBattleAnimArgs
- ldrb r0, [r0]
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- movs r1, 0
- bl sub_8078E70
- ldr r0, _0812E8B0 @ =sub_812E8B4
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E8A8: .4byte gTasks
-_0812E8AC: .4byte gBattleAnimArgs
-_0812E8B0: .4byte sub_812E8B4
- thumb_func_end sub_812E860
-
- thumb_func_start sub_812E8B4
-sub_812E8B4: @ 812E8B4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0812E8E0 @ =gTasks
- adds r7, r0, r1
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- mov r8, r0
- cmp r0, 0x1
- beq _0812E950
- cmp r0, 0x1
- bgt _0812E8E4
- cmp r0, 0
- beq _0812E8EC
- b _0812E9CA
- .align 2, 0
-_0812E8E0: .4byte gTasks
-_0812E8E4:
- mov r2, r8
- cmp r2, 0x2
- beq _0812E9B8
- b _0812E9CA
-_0812E8EC:
- movs r3, 0x80
- lsls r3, 2
- adds r0, r3, 0
- ldrh r1, [r7, 0xC]
- adds r2, r0, r1
- strh r2, [r7, 0xC]
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r3, [r7, 0x24]
- mov r8, r3
- movs r3, 0x24
- ldrsh r1, [r7, r3]
- cmp r0, r1
- blt _0812E9CA
- mov r0, r8
- subs r5, r0, r2
- lsls r5, 16
- asrs r5, 16
- adds r6, r1, 0
- lsls r6, 1
- adds r0, r5, 0
- adds r1, r6, 0
- bl __divsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- asrs r4, 16
- movs r1, 0x1
- ands r4, r1
- cmp r4, 0
- bne _0812E944
- lsls r0, 16
- asrs r0, 16
- mov r2, r8
- subs r0, r2, r0
- b _0812E9A2
-_0812E944:
- lsls r0, 16
- asrs r0, 16
- mov r3, r8
- subs r0, r3
- strh r0, [r7, 0xC]
- b _0812E9CA
-_0812E950:
- ldr r1, _0812E9A8 @ =0xfffffe00
- adds r0, r1, 0
- ldrh r2, [r7, 0xC]
- adds r1, r0, r2
- strh r1, [r7, 0xC]
- movs r3, 0xC
- ldrsh r0, [r7, r3]
- movs r2, 0x24
- ldrsh r6, [r7, r2]
- cmn r0, r6
- bgt _0812E9CA
- ldrh r3, [r7, 0x24]
- mov r9, r3
- mov r0, r9
- subs r4, r0, r1
- lsls r4, 16
- asrs r4, 16
- lsls r6, 1
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 16
- lsrs r2, r0, 16
- mov r1, r8
- ands r1, r5
- lsls r0, r1, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _0812E9AC
- lsls r0, r2, 16
- asrs r0, 16
- mov r2, r9
- subs r0, r2
-_0812E9A2:
- strh r0, [r7, 0xC]
- strh r1, [r7, 0x8]
- b _0812E9CA
- .align 2, 0
-_0812E9A8: .4byte 0xfffffe00
-_0812E9AC:
- lsls r0, r2, 16
- asrs r0, 16
- mov r3, r9
- subs r0, r3, r0
- strh r0, [r7, 0xC]
- b _0812E9CA
-_0812E9B8:
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _0812EA40
-_0812E9CA:
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r7, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldr r2, _0812EA38 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- movs r2, 0xC
- ldrsh r0, [r7, r2]
- cmp r0, 0
- bge _0812E9FE
- adds r0, 0x3F
-_0812E9FE:
- asrs r0, 6
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrh r0, [r7, 0xA]
- adds r0, 0x1
- strh r0, [r7, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0812EA40
- ldrh r1, [r7, 0x20]
- movs r3, 0x20
- ldrsh r0, [r7, r3]
- cmp r0, 0
- beq _0812EA3C
- subs r0, r1, 0x1
- strh r0, [r7, 0x20]
- ldrh r0, [r7, 0x24]
- ldrh r1, [r7, 0x22]
- subs r0, r1
- strh r0, [r7, 0x24]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _0812EA40
- movs r0, 0x10
- strh r0, [r7, 0x24]
- b _0812EA40
- .align 2, 0
-_0812EA38: .4byte gSprites
-_0812EA3C:
- movs r0, 0x2
- strh r0, [r7, 0x8]
-_0812EA40:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812E8B4
-
thumb_func_start sub_812EA4C
sub_812EA4C: @ 812EA4C
push {r4-r6,lr}
diff --git a/asm/ghost.s b/asm/ghost.s
index 59671ec7f..36487210d 100644
--- a/asm/ghost.s
+++ b/asm/ghost.s
@@ -7,1111 +7,6 @@
@ ghost
- thumb_func_start sub_80DDB6C
-sub_80DDB6C: @ 80DDB6C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl InitAnimSpritePos
- ldr r0, _080DDBC8 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, _080DDBCC @ =gAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_8078BD4
- ldr r0, _080DDBD0 @ =sub_80DDBD8
- str r0, [r4, 0x1C]
- movs r0, 0x10
- strh r0, [r4, 0x3A]
- ldr r1, _080DDBD4 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x3A]
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDBC8: .4byte gBattleAnimArgs
-_080DDBCC: .4byte gAnimBankTarget
-_080DDBD0: .4byte sub_80DDBD8
-_080DDBD4: .4byte REG_BLDCNT
- thumb_func_end sub_80DDB6C
-
- thumb_func_start sub_80DDBD8
-sub_80DDBD8: @ 80DDBD8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80DDCC8
- adds r0, r4, 0
- bl TranslateAnimSpriteByDeltas
- lsls r0, 24
- cmp r0, 0
- beq _080DDBF8
- ldr r0, _080DDBF4 @ =sub_80DDC4C
- str r0, [r4, 0x1C]
- b _080DDC42
- .align 2, 0
-_080DDBF4: .4byte sub_80DDC4C
-_080DDBF8:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x38]
- adds r0, r2, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x38]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _080DDC30
- cmp r2, 0xC4
- ble _080DDC42
-_080DDC30:
- lsls r0, 16
- cmp r0, 0
- ble _080DDC42
- ldr r0, _080DDC48 @ =gUnknown_0202F7D2
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0xC4
- bl PlaySE12WithPanning
-_080DDC42:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDC48: .4byte gUnknown_0202F7D2
- thumb_func_end sub_80DDBD8
-
- thumb_func_start sub_80DDC4C
-sub_80DDC4C: @ 80DDC4C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl TranslateAnimSpriteByDeltas
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x38]
- adds r0, r2, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x38]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _080DDC92
- cmp r2, 0xC4
- ble _080DDC9E
-_080DDC92:
- lsls r0, 16
- cmp r0, 0
- ble _080DDC9E
- movs r0, 0xC4
- bl PlaySE
-_080DDC9E:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DDCBC
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080DDCB8 @ =sub_807861C
- str r0, [r4, 0x1C]
- b _080DDCC2
- .align 2, 0
-_080DDCB8: .4byte sub_807861C
-_080DDCBC:
- adds r0, r4, 0
- bl sub_80DDCC8
-_080DDCC2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DDC4C
-
- thumb_func_start sub_80DDCC8
-sub_80DDCC8: @ 80DDCC8
- push {r4,lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x3A]
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- cmp r0, 0xFF
- ble _080DDCEC
- adds r0, r2, 0x1
- strh r0, [r3, 0x3A]
- lsls r0, 16
- ldr r1, _080DDCE8 @ =0x010d0000
- cmp r0, r1
- bne _080DDD4C
- movs r0, 0
- b _080DDD4A
- .align 2, 0
-_080DDCE8: .4byte 0x010d0000
-_080DDCEC:
- ldrh r1, [r3, 0x3C]
- adds r4, r1, 0x1
- strh r4, [r3, 0x3C]
- movs r0, 0xFF
- ands r0, r1
- cmp r0, 0
- bne _080DDD4C
- ldr r1, _080DDD10 @ =0xffffff00
- ands r1, r4
- strh r1, [r3, 0x3C]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080DDD14
- adds r0, r2, 0x1
- b _080DDD16
- .align 2, 0
-_080DDD10: .4byte 0xffffff00
-_080DDD14:
- subs r0, r2, 0x1
-_080DDD16:
- strh r0, [r3, 0x3A]
- ldr r2, _080DDD54 @ =REG_BLDALPHA
- ldrh r1, [r3, 0x3A]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- movs r2, 0x3A
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _080DDD32
- cmp r0, 0x10
- bne _080DDD3E
-_080DDD32:
- ldrh r0, [r3, 0x3C]
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- eors r0, r1
- strh r0, [r3, 0x3C]
-_080DDD3E:
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080DDD4C
- movs r0, 0x80
- lsls r0, 1
-_080DDD4A:
- strh r0, [r3, 0x3A]
-_080DDD4C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDD54: .4byte REG_BLDALPHA
- thumb_func_end sub_80DDCC8
-
- thumb_func_start sub_80DDD58
-sub_80DDD58: @ 80DDD58
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r1, _080DDD74 @ =sub_80DDD78
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDD74: .4byte sub_80DDD78
- thumb_func_end sub_80DDD58
-
- thumb_func_start sub_80DDD78
-sub_80DDD78: @ 80DDD78
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x41
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x82
- bhi _080DDDAC
- ldrb r0, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x8
- b _080DDDB6
-_080DDDAC:
- ldrb r0, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
-_080DDDB6:
- orrs r1, r0
- strb r1, [r4, 0x5]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x13
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x50
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3D
- bne _080DDDE8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080DDDE8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DDD78
-
- thumb_func_start sub_80DDDF0
-sub_80DDDF0: @ 80DDDF0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080DDE68 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078E70
- adds r0, r4, 0
- movs r1, 0x80
- movs r2, 0x80
- movs r3, 0
- bl obj_id_set_rotscale
- ldr r1, _080DDE6C @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldr r1, _080DDE70 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x80
- strh r1, [r0, 0x8]
- ldr r1, _080DDE74 @ =gBattleAnimArgs
- ldrh r1, [r1]
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- movs r1, 0x10
- strh r1, [r0, 0xE]
- ldr r1, _080DDE78 @ =sub_80DDE7C
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDE68: .4byte REG_BLDCNT
-_080DDE6C: .4byte gSprites
-_080DDE70: .4byte gTasks
-_080DDE74: .4byte gBattleAnimArgs
-_080DDE78: .4byte sub_80DDE7C
- thumb_func_end sub_80DDDF0
-
- thumb_func_start sub_80DDE7C
-sub_80DDE7C: @ 80DDE7C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DDEC4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080DDEBE
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0xC]
- adds r1, 0x1
- strh r1, [r3, 0xC]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- ldr r2, _080DDEC8 @ =REG_BLDALPHA
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- cmp r0, 0x9
- bne _080DDEBE
- ldr r0, _080DDECC @ =sub_80DDED0
- str r0, [r3]
-_080DDEBE:
- pop {r0}
- bx r0
- .align 2, 0
-_080DDEC4: .4byte gTasks
-_080DDEC8: .4byte REG_BLDALPHA
-_080DDECC: .4byte sub_80DDED0
- thumb_func_end sub_80DDE7C
-
- thumb_func_start sub_80DDED0
-sub_80DDED0: @ 80DDED0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080DDEF4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080DDEF8
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
- b _080DDF36
- .align 2, 0
-_080DDEF4: .4byte gTasks
-_080DDEF8:
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r1, r0, 24
- ldrh r0, [r4, 0x8]
- adds r0, 0x8
- movs r6, 0
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- bgt _080DDF22
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- adds r0, r1, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- b _080DDF36
-_080DDF22:
- adds r0, r1, 0
- bl sub_8078F40
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- ldr r0, _080DDF3C @ =REG_BLDCNT
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
-_080DDF36:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDF3C: .4byte REG_BLDCNT
- thumb_func_end sub_80DDED0
-
- thumb_func_start sub_80DDF40
-sub_80DDF40: @ 80DDF40
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r5, [r4, 0x20]
- ldrh r6, [r4, 0x22]
- ldr r0, _080DDFDC @ =gAnimBankAttacker
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- mov r9, r1
- strh r0, [r4, 0x20]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- mov r1, r9
- strh r1, [r4, 0x2E]
- ldr r2, _080DDFE0 @ =gBattleAnimArgs
- ldrh r1, [r2]
- strh r1, [r4, 0x30]
- ldrh r1, [r2, 0x2]
- strh r1, [r4, 0x32]
- ldrh r1, [r2, 0x4]
- strh r1, [r4, 0x34]
- ldrh r1, [r4, 0x20]
- lsls r1, 4
- strh r1, [r4, 0x36]
- lsls r0, 4
- strh r0, [r4, 0x38]
- lsls r5, 16
- asrs r5, 16
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- subs r5, r0
- lsls r5, 4
- movs r0, 0
- ldrsh r1, [r2, r0]
- lsls r1, 1
- adds r0, r5, 0
- str r2, [sp]
- bl __divsi3
- strh r0, [r4, 0x3A]
- lsls r6, 16
- asrs r6, 16
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- subs r6, r0
- lsls r6, 4
- ldr r2, [sp]
- movs r0, 0
- ldrsh r1, [r2, r0]
- lsls r1, 1
- adds r0, r6, 0
- bl __divsi3
- strh r0, [r4, 0x3C]
- ldr r0, _080DDFE4 @ =sub_80DDFE8
- str r0, [r4, 0x1C]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDFDC: .4byte gAnimBankAttacker
-_080DDFE0: .4byte gBattleAnimArgs
-_080DDFE4: .4byte sub_80DDFE8
- thumb_func_end sub_80DDF40
-
- thumb_func_start sub_80DDFE8
-sub_80DDFE8: @ 80DDFE8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080DE032
- cmp r0, 0x1
- bgt _080DDFFE
- cmp r0, 0
- beq _080DE008
- b _080DE0F6
-_080DDFFE:
- cmp r0, 0x2
- beq _080DE09C
- cmp r0, 0x3
- beq _080DE0F0
- b _080DE0F6
-_080DE008:
- ldrh r0, [r5, 0x3A]
- ldrh r2, [r5, 0x36]
- adds r0, r2
- strh r0, [r5, 0x36]
- ldrh r1, [r5, 0x3C]
- ldrh r2, [r5, 0x38]
- adds r1, r2
- strh r1, [r5, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r5, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r5, 0x22]
- ldrh r0, [r5, 0x30]
- subs r0, 0x1
- strh r0, [r5, 0x30]
- lsls r0, 16
- cmp r0, 0
- bgt _080DE0F6
- b _080DE0E2
-_080DE032:
- ldrh r0, [r5, 0x32]
- subs r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- cmp r0, 0
- bgt _080DE0F6
- ldr r4, _080DE098 @ =gAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x30]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x20]
- lsls r0, 4
- strh r0, [r5, 0x36]
- ldrh r0, [r5, 0x22]
- lsls r0, 4
- strh r0, [r5, 0x38]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- subs r0, r1
- lsls r0, 4
- movs r2, 0x34
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r5, 0x3A]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r2, 0x22
- ldrsh r1, [r5, r2]
- subs r0, r1
- lsls r0, 4
- movs r2, 0x34
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r5, 0x3C]
- b _080DE0E2
- .align 2, 0
-_080DE098: .4byte gAnimBankTarget
-_080DE09C:
- ldrh r0, [r5, 0x3A]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldrh r1, [r5, 0x3C]
- ldrh r2, [r5, 0x38]
- adds r1, r2
- strh r1, [r5, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r5, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r5, 0x22]
- ldrh r0, [r5, 0x34]
- subs r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- cmp r0, 0
- bgt _080DE0F6
- ldr r4, _080DE0EC @ =gAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_080DE0E2:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080DE0F6
- .align 2, 0
-_080DE0EC: .4byte gAnimBankTarget
-_080DE0F0:
- adds r0, r5, 0
- bl move_anim_8074EE0
-_080DE0F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DDFE8
-
- thumb_func_start sub_80DE0FC
-sub_80DE0FC: @ 80DE0FC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r0, _080DE110 @ =sub_80DE114
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE110: .4byte sub_80DE114
- thumb_func_end sub_80DE0FC
-
- thumb_func_start sub_80DE114
-sub_80DE114: @ 80DE114
- push {r4-r6,lr}
- adds r3, r0, 0
- movs r5, 0
- movs r6, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080DE1AA
- adds r1, r3, 0
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x4
- ands r0, r2
- adds r4, r1, 0
- cmp r0, 0
- bne _080DE13E
- movs r0, 0x4
- orrs r0, r2
- strb r0, [r4]
-_080DE13E:
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _080DE14E
- cmp r0, 0x1
- beq _080DE158
- movs r6, 0x1
- b _080DE162
-_080DE14E:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x2
- bne _080DE162
- b _080DE166
-_080DE158:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x4
- bne _080DE162
- movs r5, 0x1
-_080DE162:
- cmp r5, 0
- beq _080DE198
-_080DE166:
- ldrb r2, [r4]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r3, 0x32]
- strh r1, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080DE1AA
- strh r1, [r3, 0x32]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _080DE1AA
-_080DE198:
- cmp r6, 0
- beq _080DE1A4
- adds r0, r3, 0
- bl DestroyAnimSprite
- b _080DE1AA
-_080DE1A4:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
-_080DE1AA:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80DE114
-
- thumb_func_start sub_80DE1B0
-sub_80DE1B0: @ 80DE1B0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080DE1DC @ =gTasks
- adds r5, r0, r1
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- movs r6, 0
- movs r1, 0
- strh r0, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bge _080DE1E0
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080DE2C0
- .align 2, 0
-_080DE1DC: .4byte gTasks
-_080DE1E0:
- strh r1, [r5, 0xA]
- movs r0, 0xF
- strh r0, [r5, 0xC]
- movs r0, 0x2
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
- ldr r1, _080DE244 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080DE248 @ =REG_BLDALPHA
- ldrh r0, [r5, 0xE]
- lsls r0, 8
- ldrh r1, [r5, 0xC]
- orrs r0, r1
- strh r0, [r2]
- ldr r4, _080DE24C @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x50
- strh r1, [r0, 0x2E]
- ldr r0, _080DE250 @ =gAnimBankTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080DE258
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080DE254 @ =0x0000ff70
- strh r1, [r0, 0x30]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x70
- b _080DE276
- .align 2, 0
-_080DE244: .4byte REG_BLDCNT
-_080DE248: .4byte REG_BLDALPHA
-_080DE24C: .4byte gSprites
-_080DE250: .4byte gAnimBankTarget
-_080DE254: .4byte 0x0000ff70
-_080DE258:
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x90
- strh r1, [r0, 0x30]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080DE2C8 @ =0x0000ff90
-_080DE276:
- strh r1, [r0, 0x32]
- ldr r4, _080DE2CC @ =gSprites
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r2, 0
- strh r2, [r0, 0x34]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x36]
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080DE2D0 @ =SpriteCallbackDummy
- bl StoreSpriteCallbackInData
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _080DE2D4 @ =sub_8078394
- str r1, [r0]
- ldr r0, _080DE2D8 @ =sub_80DE2DC
- str r0, [r5]
-_080DE2C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE2C8: .4byte 0x0000ff90
-_080DE2CC: .4byte gSprites
-_080DE2D0: .4byte SpriteCallbackDummy
-_080DE2D4: .4byte sub_8078394
-_080DE2D8: .4byte sub_80DE2DC
- thumb_func_end sub_80DE1B0
-
- thumb_func_start sub_80DE2DC
-sub_80DE2DC: @ 80DE2DC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DE300 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080DE37C
- cmp r0, 0x1
- bgt _080DE304
- cmp r0, 0
- beq _080DE30A
- b _080DE3A6
- .align 2, 0
-_080DE300: .4byte gTasks
-_080DE304:
- cmp r0, 0x2
- beq _080DE3A0
- b _080DE3A6
-_080DE30A:
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r0, 0x3
- ands r0, r1
- strh r0, [r4, 0x12]
- cmp r0, 0x1
- bne _080DE328
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080DE328
- subs r0, r1, 0x1
- strh r0, [r4, 0xC]
-_080DE328:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- bne _080DE33E
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DE33E
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
-_080DE33E:
- ldr r2, _080DE374 @ =REG_BLDALPHA
- ldrh r0, [r4, 0xE]
- lsls r0, 8
- ldrh r1, [r4, 0xC]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, [r4, 0xC]
- movs r0, 0x80
- lsls r0, 13
- cmp r1, r0
- bne _080DE3A6
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x50
- ble _080DE3A6
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DE378 @ =gSprites
- adds r0, r1
- bl obj_delete_but_dont_free_vram
- movs r0, 0x1
- strh r0, [r4, 0x10]
- b _080DE3A6
- .align 2, 0
-_080DE374: .4byte REG_BLDALPHA
-_080DE378: .4byte gSprites
-_080DE37C:
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DE3A6
- ldr r0, _080DE39C @ =REG_BLDCNT
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- b _080DE3A6
- .align 2, 0
-_080DE39C: .4byte REG_BLDCNT
-_080DE3A0:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080DE3A6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DE2DC
-
- thumb_func_start sub_80DE3AC
-sub_80DE3AC: @ 80DE3AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, _080DE3CC @ =gTasks
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x26]
- ldr r2, _080DE3D0 @ =sub_80DE3D4
- str r2, [r1]
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_080DE3CC: .4byte gTasks
-_080DE3D0: .4byte sub_80DE3D4
- thumb_func_end sub_80DE3AC
-
thumb_func_start sub_80DE3D4
sub_80DE3D4: @ 80DE3D4
push {r4-r7,lr}