battle_anim_effects_3 (4)

This commit is contained in:
Sewef
2019-11-23 11:57:39 +01:00
parent 64cf2d70fa
commit 4f590e8f61
7 changed files with 129 additions and 129 deletions
+17 -17
View File
@@ -4,46 +4,46 @@
#include "sprite.h"
#include "util.h"
static void sub_8075370(struct Sprite *);
static void SmokescreenImpact_Callback(struct Sprite *);
extern const struct CompressedSpriteSheet gUnknown_0831C620;
extern const struct CompressedSpritePalette gUnknown_0831C628;
extern const struct SpriteTemplate gUnknown_0831C688;
extern const struct CompressedSpriteSheet gSmokescreenImpactSpriteSheet;
extern const struct CompressedSpritePalette gSmokescreenlImpactSpritePalette;
extern const struct SpriteTemplate gSmokescreenImpactSpriteTemplate;
u8 sub_807521C(s16 x, s16 y, u8 a3)
u8 SmokescreenImpact(s16 x, s16 y, u8 a3)
{
u8 mainSpriteId;
u8 spriteId1, spriteId2, spriteId3, spriteId4;
struct Sprite *mainSprite;
if (GetSpriteTileStartByTag(gUnknown_0831C620.tag) == 0xFFFF)
if (GetSpriteTileStartByTag(gSmokescreenImpactSpriteSheet.tag) == 0xFFFF)
{
LoadCompressedSpriteSheetUsingHeap(&gUnknown_0831C620);
LoadCompressedSpritePaletteUsingHeap(&gUnknown_0831C628);
LoadCompressedSpriteSheetUsingHeap(&gSmokescreenImpactSpriteSheet);
LoadCompressedSpritePaletteUsingHeap(&gSmokescreenlImpactSpritePalette);
}
mainSpriteId = CreateInvisibleSpriteWithCallback(sub_8075370);
mainSpriteId = CreateInvisibleSpriteWithCallback(SmokescreenImpact_Callback);
mainSprite = &gSprites[mainSpriteId];
mainSprite->data[1] = a3;
spriteId1 = CreateSprite(&gUnknown_0831C688, x - 16, y - 16, 2);
spriteId1 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x - 16, y - 16, 2);
gSprites[spriteId1].data[0] = mainSpriteId;
mainSprite->data[0]++;
AnimateSprite(&gSprites[spriteId1]);
spriteId2 = CreateSprite(&gUnknown_0831C688, x, y - 16, 2);
spriteId2 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x, y - 16, 2);
gSprites[spriteId2].data[0] = mainSpriteId;
mainSprite->data[0]++;
StartSpriteAnim(&gSprites[spriteId2], 1);
AnimateSprite(&gSprites[spriteId2]);
spriteId3 = CreateSprite(&gUnknown_0831C688, x - 16, y, 2);
spriteId3 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x - 16, y, 2);
gSprites[spriteId3].data[0] = mainSpriteId;
mainSprite->data[0]++;
StartSpriteAnim(&gSprites[spriteId3], 2);
AnimateSprite(&gSprites[spriteId3]);
spriteId4 = CreateSprite(&gUnknown_0831C688, x, y, 2);
spriteId4 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x, y, 2);
gSprites[spriteId4].data[0] = mainSpriteId;
mainSprite->data[0]++;
StartSpriteAnim(&gSprites[spriteId4], 3);
@@ -52,12 +52,12 @@ u8 sub_807521C(s16 x, s16 y, u8 a3)
return mainSpriteId;
}
static void sub_8075370(struct Sprite *sprite)
static void SmokescreenImpact_Callback(struct Sprite *sprite)
{
if (!sprite->data[0])
{
FreeSpriteTilesByTag(gUnknown_0831C620.tag);
FreeSpritePaletteByTag(gUnknown_0831C628.tag);
FreeSpriteTilesByTag(gSmokescreenImpactSpriteSheet.tag);
FreeSpritePaletteByTag(gSmokescreenlImpactSpritePalette.tag);
if (!sprite->data[1])
DestroySprite(sprite);
else
@@ -65,7 +65,7 @@ static void sub_8075370(struct Sprite *sprite)
}
}
void sub_80753B4(struct Sprite *sprite)
void SpriteCB_DestroySprite(struct Sprite *sprite)
{
if (sprite->animEnded)
{