mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 03:34:15 +01:00
finish z move anims
This commit is contained in:
parent
f114534ae3
commit
752aca7698
@ -288,43 +288,57 @@
|
||||
createvisualtask AnimTask_IsDoubleBattle, 0
|
||||
jumprettrue \ptr
|
||||
.endm
|
||||
|
||||
|
||||
@ keep CFRU macros cause I'm lazy. todo: update to createsprite and createvisualtask, respectively
|
||||
.macro launchtemplate launchtemplatePtr launchtemplatePriority launchtemplateArgsNo launchtemplatearg0 launchtemplatearg1 launchtemplatearg2 launchtemplatearg3 launchtemplatearg4 launchtemplatearg5 launchtemplatearg6 launchtemplatearg7 launchtemplatearg8
|
||||
.byte 0x2
|
||||
.word \launchtemplatePtr
|
||||
.byte \launchtemplatePriority
|
||||
.byte \launchtemplateArgsNo
|
||||
.hword \launchtemplatearg0
|
||||
.hword \launchtemplatearg1
|
||||
.hword \launchtemplatearg2
|
||||
.hword \launchtemplatearg3
|
||||
.hword \launchtemplatearg4
|
||||
.hword \launchtemplatearg5
|
||||
.hword \launchtemplatearg6
|
||||
.hword \launchtemplatearg7
|
||||
.hword \launchtemplatearg8
|
||||
.endm
|
||||
|
||||
.byte 0x2
|
||||
.word \launchtemplatePtr
|
||||
.byte \launchtemplatePriority
|
||||
.byte \launchtemplateArgsNo
|
||||
.hword \launchtemplatearg0
|
||||
.hword \launchtemplatearg1
|
||||
.hword \launchtemplatearg2
|
||||
.hword \launchtemplatearg3
|
||||
.hword \launchtemplatearg4
|
||||
.hword \launchtemplatearg5
|
||||
.hword \launchtemplatearg6
|
||||
.hword \launchtemplatearg7
|
||||
.hword \launchtemplatearg8
|
||||
.endm
|
||||
|
||||
.macro launchtask launchtaskPtr launchtaskPriority launchtaskArgsNo launchtaskarg0 launchtaskarg1 launchtaskarg2 launchtaskarg3 launchtaskarg4 launchtaskarg5 launchtaskarg6 launchtaskarg7 launchtaskarg8
|
||||
.byte 0x3
|
||||
.word \launchtaskPtr
|
||||
.byte \launchtaskPriority
|
||||
.byte \launchtaskArgsNo
|
||||
.hword \launchtaskarg0
|
||||
.hword \launchtaskarg1
|
||||
.hword \launchtaskarg2
|
||||
.hword \launchtaskarg3
|
||||
.hword \launchtaskarg4
|
||||
.hword \launchtaskarg5
|
||||
.hword \launchtaskarg6
|
||||
.hword \launchtaskarg7
|
||||
.hword \launchtaskarg8
|
||||
.endm
|
||||
|
||||
.byte 0x3
|
||||
.word \launchtaskPtr
|
||||
.byte \launchtaskPriority
|
||||
.byte \launchtaskArgsNo
|
||||
.hword \launchtaskarg0
|
||||
.hword \launchtaskarg1
|
||||
.hword \launchtaskarg2
|
||||
.hword \launchtaskarg3
|
||||
.hword \launchtaskarg4
|
||||
.hword \launchtaskarg5
|
||||
.hword \launchtaskarg6
|
||||
.hword \launchtaskarg7
|
||||
.hword \launchtaskarg8
|
||||
.endm
|
||||
|
||||
.macro setblends setblends_value
|
||||
.byte 0xC
|
||||
.hword \setblends_value
|
||||
.endm
|
||||
.byte 0xC
|
||||
.hword \setblends_value
|
||||
.endm
|
||||
|
||||
.macro launchsoundtask launchsoundtaskPtr launchsoundtaskArgsNo launchsoundtaskarg0 launchsoundtaskarg1 launchsoundtaskarg2 launchsoundtaskarg3 launchsoundtaskarg4 launchsoundtaskarg5 launchsoundtaskarg6 launchsoundtaskarg7 launchsoundtaskarg8
|
||||
.byte 0x1F
|
||||
.word \launchsoundtaskPtr
|
||||
.byte \launchsoundtaskArgsNo
|
||||
.hword \launchsoundtaskarg0
|
||||
.hword \launchsoundtaskarg1
|
||||
.hword \launchsoundtaskarg2
|
||||
.hword \launchsoundtaskarg3
|
||||
.hword \launchsoundtaskarg4
|
||||
.hword \launchsoundtaskarg5
|
||||
.hword \launchsoundtaskarg6
|
||||
.hword \launchsoundtaskarg7
|
||||
.hword \launchsoundtaskarg8
|
||||
.endm
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -50,7 +50,10 @@ InsideOfTruck_EventScript_SetIntroFlagsFemale:: @ 823BF46
|
||||
end
|
||||
|
||||
InsideOfTruck_EventScript_MovingBox:: @ 823BF6C
|
||||
msgbox InsideOfTruck_Text_BoxPrintedWithMonLogo, MSGBOX_SIGN
|
||||
givemon SPECIES_SNEASEL, 70, ITEM_DARKINIUM_Z
|
||||
setwildbattle SPECIES_WALREIN, 53, 0
|
||||
dowildbattle
|
||||
@msgbox InsideOfTruck_Text_BoxPrintedWithMonLogo, MSGBOX_SIGN
|
||||
end
|
||||
|
||||
InsideOfTruck_Text_BoxPrintedWithMonLogo: @ 823BF75
|
||||
|
@ -213,6 +213,7 @@ void AnimTask_HorizontalShake(u8 taskId);
|
||||
void AnimMudSportDirt(struct Sprite *sprite);
|
||||
void AnimDirtScatter(struct Sprite *sprite);
|
||||
void AnimMudSportDirtRising(struct Sprite *sprite);
|
||||
void AnimDirtPlumeParticle(struct Sprite *);
|
||||
extern const union AffineAnimCmd *const gAffineAnims_SpinningBone[];
|
||||
|
||||
// battle_anim_throw.c
|
||||
@ -274,6 +275,7 @@ extern const union AnimCmd *const gScratchAnimTable[];
|
||||
extern const union AnimCmd *const gIngrainRootAnimTable[];
|
||||
extern const union AffineAnimCmd *const gSwiftStarAffineAnimTable[];
|
||||
extern const union AnimCmd *const gMetronomeThroughtBubbleAnimTable[];
|
||||
extern const union AffineAnimCmd *const gStockpileAbsorptionOrbAffineAnimTable[];
|
||||
|
||||
// battle_anim_effects_2.c
|
||||
void AnimUproarRing(struct Sprite *sprite);
|
||||
@ -282,6 +284,7 @@ void AnimOrbitFast(struct Sprite *sprite);
|
||||
void AnimOrbitScatter(struct Sprite *sprite);
|
||||
void AnimAngerMark(struct Sprite *sprite);
|
||||
void AnimHyperVoiceRing(struct Sprite *sprite);
|
||||
void AnimMagentaHeart(struct Sprite *);
|
||||
extern const union AffineAnimCmd *const gThinRingShrinkingAffineAnimTable[];
|
||||
extern const union AffineAnimCmd *const gThinRingExpandingAffineAnimTable[];
|
||||
extern const union AnimCmd *const gExplosionAnimTable[];
|
||||
@ -297,8 +300,13 @@ void AnimBlackSmoke(struct Sprite *sprite);
|
||||
void AnimSweetScentPetal(struct Sprite *sprite);
|
||||
void AnimTealAlert(struct Sprite *sprite);
|
||||
void AnimBlockX(struct Sprite *sprite);
|
||||
void AnimFlatterSpotlight_Step(struct Sprite *);
|
||||
void AnimAssistPawprint(struct Sprite *);
|
||||
void AnimReversalOrb(struct Sprite *);
|
||||
void AnimFlatterSpotlight_Step(struct Sprite *sprite);
|
||||
extern const union AnimCmd *const gOpeningEyeAnimTable[];
|
||||
extern const union AnimCmd *const gEclipsingOrbAnimTable[];
|
||||
extern const union AffineAnimCmd *const gSpotlightAffineAnimTable[];
|
||||
|
||||
// battle_anim_water.c
|
||||
void AnimWaterPulseRing(struct Sprite *sprite);
|
||||
@ -316,16 +324,21 @@ void AnimFlyBallUp(struct Sprite *sprite);
|
||||
void AnimFlyBallAttack(struct Sprite *sprite);
|
||||
void AnimFlyBallAttack_Step(struct Sprite *sprite);
|
||||
void AnimFlyBallUp_Step(struct Sprite *sprite);
|
||||
void AnimBounceBallLand(struct Sprite *);
|
||||
void AnimEllipticalGust(struct Sprite *);
|
||||
extern const union AnimCmd *const gAffineAnims_AirWaveCrescent[];
|
||||
extern const union AffineAnimCmd *const gAffineAnims_FlyBallUp[];
|
||||
extern const union AffineAnimCmd *const gAffineAnims_FlyBallAttack[];
|
||||
extern const union AffineAnimCmd *const gAffineAnims_BounceBallLand[];
|
||||
|
||||
// battle_anim_poison.c
|
||||
void AnimSludgeBombHitParticle(struct Sprite *);
|
||||
void AnimAcidPoisonBubble_Step(struct Sprite *sprite);
|
||||
void AnimBubbleEffect(struct Sprite *);
|
||||
extern const union AffineAnimCmd *const gAffineAnims_PoisonProjectile[];
|
||||
extern const union AnimCmd *const gAnims_PoisonProjectile[];
|
||||
extern const union AnimCmd *const gAnims_AcidPoisonDroplet[];
|
||||
extern const union AffineAnimCmd *const gAffineAnims_Bubble[];
|
||||
|
||||
// battle_anim_ghost.c
|
||||
void AnimGhostStatusSprite(struct Sprite *sprite);
|
||||
@ -421,6 +434,7 @@ void AnimSparkElectricity(struct Sprite *sprite);
|
||||
void AnimElectricPuff(struct Sprite *sprite);
|
||||
void AnimSparkElectricityFlashing(struct Sprite *sprite);
|
||||
void AnimGrowingShockWaveOrb(struct Sprite *sprite);
|
||||
void AnimElectricity(struct Sprite *);
|
||||
extern const union AffineAnimCmd *const gAffineAnims_GrowingElectricOrb[];
|
||||
extern const union AffineAnimCmd *const gAffineAnims_FlashingSpark[];
|
||||
extern const union AnimCmd *const gAnims_ThunderboltOrb[];
|
||||
@ -436,6 +450,7 @@ void AnimBasicFistOrFoot(struct Sprite *sprite);
|
||||
void AnimSpinningKickOrPunchFinish(struct Sprite *sprite);
|
||||
void AnimRevengeScratch(struct Sprite *sprite);
|
||||
void AnimDizzyPunchDuck(struct Sprite *sprite);
|
||||
void AnimSuperpowerFireball(struct Sprite *);
|
||||
extern const union AnimCmd *const gAnims_HandOrFoot[];
|
||||
extern const union AffineAnimCmd *const gAffineAnims_MegaPunchKick[];
|
||||
extern const union AffineAnimCmd *const gAffineAnims_SpinningHandOrFoot[];
|
||||
@ -444,6 +459,7 @@ extern const union AnimCmd *const gAnims_RevengeBigScratch[];
|
||||
// battle_anim_rock.c
|
||||
extern const union AffineAnimCmd *const gAffineAnims_Whirlpool[];
|
||||
extern const union AffineAnimCmd *const gAffineAnims_BasicRock[];
|
||||
extern const union AnimCmd *const gAnims_FlyingRock[];
|
||||
void AnimParticleInVortex(struct Sprite *sprite);
|
||||
void AnimFallingRock(struct Sprite *sprite);
|
||||
void AnimRaiseSprite(struct Sprite *sprite);
|
||||
@ -478,8 +494,12 @@ extern const union AnimCmd *const gAnims_BlizzardIceCrystal[];
|
||||
void AnimFireSpread(struct Sprite *sprite);
|
||||
void AnimFireSpiralOutward(struct Sprite *sprite);
|
||||
void AnimWillOWispOrb(struct Sprite *);
|
||||
void AnimEruptionFallingRock(struct Sprite *);
|
||||
void AnimFireCross(struct Sprite *);
|
||||
void AnimFirePlume(struct Sprite *);
|
||||
extern const union AnimCmd *const gAnims_FireBlastCross[];
|
||||
extern const union AnimCmd *const gAnims_WillOWispOrb[];
|
||||
extern const union AnimCmd *const gAnims_FirePlume[];
|
||||
|
||||
// battle_anim_dragon.c
|
||||
extern const union AnimCmd *const gAnims_DragonBreathFire[];
|
||||
|
@ -614,6 +614,12 @@
|
||||
#define ANIM_RIGHT_FIST 0
|
||||
#define ANIM_LEFT_FIST 2
|
||||
|
||||
// fist/chop frames
|
||||
#define ANIM_FIST_1 0
|
||||
#define ANIM_FOOT_1 1
|
||||
#define ANIM_FOOT_2 2
|
||||
#define ANIM_CHOP 3
|
||||
|
||||
// surf wave palettes
|
||||
#define ANIM_SURF_PAL_SURF 0
|
||||
#define ANIM_SURF_PAL_MUDDY_WATER 1
|
||||
|
@ -58,7 +58,6 @@ static void AnimSoftBoiledEgg_Step4(struct Sprite *);
|
||||
static void AnimSoftBoiledEgg_Step4_Callback(struct Sprite *);
|
||||
static void AnimSpeedDust(struct Sprite *);
|
||||
static void AnimHealBellMusicNote(struct Sprite *);
|
||||
static void AnimMagentaHeart(struct Sprite *);
|
||||
static void AnimRedHeartProjectile(struct Sprite *);
|
||||
static void AnimRedHeartProjectile_Step(struct Sprite *);
|
||||
static void AnimRedHeartRising(struct Sprite *);
|
||||
@ -3091,7 +3090,7 @@ static void AnimHealBellMusicNote(struct Sprite *sprite)
|
||||
SetMusicNotePalette(sprite, gBattleAnimArgs[5], gBattleAnimArgs[6]);
|
||||
}
|
||||
|
||||
static void AnimMagentaHeart(struct Sprite *sprite)
|
||||
void AnimMagentaHeart(struct Sprite *sprite)
|
||||
{
|
||||
if (++sprite->data[0] == 1)
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
|
@ -65,8 +65,6 @@ static void AnimPainSplitProjectile(struct Sprite *);
|
||||
static void AnimFlatterConfetti(struct Sprite *);
|
||||
static void AnimFlatterConfetti_Step(struct Sprite *);
|
||||
static void AnimFlatterSpotlight(struct Sprite *);
|
||||
static void AnimFlatterSpotlight_Step(struct Sprite *);
|
||||
static void AnimReversalOrb(struct Sprite *);
|
||||
static void AnimReversalOrb_Step(struct Sprite *);
|
||||
static void AnimYawnCloud(struct Sprite *);
|
||||
static void AnimYawnCloud_Step(struct Sprite *);
|
||||
@ -75,7 +73,6 @@ static void AnimFacadeSweatDrop(struct Sprite *);
|
||||
static void AnimRoarNoiseLine(struct Sprite *);
|
||||
static void AnimRoarNoiseLine_Step(struct Sprite *);
|
||||
static void AnimGlareEyeDot(struct Sprite *);
|
||||
static void AnimAssistPawprint(struct Sprite *);
|
||||
static void AnimSmellingSaltsHand(struct Sprite *);
|
||||
static void AnimSmellingSaltsHand_Step(struct Sprite *);
|
||||
static void AnimSmellingSaltExclamation(struct Sprite *);
|
||||
@ -3144,7 +3141,7 @@ static void AnimFlatterSpotlight(struct Sprite *sprite)
|
||||
sprite->callback = AnimFlatterSpotlight_Step;
|
||||
}
|
||||
|
||||
static void AnimFlatterSpotlight_Step(struct Sprite *sprite)
|
||||
void AnimFlatterSpotlight_Step(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->data[1])
|
||||
{
|
||||
@ -3178,7 +3175,7 @@ static void AnimFlatterSpotlight_Step(struct Sprite *sprite)
|
||||
// Spins an orb around the attacking mon, while its path radius grows and shrinks.
|
||||
// arg 0: duration
|
||||
// arg 1: initial wave offset
|
||||
static void AnimReversalOrb(struct Sprite *sprite)
|
||||
void AnimReversalOrb(struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
@ -4106,7 +4103,7 @@ static void AnimGlareEyeDot(struct Sprite *sprite)
|
||||
// arg 2: destination x position
|
||||
// arg 3: destination y position
|
||||
// arg 4: duration
|
||||
static void AnimAssistPawprint(struct Sprite *sprite)
|
||||
void AnimAssistPawprint(struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos1.x = gBattleAnimArgs[0];
|
||||
sprite->pos1.y = gBattleAnimArgs[1];
|
||||
|
@ -15,7 +15,6 @@ static void AnimZapCannonSpark_Step(struct Sprite *);
|
||||
static void AnimThunderboltOrb(struct Sprite *);
|
||||
static void AnimThunderboltOrb_Step(struct Sprite *);
|
||||
static void AnimSparkElectricityFlashing_Step(struct Sprite *);
|
||||
static void AnimElectricity(struct Sprite *);
|
||||
static void AnimTask_ElectricBolt_Step(u8 taskId);
|
||||
static void AnimElectricBoltSegment(struct Sprite *);
|
||||
static void AnimThunderWave_Step(struct Sprite *);
|
||||
@ -758,7 +757,7 @@ static void AnimSparkElectricityFlashing_Step(struct Sprite *sprite)
|
||||
}
|
||||
|
||||
// Electricity arcs around the target. Used for Paralysis and various electric move hits
|
||||
static void AnimElectricity(struct Sprite *sprite)
|
||||
void AnimElectricity(struct Sprite *sprite)
|
||||
{
|
||||
if (!InitSpritePosToAnimBattler(gBattleAnimArgs[4], sprite, FALSE))
|
||||
return;
|
||||
|
@ -24,7 +24,6 @@ static void AnimSuperpowerOrb_Step(struct Sprite *);
|
||||
static void AnimSuperpowerRock(struct Sprite *);
|
||||
static void AnimSuperpowerRock_Step1(struct Sprite *);
|
||||
static void AnimSuperpowerRock_Step2(struct Sprite *);
|
||||
static void AnimSuperpowerFireball(struct Sprite *);
|
||||
static void AnimArmThrustHit(struct Sprite *);
|
||||
static void AnimArmThrustHit_Step(struct Sprite *sprite);
|
||||
static void AnimFocusPunchFist(struct Sprite *);
|
||||
@ -974,7 +973,7 @@ static void AnimSuperpowerRock_Step2(struct Sprite *sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
static void AnimSuperpowerFireball(struct Sprite *sprite)
|
||||
void AnimSuperpowerFireball(struct Sprite *sprite)
|
||||
{
|
||||
u8 battler;
|
||||
|
||||
|
@ -8,7 +8,6 @@
|
||||
#include "trig.h"
|
||||
|
||||
static void AnimFireSpiralInward(struct Sprite *);
|
||||
static void AnimFirePlume(struct Sprite *);
|
||||
static void AnimLargeFlame(struct Sprite *);
|
||||
static void sub_8109028(struct Sprite *);
|
||||
static void sub_8109064(struct Sprite *);
|
||||
@ -21,7 +20,6 @@ static void AnimFireRing_Step1(struct Sprite *);
|
||||
static void AnimFireRing_Step2(struct Sprite *);
|
||||
static void AnimFireRing_Step3(struct Sprite *);
|
||||
static void UpdateFireRingCircleOffset(struct Sprite *);
|
||||
static void AnimFireCross(struct Sprite *);
|
||||
static void AnimFireSpiralOutward_Step1(struct Sprite *);
|
||||
static void AnimFireSpiralOutward_Step2(struct Sprite *);
|
||||
static void AnimTask_EruptionLaunchRocks_Step(u8 taskId);
|
||||
@ -30,7 +28,6 @@ static void AnimEruptionLaunchRock(struct Sprite *);
|
||||
static u16 GetEruptionLaunchRockInitialYPos(u8 spriteId);
|
||||
static void InitEruptionLaunchRockCoordData(struct Sprite *sprite, s16 x, s16 y);
|
||||
static void UpdateEruptionLaunchRockPos(struct Sprite *);
|
||||
static void AnimEruptionFallingRock(struct Sprite *);
|
||||
static void AnimEruptionFallingRock_Step(struct Sprite *);
|
||||
static void AnimWillOWispOrb_Step(struct Sprite *);
|
||||
static void AnimWillOWispFire(struct Sprite *);
|
||||
@ -110,7 +107,7 @@ static const union AnimCmd sAnim_FirePlume[] =
|
||||
ANIMCMD_JUMP(0),
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sAnims_FirePlume[] =
|
||||
const union AnimCmd *const gAnims_FirePlume[] =
|
||||
{
|
||||
sAnim_FirePlume,
|
||||
};
|
||||
@ -154,7 +151,7 @@ const struct SpriteTemplate gFirePlumeSpriteTemplate =
|
||||
.tileTag = ANIM_TAG_FIRE_PLUME,
|
||||
.paletteTag = ANIM_TAG_FIRE_PLUME,
|
||||
.oam = &gOamData_AffineOff_ObjNormal_32x32,
|
||||
.anims = sAnims_FirePlume,
|
||||
.anims = gAnims_FirePlume,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = AnimFirePlume,
|
||||
@ -166,7 +163,7 @@ const struct SpriteTemplate gUnknown_08595440 =
|
||||
.tileTag = ANIM_TAG_SMALL_EMBER,
|
||||
.paletteTag = ANIM_TAG_SMALL_EMBER,
|
||||
.oam = &gOamData_AffineOff_ObjNormal_32x32,
|
||||
.anims = sAnims_FirePlume,
|
||||
.anims = gAnims_FirePlume,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = AnimFirePlume,
|
||||
@ -501,7 +498,7 @@ const struct SpriteTemplate gLavaPlumeSpriteTemplate =
|
||||
.tileTag = ANIM_TAG_FIRE_PLUME,
|
||||
.paletteTag = ANIM_TAG_FIRE_PLUME,
|
||||
.oam = &gOamData_AffineOff_ObjNormal_32x32,
|
||||
.anims = sAnims_FirePlume,
|
||||
.anims = gAnims_FirePlume,
|
||||
.images = NULL,
|
||||
.affineAnims = gLavaPlumeAffineAnims,
|
||||
.callback = AnimLavaPlumeOrbitScatter,
|
||||
@ -575,7 +572,7 @@ void AnimFireSpread(struct Sprite *sprite)
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
static void AnimFirePlume(struct Sprite *sprite)
|
||||
void AnimFirePlume(struct Sprite *sprite)
|
||||
{
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
|
||||
@ -807,7 +804,7 @@ static void UpdateFireRingCircleOffset(struct Sprite *sprite)
|
||||
// arg 3: x delta
|
||||
// arg 4: y delta
|
||||
// AnimFireCross(struct Sprite *sprite)
|
||||
static void AnimFireCross(struct Sprite *sprite)
|
||||
void AnimFireCross(struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos1.x += gBattleAnimArgs[0];
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
@ -1084,7 +1081,7 @@ static void UpdateEruptionLaunchRockPos(struct Sprite *sprite)
|
||||
sprite->invisible = TRUE;
|
||||
}
|
||||
|
||||
static void AnimEruptionFallingRock(struct Sprite *sprite)
|
||||
void AnimEruptionFallingRock(struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos1.x = gBattleAnimArgs[0];
|
||||
sprite->pos1.y = gBattleAnimArgs[1];
|
||||
|
@ -8,7 +8,6 @@
|
||||
|
||||
extern const struct SpriteTemplate gFlashingHitSplatSpriteTemplate;
|
||||
|
||||
static void AnimEllipticalGust(struct Sprite *);
|
||||
static void AnimEllipticalGust_Step(struct Sprite *);
|
||||
static void AnimGustToTarget(struct Sprite *);
|
||||
static void AnimGustToTarget_Step(struct Sprite *);
|
||||
@ -18,7 +17,6 @@ static void sub_810EB40(struct Sprite *);
|
||||
static void sub_810EA4C(struct Sprite *);
|
||||
static void AnimWhirlwindLine(struct Sprite *);
|
||||
static void AnimBounceBallShrink(struct Sprite *);
|
||||
static void AnimBounceBallLand(struct Sprite *);
|
||||
static void AnimDiveBall(struct Sprite *);
|
||||
static void AnimDiveBall_Step1(struct Sprite *);
|
||||
static void AnimDiveBall_Step2(struct Sprite *);
|
||||
@ -243,7 +241,7 @@ static const union AffineAnimCmd sAffineAnim_BounceBallLand[] =
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd *const sAffineAnims_BounceBallLand[] =
|
||||
const union AffineAnimCmd *const gAffineAnims_BounceBallLand[] =
|
||||
{
|
||||
sAffineAnim_BounceBallLand,
|
||||
};
|
||||
@ -255,7 +253,7 @@ const struct SpriteTemplate gBounceBallLandSpriteTemplate =
|
||||
.oam = &gOamData_AffineDouble_ObjNormal_64x64,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = sAffineAnims_BounceBallLand,
|
||||
.affineAnims = gAffineAnims_BounceBallLand,
|
||||
.callback = AnimBounceBallLand,
|
||||
};
|
||||
|
||||
@ -343,7 +341,7 @@ const struct SpriteTemplate gSkyAttackBirdSpriteTemplate =
|
||||
};
|
||||
|
||||
|
||||
static void AnimEllipticalGust(struct Sprite *sprite)
|
||||
void AnimEllipticalGust(struct Sprite *sprite)
|
||||
{
|
||||
InitSpritePosToAnimTarget(sprite, FALSE);
|
||||
sprite->pos1.y += 20;
|
||||
@ -977,7 +975,7 @@ static void AnimBounceBallShrink(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void AnimBounceBallLand(struct Sprite *sprite)
|
||||
void AnimBounceBallLand(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
|
@ -1400,3 +1400,68 @@ static void sub_8112FB8(struct Sprite *sprite)
|
||||
sprite->callback = DestroySpriteAndMatrix;
|
||||
}
|
||||
}
|
||||
|
||||
//pulverizing pancake - destiny bond shadow from attacker to target
|
||||
void AnimTask_PulverizingPancakeWhiteShadow(u8 taskId)
|
||||
{
|
||||
struct Task *task;
|
||||
s16 battler;
|
||||
u8 spriteId;
|
||||
s16 baseX, baseY;
|
||||
s16 x, y;
|
||||
|
||||
task = &gTasks[taskId];
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL));
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0x10));
|
||||
task->data[5] = 0;
|
||||
task->data[6] = 0;
|
||||
task->data[7] = 0;
|
||||
task->data[8] = 0;
|
||||
task->data[9] = 16;
|
||||
task->data[10] = gBattleAnimArgs[0];
|
||||
|
||||
baseX = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
|
||||
baseY = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_BOTTOM);
|
||||
if (!IsContest())
|
||||
{
|
||||
spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
x = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
|
||||
y = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_BOTTOM);
|
||||
gSprites[spriteId].data[0] = baseX << 4;
|
||||
gSprites[spriteId].data[1] = baseY << 4;
|
||||
gSprites[spriteId].data[2] = ((x - baseX) << 4) / gBattleAnimArgs[1];
|
||||
gSprites[spriteId].data[3] = ((y - baseY) << 4) / gBattleAnimArgs[1];
|
||||
gSprites[spriteId].data[4] = gBattleAnimArgs[1];
|
||||
gSprites[spriteId].data[5] = x;
|
||||
gSprites[spriteId].data[6] = y;
|
||||
gSprites[spriteId].callback = AnimDestinyBondWhiteShadow_Step;
|
||||
|
||||
task->data[task->data[12] + 13] = spriteId;
|
||||
task->data[12]++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
x = 48;
|
||||
y = 40;
|
||||
gSprites[spriteId].data[0] = baseX << 4;
|
||||
gSprites[spriteId].data[1] = baseY << 4;
|
||||
gSprites[spriteId].data[2] = ((x - baseX) << 4) / gBattleAnimArgs[1];
|
||||
gSprites[spriteId].data[3] = ((y - baseY) << 4) / gBattleAnimArgs[1];
|
||||
gSprites[spriteId].data[4] = gBattleAnimArgs[1];
|
||||
gSprites[spriteId].data[5] = x;
|
||||
gSprites[spriteId].data[6] = y;
|
||||
gSprites[spriteId].callback = AnimDestinyBondWhiteShadow_Step;
|
||||
|
||||
task->data[13] = spriteId;
|
||||
task->data[12] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
task->func = AnimTask_DestinyBondWhiteShadow_Step;
|
||||
}
|
||||
|
@ -8,7 +8,6 @@
|
||||
|
||||
static void AnimBonemerangProjectile(struct Sprite *);
|
||||
static void AnimBoneHitProjectile(struct Sprite *);
|
||||
static void AnimDirtPlumeParticle(struct Sprite *);
|
||||
static void AnimDirtPlumeParticle_Step(struct Sprite *);
|
||||
static void AnimDigDirtMound(struct Sprite *);
|
||||
static void AnimBonemerangProjectile_Step(struct Sprite *);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -8,7 +8,6 @@ static void AnimSludgeProjectile_Step(struct Sprite *);
|
||||
static void AnimAcidPoisonBubble(struct Sprite *);
|
||||
static void AnimSludgeBombHitParticle_Step(struct Sprite *);
|
||||
static void AnimAcidPoisonDroplet(struct Sprite *);
|
||||
static void AnimBubbleEffect(struct Sprite *);
|
||||
static void AnimBubbleEffect_Step(struct Sprite *);
|
||||
static void AnimSuckerPunchStep(struct Sprite *sprite);
|
||||
static void AnimSuckerPunch(struct Sprite *sprite);
|
||||
@ -161,7 +160,7 @@ static const union AffineAnimCmd sAffineAnim_Bubble[] =
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd *const sAffineAnims_Bubble[] =
|
||||
const union AffineAnimCmd *const gAffineAnims_Bubble[] =
|
||||
{
|
||||
sAffineAnim_Bubble,
|
||||
};
|
||||
@ -173,7 +172,7 @@ const struct SpriteTemplate gPoisonBubbleSpriteTemplate =
|
||||
.oam = &gOamData_AffineNormal_ObjNormal_16x16,
|
||||
.anims = gAnims_PoisonProjectile,
|
||||
.images = NULL,
|
||||
.affineAnims = sAffineAnims_Bubble,
|
||||
.affineAnims = gAffineAnims_Bubble,
|
||||
.callback = AnimBubbleEffect,
|
||||
};
|
||||
|
||||
@ -184,7 +183,7 @@ const struct SpriteTemplate gWaterBubbleSpriteTemplate =
|
||||
.oam = &gOamData_AffineNormal_ObjBlend_16x16,
|
||||
.anims = gAnims_WaterBubble,
|
||||
.images = NULL,
|
||||
.affineAnims = sAffineAnims_Bubble,
|
||||
.affineAnims = gAffineAnims_Bubble,
|
||||
.callback = AnimBubbleEffect,
|
||||
};
|
||||
|
||||
@ -505,7 +504,7 @@ static void AnimAcidPoisonDroplet(struct Sprite *sprite)
|
||||
// arg 0: initial x pixel offset
|
||||
// arg 1: initial y pixel offset
|
||||
// arg 2: 0 = single-target, 1 = multi-target
|
||||
static void AnimBubbleEffect(struct Sprite *sprite)
|
||||
void AnimBubbleEffect(struct Sprite *sprite)
|
||||
{
|
||||
if (!gBattleAnimArgs[2])
|
||||
{
|
||||
|
@ -43,7 +43,7 @@ static const union AnimCmd sAnim_FlyingRock_2[] =
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sAnims_FlyingRock[] =
|
||||
const union AnimCmd *const gAnims_FlyingRock[] =
|
||||
{
|
||||
sAnim_FlyingRock_0,
|
||||
sAnim_FlyingRock_1,
|
||||
@ -55,7 +55,7 @@ const struct SpriteTemplate gFallingRockSpriteTemplate =
|
||||
.tileTag = ANIM_TAG_ROCKS,
|
||||
.paletteTag = ANIM_TAG_ROCKS,
|
||||
.oam = &gOamData_AffineOff_ObjNormal_32x32,
|
||||
.anims = sAnims_FlyingRock,
|
||||
.anims = gAnims_FlyingRock,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = AnimFallingRock,
|
||||
@ -66,7 +66,7 @@ const struct SpriteTemplate gRockFragmentSpriteTemplate =
|
||||
.tileTag = ANIM_TAG_ROCKS,
|
||||
.paletteTag = ANIM_TAG_ROCKS,
|
||||
.oam = &gOamData_AffineOff_ObjNormal_32x32,
|
||||
.anims = sAnims_FlyingRock,
|
||||
.anims = gAnims_FlyingRock,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = AnimRockFragment,
|
||||
@ -708,6 +708,54 @@ void AnimTask_Rollout(u8 taskId)
|
||||
task->func = AnimTask_Rollout_Step;
|
||||
}
|
||||
|
||||
void AnimTask_TectonicRageRollout(u8 taskId)
|
||||
{
|
||||
u16 var0, var1, var2, var3;
|
||||
int var5;
|
||||
s16 pan1, pan2;
|
||||
struct Task *task;
|
||||
u8 rolloutCounter = 1;
|
||||
|
||||
task = &gTasks[taskId];
|
||||
|
||||
var0 = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
|
||||
var1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 24;
|
||||
var2 = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
|
||||
var3 = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 24;
|
||||
|
||||
if (BATTLE_PARTNER(gBattleAnimAttacker) == gBattleAnimTarget)
|
||||
var3 = var1;
|
||||
|
||||
task->data[8] = 48 - (rolloutCounter * 8); //rollout speed
|
||||
task->data[0] = 0;
|
||||
task->data[11] = 0;
|
||||
task->data[9] = 0;
|
||||
task->data[12] = 1;
|
||||
|
||||
var5 = task->data[8];
|
||||
if (var5 < 0)
|
||||
var5 += 7;
|
||||
|
||||
task->data[10] = (var5 >> 3) - 1;
|
||||
|
||||
task->data[2] = var0 * 8;
|
||||
task->data[3] = var1 * 8;
|
||||
task->data[4] = ((var2 - var0) * 8) / task->data[8];
|
||||
task->data[5] = ((var3 - var1) * 8) / task->data[8];
|
||||
task->data[6] = 0;
|
||||
task->data[7] = 0;
|
||||
|
||||
pan1 = BattleAnimAdjustPanning(-64);
|
||||
pan2 = BattleAnimAdjustPanning(63);
|
||||
|
||||
task->data[13] = pan1;
|
||||
task->data[14] = (pan2 - pan1) / task->data[8];
|
||||
task->data[1] = rolloutCounter;
|
||||
task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER);
|
||||
|
||||
task->func = AnimTask_Rollout_Step;
|
||||
}
|
||||
|
||||
static void AnimTask_Rollout_Step(u8 taskId)
|
||||
{
|
||||
struct Task *task;
|
||||
|
@ -380,6 +380,25 @@ static void sub_80A9E78(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimTask_FrozenIceCubeAttacker(u8 taskId)
|
||||
{
|
||||
s16 x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) - 32;
|
||||
s16 y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) - 36;
|
||||
u8 spriteId;
|
||||
|
||||
if (IsContest())
|
||||
x -= 6;
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
|
||||
spriteId = CreateSprite(&gFrozenIceCubeSpriteTemplate, x, y, 4);
|
||||
if (GetSpriteTileStartByTag(ANIM_TAG_ICE_CUBE) == 0xFFFF)
|
||||
gSprites[spriteId].invisible = TRUE;
|
||||
SetSubspriteTables(&gSprites[spriteId], sFrozenIceCubeSubspriteTable);
|
||||
gTasks[taskId].data[15] = spriteId;
|
||||
gTasks[taskId].func = AnimTask_FrozenIceCube_Step1;
|
||||
}
|
||||
|
||||
|
||||
void AnimTask_FrozenIceCube(u8 taskId)
|
||||
{
|
||||
s16 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) - 32;
|
||||
|
@ -4884,4 +4884,19 @@ const struct Item gItems[] =
|
||||
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
|
||||
.secondaryId = 0,
|
||||
},
|
||||
|
||||
//TEST
|
||||
[ITEM_DARKINIUM_Z] =
|
||||
{
|
||||
.name = _("Darkinium Z"),
|
||||
.itemId = ITEM_DARKINIUM_Z,
|
||||
.price = 0,
|
||||
.description = sDummyDesc,
|
||||
.importance = 1,
|
||||
.pocket = POCKET_KEY_ITEMS,
|
||||
.holdEffectParam = TYPE_DARK,
|
||||
.type = 4,
|
||||
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
|
||||
.holdEffect = HOLD_EFFECT_Z_CRYSTAL,
|
||||
},
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user