Merge pull request #55 from huderlem/anims

Some battle anims
This commit is contained in:
DizzyEggg 2018-12-26 17:48:03 +01:00 committed by GitHub
commit 6411d1d693
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 526 additions and 44 deletions

View file

@ -692,26 +692,26 @@ gBattleAnims_Special::
Move_ROOST:
loadspritegfx ANIM_TAG_WHITE_FEATHER
loadspritegfx ANIM_TAG_BLUE_STAR
monbg ANIM_DEF_PARTNER
monbg ANIM_ATTACKER
monbgprio_29
playsewithpan SE_W080, SOUND_PAN_TARGET
delay 0
createsprite gUnknown_08596388, ANIM_TARGET, 0, 0, -16, 64, 2, 104, 11304, 32, 1
createsprite gUnknown_08596388, ANIM_ATTACKER, 0, 0, -16, 64, 2, 104, 11304, 32, 1
delay 6
createsprite gUnknown_08596388, ANIM_TARGET, 0, 0, -16, 32, 2, 104, 11304, 32, 1
createsprite gUnknown_08596388, ANIM_TARGET, 0, 0, -16, 0, 2, 104, 11304, 32, 1
createsprite gUnknown_08596388, ANIM_ATTACKER, 0, 0, -16, 32, 2, 104, 11304, 32, 1
createsprite gUnknown_08596388, ANIM_ATTACKER, 0, 0, -16, 0, 2, 104, 11304, 32, 1
delay 6
createsprite gUnknown_08596388, ANIM_TARGET, 0, 0, -16, 224, 2, 104, 11304, 32, 1
createsprite gUnknown_08596388, ANIM_TARGET, 0, 0, -16, 128, 2, 104, 11304, 32, 1
createsprite gUnknown_08596388, ANIM_ATTACKER, 0, 0, -16, 224, 2, 104, 11304, 32, 1
createsprite gUnknown_08596388, ANIM_ATTACKER, 0, 0, -16, 128, 2, 104, 11304, 32, 1
delay 6
createsprite gUnknown_08596388, ANIM_TARGET, 0, 0, -16, 192, 2, 104, 11304, 32, 1
createsprite gUnknown_08596388, ANIM_TARGET, 0, 0, -16, 160, 2, 104, 11304, 32, 1
createsprite gUnknown_08596388, ANIM_ATTACKER, 0, 0, -16, 192, 2, 104, 11304, 32, 1
createsprite gUnknown_08596388, ANIM_ATTACKER, 0, 0, -16, 160, 2, 104, 11304, 32, 1
delay 6
createsprite gUnknown_08596388, ANIM_TARGET, 0, 0, -16, 96, 2, 104, 11304, 32, 1
createsprite gUnknown_08596388, ANIM_ATTACKER, 0, 0, -16, 96, 2, 104, 11304, 32, 1
waitforvisualfinish
clearmonbg ANIM_ATTACKER
call HealingEffect
waitforvisualfinish
clearmonbg ANIM_DEF_PARTNER
end
Move_GRAVITY:
@ -1344,15 +1344,146 @@ Move_AURA_SPHERE:
end
Move_ROCK_POLISH:
loadspritegfx ANIM_TAG_WHITE_STREAK
loadspritegfx ANIM_TAG_SPARKLE_3
setalpha 12, 8
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 3, 0, 12, RGB_BLACK
waitforvisualfinish
createsprite gRockPolishStreakSpriteTemplate, ANIM_ATTACKER, 2, -10, 3
delay 1
createsprite gRockPolishStreakSpriteTemplate, ANIM_ATTACKER, 2, 24, -19
delay 1
createsprite gRockPolishStreakSpriteTemplate, ANIM_ATTACKER, 2, -28, -15
delay 2
createsprite gRockPolishStreakSpriteTemplate, ANIM_ATTACKER, 2, -6, -30
delay 1
createsprite gRockPolishStreakSpriteTemplate, ANIM_ATTACKER, 2, -20, 6
delay 1
createsprite gRockPolishStreakSpriteTemplate, ANIM_ATTACKER, 2, 28, 2
delay 2
createsprite gRockPolishStreakSpriteTemplate, ANIM_ATTACKER, 2, -14, -25
delay 1
createsprite gRockPolishStreakSpriteTemplate, ANIM_ATTACKER, 2, 9, -2
delay 2
createsprite gRockPolishStreakSpriteTemplate, ANIM_ATTACKER, 2, -1, 0
delay 1
createsprite gRockPolishStreakSpriteTemplate, ANIM_ATTACKER, 2, 21, 4
delay 2
createsprite gRockPolishStreakSpriteTemplate, ANIM_ATTACKER, 2, 28, 20
delay 2
createsprite gRockPolishStreakSpriteTemplate, ANIM_ATTACKER, 2, -7, 24
delay 2
createsprite gRockPolishStreakSpriteTemplate, ANIM_ATTACKER, 2, -11, 1
delay 2
createsprite gRockPolishStreakSpriteTemplate, ANIM_ATTACKER, 2, 12, -18
delay 2
createsprite gRockPolishStreakSpriteTemplate, ANIM_ATTACKER, 2, -21, -14
delay 1
createsprite gRockPolishStreakSpriteTemplate, ANIM_ATTACKER, 2, -29, 7
delay 2
createsprite gRockPolishStreakSpriteTemplate, ANIM_ATTACKER, 2, 15, 28
delay 1
createsprite gRockPolishStreakSpriteTemplate, ANIM_ATTACKER, 2, -21, -16
delay 2
waitforvisualfinish
playsewithpan SE_W213, SOUND_PAN_ATTACKER
createsprite gRockPolishSparkleSpriteTemplate, ANIM_ATTACKER, 2, -20, 9
createsprite gRockPolishSparkleSpriteTemplate, ANIM_ATTACKER, 2, -10, -15
createsprite gRockPolishSparkleSpriteTemplate, ANIM_ATTACKER, 2, 1, 17
delay 1
createsprite gRockPolishSparkleSpriteTemplate, ANIM_ATTACKER, 2, -23, -16
createsprite gRockPolishSparkleSpriteTemplate, ANIM_ATTACKER, 2, 10, -6
delay 1
createsprite gRockPolishSparkleSpriteTemplate, ANIM_ATTACKER, 2, -16, -7
delay 1
createsprite gRockPolishSparkleSpriteTemplate, ANIM_ATTACKER, 2, 22, -7
delay 1
createsprite gRockPolishSparkleSpriteTemplate, ANIM_ATTACKER, 2, -19, 11
delay 1
createsprite gRockPolishSparkleSpriteTemplate, ANIM_ATTACKER, 2, 12, 12
delay 1
createsprite gRockPolishSparkleSpriteTemplate, ANIM_ATTACKER, 2, 0, -17
waitforvisualfinish
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 3, 12, 0, RGB_BLACK
waitforvisualfinish
blendoff
end
Move_POISON_JAB:
loadspritegfx ANIM_TAG_PURPLE_JAB
loadspritegfx ANIM_TAG_IMPACT
loadspritegfx ANIM_TAG_POISON_BUBBLE
setalpha 12, 8
createsprite gPoisonJabProjectileSpriteTemplate, ANIM_TARGET, 2, 3, -31, 10
delay 2
createsprite gPoisonJabProjectileSpriteTemplate, ANIM_TARGET, 2, -18, -25, 10
delay 2
createsprite gPoisonJabProjectileSpriteTemplate, ANIM_TARGET, 2, 27, 17, 10
delay 2
createsprite gPoisonJabProjectileSpriteTemplate, ANIM_TARGET, 2, -26, 18, 10
delay 2
createsprite gPoisonJabProjectileSpriteTemplate, ANIM_TARGET, 2, 10, 30, 10
delay 2
createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -7, 4, 1, 3
playsewithpan SE_W004, SOUND_PAN_TARGET
createsprite gPoisonJabProjectileSpriteTemplate, ANIM_TARGET, 2, -17, -27, 10
delay 2
createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -4, -6, 1, 3
playsewithpan SE_W004, SOUND_PAN_TARGET
createsprite gPoisonJabProjectileSpriteTemplate, ANIM_TARGET, 2, 2, 31, 10
createvisualtask AnimTask_SwayMon, 5, 0, 3, 0x2000, 6, ANIM_TARGET
createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_TARGET, RGB(16, 0, 16), 12, 0, 1
delay 2
createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 6, 4, 1, 3
playsewithpan SE_W004, SOUND_PAN_TARGET
createsprite gPoisonJabProjectileSpriteTemplate, ANIM_TARGET, 2, 15, -27, 10
delay 2
createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -6, 8, 1, 3
playsewithpan SE_W004, SOUND_PAN_TARGET
createsprite gPoisonJabProjectileSpriteTemplate, ANIM_TARGET, 2, -31, -2, 10
delay 2
createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 12, 6, 1, 3
playsewithpan SE_W004, SOUND_PAN_TARGET
createsprite gPoisonJabProjectileSpriteTemplate, ANIM_TARGET, 2, -26, -18, 10
delay 2
createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -6, -8, 1, 3
playsewithpan SE_W004, SOUND_PAN_TARGET
delay 2
createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 8, 1, 3
playsewithpan SE_W004, SOUND_PAN_TARGET
delay 2
createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -8, 0, 1, 3
playsewithpan SE_W004, SOUND_PAN_TARGET
delay 2
createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -7, -5, 1, 3
playsewithpan SE_W004, SOUND_PAN_TARGET
waitforvisualfinish
call PoisonBubblesEffect
waitforvisualfinish
blendoff
end
Move_DARK_PULSE:
end
Move_NIGHT_SLASH:
loadspritegfx ANIM_TAG_SLASH
createvisualtask AnimTask_BlendNightSlash, 2, ANIM_TARGET, 2, 0, 8, 1
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 3, 0, 12, RGB_BLACK
waitforvisualfinish
createsprite gNightSlashLeftSpriteTemplate, ANIM_TARGET, 2, 1, -8, 0
playsewithpan SE_W013, SOUND_PAN_TARGET
delay 4
createsprite gNightSlashLeftSpriteTemplate, ANIM_TARGET, 2, 1, 8, 0
createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1
delay 40
createsprite gNightSlashRightSpriteTemplate, ANIM_TARGET, 2, 1, -8, 0
createsprite gNightSlashRightSpriteTemplate, ANIM_TARGET, 2, 1, 8, 0
createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 18, 1
playsewithpan SE_W013, SOUND_PAN_TARGET
waitforvisualfinish
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 3, 12, 0, RGB_BLACK
waitforvisualfinish
end
Move_AQUA_TAIL:

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

View file

@ -204,50 +204,78 @@ u32 UnpackSelectedBattleAnimPalettes(s16);
u8 GetBattlerSpriteFinal_Y(u8, u16, u8);
extern const struct OamData gUnknown_08524944;
extern const struct OamData gUnknown_08524A8C;
extern const struct OamData gUnknown_08524904;
extern const struct OamData gUnknown_085249C4;
extern const struct OamData gUnknown_0852490C;
extern const struct OamData gUnknown_08524934;
extern const struct OamData gUnknown_08524974;
extern const struct OamData gUnknown_0852499C;
extern const struct OamData gUnknown_085249CC;
extern const struct OamData gUnknown_08524914;
extern const struct OamData gUnknown_0852496C;
extern const struct OamData gUnknown_08524A34;
extern const struct OamData gUnknown_08524A3C;
extern const struct OamData gUnknown_08524A94;
extern const struct OamData gUnknown_0852491C;
extern const struct OamData gUnknown_08524924;
extern const struct OamData gUnknown_0852492C;
extern const struct OamData gUnknown_08524934;
extern const struct OamData gUnknown_0852493C;
extern const struct OamData gUnknown_08524944;
extern const struct OamData gUnknown_0852494C;
extern const struct OamData gUnknown_08524954;
extern const struct OamData gUnknown_08524AE4;
extern const struct OamData gUnknown_0852495C;
extern const struct OamData gUnknown_08524964;
extern const struct OamData gUnknown_0852496C;
extern const struct OamData gUnknown_08524974;
extern const struct OamData gUnknown_0852497C;
extern const struct OamData gUnknown_08524984;
extern const struct OamData gUnknown_0852498C;
extern const struct OamData gUnknown_08524994;
extern const struct OamData gUnknown_0852499C;
extern const struct OamData gUnknown_085249A4;
extern const struct OamData gUnknown_085249AC;
extern const struct OamData gUnknown_085249B4;
extern const struct OamData gUnknown_085249BC;
extern const struct OamData gUnknown_085249C4;
extern const struct OamData gUnknown_085249CC;
extern const struct OamData gUnknown_085249D4;
extern const struct OamData gUnknown_08524A9C;
extern const struct OamData gUnknown_08524ADC;
extern const struct OamData gUnknown_08524B14;
extern const struct OamData gUnknown_08524A54;
extern const struct OamData gUnknown_085249DC;
extern const struct OamData gUnknown_085249E4;
extern const struct OamData gUnknown_085249EC;
extern const struct OamData gUnknown_085249F4;
extern const struct OamData gUnknown_085249FC;
extern const struct OamData gUnknown_08524A04;
extern const struct OamData gUnknown_08524A0C;
extern const struct OamData gUnknown_08524A14;
extern const struct OamData gUnknown_08524A1C;
extern const struct OamData gUnknown_085249BC;
extern const struct OamData gUnknown_08524AF4;
extern const struct OamData gUnknown_085249DC;
extern const struct OamData gUnknown_08524AFC;
extern const struct OamData gUnknown_08524B1C;
extern const struct OamData gUnknown_08524A04;
extern const struct OamData gUnknown_08524A2C;
extern const struct OamData gUnknown_08524AEC;
extern const struct OamData gUnknown_08524964;
extern const struct OamData gUnknown_08524B24;
extern const struct OamData gUnknown_08524A24;
extern const struct OamData gUnknown_08524AC4;
extern const struct OamData gUnknown_08524A84;
extern const struct OamData gUnknown_08524A64;
extern const struct OamData gUnknown_0852491C;
extern const struct OamData gUnknown_0852495C;
extern const struct OamData gUnknown_0852497C;
extern const struct OamData gUnknown_085249F4;
extern const struct OamData gUnknown_0852493C;
extern const struct OamData gUnknown_08524A2C;
extern const struct OamData gUnknown_08524A34;
extern const struct OamData gUnknown_08524A3C;
extern const struct OamData gUnknown_08524A44;
extern const struct OamData gUnknown_08524A4C;
extern const struct OamData gUnknown_08524A54;
extern const struct OamData gUnknown_08524A5C;
extern const struct OamData gUnknown_08524A64;
extern const struct OamData gUnknown_08524A6C;
extern const struct OamData gUnknown_08524A74;
extern const struct OamData gUnknown_08524A7C;
extern const struct OamData gUnknown_08524A84;
extern const struct OamData gUnknown_08524A8C;
extern const struct OamData gUnknown_08524A94;
extern const struct OamData gUnknown_08524A9C;
extern const struct OamData gUnknown_08524AA4;
extern const struct OamData gUnknown_08524AAC;
extern const struct OamData gUnknown_08524AB4;
extern const struct OamData gUnknown_08524ABC;
extern const struct OamData gUnknown_08524AC4;
extern const struct OamData gUnknown_08524ACC;
extern const struct OamData gUnknown_08524AD4;
extern const struct OamData gUnknown_08524ADC;
extern const struct OamData gUnknown_08524AE4;
extern const struct OamData gUnknown_08524AEC;
extern const struct OamData gUnknown_08524AF4;
extern const struct OamData gUnknown_08524AFC;
extern const struct OamData gUnknown_08524B04;
extern const struct OamData gUnknown_08524B0C;
extern const struct OamData gUnknown_08524B14;
extern const struct OamData gUnknown_08524B1C;
extern const struct OamData gUnknown_08524B24;
extern const struct OamData gUnknown_08524B2C;
extern const struct OamData gUnknown_08524B34;
extern const struct OamData gUnknown_08524B3C;
extern const struct CompressedSpriteSheet gBattleAnimPicTable[];
extern const struct CompressedSpritePalette gBattleAnimPaletteTable[];

View file

@ -296,6 +296,8 @@
#define ANIM_TAG_SLASH_2 (ANIM_SPRITES_START + 286)
#define ANIM_TAG_WHIP_HIT (ANIM_SPRITES_START + 287)
#define ANIM_TAG_BLUE_RING_2 (ANIM_SPRITES_START + 288)
#define ANIM_TAG_WHITE_STREAK (ANIM_SPRITES_START + 289)
#define ANIM_TAG_PURPLE_JAB (ANIM_SPRITES_START + 290)
// battlers
#define ANIM_ATTACKER 0

View file

@ -4384,6 +4384,8 @@ extern const u32 gBattleAnimBackgroundTilemap_ScaryFaceOpponent[];
extern const u32 gBattleAnimBackgroundTilemap_ScaryFaceContest[];
extern const u32 gBattleAnimSpriteSheet_284[];
extern const u32 gBattleAnimSpriteSheet_285[];
extern const u32 gBattleAnimSpriteSheet_289[];
extern const u32 gBattleAnimSpriteSheet_290[];
extern const u32 gBattleAnimSpritePalette_000[];
extern const u32 gBattleAnimSpritePalette_001[];
@ -4667,6 +4669,8 @@ extern const u32 gBattleAnimSpritePalette_285[];
extern const u32 gBattleAnimSpritePalette_286[];
extern const u32 gBattleAnimSpritePalette_287[];
extern const u32 gBattleAnimSpritePalette_288[];
extern const u32 gBattleAnimSpritePalette_289[];
extern const u32 gBattleAnimSpritePalette_290[];
extern const u32 gBattleAnimBackgroundImage_00[];
extern const u32 gBattleAnimBackgroundImage_02[];

View file

@ -1055,6 +1055,8 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] =
{gBattleAnimSpriteSheet_183, 0x0800, ANIM_TAG_SLASH_2},
{gBattleAnimSpriteSheet_056, 0x1000, ANIM_TAG_WHIP_HIT},
{gBattleAnimSpriteSheet_163, 0x0100, ANIM_TAG_BLUE_RING_2},
{gBattleAnimSpriteSheet_289, 0x1000, ANIM_TAG_WHITE_STREAK},
{gBattleAnimSpriteSheet_290, 0x800, ANIM_TAG_PURPLE_JAB},
};
@ -1349,6 +1351,8 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
{gBattleAnimSpritePalette_286, ANIM_TAG_SLASH_2},
{gBattleAnimSpritePalette_287, ANIM_TAG_WHIP_HIT},
{gBattleAnimSpritePalette_288, ANIM_TAG_BLUE_RING_2},
{gBattleAnimSpritePalette_289, ANIM_TAG_WHITE_STREAK},
{gBattleAnimSpritePalette_290, ANIM_TAG_PURPLE_JAB},
};
const struct BattleAnimBackground gBattleAnimBackgroundTable[] =

View file

@ -78,6 +78,10 @@ void sub_8103164(struct Sprite *);
void sub_8103208(struct Sprite *);
void sub_8103284(struct Sprite *);
void sub_8103390(struct Sprite *);
void AnimRockPolishStreak(struct Sprite *);
void AnimRockPolishSparkle(struct Sprite *);
void AnimPoisonJabProjectile(struct Sprite *);
void AnimNightSlash(struct Sprite *);
static void AnimMovePowderParticleStep(struct Sprite *);
static void AnimSolarbeamSmallOrbStep(struct Sprite *);
static void AnimAbsorptionOrbStep(struct Sprite *);
@ -2186,6 +2190,250 @@ const struct SpriteTemplate gPowerOrbs_Float =
.callback = AnimSporeParticle,
};
const union AnimCmd gRockPolishStreak_AnimCmd[] =
{
ANIMCMD_FRAME(0, 1),
ANIMCMD_FRAME(4, 2),
ANIMCMD_FRAME(8, 3),
ANIMCMD_FRAME(12, 15),
ANIMCMD_FRAME(8, 3),
ANIMCMD_FRAME(4, 2),
ANIMCMD_FRAME(0, 1),
ANIMCMD_END,
};
const union AnimCmd *const gRockPolishStreak_AnimCmds[] =
{
gRockPolishStreak_AnimCmd,
};
const union AffineAnimCmd gRockPolishStreak_AffineAnimCmd0[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0x0, 0),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd gRockPolishStreak_AffineAnimCmd1[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0x10, 0),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd gRockPolishStreak_AffineAnimCmd2[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0x20, 0),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd gRockPolishStreak_AffineAnimCmd3[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0x30, 0),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd gRockPolishStreak_AffineAnimCmd4[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0x40, 0),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd gRockPolishStreak_AffineAnimCmd5[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0x50, 0),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd gRockPolishStreak_AffineAnimCmd6[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0x60, 0),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd gRockPolishStreak_AffineAnimCmd7[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0x70, 0),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd gRockPolishStreak_AffineAnimCmd8[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0x80, 0),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd gRockPolishStreak_AffineAnimCmd9[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0x90, 0),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd gRockPolishStreak_AffineAnimCmdA[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0xA0, 0),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd gRockPolishStreak_AffineAnimCmdB[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0xB0, 0),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd gRockPolishStreak_AffineAnimCmdC[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0xC0, 0),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd gRockPolishStreak_AffineAnimCmdD[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0xD0, 0),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd gRockPolishStreak_AffineAnimCmdE[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0xE0, 0),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd gRockPolishStreak_AffineAnimCmdF[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0xF0, 0),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd *const gRockPolishStreak_AffineAnimCmds[] =
{
gRockPolishStreak_AffineAnimCmd0,
gRockPolishStreak_AffineAnimCmd1,
gRockPolishStreak_AffineAnimCmd2,
gRockPolishStreak_AffineAnimCmd3,
gRockPolishStreak_AffineAnimCmd4,
gRockPolishStreak_AffineAnimCmd5,
gRockPolishStreak_AffineAnimCmd6,
gRockPolishStreak_AffineAnimCmd7,
gRockPolishStreak_AffineAnimCmd8,
gRockPolishStreak_AffineAnimCmd9,
gRockPolishStreak_AffineAnimCmdA,
gRockPolishStreak_AffineAnimCmdB,
gRockPolishStreak_AffineAnimCmdC,
gRockPolishStreak_AffineAnimCmdD,
gRockPolishStreak_AffineAnimCmdE,
gRockPolishStreak_AffineAnimCmdF,
};
const struct SpriteTemplate gRockPolishStreakSpriteTemplate =
{
.tileTag = ANIM_TAG_WHITE_STREAK,
.paletteTag = ANIM_TAG_WHITE_STREAK,
.oam = &gUnknown_08524B0C,
.anims = gRockPolishStreak_AnimCmds,
.images = NULL,
.affineAnims = gRockPolishStreak_AffineAnimCmds,
.callback = AnimRockPolishStreak,
};
const union AnimCmd gRockPolishSparkle_AnimCmd1[] =
{
ANIMCMD_FRAME(0, 7),
ANIMCMD_FRAME(4, 7),
ANIMCMD_FRAME(8, 7),
ANIMCMD_FRAME(12, 7),
ANIMCMD_END,
};
const union AnimCmd *const gRockPolishSparkle_AnimCmds[] =
{
gRockPolishSparkle_AnimCmd1,
};
const struct SpriteTemplate gRockPolishSparkleSpriteTemplate =
{
.tileTag = ANIM_TAG_SPARKLE_3,
.paletteTag = ANIM_TAG_SPARKLE_3,
.oam = &gUnknown_0852490C,
.anims = gRockPolishSparkle_AnimCmds,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimRockPolishSparkle,
};
const struct SpriteTemplate gPoisonJabProjectileSpriteTemplate =
{
.tileTag = ANIM_TAG_PURPLE_JAB,
.paletteTag = ANIM_TAG_PURPLE_JAB,
.oam = &gUnknown_08524B14,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimPoisonJabProjectile,
};
const union AnimCmd gNightSlashLeftAnimCmd0[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(16, 4),
ANIMCMD_FRAME(32, 4),
ANIMCMD_FRAME(48, 4),
ANIMCMD_END,
};
const union AnimCmd gNightSlashLeftAnimCmd1[] =
{
ANIMCMD_FRAME(48, 4),
ANIMCMD_END,
};
const union AnimCmd *const gNightSlashLeftAnimTable[] =
{
gNightSlashLeftAnimCmd0,
gNightSlashLeftAnimCmd1,
};
const struct SpriteTemplate gNightSlashLeftSpriteTemplate =
{
.tileTag = ANIM_TAG_SLASH,
.paletteTag = ANIM_TAG_SLASH,
.oam = &gUnknown_08524914,
.anims = gNightSlashLeftAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimNightSlash,
};
const union AnimCmd gNightSlashRightAnimCmd0[] =
{
ANIMCMD_FRAME(0, 4, .vFlip = TRUE, .hFlip = TRUE),
ANIMCMD_FRAME(16, 4, .vFlip = TRUE, .hFlip = TRUE),
ANIMCMD_FRAME(32, 4, .vFlip = TRUE, .hFlip = TRUE),
ANIMCMD_FRAME(48, 4, .vFlip = TRUE, .hFlip = TRUE),
ANIMCMD_END,
};
const union AnimCmd gNightSlashRightAnimCmd1[] =
{
ANIMCMD_FRAME(48, 4, .vFlip = TRUE, .hFlip = TRUE),
ANIMCMD_END,
};
const union AnimCmd *const gNightSlashRightAnimTable[] =
{
gNightSlashRightAnimCmd0,
gNightSlashRightAnimCmd1,
};
const struct SpriteTemplate gNightSlashRightSpriteTemplate =
{
.tileTag = ANIM_TAG_SLASH,
.paletteTag = ANIM_TAG_SLASH,
.oam = &gUnknown_08524914,
.anims = gNightSlashRightAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimNightSlash,
};
// Animates the falling particles that horizontally wave back and forth.
// Used by Sleep Powder, Stun Spore, and Poison Powder.
// arg 0: initial x pixel offset
@ -5618,3 +5866,61 @@ static void sub_810342C(struct Sprite* sprite)
if (++sprite->data[1] > 5)
DestroyAnimSprite(sprite);
}
// Animates a white streak by giving it a random rotation.
// arg 0: initial x pixel offset
// arg 1: initial y pixel offset
void AnimRockPolishStreak(struct Sprite *sprite)
{
int affineAnimNum = Random2() % ARRAY_COUNT(gRockPolishStreak_AffineAnimCmds);
InitSpritePosToAnimAttacker(sprite, TRUE);
StartSpriteAffineAnim(sprite, affineAnimNum);
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = RunStoredCallbackWhenAnimEnds;
}
// Places a blue sparkle that plays its default animation.
// arg 0: initial x pixel offset
// arg 1: initial y pixel offset
void AnimRockPolishSparkle(struct Sprite *sprite)
{
InitSpritePosToAnimAttacker(sprite, TRUE);
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = RunStoredCallbackWhenAnimEnds;
}
// Moves a projectile towards the center of the target mon. The sprite is rotated to look
// like it's traveling along that path.
// arg 0: initial x pixel offset
// arg 1: initial y pixel offset
// arg 2: duration
void AnimPoisonJabProjectile(struct Sprite *sprite)
{
s16 targetXPos;
s16 targetYPos;
u16 rotation;
InitSpritePosToAnimTarget(sprite, TRUE);
targetXPos = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
targetYPos = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
rotation = ArcTan2Neg(targetXPos - sprite->pos1.x, targetYPos - sprite->pos1.y);
TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rotation);
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[2] = targetXPos;
sprite->data[4] = targetYPos;
sprite->callback = StartAnimLinearTranslation;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
void AnimTask_BlendNightSlash(u8 taskId)
{
int paletteOffset = IndexOfSpritePaletteTag(ANIM_TAG_SLASH) * 16 + 256;
BlendPalette(paletteOffset, 16, 6, RGB_RED);
DestroyAnimVisualTask(taskId);
}
void AnimNightSlash(struct Sprite *sprite)
{
sprite->callback = sub_8101F40;
sprite->callback(sprite);
}

View file

@ -564,6 +564,13 @@ const u32 gBattleAnimSpriteSheet_163[] = INCBIN_U32("graphics/battle_anims/sprit
const u32 gBattleAnimSpritePalette_163[] = INCBIN_U32("graphics/battle_anims/sprites/163.gbapal.lz");
const u32 gBattleAnimSpritePalette_288[] = INCBIN_U32("graphics/battle_anims/sprites/288.gbapal.lz");
const u32 gBattleAnimSpriteSheet_289[] = INCBIN_U32("graphics/battle_anims/sprites/289.4bpp.lz");
const u32 gBattleAnimSpritePalette_289[] = INCBIN_U32("graphics/battle_anims/sprites/289.gbapal.lz");
const u32 gBattleAnimSpriteSheet_290[] = INCBIN_U32("graphics/battle_anims/sprites/290.4bpp.lz");
const u32 gBattleAnimSpritePalette_290[] = INCBIN_U32("graphics/battle_anims/sprites/290.gbapal.lz");
const u32 gBattleAnimSpritePalette_164[] = INCBIN_U32("graphics/battle_anims/sprites/164.gbapal.lz");
const u32 gBattleAnimSpritePalette_165[] = INCBIN_U32("graphics/battle_anims/sprites/165.gbapal.lz");