Sync battle anim - flying, header cleanup
This commit is contained in:
@@ -245,7 +245,7 @@ $(C_BUILDDIR)/isagbprn.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE)
|
||||
$(C_BUILDDIR)/isagbprn.o: CFLAGS := -mthumb-interwork
|
||||
|
||||
$(C_BUILDDIR)/trainer_tower.o: CFLAGS += -ffreestanding
|
||||
$(C_BUILDDIR)/flying.o: CFLAGS += -ffreestanding
|
||||
$(C_BUILDDIR)/battle_anim_flying.o: CFLAGS += -ffreestanding
|
||||
|
||||
$(C_BUILDDIR)/librfu_intr.o: CC1 := tools/agbcc/bin/agbcc_arm$(EXE)
|
||||
$(C_BUILDDIR)/librfu_intr.o: CFLAGS := -O2 -mthumb-interwork -quiet
|
||||
|
||||
+51
-339
@@ -17,6 +17,36 @@ enum
|
||||
BG_ANIM_SCREEN_BASE_BLOCK
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
BATTLER_COORD_X,
|
||||
BATTLER_COORD_Y,
|
||||
BATTLER_COORD_X_2,
|
||||
BATTLER_COORD_Y_PIC_OFFSET,
|
||||
BATTLER_COORD_Y_PIC_OFFSET_DEFAULT,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
BATTLER_COORD_ATTR_HEIGHT,
|
||||
BATTLER_COORD_ATTR_WIDTH,
|
||||
BATTLER_COORD_ATTR_TOP,
|
||||
BATTLER_COORD_ATTR_BOTTOM,
|
||||
BATTLER_COORD_ATTR_LEFT,
|
||||
BATTLER_COORD_ATTR_RIGHT,
|
||||
BATTLER_COORD_ATTR_RAW_BOTTOM,
|
||||
};
|
||||
|
||||
// battle_anim_status_effects.s
|
||||
#define STAT_ANIM_PLUS1 15
|
||||
#define STAT_ANIM_PLUS2 39
|
||||
#define STAT_ANIM_MINUS1 22
|
||||
#define STAT_ANIM_MINUS2 46
|
||||
#define STAT_ANIM_MULTIPLE_PLUS1 55
|
||||
#define STAT_ANIM_MULTIPLE_PLUS2 56
|
||||
#define STAT_ANIM_MULTIPLE_MINUS1 57
|
||||
#define STAT_ANIM_MULTIPLE_MINUS2 58
|
||||
|
||||
struct BattleAnimBgData
|
||||
{
|
||||
u8 *bgTiles;
|
||||
@@ -62,7 +92,6 @@ extern s32 gAnimMoveDmg;
|
||||
extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT];
|
||||
extern u8 gAnimCustomPanning;
|
||||
|
||||
// battle_anim.c
|
||||
extern const struct OamData gOamData_AffineOff_ObjNormal_8x8;
|
||||
extern const struct OamData gOamData_AffineOff_ObjNormal_16x16;
|
||||
extern const struct OamData gOamData_AffineOff_ObjNormal_32x32;
|
||||
@@ -135,8 +164,27 @@ extern const struct OamData gOamData_AffineDouble_ObjBlend_8x16;
|
||||
extern const struct OamData gOamData_AffineDouble_ObjBlend_8x32;
|
||||
extern const struct OamData gOamData_AffineDouble_ObjBlend_16x32;
|
||||
extern const struct OamData gOamData_AffineDouble_ObjBlend_32x64;
|
||||
extern const struct MonCoords gCastformFrontSpriteCoords[];
|
||||
extern const struct CompressedSpriteSheet gBattleAnimPicTable[];
|
||||
extern const struct CompressedSpritePalette gBattleAnimPaletteTable[];
|
||||
extern const struct SpriteTemplate gFlashingHitSplatSpriteTemplate;
|
||||
extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate;
|
||||
extern const struct SpriteTemplate gWaterHitSplatSpriteTemplate;
|
||||
extern const struct SpriteTemplate gWishStarSpriteTemplate;
|
||||
extern const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate;
|
||||
extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate;
|
||||
extern const union AffineAnimCmd *const gAffineAnims_Bite[];
|
||||
extern const union AffineAnimCmd *const gAffineAnims_Droplet[];
|
||||
extern const union AffineAnimCmd *const gGrowingRingAffineAnimTable[];
|
||||
extern const union AnimCmd *const gAnims_SmallBubblePair[];
|
||||
extern const union AnimCmd *const gAnims_BasicFire[];
|
||||
extern const union AnimCmd *const gAnims_WaterMudOrb[];
|
||||
extern const union AnimCmd *const gAnims_WaterBubble[];
|
||||
extern const union AnimCmd *const gMusicNotesAnimTable[];
|
||||
extern const u8 *const gBattleAnims_StatusConditions[];
|
||||
extern const u8 *const gBattleAnims_Moves[];
|
||||
extern const u16 gMovesWithQuietBGM[];
|
||||
|
||||
void MoveBattlerSpriteToBG(u8 battlerId, u8);
|
||||
void ResetBattleAnimBg(u8);
|
||||
void ClearBattleAnimationVars(void);
|
||||
@@ -152,207 +200,19 @@ s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan);
|
||||
bool8 IsBattlerSpriteVisible(u8 battlerId);
|
||||
s16 KeepPanInRange(s16 a, s32 oldPan);
|
||||
void RelocateBattleBgPal(u16 paletteNum, u16 *dest, s32 offset, u8 largeScreen);
|
||||
|
||||
// battle_intro.c
|
||||
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value);
|
||||
s32 GetAnimBgAttribute(u8 bgId, u8 attributeId);
|
||||
void HandleIntroSlide(u8 terrain);
|
||||
void BattleIntroSlideEnd(u8 taskId);
|
||||
void CopyBattlerSpriteToBg(s32 bgId, u8 x, u8 y, u8 battlerPosition, u8 palno, u8 *tilesDest, u16 *tilemapDest, u16 tilesOffset);
|
||||
|
||||
// battle_anim_effects_1.c
|
||||
extern const union AnimCmd *const gMusicNotesAnimTable[];
|
||||
extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate;
|
||||
void AnimMovePowderParticle(struct Sprite *);
|
||||
void AnimPowerAbsorptionOrb(struct Sprite *);
|
||||
void AnimSolarBeamBigOrb(struct Sprite *);
|
||||
void AnimSolarBeamSmallOrb(struct Sprite *);
|
||||
void AnimAbsorptionOrb(struct Sprite *);
|
||||
void AnimHyperBeamOrb(struct Sprite *);
|
||||
void AnimSporeParticle(struct Sprite *);
|
||||
void AnimPetalDanceBigFlower(struct Sprite *);
|
||||
void AnimPetalDanceSmallFlower(struct Sprite *);
|
||||
void AnimRazorLeafParticle(struct Sprite *);
|
||||
void AnimLeechSeed(struct Sprite *);
|
||||
void AnimTranslateLinearSingleSineWave(struct Sprite *);
|
||||
void AnimMoveTwisterParticle(struct Sprite *);
|
||||
void AnimConstrictBinding(struct Sprite *);
|
||||
void AnimMimicOrb(struct Sprite *);
|
||||
void AnimIngrainRoot(struct Sprite *);
|
||||
void AnimFrenzyPlantRoot(struct Sprite *);
|
||||
void AnimIngrainOrb(struct Sprite *);
|
||||
void AnimPresent(struct Sprite *);
|
||||
void AnimKnockOffItem(struct Sprite *);
|
||||
void AnimPresentHealParticle(struct Sprite *);
|
||||
void AnimItemSteal(struct Sprite *);
|
||||
void AnimTrickBag(struct Sprite *);
|
||||
void AnimFlyingParticle(struct Sprite *);
|
||||
void AnimNeedleArmSpike(struct Sprite *);
|
||||
void AnimSlidingHit(struct Sprite *);
|
||||
void AnimWhipHit(struct Sprite *);
|
||||
void AnimFlickeringPunch(struct Sprite *);
|
||||
void AnimCuttingSlice(struct Sprite *);
|
||||
void AnimAirCutterSlice(struct Sprite *);
|
||||
void AnimCirclingMusicNote(struct Sprite *);
|
||||
void AnimProtect(struct Sprite *);
|
||||
void AnimMilkBottle(struct Sprite *);
|
||||
void AnimGrantingStars(struct Sprite *);
|
||||
void AnimSparkingStars(struct Sprite *);
|
||||
void AnimBubbleBurst(struct Sprite *);
|
||||
void AnimSleepLetterZ(struct Sprite *);
|
||||
void AnimLockOnTarget(struct Sprite *);
|
||||
void AnimLockOnMoveTarget(struct Sprite *);
|
||||
void AnimBowMon(struct Sprite *);
|
||||
void AnimTipMon(struct Sprite *);
|
||||
void AnimSlashSlice(struct Sprite *);
|
||||
void AnimFalseSwipeSlice(struct Sprite *);
|
||||
void AnimFalseSwipePositionedSlice(struct Sprite *);
|
||||
void AnimEndureEnergy(struct Sprite *);
|
||||
void AnimSharpenSphere(struct Sprite *);
|
||||
void AnimConversion(struct Sprite *);
|
||||
void AnimConversion2(struct Sprite *);
|
||||
void AnimMoon(struct Sprite *);
|
||||
void AnimMoonlightSparkle(struct Sprite *);
|
||||
void AnimHornHit(struct Sprite *);
|
||||
void AnimSuperFang(struct Sprite *);
|
||||
void AnimFlyingMusicNotes(struct Sprite *);
|
||||
void AnimBellyDrumHand(struct Sprite *);
|
||||
void AnimSlowFlyingMusicNotes(struct Sprite *);
|
||||
void AnimThoughtBubble(struct Sprite *);
|
||||
void AnimMetronomeFinger(struct Sprite *);
|
||||
void AnimFollowMeFinger(struct Sprite *);
|
||||
void AnimTauntFinger(struct Sprite *);
|
||||
void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite);
|
||||
void AnimTask_ShrinkTargetCopy(u8 taskId);
|
||||
|
||||
// battle_anim_effects_2.c
|
||||
extern const union AffineAnimCmd *const gGrowingRingAffineAnimTable[];
|
||||
void AnimCirclingFinger(struct Sprite *);
|
||||
void AnimBouncingMusicNote(struct Sprite *);
|
||||
void AnimVibrateBattlerBack(struct Sprite *);
|
||||
void AnimMovingClamp(struct Sprite *);
|
||||
void AnimKinesisZapEnergy(struct Sprite *);
|
||||
void AnimSwordsDanceBlade(struct Sprite *);
|
||||
void AnimSonicBoomProjectile(struct Sprite *);
|
||||
void AnimAirWaveProjectile(struct Sprite *);
|
||||
void AnimVoidLines(struct Sprite *);
|
||||
void AnimCoinThrow(struct Sprite *);
|
||||
void AnimFallingCoin(struct Sprite *);
|
||||
void AnimBulletSeed(struct Sprite *);
|
||||
void AnimRazorWindTornado(struct Sprite *);
|
||||
void AnimViceGripPincer(struct Sprite *);
|
||||
void AnimGuillotinePincer(struct Sprite *);
|
||||
void AnimBreathPuff(struct Sprite *);
|
||||
void AnimAngerMark(struct Sprite *);
|
||||
void AnimPencil(struct Sprite *);
|
||||
void AnimBlendThinRing(struct Sprite *);
|
||||
void AnimHyperVoiceRing(struct Sprite *);
|
||||
void AnimUproarRing(struct Sprite *);
|
||||
void AnimSoftBoiledEgg(struct Sprite *);
|
||||
void AnimSpeedDust(struct Sprite *);
|
||||
void AnimHealBellMusicNote(struct Sprite *);
|
||||
void AnimMagentaHeart(struct Sprite *);
|
||||
void AnimRedHeartProjectile(struct Sprite *);
|
||||
void AnimParticleBurst(struct Sprite *);
|
||||
void AnimRedHeartRising(struct Sprite *);
|
||||
void AnimOrbitFast(struct Sprite *);
|
||||
void AnimOrbitScatter(struct Sprite *);
|
||||
void AnimSpitUpOrb(struct Sprite *);
|
||||
void AnimEyeSparkle(struct Sprite *);
|
||||
void AnimAngel(struct Sprite *);
|
||||
void AnimPinkHeart(struct Sprite *);
|
||||
void AnimDevil(struct Sprite *);
|
||||
void AnimFurySwipes(struct Sprite *);
|
||||
void AnimMovementWaves(struct Sprite *);
|
||||
void AnimJaggedMusicNote(struct Sprite *);
|
||||
void AnimPerishSongMusicNote2(struct Sprite *);
|
||||
void AnimPerishSongMusicNote(struct Sprite *);
|
||||
void AnimGuardRing(struct Sprite *);
|
||||
|
||||
// battle_anim_effects_3.c
|
||||
extern const struct SpriteTemplate gWishStarSpriteTemplate;
|
||||
extern const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate;
|
||||
void AnimBlackSmoke(struct Sprite *);
|
||||
void AnimWhiteHalo(struct Sprite *);
|
||||
void AnimTealAlert(struct Sprite *);
|
||||
void AnimMeanLookEye(struct Sprite *);
|
||||
void AnimSpikes(struct Sprite *);
|
||||
void AnimLeer(struct Sprite *);
|
||||
void AnimLetterZ(struct Sprite *);
|
||||
void AnimFang(struct Sprite *);
|
||||
void AnimSpotlight(struct Sprite *);
|
||||
void AnimClappingHand(struct Sprite *);
|
||||
void AnimClappingHand2(struct Sprite *);
|
||||
void AnimRapidSpin(struct Sprite *);
|
||||
void AnimTriAttackTriangle(struct Sprite *);
|
||||
void AnimBatonPassPokeball(struct Sprite *);
|
||||
void AnimWishStar(struct Sprite *);
|
||||
void AnimMiniTwinklingStar(struct Sprite *);
|
||||
void AnimSwallowBlueOrb(struct Sprite *);
|
||||
void AnimGreenStar(struct Sprite *);
|
||||
void AnimWeakFrustrationAngerMark(struct Sprite *);
|
||||
void AnimSweetScentPetal(struct Sprite *);
|
||||
void AnimPainSplitProjectile(struct Sprite *);
|
||||
void AnimFlatterConfetti(struct Sprite *);
|
||||
void AnimFlatterSpotlight(struct Sprite *);
|
||||
void AnimReversalOrb(struct Sprite *);
|
||||
void AnimYawnCloud(struct Sprite *);
|
||||
void AnimSmokeBallEscapeCloud(struct Sprite *);
|
||||
void AnimFacadeSweatDrop(struct Sprite *);
|
||||
void AnimRoarNoiseLine(struct Sprite *);
|
||||
void AnimGlareEyeDot(struct Sprite *);
|
||||
void AnimAssistPawprint(struct Sprite *);
|
||||
void AnimSmellingSaltsHand(struct Sprite *);
|
||||
void AnimSmellingSaltExclamation(struct Sprite *);
|
||||
void AnimHelpingHandClap(struct Sprite *);
|
||||
void AnimForesightMagnifyingGlass(struct Sprite *);
|
||||
void AnimMeteorMashStar(struct Sprite *);
|
||||
void AnimBlockX(struct Sprite *);
|
||||
void AnimUnusedItemBagSteal(struct Sprite *);
|
||||
void AnimKnockOffStrike(struct Sprite *);
|
||||
void AnimRecycle(struct Sprite *);
|
||||
|
||||
// battle_anim_special.c
|
||||
void TryShinyAnimation(u8 battler, struct Pokemon *mon);
|
||||
u8 ItemIdToBallId(u16 itemId);
|
||||
u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId);
|
||||
u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId);
|
||||
void DoLoadHealthboxPalsForLevelUp(u8 *, u8 *, u8 battlerId);
|
||||
void DoFreeHealthboxPalsForLevelUp(u8 batterId);
|
||||
|
||||
enum
|
||||
{
|
||||
BATTLER_COORD_X,
|
||||
BATTLER_COORD_Y,
|
||||
BATTLER_COORD_X_2,
|
||||
BATTLER_COORD_Y_PIC_OFFSET,
|
||||
BATTLER_COORD_Y_PIC_OFFSET_DEFAULT,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
BATTLER_COORD_ATTR_HEIGHT,
|
||||
BATTLER_COORD_ATTR_WIDTH,
|
||||
BATTLER_COORD_ATTR_TOP,
|
||||
BATTLER_COORD_ATTR_BOTTOM,
|
||||
BATTLER_COORD_ATTR_LEFT,
|
||||
BATTLER_COORD_ATTR_RIGHT,
|
||||
BATTLER_COORD_ATTR_RAW_BOTTOM,
|
||||
};
|
||||
|
||||
// battle_anim_status_effects.s
|
||||
#define STAT_ANIM_PLUS1 15
|
||||
#define STAT_ANIM_PLUS2 39
|
||||
#define STAT_ANIM_MINUS1 22
|
||||
#define STAT_ANIM_MINUS2 46
|
||||
#define STAT_ANIM_MULTIPLE_PLUS1 55
|
||||
#define STAT_ANIM_MULTIPLE_PLUS2 56
|
||||
#define STAT_ANIM_MULTIPLE_MINUS1 57
|
||||
#define STAT_ANIM_MULTIPLE_MINUS2 58
|
||||
void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId);
|
||||
|
||||
// battle_anim_mons.c
|
||||
extern const struct MonCoords gCastformFrontSpriteCoords[];
|
||||
u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType);
|
||||
u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType);
|
||||
u8 GetBattlerSpriteDefault_Y(u8 battlerId);
|
||||
@@ -428,9 +288,6 @@ void AnimThrowProjectile(struct Sprite *sprite);
|
||||
void AnimTravelDiagonally(struct Sprite *sprite);
|
||||
s16 CloneBattlerSpriteWithBlend(u8 animBattler);
|
||||
void DestroySpriteWithActiveSheet(struct Sprite *sprite);
|
||||
void AnimTask_AlphaFadeIn(u8 taskId);
|
||||
void AnimTask_BlendMonInAndOut(u8 task);
|
||||
void AnimTask_BlendPalInAndOutByTag(u8 taskId);
|
||||
void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds);
|
||||
bool8 RunAffineAnimFromTaskData(struct Task *task);
|
||||
void SetBattlerSpriteYOffsetFromYScale(u8 spriteId);
|
||||
@@ -439,13 +296,9 @@ void StorePointerInVars(s16 *lo, s16 *hi, const void *ptr);
|
||||
void *LoadPointerFromVars(s16 lo, s16 hi);
|
||||
void BattleAnimHelper_SetSpriteSquashParams(struct Task *task, u8 spriteId, s16 xScale0, s16 yScale0, s16 xScale1, s16 yScale1, u16 duration);
|
||||
u8 BattleAnimHelper_RunSpriteSquash(struct Task *task);
|
||||
void AnimTask_GetFrustrationPowerLevel(u8 taskId);
|
||||
void InitPrioritiesForVisibleBattlers(void);
|
||||
u8 GetBattlerSpriteSubpriority(u8 battlerId);
|
||||
u8 GetBattlerSpriteBGPriority(u8 battlerId);
|
||||
|
||||
// Returns 2 if player left or opp right
|
||||
// Returns 1 if player right or opp left
|
||||
u8 GetBattlerSpriteBGPriorityRank(u8 battlerId);
|
||||
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templateId, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, u32 ignoreDeoxys);
|
||||
void DestroySpriteAndFreeResources_(struct Sprite *sprite);
|
||||
@@ -455,157 +308,16 @@ u8 CreateInvisibleSpriteCopy(s32 battlerId, u8 spriteId, s32 species);
|
||||
void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite);
|
||||
void AnimTranslateLinearAndFlicker(struct Sprite *sprite);
|
||||
void AnimSpinningSparkle(struct Sprite *sprite);
|
||||
void AnimTask_AttackerPunchWithTrace(u8 taskId);
|
||||
void AnimWeatherBallUp(struct Sprite *sprite);
|
||||
void AnimWeatherBallDown(struct Sprite *sprite);
|
||||
|
||||
// battle_anim_mon_movement.c
|
||||
void AnimTask_ShakeMon(u8 taskId);
|
||||
void AnimTask_ShakeMon2(u8 taskId);
|
||||
void AnimTask_ShakeMonInPlace(u8 taskId);
|
||||
void AnimTask_ShakeAndSinkMon(u8 taskId);
|
||||
void AnimTask_TranslateMonElliptical(u8 taskId);
|
||||
void AnimTask_TranslateMonEllipticalRespectSide(u8 taskId);
|
||||
void AnimTask_WindUpLunge(u8 taskId);
|
||||
void AnimTask_SlideOffScreen(u8 taskId);
|
||||
void AnimTask_SwayMon(u8 taskId);
|
||||
void AnimTask_ScaleMonAndRestore(u8 taskId);
|
||||
void AnimTask_RotateMonSpriteToSide(u8 taskId);
|
||||
void AnimTask_RotateMonToSideAndRestore(u8 taskId);
|
||||
void AnimTask_ShakeTargetBasedOnMovePowerOrDmg(u8 taskId);
|
||||
|
||||
// normal.c
|
||||
extern const struct SpriteTemplate gFlashingHitSplatSpriteTemplate;
|
||||
extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate;
|
||||
extern const struct SpriteTemplate gWaterHitSplatSpriteTemplate;
|
||||
void AnimParticleBurst(struct Sprite *);
|
||||
void AnimMoveTwisterParticle(struct Sprite *);
|
||||
u32 UnpackSelectedBattlePalettes(s16 selector);
|
||||
void AnimTask_CurseBlendEffect(u8 taskId);
|
||||
void AnimTask_BlendColorCycleExclude(u8 taskId);
|
||||
void AnimTask_BlendColorCycleByTag(u8 taskId);
|
||||
void AnimTask_FlashAnimTagWithColor(u8 taskId);
|
||||
void AnimTask_InvertScreenColor(u8 taskId);
|
||||
void AnimTask_ShakeBattleTerrain(u8 taskId);
|
||||
|
||||
// ground.c
|
||||
void AnimTask_DigDownMovement(u8 taskId);
|
||||
void AnimTask_DigUpMovement(u8 taskId);
|
||||
void AnimTask_HorizontalShake(u8 taskId);
|
||||
void AnimTask_IsPowerOver99(u8 taskId);
|
||||
void AnimTask_PositionFissureBgOnBattler(u8 taskId);
|
||||
|
||||
// dragon.c
|
||||
void AnimTask_DragonDanceWaver(u8 taskId);
|
||||
|
||||
// ghost.c
|
||||
void AnimTask_NightShadeClone(u8 taskId);
|
||||
void AnimTask_NightmareClone(u8 taskId);
|
||||
void AnimTask_SpiteTargetShadow(u8 taskId);
|
||||
void AnimTask_DestinyBondWhiteShadow(u8 taskId);
|
||||
void AnimTask_CurseStretchingBlackBg(u8 taskId);
|
||||
void AnimTask_GrudgeFlames(u8 taskId);
|
||||
void sub_80B6BBC(u8 taskId);
|
||||
|
||||
// rock.c
|
||||
void AnimTask_LoadSandstormBackground(u8 taskId);
|
||||
void AnimTask_Rollout(u8 taskId);
|
||||
void AnimTask_GetSeismicTossDamageLevel(u8 taskId);
|
||||
void AnimTask_MoveSeismicTossBg(u8 taskId);
|
||||
void AnimTask_SeismicTossBgAccelerateDownAtEnd(u8 taskId);
|
||||
|
||||
// psychic.c
|
||||
void AnimTask_MeditateStretchAttacker(u8 taskId);
|
||||
void AnimTask_Teleport(u8 taskId);
|
||||
void AnimTask_ImprisonOrbs(u8 taskId);
|
||||
void AnimTask_SkillSwap(u8 taskId);
|
||||
void AnimTask_ExtrasensoryDistortion(u8 taskId);
|
||||
void AnimTask_TransparentCloneGrowAndShrink(u8 taskId);
|
||||
|
||||
// dark.c
|
||||
extern const union AffineAnimCmd *const gAffineAnims_Bite[];
|
||||
void AnimTask_AttackerFadeToInvisible(u8 taskId);
|
||||
void AnimTask_AttackerFadeFromInvisible(u8 taskId);
|
||||
void AnimTask_InitAttackerFadeFromInvisible(u8 taskId);
|
||||
void AnimTask_MoveAttackerMementoShadow(u8 taskId);
|
||||
void AnimTask_MoveTargetMementoShadow(u8 taskId);
|
||||
void AnimTask_InitMementoShadow(u8 taskId);
|
||||
void AnimTask_MementoHandleBg(u8 taskId);
|
||||
void AnimTask_MetallicShine(u8 taskId);
|
||||
void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId);
|
||||
void GetIsDoomDesireHitTurn(u8 taskId);
|
||||
|
||||
// flying.c
|
||||
void AnimTask_AnimateGustTornadoPalette(u8 taskId);
|
||||
void DestroyAnimSpriteAfterTimer(struct Sprite *sprite);
|
||||
void AnimTask_DrillPeckHitSplats(u8 taskId);
|
||||
|
||||
// poison.c
|
||||
extern const union AffineAnimCmd *const gAffineAnims_Droplet[];
|
||||
|
||||
// fighting.c
|
||||
void AnimTask_MoveSkyUppercutBg(u8 taskId);
|
||||
|
||||
// ice.c
|
||||
extern const union AnimCmd *const gAnims_SmallBubblePair[];
|
||||
void AnimTask_HazeScrollingFog(u8 taskId);
|
||||
void AnimTask_MistBallFog(u8 taskId);
|
||||
void AnimTask_Hail(u8 taskId);
|
||||
void AnimTask_GetRolloutCounter(u8 taskId);
|
||||
|
||||
// electric.c
|
||||
void AnimTask_ElectricBolt(u8 taskId);
|
||||
void AnimTask_ElectricChargingParticles(u8 taskId);
|
||||
void AnimTask_VoltTackleAttackerReappear(u8 taskId);
|
||||
void AnimTask_VoltTackleBolt(u8 taskId);
|
||||
void AnimTask_ShockWaveProgressingBolt(u8 taskId);
|
||||
void AnimTask_ShockWaveLightning(u8 taskId);
|
||||
|
||||
// fire.c
|
||||
extern const union AnimCmd *const gAnims_BasicFire[];
|
||||
void AnimTask_EruptionLaunchRocks(u8 taskId);
|
||||
void AnimTask_ShakeTargetInPattern(u8 taskId);
|
||||
void AnimTask_BlendBackground(u8 taskId);
|
||||
void AnimTask_MoveHeatWaveTargets(u8 taskId);
|
||||
|
||||
// water.c
|
||||
extern const union AnimCmd *const gAnims_WaterMudOrb[];
|
||||
extern const union AnimCmd *const gAnims_WaterBubble[];
|
||||
void AnimWaterPulseRing(struct Sprite *sprite);
|
||||
|
||||
// smokescreen.c
|
||||
u8 SmokescreenImpact(s16 x, s16 y, u8 a3);
|
||||
|
||||
// battle_anim_utility_funcs.c
|
||||
void AnimTask_BlendSelected(u8 taskId);
|
||||
void AnimTask_BlendExcept(u8 taskId);
|
||||
void AnimTask_SetCamouflageBlend(u8 taskId);
|
||||
void AnimTask_BlendParticle(u8 taskId);
|
||||
void AnimTask_HardwarePaletteFade(u8 taskId);
|
||||
void AnimTask_CloneBattlerSpriteWithBlend(u8 taskId);
|
||||
void AnimTask_SetUpCurseBackground(u8 taskId);
|
||||
void InitStatsChangeAnimation(u8 taskId);
|
||||
void AnimTask_BlendNonAttackerPalettes(u8 taskId);
|
||||
void AnimTask_StartSlidingBg(u8 taskId);
|
||||
void AnimTask_GetAttackerSide(u8 taskId);
|
||||
void AnimTask_GetTargetSide(u8 taskId);
|
||||
void AnimTask_GetTargetIsAttackerPartner(u8 taskId);
|
||||
void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId);
|
||||
void StartMonScrollingBgMask(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *gfx, const u32 *tilemap, const u32 *palette);
|
||||
void AnimTask_GetBattleTerrain(u8 taskId);
|
||||
void AnimTask_AllocBackupPalBuffer(u8 taskId);
|
||||
void AnimTask_FreeBackupPalBuffer(u8 taskId);
|
||||
void AnimTask_CopyPalUnfadedToBackup(u8 taskId);
|
||||
void AnimTask_CopyPalUnfadedFromBackup(u8 taskId);
|
||||
void AnimTask_CopyPalFadedToUnfaded(u8 taskId);
|
||||
void AnimTask_IsContest(u8 taskId);
|
||||
void AnimTask_SetAnimAttackerAndTargetForEffectTgt(u8 taskId);
|
||||
void AnimTask_IsTargetSameSide(u8 taskId);
|
||||
void AnimTask_SetAnimTargetToBattlerTarget(u8 taskId);
|
||||
void AnimTask_SetAnimAttackerAndTargetForEffectAtk(u8 taskId);
|
||||
void AnimTask_SetAttackerInvisibleWaitForSignal(u8 taskId);
|
||||
|
||||
// battle_anim_scripts.s
|
||||
extern const u8 *const gBattleAnims_StatusConditions[];
|
||||
extern const u16 gMovesWithQuietBGM[];
|
||||
extern const u8 *const gBattleAnims_Moves[];
|
||||
|
||||
#endif // GUARD_BATTLE_ANIM_H
|
||||
|
||||
+2
-2
@@ -168,7 +168,7 @@ SECTIONS {
|
||||
src/battle_anim_ice.o(.text);
|
||||
src/battle_anim_fight.o(.text);
|
||||
src/battle_anim_poison.o(.text);
|
||||
src/flying.o(.text);
|
||||
src/battle_anim_flying.o(.text);
|
||||
src/battle_anim_psychic.o(.text);
|
||||
src/battle_anim_bug.o(.text);
|
||||
src/battle_anim_rock.o(.text);
|
||||
@@ -480,7 +480,7 @@ SECTIONS {
|
||||
src/battle_anim_ice.o(.rodata);
|
||||
src/battle_anim_fight.o(.rodata);
|
||||
src/battle_anim_poison.o(.rodata);
|
||||
src/flying.o(.rodata);
|
||||
src/battle_anim_flying.o(.rodata);
|
||||
src/battle_anim_psychic.o(.rodata);
|
||||
src/battle_anim_bug.o(.rodata);
|
||||
src/battle_anim_rock.o(.rodata);
|
||||
|
||||
+121
-63
@@ -14,25 +14,47 @@ struct {
|
||||
s16 targetY;
|
||||
} static EWRAM_DATA sFrenzyPlantRootData = {0}; // Debug? Written to but never read.
|
||||
|
||||
static void AnimMovePowderParticle(struct Sprite *);
|
||||
static void AnimMovePowderParticle_Step(struct Sprite *);
|
||||
static void AnimSolarBeamSmallOrb(struct Sprite *);
|
||||
static void AnimSolarBeamSmallOrb_Step(struct Sprite *);
|
||||
static void AnimSolarBeamBigOrb(struct Sprite *);
|
||||
static void AnimPowerAbsorptionOrb(struct Sprite *);
|
||||
static void AnimAbsorptionOrb(struct Sprite *);
|
||||
static void AnimAbsorptionOrb_Step(struct Sprite *);
|
||||
static void AnimHyperBeamOrb(struct Sprite *);
|
||||
static void AnimHyperBeamOrb_Step(struct Sprite *);
|
||||
static void AnimMimicOrb(struct Sprite *);
|
||||
static void AnimLeechSeed(struct Sprite *);
|
||||
static void AnimLeechSeed_Step(struct Sprite *);
|
||||
static void AnimLeechSeedSprouts(struct Sprite *);
|
||||
static void AnimSporeParticle(struct Sprite *);
|
||||
static void AnimSporeParticle_Step(struct Sprite *);
|
||||
static void AnimPetalDanceBigFlower(struct Sprite *);
|
||||
static void AnimPetalDanceBigFlower_Step(struct Sprite *);
|
||||
static void AnimPetalDanceSmallFlower(struct Sprite *);
|
||||
static void AnimPetalDanceSmallFlower_Step(struct Sprite *);
|
||||
static void AnimRazorLeafParticle(struct Sprite *);
|
||||
static void AnimRazorLeafParticle_Step1(struct Sprite *);
|
||||
static void AnimRazorLeafParticle_Step2(struct Sprite *);
|
||||
static void AnimIngrainRoot(struct Sprite *);
|
||||
static void AnimFrenzyPlantRoot(struct Sprite *);
|
||||
static void AnimIngrainOrb(struct Sprite *);
|
||||
static void AnimTranslateLinearSingleSineWave(struct Sprite *);
|
||||
static void AnimTranslateLinearSingleSineWave_Step(struct Sprite *);
|
||||
static void AnimMoveTwisterParticle_Step(struct Sprite *);
|
||||
static void AnimConstrictBinding(struct Sprite *);
|
||||
static void AnimConstrictBinding_Step1(struct Sprite *);
|
||||
static void AnimConstrictBinding_Step2(struct Sprite *);
|
||||
static void AnimTask_DuplicateAndShrinkToPos_Step1(u8);
|
||||
static void AnimTask_DuplicateAndShrinkToPos_Step2(u8);
|
||||
static void AnimKnockOffItem(struct Sprite *);
|
||||
static void AnimPresent(struct Sprite *);
|
||||
static void AnimPresentHealParticle(struct Sprite *);
|
||||
static void AnimItemSteal(struct Sprite *);
|
||||
static void AnimItemSteal_Step3(struct Sprite *);
|
||||
static void AnimRootFlickerOut(struct Sprite *);
|
||||
static void AnimTrickBag(struct Sprite *);
|
||||
static void AnimTrickBag_Step1(struct Sprite *);
|
||||
static void AnimTrickBag_Step2(struct Sprite *);
|
||||
static void AnimTrickBag_Step3(struct Sprite *);
|
||||
@@ -40,52 +62,88 @@ static void AnimTask_LeafBlade_Step(u8);
|
||||
static s16 LeafBladeGetPosFactor(struct Sprite *);
|
||||
static void AnimTask_LeafBlade_Step2(struct Task *, u8);
|
||||
static void AnimTask_LeafBlade_Step2_Callback(struct Sprite *);
|
||||
static void AnimFlyingParticle(struct Sprite *);
|
||||
static void AnimFlyingParticle_Step(struct Sprite *);
|
||||
static void AnimNeedleArmSpike(struct Sprite *);
|
||||
static void AnimNeedleArmSpike_Step(struct Sprite *);
|
||||
static void AnimSlice_Step(struct Sprite *);
|
||||
static void AnimCirclingMusicNote(struct Sprite *);
|
||||
static void AnimCirclingMusicNote_Step(struct Sprite *);
|
||||
static void AnimProtect(struct Sprite *);
|
||||
static void AnimProtect_Step(struct Sprite *);
|
||||
static void AnimMilkBottle(struct Sprite *);
|
||||
static void AnimMilkBottle_Step1(struct Sprite *);
|
||||
static void AnimMilkBottle_Step2(struct Sprite *, int, int);
|
||||
static void AnimBubbleBurst(struct Sprite *);
|
||||
static void AnimBubbleBurst_Step(struct Sprite *);
|
||||
static void AnimSleepLetterZ(struct Sprite *);
|
||||
static void AnimSleepLetterZ_Step(struct Sprite *);
|
||||
static void AnimLockOnTarget(struct Sprite *);
|
||||
static void AnimLockOnTarget_Step1(struct Sprite *);
|
||||
static void AnimLockOnTarget_Step2(struct Sprite *);
|
||||
static void AnimLockOnTarget_Step3(struct Sprite *);
|
||||
static void AnimLockOnTarget_Step4(struct Sprite *);
|
||||
static void AnimLockOnTarget_Step5(struct Sprite *);
|
||||
static void AnimLockOnTarget_Step6(struct Sprite *);
|
||||
static void AnimLockOnMoveTarget(struct Sprite *);
|
||||
static void AnimBowMon(struct Sprite *);
|
||||
static void AnimBowMon_Step1(struct Sprite *);
|
||||
static void AnimBowMon_Step1_Callback(struct Sprite *);
|
||||
static void AnimBowMon_Step2(struct Sprite *);
|
||||
static void AnimBowMon_Step3(struct Sprite *);
|
||||
static void AnimBowMon_Step4(struct Sprite *);
|
||||
static void AnimBowMon_Step3_Callback(struct Sprite *);
|
||||
static void AnimTipMon(struct Sprite *sprite);
|
||||
static void AnimTipMon_Step(struct Sprite *);
|
||||
static void AnimTask_SkullBashPositionSet(u8);
|
||||
static void AnimTask_SkullBashPositionReset(u8);
|
||||
static void AnimSlashSlice(struct Sprite *);
|
||||
static void AnimFalseSwipeSlice(struct Sprite *);
|
||||
static void AnimFalseSwipeSlice_Step1(struct Sprite *);
|
||||
static void AnimFalseSwipeSlice_Step2(struct Sprite *);
|
||||
static void AnimFalseSwipeSlice_Step3(struct Sprite *);
|
||||
static void AnimFalseSwipePositionedSlice(struct Sprite *);
|
||||
static void AnimEndureEnergy(struct Sprite *);
|
||||
static void AnimEndureEnergy_Step(struct Sprite *);
|
||||
static void AnimSharpenSphere(struct Sprite *);
|
||||
static void AnimSharpenSphere_Step(struct Sprite *);
|
||||
static void AnimConversion2Step(struct Sprite *);
|
||||
static void AnimConversion(struct Sprite *);
|
||||
static void AnimConversion2(struct Sprite *);
|
||||
static void AnimConversion2_Step(struct Sprite *);
|
||||
static void AnimMoon(struct Sprite *);
|
||||
static void AnimMoon_Step(struct Sprite *);
|
||||
static void AnimMoonlightSparkle(struct Sprite *);
|
||||
static void AnimMoonlightSparkle_Step(struct Sprite *);
|
||||
static void AnimHornHit(struct Sprite *);
|
||||
static void AnimHornHit_Step(struct Sprite *);
|
||||
static void AnimTask_DoubleTeam_Step(u8);
|
||||
static void AnimDoubleTeam(struct Sprite *);
|
||||
static void AnimWavyMusicNotes(struct Sprite* sprite);
|
||||
static void AnimWavyMusicNotes(struct Sprite *);
|
||||
static void AnimWavyMusicNotes_CalcVelocity(s16, s16, s16 *, s16 *, s8);
|
||||
static void AnimWavyMusicNotes_Step(struct Sprite *);
|
||||
static void AnimFlyingMusicNotes(struct Sprite *);
|
||||
static void AnimFlyingMusicNotes_Step(struct Sprite *);
|
||||
static void AnimSlowFlyingMusicNotes(struct Sprite *);
|
||||
static void AnimSlowFlyingMusicNotes_Step(struct Sprite *);
|
||||
static void AnimThoughtBubble(struct Sprite *);
|
||||
static void AnimThoughtBubble_Step(struct Sprite *);
|
||||
static void AnimMetronomeFinger(struct Sprite *);
|
||||
static void AnimMetronomeFinger_Step(struct Sprite *);
|
||||
static void AnimFollowMeFinger(struct Sprite *);
|
||||
static void AnimFollowMeFinger_Step1(struct Sprite *);
|
||||
static void AnimFollowMeFinger_Step2(struct Sprite *);
|
||||
static void AnimTauntFinger(struct Sprite *);
|
||||
static void AnimTauntFinger_Step1(struct Sprite *);
|
||||
static void AnimTauntFinger_Step2(struct Sprite *);
|
||||
static void AnimBellyDrumHand(struct Sprite *);
|
||||
static void AnimSuperFang(struct Sprite *);
|
||||
static void AnimGrantingStars(struct Sprite *);
|
||||
static void AnimSparklingStars(struct Sprite *);
|
||||
static void AnimCuttingSlice(struct Sprite *);
|
||||
static void AnimAirCutterSlice(struct Sprite *);
|
||||
static void AnimFlickeringPunch(struct Sprite *);
|
||||
static void AnimSlidingHit(struct Sprite *);
|
||||
static void AnimWhipHit(struct Sprite *);
|
||||
|
||||
static const u8 sUnused[] = {2, 4, 1, 3};
|
||||
|
||||
@@ -1385,7 +1443,7 @@ const struct SpriteTemplate gSparklingStarsSpriteTemplate =
|
||||
.anims = sGrantingStarsAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = AnimSparkingStars,
|
||||
.callback = AnimSparklingStars,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_BubbleBurst[] =
|
||||
@@ -2166,7 +2224,7 @@ const struct SpriteTemplate gTauntFingerSpriteTemplate =
|
||||
// arg 3: vertical movement speed (sub-pixel value)
|
||||
// arg 4: wave amplitude
|
||||
// arg 5: wave speed
|
||||
void AnimMovePowderParticle(struct Sprite* sprite)
|
||||
static void AnimMovePowderParticle(struct Sprite* sprite)
|
||||
{
|
||||
sprite->x += gBattleAnimArgs[0];
|
||||
sprite->y += gBattleAnimArgs[1];
|
||||
@@ -2206,7 +2264,7 @@ static void AnimMovePowderParticle_Step(struct Sprite* sprite)
|
||||
// arg 0: initial x pixel offset
|
||||
// arg 1: initial y pixel offset
|
||||
// arg 2: duration
|
||||
void AnimPowerAbsorptionOrb(struct Sprite* sprite)
|
||||
static void AnimPowerAbsorptionOrb(struct Sprite* sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
@@ -2221,7 +2279,7 @@ void AnimPowerAbsorptionOrb(struct Sprite* sprite)
|
||||
// arg 1: initial y pixel offset
|
||||
// arg 2: duration
|
||||
// arg 3: sprite anim number
|
||||
void AnimSolarBeamBigOrb(struct Sprite* sprite)
|
||||
static void AnimSolarBeamBigOrb(struct Sprite* sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
StartSpriteAnim(sprite, gBattleAnimArgs[3]);
|
||||
@@ -2238,7 +2296,7 @@ void AnimSolarBeamBigOrb(struct Sprite* sprite)
|
||||
// arg 1: initial y pixel offset
|
||||
// arg 2: duration
|
||||
// arg 3: initial wave offset
|
||||
void AnimSolarBeamSmallOrb(struct Sprite* sprite)
|
||||
static void AnimSolarBeamSmallOrb(struct Sprite* sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
@@ -2296,7 +2354,7 @@ void AnimTask_CreateSmallSolarBeamOrbs(u8 taskId)
|
||||
// arg 1: initial y pixel offset
|
||||
// arg 2: wave amplitude
|
||||
// arg 3: wave period (lower means faster wave)
|
||||
void AnimAbsorptionOrb(struct Sprite* sprite)
|
||||
static void AnimAbsorptionOrb(struct Sprite* sprite)
|
||||
{
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
@@ -2315,7 +2373,7 @@ static void AnimAbsorptionOrb_Step(struct Sprite* sprite)
|
||||
|
||||
// Moves an orb in a wave-like fashion towards the target mon. The wave's
|
||||
// properties and the sprite anim are randomly determined.
|
||||
void AnimHyperBeamOrb(struct Sprite* sprite)
|
||||
static void AnimHyperBeamOrb(struct Sprite* sprite)
|
||||
{
|
||||
u16 speed;
|
||||
u16 animNum = Random();
|
||||
@@ -2368,7 +2426,7 @@ static void AnimHyperBeamOrb_Step(struct Sprite* sprite)
|
||||
// arg 3: target y pixel offset
|
||||
// arg 4: duration
|
||||
// arg 5: wave amplitude
|
||||
void AnimLeechSeed(struct Sprite* sprite)
|
||||
static void AnimLeechSeed(struct Sprite* sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
@@ -2410,7 +2468,7 @@ static void AnimLeechSeedSprouts(struct Sprite* sprite)
|
||||
// arg 2: initial wave offset
|
||||
// arg 3: duration
|
||||
// arg 4: blend (0 = off, 1 = on)
|
||||
void AnimSporeParticle(struct Sprite* sprite)
|
||||
static void AnimSporeParticle(struct Sprite* sprite)
|
||||
{
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
StartSpriteAnim(sprite, gBattleAnimArgs[4]);
|
||||
@@ -2472,7 +2530,7 @@ void AnimTask_SporeDoubleBattle(u8 taskId)
|
||||
// arg 1: initial y pixel offset
|
||||
// arg 2: target y pixel offset
|
||||
// arg 3: duration
|
||||
void AnimPetalDanceBigFlower(struct Sprite* sprite)
|
||||
static void AnimPetalDanceBigFlower(struct Sprite* sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
@@ -2510,7 +2568,7 @@ static void AnimPetalDanceBigFlower_Step(struct Sprite* sprite)
|
||||
// arg 1: initial y pixel offset
|
||||
// arg 2: target y pixel offset
|
||||
// arg 3: duration
|
||||
void AnimPetalDanceSmallFlower(struct Sprite* sprite)
|
||||
static void AnimPetalDanceSmallFlower(struct Sprite* sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
@@ -2545,7 +2603,7 @@ static void AnimPetalDanceSmallFlower_Step(struct Sprite* sprite)
|
||||
// arg 0: upward x delta per frame
|
||||
// arg 1: upward y delta per frame
|
||||
// arg 2: upward duration
|
||||
void AnimRazorLeafParticle(struct Sprite* sprite)
|
||||
static void AnimRazorLeafParticle(struct Sprite* sprite)
|
||||
{
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
@@ -2608,7 +2666,7 @@ static void AnimRazorLeafParticle_Step2(struct Sprite* sprite)
|
||||
// arg 4: translation duration
|
||||
// arg 5: wave amplitude
|
||||
// arg 6: target between double battle opponents (boolean)
|
||||
void AnimTranslateLinearSingleSineWave(struct Sprite* sprite)
|
||||
static void AnimTranslateLinearSingleSineWave(struct Sprite* sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
@@ -2722,7 +2780,7 @@ static void AnimMoveTwisterParticle_Step(struct Sprite* sprite)
|
||||
// arg 1: initial y pixel offset
|
||||
// arg 2: affine anim num
|
||||
// arg 3: num squeezes
|
||||
void AnimConstrictBinding(struct Sprite* sprite)
|
||||
static void AnimConstrictBinding(struct Sprite* sprite)
|
||||
{
|
||||
InitSpritePosToAnimTarget(sprite, FALSE);
|
||||
sprite->affineAnimPaused = TRUE;
|
||||
@@ -2833,7 +2891,7 @@ static void AnimTask_DuplicateAndShrinkToPos_Step2(u8 taskId)
|
||||
// Moves an orb from the target mon to the attacking mon.
|
||||
// arg 0: initial x pixel offset
|
||||
// arg 1: initial y pixel offset
|
||||
void AnimMimicOrb(struct Sprite* sprite)
|
||||
static void AnimMimicOrb(struct Sprite* sprite)
|
||||
{
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
@@ -2867,7 +2925,7 @@ void AnimMimicOrb(struct Sprite* sprite)
|
||||
// arg 2: sprite subpriority offset
|
||||
// arg 3: sprite anim num
|
||||
// arg 4: duration
|
||||
void AnimIngrainRoot(struct Sprite* sprite)
|
||||
static void AnimIngrainRoot(struct Sprite* sprite)
|
||||
{
|
||||
if (!sprite->data[0])
|
||||
{
|
||||
@@ -2892,7 +2950,7 @@ void AnimIngrainRoot(struct Sprite* sprite)
|
||||
// arg 3: sprite subpriority offset
|
||||
// arg 4: sprite anum num
|
||||
// arg 5: duration
|
||||
void AnimFrenzyPlantRoot(struct Sprite *sprite)
|
||||
static void AnimFrenzyPlantRoot(struct Sprite *sprite)
|
||||
{
|
||||
s16 attackerX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||
s16 attackerY = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
@@ -2930,7 +2988,7 @@ static void AnimRootFlickerOut(struct Sprite* sprite)
|
||||
// arg 2: horizontal velocity
|
||||
// arg 3: wave amplitude
|
||||
// arg 4: duration
|
||||
void AnimIngrainOrb(struct Sprite* sprite)
|
||||
static void AnimIngrainOrb(struct Sprite* sprite)
|
||||
{
|
||||
if (!sprite->data[0])
|
||||
{
|
||||
@@ -3017,7 +3075,7 @@ static void AnimItemSteal_Step1(struct Sprite* sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimPresent(struct Sprite* sprite)
|
||||
static void AnimPresent(struct Sprite* sprite)
|
||||
{
|
||||
s16 targetX;
|
||||
s16 targetY;
|
||||
@@ -3065,7 +3123,7 @@ static void AnimKnockOffOpponentsItem(struct Sprite* sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimKnockOffItem(struct Sprite* sprite)
|
||||
static void AnimKnockOffItem(struct Sprite* sprite)
|
||||
{
|
||||
s16 targetY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y);
|
||||
|
||||
@@ -3097,7 +3155,7 @@ void AnimKnockOffItem(struct Sprite* sprite)
|
||||
// arg 1: initial y pixel offset
|
||||
// arg 2: vertical velocity
|
||||
// arg 3: unused
|
||||
void AnimPresentHealParticle(struct Sprite* sprite)
|
||||
static void AnimPresentHealParticle(struct Sprite* sprite)
|
||||
{
|
||||
if (!sprite->data[0])
|
||||
{
|
||||
@@ -3111,7 +3169,7 @@ void AnimPresentHealParticle(struct Sprite* sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimItemSteal(struct Sprite* sprite)
|
||||
static void AnimItemSteal(struct Sprite* sprite)
|
||||
{
|
||||
s16 attackerX;
|
||||
s16 attackerY;
|
||||
@@ -3166,7 +3224,7 @@ static void AnimItemSteal_Step3(struct Sprite* sprite)
|
||||
// Moves a bag in a circular motion.
|
||||
// arg 0: y position
|
||||
// arg 1: initial wave offset
|
||||
void AnimTrickBag(struct Sprite* sprite)
|
||||
static void AnimTrickBag(struct Sprite* sprite)
|
||||
{
|
||||
int a;
|
||||
int b;
|
||||
@@ -3536,7 +3594,7 @@ static void AnimTask_LeafBlade_Step2_Callback(struct Sprite* sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimFlyingParticle(struct Sprite* sprite)
|
||||
static void AnimFlyingParticle(struct Sprite* sprite)
|
||||
{
|
||||
u8 battler;
|
||||
|
||||
@@ -3638,7 +3696,7 @@ void AnimTask_CycleMagicalLeafPal(u8 taskId)
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void AnimNeedleArmSpike(struct Sprite* sprite)
|
||||
static void AnimNeedleArmSpike(struct Sprite* sprite)
|
||||
{
|
||||
u8 a;
|
||||
u8 b;
|
||||
@@ -3716,7 +3774,7 @@ static void AnimWhipHit_WaitEnd(struct Sprite* sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimSlidingHit(struct Sprite* sprite)
|
||||
static void AnimSlidingHit(struct Sprite* sprite)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
{
|
||||
@@ -3733,7 +3791,7 @@ void AnimSlidingHit(struct Sprite* sprite)
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
void AnimWhipHit(struct Sprite* sprite)
|
||||
static void AnimWhipHit(struct Sprite* sprite)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
StartSpriteAnim(sprite, 1);
|
||||
@@ -3743,7 +3801,7 @@ void AnimWhipHit(struct Sprite* sprite)
|
||||
sprite->y += gBattleAnimArgs[1];
|
||||
}
|
||||
|
||||
void AnimFlickeringPunch(struct Sprite* sprite)
|
||||
static void AnimFlickeringPunch(struct Sprite* sprite)
|
||||
{
|
||||
sprite->x += gBattleAnimArgs[0];
|
||||
sprite->y += gBattleAnimArgs[1];
|
||||
@@ -3761,7 +3819,7 @@ void AnimFlickeringPunch(struct Sprite* sprite)
|
||||
// arg 0: initial x pixel offset
|
||||
// arg 1: initial y pixel offset
|
||||
// arg 2: slice direction; 0 = right-to-left, 1 = left-to-right
|
||||
void AnimCuttingSlice(struct Sprite* sprite)
|
||||
static void AnimCuttingSlice(struct Sprite* sprite)
|
||||
{
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y);
|
||||
@@ -3787,7 +3845,7 @@ void AnimCuttingSlice(struct Sprite* sprite)
|
||||
sprite->data[1] = -sprite->data[1];
|
||||
}
|
||||
|
||||
void AnimAirCutterSlice(struct Sprite* sprite)
|
||||
static void AnimAirCutterSlice(struct Sprite* sprite)
|
||||
{
|
||||
u8 a;
|
||||
u8 b;
|
||||
@@ -3892,7 +3950,7 @@ static void UnusedFlickerAnim(struct Sprite* sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimCirclingMusicNote(struct Sprite* sprite)
|
||||
static void AnimCirclingMusicNote(struct Sprite* sprite)
|
||||
{
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
@@ -3925,7 +3983,7 @@ static void AnimCirclingMusicNote_Step(struct Sprite* sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimProtect(struct Sprite* sprite)
|
||||
static void AnimProtect(struct Sprite* sprite)
|
||||
{
|
||||
if (IsContest())
|
||||
gBattleAnimArgs[1] += 8;
|
||||
@@ -3988,7 +4046,7 @@ static void AnimProtect_Step(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimMilkBottle(struct Sprite* sprite)
|
||||
static void AnimMilkBottle(struct Sprite* sprite)
|
||||
{
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + 0xFFE8;
|
||||
@@ -4098,7 +4156,7 @@ static void AnimMilkBottle_Step2(struct Sprite* sprite, int unk1, int unk2)
|
||||
sprite->data[3] = 0;
|
||||
}
|
||||
|
||||
void AnimGrantingStars(struct Sprite* sprite)
|
||||
static void AnimGrantingStars(struct Sprite* sprite)
|
||||
{
|
||||
if (!gBattleAnimArgs[2])
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
@@ -4112,7 +4170,7 @@ void AnimGrantingStars(struct Sprite* sprite)
|
||||
sprite->callback = TranslateSpriteLinearFixedPoint;
|
||||
}
|
||||
|
||||
void AnimSparkingStars(struct Sprite* sprite)
|
||||
static void AnimSparklingStars(struct Sprite* sprite)
|
||||
{
|
||||
u8 battler;
|
||||
|
||||
@@ -4150,7 +4208,7 @@ void AnimSparkingStars(struct Sprite* sprite)
|
||||
sprite->callback = TranslateSpriteLinearFixedPoint;
|
||||
}
|
||||
|
||||
void AnimBubbleBurst(struct Sprite* sprite)
|
||||
static void AnimBubbleBurst(struct Sprite* sprite)
|
||||
{
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
@@ -4181,7 +4239,7 @@ static void AnimBubbleBurst_Step(struct Sprite* sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimSleepLetterZ(struct Sprite* sprite)
|
||||
static void AnimSleepLetterZ(struct Sprite* sprite)
|
||||
{
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
@@ -4211,7 +4269,7 @@ static void AnimSleepLetterZ_Step(struct Sprite* sprite)
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
|
||||
void AnimLockOnTarget(struct Sprite* sprite)
|
||||
static void AnimLockOnTarget(struct Sprite* sprite)
|
||||
{
|
||||
sprite->x -= 32;
|
||||
sprite->y -= 32;
|
||||
@@ -4358,7 +4416,7 @@ static void AnimLockOnTarget_Step6(struct Sprite* sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimLockOnMoveTarget(struct Sprite* sprite)
|
||||
static void AnimLockOnMoveTarget(struct Sprite* sprite)
|
||||
{
|
||||
sprite->oam.affineParam = gBattleAnimArgs[0];
|
||||
if ((s16)sprite->oam.affineParam == 1)
|
||||
@@ -4390,7 +4448,7 @@ void AnimLockOnMoveTarget(struct Sprite* sprite)
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
void AnimBowMon(struct Sprite* sprite)
|
||||
static void AnimBowMon(struct Sprite* sprite)
|
||||
{
|
||||
sprite->invisible = TRUE;
|
||||
sprite->data[0] = 0;
|
||||
@@ -4493,7 +4551,7 @@ static void AnimBowMon_Step4(struct Sprite* sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimTipMon(struct Sprite *sprite)
|
||||
static void AnimTipMon(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0] = 0;
|
||||
sprite->callback = AnimTipMon_Step;
|
||||
@@ -4684,7 +4742,7 @@ static void AnimTask_SkullBashPositionReset(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimSlashSlice(struct Sprite* sprite)
|
||||
static void AnimSlashSlice(struct Sprite* sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[0] == 0)
|
||||
{
|
||||
@@ -4703,7 +4761,7 @@ void AnimSlashSlice(struct Sprite* sprite)
|
||||
sprite->callback = RunStoredCallbackWhenAnimEnds;
|
||||
}
|
||||
|
||||
void AnimFalseSwipeSlice(struct Sprite* sprite)
|
||||
static void AnimFalseSwipeSlice(struct Sprite* sprite)
|
||||
{
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + 0xFFD0;
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
@@ -4711,7 +4769,7 @@ void AnimFalseSwipeSlice(struct Sprite* sprite)
|
||||
sprite->callback = RunStoredCallbackWhenAnimEnds;
|
||||
}
|
||||
|
||||
void AnimFalseSwipePositionedSlice(struct Sprite* sprite)
|
||||
static void AnimFalseSwipePositionedSlice(struct Sprite* sprite)
|
||||
{
|
||||
sprite->x = sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + 0xFFD0 + gBattleAnimArgs[0];
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
@@ -4751,7 +4809,7 @@ static void AnimFalseSwipeSlice_Step3(struct Sprite* sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimEndureEnergy(struct Sprite* sprite)
|
||||
static void AnimEndureEnergy(struct Sprite* sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[0] == 0)
|
||||
{
|
||||
@@ -4782,7 +4840,7 @@ static void AnimEndureEnergy_Step(struct Sprite* sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimSharpenSphere(struct Sprite* sprite)
|
||||
static void AnimSharpenSphere(struct Sprite* sprite)
|
||||
{
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) - 12;
|
||||
@@ -4819,7 +4877,7 @@ static void AnimSharpenSphere_Step(struct Sprite* sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimConversion(struct Sprite* sprite)
|
||||
static void AnimConversion(struct Sprite* sprite)
|
||||
{
|
||||
if (sprite->data[0] == 0)
|
||||
{
|
||||
@@ -4859,15 +4917,15 @@ void AnimTask_ConversionAlphaBlend(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimConversion2(struct Sprite* sprite)
|
||||
static void AnimConversion2(struct Sprite* sprite)
|
||||
{
|
||||
InitSpritePosToAnimTarget(sprite, FALSE);
|
||||
sprite->animPaused = TRUE;
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
sprite->callback = AnimConversion2Step;
|
||||
sprite->callback = AnimConversion2_Step;
|
||||
}
|
||||
|
||||
static void AnimConversion2Step(struct Sprite* sprite)
|
||||
static void AnimConversion2_Step(struct Sprite* sprite)
|
||||
{
|
||||
if (sprite->data[0])
|
||||
{
|
||||
@@ -4923,7 +4981,7 @@ static void AnimTask_ShowBattlersHealthbox(u8 taskId)
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void AnimMoon(struct Sprite* sprite)
|
||||
static void AnimMoon(struct Sprite* sprite)
|
||||
{
|
||||
if (IsContest())
|
||||
{
|
||||
@@ -4948,7 +5006,7 @@ static void AnimMoon_Step(struct Sprite* sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimMoonlightSparkle(struct Sprite* sprite)
|
||||
static void AnimMoonlightSparkle(struct Sprite* sprite)
|
||||
{
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[0];
|
||||
sprite->y = gBattleAnimArgs[1];
|
||||
@@ -5085,7 +5143,7 @@ void AnimTask_FadeScreenBlue_Step(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimHornHit(struct Sprite* sprite)
|
||||
static void AnimHornHit(struct Sprite* sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[2] < 2)
|
||||
gBattleAnimArgs[2] = 2;
|
||||
@@ -5222,7 +5280,7 @@ static void AnimDoubleTeam(struct Sprite* sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimSuperFang(struct Sprite* sprite)
|
||||
static void AnimSuperFang(struct Sprite* sprite)
|
||||
{
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
sprite->callback = RunStoredCallbackWhenAnimEnds;
|
||||
@@ -5353,7 +5411,7 @@ static void AnimWavyMusicNotes_Step(struct Sprite* sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimFlyingMusicNotes(struct Sprite* sprite)
|
||||
static void AnimFlyingMusicNotes(struct Sprite* sprite)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
|
||||
gBattleAnimArgs[1] *= -1;
|
||||
@@ -5389,7 +5447,7 @@ static void AnimFlyingMusicNotes_Step(struct Sprite* sprite)
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
|
||||
void AnimBellyDrumHand(struct Sprite* sprite)
|
||||
static void AnimBellyDrumHand(struct Sprite* sprite)
|
||||
{
|
||||
s16 a;
|
||||
|
||||
@@ -5410,7 +5468,7 @@ void AnimBellyDrumHand(struct Sprite* sprite)
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
void AnimSlowFlyingMusicNotes(struct Sprite* sprite)
|
||||
static void AnimSlowFlyingMusicNotes(struct Sprite* sprite)
|
||||
{
|
||||
s16 xDiff;
|
||||
u8 index;
|
||||
@@ -5463,7 +5521,7 @@ void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite)
|
||||
sprite->y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) - (s16)GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 4;
|
||||
}
|
||||
|
||||
void AnimThoughtBubble(struct Sprite* sprite)
|
||||
static void AnimThoughtBubble(struct Sprite* sprite)
|
||||
{
|
||||
u8 animNum;
|
||||
u8 battler;
|
||||
@@ -5492,7 +5550,7 @@ static void AnimThoughtBubble_Step(struct Sprite* sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimMetronomeFinger(struct Sprite* sprite)
|
||||
static void AnimMetronomeFinger(struct Sprite* sprite)
|
||||
{
|
||||
u8 battler;
|
||||
|
||||
@@ -5517,7 +5575,7 @@ static void AnimMetronomeFinger_Step(struct Sprite* sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimFollowMeFinger(struct Sprite* sprite)
|
||||
static void AnimFollowMeFinger(struct Sprite* sprite)
|
||||
{
|
||||
u8 battler;
|
||||
|
||||
@@ -5576,7 +5634,7 @@ static void AnimFollowMeFinger_Step2(struct Sprite* sprite)
|
||||
sprite->x2 = (x1 >> 3) + (x2 >> 1);
|
||||
}
|
||||
|
||||
void AnimTauntFinger(struct Sprite* sprite)
|
||||
static void AnimTauntFinger(struct Sprite* sprite)
|
||||
{
|
||||
u8 battler;
|
||||
|
||||
|
||||
+80
-40
@@ -11,16 +11,24 @@
|
||||
#include "util.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
static void AnimBouncingMusicNote(struct Sprite *);
|
||||
static void AnimBouncingMusicNote_Step(struct Sprite *);
|
||||
static void AnimMovingClamp(struct Sprite *);
|
||||
static void AnimMovingClamp_Step(struct Sprite *);
|
||||
static void AnimMovingClamp_End(struct Sprite *);
|
||||
static void AnimTask_Withdraw_Step(u8);
|
||||
static void AnimSwordsDanceBlade(struct Sprite *);
|
||||
static void AnimSwordsDanceBlade_Step(struct Sprite *);
|
||||
static void AnimVoidLines(struct Sprite *);
|
||||
static void AnimVoidLines_Step(struct Sprite *);
|
||||
static void AnimFallingCoin(struct Sprite *);
|
||||
static void AnimFallingCoin_Step(struct Sprite *);
|
||||
static void AnimBulletSeed(struct Sprite *);
|
||||
static void AnimBulletSeed_Step1(struct Sprite *);
|
||||
static void AnimBulletSeed_Step2(struct Sprite *);
|
||||
static void AnimViceGripPincer(struct Sprite *);
|
||||
static void AnimViceGripPincer_Step(struct Sprite *);
|
||||
static void AnimGuillotinePincer(struct Sprite *);
|
||||
static void AnimGuillotinePincer_Step1(struct Sprite *);
|
||||
static void AnimGuillotinePincer_Step2(struct Sprite *);
|
||||
static void AnimGuillotinePincer_Step3(struct Sprite *);
|
||||
@@ -33,7 +41,9 @@ static void AnimTask_GrowAndShrink_Step(u8);
|
||||
static void AnimTask_ThrashMoveMonHorizontal_Step(u8);
|
||||
static void AnimTask_ThrashMoveMonVertical_Step(u8);
|
||||
static void AnimTask_SketchDrawMon_Step(u8);
|
||||
static void AnimPencil(struct Sprite *);
|
||||
static void AnimPencil_Step(struct Sprite *);
|
||||
static void AnimSoftBoiledEgg(struct Sprite *);
|
||||
static void AnimSoftBoiledEgg_Step1(struct Sprite *);
|
||||
static void AnimSoftBoiledEgg_Step2(struct Sprite *);
|
||||
static void AnimSoftBoiledEgg_Step3(struct Sprite *);
|
||||
@@ -47,17 +57,47 @@ static void AnimTask_ExtremeSpeedMonReappear_Step(u8);
|
||||
static void AnimTask_SpeedDust_Step(u8);
|
||||
static void AnimTask_FakeOut_Step1(u8);
|
||||
static void AnimTask_FakeOut_Step2(u8);
|
||||
static void AnimRedHeartProjectile(struct Sprite *);
|
||||
static void AnimRedHeartProjectile_Step(struct Sprite *);
|
||||
static void AnimRedHeartRising(struct Sprite *);
|
||||
static void AnimRedHeartRising_Step(struct Sprite *);
|
||||
static void AnimTask_HeartsBackground_Step(u8);
|
||||
static void AnimTask_ScaryFace_Step(u8);
|
||||
static void AnimOrbitFast(struct Sprite *);
|
||||
static void AnimOrbitFast_Step(struct Sprite *);
|
||||
static void AnimOrbitScatter(struct Sprite *);
|
||||
static void AnimOrbitScatter_Step(struct Sprite *);
|
||||
static void AnimMovementWaves(struct Sprite *);
|
||||
static void AnimMovementWaves_Step(struct Sprite *);
|
||||
static void AnimTask_UproarDistortion_Step(u8);
|
||||
static void AnimJaggedMusicNote(struct Sprite *);
|
||||
static void AnimJaggedMusicNote_Step(struct Sprite *);
|
||||
static void AnimPerishSongMusicNote2(struct Sprite *);
|
||||
static void AnimPerishSongMusicNote(struct Sprite *);
|
||||
static void AnimPerishSongMusicNote_Step1(struct Sprite *);
|
||||
static void AnimPerishSongMusicNote_Step2(struct Sprite *);
|
||||
static void AnimCirclingFinger(struct Sprite *);
|
||||
static void AnimVibrateBattlerBack(struct Sprite *);
|
||||
static void AnimKinesisZapEnergy(struct Sprite *);
|
||||
static void AnimSonicBoomProjectile(struct Sprite *);
|
||||
static void AnimAirWaveProjectile(struct Sprite *);
|
||||
static void AnimCoinThrow(struct Sprite *);
|
||||
static void AnimRazorWindTornado(struct Sprite *);
|
||||
static void AnimBreathPuff(struct Sprite *);
|
||||
static void AnimAngerMark(struct Sprite *);
|
||||
static void AnimBlendThinRing(struct Sprite *);
|
||||
static void AnimHyperVoiceRing(struct Sprite *);
|
||||
static void AnimUproarRing(struct Sprite *);
|
||||
static void AnimSpeedDust(struct Sprite *);
|
||||
static void AnimHealBellMusicNote(struct Sprite *);
|
||||
static void AnimMagentaHeart(struct Sprite *);
|
||||
static void AnimSpitUpOrb(struct Sprite *);
|
||||
static void AnimEyeSparkle(struct Sprite *);
|
||||
static void AnimAngel(struct Sprite *);
|
||||
static void AnimPinkHeart(struct Sprite *);
|
||||
static void AnimDevil(struct Sprite *);
|
||||
static void AnimFurySwipes(struct Sprite *);
|
||||
static void AnimGuardRing(struct Sprite *);
|
||||
|
||||
// Unused
|
||||
static const struct SpriteTemplate sCirclingFingerSpriteTemplate =
|
||||
@@ -1216,7 +1256,7 @@ const struct SpriteTemplate gGuardRingSpriteTemplate =
|
||||
#define sMoveSteps data[3]
|
||||
#define sAmplitudeY data[4]
|
||||
|
||||
void AnimCirclingFinger(struct Sprite *sprite)
|
||||
static void AnimCirclingFinger(struct Sprite *sprite)
|
||||
{
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]);
|
||||
@@ -1235,7 +1275,7 @@ void AnimCirclingFinger(struct Sprite *sprite)
|
||||
#undef sMoveSteps
|
||||
#undef sAmplitudeY
|
||||
|
||||
void AnimBouncingMusicNote(struct Sprite *sprite)
|
||||
static void AnimBouncingMusicNote(struct Sprite *sprite)
|
||||
{
|
||||
u8 battler;
|
||||
|
||||
@@ -1286,7 +1326,7 @@ static void AnimVibrateBattlerBack_Step(struct Sprite *sprite)
|
||||
sprite->data[0]--;
|
||||
}
|
||||
|
||||
void AnimVibrateBattlerBack(struct Sprite *sprite)
|
||||
static void AnimVibrateBattlerBack(struct Sprite *sprite)
|
||||
{
|
||||
u8 spriteId;
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||
@@ -1305,7 +1345,7 @@ void AnimVibrateBattlerBack(struct Sprite *sprite)
|
||||
sprite->invisible = TRUE;
|
||||
}
|
||||
|
||||
void AnimMovingClamp(struct Sprite *sprite)
|
||||
static void AnimMovingClamp(struct Sprite *sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
@@ -1390,7 +1430,7 @@ static void AnimTask_Withdraw_Step(u8 taskId)
|
||||
// arg 0: x pixel offset
|
||||
// arg 1: y pixel offset
|
||||
// arg 2: vertical flip
|
||||
void AnimKinesisZapEnergy(struct Sprite *sprite)
|
||||
static void AnimKinesisZapEnergy(struct Sprite *sprite)
|
||||
{
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
@@ -1418,7 +1458,7 @@ void AnimKinesisZapEnergy(struct Sprite *sprite)
|
||||
// Animates a sword that rises into the air after a brief pause.
|
||||
// arg 0: x pixel offset
|
||||
// arg 1: y pixel offset
|
||||
void AnimSwordsDanceBlade(struct Sprite *sprite)
|
||||
static void AnimSwordsDanceBlade(struct Sprite *sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
@@ -1441,7 +1481,7 @@ static void AnimSwordsDanceBlade_Step(struct Sprite *sprite)
|
||||
// arg 2: target x pixel offset
|
||||
// arg 3: target y pixel offset
|
||||
// arg 4: duration
|
||||
void AnimSonicBoomProjectile(struct Sprite *sprite)
|
||||
static void AnimSonicBoomProjectile(struct Sprite *sprite)
|
||||
{
|
||||
s16 targetXPos;
|
||||
s16 targetYPos;
|
||||
@@ -1517,7 +1557,7 @@ static void AnimAirWaveProjectile_Step1(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimAirWaveProjectile(struct Sprite *sprite)
|
||||
static void AnimAirWaveProjectile(struct Sprite *sprite)
|
||||
{
|
||||
s16 a;
|
||||
s16 b;
|
||||
@@ -1701,7 +1741,7 @@ void AnimTask_AirCutterProjectile(u8 taskId)
|
||||
gTasks[taskId].func = AirCutterProjectile_Step1;
|
||||
}
|
||||
|
||||
void AnimVoidLines(struct Sprite *sprite)
|
||||
static void AnimVoidLines(struct Sprite *sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
sprite->data[0] = 0x100 + (IndexOfSpritePaletteTag(sVoidLinesSpriteTemplate.paletteTag) << 4);
|
||||
@@ -1728,7 +1768,7 @@ static void AnimVoidLines_Step(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimCoinThrow(struct Sprite *sprite)
|
||||
static void AnimCoinThrow(struct Sprite *sprite)
|
||||
{
|
||||
s16 r6;
|
||||
s16 r7;
|
||||
@@ -1751,7 +1791,7 @@ void AnimCoinThrow(struct Sprite *sprite)
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
void AnimFallingCoin(struct Sprite *sprite)
|
||||
static void AnimFallingCoin(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[2] = -16;
|
||||
sprite->y += 8;
|
||||
@@ -1776,7 +1816,7 @@ static void AnimFallingCoin_Step(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimBulletSeed(struct Sprite *sprite)
|
||||
static void AnimBulletSeed(struct Sprite *sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
sprite->data[0] = 20;
|
||||
@@ -1836,7 +1876,7 @@ static void AnimBulletSeed_Step2(struct Sprite *sprite)
|
||||
// arg 4: initial wave offset
|
||||
// arg 5: wave period (higher means faster wave)
|
||||
// arg 6: duration
|
||||
void AnimRazorWindTornado(struct Sprite *sprite)
|
||||
static void AnimRazorWindTornado(struct Sprite *sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
@@ -1854,7 +1894,7 @@ void AnimRazorWindTornado(struct Sprite *sprite)
|
||||
|
||||
// Animates a single pincer line that extends towards the center of the target mon.
|
||||
// arg 0: invert
|
||||
void AnimViceGripPincer(struct Sprite *sprite)
|
||||
static void AnimViceGripPincer(struct Sprite *sprite)
|
||||
{
|
||||
s16 startXOffset = 32;
|
||||
s16 startYOffset = -32;
|
||||
@@ -1887,7 +1927,7 @@ static void AnimViceGripPincer_Step(struct Sprite *sprite)
|
||||
|
||||
// Animates a single pincer line that extends towards the center of the target mon, and then back out.
|
||||
// arg 0: animation id
|
||||
void AnimGuillotinePincer(struct Sprite *sprite)
|
||||
static void AnimGuillotinePincer(struct Sprite *sprite)
|
||||
{
|
||||
s16 startXOffset = 32;
|
||||
s16 startYOffset = -32;
|
||||
@@ -2214,7 +2254,7 @@ static void AnimTask_GrowAndShrink_Step(u8 taskId)
|
||||
// Animates a little puff of the mon's breath.
|
||||
// Used by MOVE_SWAGGER and MOVE_BULK_UP
|
||||
// No args.
|
||||
void AnimBreathPuff(struct Sprite *sprite)
|
||||
static void AnimBreathPuff(struct Sprite *sprite)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
{
|
||||
@@ -2242,7 +2282,7 @@ void AnimBreathPuff(struct Sprite *sprite)
|
||||
// arg 0: target mon (0 = attacker, 1 = target)
|
||||
// arg 1: x pixel offset
|
||||
// arg 2: y pixel offset
|
||||
void AnimAngerMark(struct Sprite *sprite)
|
||||
static void AnimAngerMark(struct Sprite *sprite)
|
||||
{
|
||||
u8 battler;
|
||||
|
||||
@@ -2444,7 +2484,7 @@ static void AnimTask_SketchDrawMon_Step(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimPencil(struct Sprite *sprite)
|
||||
static void AnimPencil(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X) - 16;
|
||||
sprite->y = GetBattlerYCoordWithElevation(gBattleAnimTarget) + 16;
|
||||
@@ -2517,7 +2557,7 @@ static void AnimPencil_Step(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimBlendThinRing(struct Sprite *sprite)
|
||||
static void AnimBlendThinRing(struct Sprite *sprite)
|
||||
{
|
||||
u8 battler = 0;
|
||||
u16 sp0 = 0;
|
||||
@@ -2557,7 +2597,7 @@ static void AnimHyperVoiceRing_WaitEnd(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimHyperVoiceRing(struct Sprite *sprite)
|
||||
static void AnimHyperVoiceRing(struct Sprite *sprite)
|
||||
{
|
||||
u16 startX = 0;
|
||||
u16 startY = 0;
|
||||
@@ -2642,7 +2682,7 @@ void AnimHyperVoiceRing(struct Sprite *sprite)
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
void AnimUproarRing(struct Sprite *sprite)
|
||||
static void AnimUproarRing(struct Sprite *sprite)
|
||||
{
|
||||
u8 index = IndexOfSpritePaletteTag(ANIM_TAG_THIN_RING);
|
||||
|
||||
@@ -2656,7 +2696,7 @@ void AnimUproarRing(struct Sprite *sprite)
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
void AnimSoftBoiledEgg(struct Sprite *sprite)
|
||||
static void AnimSoftBoiledEgg(struct Sprite *sprite)
|
||||
{
|
||||
s16 r1;
|
||||
|
||||
@@ -2983,7 +3023,7 @@ static void AnimTask_SpeedDust_Step(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimSpeedDust(struct Sprite *sprite)
|
||||
static void AnimSpeedDust(struct Sprite *sprite)
|
||||
{
|
||||
sprite->invisible = gTasks[sprite->data[0]].data[5];
|
||||
if (sprite->animEnded)
|
||||
@@ -3028,7 +3068,7 @@ static void SetMusicNotePalette(struct Sprite *sprite, u8 a, u8 b)
|
||||
sprite->oam.paletteNum = IndexOfSpritePaletteTag(gMusicNotePaletteTagsTable[b >> 1]);
|
||||
}
|
||||
|
||||
void AnimHealBellMusicNote(struct Sprite *sprite)
|
||||
static void AnimHealBellMusicNote(struct Sprite *sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
@@ -3042,7 +3082,7 @@ void AnimHealBellMusicNote(struct Sprite *sprite)
|
||||
SetMusicNotePalette(sprite, gBattleAnimArgs[5], gBattleAnimArgs[6]);
|
||||
}
|
||||
|
||||
void AnimMagentaHeart(struct Sprite *sprite)
|
||||
static void AnimMagentaHeart(struct Sprite *sprite)
|
||||
{
|
||||
if (++sprite->data[0] == 1)
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
@@ -3150,7 +3190,7 @@ void AnimTask_StretchAttackerUp(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimRedHeartProjectile(struct Sprite *sprite)
|
||||
static void AnimRedHeartProjectile(struct Sprite *sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
sprite->data[0] = 95;
|
||||
@@ -3197,7 +3237,7 @@ void AnimParticleBurst(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimRedHeartRising(struct Sprite *sprite)
|
||||
static void AnimRedHeartRising(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x = gBattleAnimArgs[0];
|
||||
sprite->y = DISPLAY_HEIGHT;
|
||||
@@ -3398,7 +3438,7 @@ static void AnimTask_ScaryFace_Step(u8 taskId)
|
||||
// Used by MOVE_HIDDEN_POWER
|
||||
// arg 0: duration
|
||||
// arg 1: initial wave offset
|
||||
void AnimOrbitFast(struct Sprite *sprite)
|
||||
static void AnimOrbitFast(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
@@ -3449,7 +3489,7 @@ static void AnimOrbitFast_Step(struct Sprite *sprite)
|
||||
// Moves orbs away from the mon, based on where they are in their orbit.
|
||||
// Used in MOVE_HIDDEN_POWER.
|
||||
// arg 0: initial wave offset
|
||||
void AnimOrbitScatter(struct Sprite *sprite)
|
||||
static void AnimOrbitScatter(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
@@ -3475,7 +3515,7 @@ static void AnimSpitUpOrb_Step(struct Sprite *sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimSpitUpOrb(struct Sprite *sprite)
|
||||
static void AnimSpitUpOrb(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
@@ -3491,13 +3531,13 @@ static void AnimEyeSparkle_Step(struct Sprite *sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimEyeSparkle(struct Sprite *sprite)
|
||||
static void AnimEyeSparkle(struct Sprite *sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
sprite->callback = AnimEyeSparkle_Step;
|
||||
}
|
||||
|
||||
void AnimAngel(struct Sprite *sprite)
|
||||
static void AnimAngel(struct Sprite *sprite)
|
||||
{
|
||||
s16 var0;
|
||||
|
||||
@@ -3536,7 +3576,7 @@ static void AnimPinkHeart_Step(struct Sprite *sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimPinkHeart(struct Sprite *sprite)
|
||||
static void AnimPinkHeart(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] == 0)
|
||||
{
|
||||
@@ -3562,7 +3602,7 @@ void AnimPinkHeart(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimDevil(struct Sprite *sprite)
|
||||
static void AnimDevil(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[3] == 0)
|
||||
{
|
||||
@@ -3591,7 +3631,7 @@ void AnimDevil(struct Sprite *sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimFurySwipes(struct Sprite *sprite)
|
||||
static void AnimFurySwipes(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] == 0)
|
||||
{
|
||||
@@ -3606,7 +3646,7 @@ void AnimFurySwipes(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimMovementWaves(struct Sprite *sprite)
|
||||
static void AnimMovementWaves(struct Sprite *sprite)
|
||||
{
|
||||
if (!gBattleAnimArgs[2])
|
||||
{
|
||||
@@ -3662,7 +3702,7 @@ static void AnimTask_UproarDistortion_Step(u8 taskId)
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void AnimJaggedMusicNote(struct Sprite *sprite)
|
||||
static void AnimJaggedMusicNote(struct Sprite *sprite)
|
||||
{
|
||||
int var1;
|
||||
u8 battler = !gBattleAnimArgs[0] ? gBattleAnimAttacker : gBattleAnimTarget;
|
||||
@@ -3700,7 +3740,7 @@ static void AnimJaggedMusicNote_Step(struct Sprite *sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimPerishSongMusicNote2(struct Sprite *sprite)
|
||||
static void AnimPerishSongMusicNote2(struct Sprite *sprite)
|
||||
{
|
||||
if (!sprite->data[0])
|
||||
{
|
||||
@@ -3715,7 +3755,7 @@ void AnimPerishSongMusicNote2(struct Sprite *sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimPerishSongMusicNote(struct Sprite *sprite)
|
||||
static void AnimPerishSongMusicNote(struct Sprite *sprite)
|
||||
{
|
||||
int index;
|
||||
int var2;
|
||||
@@ -3791,7 +3831,7 @@ static void AnimPerishSongMusicNote_Step2(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimGuardRing(struct Sprite *sprite)
|
||||
static void AnimGuardRing(struct Sprite *sprite)
|
||||
{
|
||||
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
|
||||
{
|
||||
|
||||
+78
-39
@@ -15,60 +15,99 @@
|
||||
#include "constants/songs.h"
|
||||
#include "constants/weather.h"
|
||||
|
||||
static void AnimBlackSmoke(struct Sprite *);
|
||||
static void AnimBlackSmoke_Step(struct Sprite *);
|
||||
static void AnimWhiteHalo(struct Sprite *);
|
||||
static void AnimWhiteHalo_Step1(struct Sprite *);
|
||||
static void AnimWhiteHalo_Step2(struct Sprite *);
|
||||
static void AnimMeanLookEye(struct Sprite *);
|
||||
static void AnimMeanLookEye_Step1(struct Sprite *);
|
||||
static void AnimMeanLookEye_Step2(struct Sprite *);
|
||||
static void AnimMeanLookEye_Step3(struct Sprite *);
|
||||
static void AnimMeanLookEye_Step4(struct Sprite *);
|
||||
static void SetPsychicBackground_Step(u8);
|
||||
static void FadeScreenToWhite_Step(u8);
|
||||
static void AnimSpikes(struct Sprite *);
|
||||
static void AnimSpikes_Step1(struct Sprite *);
|
||||
static void AnimSpikes_Step2(struct Sprite *);
|
||||
static void AnimSpotlight(struct Sprite *);
|
||||
static void AnimSpotlight_Step1(struct Sprite *);
|
||||
static void AnimSpotlight_Step2(struct Sprite *);
|
||||
static void AnimClappingHand(struct Sprite *);
|
||||
static void AnimClappingHand_Step(struct Sprite *);
|
||||
static void AnimClappingHand2(struct Sprite *);
|
||||
static void AnimRapidSpin(struct Sprite *);
|
||||
static void AnimRapidSpin_Step(struct Sprite *);
|
||||
static void RapinSpinMonElevation_Step(u8);
|
||||
static void TormentAttacker_Step(u8);
|
||||
static void TormentAttacker_Callback(struct Sprite *);
|
||||
static void AnimWishStar(struct Sprite *);
|
||||
static void AnimWishStar_Step(struct Sprite *);
|
||||
static void AnimMiniTwinklingStar(struct Sprite *);
|
||||
static void AnimMiniTwinklingStar_Step(struct Sprite *);
|
||||
static void AnimGreenStar(struct Sprite *);
|
||||
static void AnimGreenStar_Step1(struct Sprite *);
|
||||
static void AnimGreenStar_Step2(struct Sprite *);
|
||||
static void AnimGreenStar_Callback(struct Sprite *);
|
||||
static void AnimTask_RockMonBackAndForth_Step(u8);
|
||||
static void AnimSweetScentPetal(struct Sprite *);
|
||||
static void AnimSweetScentPetal_Step(struct Sprite *);
|
||||
static void AnimTask_FlailMovement_Step(u8);
|
||||
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 AnimTask_RolePlaySilhouette_Step1(u8);
|
||||
static void AnimTask_RolePlaySilhouette_Step2(u8);
|
||||
static void AnimTask_AcidArmor_Step(u8);
|
||||
static void AnimTask_DeepInhale_Step(u8);
|
||||
static void AnimYawnCloud(struct Sprite *);
|
||||
static void AnimYawnCloud_Step(struct Sprite *);
|
||||
static void AnimTask_SquishAndSweatDroplets_Step(u8);
|
||||
static void CreateSweatDroplets(u8, bool8);
|
||||
static void AnimTask_FacadeColorBlend_Step(u8);
|
||||
static void AnimRoarNoiseLine(struct Sprite *);
|
||||
static void AnimRoarNoiseLine_Step(struct Sprite *);
|
||||
static void AnimTask_GlareEyeDots_Step(u8);
|
||||
static void GetGlareEyeDotCoords(s16, s16, s16, s16, u8, u8, s16 *, s16 *);
|
||||
static void AnimTask_BarrageBall_Step(u8);
|
||||
static void AnimSmellingSaltsHand(struct Sprite *);
|
||||
static void AnimSmellingSaltsHand_Step(struct Sprite *);
|
||||
static void AnimTask_SmellingSaltsSquish_Step(u8);
|
||||
static void AnimSmellingSaltExclamation(struct Sprite *);
|
||||
static void AnimSmellingSaltExclamation_Step(struct Sprite *);
|
||||
static void AnimHelpingHandClap(struct Sprite *);
|
||||
static void AnimHelpingHandClap_Step(struct Sprite *);
|
||||
static void AnimTask_HelpingHandAttackerMovement_Step(u8);
|
||||
static void AnimForesightMagnifyingGlass(struct Sprite *);
|
||||
static void AnimForesightMagnifyingGlass_Step(struct Sprite *);
|
||||
static void AnimTask_MonToSubstituteDoll(u8);
|
||||
static void AnimBlockX(struct Sprite *);
|
||||
static void AnimBlockX_Step(struct Sprite *);
|
||||
static void AnimTask_OdorSleuthMovementWaitFinish(u8);
|
||||
static void MoveOdorSleuthClone(struct Sprite *);
|
||||
static void AnimTask_TeeterDanceMovement_Step(u8);
|
||||
static void AnimRecycle(struct Sprite *);
|
||||
static void AnimRecycle_Step(struct Sprite *);
|
||||
static void AnimTask_SlackOffSquish_Step(u8);
|
||||
static void AnimTealAlert(struct Sprite *);
|
||||
static void AnimLeer(struct Sprite *);
|
||||
static void AnimLetterZ(struct Sprite *);
|
||||
static void AnimFang(struct Sprite *);
|
||||
static void AnimTriAttackTriangle(struct Sprite *);
|
||||
static void AnimBatonPassPokeball(struct Sprite *);
|
||||
static void AnimSwallowBlueOrb(struct Sprite *);
|
||||
static void AnimWeakFrustrationAngerMark(struct Sprite *);
|
||||
static void AnimPainSplitProjectile(struct Sprite *);
|
||||
static void AnimSmokeBallEscapeCloud(struct Sprite *);
|
||||
static void AnimFacadeSweatDrop(struct Sprite *);
|
||||
static void AnimGlareEyeDot(struct Sprite *);
|
||||
static void AnimAssistPawprint(struct Sprite *);
|
||||
static void AnimMeteorMashStar(struct Sprite *);
|
||||
static void AnimUnusedItemBagSteal(struct Sprite *);
|
||||
static void AnimKnockOffStrike(struct Sprite *);
|
||||
|
||||
static const union AnimCmd sScratchAnimCmds[] =
|
||||
{
|
||||
@@ -1129,7 +1168,7 @@ static const union AffineAnimCmd sSlackOffSquishAffineAnimCmds[] =
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
void AnimBlackSmoke(struct Sprite *sprite)
|
||||
static void AnimBlackSmoke(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x += gBattleAnimArgs[0];
|
||||
sprite->y += gBattleAnimArgs[1];
|
||||
@@ -1166,7 +1205,7 @@ void AnimTask_SmokescreenImpact(u8 taskId)
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void AnimWhiteHalo(struct Sprite *sprite)
|
||||
static void AnimWhiteHalo(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0] = 90;
|
||||
sprite->callback = WaitAnimForDuration;
|
||||
@@ -1193,7 +1232,7 @@ static void AnimWhiteHalo_Step2(struct Sprite *sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimTealAlert(struct Sprite *sprite)
|
||||
static void AnimTealAlert(struct Sprite *sprite)
|
||||
{
|
||||
u16 rotation;
|
||||
u8 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
|
||||
@@ -1213,7 +1252,7 @@ void AnimTealAlert(struct Sprite *sprite)
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
void AnimMeanLookEye(struct Sprite *sprite)
|
||||
static void AnimMeanLookEye(struct Sprite *sprite)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
|
||||
@@ -1371,7 +1410,7 @@ static void FadeScreenToWhite_Step(u8 taskId)
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
void AnimSpikes(struct Sprite *sprite)
|
||||
static void AnimSpikes(struct Sprite *sprite)
|
||||
{
|
||||
u16 x;
|
||||
u16 y;
|
||||
@@ -1409,7 +1448,7 @@ static void AnimSpikes_Step2(struct Sprite *sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimLeer(struct Sprite *sprite)
|
||||
static void AnimLeer(struct Sprite *sprite)
|
||||
{
|
||||
SetSpriteCoordsToAnimAttackerCoords(sprite);
|
||||
SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]);
|
||||
@@ -1418,7 +1457,7 @@ void AnimLeer(struct Sprite *sprite)
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
void AnimLetterZ(struct Sprite *sprite)
|
||||
static void AnimLetterZ(struct Sprite *sprite)
|
||||
{
|
||||
int var0;
|
||||
|
||||
@@ -1456,7 +1495,7 @@ void AnimLetterZ(struct Sprite *sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimFang(struct Sprite *sprite)
|
||||
static void AnimFang(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->animEnded)
|
||||
DestroyAnimSprite(sprite);
|
||||
@@ -1482,7 +1521,7 @@ void AnimTask_IsHealingMove(u8 taskId)
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void AnimSpotlight(struct Sprite *sprite)
|
||||
static void AnimSpotlight(struct Sprite *sprite)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ);
|
||||
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON);
|
||||
@@ -1545,7 +1584,7 @@ static void AnimSpotlight_Step2(struct Sprite *sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimClappingHand(struct Sprite *sprite)
|
||||
static void AnimClappingHand(struct Sprite *sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[3] == 0)
|
||||
{
|
||||
@@ -1604,7 +1643,7 @@ static void AnimClappingHand_Step(struct Sprite *sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimClappingHand2(struct Sprite *sprite)
|
||||
static void AnimClappingHand2(struct Sprite *sprite)
|
||||
{
|
||||
sprite->oam.objMode = ST_OAM_OBJ_WINDOW;
|
||||
sprite->data[3] = 255;
|
||||
@@ -1645,7 +1684,7 @@ void AnimTask_RemoveSpotlight(u8 taskId)
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void AnimRapidSpin(struct Sprite *sprite)
|
||||
static void AnimRapidSpin(struct Sprite *sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[0] == 0)
|
||||
{
|
||||
@@ -1946,7 +1985,7 @@ static void TormentAttacker_Callback(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimTriAttackTriangle(struct Sprite *sprite)
|
||||
static void AnimTriAttackTriangle(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] == 0)
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
@@ -1992,7 +2031,7 @@ void AnimTask_DefenseCurlDeformMon(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimBatonPassPokeball(struct Sprite *sprite)
|
||||
static void AnimBatonPassPokeball(struct Sprite *sprite)
|
||||
{
|
||||
u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
|
||||
|
||||
@@ -2035,7 +2074,7 @@ void AnimBatonPassPokeball(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimWishStar(struct Sprite *sprite)
|
||||
static void AnimWishStar(struct Sprite *sprite)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
sprite->x = -16;
|
||||
@@ -2073,7 +2112,7 @@ static void AnimWishStar_Step(struct Sprite *sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void AnimMiniTwinklingStar(struct Sprite *sprite)
|
||||
static void AnimMiniTwinklingStar(struct Sprite *sprite)
|
||||
{
|
||||
u8 rand;
|
||||
s8 y;
|
||||
@@ -2148,7 +2187,7 @@ void AnimTask_SpitUpDeformMon(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimSwallowBlueOrb(struct Sprite *sprite)
|
||||
static void AnimSwallowBlueOrb(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
@@ -2363,7 +2402,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimGreenStar(struct Sprite *sprite)
|
||||
static void AnimGreenStar(struct Sprite *sprite)
|
||||
{
|
||||
s16 xOffset;
|
||||
u8 spriteId1;
|
||||
@@ -2574,7 +2613,7 @@ void AnimTask_StrongFrustrationGrowAndShrink(u8 taskId)
|
||||
// Animates an anger mark near the mon's head.
|
||||
// arg 0: initial x pixel offset
|
||||
// arg 1: initial y pixel offset
|
||||
void AnimWeakFrustrationAngerMark(struct Sprite *sprite)
|
||||
static void AnimWeakFrustrationAngerMark(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] == 0)
|
||||
{
|
||||
@@ -2699,7 +2738,7 @@ static void AnimTask_RockMonBackAndForth_Step(u8 taskId)
|
||||
// arg 0: initial y pixel offset
|
||||
// arg 1: sprite anim num
|
||||
// arg 2: unused
|
||||
void AnimSweetScentPetal(struct Sprite *sprite)
|
||||
static void AnimSweetScentPetal(struct Sprite *sprite)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
{
|
||||
@@ -2835,7 +2874,7 @@ static void AnimTask_FlailMovement_Step(u8 taskId)
|
||||
// arg 0: initial x pixel offset
|
||||
// arg 1: initial y pixel offset
|
||||
// arg 2: which battler
|
||||
void AnimPainSplitProjectile(struct Sprite *sprite)
|
||||
static void AnimPainSplitProjectile(struct Sprite *sprite)
|
||||
{
|
||||
if (!sprite->data[0])
|
||||
{
|
||||
@@ -2931,7 +2970,7 @@ void AnimTask_PainSplitMovement(u8 taskId)
|
||||
|
||||
// Move a piece of confetti in a slightly-random speed across the screen.
|
||||
// arg 0: which battler the confetti starts from
|
||||
void AnimFlatterConfetti(struct Sprite *sprite)
|
||||
static void AnimFlatterConfetti(struct Sprite *sprite)
|
||||
{
|
||||
u8 tileOffset;
|
||||
int rand1;
|
||||
@@ -2988,7 +3027,7 @@ static void AnimFlatterConfetti_Step(struct Sprite *sprite)
|
||||
// arg 0: initial x pixel offset
|
||||
// arg 1: initial y pixel offset
|
||||
// arg 2: duration of fully-opened spotlight
|
||||
void AnimFlatterSpotlight(struct Sprite *sprite)
|
||||
static void AnimFlatterSpotlight(struct Sprite *sprite)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ);
|
||||
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON);
|
||||
@@ -3037,7 +3076,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
|
||||
void AnimReversalOrb(struct Sprite *sprite)
|
||||
static void AnimReversalOrb(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
@@ -3417,7 +3456,7 @@ static void UpdateYawnCloudPosition(struct Sprite *sprite)
|
||||
|
||||
// Drifts a cloud in a wavy path towards the target mon.
|
||||
// arg 0: which affine anim
|
||||
void AnimYawnCloud(struct Sprite *sprite)
|
||||
static void AnimYawnCloud(struct Sprite *sprite)
|
||||
{
|
||||
s16 destX = sprite->x;
|
||||
s16 destY = sprite->y;
|
||||
@@ -3455,7 +3494,7 @@ static void AnimYawnCloud_Step(struct Sprite *sprite)
|
||||
// arg 1: initial x pixel offset
|
||||
// arg 2: initial y pixel offset
|
||||
// arg 3: ?
|
||||
void AnimSmokeBallEscapeCloud(struct Sprite *sprite)
|
||||
static void AnimSmokeBallEscapeCloud(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[0]);
|
||||
@@ -3731,7 +3770,7 @@ static void CreateSweatDroplets(u8 taskId, bool8 lowerDroplets)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimFacadeSweatDrop(struct Sprite *sprite)
|
||||
static void AnimFacadeSweatDrop(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x += sprite->sVelocX;
|
||||
sprite->y += sprite->sVelocY;
|
||||
@@ -3797,7 +3836,7 @@ void AnimTask_StatusClearedEffect(u8 taskId)
|
||||
// arg 0: initial x pixel offset
|
||||
// arg 1: initial y pixel offset
|
||||
// arg 2: which direction (0 = upward, 1 = downward, 2 = horizontal)
|
||||
void AnimRoarNoiseLine(struct Sprite *sprite)
|
||||
static void AnimRoarNoiseLine(struct Sprite *sprite)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
|
||||
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
|
||||
@@ -3978,7 +4017,7 @@ static void GetGlareEyeDotCoords(s16 startX, s16 startY, s16 endX, s16 endY, u8
|
||||
*y = y2 >> 8;
|
||||
}
|
||||
|
||||
void AnimGlareEyeDot(struct Sprite *sprite)
|
||||
static void AnimGlareEyeDot(struct Sprite *sprite)
|
||||
{
|
||||
if (++sprite->sTimer > 36)
|
||||
{
|
||||
@@ -4009,7 +4048,7 @@ void AnimGlareEyeDot(struct Sprite *sprite)
|
||||
// arg 2: destination x position
|
||||
// arg 3: destination y position
|
||||
// arg 4: duration
|
||||
void AnimAssistPawprint(struct Sprite *sprite)
|
||||
static void AnimAssistPawprint(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x = gBattleAnimArgs[0];
|
||||
sprite->y = gBattleAnimArgs[1];
|
||||
@@ -4096,7 +4135,7 @@ static void AnimTask_BarrageBall_Step(u8 taskId)
|
||||
// arg 0: which battler
|
||||
// arg 1: horizontal flip
|
||||
// arg 2: num squishes
|
||||
void AnimSmellingSaltsHand(struct Sprite *sprite)
|
||||
static void AnimSmellingSaltsHand(struct Sprite *sprite)
|
||||
{
|
||||
u8 battler;
|
||||
|
||||
@@ -4219,7 +4258,7 @@ static void AnimTask_SmellingSaltsSquish_Step(u8 taskId)
|
||||
// arg 0: which mon
|
||||
// arg 1: blink delay
|
||||
// arg 2: number of blinks
|
||||
void AnimSmellingSaltExclamation(struct Sprite *sprite)
|
||||
static void AnimSmellingSaltExclamation(struct Sprite *sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
|
||||
{
|
||||
@@ -4257,7 +4296,7 @@ static void AnimSmellingSaltExclamation_Step(struct Sprite *sprite)
|
||||
// Claps a hand several times.
|
||||
// arg 0: which hand
|
||||
// arg 1:
|
||||
void AnimHelpingHandClap(struct Sprite *sprite)
|
||||
static void AnimHelpingHandClap(struct Sprite *sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[0] == 0)
|
||||
{
|
||||
@@ -4469,7 +4508,7 @@ static void AnimTask_HelpingHandAttackerMovement_Step(u8 taskId)
|
||||
|
||||
// Moves a magnifying glass around in straight lines.
|
||||
// arg 0: magnifying glass target mon
|
||||
void AnimForesightMagnifyingGlass(struct Sprite *sprite)
|
||||
static void AnimForesightMagnifyingGlass(struct Sprite *sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
|
||||
{
|
||||
@@ -4615,7 +4654,7 @@ static void AnimMeteorMashStar_Step(struct Sprite *sprite)
|
||||
// arg 2: destination x pixel offset
|
||||
// arg 3: destination y pixel offset
|
||||
// arg 4: duration
|
||||
void AnimMeteorMashStar(struct Sprite *sprite)
|
||||
static void AnimMeteorMashStar(struct Sprite *sprite)
|
||||
{
|
||||
s16 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
|
||||
s16 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
@@ -4729,7 +4768,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId)
|
||||
|
||||
// Moves down an X that flickers and disappears.
|
||||
// No args.
|
||||
void AnimBlockX(struct Sprite *sprite)
|
||||
static void AnimBlockX(struct Sprite *sprite)
|
||||
{
|
||||
s16 y;
|
||||
|
||||
@@ -5060,7 +5099,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void AnimUnusedItemBagSteal(struct Sprite *sprite)
|
||||
static void AnimUnusedItemBagSteal(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->data[7])
|
||||
{
|
||||
@@ -5241,7 +5280,7 @@ static void AnimKnockOffStrike_Step(struct Sprite *sprite)
|
||||
// Animates a strike that swipes downard at the target mon.
|
||||
// arg 0: initial x pixel offset
|
||||
// arg 1: initial y pixel offset
|
||||
void AnimKnockOffStrike(struct Sprite *sprite)
|
||||
static void AnimKnockOffStrike(struct Sprite *sprite)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
|
||||
{
|
||||
@@ -5264,7 +5303,7 @@ void AnimKnockOffStrike(struct Sprite *sprite)
|
||||
|
||||
// Gradually fades a rotating recyle arrow sprite in and back out.
|
||||
// No args.
|
||||
void AnimRecycle(struct Sprite *sprite)
|
||||
static void AnimRecycle(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||
sprite->y = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_TOP);
|
||||
|
||||
@@ -11,29 +11,29 @@ static void AnimAirWaveCrescent(struct Sprite *sprite);
|
||||
static void AnimFlyBallUp(struct Sprite *sprite);
|
||||
static void AnimFlyBallAttack(struct Sprite *sprite);
|
||||
static void AnimFallingFeather(struct Sprite *sprite);
|
||||
static void sub_80B24C0(struct Sprite *sprite);
|
||||
static void sub_80B2514(struct Sprite *sprite);
|
||||
static void AnimUnusedBubbleThrow(struct Sprite *sprite);
|
||||
static void AnimUnusedFeather(struct Sprite *sprite);
|
||||
static void AnimWhirlwindLine(struct Sprite *sprite);
|
||||
static void AnimBounceBallShrink(struct Sprite *sprite);
|
||||
static void AnimBounceBallLand(struct Sprite *sprite);
|
||||
static void AnimDiveBall(struct Sprite *sprite);
|
||||
static void AnimDiveWaterSplash(struct Sprite *sprite);
|
||||
static void AnimSprayWaterDroplet(struct Sprite *sprite);
|
||||
static void sub_80B2CE4(struct Sprite *sprite);
|
||||
static void AnimUnusedFlashingLight(struct Sprite *sprite);
|
||||
static void AnimSkyAttackBird(struct Sprite *sprite);
|
||||
static void sub_80B190C(struct Sprite *sprite);
|
||||
static void sub_80B198C(u8 taskId);
|
||||
static void sub_80B1A9C(struct Sprite *sprite);
|
||||
static void sub_80B1BF8(struct Sprite *sprite);
|
||||
static void sub_80B1CC0(struct Sprite *sprite);
|
||||
static void AnimEllipticalGust_Step(struct Sprite *sprite);
|
||||
static void AnimTask_AnimateGustTornadoPalette_Step(u8 taskId);
|
||||
static void AnimGustToTarget_Step(struct Sprite *sprite);
|
||||
static void AnimFlyBallUp_Step(struct Sprite *sprite);
|
||||
static void AnimFlyBallAttack_Step(struct Sprite *sprite);
|
||||
static void AnimFallingFeather_Step(struct Sprite *sprite);
|
||||
static void sub_80B268C(struct Sprite *sprite);
|
||||
static void sub_80B2820(struct Sprite *sprite);
|
||||
static void sub_80B2A50(struct Sprite *sprite);
|
||||
static void sub_80B2AB0(struct Sprite *sprite);
|
||||
static void sub_80B2C88(struct Sprite *sprite);
|
||||
static void sub_80B2CF8(struct Sprite *sprite);
|
||||
static void sub_80B2E20(struct Sprite *sprite);
|
||||
static void AnimUnusedFeather_Step(struct Sprite *sprite);
|
||||
static void AnimWhirlwindLine_Step(struct Sprite *sprite);
|
||||
static void AnimDiveBall_Step1(struct Sprite *sprite);
|
||||
static void AnimDiveBall_Step2(struct Sprite *sprite);
|
||||
static void AnimSprayWaterDroplet_Step(struct Sprite *sprite);
|
||||
static void AnimUnusedFlashingLight_Step(struct Sprite *sprite);
|
||||
static void AnimSkyAttackBird_Step(struct Sprite *sprite);
|
||||
|
||||
const struct SpriteTemplate gEllipticalGustSpriteTemplate =
|
||||
{
|
||||
@@ -177,10 +177,9 @@ const struct SpriteTemplate gFallingFeatherSpriteTemplate =
|
||||
.callback = AnimFallingFeather,
|
||||
};
|
||||
|
||||
// not used
|
||||
static const u16 gUnknown_83E6C18[] = INCBIN_U16("graphics/battle_anims/unk_83E6C18.gbapal");
|
||||
static const u16 sUnusedPal[] = INCBIN_U16("graphics/battle_anims/unk_83E6C18.gbapal");
|
||||
|
||||
const struct SpriteTemplate gUnknown_83E6C38 =
|
||||
static const struct SpriteTemplate sUnusedBubbleThrowSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_SMALL_BUBBLES,
|
||||
.paletteTag = ANIM_TAG_SMALL_BUBBLES,
|
||||
@@ -188,10 +187,10 @@ const struct SpriteTemplate gUnknown_83E6C38 =
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_80B24C0,
|
||||
.callback = AnimUnusedBubbleThrow,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gUnknown_83E6C50 =
|
||||
static const struct SpriteTemplate sUnusedFeatherSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_WHITE_FEATHER,
|
||||
.paletteTag = ANIM_TAG_WHITE_FEATHER,
|
||||
@@ -199,7 +198,7 @@ const struct SpriteTemplate gUnknown_83E6C50 =
|
||||
.anims = sAnims_FallingFeather,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_80B2514,
|
||||
.callback = AnimUnusedFeather,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_WhirlwindLines[] =
|
||||
@@ -301,8 +300,7 @@ const struct SpriteTemplate gDiveBallSpriteTemplate =
|
||||
.callback = AnimDiveBall,
|
||||
};
|
||||
|
||||
// not used
|
||||
static const union AffineAnimCmd gUnknown_83E6D58[] =
|
||||
static const union AffineAnimCmd sAnim_Unused[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0x100, 0x0, 0, 0),
|
||||
AFFINEANIMCMD_FRAME(0x0, 0x20, 0, 12),
|
||||
@@ -310,10 +308,9 @@ static const union AffineAnimCmd gUnknown_83E6D58[] =
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
// not used
|
||||
static const union AffineAnimCmd *const gUnknown_83E6D80[] =
|
||||
static const union AffineAnimCmd *const sAnims_Unused[] =
|
||||
{
|
||||
gUnknown_83E6D58,
|
||||
sAnim_Unused,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gDiveWaterSplashSpriteTemplate =
|
||||
@@ -338,7 +335,7 @@ const struct SpriteTemplate gSprayWaterDropletSpriteTemplate =
|
||||
.callback = AnimSprayWaterDroplet,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gUnknown_83E6DAC =
|
||||
static const struct SpriteTemplate sUnusedFlashingLightSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_CIRCLE_OF_LIGHT,
|
||||
.paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT,
|
||||
@@ -346,7 +343,7 @@ const struct SpriteTemplate gUnknown_83E6DAC =
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_80B2CE4,
|
||||
.callback = AnimUnusedFlashingLight,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSkyAttackBirdSpriteTemplate =
|
||||
@@ -365,11 +362,11 @@ static void AnimEllipticalGust(struct Sprite *sprite)
|
||||
InitSpritePosToAnimTarget(sprite, FALSE);
|
||||
sprite->y += 20;
|
||||
sprite->data[1] = 191;
|
||||
sprite->callback = sub_80B190C;
|
||||
sprite->callback = AnimEllipticalGust_Step;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
static void sub_80B190C(struct Sprite *sprite)
|
||||
static void AnimEllipticalGust_Step(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x2 = Sin(sprite->data[1], 32);
|
||||
sprite->y2 = Cos(sprite->data[1], 8);
|
||||
@@ -379,15 +376,16 @@ static void sub_80B190C(struct Sprite *sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
// Animates the palette on the gust tornado to make it look like its spinning
|
||||
void AnimTask_AnimateGustTornadoPalette(u8 taskId)
|
||||
{
|
||||
gTasks[taskId].data[0] = gBattleAnimArgs[1];
|
||||
gTasks[taskId].data[1] = gBattleAnimArgs[0];
|
||||
gTasks[taskId].data[2] = IndexOfSpritePaletteTag(ANIM_TAG_GUST);
|
||||
gTasks[taskId].func = sub_80B198C;
|
||||
gTasks[taskId].func = AnimTask_AnimateGustTornadoPalette_Step;
|
||||
}
|
||||
|
||||
static void sub_80B198C(u8 taskId)
|
||||
static void AnimTask_AnimateGustTornadoPalette_Step(u8 taskId)
|
||||
{
|
||||
u8 data2;
|
||||
u16 temp;
|
||||
@@ -423,10 +421,10 @@ static void AnimGustToTarget(struct Sprite *sprite)
|
||||
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3];
|
||||
InitAnimLinearTranslation(sprite);
|
||||
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
|
||||
StoreSpriteCallbackInData6(sprite, sub_80B1A9C);
|
||||
StoreSpriteCallbackInData6(sprite, AnimGustToTarget_Step);
|
||||
}
|
||||
|
||||
static void sub_80B1A9C(struct Sprite *sprite)
|
||||
static void AnimGustToTarget_Step(struct Sprite *sprite)
|
||||
{
|
||||
if (AnimTranslateLinear(sprite))
|
||||
DestroyAnimSprite(sprite);
|
||||
@@ -472,11 +470,11 @@ static void AnimFlyBallUp(struct Sprite *sprite)
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
sprite->data[1] = gBattleAnimArgs[3];
|
||||
sprite->callback = sub_80B1BF8;
|
||||
sprite->callback = AnimFlyBallUp_Step;
|
||||
gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = TRUE;
|
||||
}
|
||||
|
||||
static void sub_80B1BF8(struct Sprite *sprite)
|
||||
static void AnimFlyBallUp_Step(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] > 0)
|
||||
{
|
||||
@@ -495,7 +493,7 @@ static void AnimFlyBallAttack(struct Sprite *sprite)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
{
|
||||
sprite->x = 272;
|
||||
sprite->x = DISPLAY_WIDTH + 32;
|
||||
sprite->y = -32;
|
||||
StartSpriteAffineAnim(sprite, 1);
|
||||
}
|
||||
@@ -510,10 +508,10 @@ static void AnimFlyBallAttack(struct Sprite *sprite)
|
||||
sprite->data[3] = sprite->y;
|
||||
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
InitAnimLinearTranslation(sprite);
|
||||
sprite->callback = sub_80B1CC0;
|
||||
sprite->callback = AnimFlyBallAttack_Step;
|
||||
}
|
||||
|
||||
static void sub_80B1CC0(struct Sprite *sprite)
|
||||
static void AnimFlyBallAttack_Step(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0] = 1;
|
||||
AnimTranslateLinear(sprite);
|
||||
@@ -524,8 +522,8 @@ static void sub_80B1CC0(struct Sprite *sprite)
|
||||
sprite->data[3] &= 0xFF;
|
||||
}
|
||||
if (sprite->x + sprite->x2 < -32
|
||||
|| sprite->x + sprite->x2 > 272
|
||||
|| sprite->y + sprite->y2 > 160)
|
||||
|| sprite->x + sprite->x2 > DISPLAY_WIDTH + 32
|
||||
|| sprite->y + sprite->y2 > DISPLAY_HEIGHT)
|
||||
{
|
||||
gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = FALSE;
|
||||
DestroyAnimSprite(sprite);
|
||||
@@ -883,7 +881,7 @@ static void AnimFallingFeather_Step(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_80B24C0(struct Sprite *sprite)
|
||||
static void AnimUnusedBubbleThrow(struct Sprite *sprite)
|
||||
{
|
||||
sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimTarget);
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
|
||||
@@ -891,7 +889,7 @@ static void sub_80B24C0(struct Sprite *sprite)
|
||||
sprite->callback = TranslateAnimSpriteToTargetMonLocation;
|
||||
}
|
||||
|
||||
static void sub_80B2514(struct Sprite *sprite)
|
||||
static void AnimUnusedFeather(struct Sprite *sprite)
|
||||
{
|
||||
u8 matrixNum;
|
||||
s16 rn, sinVal;
|
||||
@@ -935,10 +933,10 @@ static void sub_80B2514(struct Sprite *sprite)
|
||||
sprite->animNum = 1;
|
||||
sprite->hFlip = TRUE;
|
||||
}
|
||||
sprite->callback = sub_80B268C;
|
||||
sprite->callback = AnimUnusedFeather_Step;
|
||||
}
|
||||
|
||||
static void sub_80B268C(struct Sprite *sprite)
|
||||
static void AnimUnusedFeather_Step(struct Sprite *sprite)
|
||||
{
|
||||
struct FeatherDanceData fData;
|
||||
struct FeatherDanceData *tData = (struct FeatherDanceData *)sprite->data;
|
||||
@@ -992,12 +990,12 @@ static void AnimWhirlwindLine(struct Sprite *sprite)
|
||||
u16 arg;
|
||||
u8 mult;
|
||||
|
||||
if (!gBattleAnimArgs[2])
|
||||
if (gBattleAnimArgs[2] == ANIM_ATTACKER)
|
||||
InitSpritePosToAnimAttacker(sprite, 0);
|
||||
else
|
||||
InitSpritePosToAnimTarget(sprite, FALSE);
|
||||
if ((!gBattleAnimArgs[2] && GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
|| (gBattleAnimArgs[2] == 1 && GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER))
|
||||
if ((gBattleAnimArgs[2] == ANIM_ATTACKER && GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
|| (gBattleAnimArgs[2] == ANIM_TARGET && GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER))
|
||||
sprite->x += 8;
|
||||
SeekSpriteAnim(sprite, gBattleAnimArgs[4]);
|
||||
sprite->x -= 32;
|
||||
@@ -1007,10 +1005,10 @@ static void AnimWhirlwindLine(struct Sprite *sprite)
|
||||
sprite->x2 += mult * arg;
|
||||
sprite->data[0] = arg;
|
||||
sprite->data[7] = gBattleAnimArgs[3];
|
||||
sprite->callback = sub_80B2820;
|
||||
sprite->callback = AnimWhirlwindLine_Step;
|
||||
}
|
||||
|
||||
static void sub_80B2820(struct Sprite *sprite)
|
||||
static void AnimWhirlwindLine_Step(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x2 += sprite->data[1] >> 8;
|
||||
if (++sprite->data[0] == 6)
|
||||
@@ -1064,7 +1062,7 @@ static void AnimBounceBallLand(struct Sprite *sprite)
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
case 0:
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y);
|
||||
sprite->y2 = -sprite->y - 32;
|
||||
++sprite->data[0];
|
||||
break;
|
||||
@@ -1089,11 +1087,11 @@ static void AnimDiveBall(struct Sprite *sprite)
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
sprite->data[1] = gBattleAnimArgs[3];
|
||||
sprite->callback = sub_80B2A50;
|
||||
sprite->callback = AnimDiveBall_Step1;
|
||||
gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = TRUE;
|
||||
}
|
||||
|
||||
static void sub_80B2A50(struct Sprite *sprite)
|
||||
static void AnimDiveBall_Step1(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] > 0)
|
||||
{
|
||||
@@ -1108,11 +1106,11 @@ static void sub_80B2A50(struct Sprite *sprite)
|
||||
{
|
||||
sprite->invisible = TRUE;
|
||||
if (sprite->data[3]++ > 20)
|
||||
sprite->callback = sub_80B2AB0;
|
||||
sprite->callback = AnimDiveBall_Step2;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_80B2AB0(struct Sprite *sprite)
|
||||
static void AnimDiveBall_Step2(struct Sprite *sprite)
|
||||
{
|
||||
sprite->y2 += sprite->data[2] >> 8;
|
||||
if (sprite->y + sprite->y2 > -32)
|
||||
@@ -1131,13 +1129,13 @@ static void AnimDiveWaterSplash(struct Sprite *sprite)
|
||||
case 0:
|
||||
if (!gBattleAnimArgs[0])
|
||||
{
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1);
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1);
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y);
|
||||
}
|
||||
sprite->data[1] = 512;
|
||||
TrySetSpriteRotScale(sprite, 0, 256, sprite->data[1], 0);
|
||||
@@ -1166,6 +1164,7 @@ static void AnimDiveWaterSplash(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
// Launches a water droplet away from the specified battler. Used by Astonish and Dive
|
||||
static void AnimSprayWaterDroplet(struct Sprite *sprite)
|
||||
{
|
||||
s32 v1 = 0x1FF & Random();
|
||||
@@ -1185,18 +1184,18 @@ static void AnimSprayWaterDroplet(struct Sprite *sprite)
|
||||
sprite->oam.matrixNum = ST_OAM_HFLIP;
|
||||
if (gBattleAnimArgs[1] == 0)
|
||||
{
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 32;
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 32;
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 32;
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 32;
|
||||
}
|
||||
sprite->callback = sub_80B2C88;
|
||||
sprite->callback = AnimSprayWaterDroplet_Step;
|
||||
}
|
||||
|
||||
static void sub_80B2C88(struct Sprite *sprite)
|
||||
static void AnimSprayWaterDroplet_Step(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[2] == 0)
|
||||
{
|
||||
@@ -1216,14 +1215,14 @@ static void sub_80B2C88(struct Sprite *sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
static void sub_80B2CE4(struct Sprite *sprite)
|
||||
static void AnimUnusedFlashingLight(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[6] = 0;
|
||||
sprite->data[7] = 64;
|
||||
sprite->callback = sub_80B2CF8;
|
||||
sprite->callback = AnimUnusedFlashingLight_Step;
|
||||
}
|
||||
|
||||
static void sub_80B2CF8(struct Sprite *sprite)
|
||||
static void AnimUnusedFlashingLight_Step(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
@@ -1248,8 +1247,8 @@ static void AnimSkyAttackBird(struct Sprite *sprite)
|
||||
s16 posx = sprite->x;
|
||||
s16 posy = sprite->y;
|
||||
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
sprite->data[4] = sprite->x << 4;
|
||||
sprite->data[5] = sprite->y << 4;
|
||||
sprite->data[6] = ((posx - sprite->x) << 4) / 12;
|
||||
@@ -1257,22 +1256,22 @@ static void AnimSkyAttackBird(struct Sprite *sprite)
|
||||
rotation = ArcTan2Neg(posx - sprite->x, posy - sprite->y);
|
||||
rotation += 49152;
|
||||
TrySetSpriteRotScale(sprite, 1, 0x100, 0x100, rotation);
|
||||
sprite->callback = sub_80B2E20;
|
||||
sprite->callback = AnimSkyAttackBird_Step;
|
||||
}
|
||||
|
||||
static void sub_80B2E20(struct Sprite *sprite)
|
||||
static void AnimSkyAttackBird_Step(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[4] += sprite->data[6];
|
||||
sprite->data[5] += sprite->data[7];
|
||||
sprite->x = sprite->data[4] >> 4;
|
||||
sprite->y = sprite->data[5] >> 4;
|
||||
if (sprite->x > 285 || sprite->x < -45
|
||||
if (sprite->x > DISPLAY_WIDTH + 45 || sprite->x < -45
|
||||
|| sprite->y > 157 || sprite->y < -45)
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
|
||||
// not used
|
||||
static void sub_80B2E64(u8 taskId)
|
||||
// Unused
|
||||
static void AnimTask_SetAttackerVisibility(u8 taskId)
|
||||
{
|
||||
if (gBattleAnimArgs[0] == 0)
|
||||
{
|
||||
Reference in New Issue
Block a user