summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2017-01-11 00:49:29 -0600
committercamthesaxman <cameronghall@cox.net>2017-01-11 00:49:29 -0600
commitd312ee301b03580bbe47add77441b671af70f8ac (patch)
treed7057a86cd6eda841ce2d151b806f849d6cadac9 /src
parentf88eeb607409528dadbf841f2cb8e805d6e86deb (diff)
start decompiling battle_anim.c
Diffstat (limited to 'src')
-rw-r--r--src/battle_anim.c217
1 files changed, 217 insertions, 0 deletions
diff --git a/src/battle_anim.c b/src/battle_anim.c
new file mode 100644
index 000000000..1313b69ca
--- /dev/null
+++ b/src/battle_anim.c
@@ -0,0 +1,217 @@
+#include "global.h"
+#include "asm.h"
+#include "gba/m4a_internal.h"
+#include "sprite.h"
+#include "task.h"
+
+extern u16 gUnknown_02024A6A[4];
+extern u8 gUnknown_02024C07;
+extern u8 gUnknown_02024C08;
+extern const u8 *gUnknown_0202F7A4;
+extern void (*gUnknown_0202F7AC)(void);
+extern s8 gUnknown_0202F7B0;
+extern u8 gUnknown_0202F7B1;
+extern u8 gUnknown_0202F7B2;
+extern u8 gUnknown_0202F7B3;
+extern u32 gUnknown_0202F7B4;
+extern u32 gUnknown_0202F7B8;
+extern u16 gUnknown_0202F7BC;
+extern u8 gUnknown_0202F7BE;
+extern u8 gUnknown_0202F7C2[];
+extern u8 gUnknown_0202F7C4;
+extern u8 gUnknown_0202F7C5;
+extern u16 gUnknown_0202F7C6;
+extern u8 gUnknown_0202F7C8;
+extern u8 gUnknown_0202F7C9;
+extern u16 gUnknown_0202F7CA[4];
+extern u8 gUnknown_0202F7D2;
+extern u16 gUnknown_03004200;
+extern u16 gUnknown_03004240;
+extern u16 gUnknown_03004244;
+extern u16 gUnknown_030042C4;
+extern u16 gUnknown_03004B10[8];
+extern u16 gBattleAnimArgs[8];
+extern struct MusicPlayerInfo gMPlay_BGM;
+
+extern const u16 gUnknown_081C7160[];
+extern void (*gUnknown_0837F4B8[])(void);
+extern const u8 *const gBattleAnims_Moves[];
+
+extern u8 unk_2000000[];
+
+#define EWRAM_19348 (*(u16 *)(unk_2000000 + 0x19348))
+
+void sub_8075624(void)
+{
+ s32 i;
+
+ gUnknown_0202F7B0 = 0;
+ gUnknown_0202F7B1 = 0;
+ gUnknown_0202F7B2 = 0;
+ gUnknown_0202F7B3 = 0;
+ gUnknown_0202F7B4 = 0;
+ gUnknown_0202F7B8 = 0;
+ gUnknown_0202F7BC = 0;
+ gUnknown_0202F7BE = 0;
+ for (i = 0; i < 8; i++)
+ gUnknown_03004B10[i] |= 0xFFFF;
+ for (i = 0; i < 8; i++)
+ gBattleAnimArgs[i] = 0;
+ gUnknown_0202F7C2[0] = 0xFF;
+ gUnknown_0202F7C2[1] = -1;
+ gUnknown_0202F7C4 = 0;
+ gUnknown_0202F7C5 = 0;
+ gUnknown_0202F7C6 = 0;
+ gUnknown_0202F7C8 = 0;
+ gUnknown_0202F7C9 = 0;
+ gUnknown_0202F7D2 = 0;
+}
+
+extern void move_something(const u8 *const moveAnims[], u16 b, u8 c);
+
+void move_anim_start_t1(u16 a)
+{
+ gUnknown_0202F7C8 = gUnknown_02024C07;
+ gUnknown_0202F7C9 = gUnknown_02024C08;
+ move_something(gBattleAnims_Moves, a, 1);
+}
+
+extern u8 sub_8076BE0();
+extern void sub_8079E24();
+extern void sub_8043EB4();
+extern void sub_80759D0(void);
+
+void move_something(const u8 *const moveAnims[], u16 b, u8 c)
+{
+ s32 i;
+
+ if (sub_8076BE0() == 0)
+ {
+ sub_8079E24();
+ sub_8043EB4(0);
+ for (i = 0; i < 4; i++)
+ {
+ if (battle_side_get_owner(i) != 0)
+ gUnknown_0202F7CA[i] = GetMonData(&gEnemyParty[gUnknown_02024A6A[i]], 11);
+ else
+ gUnknown_0202F7CA[i] = GetMonData(&gPlayerParty[gUnknown_02024A6A[i]], 11);
+ }
+ }
+ else
+ {
+ for (i = 0; i < 4; i++)
+ gUnknown_0202F7CA[i] = EWRAM_19348;
+ }
+ if (c == 0)
+ gUnknown_0202F7C6 = 0;
+ else
+ gUnknown_0202F7C6 = b;
+ for (i = 0; i < 8; i++)
+ gBattleAnimArgs[i] = 0;
+ gUnknown_0202F7C2[0] = 0xFF;
+ gUnknown_0202F7C2[1] = -1;
+ gUnknown_0202F7A4 = moveAnims[b];
+ gUnknown_0202F7B1 = 1;
+ gUnknown_0202F7B0 = 0;
+ gUnknown_0202F7AC = sub_80759D0;
+ for (i = 0; i < 8; i++)
+ gUnknown_03004B10[i] |= 0xFFFF;
+ if (c != 0)
+ {
+ i = 0;
+ while (1)
+ {
+ if (gUnknown_081C7160[i] == 0xFFFF)
+ break;
+ if (b == gUnknown_081C7160[i])
+ {
+ m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 128);
+ break;
+ }
+ i++;
+ }
+ }
+ gUnknown_030042C4 = 0;
+ gUnknown_03004240 = 0;
+ gUnknown_03004200 = 0;
+ gUnknown_03004244 = 0;
+}
+
+void move_anim_8072740(struct Sprite *sprite)
+{
+ FreeSpriteOamMatrix(sprite);
+ DestroySprite(sprite);
+ gUnknown_0202F7B2--;
+}
+
+void move_anim_task_del(u8 taskId)
+{
+ DestroyTask(taskId);
+ gUnknown_0202F7B2--;
+}
+
+void move_anim_related_task_del(u8 taskId)
+{
+ DestroyTask(taskId);
+ gUnknown_0202F7B3--;
+}
+
+void sub_8075940(u16 a)
+{
+ s32 i;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (gUnknown_03004B10[i] == 0xFFFF)
+ {
+ gUnknown_03004B10[i] = a;
+ return;
+ }
+ }
+}
+
+void sub_8075970(u16 a)
+{
+ s32 i;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (gUnknown_03004B10[i] == a)
+ {
+ gUnknown_03004B10[i] |= 0xFFFF;
+ return;
+ }
+ }
+}
+
+void move_anim_waiter(void)
+{
+ if (gUnknown_0202F7B0 <= 0)
+ {
+ gUnknown_0202F7AC = sub_80759D0;
+ gUnknown_0202F7B0 = 0;
+ }
+ else
+ {
+ gUnknown_0202F7B0--;
+ }
+}
+
+void sub_80759D0(void)
+{
+ do
+ {
+ gUnknown_0837F4B8[*gUnknown_0202F7A4]();
+ } while (gUnknown_0202F7B0 == 0 && gUnknown_0202F7B1 != 0);
+}
+
+/*
+void ma00_load_graphics(void)
+{
+ u8 r4 = *(gUnknown_0202F7A4++);
+ u8 temp = *gUnknown_0202F7A4;
+
+ r4 |= temp << 8;
+ LoadCompressedObjectPic()
+}
+*/