commit
6411d1d693
9 changed files with 526 additions and 44 deletions
|
@ -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:
|
||||
|
|
BIN
graphics/battle_anims/sprites/289.png
Executable file
BIN
graphics/battle_anims/sprites/289.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 256 B |
BIN
graphics/battle_anims/sprites/290.png
Executable file
BIN
graphics/battle_anims/sprites/290.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 282 B |
|
@ -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[];
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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[];
|
||||
|
|
|
@ -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[] =
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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");
|
||||
|
||||
|
|
Loading…
Reference in a new issue