summaryrefslogtreecommitdiff
path: root/asm/fire.s
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2017-11-26 21:18:19 -0800
committerGitHub <noreply@github.com>2017-11-26 21:18:19 -0800
commite6500d12a21e9833e08ad25cc6a76b075cff42dd (patch)
treeebd886d19c3a3257b21590d558ec724ca7d6e849 /asm/fire.s
parent0793afb9e8eeb508375344ca683f97bbc797771a (diff)
parent85dc553b949b05ec4fdc0e223c29161465a132b7 (diff)
Merge pull request #473 from ProjectRevoTPP/split_80C
split battle_anim_80CA710
Diffstat (limited to 'asm/fire.s')
-rwxr-xr-xasm/fire.s361
1 files changed, 361 insertions, 0 deletions
diff --git a/asm/fire.s b/asm/fire.s
new file mode 100755
index 000000000..05a3e8073
--- /dev/null
+++ b/asm/fire.s
@@ -0,0 +1,361 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ @ fire
+
+ thumb_func_start sub_80D4ED8
+sub_80D4ED8: @ 80D4ED8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D4F0C @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2E]
+ movs r0, 0x3C
+ strh r0, [r4, 0x30]
+ movs r0, 0x9
+ strh r0, [r4, 0x32]
+ movs r0, 0x1E
+ strh r0, [r4, 0x34]
+ movs r0, 0xFE
+ lsls r0, 8
+ strh r0, [r4, 0x36]
+ ldr r1, _080D4F10 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ ldr r1, _080D4F14 @ =sub_8078174
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4F0C: .4byte gBattleAnimArgs
+_080D4F10: .4byte move_anim_8072740
+_080D4F14: .4byte sub_8078174
+ thumb_func_end sub_80D4ED8
+
+ thumb_func_start sub_80D4F18
+sub_80D4F18: @ 80D4F18
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D4F50 @ =gBattleAnimArgs
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x32]
+ ldr r0, _080D4F54 @ =sub_8078394
+ str r0, [r4, 0x1C]
+ ldr r1, _080D4F58 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4F50: .4byte gBattleAnimArgs
+_080D4F54: .4byte sub_8078394
+_080D4F58: .4byte move_anim_8072740
+ thumb_func_end sub_80D4F18
+
+ thumb_func_start sub_80D4F5C
+sub_80D4F5C: @ 80D4F5C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r0, _080D4F90 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D4F98
+ ldr r2, _080D4F94 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+ adds r1, r2, 0
+ b _080D4FAE
+ .align 2, 0
+_080D4F90: .4byte gBattleAnimBankAttacker
+_080D4F94: .4byte gBattleAnimArgs
+_080D4F98:
+ ldr r1, _080D4FC4 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x32]
+_080D4FAE:
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x34]
+ ldr r0, _080D4FC8 @ =sub_80D5038
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4FC4: .4byte gBattleAnimArgs
+_080D4FC8: .4byte sub_80D5038
+ thumb_func_end sub_80D4F5C
+
+ thumb_func_start sub_80D4FCC
+sub_80D4FCC: @ 80D4FCC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D4FF8 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D5000
+ ldr r2, _080D4FFC @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r4, 0x32]
+ adds r1, r2, 0
+ b _080D5018
+ .align 2, 0
+_080D4FF8: .4byte gBattleAnimBankAttacker
+_080D4FFC: .4byte gBattleAnimArgs
+_080D5000:
+ ldr r1, _080D5030 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+_080D5018:
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x34]
+ ldr r0, _080D5034 @ =sub_80D5038
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5030: .4byte gBattleAnimArgs
+_080D5034: .4byte sub_80D5038
+ thumb_func_end sub_80D4FCC
+
+ thumb_func_start sub_80D5038
+sub_80D5038: @ 80D5038
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x36
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bge _080D505E
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x34]
+ ldrh r3, [r2, 0x26]
+ adds r0, r3
+ strh r0, [r2, 0x26]
+_080D505E:
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bne _080D5070
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080D5070:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5038
+
+ thumb_func_start sub_80D5074
+sub_80D5074: @ 80D5074
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r0, _080D5098 @ =gBattleAnimBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D50A0
+ ldr r0, _080D509C @ =gBattleAnimArgs
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _080D50B2
+ .align 2, 0
+_080D5098: .4byte gBattleAnimBankAttacker
+_080D509C: .4byte gBattleAnimArgs
+_080D50A0:
+ ldr r0, _080D50E0 @ =gBattleAnimArgs
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ adds r2, r4, 0
+ adds r2, 0x43
+ movs r1, 0x8
+ strb r1, [r2]
+_080D50B2:
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r2, 0xA]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r2, 0xC]
+ strh r0, [r4, 0x36]
+ strh r1, [r4, 0x38]
+ ldr r0, _080D50E4 @ =sub_80D50E8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D50E0: .4byte gBattleAnimArgs
+_080D50E4: .4byte sub_80D50E8
+ thumb_func_end sub_80D5074
+
+ thumb_func_start sub_80D50E8
+sub_80D50E8: @ 80D50E8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D5170
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ ldr r0, _080D5154 @ =0x00002710
+ cmp r1, r0
+ ble _080D5106
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1
+ strb r0, [r1]
+_080D5106:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r2, [r4, 0x30]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r2, [r4, 0x30]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r4, 0x36]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2
+ strh r0, [r4, 0x38]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080D515C
+ ldr r2, _080D5158 @ =0xffffff00
+ b _080D5164
+ .align 2, 0
+_080D5154: .4byte 0x00002710
+_080D5158: .4byte 0xffffff00
+_080D515C:
+ cmp r0, 0
+ bge _080D5168
+ movs r2, 0x80
+ lsls r2, 1
+_080D5164:
+ adds r0, r1, r2
+ strh r0, [r4, 0x2E]
+_080D5168:
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ b _080D5176
+_080D5170:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080D5176:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D50E8
+
+ .align 2, 0 @ Don't pad with nop.