diff options
author | Marcus Huderle <huderlem@gmail.com> | 2017-11-26 21:18:19 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-26 21:18:19 -0800 |
commit | e6500d12a21e9833e08ad25cc6a76b075cff42dd (patch) | |
tree | ebd886d19c3a3257b21590d558ec724ca7d6e849 /src/battle/anim/tile_out.c | |
parent | 0793afb9e8eeb508375344ca683f97bbc797771a (diff) | |
parent | 85dc553b949b05ec4fdc0e223c29161465a132b7 (diff) |
Merge pull request #473 from ProjectRevoTPP/split_80C
split battle_anim_80CA710
Diffstat (limited to 'src/battle/anim/tile_out.c')
-rwxr-xr-x | src/battle/anim/tile_out.c | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/battle/anim/tile_out.c b/src/battle/anim/tile_out.c new file mode 100755 index 000000000..8b710268f --- /dev/null +++ b/src/battle/anim/tile_out.c @@ -0,0 +1,81 @@ +#include "global.h" +#include "rom_8077ABC.h" +#include "trig.h" +#include "battle_anim.h" +#include "sound.h" +#include "battle_interface.h" + +extern s16 gBattleAnimArgs[]; +extern u8 gBattleAnimBankAttacker; +extern u8 gBattleAnimBankTarget; + +extern u8 gNoOfAllBanks; +extern u8 gHealthboxIDs[]; + +static void sub_80CE1AC(struct Sprite* sprite); + +// tile_out (makes a tile fly inward into a center point.) +// Used in Conversion 2. + +void sub_80CE17C(struct Sprite* sprite) +{ + sub_8078764(sprite, 0); + sprite->animPaused = 1; + sprite->data[0] = gBattleAnimArgs[2]; + sprite->callback = sub_80CE1AC; +} + +void sub_80CE1AC(struct Sprite* sprite) +{ + if (sprite->data[0]) + { + sprite->data[0]--; + } + else + { + sprite->animPaused = 0; + sprite->data[0] = 30; + sprite->data[2] = sub_8077ABC(gBattleAnimBankAttacker, 2); + sprite->data[4] = sub_8077ABC(gBattleAnimBankAttacker, 3); + sprite->callback = sub_8078B34; + StoreSpriteCallbackInData(sprite, move_anim_8072740); + } +} + +void sub_80CE210(u8 taskId) +{ + if (++gTasks[taskId].data[0] == 4) + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1]++; + REG_BLDALPHA = gTasks[taskId].data[1] | ((16 - gTasks[taskId].data[1]) << 8); + if (gTasks[taskId].data[1] == 16) + DestroyAnimVisualTask(taskId); + } +} + +void unref_sub_80CE260(u8 taskId) +{ + u8 i; + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleAnimArgs[0] == 1 && GetBankSide(i) == 0) + sub_8043DB0(gHealthboxIDs[i]); + + if (gBattleAnimArgs[1] == 1 && GetBankSide(i) == 1) + sub_8043DB0(gHealthboxIDs[i]); + } + + DestroyAnimVisualTask(taskId); +} + +void unref_sub_80CE2D4(u8 taskId) +{ + u8 i; + for (i = 0; i < gNoOfAllBanks; i++) + { + sub_8043DFC(gHealthboxIDs[i]); + } + + DestroyAnimVisualTask(taskId); +} |