summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2017-12-20 11:34:56 -0600
committerMarcus Huderle <huderlem@gmail.com>2017-12-20 11:35:41 -0600
commit5e6bfe67a87e041ebdc9e0b573d1ae1f22b79d59 (patch)
tree6899e26a068d4854a026e3d13b7c51c36b68208a
parentad33b833f35800ff2cfc13aaca09e2e57842703a (diff)
Decompile battle_anim beta_beat_up
-rwxr-xr-xasm/beta_beat_up.s63
-rw-r--r--ld_script.txt2
-rw-r--r--src/battle/anim/beta_beat_up.c34
3 files changed, 35 insertions, 64 deletions
diff --git a/asm/beta_beat_up.s b/asm/beta_beat_up.s
deleted file mode 100755
index d6e1ba675..000000000
--- a/asm/beta_beat_up.s
+++ /dev/null
@@ -1,63 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- @ beta_beat_up
-
- thumb_func_start sub_80D6234
-sub_80D6234: @ 80D6234
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D6254 @ =gBattleAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D625C
- ldr r0, _080D6258 @ =gBattleAnimArgs
- ldrh r1, [r4, 0x20]
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r4, 0x20]
- b _080D6266
- .align 2, 0
-_080D6254: .4byte gBattleAnimBankAttacker
-_080D6258: .4byte gBattleAnimArgs
-_080D625C:
- ldr r0, _080D6270 @ =gBattleAnimArgs
- ldrh r0, [r0]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
-_080D6266:
- ldr r0, _080D6274 @ =sub_80D6278
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6270: .4byte gBattleAnimArgs
-_080D6274: .4byte sub_80D6278
- thumb_func_end sub_80D6234
-
- thumb_func_start sub_80D6278
-sub_80D6278: @ 80D6278
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080D628E
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080D628E:
- pop {r0}
- bx r0
- thumb_func_end sub_80D6278
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index 22c01bac3..bc5df01bf 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -285,7 +285,7 @@ SECTIONS {
src/battle/anim/wisp_orb.o(.text);
asm/wisp_fire.o(.text);
src/battle/anim/thunder.o(.text);
- asm/beta_beat_up.o(.text);
+ src/battle/anim/beta_beat_up.o(.text);
src/battle/anim/shock.o(.text);
asm/current.o(.text);
asm/ice.o(.text);
diff --git a/src/battle/anim/beta_beat_up.c b/src/battle/anim/beta_beat_up.c
new file mode 100644
index 000000000..499e52a80
--- /dev/null
+++ b/src/battle/anim/beta_beat_up.c
@@ -0,0 +1,34 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+
+extern s16 gBattleAnimArgs[8];
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
+
+static void sub_80D6278(struct Sprite *);
+
+// beta_beat_up
+
+void sub_80D6234(struct Sprite *sprite)
+{
+ if (GetBankSide(gBattleAnimBankAttacker) != 0)
+ {
+ sprite->pos1.x -= gBattleAnimArgs[0];
+ }
+ else
+ {
+ sprite->pos1.x += gBattleAnimArgs[0];
+ }
+
+ sprite->callback = sub_80D6278;
+}
+
+static void sub_80D6278(struct Sprite *sprite)
+{
+ if (sprite->affineAnimEnded)
+ {
+ move_anim_8074EE0(sprite);
+ }
+}