diff options
Diffstat (limited to 'src/anim/unused_2.c')
-rwxr-xr-x | src/anim/unused_2.c | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/anim/unused_2.c b/src/anim/unused_2.c new file mode 100755 index 000000000..f7f5be88d --- /dev/null +++ b/src/anim/unused_2.c @@ -0,0 +1,80 @@ +#include "global.h" +#include "rom_8077ABC.h" +#include "trig.h" +#include "battle_anim.h" +#include "sound.h" + +extern s16 gBattleAnimArgs[]; +extern u8 gBattleAnimBankAttacker; +extern u8 gBattleAnimBankTarget; + +static void sub_80CCCB4(struct Sprite* sprite); + +// unused_2 (unknown effect with music notes.) +// possibly another unused effect. Unknown usage. + +void unref_sub_80CCB6C(struct Sprite* sprite) +{ + if (sprite->data[2] > 1) + { + if (sprite->data[3] & 1) + { + sprite->invisible = 0; + gSprites[sprite->data[0]].invisible = 0; + gSprites[sprite->data[1]].invisible = 0; + } + else + { + sprite->invisible = 1; + gSprites[sprite->data[0]].invisible = 1; + gSprites[sprite->data[1]].invisible = 1; + } + + sprite->data[2] = 0; + sprite->data[3]++; + } + else + { + sprite->data[2]++; + } + + if (sprite->data[3] == 10) + { + DestroySprite(&gSprites[sprite->data[0]]); + DestroySprite(&gSprites[sprite->data[1]]); + move_anim_8072740(sprite); + } +} + +void sub_80CCC50(struct Sprite* sprite) +{ + sprite->data[0] = gBattleAnimArgs[2]; + if (GetBankSide(gBattleAnimBankAttacker) != 0) + sprite->pos1.x -= gBattleAnimArgs[0]; + else + sprite->pos1.x += gBattleAnimArgs[0]; + + StartSpriteAnim(sprite, gBattleAnimArgs[5]); + sprite->data[1] = -gBattleAnimArgs[3]; + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[3] = gBattleAnimArgs[4]; + sprite->callback = sub_80CCCB4; + sub_80CCCB4(sprite); +} + +void sub_80CCCB4(struct Sprite* sprite) +{ + sprite->pos2.x = Cos(sprite->data[0], 100); + sprite->pos2.y = Sin(sprite->data[0], 20); + if (sprite->data[0] <= 0x7F) + sprite->subpriority = 0; + else + sprite->subpriority = 14; + + sprite->data[0] = (sprite->data[0] + sprite->data[1]) & 0xFF; + sprite->data[5] += 0x82; + sprite->pos2.y += sprite->data[5] >> 8; + sprite->data[2]++; + if (sprite->data[2] == sprite->data[3]) + move_anim_8072740(sprite); +} |