diff --git a/Makefile b/Makefile index 785d95df7..ec560f765 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/include/battle_anim.h b/include/battle_anim.h index ffff805d6..120935880 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -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 diff --git a/ld_script.txt b/ld_script.txt index e3048c656..21538a7ba 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -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); diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 3e22541be..c4df329a3 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -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; diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 17e58280e..68a5825a4 100644 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -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))) { diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 74737beec..d0493ef96 100644 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -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); diff --git a/src/flying.c b/src/battle_anim_flying.c similarity index 89% rename from src/flying.c rename to src/battle_anim_flying.c index b6007a679..d3daecc67 100644 --- a/src/flying.c +++ b/src/battle_anim_flying.c @@ -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) {