#include "global.h" #include "rom_8077ABC.h" #include "trig.h" #include "battle_anim.h" #include "sound.h" extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; 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]]); DestroyAnimSprite(sprite); } } void sub_80CCC50(struct Sprite* sprite) { sprite->data[0] = gBattleAnimArgs[2]; if (GetBankSide(gAnimBankAttacker) != 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]) DestroyAnimSprite(sprite); }