diff options
Diffstat (limited to 'src/battle_anim_special.c')
-rwxr-xr-x | src/battle_anim_special.c | 442 |
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; |