Add Rock Polish animation

This commit is contained in:
Marcus Huderle 2018-12-20 10:18:17 -06:00
parent fe66019bc5
commit 0369780db9
9 changed files with 330 additions and 34 deletions

View File

@ -1344,6 +1344,68 @@ 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
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

View File

@ -177,49 +177,77 @@ 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;
#endif // GUARD_BATTLE_ANIM_H

View File

@ -296,6 +296,7 @@
#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)
// battlers
#define ANIM_ATTACKER 0

View File

@ -4373,6 +4373,7 @@ extern const u32 gBattleAnimSpriteSheet_282[];
extern const u32 gBattleAnimSpriteSheet_283[];
extern const u32 gBattleAnimSpriteSheet_284[];
extern const u32 gBattleAnimSpriteSheet_285[];
extern const u32 gBattleAnimSpriteSheet_289[];
extern const u32 gBattleAnimSpritePalette_000[];
extern const u32 gBattleAnimSpritePalette_001[];
@ -4648,6 +4649,7 @@ 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 gBattleAnimBackgroundImage_00[];
extern const u32 gBattleAnimBackgroundImage_02[];

View File

@ -156,6 +156,7 @@ SECTIONS {
asm/contest_link_80FC4F4.o(.text);
src/item_use.o(.text);
asm/battle_anim_effects_1.o(.text);
src/effects_1.o(.text);
asm/battle_anim_effects_2.o(.text);
asm/water.o(.text);
src/fire.o(.text);

View File

@ -1057,6 +1057,7 @@ 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},
};
@ -1351,6 +1352,7 @@ 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},
};
const struct BattleAnimBackground gBattleAnimBackgroundTable[] =

View File

@ -2102,3 +2102,199 @@ const struct SpriteTemplate gPowerOrbs_Float =
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80FED28,
};
#include "random.h"
void AnimRockPolishStreak(struct Sprite *);
void AnimRockPolishSparkle(struct Sprite *);
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,
};
// 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);
InitAnimSpritePos(sprite, TRUE);
StartSpriteAffineAnim(sprite, affineAnimNum);
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
sprite->callback = sub_80A67D8;
}
// 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)
{
InitAnimSpritePos(sprite, TRUE);
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
sprite->callback = sub_80A67D8;
}

View File

@ -564,6 +564,10 @@ 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 gBattleAnimSpritePalette_164[] = INCBIN_U32("graphics/battle_anims/sprites/164.gbapal.lz");
const u32 gBattleAnimSpritePalette_165[] = INCBIN_U32("graphics/battle_anims/sprites/165.gbapal.lz");