diff options
| author | camthesaxman <cameronghall@cox.net> | 2017-12-11 22:53:08 -0600 |
|---|---|---|
| committer | camthesaxman <cameronghall@cox.net> | 2017-12-11 22:53:08 -0600 |
| commit | c5be44afe7173c2a2b7be9b370ca404c8df18b2e (patch) | |
| tree | c7ebaf2f18db50749640a86f7356df0b3f408bef /src/battle/anim | |
| parent | 7c939bcdb9b9eeac3e544250185e44904d70bbb8 (diff) | |
decompile struggle, swipe, and uproar
Diffstat (limited to 'src/battle/anim')
| -rw-r--r-- | src/battle/anim/struggle.c | 52 | ||||
| -rw-r--r-- | src/battle/anim/swipe.c | 20 | ||||
| -rw-r--r-- | src/battle/anim/uproar.c | 25 |
3 files changed, 97 insertions, 0 deletions
diff --git a/src/battle/anim/struggle.c b/src/battle/anim/struggle.c new file mode 100644 index 000000000..63a01a79e --- /dev/null +++ b/src/battle/anim/struggle.c @@ -0,0 +1,52 @@ +#include "global.h" +#include "battle_anim.h" +#include "rom_8077ABC.h" +#include "sprite.h" + +extern s16 gBattleAnimArgs[8]; +extern u8 gBattleAnimBankAttacker; +extern u8 gBattleAnimBankTarget; + +static void sub_80D2CC4(struct Sprite *); + +void sub_80D2C38(struct Sprite *sprite) +{ + if (gBattleAnimArgs[2] == 0) + { + move_anim_8072740(sprite); + } + else + { + if (gBattleAnimArgs[0] == 0) + { + sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2); + sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3); + } + else + { + sprite->pos1.x = sub_8077ABC(gBattleAnimBankTarget, 2); + sprite->pos1.y = sub_8077ABC(gBattleAnimBankTarget, 3); + } + + if (gBattleAnimArgs[1] == 0) + sprite->pos1.x += 32; + else + sprite->pos1.x -= 32; + + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = gBattleAnimArgs[1]; + StartSpriteAnim(sprite, sprite->data[1]); + sprite->callback = sub_80D2CC4; + } +} + +static void sub_80D2CC4(struct Sprite *sprite) +{ + if (sprite->animEnded) + { + if (--sprite->data[0] != 0) + StartSpriteAnim(sprite, sprite->data[1]); + else + move_anim_8072740(sprite); + } +} diff --git a/src/battle/anim/swipe.c b/src/battle/anim/swipe.c new file mode 100644 index 000000000..15bee06ee --- /dev/null +++ b/src/battle/anim/swipe.c @@ -0,0 +1,20 @@ +#include "global.h" +#include "battle_anim.h" +#include "sprite.h" + +extern s16 gBattleAnimArgs[8]; + +void sub_80D2BE8(struct Sprite *sprite) +{ + if (sprite->data[0] == 0) + { + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + StartSpriteAnim(sprite, gBattleAnimArgs[2]); + sprite->data[0]++; + } + else if (sprite->animEnded) + { + move_anim_8072740(sprite); + } +} diff --git a/src/battle/anim/uproar.c b/src/battle/anim/uproar.c new file mode 100644 index 000000000..03cc65bc0 --- /dev/null +++ b/src/battle/anim/uproar.c @@ -0,0 +1,25 @@ +#include "global.h" +#include "battle_anim.h" +#include "rom_8077ABC.h" +#include "sprite.h" +#include "task.h" + +extern s16 gBattleAnimArgs[8]; + +extern const union AffineAnimCmd gUnknown_083D7CA8[]; + +void sub_80D2D3C(u8); + +void sub_80D2CF8(u8 taskId) +{ + u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + + sub_80798F4(&gTasks[taskId], spriteId, gUnknown_083D7CA8); + gTasks[taskId].func = sub_80D2D3C; +} + +void sub_80D2D3C(u8 taskId) +{ + if (!sub_807992C(&gTasks[taskId])) + DestroyAnimVisualTask(taskId); +} |
