summaryrefslogtreecommitdiff
path: root/src/battle_anim_special.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle_anim_special.c')
-rwxr-xr-xsrc/battle_anim_special.c442
1 files changed, 223 insertions, 219 deletions
diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c
index 92874fe09..740340d14 100755
--- a/src/battle_anim_special.c
+++ b/src/battle_anim_special.c
@@ -16,9 +16,10 @@
#include "task.h"
#include "trig.h"
#include "util.h"
-#include "constants/rgb.h"
#include "constants/items.h"
+#include "constants/moves.h"
#include "constants/songs.h"
+#include "constants/rgb.h"
// iwram
int gUnknown_030062DC;
@@ -103,39 +104,52 @@ static const struct BallCaptureSuccessStarData sBallCaptureSuccessStarData[] =
},
};
-const struct CompressedSpriteSheet gBallOpenParticleSpritesheets[] =
-{
- {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6EC},
- {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6ED},
- {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6EE},
- {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6EF},
- {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F0},
- {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F1},
- {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F2},
- {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F3},
- {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F4},
- {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F5},
- {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F6},
- {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F7},
+#define TAG_PARTICLES_POKEBALL 55020
+#define TAG_PARTICLES_GREATBALL 55021
+#define TAG_PARTICLES_SAFARIBALL 55022
+#define TAG_PARTICLES_ULTRABALL 55023
+#define TAG_PARTICLES_MASTERBALL 55024
+#define TAG_PARTICLES_NETBALL 55025
+#define TAG_PARTICLES_DIVEBALL 55026
+#define TAG_PARTICLES_NESTBALL 55027
+#define TAG_PARTICLES_REPEATBALL 55028
+#define TAG_PARTICLES_TIMERBALL 55029
+#define TAG_PARTICLES_LUXURYBALL 55030
+#define TAG_PARTICLES_PREMIERBALL 55031
+
+const struct CompressedSpriteSheet gBallParticleSpritesheets[] =
+{
+ {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_POKEBALL},
+ {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_GREATBALL},
+ {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_SAFARIBALL},
+ {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_ULTRABALL},
+ {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_MASTERBALL},
+ {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_NETBALL},
+ {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_DIVEBALL},
+ {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_NESTBALL},
+ {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_REPEATBALL},
+ {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_TIMERBALL},
+ {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_LUXURYBALL},
+ {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_PREMIERBALL},
};
-const struct CompressedSpritePalette gBallOpenParticlePalettes[] =
-{
- {gBattleAnimSpritePalette_136, 0xD6EC},
- {gBattleAnimSpritePalette_136, 0xD6ED},
- {gBattleAnimSpritePalette_136, 0xD6EE},
- {gBattleAnimSpritePalette_136, 0xD6EF},
- {gBattleAnimSpritePalette_136, 0xD6F0},
- {gBattleAnimSpritePalette_136, 0xD6F1},
- {gBattleAnimSpritePalette_136, 0xD6F2},
- {gBattleAnimSpritePalette_136, 0xD6F3},
- {gBattleAnimSpritePalette_136, 0xD6F4},
- {gBattleAnimSpritePalette_136, 0xD6F5},
- {gBattleAnimSpritePalette_136, 0xD6F6},
- {gBattleAnimSpritePalette_136, 0xD6F7},
+const struct CompressedSpritePalette gBallParticlePalettes[] =
+{
+ {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_POKEBALL},
+ {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_GREATBALL},
+ {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_SAFARIBALL},
+ {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_ULTRABALL},
+ {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_MASTERBALL},
+ {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_NETBALL},
+ {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_DIVEBALL},
+ {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_NESTBALL},
+ {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_REPEATBALL},
+ {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_TIMERBALL},
+ {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_LUXURYBALL},
+ {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_PREMIERBALL},
};
-const union AnimCmd gUnknown_085E5154[] =
+const union AnimCmd gAnim_RegularBall[] =
{
ANIMCMD_FRAME(0, 1),
ANIMCMD_FRAME(1, 1),
@@ -146,64 +160,64 @@ const union AnimCmd gUnknown_085E5154[] =
ANIMCMD_JUMP(0),
};
-const union AnimCmd gUnknown_085E5170[] =
+const union AnimCmd gAnim_MasterBall[] =
{
ANIMCMD_FRAME(3, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_085E5178[] =
+const union AnimCmd gAnim_NetDiveBall[] =
{
ANIMCMD_FRAME(4, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_085E5180[] =
+const union AnimCmd gAnim_NestBall[] =
{
ANIMCMD_FRAME(5, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_085E5188[] =
+const union AnimCmd gAnim_LuxuryPremierBall[] =
{
ANIMCMD_FRAME(6, 4),
ANIMCMD_FRAME(7, 4),
ANIMCMD_JUMP(0),
};
-const union AnimCmd gUnknown_085E5194[] =
+const union AnimCmd gAnim_UltraRepeatTimerBall[] =
{
ANIMCMD_FRAME(7, 4),
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_085E519C[] =
+const union AnimCmd *const gAnims_BallParticles[] =
{
- gUnknown_085E5154,
- gUnknown_085E5170,
- gUnknown_085E5178,
- gUnknown_085E5180,
- gUnknown_085E5188,
- gUnknown_085E5194,
+ gAnim_RegularBall,
+ gAnim_MasterBall,
+ gAnim_NetDiveBall,
+ gAnim_NestBall,
+ gAnim_LuxuryPremierBall,
+ gAnim_UltraRepeatTimerBall,
};
-const u8 gBallOpenParticleAnimNums[] =
-{
- 0,
- 0,
- 0,
- 5,
- 1,
- 2,
- 2,
- 3,
- 5,
- 5,
- 4,
- 4,
+const u8 gBallParticleAnimNums[] =
+{
+ [BALL_POKE] = 0,
+ [BALL_GREAT] = 0,
+ [BALL_SAFARI] = 0,
+ [BALL_ULTRA] = 5,
+ [BALL_MASTER] = 1,
+ [BALL_NET] = 2,
+ [BALL_DIVE] = 2,
+ [BALL_NEST] = 3,
+ [BALL_REPEAT] = 5,
+ [BALL_TIMER] = 5,
+ [BALL_LUXURY] = 4,
+ [BALL_PREMIER] = 4,
};
-const TaskFunc gBallOpenParticleAnimationFuncs[] =
+const TaskFunc gBallParticleAnimationFuncs[] =
{
PokeBallOpenParticleAnimation,
GreatBallOpenParticleAnimation,
@@ -219,132 +233,134 @@ const TaskFunc gBallOpenParticleAnimationFuncs[] =
PremierBallOpenParticleAnimation,
};
-const struct SpriteTemplate gUnknown_085E51F0[] =
+const struct SpriteTemplate gBallParticlesSpriteTemplates[] =
{
{
- .tileTag = 55020,
- .paletteTag = 55020,
+ .tileTag = TAG_PARTICLES_POKEBALL,
+ .paletteTag = TAG_PARTICLES_POKEBALL,
.oam = &gUnknown_08524904,
- .anims = gUnknown_085E519C,
+ .anims = gAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
- .tileTag = 55021,
- .paletteTag = 55021,
+ .tileTag = TAG_PARTICLES_GREATBALL,
+ .paletteTag = TAG_PARTICLES_GREATBALL,
.oam = &gUnknown_08524904,
- .anims = gUnknown_085E519C,
+ .anims = gAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
- .tileTag = 55022,
- .paletteTag = 55022,
+ .tileTag = TAG_PARTICLES_SAFARIBALL,
+ .paletteTag = TAG_PARTICLES_SAFARIBALL,
.oam = &gUnknown_08524904,
- .anims = gUnknown_085E519C,
+ .anims = gAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
- .tileTag = 55023,
- .paletteTag = 55023,
+ .tileTag = TAG_PARTICLES_ULTRABALL,
+ .paletteTag = TAG_PARTICLES_ULTRABALL,
.oam = &gUnknown_08524904,
- .anims = gUnknown_085E519C,
+ .anims = gAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
- .tileTag = 55024,
- .paletteTag = 55024,
+ .tileTag = TAG_PARTICLES_MASTERBALL,
+ .paletteTag = TAG_PARTICLES_MASTERBALL,
.oam = &gUnknown_08524904,
- .anims = gUnknown_085E519C,
+ .anims = gAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
- .tileTag = 55025,
- .paletteTag = 55025,
+ .tileTag = TAG_PARTICLES_NETBALL,
+ .paletteTag = TAG_PARTICLES_NETBALL,
.oam = &gUnknown_08524904,
- .anims = gUnknown_085E519C,
+ .anims = gAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
- .tileTag = 55026,
- .paletteTag = 55026,
+ .tileTag = TAG_PARTICLES_DIVEBALL,
+ .paletteTag = TAG_PARTICLES_DIVEBALL,
.oam = &gUnknown_08524904,
- .anims = gUnknown_085E519C,
+ .anims = gAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
- .tileTag = 55027,
- .paletteTag = 55027,
+ .tileTag = TAG_PARTICLES_NESTBALL,
+ .paletteTag = TAG_PARTICLES_NESTBALL,
.oam = &gUnknown_08524904,
- .anims = gUnknown_085E519C,
+ .anims = gAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
- .tileTag = 55028,
- .paletteTag = 55028,
+ .tileTag = TAG_PARTICLES_REPEATBALL,
+ .paletteTag = TAG_PARTICLES_REPEATBALL,
.oam = &gUnknown_08524904,
- .anims = gUnknown_085E519C,
+ .anims = gAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
- .tileTag = 55029,
- .paletteTag = 55029,
+ .tileTag = TAG_PARTICLES_TIMERBALL,
+ .paletteTag = TAG_PARTICLES_TIMERBALL,
.oam = &gUnknown_08524904,
- .anims = gUnknown_085E519C,
+ .anims = gAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
- .tileTag = 55030,
- .paletteTag = 55030,
+ .tileTag = TAG_PARTICLES_LUXURYBALL,
+ .paletteTag = TAG_PARTICLES_LUXURYBALL,
.oam = &gUnknown_08524904,
- .anims = gUnknown_085E519C,
+ .anims = gAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
- .tileTag = 55031,
- .paletteTag = 55031,
+ .tileTag = TAG_PARTICLES_PREMIERBALL,
+ .paletteTag = TAG_PARTICLES_PREMIERBALL,
.oam = &gUnknown_08524904,
- .anims = gUnknown_085E519C,
+ .anims = gAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
};
-const u16 gUnknown_085E5310[] =
-{
- RGB(31, 22, 30),
- RGB(16, 23, 30),
- RGB(23, 30, 20),
- RGB(31, 31, 15),
- RGB(23, 20, 28),
- RGB(21, 31, 25),
- RGB(12, 25, 30),
- RGB(30, 27, 10),
- RGB(31, 24, 16),
- RGB(29, 30, 30),
- RGB(31, 17, 10),
- RGB(31, 9, 10),
+const u16 gBallOpenFadeColors[] =
+{
+ [BALL_POKE] = RGB(31, 22, 30),
+ [BALL_GREAT] = RGB(16, 23, 30),
+ [BALL_SAFARI] = RGB(23, 30, 20),
+ [BALL_ULTRA] = RGB(31, 31, 15),
+ [BALL_MASTER] = RGB(23, 20, 28),
+ [BALL_NET] = RGB(21, 31, 25),
+ [BALL_DIVE] = RGB(12, 25, 30),
+ [BALL_NEST] = RGB(30, 27, 10),
+ [BALL_REPEAT] = RGB(31, 24, 16),
+ [BALL_TIMER] = RGB(29, 30, 30),
+ [BALL_LUXURY] = RGB(31, 17, 10),
+ [BALL_PREMIER] = RGB(31, 9, 10),
+
+ // Garbage data
RGB(0, 0, 0),
RGB(1, 16, 0),
RGB(3, 0, 1),
@@ -355,10 +371,10 @@ const u16 gUnknown_085E5310[] =
RGB(4, 0, 0),
};
-const struct SpriteTemplate gBattleAnimSpriteTemplate_85E5338 =
+const struct SpriteTemplate gPokeblockSpriteTemplate =
{
- .tileTag = ANIM_TAG_UNUSED_RED_BRICK,
- .paletteTag = ANIM_TAG_UNUSED_RED_BRICK,
+ .tileTag = ANIM_TAG_POKEBLOCK,
+ .paletteTag = ANIM_TAG_POKEBLOCK,
.oam = &gUnknown_0852490C,
.anims = gDummySpriteAnimTable,
.images = NULL,
@@ -675,9 +691,9 @@ void sub_8170D24(u8 taskId)
void AnimTask_IsBallBlockedByTrainer(u8 taskId)
{
if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_TRAINER_BLOCK)
- gBattleAnimArgs[7] = -1;
+ gBattleAnimArgs[ARG_RET_ID] = -1;
else
- gBattleAnimArgs[7] = 0;
+ gBattleAnimArgs[ARG_RET_ID] = 0;
DestroyAnimVisualTask(taskId);
}
@@ -687,30 +703,30 @@ u8 ItemIdToBallId(u16 ballItem)
switch (ballItem)
{
case ITEM_MASTER_BALL:
- return 4;
+ return BALL_MASTER;
case ITEM_ULTRA_BALL:
- return 3;
+ return BALL_ULTRA;
case ITEM_GREAT_BALL:
- return 1;
+ return BALL_GREAT;
case ITEM_SAFARI_BALL:
- return 2;
+ return BALL_SAFARI;
case ITEM_NET_BALL:
- return 5;
+ return BALL_NET;
case ITEM_DIVE_BALL:
- return 6;
+ return BALL_DIVE;
case ITEM_NEST_BALL:
- return 7;
+ return BALL_NEST;
case ITEM_REPEAT_BALL:
- return 8;
+ return BALL_REPEAT;
case ITEM_TIMER_BALL:
- return 9;
+ return BALL_TIMER;
case ITEM_LUXURY_BALL:
- return 10;
+ return BALL_LUXURY;
case ITEM_PREMIER_BALL:
- return 11;
+ return BALL_PREMIER;
case ITEM_POKE_BALL:
default:
- return 0;
+ return BALL_POKE;
}
}
@@ -804,7 +820,6 @@ static void sub_8171134(struct Sprite *sprite)
{
int i;
u8 ballId;
- int ballId2; // extra var needed to match
if (TranslateAnimHorizontalArc(sprite))
{
@@ -825,15 +840,15 @@ static void sub_8171134(struct Sprite *sprite)
sprite->data[5] = 0;
sprite->callback = sub_81711E8;
+
ballId = ItemIdToBallId(gLastUsedItem);
- ballId2 = ballId;
- if (ballId2 > 11)
- return;
- if (ballId2 < 0)
- return;
-
- AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId);
- LaunchBallFadeMonTask(0, gBattleAnimTarget, 14, ballId);
+ switch (ballId)
+ {
+ case 0 ... POKEBALL_COUNT - 1:
+ AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId);
+ LaunchBallFadeMonTask(0, gBattleAnimTarget, 14, ballId);
+ break;
+ }
}
}
}
@@ -1259,7 +1274,7 @@ static void sub_81719EC(struct Sprite *sprite)
sub_8171D60(4);
for (i = 0; i < 3; i++)
{
- u8 spriteId = CreateSprite(&gUnknown_085E51F0[4], sprite->pos1.x, sprite->pos1.y, subpriority);
+ u8 spriteId = CreateSprite(&gBallParticlesSpriteTemplates[4], sprite->pos1.x, sprite->pos1.y, subpriority);
if (spriteId != MAX_SPRITES)
{
gSprites[spriteId].data[0] = 24;
@@ -1268,7 +1283,7 @@ static void sub_81719EC(struct Sprite *sprite)
gSprites[spriteId].data[5] = sBallCaptureSuccessStarData[i].unk2;
InitAnimArcTranslation(&gSprites[spriteId]);
gSprites[spriteId].callback = sub_8171AAC;
- StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[4]);
+ StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[4]);
}
}
}
@@ -1280,28 +1295,23 @@ static void sub_8171AAC(struct Sprite *sprite)
DestroySprite(sprite);
}
-// fakematching. I think the return type of ItemIdToBallId()
-// is wrong because of the weird required casting.
static void sub_8171AE4(struct Sprite *sprite)
{
u8 ballId;
- int ballId2; // extra var needed to match
StartSpriteAnim(sprite, 1);
StartSpriteAffineAnim(sprite, 0);
sprite->callback = sub_8171BAC;
ballId = ItemIdToBallId(gLastUsedItem);
- ballId2 = ballId;
- if (ballId2 > 11)
- goto LABEL;
- if (ballId2 < 0)
- goto LABEL;
-
- AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId);
- LaunchBallFadeMonTask(1, gBattleAnimTarget, 14, ballId);
+ switch (ballId)
+ {
+ case 0 ... POKEBALL_COUNT - 1:
+ AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId);
+ LaunchBallFadeMonTask(1, gBattleAnimTarget, 14, ballId);
+ break;
+ }
- LABEL:
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = 0;
StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]], 1);
AnimateSprite(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]]);
@@ -1314,7 +1324,7 @@ static void sub_8171BAC(struct Sprite *sprite)
if (sprite->animEnded)
sprite->invisible = 1;
-
+
if (gSprites[gBattlerSpriteIds[gBattleAnimTarget]].affineAnimEnded)
{
StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]], 0);
@@ -1323,7 +1333,7 @@ static void sub_8171BAC(struct Sprite *sprite)
else
{
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] -= 288;
- gSprites[gBattlerSpriteIds[gBattleAnimTarget]].pos2.y = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] >> 8;
+ gSprites[gBattlerSpriteIds[gBattleAnimTarget]].pos2.y = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] >> 8;
}
if (sprite->animEnded && next)
@@ -1374,10 +1384,10 @@ static void sub_8171D60(u8 ballId)
{
u8 taskId;
- if (GetSpriteTileStartByTag(gBallOpenParticleSpritesheets[ballId].tag) == 0xFFFF)
+ if (GetSpriteTileStartByTag(gBallParticleSpritesheets[ballId].tag) == 0xFFFF)
{
- LoadCompressedSpriteSheetUsingHeap(&gBallOpenParticleSpritesheets[ballId]);
- LoadCompressedSpritePaletteUsingHeap(&gBallOpenParticlePalettes[ballId]);
+ LoadCompressedSpriteSheetUsingHeap(&gBallParticleSpritesheets[ballId]);
+ LoadCompressedSpritePaletteUsingHeap(&gBallParticlePalettes[ballId]);
}
}
@@ -1386,7 +1396,7 @@ u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId)
u8 taskId;
sub_8171D60(ballId);
- taskId = CreateTask(gBallOpenParticleAnimationFuncs[ballId], 5);
+ taskId = CreateTask(gBallParticleAnimationFuncs[ballId], 5);
gTasks[taskId].data[1] = x;
gTasks[taskId].data[2] = y;
gTasks[taskId].data[3] = priority;
@@ -1419,11 +1429,11 @@ static void PokeBallOpenParticleAnimation(u8 taskId)
priority = gTasks[taskId].data[3];
subpriority = gTasks[taskId].data[4];
- spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority);
+ spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
sub_8171E20();
- StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]);
+ StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = PokeBallOpenParticleAnimation_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1478,11 +1488,11 @@ static void TimerBallOpenParticleAnimation(u8 taskId)
for (i = 0; i < 8; i++)
{
- spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority);
+ spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
sub_8171E20();
- StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]);
+ StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = FanOutBallOpenParticles_Step1;
gSprites[spriteId].oam.priority = priority;
gSprites[spriteId].data[0] = i * 32;
@@ -1512,11 +1522,11 @@ static void DiveBallOpenParticleAnimation(u8 taskId)
for (i = 0; i < 8; i++)
{
- spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority);
+ spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
sub_8171E20();
- StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]);
+ StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = FanOutBallOpenParticles_Step1;
gSprites[spriteId].oam.priority = priority;
gSprites[spriteId].data[0] = i * 32;
@@ -1547,11 +1557,11 @@ static void SafariBallOpenParticleAnimation(u8 taskId)
for (i = 0; i < 8; i++)
{
- spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority);
+ spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
sub_8171E20();
- StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]);
+ StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = FanOutBallOpenParticles_Step1;
gSprites[spriteId].oam.priority = priority;
gSprites[spriteId].data[0] = i * 32;
@@ -1582,11 +1592,11 @@ static void UltraBallOpenParticleAnimation(u8 taskId)
for (i = 0; i < 10; i++)
{
- spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority);
+ spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
sub_8171E20();
- StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]);
+ StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = FanOutBallOpenParticles_Step1;
gSprites[spriteId].oam.priority = priority;
gSprites[spriteId].data[0] = i * 25;
@@ -1623,11 +1633,11 @@ static void GreatBallOpenParticleAnimation(u8 taskId)
for (i = 0; i < 8; i++)
{
- spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority);
+ spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
sub_8171E20();
- StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]);
+ StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = FanOutBallOpenParticles_Step1;
gSprites[spriteId].oam.priority = priority;
gSprites[spriteId].data[0] = i * 32;
@@ -1671,13 +1681,13 @@ static void RepeatBallOpenParticleAnimation(u8 taskId)
priority = gTasks[taskId].data[3];
subpriority = gTasks[taskId].data[4];
- for (i = 0; i < 12; i++)
+ for (i = 0; i < POKEBALL_COUNT; i++)
{
- spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority);
+ spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
sub_8171E20();
- StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]);
+ StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = RepeatBallOpenParticleAnimation_Step1;
gSprites[spriteId].oam.priority = priority;
gSprites[spriteId].data[0] = i * 21;
@@ -1717,11 +1727,11 @@ static void MasterBallOpenParticleAnimation(u8 taskId)
{
for (i = 0; i < 8; i++)
{
- spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority);
+ spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
sub_8171E20();
- StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]);
+ StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = FanOutBallOpenParticles_Step1;
gSprites[spriteId].oam.priority = priority;
gSprites[spriteId].data[0] = i * 32;
@@ -1761,11 +1771,11 @@ static void PremierBallOpenParticleAnimation(u8 taskId)
for (i = 0; i < 8; i++)
{
- spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority);
+ spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
sub_8171E20();
- StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]);
+ StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = PremierBallOpenParticleAnimation_Step1;
gSprites[spriteId].oam.priority = priority;
gSprites[spriteId].data[0] = i * 32;
@@ -1792,12 +1802,10 @@ static void PremierBallOpenParticleAnimation_Step1(struct Sprite *sprite)
static void DestroyBallOpenAnimationParticle(struct Sprite *sprite)
{
int i, j;
- int temp;
if (!gMain.inBattle)
{
- temp = sprite->data[7]; // temp var needed to match
- if (temp == 1)
+ if (sprite->data[7] == 1)
DestroySpriteAndFreeResources(sprite);
else
DestroySprite(sprite);
@@ -1807,18 +1815,18 @@ static void DestroyBallOpenAnimationParticle(struct Sprite *sprite)
gBattleSpritesDataPtr->animationData->field_A--;
if (gBattleSpritesDataPtr->animationData->field_A == 0)
{
- for (i = 0; i < 12; i++)
+ for (i = 0; i < POKEBALL_COUNT; i++)
{
- if (FuncIsActiveTask(gBallOpenParticleAnimationFuncs[i]) == TRUE)
+ if (FuncIsActiveTask(gBallParticleAnimationFuncs[i]) == TRUE)
break;
}
- if (i == 12)
+ if (i == POKEBALL_COUNT)
{
- for (j = 0; j < 12; j++)
+ for (j = 0; j < POKEBALL_COUNT; j++)
{
- FreeSpriteTilesByTag(gBallOpenParticleSpritesheets[j].tag);
- FreeSpritePaletteByTag(gBallOpenParticlePalettes[j].tag);
+ FreeSpriteTilesByTag(gBallParticleSpritesheets[j].tag);
+ FreeSpritePaletteByTag(gBallParticlePalettes[j].tag);
}
}
@@ -1843,12 +1851,12 @@ u8 LaunchBallFadeMonTask(u8 unfadeLater, u8 battler, u32 selectedPalettes, u8 ba
if (!unfadeLater)
{
- BlendPalette(battler * 16 + 0x100, 16, 0, gUnknown_085E5310[ballId]);
+ BlendPalette(battler * 16 + 0x100, 16, 0, gBallOpenFadeColors[ballId]);
gTasks[taskId].data[1] = 1;
}
else
{
- BlendPalette(battler * 16 + 0x100, 16, 16, gUnknown_085E5310[ballId]);
+ BlendPalette(battler * 16 + 0x100, 16, 16, gBallOpenFadeColors[ballId]);
gTasks[taskId].data[0] = 16;
gTasks[taskId].data[1] = -1;
gTasks[taskId].func = sub_8172B40;
@@ -1864,7 +1872,7 @@ static void sub_8172AB0(u8 taskId)
if (gTasks[taskId].data[2] <= 16)
{
- BlendPalette(gTasks[taskId].data[3] * 16 + 0x100, 16, gTasks[taskId].data[0], gUnknown_085E5310[ballId]);
+ BlendPalette(gTasks[taskId].data[3] * 16 + 0x100, 16, gTasks[taskId].data[0], gBallOpenFadeColors[ballId]);
gTasks[taskId].data[0] += gTasks[taskId].data[1];
gTasks[taskId].data[2]++;
}
@@ -1892,7 +1900,7 @@ static void sub_8172B90(u8 taskId)
if (gTasks[taskId].data[2] <= 16)
{
- BlendPalette(gTasks[taskId].data[3] * 16 + 0x100, 16, gTasks[taskId].data[0], gUnknown_085E5310[ballId]);
+ BlendPalette(gTasks[taskId].data[3] * 16 + 0x100, 16, gTasks[taskId].data[0], gBallOpenFadeColors[ballId]);
gTasks[taskId].data[0] += gTasks[taskId].data[1];
gTasks[taskId].data[2]++;
}
@@ -1906,9 +1914,8 @@ void sub_8172BF0(u8 taskId)
{
u8 spriteId;
u32 x;
- u32 done;
-
- done = FALSE;
+ u32 done = FALSE;
+
spriteId = gBattlerSpriteIds[gBattleAnimAttacker];
switch (gTasks[taskId].data[10])
{
@@ -1942,8 +1949,7 @@ void sub_8172BF0(u8 taskId)
if (gSprites[spriteId].pos2.x <= 0)
{
gSprites[spriteId].pos2.x = 0;
- // done = FALSE; // fakematching--can't get the tail merge correct
- goto DONE;
+ done = TRUE;
}
}
else
@@ -1956,10 +1962,8 @@ void sub_8172BF0(u8 taskId)
}
if (done)
- {
- DONE:
DestroyAnimVisualTask(taskId);
- }
+
break;
}
}
@@ -1998,13 +2002,13 @@ void sub_8172D98(u8 taskId)
}
}
-void sub_8172E9C(u8 taskId)
+void AnimTask_IsAttackerBehindSubstitute(u8 taskId)
{
- gBattleAnimArgs[7] = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].behindSubstitute;
+ gBattleAnimArgs[ARG_RET_ID] = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].behindSubstitute;
DestroyAnimVisualTask(taskId);
}
-void sub_8172ED0(u8 taskId)
+void AnimTask_TargetToEffectBattler(u8 taskId)
{
gBattleAnimTarget = gEffectBattler;
DestroyAnimVisualTask(taskId);
@@ -2030,10 +2034,10 @@ void sub_8172EF0(u8 battler, struct Pokemon *mon)
if (isShiny)
{
- if (GetSpriteTileStartByTag(0x27F9) == 0xFFFF)
+ if (GetSpriteTileStartByTag(ANIM_TAG_GOLD_STARS) == 0xFFFF)
{
- LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[233]);
- LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[233]);
+ LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[ANIM_TAG_GOLD_STARS - ANIM_SPRITES_START]);
+ LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[ANIM_TAG_GOLD_STARS - ANIM_SPRITES_START]);
}
taskId1 = CreateTask(sub_8172FEC, 10);
@@ -2063,7 +2067,7 @@ static void sub_8172FEC(u8 taskId)
gTasks[taskId].data[13]++;
return;
}
-
+
if (gBattleSpritesDataPtr->animationData->field_A)
return;
@@ -2103,7 +2107,7 @@ static void sub_8172FEC(u8 taskId)
if (gTasks[taskId].data[11] == 0)
{
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
- pan = 192;
+ pan = -64;
else
pan = 63;
@@ -2169,20 +2173,20 @@ static void sub_8173250(struct Sprite *sprite)
}
}
-void sub_81732B0(u8 taskId)
+void AnimTask_LoadPokeblockGfx(u8 taskId)
{
u8 paletteIndex;
- LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[269]);
- LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[269]);
- paletteIndex = IndexOfSpritePaletteTag(0x281D); // unused
+ LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[ANIM_TAG_POKEBLOCK - ANIM_SPRITES_START]);
+ LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[ANIM_TAG_POKEBLOCK - ANIM_SPRITES_START]);
+ paletteIndex = IndexOfSpritePaletteTag(ANIM_TAG_POKEBLOCK); // unused
DestroyAnimVisualTask(taskId);
}
-void sub_81732E4(u8 taskId)
+void AnimTask_FreePokeblockGfx(u8 taskId)
{
- FreeSpriteTilesByTag(0x281D);
- FreeSpritePaletteByTag(0x281D);
+ FreeSpriteTilesByTag(ANIM_TAG_POKEBLOCK);
+ FreeSpritePaletteByTag(ANIM_TAG_POKEBLOCK);
DestroyAnimVisualTask(taskId);
}
@@ -2245,21 +2249,21 @@ void sub_817345C(u8 taskId)
void AnimTask_GetTrappedMoveAnimId(u8 taskId)
{
- if (gBattleSpritesDataPtr->animationData->animArg == 83)
- gBattleAnimArgs[0] = 1;
- else if (gBattleSpritesDataPtr->animationData->animArg == 250)
- gBattleAnimArgs[0] = 2;
- else if (gBattleSpritesDataPtr->animationData->animArg == 128)
- gBattleAnimArgs[0] = 3;
- else if (gBattleSpritesDataPtr->animationData->animArg == 328)
- gBattleAnimArgs[0] = 4;
+ if (gBattleSpritesDataPtr->animationData->animArg == MOVE_FIRE_SPIN)
+ gBattleAnimArgs[0] = TRAP_ANIM_FIRE_SPIN;
+ else if (gBattleSpritesDataPtr->animationData->animArg == MOVE_WHIRLPOOL)
+ gBattleAnimArgs[0] = TRAP_ANIM_WHIRLPOOL;
+ else if (gBattleSpritesDataPtr->animationData->animArg == MOVE_CLAMP)
+ gBattleAnimArgs[0] = TRAP_ANIM_CLAMP;
+ else if (gBattleSpritesDataPtr->animationData->animArg == MOVE_SAND_TOMB)
+ gBattleAnimArgs[0] = TRAP_ANIM_SAND_TOMB;
else
- gBattleAnimArgs[0] = 0;
+ gBattleAnimArgs[0] = TRAP_ANIM_BIND;
DestroyAnimVisualTask(taskId);
}
-void sub_817351C(u8 taskId)
+void AnimTask_GetBattlersFromArg(u8 taskId)
{
gBattleAnimAttacker = gBattleSpritesDataPtr->animationData->animArg;
gBattleAnimTarget = gBattleSpritesDataPtr->animationData->animArg >> 8;