mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 03:34:15 +01:00
Use constants in battle_anim_special.c
This commit is contained in:
parent
dc764698c9
commit
59797e4801
@ -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
|
||||
|
Before Width: | Height: | Size: 179 B After Width: | Height: | Size: 179 B |
@ -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)
|
||||
|
@ -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[];
|
||||
|
@ -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},
|
||||
|
@ -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;
|
||||
|
@ -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");
|
||||
|
Loading…
Reference in New Issue
Block a user