diff options
Diffstat (limited to 'include/battle_anim.h')
-rw-r--r-- | include/battle_anim.h | 302 |
1 files changed, 247 insertions, 55 deletions
diff --git a/include/battle_anim.h b/include/battle_anim.h index ad1a0fed8..f568d0f97 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -36,9 +36,6 @@ struct BattleAnimBackground #define ANIM_ARGS_COUNT 8 -#define PAN_SIDE_PLAYER -64 -#define PAN_SIDE_OPPONENT 63 - extern void (*gAnimScriptCallback)(void); extern bool8 gAnimScriptActive; extern u8 gAnimVisualTaskCount; @@ -52,46 +49,85 @@ extern u8 gAnimMoveTurn; extern u8 gBattleAnimAttacker; extern u8 gBattleAnimTarget; extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; -extern u16 gAnimMovePower; extern s32 gAnimMoveDmg; extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT]; extern u8 gUnknown_2037F24; -extern const struct OamData gOamData_83AC9C8; -extern const struct OamData gOamData_83AC9D0; -extern const struct OamData gOamData_83AC9D8; -extern const struct OamData gOamData_83AC9E0; -extern const struct OamData gOamData_83AC9F8; -extern const struct OamData gOamData_83ACA00; -extern const struct OamData gOamData_83ACA18; -extern const struct OamData gOamData_83ACA20; -extern const struct OamData gOamData_83ACA30; -extern const struct OamData gOamData_83ACA38; -extern const struct OamData gOamData_83ACA40; -extern const struct OamData gOamData_83ACA80; -extern const struct OamData gOamData_83ACA90; -extern const struct OamData gOamData_83ACA98; -extern const struct OamData gOamData_83ACAA0; -extern const struct OamData gOamData_83ACAB8; -extern const struct OamData gOamData_83ACAC8; -extern const struct OamData gOamData_83ACAE8; -extern const struct OamData gOamData_83ACAF0; -extern const struct OamData gOamData_83ACAF8; -extern const struct OamData gOamData_83ACB00; -extern const struct OamData gOamData_83ACB10; -extern const struct OamData gOamData_83ACB18; -extern const struct OamData gOamData_83ACB20; -extern const struct OamData gOamData_83ACB28; -extern const struct OamData gOamData_83ACB38; -extern const struct OamData gOamData_83ACB48; -extern const struct OamData gOamData_83ACB50; -extern const struct OamData gOamData_83ACB58; -extern const struct OamData gOamData_83ACB60; -extern const struct OamData gOamData_83ACB88; -extern const struct OamData gOamData_83ACBC0; -extern const struct OamData gOamData_83ACBE8; - -// battle_anim.s +// 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; +extern const struct OamData gOamData_AffineOff_ObjNormal_64x64; +extern const struct OamData gOamData_AffineOff_ObjNormal_16x8; +extern const struct OamData gOamData_AffineOff_ObjNormal_32x8; +extern const struct OamData gOamData_AffineOff_ObjNormal_32x16; +extern const struct OamData gOamData_AffineOff_ObjNormal_64x32; +extern const struct OamData gOamData_AffineOff_ObjNormal_8x16; +extern const struct OamData gOamData_AffineOff_ObjNormal_8x32; +extern const struct OamData gOamData_AffineOff_ObjNormal_16x32; +extern const struct OamData gOamData_AffineOff_ObjNormal_32x64; +extern const struct OamData gOamData_AffineNormal_ObjNormal_8x8; +extern const struct OamData gOamData_AffineNormal_ObjNormal_16x16; +extern const struct OamData gOamData_AffineNormal_ObjNormal_32x32; +extern const struct OamData gOamData_AffineNormal_ObjNormal_64x64; +extern const struct OamData gOamData_AffineNormal_ObjNormal_16x8; +extern const struct OamData gOamData_AffineNormal_ObjNormal_32x8; +extern const struct OamData gOamData_AffineNormal_ObjNormal_32x16; +extern const struct OamData gOamData_AffineNormal_ObjNormal_64x32; +extern const struct OamData gOamData_AffineNormal_ObjNormal_8x16; +extern const struct OamData gOamData_AffineNormal_ObjNormal_8x32; +extern const struct OamData gOamData_AffineNormal_ObjNormal_16x32; +extern const struct OamData gOamData_AffineNormal_ObjNormal_32x64; +extern const struct OamData gOamData_AffineDouble_ObjNormal_8x8; +extern const struct OamData gOamData_AffineDouble_ObjNormal_16x16; +extern const struct OamData gOamData_AffineDouble_ObjNormal_32x32; +extern const struct OamData gOamData_AffineDouble_ObjNormal_64x64; +extern const struct OamData gOamData_AffineDouble_ObjNormal_16x8; +extern const struct OamData gOamData_AffineDouble_ObjNormal_32x8; +extern const struct OamData gOamData_AffineDouble_ObjNormal_32x16; +extern const struct OamData gOamData_AffineDouble_ObjNormal_64x32; +extern const struct OamData gOamData_AffineDouble_ObjNormal_8x16; +extern const struct OamData gOamData_AffineDouble_ObjNormal_8x32; +extern const struct OamData gOamData_AffineDouble_ObjNormal_16x32; +extern const struct OamData gOamData_AffineDouble_ObjNormal_32x64; +extern const struct OamData gOamData_AffineOff_ObjBlend_8x8; +extern const struct OamData gOamData_AffineOff_ObjBlend_16x16; +extern const struct OamData gOamData_AffineOff_ObjBlend_32x32; +extern const struct OamData gOamData_AffineOff_ObjBlend_64x64; +extern const struct OamData gOamData_AffineOff_ObjBlend_16x8; +extern const struct OamData gOamData_AffineOff_ObjBlend_32x8; +extern const struct OamData gOamData_AffineOff_ObjBlend_32x16; +extern const struct OamData gOamData_AffineOff_ObjBlend_64x32; +extern const struct OamData gOamData_AffineOff_ObjBlend_8x16; +extern const struct OamData gOamData_AffineOff_ObjBlend_8x32; +extern const struct OamData gOamData_AffineOff_ObjBlend_16x32; +extern const struct OamData gOamData_AffineOff_ObjBlend_32x64; +extern const struct OamData gOamData_AffineNormal_ObjBlend_8x8; +extern const struct OamData gOamData_AffineNormal_ObjBlend_16x16; +extern const struct OamData gOamData_AffineNormal_ObjBlend_32x32; +extern const struct OamData gOamData_AffineNormal_ObjBlend_64x64; +extern const struct OamData gOamData_AffineNormal_ObjBlend_16x8; +extern const struct OamData gOamData_AffineNormal_ObjBlend_32x8; +extern const struct OamData gOamData_AffineNormal_ObjBlend_32x16; +extern const struct OamData gOamData_AffineNormal_ObjBlend_64x32; +extern const struct OamData gOamData_AffineNormal_ObjBlend_8x16; +extern const struct OamData gOamData_AffineNormal_ObjBlend_8x32; +extern const struct OamData gOamData_AffineNormal_ObjBlend_16x32; +extern const struct OamData gOamData_AffineNormal_ObjBlend_32x64; +extern const struct OamData gOamData_AffineDouble_ObjBlend_8x8; +extern const struct OamData gOamData_AffineDouble_ObjBlend_16x16; +extern const struct OamData gOamData_AffineDouble_ObjBlend_32x32; +extern const struct OamData gOamData_AffineDouble_ObjBlend_64x64; +extern const struct OamData gOamData_AffineDouble_ObjBlend_16x8; +extern const struct OamData gOamData_AffineDouble_ObjBlend_32x8; +extern const struct OamData gOamData_AffineDouble_ObjBlend_32x16; +extern const struct OamData gOamData_AffineDouble_ObjBlend_64x32; +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 CompressedSpriteSheet gBattleAnimPicTable[]; +extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; void MoveBattlerSpriteToBG(u8 battlerId, u8); void sub_8073128(u8); void ClearBattleAnimationVars(void); @@ -100,14 +136,13 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo void DestroyAnimSprite(struct Sprite *sprite); void DestroyAnimVisualTask(u8 taskId); void DestroyAnimSoundTask(u8 taskId); -bool8 IsAnimBankSpriteVisible(u8 battlerId); bool8 IsContest(void); s8 BattleAnimAdjustPanning(s8 pan); s8 BattleAnimAdjustPanning2(s8 pan); s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan); bool8 IsBattlerSpriteVisible(u8 battlerId); s16 KeepPanInRange(s16 a, s32 oldPan); -void sub_80730C0(u16, const u16 *, s32, u8); +void sub_80730C0(u16, u16 *, s32, u8); // battle_intro.c void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value); @@ -116,11 +151,166 @@ void HandleIntroSlide(u8 terrain); void sub_80BC41C(u8 taskId); void sub_80BCEF4(s32 bgId, u8 arg1, u8 arg2, u8 battlerPosition, u8 arg4, u8 *arg5, u16 *arg6, u16 tilesOffset); -// battle_anim_special.s +// 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 sub_80A43F8(struct Sprite *); +void AnimWhipHit(struct Sprite *); +void sub_80A4494(struct Sprite *); +void AnimCuttingSlice(struct Sprite *); +void AnimAirCutterSlice(struct Sprite *); +void sub_80A481C(struct Sprite *); +void AnimProtect(struct Sprite *); +void AnimMilkBottle(struct Sprite *); +void AnimGrantingStars(struct Sprite *); +void AnimSparkingStars(struct Sprite *); +void sub_80A4E40(struct Sprite *); +void AnimSleepLetterZ(struct Sprite *); +void AnimLockOnTarget(struct Sprite *); +void AnimLockOnMoveTarget(struct Sprite *); +void AnimBowMon(struct Sprite *); +void sub_80A5590(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 AnimWavyMusicNotes(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 sub_80A2F0C(u8 taskId); + +// battle_anim_effects_2.c +void sub_80A6E48(struct Sprite *); +void sub_80A6E98(struct Sprite *); +void sub_80A6F8C(struct Sprite *); +void sub_80A7020(struct Sprite *); +void Anim_KinesisZapEnergy(struct Sprite *); +void Anim_SwordsDanceBlade(struct Sprite *); +void AnimSonicBoomProjectile(struct Sprite *); +void AnimAirWaveProjectile(struct Sprite *); +void sub_80A79E8(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 AnimParticuleBurst(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 sub_80E3E84(struct Sprite *); +void AnimParticuleBurst(struct Sprite *); +void AnimKnockOffStrike(struct Sprite *); +void AnimRecycle(struct Sprite *); + +// battle_anim_special.c void sub_80F1720(u8 battler, struct Pokemon *mon); - -// battle_anim_effects_1.s -void AnimMoveTwisterParticle(struct Sprite *sprite); +u8 ItemIdToBallId(u16 itemId); +u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId); +u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId); +void sub_80EEFC8(u8 *, u8 *, u8 battlerId); +void sub_80EF0E0(u8 batterId); enum { @@ -151,14 +341,7 @@ enum #define STAT_ANIM_MULTIPLE_PLUS2 56 #define STAT_ANIM_MULTIPLE_MINUS1 57 #define STAT_ANIM_MULTIPLE_MINUS2 58 -void LaunchStatusAnimation(u8 bank, u8 statusAnimId); - -// battle_anim_special.s -u8 ItemIdToBallId(u16 itemId); -u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId); -u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId); -void sub_80EEFC8(u8 *, u8 *, u8 battlerId); -void sub_80EF0E0(u8 batterId); +void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId); // battle_anim_mons.c extern const struct MonCoords gCastformFrontSpriteCoords[]; @@ -206,7 +389,7 @@ void sub_8075358(u32 bgId); void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset); void InitAnimBgTilemapBuffer(u32 bgId, const void *src); void AnimLoadCompressedBgTilemap(u32 bgId, const u32 *src); -u8 sub_8075454(void); +u8 GetBattleBgPaletteNum(void); void sub_8075458(bool8 arg0); void sub_8075490(struct Sprite *sprite); void InitSpriteDataForLinearTranslation(struct Sprite *sprite); @@ -284,7 +467,6 @@ void sub_8099BD4(u8 taskId); // normal.c extern const struct SpriteTemplate gUnknown_83E7C98; extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate; - u32 UnpackSelectedBattleAnimPalettes(s16 selector); void sub_80B9BDC(u8 taskId); void sub_80B9CE4(u8 taskId); @@ -328,6 +510,7 @@ void sub_80B3A58(u8 taskId); void sub_80B3C78(u8 taskId); // dark.c +extern const union AffineAnimCmd *const gUnknown_83E7910[]; void sub_80B78E0(u8 taskId); void sub_80B79DC(u8 taskId); void sub_80B7A80(u8 taskId); @@ -372,6 +555,10 @@ void sub_80AD800(u8 taskId); // water.s extern const union AnimCmd *const gUnknown_83E5958[]; extern const union AnimCmd *const gUnknown_83E5A78[]; +void AnimWaterPulseRing(struct Sprite *sprite); + +// smokescreen.s +u8 SmokescreenImpact(s16 x, s16 y, u8 a3); // battle_anim_utility_funcs.c void sub_80BA7F8(u8 taskId); @@ -403,4 +590,9 @@ void sub_80BC0DC(u8 taskId); void sub_80BC0FC(u8 taskId); void sub_80BC12C(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 |