Use constants in battle_anim_special.c

This commit is contained in:
DizzyEggg 2019-04-14 11:41:02 +02:00 committed by huderlem
parent dc764698c9
commit 59797e4801
7 changed files with 77 additions and 86 deletions

View File

@ -10331,15 +10331,15 @@ General_SubstituteAppear:
General_PokeblockThrow:
createvisualtask sub_817345C, 2, 0
createvisualtask sub_81732B0, 2
createvisualtask AnimTask_LoadPokeblockGfx, 2
delay 0
waitplaysewithpan SE_W026, SOUND_PAN_ATTACKER, 22
createsprite gBattleAnimSpriteTemplate_85E5338, ANIM_TARGET, 3, -18, 12, 0, 32
createsprite gPokeblockSpriteTemplate, ANIM_TARGET, 3, -18, 12, 0, 32
delay 50
loopsewithpan SE_W039, SOUND_PAN_TARGET, 19, 2
createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 2, ANIM_TARGET
waitforvisualfinish
createvisualtask sub_81732E4, 2
createvisualtask AnimTask_FreePokeblockGfx, 2
end
General_ItemKnockoff:
@ -10516,7 +10516,7 @@ General_Hail:
goto Move_HAIL
General_LeechSeedDrain:
createvisualtask sub_817351C, 5
createvisualtask AnimTask_GetBattlersFromArg, 5
delay 0
goto Move_ABSORB
@ -10535,7 +10535,7 @@ General_MonHit:
General_ItemSteal:
loadspritegfx ANIM_TAG_ITEM_BAG
createvisualtask sub_8117F30, 2
createvisualtask sub_8172ED0, 2
createvisualtask AnimTask_TargetToEffectBattler, 2
delay 1
createsprite gItemStealSpriteTemplate, ANIM_ATTACKER, 2, 0, -5, 10, 2, -1
end
@ -10664,8 +10664,8 @@ General_WishHeal:
end
AnimScript_82D85A3:
createvisualtask sub_8172E9C, 2
jumpreteq 1, AnimScript_82D85B4
createvisualtask AnimTask_IsAttackerBehindSubstitute, 2
jumprettrue AnimScript_82D85B4
AnimScript_82D85B2:
waitforvisualfinish
return
@ -10675,8 +10675,8 @@ AnimScript_82D85B4:
goto AnimScript_82D85B2
AnimScript_82D85C3:
createvisualtask sub_8172E9C, 2
jumpreteq 1, AnimScript_82D85D4
createvisualtask AnimTask_IsAttackerBehindSubstitute, 2
jumprettrue AnimScript_82D85D4
AnimScript_82D85D2:
waitforvisualfinish
return

View File

Before

Width:  |  Height:  |  Size: 179 B

After

Width:  |  Height:  |  Size: 179 B

View File

@ -276,7 +276,7 @@
#define ANIM_TAG_GREEN_SPIKE (ANIM_SPRITES_START + 266)
#define ANIM_TAG_WHITE_CIRCLE_OF_LIGHT (ANIM_SPRITES_START + 267)
#define ANIM_TAG_GLOWY_BLUE_ORB (ANIM_SPRITES_START + 268)
#define ANIM_TAG_RED_BRICK (ANIM_SPRITES_START + 269)
#define ANIM_TAG_POKEBLOCK (ANIM_SPRITES_START + 269)
#define ANIM_TAG_WHITE_FEATHER (ANIM_SPRITES_START + 270)
#define ANIM_TAG_SPARKLE_6 (ANIM_SPRITES_START + 271)
#define ANIM_TAG_SPLASH (ANIM_SPRITES_START + 272)

View File

@ -4388,7 +4388,7 @@ extern const u32 gBattleAnimSpriteGfx_IcicleSpear[];
extern const u32 gBattleAnimSpriteGfx_Hail[];
extern const u32 gBattleAnimSpriteGfx_GlowyRedOrb[];
extern const u32 gBattleAnimSpriteGfx_GreenSpike[];
extern const u32 gBattleAnimSpriteGfx_RedBrick[];
extern const u32 gBattleAnimSpriteGfx_Pokeblock[];
extern const u32 gBattleAnimSpriteGfx_WhiteFeather[];
extern const u32 gBattleAnimSpriteGfx_Sparkle6[];
extern const u32 gBattleAnimSpriteGfx_Splash[];
@ -4674,7 +4674,7 @@ extern const u32 gBattleAnimSpritePal_GlowyGreenOrb[];
extern const u32 gBattleAnimSpritePal_GreenSpike[];
extern const u32 gBattleAnimSpritePal_WhiteCircleOfLight[];
extern const u32 gBattleAnimSpritePal_GlowyBlueOrb[];
extern const u32 gBattleAnimSpritePal_RedBrick[];
extern const u32 gBattleAnimSpritePal_Pokeblock[];
extern const u32 gBattleAnimSpritePal_WhiteFeather[];
extern const u32 gBattleAnimSpritePal_Sparkle6[];
extern const u32 gBattleAnimSpritePal_Splash[];

View File

@ -1394,7 +1394,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] =
{gBattleAnimSpriteGfx_GreenSpike, 0x0080, ANIM_TAG_GREEN_SPIKE},
{gBattleAnimSpriteGfx_CircleOfLight, 0x0800, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT},
{gBattleAnimSpriteGfx_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_BLUE_ORB},
{gBattleAnimSpriteGfx_RedBrick, 0x0080, ANIM_TAG_RED_BRICK},
{gBattleAnimSpriteGfx_Pokeblock, 0x0080, ANIM_TAG_POKEBLOCK},
{gBattleAnimSpriteGfx_WhiteFeather, 0x0400, ANIM_TAG_WHITE_FEATHER},
{gBattleAnimSpriteGfx_Sparkle6, 0x0080, ANIM_TAG_SPARKLE_6},
{gBattleAnimSpriteGfx_Splash, 0x0800, ANIM_TAG_SPLASH},
@ -1687,7 +1687,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
{gBattleAnimSpritePal_GreenSpike, ANIM_TAG_GREEN_SPIKE},
{gBattleAnimSpritePal_WhiteCircleOfLight, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT},
{gBattleAnimSpritePal_GlowyBlueOrb, ANIM_TAG_GLOWY_BLUE_ORB},
{gBattleAnimSpritePal_RedBrick, ANIM_TAG_RED_BRICK},
{gBattleAnimSpritePal_Pokeblock, ANIM_TAG_POKEBLOCK},
{gBattleAnimSpritePal_WhiteFeather, ANIM_TAG_WHITE_FEATHER},
{gBattleAnimSpritePal_Sparkle6, ANIM_TAG_SPARKLE_6},
{gBattleAnimSpritePal_Splash, ANIM_TAG_SPLASH},

View File

@ -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;
@ -355,10 +356,10 @@ const u16 gUnknown_085E5310[] =
RGB(4, 0, 0),
};
const struct SpriteTemplate gBattleAnimSpriteTemplate_85E5338 =
const struct SpriteTemplate gPokeblockSpriteTemplate =
{
.tileTag = ANIM_TAG_RED_BRICK,
.paletteTag = ANIM_TAG_RED_BRICK,
.tileTag = ANIM_TAG_POKEBLOCK,
.paletteTag = ANIM_TAG_POKEBLOCK,
.oam = &gUnknown_0852490C,
.anims = gDummySpriteAnimTable,
.images = NULL,
@ -675,9 +676,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 +688,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 +805,6 @@ static void sub_8171134(struct Sprite *sprite)
{
int i;
u8 ballId;
int ballId2; // extra var needed to match
if (TranslateAnimHorizontalArc(sprite))
{
@ -825,15 +825,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);
ballId = ItemIdToBallId(gLastUsedItem);
switch (ballId)
{
case 0 ... POKEBALL_COUNT - 1:
AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId);
LaunchBallFadeMonTask(0, gBattleAnimTarget, 14, ballId);
break;
}
}
}
}
@ -1280,28 +1280,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;
switch (ballId)
{
case 0 ... POKEBALL_COUNT - 1:
AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId);
LaunchBallFadeMonTask(1, gBattleAnimTarget, 14, ballId);
break;
}
AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId);
LaunchBallFadeMonTask(1, gBattleAnimTarget, 14, ballId);
LABEL:
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = 0;
StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]], 1);
AnimateSprite(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]]);
@ -1906,9 +1901,8 @@ void sub_8172BF0(u8 taskId)
{
u8 spriteId;
u32 x;
u32 done;
u32 done = FALSE;
done = FALSE;
spriteId = gBattlerSpriteIds[gBattleAnimAttacker];
switch (gTasks[taskId].data[10])
{
@ -1942,8 +1936,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 +1949,8 @@ void sub_8172BF0(u8 taskId)
}
if (done)
{
DONE:
DestroyAnimVisualTask(taskId);
}
break;
}
}
@ -1998,13 +1989,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 +2021,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);
@ -2103,7 +2094,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 +2160,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 +2236,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;

View File

@ -1042,8 +1042,8 @@ const u32 gBattleAnimSpritePal_Splash[] = INCBIN_U32("graphics/battle_anims/spri
const u32 gBattleAnimSpriteGfx_SweatBead[] = INCBIN_U32("graphics/battle_anims/sprites/sweat_bead.4bpp.lz");
const u32 gBattleAnimSpriteGfx_RedBrick[] = INCBIN_U32("graphics/battle_anims/sprites/red_brick.4bpp.lz");
const u32 gBattleAnimSpritePal_RedBrick[] = INCBIN_U32("graphics/battle_anims/sprites/red_brick.gbapal.lz");
const u32 gBattleAnimSpriteGfx_Pokeblock[] = INCBIN_U32("graphics/battle_anims/sprites/pokeblock.4bpp.lz");
const u32 gBattleAnimSpritePal_Pokeblock[] = INCBIN_U32("graphics/battle_anims/sprites/pokeblock.gbapal.lz");
const u32 gBattleAnimSpriteGfx_Gem1[] = INCBIN_U32("graphics/battle_anims/sprites/gem_1.4bpp.lz");
const u32 gBattleAnimSpriteGfx_Gem2[] = INCBIN_U32("graphics/battle_anims/sprites/gem_2.4bpp.lz");