diff options
author | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2017-11-25 02:42:34 -0500 |
---|---|---|
committer | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2017-11-25 02:42:34 -0500 |
commit | bd45e6acb85fe854f58db5aa99f4004379765513 (patch) | |
tree | a4d58cc8ab37dec959602bb5e08a29c22ac7091f /src/anim/tile_out.c | |
parent | 75cef1d9b80094ef5b875efac3ae0f0cb1ada165 (diff) |
split battle_anim_80CA710.c (todo: split asm)
Diffstat (limited to 'src/anim/tile_out.c')
-rwxr-xr-x | src/anim/tile_out.c | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/anim/tile_out.c b/src/anim/tile_out.c new file mode 100755 index 000000000..8b710268f --- /dev/null +++ b/src/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); +} |