Merge pull request #390 from ghoulslash/battle_engine

add animations for all moves
This commit is contained in:
DizzyEggg 2020-05-29 12:53:17 +02:00 committed by GitHub
commit 19699bee23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 13807 additions and 498 deletions

View File

@ -288,3 +288,43 @@
createvisualtask AnimTask_IsDoubleBattle, 0 createvisualtask AnimTask_IsDoubleBattle, 0
jumprettrue \ptr jumprettrue \ptr
.endm .endm
@ keep CFRU macros cause I'm lazy. todo: update to createsprite and createvisualtask, respectively
.macro launchtemplate launchtemplatePtr launchtemplatePriority launchtemplateArgsNo launchtemplatearg0 launchtemplatearg1 launchtemplatearg2 launchtemplatearg3 launchtemplatearg4 launchtemplatearg5 launchtemplatearg6 launchtemplatearg7 launchtemplatearg8
.byte 0x2
.word \launchtemplatePtr
.byte \launchtemplatePriority
.byte \launchtemplateArgsNo
.hword \launchtemplatearg0
.hword \launchtemplatearg1
.hword \launchtemplatearg2
.hword \launchtemplatearg3
.hword \launchtemplatearg4
.hword \launchtemplatearg5
.hword \launchtemplatearg6
.hword \launchtemplatearg7
.hword \launchtemplatearg8
.endm
.macro launchtask launchtaskPtr launchtaskPriority launchtaskArgsNo launchtaskarg0 launchtaskarg1 launchtaskarg2 launchtaskarg3 launchtaskarg4 launchtaskarg5 launchtaskarg6 launchtaskarg7 launchtaskarg8
.byte 0x3
.word \launchtaskPtr
.byte \launchtaskPriority
.byte \launchtaskArgsNo
.hword \launchtaskarg0
.hword \launchtaskarg1
.hword \launchtaskarg2
.hword \launchtaskarg3
.hword \launchtaskarg4
.hword \launchtaskarg5
.hword \launchtaskarg6
.hword \launchtaskarg7
.hword \launchtaskarg8
.endm
.macro setblends setblends_value
.byte 0xC
.hword \setblends_value
.endm

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 B

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 302 B

After

Width:  |  Height:  |  Size: 467 B

View File

@ -50,6 +50,7 @@ extern u8 gBattleAnimAttacker;
extern u8 gBattleAnimTarget; extern u8 gBattleAnimTarget;
extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT]; extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT];
extern u8 gAnimCustomPanning; extern u8 gAnimCustomPanning;
extern u16 gAnimMoveIndex;
void ClearBattleAnimationVars(void); void ClearBattleAnimationVars(void);
void DoMoveAnim(u16 move); void DoMoveAnim(u16 move);
@ -207,6 +208,10 @@ void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId);
// battle_anim_ground.c // battle_anim_ground.c
void AnimTask_HorizontalShake(u8 taskId); void AnimTask_HorizontalShake(u8 taskId);
void AnimMudSportDirt(struct Sprite *sprite);
void AnimDirtScatter(struct Sprite *sprite);
void AnimMudSportDirtRising(struct Sprite *sprite);
extern const union AffineAnimCmd *const gAffineAnims_SpinningBone[];
// battle_anim_special.c // battle_anim_special.c
void sub_8172EF0(u8 battler, struct Pokemon *mon); void sub_8172EF0(u8 battler, struct Pokemon *mon);
@ -225,29 +230,110 @@ void AnimParticleBurst(struct Sprite *);
void AnimPowerAbsorptionOrb(struct Sprite* sprite); void AnimPowerAbsorptionOrb(struct Sprite* sprite);
void AnimNeedleArmSpike(struct Sprite *); void AnimNeedleArmSpike(struct Sprite *);
void AnimTask_CompressTargetHorizontally(u8 taskId); void AnimTask_CompressTargetHorizontally(u8 taskId);
void AnimSporeParticle(struct Sprite* sprite);
void AnimAbsorptionOrb(struct Sprite* sprite);
void AnimPetalDanceSmallFlower(struct Sprite* sprite);
void AnimPetalDanceBigFlower(struct Sprite* sprite);
void AnimEndureEnergy(struct Sprite* sprite);
void AnimMimicOrb(struct Sprite* sprite);
void AnimSolarbeamBigOrb(struct Sprite* sprite);
void AnimHyperBeamOrb(struct Sprite* sprite);
void AnimNeedleArmSpike_Step(struct Sprite* sprite);
void AnimMovePowderParticle(struct Sprite* sprite);
void AnimMetronomeFinger(struct Sprite* sprite);
void AnimConversion(struct Sprite* sprite);
void AnimCuttingSlice(struct Sprite* sprite);
void AnimThoughtBubble(struct Sprite* sprite);
void AnimTranslateLinearSingleSineWave(struct Sprite* sprite);
void AnimGrantingStars(struct Sprite* sprite);
void AnimFollowMeFinger(struct Sprite* sprite);
extern const union AnimCmd *const gRazorLeafParticleAnimTable[]; extern const union AnimCmd *const gRazorLeafParticleAnimTable[];
extern const union AnimCmd *const gPowerAbsorptionOrbAnimTable[]; extern const union AnimCmd *const gPowerAbsorptionOrbAnimTable[];
extern const union AffineAnimCmd *const gPowerAbsorptionOrbAffineAnimTable[]; extern const union AffineAnimCmd *const gPowerAbsorptionOrbAffineAnimTable[];
extern const union AnimCmd *const gMusicNotesAnimTable[]; extern const union AnimCmd *const gMusicNotesAnimTable[];
extern const union AffineAnimCmd *const gMimicOrbAffineAnimTable[];
extern const union AnimCmd *const gSolarbeamBigOrbAnimTable[];
extern const union AnimCmd *const gPowderParticlesAnimTable[];
extern const union AffineAnimCmd *const gMetronomeFingerAffineAnimTable[];
extern const union AnimCmd *const gPetalDanceBigFlowerAnimTable[];
extern const union AnimCmd *const gOctazookaAnimTable[];
extern const union AffineAnimCmd *const gAbsorptionOrbAffineAnimTable[];
extern const union AnimCmd *const gGrantingStarsAnimTable[];
extern const union AnimCmd *const gSporeParticleAnimTable[];
extern const union AnimCmd *const gHealingBlueStarAnimTable[];
extern const union AnimCmd *const gMoonlightSparkleAnimTable[];
extern const union AnimCmd *const gEndureEnergyAnimTable[];
extern const union AnimCmd *const gPetalDanceSmallFlowerAnimTable[];
extern const union AnimCmd *const gConversionAnimTable[];
extern const union AffineAnimCmd *const gConversionAffineAnimTable[];
extern const union AnimCmd *const gCuttingSliceAnimTable[];
extern const union AnimCmd *const gScratchAnimTable[];
extern const union AnimCmd *const gIngrainRootAnimTable[];
extern const union AffineAnimCmd *const gSwiftStarAffineAnimTable[];
extern const union AnimCmd *const gMetronomeThroughtBubbleAnimTable[];
// battle_anim_effects_2.c
void AnimUproarRing(struct Sprite *sprite);
void AnimSonicBoomProjectile(struct Sprite *sprite);
void AnimOrbitFast(struct Sprite *sprite);
void AnimOrbitScatter(struct Sprite *sprite);
void AnimAngerMark(struct Sprite *sprite);
void AnimHyperVoiceRing(struct Sprite *sprite);
extern const union AffineAnimCmd *const gThinRingShrinkingAffineAnimTable[];
extern const union AffineAnimCmd *const gThinRingExpandingAffineAnimTable[];
extern const union AnimCmd *const gExplosionAnimTable[];
extern const union AffineAnimCmd *const gGuardRingAffineAnimTable[];
extern const union AffineAnimCmd *const gAngerMarkAffineAnimTable[];
extern const union AffineAnimCmd *const gWaterPulseRingAffineAnimTable[];
extern const union AffineAnimCmd *const gHyperVoiceRingAffineAnimTable[];
extern const union AnimCmd *const gCoinAnimTable[];
extern const union AffineAnimCmd *const gHiddenPowerOrbAffineAnimTable[];
// battle_anim_effects_3.c
void AnimBlackSmoke(struct Sprite *sprite);
void AnimSweetScentPetal(struct Sprite *sprite);
void AnimTealAlert(struct Sprite *sprite);
void AnimBlockX(struct Sprite *sprite);
extern const union AnimCmd *const gOpeningEyeAnimTable[];
extern const union AnimCmd *const gEclipsingOrbAnimTable[];
// battle_anim_water.c // battle_anim_water.c
void AnimWaterPulseRing(struct Sprite *sprite); void AnimWaterPulseRing(struct Sprite *sprite);
void AnimSmallBubblePair(struct Sprite *sprite);
void AnimWaterPulseBubble(struct Sprite *sprite);
extern const union AnimCmd *const gAnims_WaterBubbleProjectile[];
extern const union AnimCmd *const gAnims_FlamethrowerFlame[];
extern const union AnimCmd *const gAnims_WaterPulseBubble[];
// battle_anim_flying.c // battle_anim_flying.c
void DestroyAnimSpriteAfterTimer(struct Sprite *sprite); void DestroyAnimSpriteAfterTimer(struct Sprite *sprite);
void sub_810E2C8(struct Sprite *sprite); void sub_810E2C8(struct Sprite *sprite);
void AnimAirWaveCrescent(struct Sprite *sprite); void AnimAirWaveCrescent(struct Sprite *sprite);
void AnimFlyBallUp(struct Sprite *sprite);
void AnimFlyBallAttack(struct Sprite *sprite);
void AnimFlyBallAttack_Step(struct Sprite *sprite);
void AnimFlyBallUp_Step(struct Sprite *sprite);
extern const union AnimCmd *const gAffineAnims_AirWaveCrescent[]; extern const union AnimCmd *const gAffineAnims_AirWaveCrescent[];
extern const union AffineAnimCmd *const gAffineAnims_FlyBallUp[];
extern const union AffineAnimCmd *const gAffineAnims_FlyBallAttack[];
// battle_anim_poison.c // battle_anim_poison.c
void AnimSludgeBombHitParticle(struct Sprite *); void AnimSludgeBombHitParticle(struct Sprite *);
void AnimAcidPoisonBubble_Step(struct Sprite *sprite);
extern const union AffineAnimCmd *const gAffineAnims_PoisonProjectile[]; extern const union AffineAnimCmd *const gAffineAnims_PoisonProjectile[];
extern const union AnimCmd *const gAnims_PoisonProjectile[];
extern const union AnimCmd *const gAnims_AcidPoisonDroplet[];
// battle_anim_ghost.c // battle_anim_ghost.c
void AnimGhostStatusSprite(struct Sprite *sprite); void AnimGhostStatusSprite(struct Sprite *sprite);
void AnimShadowBall(struct Sprite *sprite);
void AnimTask_GrudgeFlames_Step(u8 taskId);
extern const union AffineAnimCmd *const gAffineAnims_ShadowBall[];
// battle_anim_psychic.c // battle_anim_psychic.c
extern const union AffineAnimCmd *const gAffineAnims_PsychoBoostOrb[];
extern const union AffineAnimCmd *const gAffineAnims_LusterPurgeCircle[]; extern const union AffineAnimCmd *const gAffineAnims_LusterPurgeCircle[];
void AnimPsychoBoost(struct Sprite *sprite);
// battle_anim_smokescreen.c // battle_anim_smokescreen.c
u8 SmokescreenImpact(s16 x, s16 y, u8 a3); u8 SmokescreenImpact(s16 x, s16 y, u8 a3);
@ -315,4 +401,93 @@ extern const union AnimCmd *const gAnims_SmallBubblePair[];
extern const union AnimCmd *const gAnims_WaterBubble[]; extern const union AnimCmd *const gAnims_WaterBubble[];
extern const union AffineAnimCmd *const gAffineAnims_Bite[]; extern const union AffineAnimCmd *const gAffineAnims_Bite[];
// battle_anim_normal.c
extern const union AffineAnimCmd *const gAffineAnims_HitSplat[];
void AnimHitSplatBasic(struct Sprite *sprite);
void AnimFlashingHitSplat(struct Sprite *sprite);
void AnimFlashingHitSplat_Step(struct Sprite *sprite);
void AnimHitSplatRandom(struct Sprite *sprite);
void AnimCrossImpact(struct Sprite *sprite);
void AnimHitSplatOnMonEdge(struct Sprite *sprite);
// battle_anim_electric.c
void AnimThunderWave(struct Sprite *sprite);
void AnimGrowingChargeOrb(struct Sprite *sprite);
void AnimZapCannonSpark(struct Sprite *sprite);
void AnimSparkElectricity(struct Sprite *sprite);
void AnimElectricPuff(struct Sprite *sprite);
void AnimSparkElectricityFlashing(struct Sprite *sprite);
void AnimGrowingShockWaveOrb(struct Sprite *sprite);
extern const union AffineAnimCmd *const gAffineAnims_GrowingElectricOrb[];
extern const union AffineAnimCmd *const gAffineAnims_FlashingSpark[];
extern const union AnimCmd *const gAnims_ThunderboltOrb[];
extern const union AnimCmd *const gAnims_ElectricPuff[];
extern const union AnimCmd *const gAnims_ElectricChargingParticles[];
// battle_anim_fight.c
void AnimStompFoot(struct Sprite *sprite);
void AnimSpinningKickOrPunch(struct Sprite *sprite);
void AnimBrickBreakWall_Step(struct Sprite *sprite);
void AnimJumpKick(struct Sprite *sprite);
void AnimBasicFistOrFoot(struct Sprite *sprite);
void AnimSpinningKickOrPunchFinish(struct Sprite *sprite);
void AnimRevengeScratch(struct Sprite *sprite);
void AnimDizzyPunchDuck(struct Sprite *sprite);
extern const union AnimCmd *const gAnims_HandOrFoot[];
extern const union AffineAnimCmd *const gAffineAnims_MegaPunchKick[];
extern const union AffineAnimCmd *const gAffineAnims_SpinningHandOrFoot[];
extern const union AnimCmd *const gAnims_RevengeBigScratch[];
// battle_anim_rock.c
extern const union AffineAnimCmd *const gAffineAnims_Whirlpool[];
extern const union AffineAnimCmd *const gAffineAnims_BasicRock[];
void AnimParticleInVortex(struct Sprite *sprite);
void AnimFallingRock(struct Sprite *sprite);
void AnimRaiseSprite(struct Sprite *sprite);
void AnimFallingRock_Step(struct Sprite *sprite);
void AnimFlyingSandCrescent(struct Sprite *sprite);
// battle_anim_dark.c
void AnimClawSlash(struct Sprite *sprite);
void AnimTearDrop(struct Sprite *sprite);
void AnimBite(struct Sprite *sprite);
extern const union AnimCmd *const gAnims_ClawSlash[];
extern const union AffineAnimCmd *const gAffineAnims_TearDrop[];
// battle_anim_bug.c
void AnimStringWrap_Step(struct Sprite *sprite);
void AnimMissileArc(struct Sprite *sprite);
void AnimSpiderWeb(struct Sprite *sprite);
void AnimMissileArc_Step(struct Sprite *sprite);
// battle_anim_ice.c
void AnimThrowMistBall(struct Sprite *sprite);
void AnimMoveParticleBeyondTarget(struct Sprite *sprite);
void AnimIceEffectParticle(struct Sprite *sprite);
void AnimSwirlingSnowball_Step1(struct Sprite *sprite);
extern const union AnimCmd *const gAnims_Snowball[];
extern const union AffineAnimCmd *const gAffineAnims_IceCrystalHit[];
extern const union AnimCmd *const gAnims_IceCrystalLarge[];
extern const union AnimCmd *const gAnims_IceBallChunk[];
extern const union AnimCmd *const gAnims_BlizzardIceCrystal[];
// battle_anim_fire.c
void AnimFireSpread(struct Sprite *sprite);
void AnimFireSpiralOutward(struct Sprite *sprite);
extern const union AnimCmd *const gAnims_FireBlastCross[];
// battle_anim_dragon.c
extern const union AnimCmd *const gAnims_DragonBreathFire[];
extern const union AnimCmd *const gAnims_DragonRageFirePlume[];
extern const union AffineAnimCmd *const gAffineAnims_DragonRageFire[];
extern const union AnimCmd *const gAnims_DragonRageFire[];
extern const union AffineAnimCmd *const gAffineAnims_DragonBreathFire[];
void AnimDragonRageFirePlume(struct Sprite *sprite);
void AnimDragonFireToTarget(struct Sprite *sprite);
void AnimDragonDanceOrb(struct Sprite *sprite);
void AnimOverheatFlame(struct Sprite *sprite);
// battle_anim_new.c
void CoreEnforcerLoadBeamTarget(struct Sprite* sprite);
#endif // GUARD_BATTLE_ANIM_H #endif // GUARD_BATTLE_ANIM_H

View File

@ -592,5 +592,29 @@
#define BACK_ANIM_FADE_GREEN_WITH_SHAKE 0x18 #define BACK_ANIM_FADE_GREEN_WITH_SHAKE 0x18
#define BACK_ANIM_FADE_BLUE_WITH_SHAKE 0x19 #define BACK_ANIM_FADE_BLUE_WITH_SHAKE 0x19
// mon pal blend
#define ANIM_PAL_BG 0x1
#define ANIM_PAL_ATK 0x2
#define ANIM_PAL_DEF 0x4
#define ANIM_PAL_ATK_PARTNER 0x8
#define ANIM_PAL_DEF_PARTNER 0x10
#define ANIM_PAL_ALL 0x1f
#define ANIM_PAL_BG_4 0x20
#define ANIM_PAL_BG_5 0x40
#define ANIM_PAL_ALL_BATTLERS 0x780
#define ANIM_PAL_PLAYER1 0x80
#define ANIM_PAL_PLAYER2 0x100
#define ANIM_PAL_OPPONENT1 0x200
#define ANIM_PAL_OPPONENT2 0x400
// horseshoe/fist frames
#define ANIM_RIGHT_FIST 0
#define ANIM_LEFT_FIST 2
// surf wave palettes
#define ANIM_SURF_PAL_SURF 0
#define ANIM_SURF_PAL_MUDDY_WATER 1
#define ANIM_SURF_PAL_SLUDGE_WAVE 2
#endif // GUARD_CONSTANTS_BATTLE_ANIM_H #endif // GUARD_CONSTANTS_BATTLE_ANIM_H

View File

@ -97,20 +97,20 @@
#define B_POWDER_GRASS GEN_6 // In Gen6+, Grass type Pokémon are immune to powder and spore moves. #define B_POWDER_GRASS GEN_6 // In Gen6+, Grass type Pokémon are immune to powder and spore moves.
// Animation Settings // Animation Settings
#define NEW_SWORD_PARTICLE // update swords dance particle #define NEW_SWORD_PARTICLE TRUE // update swords dance particle
#define NEW_LEECH_SEED_PARTICLE //update leech seed's animation particle #define NEW_LEECH_SEED_PARTICLE TRUE //update leech seed's animation particle
#define NEW_HORN_ATTACK_PARTICLE //update horn attack's horn #define NEW_HORN_ATTACK_PARTICLE TRUE //update horn attack's horn
#define NEW_LEAF_PARTICLE // update leaf particle #define NEW_LEAF_PARTICLE TRUE // update leaf particle
#define NEW_EMBER_PARTICLES //updates ember fire particle #define NEW_EMBER_PARTICLES TRUE //updates ember fire particle
#define NEW_MEAN_LOOK_PARTICLE //update mean look eye #define NEW_MEAN_LOOK_PARTICLE TRUE //update mean look eye
#define NEW_TEETH_PARTICLE //update bite/crunch teeth particle #define NEW_TEETH_PARTICLE TRUE //update bite/crunch teeth particle
#define NEW_HANDS_FEET_PARTICLE //update chop/kick/punch particles #define NEW_HANDS_FEET_PARTICLE TRUE //update chop/kick/punch particles
#define NEW_SPIKES_PARTICLE //update spikes particle #define NEW_SPIKES_PARTICLE TRUE //update spikes particle
#define NEW_FLY_BUBBLE_PARTICLE //update fly 'bubble' particle #define NEW_FLY_BUBBLE_PARTICLE TRUE //update fly 'bubble' particle
#define NEW_CURSE_NAIL_PARTICLE //updates curse nail #define NEW_CURSE_NAIL_PARTICLE TRUE //updates curse nail
#define NEW_BATON_PASS_BALL_PARTICLE //update baton pass pokeball sprite #define NEW_BATON_PASS_BALL_PARTICLE TRUE //update baton pass pokeball sprite
#define NEW_MORNING_SUN_STAR_PARTICLE //updates morning sun star particles #define NEW_MORNING_SUN_STAR_PARTICLE TRUE //updates morning sun star particles
#define NEW_IMPACT_PALETTE //updates the basic 'hit' particle #define NEW_IMPACT_PALETTE TRUE //updates the basic 'hit' particle
#define NEW_SURF_PARTICLE_PALETTE //updates the surf wave palette #define NEW_SURF_PARTICLE_PALETTE TRUE //updates the surf wave palette
#endif // GUARD_CONSTANTS_BATTLE_CONFIG_H #endif // GUARD_CONSTANTS_BATTLE_CONFIG_H

View File

@ -697,6 +697,45 @@
#define MOVES_COUNT_GEN7 677 #define MOVES_COUNT_GEN7 677
#define MOVES_COUNT MOVES_COUNT_GEN7 // Gen 8 moves.
#define MOVE_DYNAMAX_CANNON (MOVES_COUNT_GEN7 + 0)
#define MOVE_SNIPE_SHOT (MOVES_COUNT_GEN7 + 1)
#define MOVE_JAW_LOCK (MOVES_COUNT_GEN7 + 2)
#define MOVE_STUFF_CHEEKS (MOVES_COUNT_GEN7 + 3)
#define MOVE_NO_RETREAT (MOVES_COUNT_GEN7 + 4)
#define MOVE_TAR_SHOT (MOVES_COUNT_GEN7 + 5)
#define MOVE_MAGIC_POWDER (MOVES_COUNT_GEN7 + 6)
#define MOVE_DRAGON_DARTS (MOVES_COUNT_GEN7 + 7)
#define MOVE_TEA_TIME (MOVES_COUNT_GEN7 + 8)
#define MOVE_OCTOLOCK (MOVES_COUNT_GEN7 + 9)
#define MOVE_BOLT_BEAK (MOVES_COUNT_GEN7 + 10)
#define MOVE_FISHIOUS_REND (MOVES_COUNT_GEN7 + 11)
#define MOVE_COURT_CHANGE (MOVES_COUNT_GEN7 + 12)
#define MOVE_CLANGOROUS_SOUL (MOVES_COUNT_GEN7 + 13)
#define MOVE_BODY_PRESS (MOVES_COUNT_GEN7 + 14)
#define MOVE_DECORATE (MOVES_COUNT_GEN7 + 15)
#define MOVE_DRUM_BEATING (MOVES_COUNT_GEN7 + 16)
#define MOVE_SNAP_TRAP (MOVES_COUNT_GEN7 + 17)
#define MOVE_PYRO_BALL (MOVES_COUNT_GEN7 + 18)
#define MOVE_BEHEMOTH_BLADE (MOVES_COUNT_GEN7 + 19)
#define MOVE_BEHEMOTH_BASH (MOVES_COUNT_GEN7 + 20)
#define MOVE_AURA_WHEEL (MOVES_COUNT_GEN7 + 21)
#define MOVE_BREAKING_SWIPE (MOVES_COUNT_GEN7 + 22)
#define MOVE_BRANCH_POKE (MOVES_COUNT_GEN7 + 23)
#define MOVE_OVERDRIVE (MOVES_COUNT_GEN7 + 24)
#define MOVE_APPLE_ACID (MOVES_COUNT_GEN7 + 25)
#define MOVE_GRAV_APPLE (MOVES_COUNT_GEN7 + 26)
#define MOVE_SPIRIT_BREAK (MOVES_COUNT_GEN7 + 27)
#define MOVE_STRANGE_STEAM (MOVES_COUNT_GEN7 + 28)
#define MOVE_LIFE_DEW (MOVES_COUNT_GEN7 + 29)
#define MOVE_OBSTRUCT (MOVES_COUNT_GEN7 + 30)
#define MOVE_FALSE_SURRENDER (MOVES_COUNT_GEN7 + 31)
#define MOVE_METEOR_ASSAULT (MOVES_COUNT_GEN7 + 32)
#define MOVE_ETERNA_BEAM (MOVES_COUNT_GEN7 + 33)
#define MOVE_STEEL_BEAM (MOVES_COUNT_GEN7 + 34)
#define MOVES_COUNT_GEN8 (MOVES_COUNT_GEN7 + 35)
#define MOVES_COUNT MOVES_COUNT_GEN8
#endif // GUARD_CONSTANTS_MOVES_H #endif // GUARD_CONSTANTS_MOVES_H

View File

@ -197,6 +197,7 @@ SECTIONS {
src/battle_anim_ground.o(.text); src/battle_anim_ground.o(.text);
src/battle_anim_normal.o(.text); src/battle_anim_normal.o(.text);
src/battle_anim_utility_funcs.o(.text); src/battle_anim_utility_funcs.o(.text);
src/battle_anim_new.o(.text);
src/battle_intro.o(.text); src/battle_intro.o(.text);
src/bike.o(.text); src/bike.o(.text);
src/easy_chat.o(.text); src/easy_chat.o(.text);
@ -570,6 +571,7 @@ SECTIONS {
src/battle_anim_ground.o(.rodata); src/battle_anim_ground.o(.rodata);
src/battle_anim_normal.o(.rodata); src/battle_anim_normal.o(.rodata);
src/battle_anim_utility_funcs.o(.rodata); src/battle_anim_utility_funcs.o(.rodata);
src/battle_anim_new.o(.rodata);
src/battle_intro.o(.rodata); src/battle_intro.o(.rodata);
src/bike.o(.rodata); src/bike.o(.rodata);
src/easy_chat.o(.rodata); src/easy_chat.o(.rodata);

View File

@ -17,6 +17,7 @@
#include "sprite.h" #include "sprite.h"
#include "task.h" #include "task.h"
#include "constants/battle_anim.h" #include "constants/battle_anim.h"
#include "constants/battle_config.h"
#define ANIM_SPRITE_INDEX_COUNT 8 #define ANIM_SPRITE_INDEX_COUNT 8
@ -108,7 +109,7 @@ EWRAM_DATA static u16 sSoundAnimFramesToWait = 0;
EWRAM_DATA static u8 sMonAnimTaskIdArray[2] = {0}; EWRAM_DATA static u8 sMonAnimTaskIdArray[2] = {0};
EWRAM_DATA u8 gAnimMoveTurn = 0; EWRAM_DATA u8 gAnimMoveTurn = 0;
EWRAM_DATA static u8 sAnimBackgroundFadeState = 0; EWRAM_DATA static u8 sAnimBackgroundFadeState = 0;
EWRAM_DATA static u16 sAnimMoveIndex = 0; // Set but unused. EWRAM_DATA u16 gAnimMoveIndex = 0; // Set but unused.
EWRAM_DATA u8 gBattleAnimAttacker = 0; EWRAM_DATA u8 gBattleAnimAttacker = 0;
EWRAM_DATA u8 gBattleAnimTarget = 0; EWRAM_DATA u8 gBattleAnimTarget = 0;
EWRAM_DATA u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT] = {0};
@ -1130,12 +1131,12 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] =
{gBattleAnimSpriteGfx_Pencil, 0x0200, ANIM_TAG_PENCIL}, {gBattleAnimSpriteGfx_Pencil, 0x0200, ANIM_TAG_PENCIL},
{gBattleAnimSpriteGfx_AirWave, 0x0100, ANIM_TAG_AIR_WAVE}, {gBattleAnimSpriteGfx_AirWave, 0x0100, ANIM_TAG_AIR_WAVE},
{gBattleAnimSpriteGfx_Orb, 0x0200, ANIM_TAG_ORB}, {gBattleAnimSpriteGfx_Orb, 0x0200, ANIM_TAG_ORB},
#ifdef NEW_SWORD_PARTICLE #if NEW_SWORD_PARTICLE
{gBattleAnimSpriteGfx_NewSword, 0x0400, ANIM_TAG_SWORD}, {gBattleAnimSpriteGfx_NewSword, 0x0400, ANIM_TAG_SWORD},
#else #else
{gBattleAnimSpriteGfx_Sword, 0x0400, ANIM_TAG_SWORD}, {gBattleAnimSpriteGfx_Sword, 0x0400, ANIM_TAG_SWORD},
#endif #endif
#ifdef NEW_LEECH_SEED_PARTICLE #if NEW_LEECH_SEED_PARTICLE
{gBattleAnimSpriteGfx_NewLeechSeed, 0x0180, ANIM_TAG_SEED}, {gBattleAnimSpriteGfx_NewLeechSeed, 0x0180, ANIM_TAG_SEED},
#else #else
{gBattleAnimSpriteGfx_Seed, 0x0180, ANIM_TAG_SEED}, {gBattleAnimSpriteGfx_Seed, 0x0180, ANIM_TAG_SEED},
@ -1162,7 +1163,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] =
{gBattleAnimSpriteGfx_HitDuplicate, 0x0A00, ANIM_TAG_HIT_DUPLICATE}, {gBattleAnimSpriteGfx_HitDuplicate, 0x0A00, ANIM_TAG_HIT_DUPLICATE},
{gBattleAnimSpriteGfx_Leer, 0x0A00, ANIM_TAG_LEER}, {gBattleAnimSpriteGfx_Leer, 0x0A00, ANIM_TAG_LEER},
{gBattleAnimSpriteGfx_BlueBurst, 0x0A00, ANIM_TAG_BLUE_BURST}, {gBattleAnimSpriteGfx_BlueBurst, 0x0A00, ANIM_TAG_BLUE_BURST},
#ifdef NEW_EMBER_PARTICLES #if NEW_EMBER_PARTICLES
{gBattleAnimSpriteGfx_NewEmbers, 0x0A00, ANIM_TAG_SMALL_EMBER}, {gBattleAnimSpriteGfx_NewEmbers, 0x0A00, ANIM_TAG_SMALL_EMBER},
#else #else
{gBattleAnimSpriteGfx_SmallEmber, 0x0A00, ANIM_TAG_SMALL_EMBER}, {gBattleAnimSpriteGfx_SmallEmber, 0x0A00, ANIM_TAG_SMALL_EMBER},
@ -1195,7 +1196,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] =
{gBattleAnimSpriteGfx_RedFist, 0x0200, ANIM_TAG_RED_FIST}, {gBattleAnimSpriteGfx_RedFist, 0x0200, ANIM_TAG_RED_FIST},
{gBattleAnimSpriteGfx_SlamHit, 0x1000, ANIM_TAG_SLAM_HIT}, {gBattleAnimSpriteGfx_SlamHit, 0x1000, ANIM_TAG_SLAM_HIT},
{gBattleAnimSpriteGfx_Ring, 0x0180, ANIM_TAG_RING}, {gBattleAnimSpriteGfx_Ring, 0x0180, ANIM_TAG_RING},
#ifdef NEW_ROCKS_PARTICLE #if NEW_ROCKS_PARTICLE
{gBattleAnimSpriteGfx_NewRocks, 0x0C00, ANIM_TAG_ROCKS}, {gBattleAnimSpriteGfx_NewRocks, 0x0C00, ANIM_TAG_ROCKS},
#else #else
{gBattleAnimSpriteGfx_Rocks, 0x0C00, ANIM_TAG_ROCKS}, {gBattleAnimSpriteGfx_Rocks, 0x0C00, ANIM_TAG_ROCKS},
@ -1204,7 +1205,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] =
{gBattleAnimSpriteGfx_YellowUnk2, 0x0040, ANIM_TAG_YELLOW_UNK_2}, {gBattleAnimSpriteGfx_YellowUnk2, 0x0040, ANIM_TAG_YELLOW_UNK_2},
{gBattleAnimSpriteGfx_AirSlash, 0x0180, ANIM_TAG_AIR_SLASH}, {gBattleAnimSpriteGfx_AirSlash, 0x0180, ANIM_TAG_AIR_SLASH},
{gBattleAnimSpriteGfx_SpinningGreenOrbs, 0x0800, ANIM_TAG_SPINNING_GREEN_ORBS}, {gBattleAnimSpriteGfx_SpinningGreenOrbs, 0x0800, ANIM_TAG_SPINNING_GREEN_ORBS},
#ifdef NEW_LEAF_PARTICLE #if NEW_LEAF_PARTICLE
{gBattleAnimSpriteGfx_NewLeaf, 0x0480, ANIM_TAG_LEAF}, {gBattleAnimSpriteGfx_NewLeaf, 0x0480, ANIM_TAG_LEAF},
#else #else
{gBattleAnimSpriteGfx_Leaf, 0x0480, ANIM_TAG_LEAF}, {gBattleAnimSpriteGfx_Leaf, 0x0480, ANIM_TAG_LEAF},
@ -1272,7 +1273,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] =
{gBattleAnimSpriteGfx_Shock2, 0x0600, ANIM_TAG_SHOCK_2}, {gBattleAnimSpriteGfx_Shock2, 0x0600, ANIM_TAG_SHOCK_2},
{gBattleAnimSpriteGfx_ClosingEye2, 0x0200, ANIM_TAG_CLOSING_EYE_2}, {gBattleAnimSpriteGfx_ClosingEye2, 0x0200, ANIM_TAG_CLOSING_EYE_2},
{gBattleAnimSpriteGfx_MetalBall, 0x0080, ANIM_TAG_METAL_BALL}, {gBattleAnimSpriteGfx_MetalBall, 0x0080, ANIM_TAG_METAL_BALL},
#ifdef NEW_SUBSTITUTE_PARTICLE #if NEW_SUBSTITUTE_PARTICLE
{gBattleAnimSpriteGfx_NewSubstituteFront, 0x0200, ANIM_TAG_MONSTER_DOLL}, {gBattleAnimSpriteGfx_NewSubstituteFront, 0x0200, ANIM_TAG_MONSTER_DOLL},
#else #else
{gBattleAnimSpriteGfx_MonsterDoll, 0x0200, ANIM_TAG_MONSTER_DOLL}, {gBattleAnimSpriteGfx_MonsterDoll, 0x0200, ANIM_TAG_MONSTER_DOLL},
@ -1288,7 +1289,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] =
{gBattleAnimSpriteGfx_CircleImpact, 0x0020, ANIM_TAG_CIRCLE_IMPACT}, {gBattleAnimSpriteGfx_CircleImpact, 0x0020, ANIM_TAG_CIRCLE_IMPACT},
{gBattleAnimSpriteGfx_Scratch, 0x0a00, ANIM_TAG_SCRATCH}, {gBattleAnimSpriteGfx_Scratch, 0x0a00, ANIM_TAG_SCRATCH},
{gBattleAnimSpriteGfx_Cut, 0x0800, ANIM_TAG_CUT}, {gBattleAnimSpriteGfx_Cut, 0x0800, ANIM_TAG_CUT},
#ifdef NEW_TEETH_PARTICLE #if NEW_TEETH_PARTICLE
{gBattleAnimSpriteGfx_NewTeeth, 0x0800, ANIM_TAG_SHARP_TEETH}, {gBattleAnimSpriteGfx_NewTeeth, 0x0800, ANIM_TAG_SHARP_TEETH},
#else #else
{gBattleAnimSpriteGfx_SharpTeeth, 0x0800, ANIM_TAG_SHARP_TEETH}, {gBattleAnimSpriteGfx_SharpTeeth, 0x0800, ANIM_TAG_SHARP_TEETH},
@ -1296,7 +1297,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] =
{gBattleAnimSpriteGfx_RainbowRings, 0x00c0, ANIM_TAG_RAINBOW_RINGS}, {gBattleAnimSpriteGfx_RainbowRings, 0x00c0, ANIM_TAG_RAINBOW_RINGS},
{gBattleAnimSpriteGfx_IceCrystals, 0x01c0, ANIM_TAG_ICE_CRYSTALS}, {gBattleAnimSpriteGfx_IceCrystals, 0x01c0, ANIM_TAG_ICE_CRYSTALS},
{gBattleAnimSpriteGfx_IceSpikes, 0x0100, ANIM_TAG_ICE_SPIKES}, {gBattleAnimSpriteGfx_IceSpikes, 0x0100, ANIM_TAG_ICE_SPIKES},
#ifdef NEW_HANDS_FEET_PARTICLE #if NEW_HANDS_FEET_PARTICLE
{gBattleAnimSpriteGfx_NewHandsAndFeet, 0x0800, ANIM_TAG_HANDS_AND_FEET}, {gBattleAnimSpriteGfx_NewHandsAndFeet, 0x0800, ANIM_TAG_HANDS_AND_FEET},
#else #else
{gBattleAnimSpriteGfx_HandsAndFeet, 0x0800, ANIM_TAG_HANDS_AND_FEET}, {gBattleAnimSpriteGfx_HandsAndFeet, 0x0800, ANIM_TAG_HANDS_AND_FEET},
@ -1309,7 +1310,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] =
{gBattleAnimSpriteGfx_WaterOrb, 0x0200, ANIM_TAG_WATER_ORB}, {gBattleAnimSpriteGfx_WaterOrb, 0x0200, ANIM_TAG_WATER_ORB},
{gBattleAnimSpriteGfx_PoisonBubble, 0x0180, ANIM_TAG_POISON_BUBBLE}, {gBattleAnimSpriteGfx_PoisonBubble, 0x0180, ANIM_TAG_POISON_BUBBLE},
{gBattleAnimSpriteGfx_ToxicBubble, 0x0400, ANIM_TAG_TOXIC_BUBBLE}, {gBattleAnimSpriteGfx_ToxicBubble, 0x0400, ANIM_TAG_TOXIC_BUBBLE},
#ifdef NEW_SPIKES_PARTICLE #if NEW_SPIKES_PARTICLE
{gBattleAnimSpriteGfx_NewSpikes, 0x0080, ANIM_TAG_SPIKES}, {gBattleAnimSpriteGfx_NewSpikes, 0x0080, ANIM_TAG_SPIKES},
#else #else
{gBattleAnimSpriteGfx_Spikes, 0x0080, ANIM_TAG_SPIKES}, {gBattleAnimSpriteGfx_Spikes, 0x0080, ANIM_TAG_SPIKES},
@ -1317,7 +1318,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] =
{gBattleAnimSpriteGfx_HornHit2, 0x0100, ANIM_TAG_HORN_HIT_2}, {gBattleAnimSpriteGfx_HornHit2, 0x0100, ANIM_TAG_HORN_HIT_2},
{gBattleAnimSpriteGfx_AirWave2, 0x0100, ANIM_TAG_AIR_WAVE_2}, {gBattleAnimSpriteGfx_AirWave2, 0x0100, ANIM_TAG_AIR_WAVE_2},
{gBattleAnimSpriteGfx_SmallBubbles, 0x0140, ANIM_TAG_SMALL_BUBBLES}, {gBattleAnimSpriteGfx_SmallBubbles, 0x0140, ANIM_TAG_SMALL_BUBBLES},
#ifdef NEW_FLY_BUBBLE_PARTICLE #if NEW_FLY_BUBBLE_PARTICLE
{gBattleAnimSpriteGfx_NewFly, 0x0800, ANIM_TAG_ROUND_SHADOW}, {gBattleAnimSpriteGfx_NewFly, 0x0800, ANIM_TAG_ROUND_SHADOW},
#else #else
{gBattleAnimSpriteGfx_RoundShadow, 0x0800, ANIM_TAG_ROUND_SHADOW}, {gBattleAnimSpriteGfx_RoundShadow, 0x0800, ANIM_TAG_ROUND_SHADOW},
@ -1352,7 +1353,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] =
{gBattleAnimSpriteGfx_FocusEnergy, 0x0400, ANIM_TAG_FOCUS_ENERGY}, {gBattleAnimSpriteGfx_FocusEnergy, 0x0400, ANIM_TAG_FOCUS_ENERGY},
{gBattleAnimSpriteGfx_SphereToCube, 0x0a00, ANIM_TAG_SPHERE_TO_CUBE}, {gBattleAnimSpriteGfx_SphereToCube, 0x0a00, ANIM_TAG_SPHERE_TO_CUBE},
{gBattleAnimSpriteGfx_Tendrils, 0x1000, ANIM_TAG_TENDRILS}, {gBattleAnimSpriteGfx_Tendrils, 0x1000, ANIM_TAG_TENDRILS},
#ifdef NEW_MEAN_LOOK_PARTICLE #if NEW_MEAN_LOOK_PARTICLE
{gBattleAnimSpriteGfx_NewEye, 0x0800, ANIM_TAG_EYE}, {gBattleAnimSpriteGfx_NewEye, 0x0800, ANIM_TAG_EYE},
#else #else
{gBattleAnimSpriteGfx_Eye, 0x0800, ANIM_TAG_EYE}, {gBattleAnimSpriteGfx_Eye, 0x0800, ANIM_TAG_EYE},
@ -1368,7 +1369,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] =
{gBattleAnimSpriteGfx_Spiral, 0x0800, ANIM_TAG_SPIRAL}, {gBattleAnimSpriteGfx_Spiral, 0x0800, ANIM_TAG_SPIRAL},
{gBattleAnimSpriteGfx_SnoreZ, 0x0200, ANIM_TAG_SNORE_Z}, {gBattleAnimSpriteGfx_SnoreZ, 0x0200, ANIM_TAG_SNORE_Z},
{gBattleAnimSpriteGfx_Explosion, 0x0800, ANIM_TAG_EXPLOSION}, {gBattleAnimSpriteGfx_Explosion, 0x0800, ANIM_TAG_EXPLOSION},
#ifdef NEW_CURSE_NAIL_PARTICLE #if NEW_CURSE_NAIL_PARTICLE
{gBattleAnimSpriteGfx_NewNail, 0x0400, ANIM_TAG_NAIL}, {gBattleAnimSpriteGfx_NewNail, 0x0400, ANIM_TAG_NAIL},
#else #else
{gBattleAnimSpriteGfx_Nail, 0x0400, ANIM_TAG_NAIL}, {gBattleAnimSpriteGfx_Nail, 0x0400, ANIM_TAG_NAIL},
@ -1399,7 +1400,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] =
{gBattleAnimSpriteGfx_Roots, 0x0800, ANIM_TAG_ROOTS}, {gBattleAnimSpriteGfx_Roots, 0x0800, ANIM_TAG_ROOTS},
{gBattleAnimSpriteGfx_ItemBag, 0x0200, ANIM_TAG_ITEM_BAG}, {gBattleAnimSpriteGfx_ItemBag, 0x0200, ANIM_TAG_ITEM_BAG},
{gBattleAnimSpriteGfx_JaggedMusicNote, 0x0400, ANIM_TAG_JAGGED_MUSIC_NOTE}, {gBattleAnimSpriteGfx_JaggedMusicNote, 0x0400, ANIM_TAG_JAGGED_MUSIC_NOTE},
#ifdef NEW_BATON_PASS_BALL_PARTICLE #if NEW_BATON_PASS_BALL_PARTICLE
{gBattleAnimSpriteGfx_NewPokeball, 0x0080, ANIM_TAG_POKEBALL}, {gBattleAnimSpriteGfx_NewPokeball, 0x0080, ANIM_TAG_POKEBALL},
#else #else
{gBattleAnimSpriteGfx_Pokeball, 0x0080, ANIM_TAG_POKEBALL}, {gBattleAnimSpriteGfx_Pokeball, 0x0080, ANIM_TAG_POKEBALL},
@ -1418,7 +1419,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] =
{gBattleAnimSpriteGfx_PinkPetal, 0x0080, ANIM_TAG_PINK_PETAL}, {gBattleAnimSpriteGfx_PinkPetal, 0x0080, ANIM_TAG_PINK_PETAL},
{gBattleAnimSpriteGfx_PainSplit, 0x0180, ANIM_TAG_PAIN_SPLIT}, {gBattleAnimSpriteGfx_PainSplit, 0x0180, ANIM_TAG_PAIN_SPLIT},
{gBattleAnimSpriteGfx_Confetti, 0x0180, ANIM_TAG_CONFETTI}, {gBattleAnimSpriteGfx_Confetti, 0x0180, ANIM_TAG_CONFETTI},
#ifdef NEW_MORNING_SUN_STAR_PARTICLE #if NEW_MORNING_SUN_STAR_PARTICLE
{gBattleAnimSpriteGfx_NewGreenStar, 0x0200, ANIM_TAG_GREEN_STAR}, {gBattleAnimSpriteGfx_NewGreenStar, 0x0200, ANIM_TAG_GREEN_STAR},
#else #else
{gBattleAnimSpriteGfx_GreenStar, 0x0200, ANIM_TAG_GREEN_STAR}, {gBattleAnimSpriteGfx_GreenStar, 0x0200, ANIM_TAG_GREEN_STAR},
@ -1573,12 +1574,12 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
{gBattleAnimSpritePal_Pencil, ANIM_TAG_PENCIL}, {gBattleAnimSpritePal_Pencil, ANIM_TAG_PENCIL},
{gBattleAnimSpritePal_AirWave, ANIM_TAG_AIR_WAVE}, {gBattleAnimSpritePal_AirWave, ANIM_TAG_AIR_WAVE},
{gBattleAnimSpritePal_Orb, ANIM_TAG_ORB}, {gBattleAnimSpritePal_Orb, ANIM_TAG_ORB},
#ifdef NEW_SWORD_PARTICLE #if NEW_SWORD_PARTICLE
{gBattleAnimSpritePal_NewSword, ANIM_TAG_SWORD}, {gBattleAnimSpritePal_NewSword, ANIM_TAG_SWORD},
#else #else
{gBattleAnimSpritePal_Sword, ANIM_TAG_SWORD}, {gBattleAnimSpritePal_Sword, ANIM_TAG_SWORD},
#endif #endif
#ifdef NEW_LEECH_SEED_PARTICLE #if NEW_LEECH_SEED_PARTICLE
{gBattleAnimSpritePal_NewLeechSeed, ANIM_TAG_SEED}, {gBattleAnimSpritePal_NewLeechSeed, ANIM_TAG_SEED},
#else #else
{gBattleAnimSpritePal_Seed, ANIM_TAG_SEED}, {gBattleAnimSpritePal_Seed, ANIM_TAG_SEED},
@ -1596,7 +1597,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
{gBattleAnimSpritePal_BlackSmoke, ANIM_TAG_BLACK_BALL}, {gBattleAnimSpritePal_BlackSmoke, ANIM_TAG_BLACK_BALL},
{gBattleAnimSpritePal_Conversion, ANIM_TAG_CONVERSION}, {gBattleAnimSpritePal_Conversion, ANIM_TAG_CONVERSION},
{gBattleAnimSpritePal_Glass, ANIM_TAG_GLASS}, {gBattleAnimSpritePal_Glass, ANIM_TAG_GLASS},
#ifdef NEW_HORN_ATTACK_PARTICLE #if NEW_HORN_ATTACK_PARTICLE
{gBattleAnimSpritePal_NewHornHit, ANIM_TAG_HORN_HIT}, {gBattleAnimSpritePal_NewHornHit, ANIM_TAG_HORN_HIT},
#else #else
{gBattleAnimSpritePal_HornHit, ANIM_TAG_HORN_HIT}, {gBattleAnimSpritePal_HornHit, ANIM_TAG_HORN_HIT},
@ -1609,7 +1610,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
{gBattleAnimSpritePal_HitDuplicate, ANIM_TAG_HIT_DUPLICATE}, {gBattleAnimSpritePal_HitDuplicate, ANIM_TAG_HIT_DUPLICATE},
{gBattleAnimSpritePal_Leer, ANIM_TAG_LEER}, {gBattleAnimSpritePal_Leer, ANIM_TAG_LEER},
{gBattleAnimSpritePal_BlueBurst, ANIM_TAG_BLUE_BURST}, {gBattleAnimSpritePal_BlueBurst, ANIM_TAG_BLUE_BURST},
#ifdef NEW_EMBER_PARTICLES #if NEW_EMBER_PARTICLES
{gBattleAnimSpritePal_NewEmbers, ANIM_TAG_SMALL_EMBER}, {gBattleAnimSpritePal_NewEmbers, ANIM_TAG_SMALL_EMBER},
#else #else
{gBattleAnimSpritePal_SmallEmber, ANIM_TAG_SMALL_EMBER}, {gBattleAnimSpritePal_SmallEmber, ANIM_TAG_SMALL_EMBER},
@ -1642,7 +1643,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
{gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_RED_FIST}, {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_RED_FIST},
{gBattleAnimSpritePal_SlamHit, ANIM_TAG_SLAM_HIT}, {gBattleAnimSpritePal_SlamHit, ANIM_TAG_SLAM_HIT},
{gBattleAnimSpritePal_Ring, ANIM_TAG_RING}, {gBattleAnimSpritePal_Ring, ANIM_TAG_RING},
#ifdef NEW_ROCKS_PARTICLE #if NEW_ROCKS_PARTICLE
{gBattleAnimSpritePal_NewRocks, ANIM_TAG_ROCKS}, {gBattleAnimSpritePal_NewRocks, ANIM_TAG_ROCKS},
#else #else
{gBattleAnimSpritePal_Rocks, ANIM_TAG_ROCKS}, {gBattleAnimSpritePal_Rocks, ANIM_TAG_ROCKS},
@ -1651,7 +1652,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
{gBattleAnimSpritePal_YellowUnk2, ANIM_TAG_YELLOW_UNK_2}, {gBattleAnimSpritePal_YellowUnk2, ANIM_TAG_YELLOW_UNK_2},
{gBattleAnimSpritePal_AirSlash, ANIM_TAG_AIR_SLASH}, {gBattleAnimSpritePal_AirSlash, ANIM_TAG_AIR_SLASH},
{gBattleAnimSpritePal_SpinningGreenOrbs, ANIM_TAG_SPINNING_GREEN_ORBS}, {gBattleAnimSpritePal_SpinningGreenOrbs, ANIM_TAG_SPINNING_GREEN_ORBS},
#ifdef NEW_LEAF_PARTICLE #if NEW_LEAF_PARTICLE
{gBattleAnimSpritePal_NewLeaf, ANIM_TAG_LEAF}, {gBattleAnimSpritePal_NewLeaf, ANIM_TAG_LEAF},
#else #else
{gBattleAnimSpritePal_Leaf, ANIM_TAG_LEAF}, {gBattleAnimSpritePal_Leaf, ANIM_TAG_LEAF},
@ -1719,7 +1720,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
{gBattleAnimSpritePal_Shock2, ANIM_TAG_SHOCK_2}, {gBattleAnimSpritePal_Shock2, ANIM_TAG_SHOCK_2},
{gBattleAnimSpritePal_ClosingEye2, ANIM_TAG_CLOSING_EYE_2}, {gBattleAnimSpritePal_ClosingEye2, ANIM_TAG_CLOSING_EYE_2},
{gBattleAnimSpritePal_MetalBall, ANIM_TAG_METAL_BALL}, {gBattleAnimSpritePal_MetalBall, ANIM_TAG_METAL_BALL},
#ifdef NEW_SUBSTITUTE_PARTICLE #if NEW_SUBSTITUTE_PARTICLE
{gBattleAnimSpritePal_NewSubstituteFront, ANIM_TAG_MONSTER_DOLL}, {gBattleAnimSpritePal_NewSubstituteFront, ANIM_TAG_MONSTER_DOLL},
#else #else
{gBattleAnimSpritePal_MonsterDoll, ANIM_TAG_MONSTER_DOLL}, {gBattleAnimSpritePal_MonsterDoll, ANIM_TAG_MONSTER_DOLL},
@ -1731,7 +1732,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
{gBattleAnimSpritePal_Tongue, ANIM_TAG_TONGUE}, {gBattleAnimSpritePal_Tongue, ANIM_TAG_TONGUE},
{gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE}, {gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE},
{gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE_2}, {gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE_2},
#ifdef NEW_IMPACT_PALETTE #if NEW_IMPACT_PALETTE
{gBattleAnimSpritePal_NewImpact, ANIM_TAG_IMPACT}, {gBattleAnimSpritePal_NewImpact, ANIM_TAG_IMPACT},
#else #else
{gBattleAnimSpritePal_Impact, ANIM_TAG_IMPACT}, {gBattleAnimSpritePal_Impact, ANIM_TAG_IMPACT},
@ -1739,7 +1740,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
{gBattleAnimSpritePal_CircleImpact, ANIM_TAG_CIRCLE_IMPACT}, {gBattleAnimSpritePal_CircleImpact, ANIM_TAG_CIRCLE_IMPACT},
{gBattleAnimSpritePal_Impact, ANIM_TAG_SCRATCH}, {gBattleAnimSpritePal_Impact, ANIM_TAG_SCRATCH},
{gBattleAnimSpritePal_Impact, ANIM_TAG_CUT}, {gBattleAnimSpritePal_Impact, ANIM_TAG_CUT},
#ifdef NEW_TEETH_PARTICLE #if NEW_TEETH_PARTICLE
{gBattleAnimSpritePal_NewTeeth, ANIM_TAG_SHARP_TEETH}, {gBattleAnimSpritePal_NewTeeth, ANIM_TAG_SHARP_TEETH},
#else #else
{gBattleAnimSpritePal_SharpTeeth, ANIM_TAG_SHARP_TEETH}, {gBattleAnimSpritePal_SharpTeeth, ANIM_TAG_SHARP_TEETH},
@ -1747,7 +1748,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
{gBattleAnimSpritePal_RainbowRings, ANIM_TAG_RAINBOW_RINGS}, {gBattleAnimSpritePal_RainbowRings, ANIM_TAG_RAINBOW_RINGS},
{gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_CRYSTALS}, {gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_CRYSTALS},
{gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_SPIKES}, {gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_SPIKES},
#ifdef NEW_HANDS_FEET_PARTICLE #if NEW_HANDS_FEET_PARTICLE
{gBattleAnimSpritePal_NewHandsAndFeet, ANIM_TAG_HANDS_AND_FEET}, {gBattleAnimSpritePal_NewHandsAndFeet, ANIM_TAG_HANDS_AND_FEET},
#else #else
{gBattleAnimSpritePal_HandsAndFeet, ANIM_TAG_HANDS_AND_FEET}, {gBattleAnimSpritePal_HandsAndFeet, ANIM_TAG_HANDS_AND_FEET},
@ -1760,7 +1761,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
{gBattleAnimSpritePal_WaterImpact, ANIM_TAG_WATER_ORB}, {gBattleAnimSpritePal_WaterImpact, ANIM_TAG_WATER_ORB},
{gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_POISON_BUBBLE}, {gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_POISON_BUBBLE},
{gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_TOXIC_BUBBLE}, {gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_TOXIC_BUBBLE},
#ifdef NEW_SPIKES_PARTICLE #if NEW_SPIKES_PARTICLE
{gBattleAnimSpritePal_NewSpikes, ANIM_TAG_SPIKES}, {gBattleAnimSpritePal_NewSpikes, ANIM_TAG_SPIKES},
#else #else
{gBattleAnimSpritePal_Spikes, ANIM_TAG_SPIKES}, {gBattleAnimSpritePal_Spikes, ANIM_TAG_SPIKES},
@ -1768,7 +1769,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
{gBattleAnimSpritePal_HornHit2, ANIM_TAG_HORN_HIT_2}, {gBattleAnimSpritePal_HornHit2, ANIM_TAG_HORN_HIT_2},
{gBattleAnimSpritePal_AirWave2, ANIM_TAG_AIR_WAVE_2}, {gBattleAnimSpritePal_AirWave2, ANIM_TAG_AIR_WAVE_2},
{gBattleAnimSpritePal_SmallBubbles, ANIM_TAG_SMALL_BUBBLES}, {gBattleAnimSpritePal_SmallBubbles, ANIM_TAG_SMALL_BUBBLES},
#ifdef NEW_FLY_BUBBLE_PARTICLE #if NEW_FLY_BUBBLE_PARTICLE
{gBattleAnimSpritePal_NewFly, ANIM_TAG_ROUND_SHADOW}, {gBattleAnimSpritePal_NewFly, ANIM_TAG_ROUND_SHADOW},
#else #else
{gBattleAnimSpritePal_RoundShadow, ANIM_TAG_ROUND_SHADOW}, {gBattleAnimSpritePal_RoundShadow, ANIM_TAG_ROUND_SHADOW},
@ -1803,7 +1804,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
{gBattleAnimSpritePal_FocusEnergy, ANIM_TAG_FOCUS_ENERGY}, {gBattleAnimSpritePal_FocusEnergy, ANIM_TAG_FOCUS_ENERGY},
{gBattleAnimSpritePal_SphereToCube, ANIM_TAG_SPHERE_TO_CUBE}, {gBattleAnimSpritePal_SphereToCube, ANIM_TAG_SPHERE_TO_CUBE},
{gBattleAnimSpritePal_Tendrils, ANIM_TAG_TENDRILS}, {gBattleAnimSpritePal_Tendrils, ANIM_TAG_TENDRILS},
#ifdef NEW_MEAN_LOOK_PARTICLE #if NEW_MEAN_LOOK_PARTICLE
{gBattleAnimSpritePal_NewEye, ANIM_TAG_EYE}, {gBattleAnimSpritePal_NewEye, ANIM_TAG_EYE},
#else #else
{gBattleAnimSpritePal_Eye, ANIM_TAG_EYE}, {gBattleAnimSpritePal_Eye, ANIM_TAG_EYE},
@ -1846,7 +1847,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
{gBattleAnimSpritePal_Roots, ANIM_TAG_ROOTS}, {gBattleAnimSpritePal_Roots, ANIM_TAG_ROOTS},
{gBattleAnimSpritePal_ItemBag, ANIM_TAG_ITEM_BAG}, {gBattleAnimSpritePal_ItemBag, ANIM_TAG_ITEM_BAG},
{gBattleAnimSpritePal_JaggedMusicNote, ANIM_TAG_JAGGED_MUSIC_NOTE}, {gBattleAnimSpritePal_JaggedMusicNote, ANIM_TAG_JAGGED_MUSIC_NOTE},
#ifdef NEW_BATON_PASS_BALL_PARTICLE #if NEW_BATON_PASS_BALL_PARTICLE
{gBattleAnimSpritePal_NewPokeball, ANIM_TAG_POKEBALL}, {gBattleAnimSpritePal_NewPokeball, ANIM_TAG_POKEBALL},
#else #else
{gBattleAnimSpritePal_Pokeball, ANIM_TAG_POKEBALL}, {gBattleAnimSpritePal_Pokeball, ANIM_TAG_POKEBALL},
@ -1865,7 +1866,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
{gBattleAnimSpritePal_PinkPetal, ANIM_TAG_PINK_PETAL}, {gBattleAnimSpritePal_PinkPetal, ANIM_TAG_PINK_PETAL},
{gBattleAnimSpritePal_PainSplit, ANIM_TAG_PAIN_SPLIT}, {gBattleAnimSpritePal_PainSplit, ANIM_TAG_PAIN_SPLIT},
{gBattleAnimSpritePal_Confetti, ANIM_TAG_CONFETTI}, {gBattleAnimSpritePal_Confetti, ANIM_TAG_CONFETTI},
#ifdef NEW_MORNING_SUN_STAR_PARTICLE #if NEW_MORNING_SUN_STAR_PARTICLE
{gBattleAnimSpritePal_NewGreenStar, ANIM_TAG_GREEN_STAR}, {gBattleAnimSpritePal_NewGreenStar, ANIM_TAG_GREEN_STAR},
#else #else
{gBattleAnimSpritePal_GreenStar, ANIM_TAG_GREEN_STAR}, {gBattleAnimSpritePal_GreenStar, ANIM_TAG_GREEN_STAR},
@ -2175,7 +2176,7 @@ void ClearBattleAnimationVars(void)
sMonAnimTaskIdArray[1] = 0xFF; sMonAnimTaskIdArray[1] = 0xFF;
gAnimMoveTurn = 0; gAnimMoveTurn = 0;
sAnimBackgroundFadeState = 0; sAnimBackgroundFadeState = 0;
sAnimMoveIndex = 0; gAnimMoveIndex = 0;
gBattleAnimAttacker = 0; gBattleAnimAttacker = 0;
gBattleAnimTarget = 0; gBattleAnimTarget = 0;
gAnimCustomPanning = 0; gAnimCustomPanning = 0;
@ -2211,9 +2212,9 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo
} }
if (!isMoveAnim) if (!isMoveAnim)
sAnimMoveIndex = 0; gAnimMoveIndex = 0;
else else
sAnimMoveIndex = tableId; gAnimMoveIndex = tableId;
for (i = 0; i < ANIM_ARGS_COUNT; i++) for (i = 0; i < ANIM_ARGS_COUNT; i++)
gBattleAnimArgs[i] = 0; gBattleAnimArgs[i] = 0;

View File

@ -9,13 +9,9 @@ static void AnimLeechLifeNeedle(struct Sprite *);
static void AnimTranslateWebThread(struct Sprite *); static void AnimTranslateWebThread(struct Sprite *);
static void AnimTranslateWebThread_Step(struct Sprite *); static void AnimTranslateWebThread_Step(struct Sprite *);
static void AnimStringWrap(struct Sprite *); static void AnimStringWrap(struct Sprite *);
static void AnimStringWrap_Step(struct Sprite *);
static void AnimSpiderWeb(struct Sprite *);
static void AnimSpiderWeb_Step(struct Sprite *); static void AnimSpiderWeb_Step(struct Sprite *);
static void AnimSpiderWeb_End(struct Sprite *); static void AnimSpiderWeb_End(struct Sprite *);
static void AnimTranslateStinger(struct Sprite *); static void AnimTranslateStinger(struct Sprite *);
static void AnimMissileArc(struct Sprite *);
static void AnimMissileArc_Step(struct Sprite *);
static void AnimTailGlowOrb(struct Sprite *); static void AnimTailGlowOrb(struct Sprite *);
static const union AffineAnimCmd sAffineAnim_MegahornHorn_0[] = static const union AffineAnimCmd sAffineAnim_MegahornHorn_0[] =
@ -307,7 +303,7 @@ static void AnimStringWrap(struct Sprite *sprite)
sprite->callback = AnimStringWrap_Step; sprite->callback = AnimStringWrap_Step;
} }
static void AnimStringWrap_Step(struct Sprite *sprite) void AnimStringWrap_Step(struct Sprite *sprite)
{ {
if (++sprite->data[0] == 3) if (++sprite->data[0] == 3)
{ {
@ -324,7 +320,7 @@ static void AnimStringWrap_Step(struct Sprite *sprite)
// arg0: x // arg0: x
// arg1: y // arg1: y
// arg2: targets both // arg2: targets both
static void AnimSpiderWeb(struct Sprite *sprite) void AnimSpiderWeb(struct Sprite *sprite)
{ {
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0));
@ -432,7 +428,7 @@ static void AnimTranslateStinger(struct Sprite *sprite)
// arg 3: target y pixel offset // arg 3: target y pixel offset
// arg 4: duration // arg 4: duration
// arg 5: wave amplitude // arg 5: wave amplitude
static void AnimMissileArc(struct Sprite *sprite) void AnimMissileArc(struct Sprite *sprite)
{ {
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, 1);
@ -449,7 +445,7 @@ static void AnimMissileArc(struct Sprite *sprite)
sprite->invisible = TRUE; sprite->invisible = TRUE;
} }
static void AnimMissileArc_Step(struct Sprite *sprite) void AnimMissileArc_Step(struct Sprite *sprite)
{ {
sprite->invisible = FALSE; sprite->invisible = FALSE;

View File

@ -10,9 +10,6 @@
#include "constants/rgb.h" #include "constants/rgb.h"
static void sub_81138D4(struct Sprite *); static void sub_81138D4(struct Sprite *);
static void AnimBite(struct Sprite *);
static void AnimTearDrop(struct Sprite *);
static void AnimClawSlash(struct Sprite *);
static void AnimTask_AttackerFadeToInvisible_Step(u8); static void AnimTask_AttackerFadeToInvisible_Step(u8);
static void AnimTask_AttackerFadeFromInvisible_Step(u8); static void AnimTask_AttackerFadeFromInvisible_Step(u8);
static void sub_8113950(struct Sprite *); static void sub_8113950(struct Sprite *);
@ -134,7 +131,7 @@ static const union AffineAnimCmd sAffineAnim_TearDrop_1[] =
AFFINEANIMCMD_END, AFFINEANIMCMD_END,
}; };
static const union AffineAnimCmd *const sAffineAnims_TearDrop[] = const union AffineAnimCmd *const gAffineAnims_TearDrop[] =
{ {
sAffineAnim_TearDrop_0, sAffineAnim_TearDrop_0,
sAffineAnim_TearDrop_1, sAffineAnim_TearDrop_1,
@ -147,7 +144,7 @@ const struct SpriteTemplate gTearDropSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjNormal_16x16, .oam = &gOamData_AffineNormal_ObjNormal_16x16,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_TearDrop, .affineAnims = gAffineAnims_TearDrop,
.callback = AnimTearDrop, .callback = AnimTearDrop,
}; };
@ -171,7 +168,7 @@ static const union AnimCmd sAnim_ClawSlash_1[] =
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd *const sAnims_ClawSlash[] = const union AnimCmd *const gAnims_ClawSlash[] =
{ {
sAnim_ClawSlash_0, sAnim_ClawSlash_0,
sAnim_ClawSlash_1, sAnim_ClawSlash_1,
@ -182,7 +179,7 @@ const struct SpriteTemplate gClawSlashSpriteTemplate =
.tileTag = ANIM_TAG_CLAW_SLASH, .tileTag = ANIM_TAG_CLAW_SLASH,
.paletteTag = ANIM_TAG_CLAW_SLASH, .paletteTag = ANIM_TAG_CLAW_SLASH,
.oam = &gOamData_AffineOff_ObjNormal_32x32, .oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = sAnims_ClawSlash, .anims = gAnims_ClawSlash,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimClawSlash, .callback = AnimClawSlash,
@ -397,7 +394,7 @@ static void sub_8113950(struct Sprite *sprite)
} }
// Move sprite inward for Bite/Crunch and Clamp // Move sprite inward for Bite/Crunch and Clamp
static void AnimBite(struct Sprite *sprite) void AnimBite(struct Sprite *sprite)
{ {
sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.x += gBattleAnimArgs[0];
sprite->pos1.y += gBattleAnimArgs[1]; sprite->pos1.y += gBattleAnimArgs[1];
@ -429,7 +426,7 @@ static void AnimBite_Step2(struct Sprite *sprite)
} }
// Launches a tear drop away from the battler. Used by Fake Tears // Launches a tear drop away from the battler. Used by Fake Tears
static void AnimTearDrop(struct Sprite *sprite) void AnimTearDrop(struct Sprite *sprite)
{ {
u8 battler; u8 battler;
s8 xOffset; s8 xOffset;
@ -883,7 +880,7 @@ void sub_8114470(u8 taskId)
} }
// Animates a deep slash from a claw. Used by Metal Claw, Dragon Claw, and Crush Claw // Animates a deep slash from a claw. Used by Metal Claw, Dragon Claw, and Crush Claw
static void AnimClawSlash(struct Sprite *sprite) void AnimClawSlash(struct Sprite *sprite)
{ {
sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.x += gBattleAnimArgs[0];
sprite->pos1.y += gBattleAnimArgs[1]; sprite->pos1.y += gBattleAnimArgs[1];

View File

@ -6,11 +6,7 @@
#include "constants/rgb.h" #include "constants/rgb.h"
static void AnimOutrageFlame(struct Sprite *); static void AnimOutrageFlame(struct Sprite *);
static void AnimDragonRageFirePlume(struct Sprite *);
static void AnimDragonFireToTarget(struct Sprite *);
static void AnimDragonDanceOrb(struct Sprite *);
static void AnimDragonDanceOrb_Step(struct Sprite *); static void AnimDragonDanceOrb_Step(struct Sprite *);
static void AnimOverheatFlame(struct Sprite *);
static void AnimOverheatFlame_Step(struct Sprite *); static void AnimOverheatFlame_Step(struct Sprite *);
static void AnimTask_DragonDanceWaver_Step(u8); static void AnimTask_DragonDanceWaver_Step(u8);
static void sub_8113574(struct Task *); static void sub_8113574(struct Task *);
@ -62,7 +58,7 @@ static const union AnimCmd sAnim_DragonBreathFire_1[] =
ANIMCMD_JUMP(0), ANIMCMD_JUMP(0),
}; };
static const union AnimCmd *const sAnims_DragonBreathFire[] = const union AnimCmd *const gAnims_DragonBreathFire[] =
{ {
sAnim_DragonBreathFire_0, sAnim_DragonBreathFire_0,
sAnim_DragonBreathFire_1, sAnim_DragonBreathFire_1,
@ -82,7 +78,7 @@ static const union AffineAnimCmd sAffineAnim_DragonBreathFire_1[] =
AFFINEANIMCMD_END, AFFINEANIMCMD_END,
}; };
static const union AffineAnimCmd *const sAffineAnims_DragonBreathFire[] = const union AffineAnimCmd *const gAffineAnims_DragonBreathFire[] =
{ {
sAffineAnim_DragonBreathFire_0, sAffineAnim_DragonBreathFire_0,
sAffineAnim_DragonBreathFire_1, sAffineAnim_DragonBreathFire_1,
@ -93,9 +89,9 @@ const struct SpriteTemplate gDragonBreathFireSpriteTemplate =
.tileTag = ANIM_TAG_SMALL_EMBER, .tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER,
.oam = &gOamData_AffineDouble_ObjNormal_32x32, .oam = &gOamData_AffineDouble_ObjNormal_32x32,
.anims = sAnims_DragonBreathFire, .anims = gAnims_DragonBreathFire,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_DragonBreathFire, .affineAnims = gAffineAnims_DragonBreathFire,
.callback = AnimDragonFireToTarget, .callback = AnimDragonFireToTarget,
}; };
@ -109,7 +105,7 @@ static const union AnimCmd sAnim_DragonRageFirePlume[] =
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd *const sAnims_DragonRageFirePlume[] = const union AnimCmd *const gAnims_DragonRageFirePlume[] =
{ {
sAnim_DragonRageFirePlume, sAnim_DragonRageFirePlume,
}; };
@ -119,7 +115,7 @@ const struct SpriteTemplate gDragonRageFirePlumeSpriteTemplate =
.tileTag = ANIM_TAG_FIRE_PLUME, .tileTag = ANIM_TAG_FIRE_PLUME,
.paletteTag = ANIM_TAG_FIRE_PLUME, .paletteTag = ANIM_TAG_FIRE_PLUME,
.oam = &gOamData_AffineOff_ObjNormal_32x32, .oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = sAnims_DragonRageFirePlume, .anims = gAnims_DragonRageFirePlume,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimDragonRageFirePlume, .callback = AnimDragonRageFirePlume,
@ -133,7 +129,7 @@ static const union AnimCmd sAnim_DragonRageFire[] =
ANIMCMD_JUMP(0), ANIMCMD_JUMP(0),
}; };
static const union AnimCmd *const sAnims_DragonRageFire[] = const union AnimCmd *const gAnims_DragonRageFire[] =
{ {
sAnim_DragonRageFire, sAnim_DragonRageFire,
sAnim_DragonRageFire, sAnim_DragonRageFire,
@ -151,7 +147,7 @@ static const union AffineAnimCmd sAffineAnim_DragonRageFire_1[] =
AFFINEANIMCMD_END, AFFINEANIMCMD_END,
}; };
static const union AffineAnimCmd *const sAffineAnims_DragonRageFire[] = const union AffineAnimCmd *const gAffineAnims_DragonRageFire[] =
{ {
sAffineAnim_DragonRageFire_0, sAffineAnim_DragonRageFire_0,
sAffineAnim_DragonRageFire_1, sAffineAnim_DragonRageFire_1,
@ -162,9 +158,9 @@ const struct SpriteTemplate gDragonRageFireSpitSpriteTemplate =
.tileTag = ANIM_TAG_SMALL_EMBER, .tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER,
.oam = &gOamData_AffineDouble_ObjNormal_32x32, .oam = &gOamData_AffineDouble_ObjNormal_32x32,
.anims = sAnims_DragonRageFire, .anims = gAnims_DragonRageFire,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_DragonRageFire, .affineAnims = gAffineAnims_DragonRageFire,
.callback = AnimDragonFireToTarget, .callback = AnimDragonFireToTarget,
}; };
@ -371,7 +367,7 @@ static void sub_8113100(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
} }
static void AnimDragonRageFirePlume(struct Sprite *sprite) void AnimDragonRageFirePlume(struct Sprite *sprite)
{ {
if (gBattleAnimArgs[0] == 0) if (gBattleAnimArgs[0] == 0)
{ {
@ -391,7 +387,7 @@ static void AnimDragonRageFirePlume(struct Sprite *sprite)
} }
// For Dragon Breath and Dragon Rage // For Dragon Breath and Dragon Rage
static void AnimDragonFireToTarget(struct Sprite *sprite) void AnimDragonFireToTarget(struct Sprite *sprite)
{ {
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
StartSpriteAffineAnim(sprite, 1); StartSpriteAffineAnim(sprite, 1);
@ -399,7 +395,7 @@ static void AnimDragonFireToTarget(struct Sprite *sprite)
sub_8113100(sprite); sub_8113100(sprite);
} }
static void AnimDragonDanceOrb(struct Sprite *sprite) void AnimDragonDanceOrb(struct Sprite *sprite)
{ {
u16 r5; u16 r5;
u16 r0; u16 r0;
@ -546,7 +542,7 @@ static void sub_8113574(struct Task *task)
task->data[5] = (task->data[5] + 9) & 0xFF; task->data[5] = (task->data[5] + 9) & 0xFF;
} }
static void AnimOverheatFlame(struct Sprite *sprite) void AnimOverheatFlame(struct Sprite *sprite)
{ {
int r6 = (gBattleAnimArgs[2] * 3) / 5; int r6 = (gBattleAnimArgs[2] * 3) / 5;
int i; int i;

View File

@ -15,23 +15,17 @@
#include "util.h" #include "util.h"
#include "constants/rgb.h" #include "constants/rgb.h"
#include "constants/songs.h" #include "constants/songs.h"
#include "constants/moves.h"
EWRAM_DATA s16 gUnknown_0203A0F8[4] = {0}; EWRAM_DATA s16 gUnknown_0203A0F8[4] = {0};
static void AnimMovePowderParticle(struct Sprite *);
static void AnimMovePowderParticle_Step(struct Sprite *); static void AnimMovePowderParticle_Step(struct Sprite *);
static void AnimSolarbeamBigOrb(struct Sprite *);
static void AnimSolarbeamSmallOrb(struct Sprite *); static void AnimSolarbeamSmallOrb(struct Sprite *);
static void AnimSolarbeamSmallOrb_Step(struct Sprite *); static void AnimSolarbeamSmallOrb_Step(struct Sprite *);
static void AnimAbsorptionOrb(struct Sprite *);
static void AnimAbsorptionOrb_Step(struct Sprite *); static void AnimAbsorptionOrb_Step(struct Sprite *);
static void AnimHyperBeamOrb(struct Sprite *);
static void AnimHyperBeamOrb_Step(struct Sprite *); static void AnimHyperBeamOrb_Step(struct Sprite *);
static void AnimSporeParticle(struct Sprite *);
static void AnimSporeParticle_Step(struct Sprite *); static void AnimSporeParticle_Step(struct Sprite *);
static void AnimPetalDanceBigFlower(struct Sprite *);
static void AnimPetalDanceBigFlower_Step(struct Sprite *); static void AnimPetalDanceBigFlower_Step(struct Sprite *);
static void AnimPetalDanceSmallFlower(struct Sprite *);
static void AnimPetalDanceSmallFlower_Step(struct Sprite *); static void AnimPetalDanceSmallFlower_Step(struct Sprite *);
static void AnimRazorLeafParticle(struct Sprite *); static void AnimRazorLeafParticle(struct Sprite *);
static void AnimRazorLeafParticle_Step1(struct Sprite *); static void AnimRazorLeafParticle_Step1(struct Sprite *);
@ -39,12 +33,10 @@ static void AnimRazorLeafParticle_Step2(struct Sprite *);
static void AnimLeechSeed(struct Sprite *); static void AnimLeechSeed(struct Sprite *);
static void AnimLeechSeed_Step(struct Sprite *); static void AnimLeechSeed_Step(struct Sprite *);
static void AnimLeechSeedSprouts(struct Sprite *); static void AnimLeechSeedSprouts(struct Sprite *);
static void AnimTranslateLinearSingleSineWave(struct Sprite *);
static void AnimTranslateLinearSingleSineWave_Step(struct Sprite *); static void AnimTranslateLinearSingleSineWave_Step(struct Sprite *);
static void AnimConstrictBinding(struct Sprite *); static void AnimConstrictBinding(struct Sprite *);
static void AnimConstrictBinding_Step1(struct Sprite *); static void AnimConstrictBinding_Step1(struct Sprite *);
static void AnimConstrictBinding_Step2(struct Sprite *); static void AnimConstrictBinding_Step2(struct Sprite *);
static void AnimMimicOrb(struct Sprite *);
static void AnimIngrainRoot(struct Sprite *); static void AnimIngrainRoot(struct Sprite *);
static void AnimFrenzyPlantRoot(struct Sprite *); static void AnimFrenzyPlantRoot(struct Sprite *);
static void AnimRootFlickerOut(struct Sprite *); static void AnimRootFlickerOut(struct Sprite *);
@ -62,11 +54,9 @@ static void AnimTrickBag_Step2(struct Sprite *);
static void AnimTrickBag_Step3(struct Sprite *); static void AnimTrickBag_Step3(struct Sprite *);
static void AnimFlyingParticle(struct Sprite *); static void AnimFlyingParticle(struct Sprite *);
static void AnimFlyingParticle_Step(struct Sprite *); static void AnimFlyingParticle_Step(struct Sprite *);
static void AnimNeedleArmSpike_Step(struct Sprite *);
static void sub_81009F8(struct Sprite *); static void sub_81009F8(struct Sprite *);
static void AnimWhipHit(struct Sprite *); static void AnimWhipHit(struct Sprite *);
static void sub_8100A94(struct Sprite *); static void sub_8100A94(struct Sprite *);
static void AnimCuttingSlice(struct Sprite *);
static void AnimAirCutterSlice(struct Sprite *); static void AnimAirCutterSlice(struct Sprite *);
static void AnimSlice_Step(struct Sprite *); static void AnimSlice_Step(struct Sprite *);
static void sub_8100E1C(struct Sprite *); static void sub_8100E1C(struct Sprite *);
@ -76,7 +66,6 @@ static void AnimProtect_Step(struct Sprite *);
static void AnimMilkBottle(struct Sprite *); static void AnimMilkBottle(struct Sprite *);
static void AnimMilkBottle_Step1(struct Sprite *); static void AnimMilkBottle_Step1(struct Sprite *);
static void AnimMilkBottle_Step2(struct Sprite *, int, int); static void AnimMilkBottle_Step2(struct Sprite *, int, int);
static void AnimGrantingStars(struct Sprite *);
static void AnimSparkingStars(struct Sprite *); static void AnimSparkingStars(struct Sprite *);
static void sub_8101440(struct Sprite *); static void sub_8101440(struct Sprite *);
static void sub_81014A0(struct Sprite *); static void sub_81014A0(struct Sprite *);
@ -105,11 +94,9 @@ static void AnimFalseSwipeSlice_Step1(struct Sprite *);
static void AnimFalseSwipeSlice_Step2(struct Sprite *); static void AnimFalseSwipeSlice_Step2(struct Sprite *);
static void AnimFalseSwipeSlice_Step3(struct Sprite *); static void AnimFalseSwipeSlice_Step3(struct Sprite *);
static void AnimFalseSwipePositionedSlice(struct Sprite *); static void AnimFalseSwipePositionedSlice(struct Sprite *);
static void AnimEndureEnergy(struct Sprite *);
static void AnimEndureEnergy_Step(struct Sprite *); static void AnimEndureEnergy_Step(struct Sprite *);
static void AnimSharpenSphere(struct Sprite *); static void AnimSharpenSphere(struct Sprite *);
static void AnimSharpenSphere_Step(struct Sprite *); static void AnimSharpenSphere_Step(struct Sprite *);
static void AnimConversion(struct Sprite *);
static void AnimConversion2(struct Sprite *); static void AnimConversion2(struct Sprite *);
static void AnimConversion2_Step(struct Sprite *); static void AnimConversion2_Step(struct Sprite *);
static void AnimMoon(struct Sprite *); static void AnimMoon(struct Sprite *);
@ -127,11 +114,8 @@ static void AnimFlyingMusicNotes_Step(struct Sprite *);
static void AnimBellyDrumHand(struct Sprite *); static void AnimBellyDrumHand(struct Sprite *);
static void AnimSlowFlyingMusicNotes(struct Sprite *); static void AnimSlowFlyingMusicNotes(struct Sprite *);
static void AnimSlowFlyingMusicNotes_Step(struct Sprite *); static void AnimSlowFlyingMusicNotes_Step(struct Sprite *);
static void AnimThoughtBubble(struct Sprite *);
static void AnimThoughtBubble_Step(struct Sprite *); static void AnimThoughtBubble_Step(struct Sprite *);
static void AnimMetronomeFinger(struct Sprite *);
static void AnimMetronomeFinger_Step(struct Sprite *); static void AnimMetronomeFinger_Step(struct Sprite *);
static void AnimFollowMeFinger(struct Sprite *);
static void AnimFollowMeFinger_Step1(struct Sprite *); static void AnimFollowMeFinger_Step1(struct Sprite *);
static void AnimFollowMeFinger_Step2(struct Sprite *); static void AnimFollowMeFinger_Step2(struct Sprite *);
static void AnimTauntFinger(struct Sprite *); static void AnimTauntFinger(struct Sprite *);
@ -2975,7 +2959,7 @@ static void AnimWoodHammerSmall(struct Sprite *sprite)
// arg 3: vertical movement speed (sub-pixel value) // arg 3: vertical movement speed (sub-pixel value)
// arg 4: wave amplitude // arg 4: wave amplitude
// arg 5: wave speed // arg 5: wave speed
static void AnimMovePowderParticle(struct Sprite* sprite) void AnimMovePowderParticle(struct Sprite* sprite)
{ {
sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.x += gBattleAnimArgs[0];
sprite->pos1.y += gBattleAnimArgs[1]; sprite->pos1.y += gBattleAnimArgs[1];
@ -3030,7 +3014,7 @@ void AnimPowerAbsorptionOrb(struct Sprite* sprite)
// arg 1: initial y pixel offset // arg 1: initial y pixel offset
// arg 2: duration // arg 2: duration
// arg 3: sprite anim number // arg 3: sprite anim number
static void AnimSolarbeamBigOrb(struct Sprite* sprite) void AnimSolarbeamBigOrb(struct Sprite* sprite)
{ {
InitSpritePosToAnimAttacker(sprite, TRUE); InitSpritePosToAnimAttacker(sprite, TRUE);
StartSpriteAnim(sprite, gBattleAnimArgs[3]); StartSpriteAnim(sprite, gBattleAnimArgs[3]);
@ -3050,11 +3034,20 @@ static void AnimSolarbeamBigOrb(struct Sprite* sprite)
static void AnimSolarbeamSmallOrb(struct Sprite* sprite) static void AnimSolarbeamSmallOrb(struct Sprite* sprite)
{ {
InitSpritePosToAnimAttacker(sprite, TRUE); InitSpritePosToAnimAttacker(sprite, TRUE);
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[1] = sprite->pos1.x; if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gAnimMoveIndex == MOVE_CORE_ENFORCER)
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); {
sprite->data[3] = sprite->pos1.y; CoreEnforcerLoadBeamTarget(sprite);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); }
else
{
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[1] = sprite->pos1.x;
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
}
InitAnimLinearTranslation(sprite); InitAnimLinearTranslation(sprite);
sprite->data[5] = gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[3];
sprite->callback = AnimSolarbeamSmallOrb_Step; sprite->callback = AnimSolarbeamSmallOrb_Step;
@ -3105,7 +3098,7 @@ void AnimTask_CreateSmallSolarbeamOrbs(u8 taskId)
// arg 1: initial y pixel offset // arg 1: initial y pixel offset
// arg 2: wave amplitude // arg 2: wave amplitude
// arg 3: wave period (lower means faster wave) // arg 3: wave period (lower means faster wave)
static void AnimAbsorptionOrb(struct Sprite* sprite) void AnimAbsorptionOrb(struct Sprite* sprite)
{ {
InitSpritePosToAnimTarget(sprite, TRUE); InitSpritePosToAnimTarget(sprite, TRUE);
sprite->data[0] = gBattleAnimArgs[3]; sprite->data[0] = gBattleAnimArgs[3];
@ -3124,7 +3117,7 @@ static void AnimAbsorptionOrb_Step(struct Sprite* sprite)
// Moves an orb in a wave-like fashion towards the target mon. The wave's // Moves an orb in a wave-like fashion towards the target mon. The wave's
// properties and the sprite anim are randomly determined. // properties and the sprite anim are randomly determined.
static void AnimHyperBeamOrb(struct Sprite* sprite) void AnimHyperBeamOrb(struct Sprite* sprite)
{ {
u16 speed; u16 speed;
u16 animNum = Random2(); u16 animNum = Random2();
@ -3515,7 +3508,7 @@ static void AnimLeechSeedSprouts(struct Sprite* sprite)
// arg 2: initial wave offset // arg 2: initial wave offset
// arg 3: duration // arg 3: duration
// arg 4: blend (0 = off, 1 = on) // arg 4: blend (0 = off, 1 = on)
static void AnimSporeParticle(struct Sprite* sprite) void AnimSporeParticle(struct Sprite* sprite)
{ {
InitSpritePosToAnimTarget(sprite, TRUE); InitSpritePosToAnimTarget(sprite, TRUE);
StartSpriteAnim(sprite, gBattleAnimArgs[4]); StartSpriteAnim(sprite, gBattleAnimArgs[4]);
@ -3577,7 +3570,7 @@ void AnimTask_SporeDoubleBattle(u8 taskId)
// arg 1: initial y pixel offset // arg 1: initial y pixel offset
// arg 2: target y pixel offset // arg 2: target y pixel offset
// arg 3: duration // arg 3: duration
static void AnimPetalDanceBigFlower(struct Sprite* sprite) void AnimPetalDanceBigFlower(struct Sprite* sprite)
{ {
InitSpritePosToAnimAttacker(sprite, FALSE); InitSpritePosToAnimAttacker(sprite, FALSE);
sprite->data[0] = gBattleAnimArgs[3]; sprite->data[0] = gBattleAnimArgs[3];
@ -3615,7 +3608,7 @@ static void AnimPetalDanceBigFlower_Step(struct Sprite* sprite)
// arg 1: initial y pixel offset // arg 1: initial y pixel offset
// arg 2: target y pixel offset // arg 2: target y pixel offset
// arg 3: duration // arg 3: duration
static void AnimPetalDanceSmallFlower(struct Sprite* sprite) void AnimPetalDanceSmallFlower(struct Sprite* sprite)
{ {
InitSpritePosToAnimAttacker(sprite, TRUE); InitSpritePosToAnimAttacker(sprite, TRUE);
sprite->data[0] = gBattleAnimArgs[3]; sprite->data[0] = gBattleAnimArgs[3];
@ -3713,7 +3706,7 @@ static void AnimRazorLeafParticle_Step2(struct Sprite* sprite)
// arg 4: translation duration // arg 4: translation duration
// arg 5: wave amplitude // arg 5: wave amplitude
// arg 6: target between double battle opponents (boolean) // arg 6: target between double battle opponents (boolean)
static void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) void AnimTranslateLinearSingleSineWave(struct Sprite* sprite)
{ {
InitSpritePosToAnimAttacker(sprite, TRUE); InitSpritePosToAnimAttacker(sprite, TRUE);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
@ -3944,7 +3937,7 @@ static void AnimTask_DuplicateAndShrinkToPos_Step2(u8 taskId)
// Moves an orb from the target mon to the attacking mon. // Moves an orb from the target mon to the attacking mon.
// arg 0: initial x pixel offset // arg 0: initial x pixel offset
// arg 1: initial y pixel offset // arg 1: initial y pixel offset
static void AnimMimicOrb(struct Sprite* sprite) void AnimMimicOrb(struct Sprite* sprite)
{ {
switch (sprite->data[0]) switch (sprite->data[0])
{ {
@ -4795,7 +4788,7 @@ void AnimNeedleArmSpike(struct Sprite* sprite)
} }
} }
static void AnimNeedleArmSpike_Step(struct Sprite* sprite) void AnimNeedleArmSpike_Step(struct Sprite* sprite)
{ {
if (sprite->data[0]) if (sprite->data[0])
{ {
@ -4862,7 +4855,7 @@ static void sub_8100A94(struct Sprite* sprite)
// arg 0: initial x pixel offset // arg 0: initial x pixel offset
// arg 1: initial y pixel offset // arg 1: initial y pixel offset
// arg 2: slice direction; 0 = right-to-left, 1 = left-to-right // arg 2: slice direction; 0 = right-to-left, 1 = left-to-right
static void AnimCuttingSlice(struct Sprite* sprite) void AnimCuttingSlice(struct Sprite* sprite)
{ {
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1);
@ -5198,7 +5191,7 @@ static void AnimMilkBottle_Step2(struct Sprite* sprite, int unk1, int unk2)
sprite->data[3] = 0; sprite->data[3] = 0;
} }
static void AnimGrantingStars(struct Sprite* sprite) void AnimGrantingStars(struct Sprite* sprite)
{ {
if (!gBattleAnimArgs[2]) if (!gBattleAnimArgs[2])
SetSpriteCoordsToAnimAttackerCoords(sprite); SetSpriteCoordsToAnimAttackerCoords(sprite);
@ -5847,7 +5840,7 @@ static void AnimFalseSwipeSlice_Step3(struct Sprite* sprite)
} }
} }
static void AnimEndureEnergy(struct Sprite* sprite) void AnimEndureEnergy(struct Sprite* sprite)
{ {
if (gBattleAnimArgs[0] == 0) if (gBattleAnimArgs[0] == 0)
{ {
@ -5915,7 +5908,7 @@ static void AnimSharpenSphere_Step(struct Sprite* sprite)
DestroyAnimSprite(sprite); DestroyAnimSprite(sprite);
} }
static void AnimConversion(struct Sprite* sprite) void AnimConversion(struct Sprite* sprite)
{ {
if (sprite->data[0] == 0) if (sprite->data[0] == 0)
{ {
@ -6538,7 +6531,7 @@ void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite)
sprite->pos1.y = GetBattlerSpriteCoord(battler, 3) - (s16)GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 4; sprite->pos1.y = GetBattlerSpriteCoord(battler, 3) - (s16)GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 4;
} }
static void AnimThoughtBubble(struct Sprite* sprite) void AnimThoughtBubble(struct Sprite* sprite)
{ {
u8 a; u8 a;
u8 battler; u8 battler;
@ -6566,7 +6559,7 @@ static void AnimThoughtBubble_Step(struct Sprite* sprite)
} }
} }
static void AnimMetronomeFinger(struct Sprite* sprite) void AnimMetronomeFinger(struct Sprite* sprite)
{ {
u8 battler; u8 battler;
if (gBattleAnimArgs[0] == 0) if (gBattleAnimArgs[0] == 0)
@ -6590,7 +6583,7 @@ static void AnimMetronomeFinger_Step(struct Sprite* sprite)
} }
} }
static void AnimFollowMeFinger(struct Sprite* sprite) void AnimFollowMeFinger(struct Sprite* sprite)
{ {
u8 battler; u8 battler;
if (gBattleAnimArgs[0] == 0) if (gBattleAnimArgs[0] == 0)

View File

@ -26,7 +26,6 @@ static void sub_8103680(struct Sprite *);
static void AnimKinesisZapEnergy(struct Sprite *); static void AnimKinesisZapEnergy(struct Sprite *);
static void AnimSwordsDanceBlade(struct Sprite *); static void AnimSwordsDanceBlade(struct Sprite *);
static void AnimSwordsDanceBlade_Step(struct Sprite *); static void AnimSwordsDanceBlade_Step(struct Sprite *);
static void AnimSonicBoomProjectile(struct Sprite *);
static void AnimAirWaveProjectile(struct Sprite *); static void AnimAirWaveProjectile(struct Sprite *);
static void AnimAirWaveProjectile_Step1(struct Sprite *sprite); static void AnimAirWaveProjectile_Step1(struct Sprite *sprite);
static void AnimAirWaveProjectile_Step2(struct Sprite *sprite); static void AnimAirWaveProjectile_Step2(struct Sprite *sprite);
@ -46,12 +45,9 @@ static void AnimGuillotinePincer_Step1(struct Sprite *);
static void AnimGuillotinePincer_Step2(struct Sprite *); static void AnimGuillotinePincer_Step2(struct Sprite *);
static void AnimGuillotinePincer_Step3(struct Sprite *); static void AnimGuillotinePincer_Step3(struct Sprite *);
static void AnimBreathPuff(struct Sprite *); static void AnimBreathPuff(struct Sprite *);
static void AnimAngerMark(struct Sprite *);
static void AnimPencil(struct Sprite *); static void AnimPencil(struct Sprite *);
static void AnimPencil_Step(struct Sprite *); static void AnimPencil_Step(struct Sprite *);
static void AnimBlendThinRing(struct Sprite *); static void AnimBlendThinRing(struct Sprite *);
static void AnimHyperVoiceRing(struct Sprite *);
static void AnimUproarRing(struct Sprite *);
static void AnimSoftBoiledEgg(struct Sprite *); static void AnimSoftBoiledEgg(struct Sprite *);
static void AnimSoftBoiledEgg_Step1(struct Sprite *); static void AnimSoftBoiledEgg_Step1(struct Sprite *);
static void AnimSoftBoiledEgg_Step2(struct Sprite *); static void AnimSoftBoiledEgg_Step2(struct Sprite *);
@ -67,9 +63,7 @@ static void AnimRedHeartProjectile(struct Sprite *);
static void AnimRedHeartProjectile_Step(struct Sprite *); static void AnimRedHeartProjectile_Step(struct Sprite *);
static void AnimRedHeartRising(struct Sprite *); static void AnimRedHeartRising(struct Sprite *);
static void AnimRedHeartRising_Step(struct Sprite *); static void AnimRedHeartRising_Step(struct Sprite *);
static void AnimOrbitFast(struct Sprite *);
static void AnimOrbitFast_Step(struct Sprite *); static void AnimOrbitFast_Step(struct Sprite *);
static void AnimOrbitScatter(struct Sprite *);
static void AnimOrbitScatter_Step(struct Sprite *); static void AnimOrbitScatter_Step(struct Sprite *);
static void AnimSpitUpOrb(struct Sprite *); static void AnimSpitUpOrb(struct Sprite *);
static void AnimSpitUpOrb_Step(struct Sprite *sprite); static void AnimSpitUpOrb_Step(struct Sprite *sprite);
@ -1523,7 +1517,7 @@ static void AnimSwordsDanceBlade_Step(struct Sprite *sprite)
// arg 2: target x pixel offset // arg 2: target x pixel offset
// arg 3: target y pixel offset // arg 3: target y pixel offset
// arg 4: duration // arg 4: duration
static void AnimSonicBoomProjectile(struct Sprite *sprite) void AnimSonicBoomProjectile(struct Sprite *sprite)
{ {
s16 targetXPos; s16 targetXPos;
s16 targetYPos; s16 targetYPos;
@ -2311,7 +2305,7 @@ static void AnimBreathPuff(struct Sprite *sprite)
// arg 0: target mon (0 = attacker, 1 = target) // arg 0: target mon (0 = attacker, 1 = target)
// arg 1: x pixel offset // arg 1: x pixel offset
// arg 2: y pixel offset // arg 2: y pixel offset
static void AnimAngerMark(struct Sprite *sprite) void AnimAngerMark(struct Sprite *sprite)
{ {
u8 battler; u8 battler;
if (!gBattleAnimArgs[0]) if (!gBattleAnimArgs[0])
@ -2621,7 +2615,7 @@ void sub_8105284(struct Sprite *sprite)
} }
} }
static void AnimHyperVoiceRing(struct Sprite *sprite) void AnimHyperVoiceRing(struct Sprite *sprite)
{ {
u16 r9 = 0; u16 r9 = 0;
u16 r6 = 0; u16 r6 = 0;
@ -2706,7 +2700,7 @@ static void AnimHyperVoiceRing(struct Sprite *sprite)
sprite->callback(sprite); sprite->callback(sprite);
} }
static void AnimUproarRing(struct Sprite *sprite) void AnimUproarRing(struct Sprite *sprite)
{ {
u8 index = IndexOfSpritePaletteTag(ANIM_TAG_THIN_RING); u8 index = IndexOfSpritePaletteTag(ANIM_TAG_THIN_RING);
if (index != 0xFF) if (index != 0xFF)
@ -3443,7 +3437,7 @@ static void AnimTask_ScaryFace_Step(u8 taskId)
// Used by MOVE_HIDDEN_POWER // Used by MOVE_HIDDEN_POWER
// arg 0: duration // arg 0: duration
// arg 1: initial wave offset // arg 1: initial wave offset
static void AnimOrbitFast(struct Sprite *sprite) void AnimOrbitFast(struct Sprite *sprite)
{ {
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
@ -3494,7 +3488,7 @@ static void AnimOrbitFast_Step(struct Sprite *sprite)
// Moves orbs away from the mon, based on where they are in their orbit. // Moves orbs away from the mon, based on where they are in their orbit.
// Used in MOVE_HIDDEN_POWER. // Used in MOVE_HIDDEN_POWER.
// arg 0: initial wave offset // arg 0: initial wave offset
static void AnimOrbitScatter(struct Sprite *sprite) void AnimOrbitScatter(struct Sprite *sprite)
{ {
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);

View File

@ -26,12 +26,10 @@
extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate; extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate;
static void AnimBlackSmoke(struct Sprite *);
static void AnimBlackSmoke_Step(struct Sprite *); static void AnimBlackSmoke_Step(struct Sprite *);
static void AnimWhiteHalo(struct Sprite *); static void AnimWhiteHalo(struct Sprite *);
static void AnimWhiteHalo_Step1(struct Sprite *); static void AnimWhiteHalo_Step1(struct Sprite *);
static void AnimWhiteHalo_Step2(struct Sprite *); static void AnimWhiteHalo_Step2(struct Sprite *);
static void AnimTealAlert(struct Sprite *);
static void AnimMeanLookEye(struct Sprite *); static void AnimMeanLookEye(struct Sprite *);
static void AnimMeanLookEye_Step1(struct Sprite *); static void AnimMeanLookEye_Step1(struct Sprite *);
static void AnimMeanLookEye_Step2(struct Sprite *); static void AnimMeanLookEye_Step2(struct Sprite *);
@ -63,7 +61,6 @@ static void AnimGreenStar_Step1(struct Sprite *);
static void AnimGreenStar_Step2(struct Sprite *); static void AnimGreenStar_Step2(struct Sprite *);
static void AnimGreenStar_Callback(struct Sprite *); static void AnimGreenStar_Callback(struct Sprite *);
static void AnimWeakFrustrationAngerMark(struct Sprite *); static void AnimWeakFrustrationAngerMark(struct Sprite *);
static void AnimSweetScentPetal(struct Sprite *);
static void AnimSweetScentPetal_Step(struct Sprite *); static void AnimSweetScentPetal_Step(struct Sprite *);
static void AnimPainSplitProjectile(struct Sprite *); static void AnimPainSplitProjectile(struct Sprite *);
static void AnimFlatterConfetti(struct Sprite *); static void AnimFlatterConfetti(struct Sprite *);
@ -90,7 +87,6 @@ static void AnimForesightMagnifyingGlass(struct Sprite *);
static void AnimForesightMagnifyingGlass_Step(struct Sprite *); static void AnimForesightMagnifyingGlass_Step(struct Sprite *);
static void AnimMeteorMashStar(struct Sprite *); static void AnimMeteorMashStar(struct Sprite *);
static void AnimMeteorMashStar_Step(struct Sprite *sprite); static void AnimMeteorMashStar_Step(struct Sprite *sprite);
static void AnimBlockX(struct Sprite *);
static void AnimBlockX_Step(struct Sprite *); static void AnimBlockX_Step(struct Sprite *);
static void sub_815FE80(struct Sprite *); static void sub_815FE80(struct Sprite *);
static void AnimKnockOffStrike(struct Sprite *); static void AnimKnockOffStrike(struct Sprite *);
@ -1224,7 +1220,7 @@ const struct SpriteTemplate gMegaSymbolSpriteTemplate =
.callback = AnimGhostStatusSprite, .callback = AnimGhostStatusSprite,
}; };
static void AnimBlackSmoke(struct Sprite *sprite) void AnimBlackSmoke(struct Sprite *sprite)
{ {
sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.x += gBattleAnimArgs[0];
sprite->pos1.y += gBattleAnimArgs[1]; sprite->pos1.y += gBattleAnimArgs[1];
@ -1289,7 +1285,7 @@ static void AnimWhiteHalo_Step2(struct Sprite *sprite)
DestroyAnimSprite(sprite); DestroyAnimSprite(sprite);
} }
static void AnimTealAlert(struct Sprite *sprite) void AnimTealAlert(struct Sprite *sprite)
{ {
u16 rotation; u16 rotation;
u8 x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); u8 x = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
@ -2843,7 +2839,7 @@ static void AnimTask_RockMonBackAndForth_Step(u8 taskId)
// arg 0: initial y pixel offset // arg 0: initial y pixel offset
// arg 1: sprite anim num // arg 1: sprite anim num
// arg 2: unused // arg 2: unused
static void AnimSweetScentPetal(struct Sprite *sprite) void AnimSweetScentPetal(struct Sprite *sprite)
{ {
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
{ {
@ -4855,7 +4851,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId)
// Moves down an X that flickers and disappears. // Moves down an X that flickers and disappears.
// No args. // No args.
static void AnimBlockX(struct Sprite *sprite) void AnimBlockX(struct Sprite *sprite)
{ {
s16 y; s16 y;

View File

@ -4,34 +4,28 @@
#include "trig.h" #include "trig.h"
#include "constants/songs.h" #include "constants/songs.h"
#include "sound.h" #include "sound.h"
#include "constants/moves.h"
static void AnimLightning(struct Sprite *); static void AnimLightning(struct Sprite *);
static void AnimLightning_Step(struct Sprite *); static void AnimLightning_Step(struct Sprite *);
static void sub_810A214(struct Sprite *); static void sub_810A214(struct Sprite *);
static void sub_810A258(struct Sprite *); static void sub_810A258(struct Sprite *);
static void sub_810A274(struct Sprite *); static void sub_810A274(struct Sprite *);
static void AnimSparkElectricity(struct Sprite *);
static void AnimZapCannonSpark(struct Sprite *);
static void AnimZapCannonSpark_Step(struct Sprite *); static void AnimZapCannonSpark_Step(struct Sprite *);
static void AnimThunderboltOrb(struct Sprite *); static void AnimThunderboltOrb(struct Sprite *);
static void AnimThunderboltOrb_Step(struct Sprite *); static void AnimThunderboltOrb_Step(struct Sprite *);
static void AnimSparkElectricityFlashing(struct Sprite *);
static void AnimSparkElectricityFlashing_Step(struct Sprite *); static void AnimSparkElectricityFlashing_Step(struct Sprite *);
static void AnimElectricity(struct Sprite *); static void AnimElectricity(struct Sprite *);
static void AnimTask_ElectricBolt_Step(u8 taskId); static void AnimTask_ElectricBolt_Step(u8 taskId);
static void AnimElectricBoltSegment(struct Sprite *); static void AnimElectricBoltSegment(struct Sprite *);
static void AnimThunderWave(struct Sprite *);
static void AnimThunderWave_Step(struct Sprite *); static void AnimThunderWave_Step(struct Sprite *);
static void AnimTask_ElectricChargingParticles_Step(u8 taskId); static void AnimTask_ElectricChargingParticles_Step(u8 taskId);
static void AnimElectricChargingParticles(struct Sprite *); static void AnimElectricChargingParticles(struct Sprite *);
static void AnimElectricChargingParticles_Step(struct Sprite *); static void AnimElectricChargingParticles_Step(struct Sprite *);
static void AnimGrowingChargeOrb(struct Sprite *);
static void AnimElectricPuff(struct Sprite *);
static void AnimVoltTackleOrbSlide(struct Sprite *); static void AnimVoltTackleOrbSlide(struct Sprite *);
static void AnimVoltTackleOrbSlide_Step(struct Sprite *); static void AnimVoltTackleOrbSlide_Step(struct Sprite *);
static bool8 sub_810B154(struct Task *task, u8 taskId); static bool8 sub_810B154(struct Task *task, u8 taskId);
static void AnimVoltTackleBolt(struct Sprite *); static void AnimVoltTackleBolt(struct Sprite *);
static void AnimGrowingShockWaveOrb(struct Sprite *);
static bool8 sub_810B430(struct Task *task, u8 taskId); static bool8 sub_810B430(struct Task *task, u8 taskId);
static void AnimShockWaveProgressingBolt(struct Sprite *); static void AnimShockWaveProgressingBolt(struct Sprite *);
static bool8 sub_810B614(struct Task *task, u8 taskId); static bool8 sub_810B614(struct Task *task, u8 taskId);
@ -144,7 +138,7 @@ static const union AffineAnimCmd sAffineAnim_FlashingSpark[] =
AFFINEANIMCMD_JUMP(0), AFFINEANIMCMD_JUMP(0),
}; };
static const union AffineAnimCmd *const sAffineAnims_FlashingSpark[] = const union AffineAnimCmd *const gAffineAnims_FlashingSpark[] =
{ {
sAffineAnim_FlashingSpark, sAffineAnim_FlashingSpark,
}; };
@ -156,7 +150,7 @@ const struct SpriteTemplate gZapCannonSparkSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjNormal_16x16, .oam = &gOamData_AffineNormal_ObjNormal_16x16,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_FlashingSpark, .affineAnims = gAffineAnims_FlashingSpark,
.callback = AnimZapCannonSpark, .callback = AnimZapCannonSpark,
}; };
@ -168,7 +162,7 @@ static const union AnimCmd sAnim_ThunderboltOrb[] =
ANIMCMD_JUMP(0), ANIMCMD_JUMP(0),
}; };
static const union AnimCmd *const sAnims_ThunderboltOrb[] = const union AnimCmd *const gAnims_ThunderboltOrb[] =
{ {
sAnim_ThunderboltOrb, sAnim_ThunderboltOrb,
}; };
@ -191,7 +185,7 @@ const struct SpriteTemplate gThunderboltOrbSpriteTemplate =
.tileTag = ANIM_TAG_SHOCK_3, .tileTag = ANIM_TAG_SHOCK_3,
.paletteTag = ANIM_TAG_SHOCK_3, .paletteTag = ANIM_TAG_SHOCK_3,
.oam = &gOamData_AffineNormal_ObjNormal_32x32, .oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = sAnims_ThunderboltOrb, .anims = gAnims_ThunderboltOrb,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_ThunderboltOrb, .affineAnims = sAffineAnims_ThunderboltOrb,
.callback = AnimThunderboltOrb, .callback = AnimThunderboltOrb,
@ -204,7 +198,7 @@ const struct SpriteTemplate gSparkElectricityFlashingSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjNormal_16x16, .oam = &gOamData_AffineNormal_ObjNormal_16x16,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_FlashingSpark, .affineAnims = gAffineAnims_FlashingSpark,
.callback = AnimSparkElectricityFlashing, .callback = AnimSparkElectricityFlashing,
}; };
@ -241,6 +235,17 @@ const struct SpriteTemplate gThunderWaveSpriteTemplate =
.callback = AnimThunderWave, .callback = AnimThunderWave,
}; };
const struct SpriteTemplate gAnchorShotChainTemplate =
{
.tileTag = ANIM_TAG_CHAIN_LINK,
.paletteTag = ANIM_TAG_CHAIN_LINK,
.oam = &gOamData_AffineOff_ObjNormal_32x16,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimThunderWave
};
static const s8 sElectricChargingParticleCoordOffsets[][2] = static const s8 sElectricChargingParticleCoordOffsets[][2] =
{ {
{ 58, -60}, { 58, -60},
@ -279,7 +284,7 @@ static const union AnimCmd sAnim_ElectricChargingParticles_1[] =
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd *const sAnims_ElectricChargingParticles[] = const union AnimCmd *const gAnims_ElectricChargingParticles[] =
{ {
sAnim_ElectricChargingParticles_0, sAnim_ElectricChargingParticles_0,
sAnim_ElectricChargingParticles_1, sAnim_ElectricChargingParticles_1,
@ -290,12 +295,23 @@ const struct SpriteTemplate gElectricChargingParticlesSpriteTemplate =
.tileTag = ANIM_TAG_ELECTRIC_ORBS, .tileTag = ANIM_TAG_ELECTRIC_ORBS,
.paletteTag = ANIM_TAG_ELECTRIC_ORBS, .paletteTag = ANIM_TAG_ELECTRIC_ORBS,
.oam = &gOamData_AffineOff_ObjNormal_8x8, .oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_ElectricChargingParticles, .anims = gAnims_ElectricChargingParticles,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy, .callback = SpriteCallbackDummy,
}; };
const struct SpriteTemplate gLightOfRuinGrayChargeTemplate =
{
.tileTag = ANIM_TAG_ELECTRIC_ORBS,
.paletteTag = ANIM_TAG_GUST,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = gAnims_ElectricChargingParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy
};
static const union AffineAnimCmd sAffineAnim_GrowingElectricOrb_0[] = static const union AffineAnimCmd sAffineAnim_GrowingElectricOrb_0[] =
{ {
AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0),
@ -326,7 +342,7 @@ static const union AffineAnimCmd sAffineAnim_GrowingElectricOrb_2[] =
AFFINEANIMCMD_END, AFFINEANIMCMD_END,
}; };
static const union AffineAnimCmd *const sAffineAnims_GrowingElectricOrb[] = const union AffineAnimCmd *const gAffineAnims_GrowingElectricOrb[] =
{ {
sAffineAnim_GrowingElectricOrb_0, sAffineAnim_GrowingElectricOrb_0,
sAffineAnim_GrowingElectricOrb_1, sAffineAnim_GrowingElectricOrb_1,
@ -340,7 +356,7 @@ const struct SpriteTemplate gGrowingChargeOrbSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjBlend_64x64, .oam = &gOamData_AffineNormal_ObjBlend_64x64,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_GrowingElectricOrb, .affineAnims = gAffineAnims_GrowingElectricOrb,
.callback = AnimGrowingChargeOrb, .callback = AnimGrowingChargeOrb,
}; };
@ -353,7 +369,7 @@ static const union AnimCmd sAnim_ElectricPuff[] =
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd *const sAnims_ElectricPuff[] = const union AnimCmd *const gAnims_ElectricPuff[] =
{ {
sAnim_ElectricPuff, sAnim_ElectricPuff,
}; };
@ -363,7 +379,7 @@ const struct SpriteTemplate gElectricPuffSpriteTemplate =
.tileTag = ANIM_TAG_ELECTRICITY, .tileTag = ANIM_TAG_ELECTRICITY,
.paletteTag = ANIM_TAG_ELECTRICITY, .paletteTag = ANIM_TAG_ELECTRICITY,
.oam = &gOamData_AffineOff_ObjNormal_32x32, .oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = sAnims_ElectricPuff, .anims = gAnims_ElectricPuff,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimElectricPuff, .callback = AnimElectricPuff,
@ -376,7 +392,7 @@ const struct SpriteTemplate gVoltTackleOrbSlideSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjBlend_64x64, .oam = &gOamData_AffineNormal_ObjBlend_64x64,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_GrowingElectricOrb, .affineAnims = gAffineAnims_GrowingElectricOrb,
.callback = AnimVoltTackleOrbSlide, .callback = AnimVoltTackleOrbSlide,
}; };
@ -441,7 +457,7 @@ const struct SpriteTemplate gGrowingShockWaveOrbSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjBlend_64x64, .oam = &gOamData_AffineNormal_ObjBlend_64x64,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_GrowingElectricOrb, .affineAnims = gAffineAnims_GrowingElectricOrb,
.callback = AnimGrowingShockWaveOrb, .callback = AnimGrowingShockWaveOrb,
}; };
@ -463,7 +479,7 @@ const struct SpriteTemplate gFlashCannonGrayChargeTemplate =
.oam = &gOamData_AffineNormal_ObjBlend_64x64, .oam = &gOamData_AffineNormal_ObjBlend_64x64,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_GrowingElectricOrb, .affineAnims = gAffineAnims_GrowingElectricOrb,
.callback = AnimGrowingChargeOrb .callback = AnimGrowingChargeOrb
}; };
@ -499,7 +515,7 @@ const struct SpriteTemplate gSeedFlareGreenChargeTemplate =
.oam = &gOamData_AffineNormal_ObjBlend_64x64, .oam = &gOamData_AffineNormal_ObjBlend_64x64,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_GrowingElectricOrb, .affineAnims = gAffineAnims_GrowingElectricOrb,
.callback = AnimGrowingChargeOrb .callback = AnimGrowingChargeOrb
}; };
@ -560,7 +576,7 @@ static void sub_810A274(struct Sprite *sprite)
sprite->callback = TranslateSpriteInCircleOverDuration; sprite->callback = TranslateSpriteInCircleOverDuration;
} }
static void AnimSparkElectricity(struct Sprite *sprite) void AnimSparkElectricity(struct Sprite *sprite)
{ {
u8 battler; u8 battler;
u32 matrixNum; u32 matrixNum;
@ -617,7 +633,7 @@ static void AnimSparkElectricity(struct Sprite *sprite)
sprite->callback = DestroyAnimSpriteAfterTimer; sprite->callback = DestroyAnimSpriteAfterTimer;
} }
static void AnimZapCannonSpark(struct Sprite *sprite) void AnimZapCannonSpark(struct Sprite *sprite)
{ {
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, 1);
sprite->data[0] = gBattleAnimArgs[3]; sprite->data[0] = gBattleAnimArgs[3];
@ -672,7 +688,7 @@ static void AnimThunderboltOrb(struct Sprite *sprite)
sprite->callback = AnimThunderboltOrb_Step; sprite->callback = AnimThunderboltOrb_Step;
} }
static void AnimSparkElectricityFlashing(struct Sprite *sprite) void AnimSparkElectricityFlashing(struct Sprite *sprite)
{ {
u8 battler; u8 battler;
@ -822,13 +838,17 @@ static void AnimElectricBoltSegment(struct Sprite *sprite)
} }
// The horizontal bands of electricity used in Thunder Wave // The horizontal bands of electricity used in Thunder Wave
static void AnimThunderWave(struct Sprite *sprite) void AnimThunderWave(struct Sprite *sprite)
{ {
u8 spriteId; u8 spriteId;
sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.x += gBattleAnimArgs[0];
sprite->pos1.y += gBattleAnimArgs[1]; sprite->pos1.y += gBattleAnimArgs[1];
spriteId = CreateSprite(&gThunderWaveSpriteTemplate, sprite->pos1.x + 32, sprite->pos1.y, sprite->subpriority); if (gAnimMoveIndex == MOVE_ANCHOR_SHOT)
spriteId = CreateSprite(&gAnchorShotChainTemplate, sprite->pos1.x + 32, sprite->pos1.y, sprite->subpriority);
else
spriteId = CreateSprite(&gThunderWaveSpriteTemplate, sprite->pos1.x + 32, sprite->pos1.y, sprite->subpriority);
gSprites[spriteId].oam.tileNum += 8; gSprites[spriteId].oam.tileNum += 8;
gAnimVisualTaskCount++; gAnimVisualTaskCount++;
gSprites[spriteId].callback = AnimThunderWave_Step; gSprites[spriteId].callback = AnimThunderWave_Step;
@ -884,7 +904,11 @@ static void AnimTask_ElectricChargingParticles_Step(u8 taskId)
{ {
u8 spriteId; u8 spriteId;
task->data[12] = 0; task->data[12] = 0;
spriteId = CreateSprite(&gElectricChargingParticlesSpriteTemplate, task->data[14], task->data[15], 2); if (gAnimMoveIndex == MOVE_FLASH_CANNON || gAnimMoveIndex == MOVE_STEEL_BEAM)
spriteId = CreateSprite(&gLightOfRuinGrayChargeTemplate, task->data[14], task->data[15], 2);
else
spriteId = CreateSprite(&gElectricChargingParticlesSpriteTemplate, task->data[14], task->data[15], 2);
if (spriteId != MAX_SPRITES) if (spriteId != MAX_SPRITES)
{ {
struct Sprite *sprite = &gSprites[spriteId]; struct Sprite *sprite = &gSprites[spriteId];
@ -936,7 +960,7 @@ static void AnimElectricChargingParticles(struct Sprite *sprite)
sprite->callback = AnimElectricChargingParticles_Step; sprite->callback = AnimElectricChargingParticles_Step;
} }
static void AnimGrowingChargeOrb(struct Sprite *sprite) void AnimGrowingChargeOrb(struct Sprite *sprite)
{ {
if (gBattleAnimArgs[0] == ANIM_ATTACKER) if (gBattleAnimArgs[0] == ANIM_ATTACKER)
{ {
@ -954,7 +978,7 @@ static void AnimGrowingChargeOrb(struct Sprite *sprite)
} }
// The quick electric burst at the end of Charge / during the Volt Tackle hit // The quick electric burst at the end of Charge / during the Volt Tackle hit
static void AnimElectricPuff(struct Sprite *sprite) void AnimElectricPuff(struct Sprite *sprite)
{ {
if (gBattleAnimArgs[0] == ANIM_ATTACKER) if (gBattleAnimArgs[0] == ANIM_ATTACKER)
{ {
@ -1174,7 +1198,7 @@ static void AnimVoltTackleBolt(struct Sprite *sprite)
} }
} }
static void AnimGrowingShockWaveOrb(struct Sprite *sprite) void AnimGrowingShockWaveOrb(struct Sprite *sprite)
{ {
switch (sprite->data[0]) switch (sprite->data[0])
{ {

View File

@ -8,21 +8,15 @@
static void unc_080B08A0(struct Sprite *); static void unc_080B08A0(struct Sprite *);
static void AnimSlideHandOrFootToTarget(struct Sprite *); static void AnimSlideHandOrFootToTarget(struct Sprite *);
static void AnimJumpKick(struct Sprite *);
static void AnimBasicFistOrFoot(struct Sprite *);
static void AnimFistOrFootRandomPos(struct Sprite *); static void AnimFistOrFootRandomPos(struct Sprite *);
static void AnimFistOrFootRandomPos_Step(struct Sprite *); static void AnimFistOrFootRandomPos_Step(struct Sprite *);
static void AnimCrossChopHand(struct Sprite *); static void AnimCrossChopHand(struct Sprite *);
static void AnimCrossChopHand_Step(struct Sprite *); static void AnimCrossChopHand_Step(struct Sprite *);
static void AnimSlidingKick(struct Sprite *); static void AnimSlidingKick(struct Sprite *);
static void AnimSlidingKick_Step(struct Sprite *); static void AnimSlidingKick_Step(struct Sprite *);
static void AnimSpinningKickOrPunch(struct Sprite *);
static void AnimStompFoot(struct Sprite *);
static void AnimStompFoot_Step(struct Sprite *); static void AnimStompFoot_Step(struct Sprite *);
static void AnimStompFoot_End(struct Sprite *); static void AnimStompFoot_End(struct Sprite *);
static void AnimDizzyPunchDuck(struct Sprite *);
static void AnimBrickBreakWall(struct Sprite *); static void AnimBrickBreakWall(struct Sprite *);
static void AnimBrickBreakWall_Step(struct Sprite *);
static void AnimBrickBreakWallShard(struct Sprite *); static void AnimBrickBreakWallShard(struct Sprite *);
static void AnimBrickBreakWallShard_Step(struct Sprite *); static void AnimBrickBreakWallShard_Step(struct Sprite *);
static void AnimSuperpowerOrb(struct Sprite *); static void AnimSuperpowerOrb(struct Sprite *);
@ -33,9 +27,7 @@ static void AnimSuperpowerRock_Step2(struct Sprite *);
static void AnimSuperpowerFireball(struct Sprite *); static void AnimSuperpowerFireball(struct Sprite *);
static void AnimArmThrustHit(struct Sprite *); static void AnimArmThrustHit(struct Sprite *);
static void AnimArmThrustHit_Step(struct Sprite *sprite); static void AnimArmThrustHit_Step(struct Sprite *sprite);
static void AnimRevengeScratch(struct Sprite *);
static void AnimFocusPunchFist(struct Sprite *); static void AnimFocusPunchFist(struct Sprite *);
static void AnimSpinningKickOrPunchFinish(struct Sprite *);
static void AnimForcePalm(struct Sprite *sprite); static void AnimForcePalm(struct Sprite *sprite);
extern struct SpriteTemplate gBasicHitSplatSpriteTemplate; extern struct SpriteTemplate gBasicHitSplatSpriteTemplate;
@ -82,7 +74,7 @@ static const union AnimCmd sAnim_CrossChopHand_1[] =
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd *const sAnims_HandOrFoot[] = const union AnimCmd *const gAnims_HandOrFoot[] =
{ {
sAnim_HandOrFoot, sAnim_HandOrFoot,
}; };
@ -104,7 +96,7 @@ const struct SpriteTemplate gKarateChopSpriteTemplate =
.tileTag = ANIM_TAG_HANDS_AND_FEET, .tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineOff_ObjNormal_32x32, .oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = sAnims_HandOrFoot, .anims = gAnims_HandOrFoot,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimSlideHandOrFootToTarget, .callback = AnimSlideHandOrFootToTarget,
@ -115,7 +107,7 @@ const struct SpriteTemplate gJumpKickSpriteTemplate =
.tileTag = ANIM_TAG_HANDS_AND_FEET, .tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineOff_ObjNormal_32x32, .oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = sAnims_HandOrFoot, .anims = gAnims_HandOrFoot,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimJumpKick, .callback = AnimJumpKick,
@ -126,7 +118,7 @@ const struct SpriteTemplate gFistFootSpriteTemplate =
.tileTag = ANIM_TAG_HANDS_AND_FEET, .tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineOff_ObjNormal_32x32, .oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = sAnims_HandOrFoot, .anims = gAnims_HandOrFoot,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimBasicFistOrFoot, .callback = AnimBasicFistOrFoot,
@ -137,7 +129,7 @@ const struct SpriteTemplate gFistFootRandomPosSpriteTemplate =
.tileTag = ANIM_TAG_HANDS_AND_FEET, .tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineOff_ObjNormal_32x32, .oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = sAnims_HandOrFoot, .anims = gAnims_HandOrFoot,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimFistOrFootRandomPos, .callback = AnimFistOrFootRandomPos,
@ -172,7 +164,7 @@ static const union AffineAnimCmd sAffineAnim_SpinningHandOrFoot[] =
AFFINEANIMCMD_JUMP(1), AFFINEANIMCMD_JUMP(1),
}; };
static const union AffineAnimCmd *const sAffineAnims_SpinningHandOrFoot[] = const union AffineAnimCmd *const gAffineAnims_SpinningHandOrFoot[] =
{ {
sAffineAnim_SpinningHandOrFoot, sAffineAnim_SpinningHandOrFoot,
}; };
@ -183,9 +175,9 @@ const struct SpriteTemplate gSpinningHandOrFootSpriteTemplate =
.tileTag = ANIM_TAG_HANDS_AND_FEET, .tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineDouble_ObjNormal_32x32, .oam = &gOamData_AffineDouble_ObjNormal_32x32,
.anims = sAnims_HandOrFoot, .anims = gAnims_HandOrFoot,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_SpinningHandOrFoot, .affineAnims = gAffineAnims_SpinningHandOrFoot,
.callback = AnimSpinningKickOrPunch, .callback = AnimSpinningKickOrPunch,
}; };
@ -196,7 +188,7 @@ static const union AffineAnimCmd sAffineAnim_MegaPunchKick[] =
AFFINEANIMCMD_JUMP(1), AFFINEANIMCMD_JUMP(1),
}; };
static const union AffineAnimCmd *const sAffineAnims_MegaPunchKick[] = const union AffineAnimCmd *const gAffineAnims_MegaPunchKick[] =
{ {
sAffineAnim_MegaPunchKick, sAffineAnim_MegaPunchKick,
}; };
@ -206,9 +198,9 @@ const struct SpriteTemplate gMegaPunchKickSpriteTemplate =
.tileTag = ANIM_TAG_HANDS_AND_FEET, .tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineDouble_ObjNormal_32x32, .oam = &gOamData_AffineDouble_ObjNormal_32x32,
.anims = sAnims_HandOrFoot, .anims = gAnims_HandOrFoot,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_MegaPunchKick, .affineAnims = gAffineAnims_MegaPunchKick,
.callback = AnimSpinningKickOrPunch, .callback = AnimSpinningKickOrPunch,
}; };
@ -308,7 +300,7 @@ const struct SpriteTemplate gArmThrustHandSpriteTemplate =
.tileTag = ANIM_TAG_HANDS_AND_FEET, .tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineOff_ObjNormal_32x32, .oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = sAnims_HandOrFoot, .anims = gAnims_HandOrFoot,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimArmThrustHit, .callback = AnimArmThrustHit,
@ -377,7 +369,7 @@ static const union AnimCmd sAnim_RevengeBigScratch_2[] =
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd *const sAnims_RevengeBigScratch[] = const union AnimCmd *const gAnims_RevengeBigScratch[] =
{ {
sAnim_RevengeBigScratch_0, sAnim_RevengeBigScratch_0,
sAnim_RevengeBigScratch_1, sAnim_RevengeBigScratch_1,
@ -389,7 +381,7 @@ const struct SpriteTemplate gRevengeBigScratchSpriteTemplate =
.tileTag = ANIM_TAG_PURPLE_SWIPE, .tileTag = ANIM_TAG_PURPLE_SWIPE,
.paletteTag = ANIM_TAG_PURPLE_SWIPE, .paletteTag = ANIM_TAG_PURPLE_SWIPE,
.oam = &gOamData_AffineOff_ObjNormal_64x64, .oam = &gOamData_AffineOff_ObjNormal_64x64,
.anims = sAnims_RevengeBigScratch, .anims = gAnims_RevengeBigScratch,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimRevengeScratch, .callback = AnimRevengeScratch,
@ -412,7 +404,7 @@ const struct SpriteTemplate gFocusPunchFistSpriteTemplate =
.tileTag = ANIM_TAG_HANDS_AND_FEET, .tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineDouble_ObjNormal_32x32, .oam = &gOamData_AffineDouble_ObjNormal_32x32,
.anims = sAnims_HandOrFoot, .anims = gAnims_HandOrFoot,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_FocusPunchFist, .affineAnims = sAffineAnims_FocusPunchFist,
.callback = AnimFocusPunchFist, .callback = AnimFocusPunchFist,
@ -423,7 +415,7 @@ const struct SpriteTemplate gPalmSpriteTemplate =
.tileTag = ANIM_TAG_PURPLE_HAND_OUTLINE, .tileTag = ANIM_TAG_PURPLE_HAND_OUTLINE,
.paletteTag = ANIM_TAG_PURPLE_HAND_OUTLINE, .paletteTag = ANIM_TAG_PURPLE_HAND_OUTLINE,
.oam = &gOamData_AffineOff_ObjNormal_32x32, .oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = sAnims_HandOrFoot, .anims = gAnims_HandOrFoot,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimBasicFistOrFoot, .callback = AnimBasicFistOrFoot,
@ -520,7 +512,7 @@ static void AnimSlideHandOrFootToTarget(struct Sprite *sprite)
AnimTravelDiagonally(sprite); AnimTravelDiagonally(sprite);
} }
static void AnimJumpKick(struct Sprite *sprite) void AnimJumpKick(struct Sprite *sprite)
{ {
if (IsContest()) if (IsContest())
{ {
@ -538,7 +530,7 @@ static void AnimJumpKick(struct Sprite *sprite)
// arg 2: duration // arg 2: duration
// arg 3: ? (todo: related to initial pixel offsets) // arg 3: ? (todo: related to initial pixel offsets)
// arg 4: anim num // arg 4: anim num
static void AnimBasicFistOrFoot(struct Sprite *sprite) void AnimBasicFistOrFoot(struct Sprite *sprite)
{ {
StartSpriteAnim(sprite, gBattleAnimArgs[4]); StartSpriteAnim(sprite, gBattleAnimArgs[4]);
@ -698,7 +690,7 @@ static void AnimSlidingKick_Step(struct Sprite *sprite)
// arg 1: initial y pixel offset // arg 1: initial y pixel offset
// arg 2: anim num // arg 2: anim num
// arg 3: spin duration // arg 3: spin duration
static void AnimSpinningKickOrPunch(struct Sprite *sprite) void AnimSpinningKickOrPunch(struct Sprite *sprite)
{ {
InitSpritePosToAnimTarget(sprite, TRUE); InitSpritePosToAnimTarget(sprite, TRUE);
StartSpriteAnim(sprite, gBattleAnimArgs[2]); StartSpriteAnim(sprite, gBattleAnimArgs[2]);
@ -708,7 +700,7 @@ static void AnimSpinningKickOrPunch(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, AnimSpinningKickOrPunchFinish); StoreSpriteCallbackInData6(sprite, AnimSpinningKickOrPunchFinish);
} }
static void AnimSpinningKickOrPunchFinish(struct Sprite *sprite) void AnimSpinningKickOrPunchFinish(struct Sprite *sprite)
{ {
StartSpriteAffineAnim(sprite, 0); StartSpriteAffineAnim(sprite, 0);
sprite->affineAnimPaused = 1; sprite->affineAnimPaused = 1;
@ -722,7 +714,7 @@ static void AnimSpinningKickOrPunchFinish(struct Sprite *sprite)
// arg 0: initial x pixel offset // arg 0: initial x pixel offset
// arg 1: initial y pixel offset // arg 1: initial y pixel offset
// arg 2: initial wait duration // arg 2: initial wait duration
static void AnimStompFoot(struct Sprite *sprite) void AnimStompFoot(struct Sprite *sprite)
{ {
InitSpritePosToAnimTarget(sprite, TRUE); InitSpritePosToAnimTarget(sprite, TRUE);
sprite->data[0] = gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[2];
@ -751,7 +743,7 @@ static void AnimStompFoot_End(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
} }
static void AnimDizzyPunchDuck(struct Sprite *sprite) void AnimDizzyPunchDuck(struct Sprite *sprite)
{ {
if (sprite->data[0] == 0) if (sprite->data[0] == 0)
{ {
@ -799,7 +791,7 @@ static void AnimBrickBreakWall(struct Sprite *sprite)
sprite->callback = AnimBrickBreakWall_Step; sprite->callback = AnimBrickBreakWall_Step;
} }
static void AnimBrickBreakWall_Step(struct Sprite *sprite) void AnimBrickBreakWall_Step(struct Sprite *sprite)
{ {
switch (sprite->data[0]) switch (sprite->data[0])
{ {
@ -1050,7 +1042,7 @@ static void AnimArmThrustHit(struct Sprite *sprite)
sprite->callback = AnimArmThrustHit_Step; sprite->callback = AnimArmThrustHit_Step;
} }
static void AnimRevengeScratch(struct Sprite *sprite) void AnimRevengeScratch(struct Sprite *sprite)
{ {
if (gBattleAnimArgs[2] == ANIM_ATTACKER) if (gBattleAnimArgs[2] == ANIM_ATTACKER)
InitSpritePosToAnimAttacker(sprite, 0); InitSpritePosToAnimAttacker(sprite, 0);

View File

@ -8,7 +8,6 @@
#include "trig.h" #include "trig.h"
static void AnimFireSpiralInward(struct Sprite *); static void AnimFireSpiralInward(struct Sprite *);
static void AnimFireSpread(struct Sprite *);
static void AnimFirePlume(struct Sprite *); static void AnimFirePlume(struct Sprite *);
static void AnimLargeFlame(struct Sprite *); static void AnimLargeFlame(struct Sprite *);
static void sub_8109028(struct Sprite *); static void sub_8109028(struct Sprite *);
@ -23,7 +22,6 @@ static void AnimFireRing_Step2(struct Sprite *);
static void AnimFireRing_Step3(struct Sprite *); static void AnimFireRing_Step3(struct Sprite *);
static void UpdateFireRingCircleOffset(struct Sprite *); static void UpdateFireRingCircleOffset(struct Sprite *);
static void AnimFireCross(struct Sprite *); static void AnimFireCross(struct Sprite *);
static void AnimFireSpiralOutward(struct Sprite *);
static void AnimFireSpiralOutward_Step1(struct Sprite *); static void AnimFireSpiralOutward_Step1(struct Sprite *);
static void AnimFireSpiralOutward_Step2(struct Sprite *); static void AnimFireSpiralOutward_Step2(struct Sprite *);
static void AnimTask_EruptionLaunchRocks_Step(u8 taskId); static void AnimTask_EruptionLaunchRocks_Step(u8 taskId);
@ -313,7 +311,7 @@ static const union AnimCmd sAnim_FireBlastCross[] =
ANIMCMD_JUMP(0), ANIMCMD_JUMP(0),
}; };
static const union AnimCmd *const sAnims_FireBlastCross[] = const union AnimCmd *const gAnims_FireBlastCross[] =
{ {
sAnim_FireBlastCross, sAnim_FireBlastCross,
}; };
@ -342,7 +340,7 @@ const struct SpriteTemplate gFireBlastCrossSpriteTemplate =
.tileTag = ANIM_TAG_SMALL_EMBER, .tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER,
.oam = &gOamData_AffineOff_ObjNormal_32x32, .oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = sAnims_FireBlastCross, .anims = gAnims_FireBlastCross,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimFireCross, .callback = AnimFireCross,
@ -565,7 +563,7 @@ static void AnimFireSpiralInward(struct Sprite *sprite)
} }
// For the impact spread of fire sprites for moves like Blaze Kick or Fire Punch // For the impact spread of fire sprites for moves like Blaze Kick or Fire Punch
static void AnimFireSpread(struct Sprite *sprite) void AnimFireSpread(struct Sprite *sprite)
{ {
SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]);
@ -824,7 +822,7 @@ static void AnimFireCross(struct Sprite *sprite)
sprite->callback = TranslateSpriteLinear; sprite->callback = TranslateSpriteLinear;
} }
static void AnimFireSpiralOutward(struct Sprite *sprite) void AnimFireSpiralOutward(struct Sprite *sprite)
{ {
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, 1);

View File

@ -12,10 +12,6 @@ static void AnimEllipticalGust(struct Sprite *);
static void AnimEllipticalGust_Step(struct Sprite *); static void AnimEllipticalGust_Step(struct Sprite *);
static void AnimGustToTarget(struct Sprite *); static void AnimGustToTarget(struct Sprite *);
static void AnimGustToTarget_Step(struct Sprite *); static void AnimGustToTarget_Step(struct Sprite *);
static void AnimFlyBallUp(struct Sprite *);
static void AnimFlyBallUp_Step(struct Sprite *);
static void AnimFlyBallAttack(struct Sprite *);
static void AnimFlyBallAttack_Step(struct Sprite *);
static void AnimFallingFeather(struct Sprite *); static void AnimFallingFeather(struct Sprite *);
static void sub_810E520(struct Sprite *); static void sub_810E520(struct Sprite *);
static void sub_810EB40(struct Sprite *); static void sub_810EB40(struct Sprite *);
@ -104,7 +100,7 @@ static const union AffineAnimCmd sAffineAnim_FlyBallUp[] =
AFFINEANIMCMD_END, AFFINEANIMCMD_END,
}; };
static const union AffineAnimCmd *const sAffineAnims_FlyBallUp[] = const union AffineAnimCmd *const gAffineAnims_FlyBallUp[] =
{ {
sAffineAnim_FlyBallUp, sAffineAnim_FlyBallUp,
}; };
@ -121,7 +117,7 @@ static const union AffineAnimCmd sAffineAnim_FlyBallAttack_1[] =
AFFINEANIMCMD_END, AFFINEANIMCMD_END,
}; };
static const union AffineAnimCmd *const sAffineAnims_FlyBallAttack[] = const union AffineAnimCmd *const gAffineAnims_FlyBallAttack[] =
{ {
sAffineAnim_FlyBallAttack_0, sAffineAnim_FlyBallAttack_0,
sAffineAnim_FlyBallAttack_1, sAffineAnim_FlyBallAttack_1,
@ -134,7 +130,7 @@ const struct SpriteTemplate gFlyBallUpSpriteTemplate =
.oam = &gOamData_AffineDouble_ObjNormal_64x64, .oam = &gOamData_AffineDouble_ObjNormal_64x64,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_FlyBallUp, .affineAnims = gAffineAnims_FlyBallUp,
.callback = AnimFlyBallUp, .callback = AnimFlyBallUp,
}; };
@ -145,7 +141,7 @@ const struct SpriteTemplate gFlyBallAttackSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjNormal_64x64, .oam = &gOamData_AffineNormal_ObjNormal_64x64,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_FlyBallAttack, .affineAnims = gAffineAnims_FlyBallAttack,
.callback = AnimFlyBallAttack, .callback = AnimFlyBallAttack,
}; };
@ -464,7 +460,7 @@ void AnimAirWaveCrescent(struct Sprite *sprite)
SeekSpriteAnim(sprite, gBattleAnimArgs[5]); SeekSpriteAnim(sprite, gBattleAnimArgs[5]);
} }
static void AnimFlyBallUp(struct Sprite *sprite) void AnimFlyBallUp(struct Sprite *sprite)
{ {
InitSpritePosToAnimAttacker(sprite, TRUE); InitSpritePosToAnimAttacker(sprite, TRUE);
sprite->data[0] = gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[2];
@ -473,7 +469,7 @@ static void AnimFlyBallUp(struct Sprite *sprite)
gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = TRUE; gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = TRUE;
} }
static void AnimFlyBallUp_Step(struct Sprite *sprite) void AnimFlyBallUp_Step(struct Sprite *sprite)
{ {
if (sprite->data[0] > 0) if (sprite->data[0] > 0)
{ {
@ -489,7 +485,7 @@ static void AnimFlyBallUp_Step(struct Sprite *sprite)
DestroyAnimSprite(sprite); DestroyAnimSprite(sprite);
} }
static void AnimFlyBallAttack(struct Sprite *sprite) void AnimFlyBallAttack(struct Sprite *sprite)
{ {
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
{ {
@ -514,7 +510,7 @@ static void AnimFlyBallAttack(struct Sprite *sprite)
sprite->callback = AnimFlyBallAttack_Step; sprite->callback = AnimFlyBallAttack_Step;
} }
static void AnimFlyBallAttack_Step(struct Sprite *sprite) void AnimFlyBallAttack_Step(struct Sprite *sprite)
{ {
sprite->data[0] = 1; sprite->data[0] = 1;
AnimTranslateLinear(sprite); AnimTranslateLinear(sprite);

View File

@ -9,6 +9,7 @@
#include "sound.h" #include "sound.h"
#include "trig.h" #include "trig.h"
#include "util.h" #include "util.h"
#include "constants/moves.h"
static void AnimConfuseRayBallBounce(struct Sprite *); static void AnimConfuseRayBallBounce(struct Sprite *);
static void AnimConfuseRayBallBounce_Step1(struct Sprite *); static void AnimConfuseRayBallBounce_Step1(struct Sprite *);
@ -18,7 +19,6 @@ static void AnimConfuseRayBallSpiral(struct Sprite *);
static void AnimConfuseRayBallSpiral_Step(struct Sprite *); static void AnimConfuseRayBallSpiral_Step(struct Sprite *);
static void AnimTask_NightShadeClone_Step1(u8 taskId); static void AnimTask_NightShadeClone_Step1(u8 taskId);
static void AnimTask_NightShadeClone_Step2(u8 taskId); static void AnimTask_NightShadeClone_Step2(u8 taskId);
static void AnimShadowBall(struct Sprite *);
static void AnimShadowBall_Step(struct Sprite *); static void AnimShadowBall_Step(struct Sprite *);
static void AnimLick(struct Sprite *); static void AnimLick(struct Sprite *);
static void AnimLick_Step(struct Sprite *); static void AnimLick_Step(struct Sprite *);
@ -36,7 +36,6 @@ static void AnimCurseNail_Step1(struct Sprite *);
static void AnimCurseNail_Step2(struct Sprite *); static void AnimCurseNail_Step2(struct Sprite *);
static void AnimCurseNail_End(struct Sprite *); static void AnimCurseNail_End(struct Sprite *);
static void AnimGhostStatusSprite_Step(struct Sprite *); static void AnimGhostStatusSprite_Step(struct Sprite *);
static void AnimTask_GrudgeFlames_Step(u8 taskId);
static void AnimGrudgeFlame(struct Sprite *); static void AnimGrudgeFlame(struct Sprite *);
static void sub_8112F60(struct Sprite *); static void sub_8112F60(struct Sprite *);
static void sub_8112FB8(struct Sprite *); static void sub_8112FB8(struct Sprite *);
@ -81,7 +80,7 @@ static const union AffineAnimCmd sAffineAnim_ShadowBall[] =
AFFINEANIMCMD_JUMP(0), AFFINEANIMCMD_JUMP(0),
}; };
static const union AffineAnimCmd *const sAffineAnims_ShadowBall[] = const union AffineAnimCmd *const gAffineAnims_ShadowBall[] =
{ {
sAffineAnim_ShadowBall, sAffineAnim_ShadowBall,
}; };
@ -93,7 +92,7 @@ const struct SpriteTemplate gShadowBallSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjNormal_32x32, .oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_ShadowBall, .affineAnims = gAffineAnims_ShadowBall,
.callback = AnimShadowBall, .callback = AnimShadowBall,
}; };
@ -104,7 +103,7 @@ const struct SpriteTemplate gEnergyBallSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjNormal_32x32, .oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_ShadowBall, .affineAnims = gAffineAnims_ShadowBall,
.callback = AnimShadowBall, .callback = AnimShadowBall,
}; };
@ -179,6 +178,17 @@ const struct SpriteTemplate gDestinyBondWhiteShadowSpriteTemplate =
.callback = AnimDestinyBondWhiteShadow, .callback = AnimDestinyBondWhiteShadow,
}; };
const struct SpriteTemplate gDarkVoidBlackHoleTemplate =
{
.tileTag = ANIM_TAG_WHITE_SHADOW,
.paletteTag = ANIM_TAG_QUICK_GUARD_HAND,
.oam = &gOamData_AffineOff_ObjBlend_64x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimDestinyBondWhiteShadow
};
const struct SpriteTemplate gCurseNailSpriteTemplate = const struct SpriteTemplate gCurseNailSpriteTemplate =
{ {
.tileTag = ANIM_TAG_NAIL, .tileTag = ANIM_TAG_NAIL,
@ -256,7 +266,7 @@ const struct SpriteTemplate gFlashCannonBallMovementTemplate =
.oam = &gOamData_AffineNormal_ObjNormal_32x32, .oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_ShadowBall, .affineAnims = gAffineAnims_ShadowBall,
.callback = AnimShadowBall .callback = AnimShadowBall
}; };
@ -443,7 +453,7 @@ static void AnimTask_NightShadeClone_Step2(u8 taskId)
// arg 0: duration step 1 (attacker -> center) // arg 0: duration step 1 (attacker -> center)
// arg 1: duration step 2 (spin center) // arg 1: duration step 2 (spin center)
// arg 2: duration step 3 (center -> target) // arg 2: duration step 3 (center -> target)
static void AnimShadowBall(struct Sprite *sprite) void AnimShadowBall(struct Sprite *sprite)
{ {
s16 oldPosX = sprite->pos1.x; s16 oldPosX = sprite->pos1.x;
s16 oldPosY = sprite->pos1.y; s16 oldPosY = sprite->pos1.y;
@ -865,7 +875,11 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId)
&& battler != (gBattleAnimAttacker ^ 2) && battler != (gBattleAnimAttacker ^ 2)
&& IsBattlerSpriteVisible(battler)) && IsBattlerSpriteVisible(battler))
{ {
spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); if (gAnimMoveIndex == MOVE_DARK_VOID)
spriteId = CreateSprite(&gDarkVoidBlackHoleTemplate, baseX, baseY, 55); //dark void
else
spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); //destiny bond
if (spriteId != MAX_SPRITES) if (spriteId != MAX_SPRITES)
{ {
x = GetBattlerSpriteCoord(battler, 2); x = GetBattlerSpriteCoord(battler, 2);
@ -887,7 +901,11 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId)
} }
else else
{ {
spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); if (gAnimMoveIndex == MOVE_DARK_VOID)
spriteId = CreateSprite(&gDarkVoidBlackHoleTemplate, baseX, baseY, 55); //dark void
else
spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); //destiny bond
if (spriteId != MAX_SPRITES) if (spriteId != MAX_SPRITES)
{ {
x = 48; x = 48;
@ -1237,7 +1255,7 @@ void AnimTask_GrudgeFlames(u8 taskId)
task->func = AnimTask_GrudgeFlames_Step; task->func = AnimTask_GrudgeFlames_Step;
} }
static void AnimTask_GrudgeFlames_Step(u8 taskId) void AnimTask_GrudgeFlames_Step(u8 taskId)
{ {
u16 i; u16 i;
u8 spriteId; u8 spriteId;

View File

@ -8,14 +8,11 @@
static void AnimBonemerangProjectile(struct Sprite *); static void AnimBonemerangProjectile(struct Sprite *);
static void AnimBoneHitProjectile(struct Sprite *); static void AnimBoneHitProjectile(struct Sprite *);
static void AnimDirtScatter(struct Sprite *);
static void AnimMudSportDirt(struct Sprite *);
static void AnimDirtPlumeParticle(struct Sprite *); static void AnimDirtPlumeParticle(struct Sprite *);
static void AnimDirtPlumeParticle_Step(struct Sprite *); static void AnimDirtPlumeParticle_Step(struct Sprite *);
static void AnimDigDirtMound(struct Sprite *); static void AnimDigDirtMound(struct Sprite *);
static void AnimBonemerangProjectile_Step(struct Sprite *); static void AnimBonemerangProjectile_Step(struct Sprite *);
static void AnimBonemerangProjectile_End(struct Sprite *); static void AnimBonemerangProjectile_End(struct Sprite *);
static void AnimMudSportDirtRising(struct Sprite *);
static void AnimMudSportDirtFalling(struct Sprite *); static void AnimMudSportDirtFalling(struct Sprite *);
static void AnimTask_DigBounceMovement(u8); static void AnimTask_DigBounceMovement(u8);
static void AnimTask_DigEndBounceMovementSetInvisible(u8); static void AnimTask_DigEndBounceMovementSetInvisible(u8);
@ -44,7 +41,7 @@ static const union AffineAnimCmd *const sAffineAnims_Bonemerang[] =
sAffineAnim_Bonemerang, sAffineAnim_Bonemerang,
}; };
static const union AffineAnimCmd *const sAffineAnims_SpinningBone[] = const union AffineAnimCmd *const gAffineAnims_SpinningBone[] =
{ {
sAffineAnim_SpinningBone, sAffineAnim_SpinningBone,
}; };
@ -67,7 +64,7 @@ const struct SpriteTemplate gSpinningBoneSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjNormal_32x32, .oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_SpinningBone, .affineAnims = gAffineAnims_SpinningBone,
.callback = AnimBoneHitProjectile, .callback = AnimBoneHitProjectile,
}; };
@ -222,7 +219,7 @@ static void AnimBoneHitProjectile(struct Sprite *sprite)
// arg 2: duration // arg 2: duration
// arg 3: target x pixel offset // arg 3: target x pixel offset
// arg 4: target y pixel offset // arg 4: target y pixel offset
static void AnimDirtScatter(struct Sprite *sprite) void AnimDirtScatter(struct Sprite *sprite)
{ {
u8 targetXPos, targetYPos; u8 targetXPos, targetYPos;
s16 xOffset, yOffset; s16 xOffset, yOffset;
@ -251,7 +248,7 @@ static void AnimDirtScatter(struct Sprite *sprite)
// arg 0: 0 = dirt is rising into the air, 1 = dirt is falling down // arg 0: 0 = dirt is rising into the air, 1 = dirt is falling down
// arg 1: initial x pixel offset // arg 1: initial x pixel offset
// arg 2: initial y pixel offset // arg 2: initial y pixel offset
static void AnimMudSportDirt(struct Sprite *sprite) void AnimMudSportDirt(struct Sprite *sprite)
{ {
sprite->oam.tileNum++; sprite->oam.tileNum++;
if (gBattleAnimArgs[0] == 0) if (gBattleAnimArgs[0] == 0)
@ -270,7 +267,7 @@ static void AnimMudSportDirt(struct Sprite *sprite)
} }
} }
static void AnimMudSportDirtRising(struct Sprite *sprite) void AnimMudSportDirtRising(struct Sprite *sprite)
{ {
if (++sprite->data[1] > 1) if (++sprite->data[1] > 1)
{ {

View File

@ -24,18 +24,14 @@ static void sub_810B6C4(struct Sprite *);
static void sub_810B848(struct Sprite *); static void sub_810B848(struct Sprite *);
static void AnimIcePunchSwirlingParticle(struct Sprite *); static void AnimIcePunchSwirlingParticle(struct Sprite *);
static void AnimIceBeamParticle(struct Sprite *); static void AnimIceBeamParticle(struct Sprite *);
static void AnimIceEffectParticle(struct Sprite *);
static void AnimFlickerIceEffectParticle(struct Sprite *); static void AnimFlickerIceEffectParticle(struct Sprite *);
static void AnimSwirlingSnowball(struct Sprite *); static void AnimSwirlingSnowball(struct Sprite *);
static void AnimSwirlingSnowball_Step1(struct Sprite *);
static void AnimSwirlingSnowball_Step2(struct Sprite *); static void AnimSwirlingSnowball_Step2(struct Sprite *);
static void AnimSwirlingSnowball_End(struct Sprite *); static void AnimSwirlingSnowball_End(struct Sprite *);
static void AnimMoveParticleBeyondTarget(struct Sprite *);
static void AnimWiggleParticleTowardsTarget(struct Sprite *); static void AnimWiggleParticleTowardsTarget(struct Sprite *);
static void AnimWaveFromCenterOfTarget(struct Sprite *); static void AnimWaveFromCenterOfTarget(struct Sprite *);
static void InitSwirlingFogAnim(struct Sprite *); static void InitSwirlingFogAnim(struct Sprite *);
static void AnimSwirlingFogAnim(struct Sprite *); static void AnimSwirlingFogAnim(struct Sprite *);
static void AnimThrowMistBall(struct Sprite *);
static void InitPoisonGasCloudAnim(struct Sprite *); static void InitPoisonGasCloudAnim(struct Sprite *);
static void MovePoisonGasCloud(struct Sprite *); static void MovePoisonGasCloud(struct Sprite *);
static void AnimHailBegin(struct Sprite *); static void AnimHailBegin(struct Sprite *);
@ -118,7 +114,7 @@ static const union AnimCmd *const gUnknown_08595AA4[] =
gUnknown_08595A70, gUnknown_08595A70,
}; };
static const union AnimCmd *const sAnims_IceCrystalLarge[] = const union AnimCmd *const gAnims_IceCrystalLarge[] =
{ {
sAnim_IceCrystalLarge, sAnim_IceCrystalLarge,
}; };
@ -128,12 +124,12 @@ static const union AnimCmd *const sAnims_IceCrystalSmall[] =
sAnim_IceCrystalSmall, sAnim_IceCrystalSmall,
}; };
static const union AnimCmd *const sAnims_Snowball[] = const union AnimCmd *const gAnims_Snowball[] =
{ {
sAnim_Snowball, sAnim_Snowball,
}; };
static const union AnimCmd *const sAnims_BlizzardIceCrystal[] = const union AnimCmd *const gAnims_BlizzardIceCrystal[] =
{ {
sAnim_BlizzardIceCrystal, sAnim_BlizzardIceCrystal,
}; };
@ -159,7 +155,7 @@ const struct SpriteTemplate gIceCrystalSpiralInwardLarge =
.tileTag = ANIM_TAG_ICE_CRYSTALS, .tileTag = ANIM_TAG_ICE_CRYSTALS,
.paletteTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS,
.oam = &gOamData_AffineDouble_ObjBlend_8x16, .oam = &gOamData_AffineDouble_ObjBlend_8x16,
.anims = sAnims_IceCrystalLarge, .anims = gAnims_IceCrystalLarge,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_IceCrystalSpiralInwardLarge, .affineAnims = sAffineAnims_IceCrystalSpiralInwardLarge,
.callback = AnimIcePunchSwirlingParticle, .callback = AnimIcePunchSwirlingParticle,
@ -192,7 +188,7 @@ const struct SpriteTemplate gIceBeamInnerCrystalSpriteTemplate =
.tileTag = ANIM_TAG_ICE_CRYSTALS, .tileTag = ANIM_TAG_ICE_CRYSTALS,
.paletteTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS,
.oam = &gOamData_AffineNormal_ObjBlend_8x16, .oam = &gOamData_AffineNormal_ObjBlend_8x16,
.anims = sAnims_IceCrystalLarge, .anims = gAnims_IceCrystalLarge,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_IceBeamInnerCrystal, .affineAnims = sAffineAnims_IceBeamInnerCrystal,
.callback = AnimIceBeamParticle, .callback = AnimIceBeamParticle,
@ -217,7 +213,7 @@ static const union AffineAnimCmd sAffineAnim_IceCrystalHit[] =
AFFINEANIMCMD_END, AFFINEANIMCMD_END,
}; };
static const union AffineAnimCmd *const sAffineAnims_IceCrystalHit[] = const union AffineAnimCmd *const gAffineAnims_IceCrystalHit[] =
{ {
sAffineAnim_IceCrystalHit, sAffineAnim_IceCrystalHit,
}; };
@ -227,9 +223,9 @@ const struct SpriteTemplate gIceCrystalHitLargeSpriteTemplate =
.tileTag = ANIM_TAG_ICE_CRYSTALS, .tileTag = ANIM_TAG_ICE_CRYSTALS,
.paletteTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS,
.oam = &gOamData_AffineNormal_ObjBlend_8x16, .oam = &gOamData_AffineNormal_ObjBlend_8x16,
.anims = sAnims_IceCrystalLarge, .anims = gAnims_IceCrystalLarge,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_IceCrystalHit, .affineAnims = gAffineAnims_IceCrystalHit,
.callback = AnimIceEffectParticle, .callback = AnimIceEffectParticle,
}; };
@ -240,7 +236,7 @@ const struct SpriteTemplate gIceCrystalHitSmallSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjBlend_8x8, .oam = &gOamData_AffineNormal_ObjBlend_8x8,
.anims = sAnims_IceCrystalSmall, .anims = sAnims_IceCrystalSmall,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_IceCrystalHit, .affineAnims = gAffineAnims_IceCrystalHit,
.callback = AnimIceEffectParticle, .callback = AnimIceEffectParticle,
}; };
@ -249,7 +245,7 @@ const struct SpriteTemplate gSwirlingSnowballSpriteTemplate =
.tileTag = ANIM_TAG_ICE_CRYSTALS, .tileTag = ANIM_TAG_ICE_CRYSTALS,
.paletteTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS,
.oam = &gOamData_AffineOff_ObjNormal_8x8, .oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_Snowball, .anims = gAnims_Snowball,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimSwirlingSnowball, .callback = AnimSwirlingSnowball,
@ -260,7 +256,7 @@ const struct SpriteTemplate gBlizzardIceCrystalSpriteTemplate =
.tileTag = ANIM_TAG_ICE_CRYSTALS, .tileTag = ANIM_TAG_ICE_CRYSTALS,
.paletteTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS,
.oam = &gOamData_AffineOff_ObjNormal_16x16, .oam = &gOamData_AffineOff_ObjNormal_16x16,
.anims = sAnims_BlizzardIceCrystal, .anims = gAnims_BlizzardIceCrystal,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimMoveParticleBeyondTarget, .callback = AnimMoveParticleBeyondTarget,
@ -271,7 +267,7 @@ const struct SpriteTemplate gPowderSnowSnowballSpriteTemplate =
.tileTag = ANIM_TAG_ICE_CRYSTALS, .tileTag = ANIM_TAG_ICE_CRYSTALS,
.paletteTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS,
.oam = &gOamData_AffineOff_ObjNormal_8x8, .oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_Snowball, .anims = gAnims_Snowball,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimMoveParticleBeyondTarget, .callback = AnimMoveParticleBeyondTarget,
@ -458,7 +454,7 @@ static const union AnimCmd sAnim_IceBallChunk_1[] =
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd *const sAnims_IceBallChunk[] = const union AnimCmd *const gAnims_IceBallChunk[] =
{ {
sAnim_IceBallChunk_0, sAnim_IceBallChunk_0,
sAnim_IceBallChunk_1, sAnim_IceBallChunk_1,
@ -508,7 +504,7 @@ const struct SpriteTemplate gIceBallChunkSpriteTemplate =
.tileTag = ANIM_TAG_ICE_CHUNK, .tileTag = ANIM_TAG_ICE_CHUNK,
.paletteTag = ANIM_TAG_ICE_CHUNK, .paletteTag = ANIM_TAG_ICE_CHUNK,
.oam = &gOamData_AffineDouble_ObjNormal_32x32, .oam = &gOamData_AffineDouble_ObjNormal_32x32,
.anims = sAnims_IceBallChunk, .anims = gAnims_IceBallChunk,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_IceBallChunk, .affineAnims = sAffineAnims_IceBallChunk,
.callback = InitIceBallAnim, .callback = InitIceBallAnim,
@ -568,7 +564,7 @@ const struct SpriteTemplate gChatterSingNotesTemplate =
.oam = &gOamData_AffineDouble_ObjNormal_16x16, .oam = &gOamData_AffineDouble_ObjNormal_16x16,
.anims = gMusicNotesAnimTable, .anims = gMusicNotesAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_IceCrystalHit, .affineAnims = gAffineAnims_IceCrystalHit,
.callback = AnimIceEffectParticle .callback = AnimIceEffectParticle
}; };
@ -710,7 +706,7 @@ static void AnimIceBeamParticle(struct Sprite *sprite)
// arg 0: target x offset // arg 0: target x offset
// arg 1: target y offset // arg 1: target y offset
// arg 2: ??? unknown boolean // arg 2: ??? unknown boolean
static void AnimIceEffectParticle(struct Sprite *sprite) void AnimIceEffectParticle(struct Sprite *sprite)
{ {
if (gBattleAnimArgs[2] == 0) if (gBattleAnimArgs[2] == 0)
{ {
@ -801,7 +797,7 @@ static void AnimSwirlingSnowball(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, AnimSwirlingSnowball_Step1); StoreSpriteCallbackInData6(sprite, AnimSwirlingSnowball_Step1);
} }
static void AnimSwirlingSnowball_Step1(struct Sprite *sprite) void AnimSwirlingSnowball_Step1(struct Sprite *sprite)
{ {
s16 tempVar; s16 tempVar;
@ -865,7 +861,7 @@ static void AnimSwirlingSnowball_End(struct Sprite *sprite)
// arg 5: wave amplitude // arg 5: wave amplitude
// arg 6: wave frequency // arg 6: wave frequency
// arg 7: multiple targets? (boolean) // arg 7: multiple targets? (boolean)
static void AnimMoveParticleBeyondTarget(struct Sprite *sprite) void AnimMoveParticleBeyondTarget(struct Sprite *sprite)
{ {
int i; int i;
s16 tempDataHolder[8]; s16 tempDataHolder[8];
@ -1167,7 +1163,7 @@ static void AnimTask_Haze2(u8 taskId)
// arg 3: target y offset // arg 3: target y offset
// arg 4: duration // arg 4: duration
// arg 5: ??? unknown (seems to vibrate target mon somehow) // arg 5: ??? unknown (seems to vibrate target mon somehow)
static void AnimThrowMistBall(struct Sprite *sprite) void AnimThrowMistBall(struct Sprite *sprite)
{ {
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);

4994
src/battle_anim_new.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -16,14 +16,8 @@ static void sub_81159B4(struct Sprite *);
static void AnimShakeMonOrBattleTerrain(struct Sprite *); static void AnimShakeMonOrBattleTerrain(struct Sprite *);
static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *); static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *);
static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void); static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void);
static void AnimHitSplatBasic(struct Sprite *);
static void AnimHitSplatPersistent(struct Sprite *); static void AnimHitSplatPersistent(struct Sprite *);
static void AnimHitSplatHandleInvert(struct Sprite *); static void AnimHitSplatHandleInvert(struct Sprite *);
static void AnimHitSplatRandom(struct Sprite *);
static void AnimHitSplatOnMonEdge(struct Sprite *);
static void AnimCrossImpact(struct Sprite *);
static void AnimFlashingHitSplat(struct Sprite *);
static void AnimFlashingHitSplat_Step(struct Sprite *);
static void AnimConfusionDuck_Step(struct Sprite *); static void AnimConfusionDuck_Step(struct Sprite *);
static void BlendColorCycle(u8, u8, u8); static void BlendColorCycle(u8, u8, u8);
static void AnimTask_BlendColorCycleLoop(u8); static void AnimTask_BlendColorCycleLoop(u8);
@ -215,7 +209,7 @@ static const union AffineAnimCmd sAffineAnim_HitSplat_3[] =
AFFINEANIMCMD_END, AFFINEANIMCMD_END,
}; };
static const union AffineAnimCmd *const sAffineAnims_HitSplat[] = const union AffineAnimCmd *const gAffineAnims_HitSplat[] =
{ {
sAffineAnim_HitSplat_0, sAffineAnim_HitSplat_0,
sAffineAnim_HitSplat_1, sAffineAnim_HitSplat_1,
@ -230,7 +224,7 @@ const struct SpriteTemplate gBasicHitSplatSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjBlend_32x32, .oam = &gOamData_AffineNormal_ObjBlend_32x32,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_HitSplat, .affineAnims = gAffineAnims_HitSplat,
.callback = AnimHitSplatBasic, .callback = AnimHitSplatBasic,
}; };
@ -241,7 +235,7 @@ const struct SpriteTemplate gHandleInvertHitSplatSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjBlend_32x32, .oam = &gOamData_AffineNormal_ObjBlend_32x32,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_HitSplat, .affineAnims = gAffineAnims_HitSplat,
.callback = AnimHitSplatHandleInvert, .callback = AnimHitSplatHandleInvert,
}; };
@ -252,7 +246,7 @@ const struct SpriteTemplate gWaterHitSplatSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjBlend_32x32, .oam = &gOamData_AffineNormal_ObjBlend_32x32,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_HitSplat, .affineAnims = gAffineAnims_HitSplat,
.callback = AnimHitSplatBasic, .callback = AnimHitSplatBasic,
}; };
@ -263,7 +257,7 @@ const struct SpriteTemplate gRandomPosHitSplatSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjBlend_32x32, .oam = &gOamData_AffineNormal_ObjBlend_32x32,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_HitSplat, .affineAnims = gAffineAnims_HitSplat,
.callback = AnimHitSplatRandom, .callback = AnimHitSplatRandom,
}; };
@ -274,7 +268,7 @@ const struct SpriteTemplate gMonEdgeHitSplatSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjBlend_32x32, .oam = &gOamData_AffineNormal_ObjBlend_32x32,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_HitSplat, .affineAnims = gAffineAnims_HitSplat,
.callback = AnimHitSplatOnMonEdge, .callback = AnimHitSplatOnMonEdge,
}; };
@ -296,7 +290,7 @@ const struct SpriteTemplate gFlashingHitSplatSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjNormal_32x32, .oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_HitSplat, .affineAnims = gAffineAnims_HitSplat,
.callback = AnimFlashingHitSplat, .callback = AnimFlashingHitSplat,
}; };
@ -307,7 +301,7 @@ const struct SpriteTemplate gPersistHitSplatSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjBlend_32x32, .oam = &gOamData_AffineNormal_ObjBlend_32x32,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_HitSplat, .affineAnims = gAffineAnims_HitSplat,
.callback = AnimHitSplatPersistent, .callback = AnimHitSplatPersistent,
}; };
@ -1015,7 +1009,7 @@ static void AnimTask_ShakeBattleTerrain_Step(u8 taskId)
#undef tTimer #undef tTimer
#undef tShakeDelay #undef tShakeDelay
static void AnimHitSplatBasic(struct Sprite *sprite) void AnimHitSplatBasic(struct Sprite *sprite)
{ {
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
if (gBattleAnimArgs[2] == ANIM_ATTACKER) if (gBattleAnimArgs[2] == ANIM_ATTACKER)
@ -1051,7 +1045,7 @@ static void AnimHitSplatHandleInvert(struct Sprite *sprite)
AnimHitSplatBasic(sprite); AnimHitSplatBasic(sprite);
} }
static void AnimHitSplatRandom(struct Sprite *sprite) void AnimHitSplatRandom(struct Sprite *sprite)
{ {
if (gBattleAnimArgs[1] == -1) if (gBattleAnimArgs[1] == -1)
gBattleAnimArgs[1] = Random2() & 3; gBattleAnimArgs[1] = Random2() & 3;
@ -1069,7 +1063,7 @@ static void AnimHitSplatRandom(struct Sprite *sprite)
sprite->callback = RunStoredCallbackWhenAffineAnimEnds; sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
} }
static void AnimHitSplatOnMonEdge(struct Sprite *sprite) void AnimHitSplatOnMonEdge(struct Sprite *sprite)
{ {
sprite->data[0] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); sprite->data[0] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
sprite->pos1.x = gSprites[sprite->data[0]].pos1.x + gSprites[sprite->data[0]].pos2.x; sprite->pos1.x = gSprites[sprite->data[0]].pos1.x + gSprites[sprite->data[0]].pos2.x;
@ -1081,7 +1075,7 @@ static void AnimHitSplatOnMonEdge(struct Sprite *sprite)
sprite->callback = RunStoredCallbackWhenAffineAnimEnds; sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
} }
static void AnimCrossImpact(struct Sprite *sprite) void AnimCrossImpact(struct Sprite *sprite)
{ {
if (gBattleAnimArgs[2] == ANIM_ATTACKER) if (gBattleAnimArgs[2] == ANIM_ATTACKER)
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, 1);
@ -1093,7 +1087,7 @@ static void AnimCrossImpact(struct Sprite *sprite)
sprite->callback = WaitAnimForDuration; sprite->callback = WaitAnimForDuration;
} }
static void AnimFlashingHitSplat(struct Sprite *sprite) void AnimFlashingHitSplat(struct Sprite *sprite)
{ {
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
if (gBattleAnimArgs[2] == ANIM_ATTACKER) if (gBattleAnimArgs[2] == ANIM_ATTACKER)
@ -1104,7 +1098,7 @@ static void AnimFlashingHitSplat(struct Sprite *sprite)
sprite->callback = AnimFlashingHitSplat_Step; sprite->callback = AnimFlashingHitSplat_Step;
} }
static void AnimFlashingHitSplat_Step(struct Sprite *sprite) void AnimFlashingHitSplat_Step(struct Sprite *sprite)
{ {
sprite->invisible ^= 1; sprite->invisible ^= 1;
if (sprite->data[0]++ > 12) if (sprite->data[0]++ > 12)

View File

@ -6,7 +6,6 @@
static void AnimSludgeProjectile(struct Sprite *); static void AnimSludgeProjectile(struct Sprite *);
static void AnimSludgeProjectile_Step(struct Sprite *); static void AnimSludgeProjectile_Step(struct Sprite *);
static void AnimAcidPoisonBubble(struct Sprite *); static void AnimAcidPoisonBubble(struct Sprite *);
static void AnimAcidPoisonBubble_Step(struct Sprite *);
static void AnimSludgeBombHitParticle_Step(struct Sprite *); static void AnimSludgeBombHitParticle_Step(struct Sprite *);
static void AnimAcidPoisonDroplet(struct Sprite *); static void AnimAcidPoisonDroplet(struct Sprite *);
static void AnimBubbleEffect(struct Sprite *); static void AnimBubbleEffect(struct Sprite *);
@ -60,12 +59,12 @@ static const union AnimCmd sAnim_SludgeBombHit[] =
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd *const sAnims_PoisonProjectile[] = const union AnimCmd *const gAnims_PoisonProjectile[] =
{ {
sAnim_PoisonProjectile, sAnim_PoisonProjectile,
}; };
static const union AnimCmd *const sAnims_AcidPoisonDroplet[] = const union AnimCmd *const gAnims_AcidPoisonDroplet[] =
{ {
sAnim_AcidPoisonDroplet, sAnim_AcidPoisonDroplet,
}; };
@ -104,7 +103,7 @@ const struct SpriteTemplate gSludgeProjectileSpriteTemplate =
.tileTag = ANIM_TAG_POISON_BUBBLE, .tileTag = ANIM_TAG_POISON_BUBBLE,
.paletteTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE,
.oam = &gOamData_AffineDouble_ObjNormal_16x16, .oam = &gOamData_AffineDouble_ObjNormal_16x16,
.anims = sAnims_PoisonProjectile, .anims = gAnims_PoisonProjectile,
.images = NULL, .images = NULL,
.affineAnims = gAffineAnims_PoisonProjectile, .affineAnims = gAffineAnims_PoisonProjectile,
.callback = AnimSludgeProjectile, .callback = AnimSludgeProjectile,
@ -115,7 +114,7 @@ const struct SpriteTemplate gAcidPoisonBubbleSpriteTemplate =
.tileTag = ANIM_TAG_POISON_BUBBLE, .tileTag = ANIM_TAG_POISON_BUBBLE,
.paletteTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE,
.oam = &gOamData_AffineDouble_ObjNormal_16x16, .oam = &gOamData_AffineDouble_ObjNormal_16x16,
.anims = sAnims_PoisonProjectile, .anims = gAnims_PoisonProjectile,
.images = NULL, .images = NULL,
.affineAnims = gAffineAnims_PoisonProjectile, .affineAnims = gAffineAnims_PoisonProjectile,
.callback = AnimAcidPoisonBubble, .callback = AnimAcidPoisonBubble,
@ -149,7 +148,7 @@ const struct SpriteTemplate gAcidPoisonDropletSpriteTemplate =
.tileTag = ANIM_TAG_POISON_BUBBLE, .tileTag = ANIM_TAG_POISON_BUBBLE,
.paletteTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE,
.oam = &gOamData_AffineDouble_ObjNormal_16x16, .oam = &gOamData_AffineDouble_ObjNormal_16x16,
.anims = sAnims_AcidPoisonDroplet, .anims = gAnims_AcidPoisonDroplet,
.images = NULL, .images = NULL,
.affineAnims = gAffineAnims_Droplet, .affineAnims = gAffineAnims_Droplet,
.callback = AnimAcidPoisonDroplet, .callback = AnimAcidPoisonDroplet,
@ -172,7 +171,7 @@ const struct SpriteTemplate gPoisonBubbleSpriteTemplate =
.tileTag = ANIM_TAG_POISON_BUBBLE, .tileTag = ANIM_TAG_POISON_BUBBLE,
.paletteTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE,
.oam = &gOamData_AffineNormal_ObjNormal_16x16, .oam = &gOamData_AffineNormal_ObjNormal_16x16,
.anims = sAnims_PoisonProjectile, .anims = gAnims_PoisonProjectile,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_Bubble, .affineAnims = sAffineAnims_Bubble,
.callback = AnimBubbleEffect, .callback = AnimBubbleEffect,
@ -194,7 +193,7 @@ const struct SpriteTemplate gGreenPoisonDrip =
.tileTag = ANIM_TAG_GREEN_POISON_BUBBLE, .tileTag = ANIM_TAG_GREEN_POISON_BUBBLE,
.paletteTag = ANIM_TAG_GREEN_POISON_BUBBLE, .paletteTag = ANIM_TAG_GREEN_POISON_BUBBLE,
.oam = &gOamData_AffineDouble_ObjNormal_16x16, .oam = &gOamData_AffineDouble_ObjNormal_16x16,
.anims = sAnims_AcidPoisonDroplet, .anims = gAnims_AcidPoisonDroplet,
.images = NULL, .images = NULL,
.affineAnims = gAffineAnims_Droplet, .affineAnims = gAffineAnims_Droplet,
.callback = AnimAcidPoisonDroplet, .callback = AnimAcidPoisonDroplet,
@ -205,7 +204,7 @@ const struct SpriteTemplate gGreenPoisonBubble =
.tileTag = ANIM_TAG_GREEN_POISON_BUBBLE, .tileTag = ANIM_TAG_GREEN_POISON_BUBBLE,
.paletteTag = ANIM_TAG_GREEN_POISON_BUBBLE, .paletteTag = ANIM_TAG_GREEN_POISON_BUBBLE,
.oam = &gOamData_AffineDouble_ObjNormal_16x16, .oam = &gOamData_AffineDouble_ObjNormal_16x16,
.anims = sAnims_PoisonProjectile, .anims = gAnims_PoisonProjectile,
.images = NULL, .images = NULL,
.affineAnims = gAffineAnims_PoisonProjectile, .affineAnims = gAffineAnims_PoisonProjectile,
.callback = AnimAcidPoisonBubble, .callback = AnimAcidPoisonBubble,
@ -445,7 +444,7 @@ static void AnimAcidPoisonBubble(struct Sprite *sprite)
sprite->callback = AnimAcidPoisonBubble_Step; sprite->callback = AnimAcidPoisonBubble_Step;
} }
static void AnimAcidPoisonBubble_Step(struct Sprite *sprite) void AnimAcidPoisonBubble_Step(struct Sprite *sprite)
{ {
if (TranslateAnimHorizontalArc(sprite)) if (TranslateAnimHorizontalArc(sprite))
DestroyAnimSprite(sprite); DestroyAnimSprite(sprite);

View File

@ -21,7 +21,6 @@ static void AnimQuestionMark_Step1(struct Sprite *);
static void AnimQuestionMark_Step2(struct Sprite *); static void AnimQuestionMark_Step2(struct Sprite *);
static void AnimRedX(struct Sprite *); static void AnimRedX(struct Sprite *);
static void AnimSkillSwapOrb(struct Sprite *); static void AnimSkillSwapOrb(struct Sprite *);
static void AnimPsychoBoost(struct Sprite *);
static void AnimTask_MeditateStretchAttacker_Step(u8); static void AnimTask_MeditateStretchAttacker_Step(u8);
static void AnimTask_Teleport_Step(u8); static void AnimTask_Teleport_Step(u8);
static void AnimTask_ImprisonOrbs_Step(u8); static void AnimTask_ImprisonOrbs_Step(u8);
@ -404,7 +403,7 @@ static const union AffineAnimCmd sAffineAnim_PsychoBoostOrb_1[] =
AFFINEANIMCMD_END, AFFINEANIMCMD_END,
}; };
static const union AffineAnimCmd *const sAffineAnims_PsychoBoostOrb[] = const union AffineAnimCmd *const gAffineAnims_PsychoBoostOrb[] =
{ {
sAffineAnim_PsychoBoostOrb_0, sAffineAnim_PsychoBoostOrb_0,
sAffineAnim_PsychoBoostOrb_1, sAffineAnim_PsychoBoostOrb_1,
@ -417,7 +416,7 @@ const struct SpriteTemplate gPsychoBoostOrbSpriteTemplate =
.oam = &gOamData_AffineDouble_ObjBlend_64x64, .oam = &gOamData_AffineDouble_ObjBlend_64x64,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_PsychoBoostOrb, .affineAnims = gAffineAnims_PsychoBoostOrb,
.callback = AnimPsychoBoost, .callback = AnimPsychoBoost,
}; };
@ -1236,7 +1235,7 @@ static void AnimTask_TransparentCloneGrowAndShrink_Step(u8 taskId)
} }
} }
static void AnimPsychoBoost(struct Sprite *sprite) void AnimPsychoBoost(struct Sprite *sprite)
{ {
switch (sprite->data[0]) switch (sprite->data[0])
{ {

View File

@ -9,11 +9,7 @@
#include "constants/rgb.h" #include "constants/rgb.h"
#include "constants/songs.h" #include "constants/songs.h"
static void AnimFallingRock(struct Sprite *);
static void AnimFallingRock_Step(struct Sprite *);
static void AnimRockFragment(struct Sprite *); static void AnimRockFragment(struct Sprite *);
static void AnimFlyingSandCrescent(struct Sprite *);
static void AnimRaiseSprite(struct Sprite *);
static void AnimTask_Rollout_Step(u8 taskId); static void AnimTask_Rollout_Step(u8 taskId);
static void AnimRolloutParticle(struct Sprite *); static void AnimRolloutParticle(struct Sprite *);
static void AnimRockTomb(struct Sprite *); static void AnimRockTomb(struct Sprite *);
@ -21,7 +17,6 @@ static void AnimRockTomb_Step(struct Sprite *sprite);
static void AnimRockBlastRock(struct Sprite *); static void AnimRockBlastRock(struct Sprite *);
static void AnimRockScatter(struct Sprite *); static void AnimRockScatter(struct Sprite *);
static void AnimRockScatter_Step(struct Sprite *sprite); static void AnimRockScatter_Step(struct Sprite *sprite);
static void AnimParticleInVortex(struct Sprite *);
static void AnimParticleInVortex_Step(struct Sprite *sprite); static void AnimParticleInVortex_Step(struct Sprite *sprite);
static void AnimTask_LoadSandstormBackground_Step(u8 taskId); static void AnimTask_LoadSandstormBackground_Step(u8 taskId);
static void sub_8111214(struct Task *task); static void sub_8111214(struct Task *task);
@ -96,7 +91,7 @@ static const union AffineAnimCmd sAffineAnim_Whirlpool[] =
AFFINEANIMCMD_JUMP(1), AFFINEANIMCMD_JUMP(1),
}; };
static const union AffineAnimCmd *const sAffineAnims_Whirlpool[] = const union AffineAnimCmd *const gAffineAnims_Whirlpool[] =
{ {
sAffineAnim_Whirlpool, sAffineAnim_Whirlpool,
}; };
@ -108,7 +103,7 @@ const struct SpriteTemplate gWhirlpoolSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjBlend_16x16, .oam = &gOamData_AffineNormal_ObjBlend_16x16,
.anims = gAnims_WaterMudOrb, .anims = gAnims_WaterMudOrb,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_Whirlpool, .affineAnims = gAffineAnims_Whirlpool,
.callback = AnimParticleInVortex, .callback = AnimParticleInVortex,
}; };
@ -255,7 +250,7 @@ static const union AffineAnimCmd sAffineAnim_BasicRock_1[] =
AFFINEANIMCMD_JUMP(0), AFFINEANIMCMD_JUMP(0),
}; };
static const union AffineAnimCmd *const sAffineAnims_BasicRock[] = const union AffineAnimCmd *const gAffineAnims_BasicRock[] =
{ {
sAffineAnim_BasicRock_0, sAffineAnim_BasicRock_0,
sAffineAnim_BasicRock_1, sAffineAnim_BasicRock_1,
@ -268,7 +263,7 @@ const struct SpriteTemplate gRockBlastRockSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjNormal_32x32, .oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = sAnims_BasicRock, .anims = sAnims_BasicRock,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_BasicRock, .affineAnims = gAffineAnims_BasicRock,
.callback = AnimRockBlastRock, .callback = AnimRockBlastRock,
}; };
@ -279,7 +274,7 @@ const struct SpriteTemplate gRockScatterSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjNormal_32x32, .oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = sAnims_BasicRock, .anims = sAnims_BasicRock,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_BasicRock, .affineAnims = gAffineAnims_BasicRock,
.callback = AnimRockScatter, .callback = AnimRockScatter,
}; };
@ -290,7 +285,7 @@ const struct SpriteTemplate gTwisterRockSpriteTemplate =
.oam = &gOamData_AffineOff_ObjNormal_32x32, .oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = sAnims_TwisterRock, .anims = sAnims_TwisterRock,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_BasicRock, .affineAnims = gAffineAnims_BasicRock,
.callback = AnimMoveTwisterParticle, .callback = AnimMoveTwisterParticle,
}; };
@ -301,7 +296,7 @@ const struct SpriteTemplate gWeatherBallRockDownSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjNormal_32x32, .oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = sAnims_WeatherBallRockDown, .anims = sAnims_WeatherBallRockDown,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_BasicRock, .affineAnims = gAffineAnims_BasicRock,
.callback = AnimWeatherBallDown, .callback = AnimWeatherBallDown,
}; };
@ -404,7 +399,7 @@ static void AnimStealthRockStep2(struct Sprite *sprite)
DestroyAnimSprite(sprite); DestroyAnimSprite(sprite);
} }
static void AnimFallingRock(struct Sprite *sprite) void AnimFallingRock(struct Sprite *sprite)
{ {
if (gBattleAnimArgs[3] != 0) if (gBattleAnimArgs[3] != 0)
SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->pos1.x, &sprite->pos1.y); SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->pos1.x, &sprite->pos1.y);
@ -427,7 +422,7 @@ static void AnimFallingRock(struct Sprite *sprite)
sprite->callback(sprite); sprite->callback(sprite);
} }
static void AnimFallingRock_Step(struct Sprite *sprite) void AnimFallingRock_Step(struct Sprite *sprite)
{ {
sprite->pos1.x += sprite->data[5]; sprite->pos1.x += sprite->data[5];
@ -470,7 +465,7 @@ static void AnimRockFragment(struct Sprite *sprite)
} }
// Swirls particle in vortex. Used for moves like Fire Spin or Sand Tomb // Swirls particle in vortex. Used for moves like Fire Spin or Sand Tomb
static void AnimParticleInVortex(struct Sprite *sprite) void AnimParticleInVortex(struct Sprite *sprite)
{ {
if (gBattleAnimArgs[6] == ANIM_ATTACKER) if (gBattleAnimArgs[6] == ANIM_ATTACKER)
InitSpritePosToAnimAttacker(sprite, 0); InitSpritePosToAnimAttacker(sprite, 0);
@ -600,7 +595,7 @@ static void AnimTask_LoadSandstormBackground_Step(u8 taskId)
// arg 1: projectile speed // arg 1: projectile speed
// arg 2: y pixel drop // arg 2: y pixel drop
// arg 3: ??? unknown (possibly a color bit) // arg 3: ??? unknown (possibly a color bit)
static void AnimFlyingSandCrescent(struct Sprite *sprite) void AnimFlyingSandCrescent(struct Sprite *sprite)
{ {
if (sprite->data[0] == 0) if (sprite->data[0] == 0)
{ {
@ -651,7 +646,7 @@ static void AnimFlyingSandCrescent(struct Sprite *sprite)
// arg 2: terminal y offset // arg 2: terminal y offset
// arg 3: duration // arg 3: duration
// arg 4: sprite size [1,5] // arg 4: sprite size [1,5]
static void AnimRaiseSprite(struct Sprite *sprite) void AnimRaiseSprite(struct Sprite *sprite)
{ {
StartSpriteAnim(sprite, gBattleAnimArgs[4]); StartSpriteAnim(sprite, gBattleAnimArgs[4]);
InitSpritePosToAnimAttacker(sprite, 0); InitSpritePosToAnimAttacker(sprite, 0);

View File

@ -29,7 +29,6 @@ static void AnimHydroCannonCharge(struct Sprite *);
static void AnimHydroCannonCharge_Step(struct Sprite *); static void AnimHydroCannonCharge_Step(struct Sprite *);
static void AnimHydroCannonBeam(struct Sprite *); static void AnimHydroCannonBeam(struct Sprite *);
static void AnimWaterGunDroplet(struct Sprite *); static void AnimWaterGunDroplet(struct Sprite *);
static void AnimSmallBubblePair(struct Sprite *);
static void AnimSmallBubblePair_Step(struct Sprite *); static void AnimSmallBubblePair_Step(struct Sprite *);
static void AnimSmallDriftingBubbles(struct Sprite *); static void AnimSmallDriftingBubbles(struct Sprite *);
static void AnimSmallDriftingBubbles_Step(struct Sprite *); static void AnimSmallDriftingBubbles_Step(struct Sprite *);
@ -38,7 +37,6 @@ static void AnimWaterSpoutRain(struct Sprite *);
static void AnimWaterSpoutRainHit(struct Sprite *); static void AnimWaterSpoutRainHit(struct Sprite *);
static void AnimWaterSportDroplet(struct Sprite *); static void AnimWaterSportDroplet(struct Sprite *);
static void AnimWaterSportDroplet_Step(struct Sprite *); static void AnimWaterSportDroplet_Step(struct Sprite *);
static void AnimWaterPulseBubble(struct Sprite *);
static void AnimWaterPulseBubble_Step(struct Sprite *); static void AnimWaterPulseBubble_Step(struct Sprite *);
static void AnimWaterPulseRingBubble(struct Sprite *); static void AnimWaterPulseRingBubble(struct Sprite *);
static void AnimWaterPulseRing_Step(struct Sprite *); static void AnimWaterPulseRing_Step(struct Sprite *);
@ -111,7 +109,7 @@ static const union AnimCmd sAnim_WaterBubbleProjectile[] =
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd *const sAnims_WaterBubbleProjectile[] = const union AnimCmd *const gAnims_WaterBubbleProjectile[] =
{ {
sAnim_WaterBubbleProjectile, sAnim_WaterBubbleProjectile,
}; };
@ -121,7 +119,7 @@ const struct SpriteTemplate gWaterBubbleProjectileSpriteTemplate =
.tileTag = ANIM_TAG_BUBBLE, .tileTag = ANIM_TAG_BUBBLE,
.paletteTag = ANIM_TAG_BUBBLE, .paletteTag = ANIM_TAG_BUBBLE,
.oam = &gOamData_AffineNormal_ObjBlend_16x16, .oam = &gOamData_AffineNormal_ObjBlend_16x16,
.anims = sAnims_WaterBubbleProjectile, .anims = gAnims_WaterBubbleProjectile,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_WaterBubbleProjectile, .affineAnims = sAffineAnims_WaterBubbleProjectile,
.callback = AnimWaterBubbleProjectile, .callback = AnimWaterBubbleProjectile,
@ -245,7 +243,7 @@ static const union AnimCmd sAnim_FlamethrowerFlame[] =
ANIMCMD_JUMP(0), ANIMCMD_JUMP(0),
}; };
static const union AnimCmd *const sAnims_FlamethrowerFlame[] = const union AnimCmd *const gAnims_FlamethrowerFlame[] =
{ {
sAnim_FlamethrowerFlame, sAnim_FlamethrowerFlame,
}; };
@ -255,7 +253,7 @@ const struct SpriteTemplate gFlamethrowerFlameSpriteTemplate =
.tileTag = ANIM_TAG_SMALL_EMBER, .tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER,
.oam = &gOamData_AffineOff_ObjNormal_32x32, .oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = sAnims_FlamethrowerFlame, .anims = gAnims_FlamethrowerFlame,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimToTargetInSinWave, .callback = AnimToTargetInSinWave,
@ -266,7 +264,7 @@ const struct SpriteTemplate gFirePledgeSpriteTemplate =
.tileTag = ANIM_TAG_SMALL_EMBER, .tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER,
.oam = &gOamData_AffineOff_ObjNormal_32x32, .oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = sAnims_FlamethrowerFlame, .anims = gAnims_FlamethrowerFlame,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimFlyUpTarget, .callback = AnimFlyUpTarget,
@ -425,7 +423,7 @@ static const union AnimCmd sAnim_WeatherBallWaterDown[] =
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd *const sAnims_WaterPulseBubble[] = const union AnimCmd *const gAnims_WaterPulseBubble[] =
{ {
sAnim_WaterPulseBubble_0, sAnim_WaterPulseBubble_0,
sAnim_WaterPulseBubble_1, sAnim_WaterPulseBubble_1,
@ -473,7 +471,7 @@ const struct SpriteTemplate gWaterPulseBubbleSpriteTemplate =
.tileTag = ANIM_TAG_SMALL_BUBBLES, .tileTag = ANIM_TAG_SMALL_BUBBLES,
.paletteTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES,
.oam = &gOamData_AffineOff_ObjNormal_8x8, .oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_WaterPulseBubble, .anims = gAnims_WaterPulseBubble,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimWaterPulseBubble, .callback = AnimWaterPulseBubble,
@ -484,7 +482,7 @@ const struct SpriteTemplate gWaterPulseRingBubbleSpriteTemplate =
.tileTag = ANIM_TAG_SMALL_BUBBLES, .tileTag = ANIM_TAG_SMALL_BUBBLES,
.paletteTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES,
.oam = &gOamData_AffineNormal_ObjNormal_8x8, .oam = &gOamData_AffineNormal_ObjNormal_8x8,
.anims = sAnims_WaterPulseBubble, .anims = gAnims_WaterPulseBubble,
.images = NULL, .images = NULL,
.affineAnims = sAffineAnims_WaterPulseRingBubble, .affineAnims = sAffineAnims_WaterPulseRingBubble,
.callback = AnimWaterPulseRingBubble, .callback = AnimWaterPulseRingBubble,
@ -1033,7 +1031,7 @@ static void AnimWaterGunDroplet(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
} }
static void AnimSmallBubblePair(struct Sprite *sprite) void AnimSmallBubblePair(struct Sprite *sprite)
{ {
if (gBattleAnimArgs[3] != ANIM_ATTACKER) if (gBattleAnimArgs[3] != ANIM_ATTACKER)
InitSpritePosToAnimTarget(sprite, TRUE); InitSpritePosToAnimTarget(sprite, TRUE);
@ -1077,10 +1075,20 @@ void AnimTask_CreateSurfWave(u8 taskId)
AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimBgTilemap_SurfContest, 1); AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimBgTilemap_SurfContest, 1);
} }
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Surf, animBg.tilesOffset); AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Surf, animBg.tilesOffset);
if (gBattleAnimArgs[0] == 0) switch (gBattleAnimArgs[0])
{
case ANIM_SURF_PAL_SURF:
default:
LoadCompressedPalette(gBattleAnimBgPalette_Surf, animBg.paletteId * 16, 32); LoadCompressedPalette(gBattleAnimBgPalette_Surf, animBg.paletteId * 16, 32);
else break;
case ANIM_SURF_PAL_MUDDY_WATER:
LoadCompressedPalette(gBattleAnimBackgroundImageMuddyWater_Pal, animBg.paletteId * 16, 32); LoadCompressedPalette(gBattleAnimBackgroundImageMuddyWater_Pal, animBg.paletteId * 16, 32);
break;
case ANIM_SURF_PAL_SLUDGE_WAVE:
LoadCompressedPalette(gBattleAnimBgPalette_SludgeWave, animBg.paletteId * 16, 32);
break;
}
taskId2 = CreateTask(AnimTask_SurfWaveScanlineEffect, gTasks[taskId].priority + 1); taskId2 = CreateTask(AnimTask_SurfWaveScanlineEffect, gTasks[taskId].priority + 1);
gTasks[taskId].data[15] = taskId2; gTasks[taskId].data[15] = taskId2;
gTasks[taskId2].data[0] = 0; gTasks[taskId2].data[0] = 0;
@ -2125,7 +2133,7 @@ static void AnimWaterSportDroplet_Step(struct Sprite *sprite)
} }
} }
static void AnimWaterPulseBubble(struct Sprite *sprite) void AnimWaterPulseBubble(struct Sprite *sprite)
{ {
sprite->pos1.x = gBattleAnimArgs[0]; sprite->pos1.x = gBattleAnimArgs[0];
sprite->pos1.y = gBattleAnimArgs[1]; sprite->pos1.y = gBattleAnimArgs[1];

View File

@ -481,7 +481,7 @@ static void Task_ClearBitWhenSpecialAnimDone(u8 taskId)
// Great function to include newly added moves that don't have animation yet. // Great function to include newly added moves that don't have animation yet.
bool8 IsMoveWithoutAnimation(u16 moveId, u8 animationTurn) bool8 IsMoveWithoutAnimation(u16 moveId, u8 animationTurn)
{ {
if (moveId >= (MOVES_COUNT_GEN6 - 1)) if (moveId >= (MOVES_COUNT - 1))
return TRUE; return TRUE;
else else
return FALSE; return FALSE;