Sync battle anim - status effects

This commit is contained in:
GriffinR
2022-08-17 15:14:30 -04:00
parent 4e106d86e3
commit c0b0e87f68
5 changed files with 90 additions and 86 deletions
+2 -2
View File
@@ -1744,7 +1744,7 @@ Move_DETECT::
createvisualtask AnimTask_BlendSelected, 10, 2, 1, 0, 9, RGB_WHITE createvisualtask AnimTask_BlendSelected, 10, 2, 1, 0, 9, RGB_WHITE
delay 18 delay 18
playsewithpan SE_M_DETECT, 192 playsewithpan SE_M_DETECT, 192
createsprite gSpriteTemplate_83BF480, ANIM_ATTACKER, 13, 20, -20 createsprite gSpinningSparkleSpriteTemplate, ANIM_ATTACKER, 13, 20, -20
waitforvisualfinish waitforvisualfinish
delay 10 delay 10
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 9, 0, 0 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 9, 0, 0
@@ -7681,7 +7681,7 @@ Move_DISABLE::
monbgprio_28 1 monbgprio_28 1
setalpha 8, 8 setalpha 8, 8
playsewithpan SE_M_DETECT, 192 playsewithpan SE_M_DETECT, 192
createsprite gSpriteTemplate_83BF480, ANIM_ATTACKER, 13, 24, -16 createsprite gSpinningSparkleSpriteTemplate, ANIM_ATTACKER, 13, 24, -16
waitforvisualfinish waitforvisualfinish
createvisualtask AnimTask_GrowAndGreyscale, 5, createvisualtask AnimTask_GrowAndGreyscale, 5,
loopsewithpan SE_M_BIND, 63, 15, 4 loopsewithpan SE_M_BIND, 63, 15, 4
+2 -2
View File
@@ -4219,8 +4219,8 @@ extern const u32 gBattleAnimSpritePal_WhipHit[];
extern const u32 gBattleAnimSpritePal_BlueRing2[]; extern const u32 gBattleAnimSpritePal_BlueRing2[];
// battle anim task // battle anim task
extern const u32 gUnknown_D2EC24_Gfx[]; extern const u32 gUnusedLevelupAnimationGfx[];
extern const u32 gUnknown_D2EC24_Tilemap[]; extern const u32 gUnusedLevelupAnimationTilemap[];
extern const u32 gCureBubblesGfx[]; extern const u32 gCureBubblesGfx[];
extern const u32 gCureBubblesPal[]; extern const u32 gCureBubblesPal[];
extern const u32 gCureBubblesTilemap[]; extern const u32 gCureBubblesTilemap[];
+2 -2
View File
@@ -442,8 +442,8 @@ UNUSED void AnimTask_UnusedLevelUpHealthBox(u8 taskId)
gSprites[spriteId3].callback = SpriteCallbackDummy; gSprites[spriteId3].callback = SpriteCallbackDummy;
gSprites[spriteId4].callback = SpriteCallbackDummy; gSprites[spriteId4].callback = SpriteCallbackDummy;
GetBattleAnimBg1Data(&animBgData); GetBattleAnimBg1Data(&animBgData);
AnimLoadCompressedBgTilemap(animBgData.bgId, gUnknown_D2EC24_Tilemap); AnimLoadCompressedBgTilemap(animBgData.bgId, gUnusedLevelupAnimationTilemap);
AnimLoadCompressedBgGfx(animBgData.bgId, gUnknown_D2EC24_Gfx, animBgData.tilesOffset); AnimLoadCompressedBgGfx(animBgData.bgId, gUnusedLevelupAnimationGfx, animBgData.tilesOffset);
LoadCompressedPalette(gCureBubblesPal, animBgData.paletteId << 4, 32); LoadCompressedPalette(gCureBubblesPal, animBgData.paletteId << 4, 32);
gBattle_BG1_X = -gSprites[spriteId3].x + 32; gBattle_BG1_X = -gSprites[spriteId3].x + 32;
gBattle_BG1_Y = -gSprites[spriteId3].y - 32; gBattle_BG1_Y = -gSprites[spriteId3].y - 32;
+82 -78
View File
@@ -9,19 +9,17 @@
#include "constants/battle_anim.h" #include "constants/battle_anim.h"
#include "constants/pokemon.h" #include "constants/pokemon.h"
// Function Declarations static u8 Task_FlashingCircleImpacts(u8 battlerId, bool8 b);
static u8 sub_8078178(u8 battlerId, bool8 b); static void Task_UpdateFlashingCircleImpacts(u8 taskId);
static void sub_80782BC(u8 taskId); static void AnimTask_FrozenIceCube_Step1(u8 taskId);
static void sub_80784D8(u8 taskId); static void AnimTask_FrozenIceCube_Step2(u8 taskId);
static void sub_8078528(u8 taskId); static void AnimTask_FrozenIceCube_Step3(u8 taskId);
static void sub_80785D8(u8 taskId); static void AnimTask_FrozenIceCube_Step4(u8 taskId);
static void sub_807862C(u8 taskId);
static void Task_DoStatusAnimation(u8 taskId); static void Task_DoStatusAnimation(u8 taskId);
static void sub_807834C(struct Sprite *sprite); static void AnimFlashingCircleImpact(struct Sprite *sprite);
static void sub_8078380(struct Sprite *sprite); static void AnimFlashingCircleImpact_Step(struct Sprite *sprite);
// Data static const union AnimCmd sAnim_FlickeringOrb[] =
static const union AnimCmd sUnknown_83BF3E0[] =
{ {
ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(0, 3),
ANIMCMD_FRAME(4, 3), ANIMCMD_FRAME(4, 3),
@@ -30,42 +28,44 @@ static const union AnimCmd sUnknown_83BF3E0[] =
ANIMCMD_JUMP(0) ANIMCMD_JUMP(0)
}; };
static const union AnimCmd *const sSpriteAnimTable_83BF3F4[] = static const union AnimCmd *const sAnims_FlickeringOrb[] =
{ {
sUnknown_83BF3E0 sAnim_FlickeringOrb
}; };
const struct SpriteTemplate gSpriteTemplate_83BF3F8 = // Unused
static const struct SpriteTemplate sFlickeringOrbSpriteTemplate =
{ {
.tileTag = ANIM_TAG_ORB, .tileTag = ANIM_TAG_ORB,
.paletteTag = ANIM_TAG_ORB, .paletteTag = ANIM_TAG_ORB,
.oam = &gOamData_AffineOff_ObjNormal_16x16, .oam = &gOamData_AffineOff_ObjNormal_16x16,
.anims = sSpriteAnimTable_83BF3F4, .anims = sAnims_FlickeringOrb,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimTranslateLinearAndFlicker, .callback = AnimTranslateLinearAndFlicker,
}; };
const struct SpriteTemplate gSpriteTemplate_83BF410 = // Unused
static const struct SpriteTemplate sFlickeringOrbFlippedSpriteTemplate =
{ {
.tileTag = ANIM_TAG_ORB, .tileTag = ANIM_TAG_ORB,
.paletteTag = ANIM_TAG_ORB, .paletteTag = ANIM_TAG_ORB,
.oam = &gOamData_AffineOff_ObjNormal_16x16, .oam = &gOamData_AffineOff_ObjNormal_16x16,
.anims = sSpriteAnimTable_83BF3F4, .anims = sAnims_FlickeringOrb,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimTranslateLinearAndFlicker_Flipped, .callback = AnimTranslateLinearAndFlicker_Flipped,
}; };
static const union AnimCmd sUnknown_83BF428[] = static const union AnimCmd sAnim_WeatherBallNormal[] =
{ {
ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(0, 3),
ANIMCMD_JUMP(0) ANIMCMD_JUMP(0)
}; };
static const union AnimCmd *const sSpriteAnimTable_83BF430[] = static const union AnimCmd *const sAnims_WeatherBallNormal[] =
{ {
sUnknown_83BF428 sAnim_WeatherBallNormal
}; };
const struct SpriteTemplate gWeatherBallUpSpriteTemplate = const struct SpriteTemplate gWeatherBallUpSpriteTemplate =
@@ -73,7 +73,7 @@ const struct SpriteTemplate gWeatherBallUpSpriteTemplate =
.tileTag = ANIM_TAG_WEATHER_BALL, .tileTag = ANIM_TAG_WEATHER_BALL,
.paletteTag = ANIM_TAG_WEATHER_BALL, .paletteTag = ANIM_TAG_WEATHER_BALL,
.oam = &gOamData_AffineOff_ObjNormal_32x32, .oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = sSpriteAnimTable_83BF430, .anims = sAnims_WeatherBallNormal,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimWeatherBallUp, .callback = AnimWeatherBallUp,
@@ -84,13 +84,13 @@ const struct SpriteTemplate gWeatherBallNormalDownSpriteTemplate =
.tileTag = ANIM_TAG_WEATHER_BALL, .tileTag = ANIM_TAG_WEATHER_BALL,
.paletteTag = ANIM_TAG_WEATHER_BALL, .paletteTag = ANIM_TAG_WEATHER_BALL,
.oam = &gOamData_AffineOff_ObjNormal_32x32, .oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = sSpriteAnimTable_83BF430, .anims = sAnims_WeatherBallNormal,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimWeatherBallDown, .callback = AnimWeatherBallDown,
}; };
static const union AnimCmd sUnknown_83BF464[] = static const union AnimCmd sAnim_SpinningSparkle[] =
{ {
ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(0, 3),
ANIMCMD_FRAME(16, 3), ANIMCMD_FRAME(16, 3),
@@ -100,23 +100,24 @@ static const union AnimCmd sUnknown_83BF464[] =
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd *const sSpriteAnimTable_83BF47C[] = static const union AnimCmd *const sAnims_SpinningSparkle[] =
{ {
sUnknown_83BF464 sAnim_SpinningSparkle
}; };
const struct SpriteTemplate gSpriteTemplate_83BF480 = const struct SpriteTemplate gSpinningSparkleSpriteTemplate =
{ {
.tileTag = ANIM_TAG_SPARKLE_4, .tileTag = ANIM_TAG_SPARKLE_4,
.paletteTag = ANIM_TAG_SPARKLE_4, .paletteTag = ANIM_TAG_SPARKLE_4,
.oam = &gOamData_AffineOff_ObjNormal_32x32, .oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = sSpriteAnimTable_83BF47C, .anims = sAnims_SpinningSparkle,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimSpinningSparkle, .callback = AnimSpinningSparkle,
}; };
const struct SpriteTemplate gSpriteTemplate_83BF498 = // Unused
static const struct SpriteTemplate sFlickeringFootSpriteTemplate =
{ {
.tileTag = ANIM_TAG_MONSTER_FOOT, .tileTag = ANIM_TAG_MONSTER_FOOT,
.paletteTag = ANIM_TAG_MONSTER_FOOT, .paletteTag = ANIM_TAG_MONSTER_FOOT,
@@ -127,92 +128,95 @@ const struct SpriteTemplate gSpriteTemplate_83BF498 =
.callback = AnimTranslateLinearAndFlicker, .callback = AnimTranslateLinearAndFlicker,
}; };
static const union AnimCmd sUnknown_83BF4B0[] = static const union AnimCmd sAnim_FlickeringImpact_0[] =
{ {
ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(0, 5),
ANIMCMD_JUMP(0) ANIMCMD_JUMP(0)
}; };
static const union AnimCmd sUnknown_83BF4B8[] = static const union AnimCmd sAnim_FlickeringImpact_1[] =
{ {
ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(0, 5),
ANIMCMD_JUMP(0) ANIMCMD_JUMP(0)
}; };
static const union AnimCmd sUnknown_83BF4C0[] = static const union AnimCmd sAnim_FlickeringImpact_2[] =
{ {
ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(0, 5),
ANIMCMD_JUMP(0) ANIMCMD_JUMP(0)
}; };
static const union AnimCmd *const sSpriteAniimTable_83BF4C8[] = static const union AnimCmd *const sAnims_FlickeringImpact[] =
{ {
sUnknown_83BF4B0, sAnim_FlickeringImpact_0,
sUnknown_83BF4B8, sAnim_FlickeringImpact_1,
sUnknown_83BF4C0 sAnim_FlickeringImpact_2
}; };
const struct SpriteTemplate gSpriteTemplate_83BF4D4 = // Unused
static const struct SpriteTemplate sFlickeringImpactSpriteTemplate =
{ {
.tileTag = ANIM_TAG_IMPACT, .tileTag = ANIM_TAG_IMPACT,
.paletteTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT,
.oam = &gOamData_AffineOff_ObjNormal_32x32, .oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = sSpriteAniimTable_83BF4C8, .anims = sAnims_FlickeringImpact,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimTranslateLinearAndFlicker, .callback = AnimTranslateLinearAndFlicker,
}; };
static const union AnimCmd sUnknown_83BF4EC[] = static const union AnimCmd sAnim_FlickeringShrinkOrb[] =
{ {
ANIMCMD_FRAME(0, 15), ANIMCMD_FRAME(0, 15),
ANIMCMD_JUMP(0) ANIMCMD_JUMP(0)
}; };
static const union AnimCmd *const sSpriteAnimTable_83BF4F4[] = static const union AnimCmd *const sAnims_FlickeringShrinkOrb[] =
{ {
sUnknown_83BF4EC sAnim_FlickeringShrinkOrb
}; };
static const union AffineAnimCmd sUnknown_83BF4F8[] = static const union AffineAnimCmd sAffineAnim_FlickeringShrinkOrb[] =
{ {
AFFINEANIMCMD_FRAME(96, 96, 0, 0), AFFINEANIMCMD_FRAME(96, 96, 0, 0),
AFFINEANIMCMD_FRAME(2, 2, 0, 1), AFFINEANIMCMD_FRAME(2, 2, 0, 1),
AFFINEANIMCMD_JUMP(1) AFFINEANIMCMD_JUMP(1)
}; };
static const union AffineAnimCmd *const sSpriteAffineAnimTable_83BF510[] = static const union AffineAnimCmd *const sAffineAnims_FlickeringShrinkOrb[] =
{ {
sUnknown_83BF4F8 sAffineAnim_FlickeringShrinkOrb
}; };
const struct SpriteTemplate gSpriteTemplate_83BF514 = // Unused
static const struct SpriteTemplate sFlickeringShrinkOrbSpriteTemplate =
{ {
.tileTag = ANIM_TAG_ORB, .tileTag = ANIM_TAG_ORB,
.paletteTag = ANIM_TAG_ORB, .paletteTag = ANIM_TAG_ORB,
.oam = &gOamData_AffineDouble_ObjNormal_16x16, .oam = &gOamData_AffineDouble_ObjNormal_16x16,
.anims = sSpriteAnimTable_83BF4F4, .anims = sAnims_FlickeringShrinkOrb,
.images = NULL, .images = NULL,
.affineAnims = sSpriteAffineAnimTable_83BF510, .affineAnims = sAffineAnims_FlickeringShrinkOrb,
.callback = AnimTranslateLinearAndFlicker_Flipped, .callback = AnimTranslateLinearAndFlicker_Flipped,
}; };
static const u8 sUnknown_83BF52C[] = _("TASK OVER\nタスクがオ-バ-しました"); // Presumably some debug text
static const u8 sText_TaskOver[] = _("TASK OVER\nタスクがオ-バ-しました");
static const struct Subsprite sSubsprites_83BF544[] = static const struct Subsprite sFrozenIceCubeSubsprites[] =
{ {
{.x = -16, .y = -16, .shape = SPRITE_SHAPE(8x8), .size = 3, .tileOffset = 0, .priority = 2}, {.x = -16, .y = -16, .shape = SPRITE_SHAPE(64x64), .size = SPRITE_SIZE(64x64), .tileOffset = 0, .priority = 2},
{.x = -16, .y = 48, .shape = SPRITE_SHAPE(16x8), .size = 3, .tileOffset = 64, .priority = 2}, {.x = -16, .y = 48, .shape = SPRITE_SHAPE(64x32), .size = SPRITE_SIZE(64x32), .tileOffset = 64, .priority = 2},
{.x = 48, .y = -16, .shape = SPRITE_SHAPE(8x16), .size = 3, .tileOffset = 96, .priority = 2}, {.x = 48, .y = -16, .shape = SPRITE_SHAPE(32x64), .size = SPRITE_SIZE(32x64), .tileOffset = 96, .priority = 2},
{.x = 48, .y = 48, .shape = SPRITE_SHAPE(8x8), .size = 2, .tileOffset = 128, .priority = 2}, {.x = 48, .y = 48, .shape = SPRITE_SHAPE(32x32), .size = SPRITE_SIZE(32x32), .tileOffset = 128, .priority = 2},
}; };
static const struct SubspriteTable sUnknown_83BF554[] = static const struct SubspriteTable sFrozenIceCubeSubspriteTable[] =
{ {
{NELEMS(sSubsprites_83BF544), sSubsprites_83BF544}, {NELEMS(sFrozenIceCubeSubsprites), sFrozenIceCubeSubsprites},
}; };
static const struct SpriteTemplate sUnknown_83BF55C = static const struct SpriteTemplate sFrozenIceCubeSpriteTemplate =
{ {
.tileTag = ANIM_TAG_ICE_CUBE, .tileTag = ANIM_TAG_ICE_CUBE,
.paletteTag = ANIM_TAG_ICE_CUBE, .paletteTag = ANIM_TAG_ICE_CUBE,
@@ -223,7 +227,7 @@ static const struct SpriteTemplate sUnknown_83BF55C =
.callback = SpriteCallbackDummy, .callback = SpriteCallbackDummy,
}; };
static const struct SpriteTemplate sUnknown_83BF574 = static const struct SpriteTemplate sFlashingCircleImpactSpriteTemplate =
{ {
.tileTag = ANIM_TAG_CIRCLE_IMPACT, .tileTag = ANIM_TAG_CIRCLE_IMPACT,
.paletteTag = ANIM_TAG_CIRCLE_IMPACT, .paletteTag = ANIM_TAG_CIRCLE_IMPACT,
@@ -231,14 +235,14 @@ static const struct SpriteTemplate sUnknown_83BF574 =
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_807834C, .callback = AnimFlashingCircleImpact,
}; };
// Functions // Unused
static u8 sub_8078178(u8 battlerId, bool8 b) static u8 Task_FlashingCircleImpacts(u8 battlerId, bool8 b)
{ {
u8 battlerSpriteId = gBattlerSpriteIds[battlerId]; u8 battlerSpriteId = gBattlerSpriteIds[battlerId];
u8 taskId = CreateTask(sub_80782BC, 10); u8 taskId = CreateTask(Task_UpdateFlashingCircleImpacts, 10);
u8 spriteId2; u8 spriteId2;
u8 i; u8 i;
@@ -250,7 +254,7 @@ static u8 sub_8078178(u8 battlerId, bool8 b)
gTasks[taskId].data[1] = RGB_RED; gTasks[taskId].data[1] = RGB_RED;
for (i = 0; i < 10; i++) for (i = 0; i < 10; i++)
{ {
spriteId2 = CreateSprite(&sUnknown_83BF574, gSprites[battlerSpriteId].x, gSprites[battlerSpriteId].y + 32, 0); spriteId2 = CreateSprite(&sFlashingCircleImpactSpriteTemplate, gSprites[battlerSpriteId].x, gSprites[battlerSpriteId].y + 32, 0);
gSprites[spriteId2].data[0] = i * 51; gSprites[spriteId2].data[0] = i * 51;
gSprites[spriteId2].data[1] = -256; gSprites[spriteId2].data[1] = -256;
gSprites[spriteId2].invisible = TRUE; gSprites[spriteId2].invisible = TRUE;
@@ -263,7 +267,7 @@ static u8 sub_8078178(u8 battlerId, bool8 b)
gTasks[taskId].data[1] = RGB_BLUE; gTasks[taskId].data[1] = RGB_BLUE;
for (i = 0; i < 10; i++) for (i = 0; i < 10; i++)
{ {
spriteId2 = CreateSprite(&sUnknown_83BF574, gSprites[battlerSpriteId].x, gSprites[battlerSpriteId].y - 32, 0); spriteId2 = CreateSprite(&sFlashingCircleImpactSpriteTemplate, gSprites[battlerSpriteId].x, gSprites[battlerSpriteId].y - 32, 0);
gSprites[spriteId2].data[0] = i * 51; gSprites[spriteId2].data[0] = i * 51;
gSprites[spriteId2].data[1] = 256; gSprites[spriteId2].data[1] = 256;
gSprites[spriteId2].invisible = TRUE; gSprites[spriteId2].invisible = TRUE;
@@ -275,7 +279,7 @@ static u8 sub_8078178(u8 battlerId, bool8 b)
return taskId; return taskId;
} }
static void sub_80782BC(u8 taskId) static void Task_UpdateFlashingCircleImpacts(u8 taskId)
{ {
if (gTasks[taskId].data[2] == 2) if (gTasks[taskId].data[2] == 2)
{ {
@@ -308,13 +312,13 @@ static void sub_80782BC(u8 taskId)
} }
} }
static void sub_807834C(struct Sprite *sprite) static void AnimFlashingCircleImpact(struct Sprite *sprite)
{ {
if (sprite->data[6] == 0) if (sprite->data[6] == 0)
{ {
sprite->invisible = FALSE; sprite->invisible = FALSE;
sprite->callback = sub_8078380; sprite->callback = AnimFlashingCircleImpact_Step;
sub_8078380(sprite); sprite->callback(sprite);
} }
else else
{ {
@@ -322,7 +326,7 @@ static void sub_807834C(struct Sprite *sprite)
} }
} }
static void sub_8078380(struct Sprite *sprite) static void AnimFlashingCircleImpact_Step(struct Sprite *sprite)
{ {
sprite->x2 = Cos(sprite->data[0], 32); sprite->x2 = Cos(sprite->data[0], 32);
sprite->y2 = Sin(sprite->data[0], 8); sprite->y2 = Sin(sprite->data[0], 8);
@@ -354,21 +358,21 @@ void AnimTask_FrozenIceCube(u8 taskId)
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
spriteId = CreateSprite(&sUnknown_83BF55C, x, y, 4); spriteId = CreateSprite(&sFrozenIceCubeSpriteTemplate, x, y, 4);
if (GetSpriteTileStartByTag(ANIM_TAG_ICE_CUBE) == TAG_NONE) if (GetSpriteTileStartByTag(ANIM_TAG_ICE_CUBE) == 0xFFFF)
gSprites[spriteId].invisible = TRUE; gSprites[spriteId].invisible = TRUE;
SetSubspriteTables(&gSprites[spriteId], sUnknown_83BF554); SetSubspriteTables(&gSprites[spriteId], sFrozenIceCubeSubspriteTable);
gTasks[taskId].data[15] = spriteId; gTasks[taskId].data[15] = spriteId;
gTasks[taskId].func = sub_80784D8; gTasks[taskId].func = AnimTask_FrozenIceCube_Step1;
} }
static void sub_80784D8(u8 taskId) static void AnimTask_FrozenIceCube_Step1(u8 taskId)
{ {
gTasks[taskId].data[1]++; gTasks[taskId].data[1]++;
if (gTasks[taskId].data[1] == 10) if (gTasks[taskId].data[1] == 10)
{ {
gTasks[taskId].func = sub_8078528; gTasks[taskId].func = AnimTask_FrozenIceCube_Step2;
gTasks[taskId].data[1] = 0; gTasks[taskId].data[1] = 0;
} }
else else
@@ -379,7 +383,7 @@ static void sub_80784D8(u8 taskId)
} }
} }
static void sub_8078528(u8 taskId) static void AnimTask_FrozenIceCube_Step2(u8 taskId)
{ {
u8 palIndex = IndexOfSpritePaletteTag(ANIM_TAG_ICE_CUBE); u8 palIndex = IndexOfSpritePaletteTag(ANIM_TAG_ICE_CUBE);
@@ -405,19 +409,19 @@ static void sub_8078528(u8 taskId)
if (gTasks[taskId].data[4] == 2) if (gTasks[taskId].data[4] == 2)
{ {
gTasks[taskId].data[1] = 9; gTasks[taskId].data[1] = 9;
gTasks[taskId].func = sub_80785D8; gTasks[taskId].func = AnimTask_FrozenIceCube_Step3;
} }
} }
} }
} }
} }
static void sub_80785D8(u8 taskId) static void AnimTask_FrozenIceCube_Step3(u8 taskId)
{ {
gTasks[taskId].data[1]--; gTasks[taskId].data[1]--;
if (gTasks[taskId].data[1] == -1) if (gTasks[taskId].data[1] == -1)
{ {
gTasks[taskId].func = sub_807862C; gTasks[taskId].func = AnimTask_FrozenIceCube_Step4;
gTasks[taskId].data[1] = 0; gTasks[taskId].data[1] = 0;
} }
else else
@@ -428,7 +432,7 @@ static void sub_80785D8(u8 taskId)
} }
} }
static void sub_807862C(u8 taskId) static void AnimTask_FrozenIceCube_Step4(u8 taskId)
{ {
gTasks[taskId].data[1]++; gTasks[taskId].data[1]++;
if (gTasks[taskId].data[1] == 37) if (gTasks[taskId].data[1] == 37)
+2 -2
View File
@@ -915,8 +915,8 @@ const u32 gBattleAnimSpriteGfx_TagHand[] = INCBIN_U32("graphics/battle_anims/spr
const u32 gBattleAnimSpriteGfx_NoiseLine[] = INCBIN_U32("graphics/battle_anims/sprites/noise_line.4bpp.lz"); const u32 gBattleAnimSpriteGfx_NoiseLine[] = INCBIN_U32("graphics/battle_anims/sprites/noise_line.4bpp.lz");
const u32 gUnknown_D2EC24_Gfx[] = INCBIN_U32("graphics/battle_anims/masks/unknown_D2EC24.4bpp.lz"); const u32 gUnusedLevelupAnimationGfx[] = INCBIN_U32("graphics/battle_anims/masks/unknown_D2EC24.4bpp.lz");
const u32 gUnknown_D2EC24_Tilemap[] = INCBIN_U32("graphics/battle_anims/masks/unknown_D2EC24.bin.lz"); const u32 gUnusedLevelupAnimationTilemap[] = INCBIN_U32("graphics/battle_anims/masks/unknown_D2EC24.bin.lz");
const u32 gBattleAnimSpriteGfx_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.4bpp.lz"); const u32 gBattleAnimSpriteGfx_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.4bpp.lz");
const u32 gBattleAnimSpritePal_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.gbapal.lz"); const u32 gBattleAnimSpritePal_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.gbapal.lz");