mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-28 12:44:18 +01:00
Merge pull request #1765 from ghoulslash/shell_smash
Shell Smash Animation
This commit is contained in:
commit
0a090616ef
@ -5374,6 +5374,31 @@ ScaldHitSplats:
|
|||||||
return
|
return
|
||||||
|
|
||||||
Move_SHELL_SMASH:
|
Move_SHELL_SMASH:
|
||||||
|
loadspritegfx ANIM_TAG_SHELL_RIGHT
|
||||||
|
loadspritegfx ANIM_TAG_SHELL_LEFT
|
||||||
|
loadspritegfx ANIM_TAG_IMPACT
|
||||||
|
loadspritegfx ANIM_TAG_ROCKS
|
||||||
|
loadspritegfx ANIM_TAG_HANDS_AND_FEET
|
||||||
|
playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER
|
||||||
|
createsprite gShellSmashRightShellSpriteTemplate, ANIM_ATTACKER, 2, 0xffd7, 0x0, 0x2, 0x333, 0x0, 0xa
|
||||||
|
createsprite gShellSmashLeftShellSpriteTemplate, ANIM_ATTACKER, 2, 0x20, 0x0, 0x6, 0xfccd, 0x0, 0xa
|
||||||
|
delay 10
|
||||||
|
createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x1, 0x1
|
||||||
|
createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x8, 0x1, 0x0
|
||||||
|
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
|
||||||
|
createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 5, 1
|
||||||
|
waitforvisualfinish
|
||||||
|
playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET
|
||||||
|
createsprite gShellSmashPurpleRocksSpriteTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x14, 0x18, 0xe, 0x2
|
||||||
|
createsprite gShellSmashPurpleRocksSpriteTemplate, ANIM_ATTACKER, 2, 0x5, 0x0, 0xffec, 0x18, 0xe, 0x1
|
||||||
|
createsprite gShellSmashPurpleRocksSpriteTemplate, ANIM_ATTACKER, 2, 0x0, 0x5, 0x14, 0xffe8, 0xe, 0x2
|
||||||
|
createsprite gShellSmashPurpleRocksSpriteTemplate, ANIM_ATTACKER, 2, 0xfffb, 0x0, 0xffec, 0xffe8, 0xe, 0x2
|
||||||
|
createsprite gShellSmashPurpleRocksSpriteTemplate, ANIM_ATTACKER, 2, 0x0, 0xfffb, 0x1e, 0x12, 0x8, 0x2
|
||||||
|
createsprite gShellSmashPurpleRocksSpriteTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x1e, 0xffee, 0x8, 0x2
|
||||||
|
createsprite gShellSmashPurpleRocksSpriteTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0xffe2, 0x12, 0x8, 0x2
|
||||||
|
createsprite gShellSmashPurpleRocksSpriteTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0xffe2, 0xffee, 0x8, 0x2
|
||||||
|
createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 7, 1
|
||||||
|
waitforvisualfinish
|
||||||
end
|
end
|
||||||
|
|
||||||
Move_HEAL_PULSE:
|
Move_HEAL_PULSE:
|
||||||
|
@ -442,6 +442,7 @@ extern const union AffineAnimCmd *const gAffineAnims_SpinningHandOrFoot[];
|
|||||||
extern const union AnimCmd *const gAnims_RevengeBigScratch[];
|
extern const union AnimCmd *const gAnims_RevengeBigScratch[];
|
||||||
|
|
||||||
// battle_anim_rock.c
|
// battle_anim_rock.c
|
||||||
|
extern const union AnimCmd *const gAnims_FlyingRock[];
|
||||||
extern const union AffineAnimCmd *const gAffineAnims_Whirlpool[];
|
extern const union AffineAnimCmd *const gAffineAnims_Whirlpool[];
|
||||||
extern const union AffineAnimCmd *const gAffineAnims_BasicRock[];
|
extern const union AffineAnimCmd *const gAffineAnims_BasicRock[];
|
||||||
void AnimParticleInVortex(struct Sprite *sprite);
|
void AnimParticleInVortex(struct Sprite *sprite);
|
||||||
@ -449,6 +450,7 @@ void AnimFallingRock(struct Sprite *sprite);
|
|||||||
void AnimRaiseSprite(struct Sprite *sprite);
|
void AnimRaiseSprite(struct Sprite *sprite);
|
||||||
void AnimFallingRock_Step(struct Sprite *sprite);
|
void AnimFallingRock_Step(struct Sprite *sprite);
|
||||||
void AnimFlyingSandCrescent(struct Sprite *sprite);
|
void AnimFlyingSandCrescent(struct Sprite *sprite);
|
||||||
|
void AnimRockFragment(struct Sprite *);
|
||||||
|
|
||||||
// battle_anim_dark.c
|
// battle_anim_dark.c
|
||||||
void AnimClawSlash(struct Sprite *sprite);
|
void AnimClawSlash(struct Sprite *sprite);
|
||||||
|
@ -93,6 +93,40 @@ const struct SpriteTemplate gPowerTrickSpriteTemplate =
|
|||||||
|
|
||||||
|
|
||||||
//// GEN 5
|
//// GEN 5
|
||||||
|
//shell smash
|
||||||
|
const struct SpriteTemplate gShellSmashLeftShellSpriteTemplate =
|
||||||
|
{
|
||||||
|
.tileTag = ANIM_TAG_SHELL_RIGHT,
|
||||||
|
.paletteTag = ANIM_TAG_SHELL_RIGHT,
|
||||||
|
.oam = &gOamData_AffineNormal_ObjBlend_64x64,
|
||||||
|
.anims = gDummySpriteAnimTable,
|
||||||
|
.images = NULL,
|
||||||
|
.affineAnims = gAffineAnims_Bite,
|
||||||
|
.callback = AnimBite
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct SpriteTemplate gShellSmashRightShellSpriteTemplate =
|
||||||
|
{
|
||||||
|
.tileTag = ANIM_TAG_SHELL_LEFT,
|
||||||
|
.paletteTag = ANIM_TAG_SHELL_LEFT,
|
||||||
|
.oam = &gOamData_AffineNormal_ObjBlend_64x64,
|
||||||
|
.anims = gDummySpriteAnimTable,
|
||||||
|
.images = NULL,
|
||||||
|
.affineAnims = gAffineAnims_Bite,
|
||||||
|
.callback = AnimBite
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct SpriteTemplate gShellSmashPurpleRocksSpriteTemplate =
|
||||||
|
{
|
||||||
|
.tileTag = ANIM_TAG_ROCKS,
|
||||||
|
.paletteTag = ANIM_TAG_SHELL_RIGHT,
|
||||||
|
.oam = &gOamData_AffineOff_ObjNormal_32x32,
|
||||||
|
.anims = gAnims_FlyingRock,
|
||||||
|
.images = NULL,
|
||||||
|
.affineAnims = gDummySpriteAffineAnimTable,
|
||||||
|
.callback = AnimRockFragment
|
||||||
|
};
|
||||||
|
|
||||||
//wide guard
|
//wide guard
|
||||||
const struct SpriteTemplate gWideGuardBlueConversionTemplate =
|
const struct SpriteTemplate gWideGuardBlueConversionTemplate =
|
||||||
{
|
{
|
||||||
|
@ -9,7 +9,6 @@
|
|||||||
#include "constants/rgb.h"
|
#include "constants/rgb.h"
|
||||||
#include "constants/songs.h"
|
#include "constants/songs.h"
|
||||||
|
|
||||||
static void AnimRockFragment(struct Sprite *);
|
|
||||||
static void AnimTask_Rollout_Step(u8 taskId);
|
static void AnimTask_Rollout_Step(u8 taskId);
|
||||||
static void AnimRolloutParticle(struct Sprite *);
|
static void AnimRolloutParticle(struct Sprite *);
|
||||||
static void AnimRockTomb(struct Sprite *);
|
static void AnimRockTomb(struct Sprite *);
|
||||||
@ -43,7 +42,7 @@ static const union AnimCmd sAnim_FlyingRock_2[] =
|
|||||||
ANIMCMD_END,
|
ANIMCMD_END,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const union AnimCmd *const sAnims_FlyingRock[] =
|
const union AnimCmd *const gAnims_FlyingRock[] =
|
||||||
{
|
{
|
||||||
sAnim_FlyingRock_0,
|
sAnim_FlyingRock_0,
|
||||||
sAnim_FlyingRock_1,
|
sAnim_FlyingRock_1,
|
||||||
@ -55,7 +54,7 @@ const struct SpriteTemplate gFallingRockSpriteTemplate =
|
|||||||
.tileTag = ANIM_TAG_ROCKS,
|
.tileTag = ANIM_TAG_ROCKS,
|
||||||
.paletteTag = ANIM_TAG_ROCKS,
|
.paletteTag = ANIM_TAG_ROCKS,
|
||||||
.oam = &gOamData_AffineOff_ObjNormal_32x32,
|
.oam = &gOamData_AffineOff_ObjNormal_32x32,
|
||||||
.anims = sAnims_FlyingRock,
|
.anims = gAnims_FlyingRock,
|
||||||
.images = NULL,
|
.images = NULL,
|
||||||
.affineAnims = gDummySpriteAffineAnimTable,
|
.affineAnims = gDummySpriteAffineAnimTable,
|
||||||
.callback = AnimFallingRock,
|
.callback = AnimFallingRock,
|
||||||
@ -66,7 +65,7 @@ const struct SpriteTemplate gRockFragmentSpriteTemplate =
|
|||||||
.tileTag = ANIM_TAG_ROCKS,
|
.tileTag = ANIM_TAG_ROCKS,
|
||||||
.paletteTag = ANIM_TAG_ROCKS,
|
.paletteTag = ANIM_TAG_ROCKS,
|
||||||
.oam = &gOamData_AffineOff_ObjNormal_32x32,
|
.oam = &gOamData_AffineOff_ObjNormal_32x32,
|
||||||
.anims = sAnims_FlyingRock,
|
.anims = gAnims_FlyingRock,
|
||||||
.images = NULL,
|
.images = NULL,
|
||||||
.affineAnims = gDummySpriteAffineAnimTable,
|
.affineAnims = gDummySpriteAffineAnimTable,
|
||||||
.callback = AnimRockFragment,
|
.callback = AnimRockFragment,
|
||||||
@ -430,7 +429,7 @@ void AnimFallingRock_Step(struct Sprite *sprite)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Animates the rock particles that are shown on the impact for Rock Blast / Rock Smash
|
// Animates the rock particles that are shown on the impact for Rock Blast / Rock Smash
|
||||||
static void AnimRockFragment(struct Sprite *sprite)
|
void AnimRockFragment(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
StartSpriteAnim(sprite, gBattleAnimArgs[5]);
|
StartSpriteAnim(sprite, gBattleAnimArgs[5]);
|
||||||
AnimateSprite(sprite);
|
AnimateSprite(sprite);
|
||||||
|
Loading…
Reference in New Issue
Block a user