Finish battle_anim_mons doc

This commit is contained in:
GriffinR
2021-11-08 13:18:58 -05:00
parent ae2602b5a5
commit e3b6337c3a
26 changed files with 229 additions and 170 deletions
+5 -5
View File
@@ -74,7 +74,7 @@ void HandleIntroSlide(u8 terrainId);
int GetAnimBgAttribute(u8 bgId, u8 attributeId); int GetAnimBgAttribute(u8 bgId, u8 attributeId);
// battle_anim_mons.c // battle_anim_mons.c
void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite); void TranslateSpriteInEllipse(struct Sprite *sprite);
void AnimTranslateLinearAndFlicker(struct Sprite *sprite); void AnimTranslateLinearAndFlicker(struct Sprite *sprite);
void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite); void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite);
void AnimWeatherBallUp(struct Sprite *sprite); void AnimWeatherBallUp(struct Sprite *sprite);
@@ -103,7 +103,7 @@ u8 GetBattlerYCoordWithElevation(u8 battlerId);
void WaitAnimForDuration(struct Sprite *sprite); void WaitAnimForDuration(struct Sprite *sprite);
void AnimTravelDiagonally(struct Sprite *sprite); void AnimTravelDiagonally(struct Sprite *sprite);
void InitAnimLinearTranslation(struct Sprite *sprite); void InitAnimLinearTranslation(struct Sprite *sprite);
void AnimTranslateLinear_WaitEnd(struct Sprite *sprite); void AnimTranslateLinear_WithFollowup(struct Sprite *sprite);
u8 GetBattlerSpriteBGPriority(u8 battlerId); u8 GetBattlerSpriteBGPriority(u8 battlerId);
void *LoadPointerFromVars(s16 bottom, s16 top); void *LoadPointerFromVars(s16 bottom, s16 top);
void StorePointerInVars(s16 *bottom, s16 *top, const void *ptr); void StorePointerInVars(s16 *bottom, s16 *top, const void *ptr);
@@ -128,7 +128,7 @@ u8 CreateInvisibleSpriteCopy(int, u8, int);
void AnimLoadCompressedBgTilemapHandleContest(struct BattleAnimBgData*, const void*, bool32); void AnimLoadCompressedBgTilemapHandleContest(struct BattleAnimBgData*, const void*, bool32);
void AnimLoadCompressedBgGfx(u32, const u32*, u32); void AnimLoadCompressedBgGfx(u32, const u32*, u32);
void UpdateAnimBg3ScreenSize(bool8); void UpdateAnimBg3ScreenSize(bool8);
void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *); void TranslateSpriteInGrowingCircle(struct Sprite *);
void sub_80A653C(struct Sprite *); void sub_80A653C(struct Sprite *);
void SetBattlerSpriteYOffsetFromYScale(u8 spriteId); void SetBattlerSpriteYOffsetFromYScale(u8 spriteId);
void PrepareEruptAnimTaskData(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7); void PrepareEruptAnimTaskData(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7);
@@ -142,12 +142,12 @@ void TranslateSpriteLinearById(struct Sprite *sprite);
void TranslateSpriteLinear(struct Sprite *sprite); void TranslateSpriteLinear(struct Sprite *sprite);
void AnimSpriteOnMonPos(struct Sprite *sprite); void AnimSpriteOnMonPos(struct Sprite *sprite);
void InitAnimLinearTranslationWithSpeedAndPos(struct Sprite *sprite); void InitAnimLinearTranslationWithSpeedAndPos(struct Sprite *sprite);
void TranslateSpriteInCircleOverDuration(struct Sprite *sprite); void TranslateSpriteInCircle(struct Sprite *sprite);
void SetGrayscaleOrOriginalPalette(u16 palNum, bool8 restoreOriginal); void SetGrayscaleOrOriginalPalette(u16 palNum, bool8 restoreOriginal);
void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds); void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds);
bool8 RunAffineAnimFromTaskData(struct Task *task); bool8 RunAffineAnimFromTaskData(struct Task *task);
void AnimThrowProjectile(struct Sprite *sprite); void AnimThrowProjectile(struct Sprite *sprite);
void sub_80A6BFC(struct BattleAnimBgData *unk, u8 unused); void GetBgDataForTransform(struct BattleAnimBgData *dest, u8 battlerId);
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, bool32 ignoreDeoxysForm); u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, bool32 ignoreDeoxysForm);
void ResetSpriteRotScale_PreserveAffine(struct Sprite *sprite); void ResetSpriteRotScale_PreserveAffine(struct Sprite *sprite);
void TradeMenuBouncePartySprites(struct Sprite *sprite); void TradeMenuBouncePartySprites(struct Sprite *sprite);
+1 -1
View File
@@ -65,7 +65,7 @@ void DoBounceEffect(u8 battlerId, u8 b, s8 c, s8 d);
void EndBounceEffect(u8 battlerId, bool8 b); void EndBounceEffect(u8 battlerId, bool8 b);
void SpriteCB_PlayerMonFromBall(struct Sprite *sprite); void SpriteCB_PlayerMonFromBall(struct Sprite *sprite);
void SpriteCB_TrainerThrowObject(struct Sprite *sprite); void SpriteCB_TrainerThrowObject(struct Sprite *sprite);
void sub_8039E9C(struct Sprite *sprite); void AnimSetCenterToCornerVecX(struct Sprite *sprite);
void BeginBattleIntroDummy(void); void BeginBattleIntroDummy(void);
void BeginBattleIntro(void); void BeginBattleIntro(void);
void SwitchInClearSetData(void); void SwitchInClearSetData(void);
+18 -18
View File
@@ -212,12 +212,12 @@ static void AnimMegahornHorn(struct Sprite *sprite)
gBattleAnimArgs[0] = -gBattleAnimArgs[0]; gBattleAnimArgs[0] = -gBattleAnimArgs[0];
} }
sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[0];
sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1];
sprite->data[0] = gBattleAnimArgs[4]; sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3];
sprite->callback = StartAnimLinearTranslation; sprite->callback = StartAnimLinearTranslation;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
@@ -236,12 +236,12 @@ static void AnimLeechLifeNeedle(struct Sprite *sprite)
gBattleAnimArgs[0] = -gBattleAnimArgs[0]; gBattleAnimArgs[0] = -gBattleAnimArgs[0];
} }
sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[0];
sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1];
sprite->data[0] = gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[2];
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
sprite->callback = StartAnimLinearTranslation; sprite->callback = StartAnimLinearTranslation;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
@@ -266,8 +266,8 @@ static void AnimTranslateWebThread(struct Sprite *sprite)
if (!gBattleAnimArgs[4]) if (!gBattleAnimArgs[4])
{ {
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
} }
else else
{ {
@@ -394,8 +394,8 @@ static void AnimTranslateStinger(struct Sprite *sprite)
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, 1);
lVarX = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; lVarX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3];
rot = ArcTan2Neg(lVarX - sprite->x, lVarY - sprite->y); rot = ArcTan2Neg(lVarX - sprite->x, lVarY - sprite->y);
rot += 0xC000; rot += 0xC000;
TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rot); TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rot);
@@ -423,8 +423,8 @@ static void AnimMissileArc(struct Sprite *sprite)
gBattleAnimArgs[2] = -gBattleAnimArgs[2]; gBattleAnimArgs[2] = -gBattleAnimArgs[2];
sprite->data[0] = gBattleAnimArgs[4]; sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3];
sprite->data[5] = gBattleAnimArgs[5]; sprite->data[5] = gBattleAnimArgs[5];
InitAnimArcTranslation(sprite); InitAnimArcTranslation(sprite);
@@ -473,13 +473,13 @@ static void AnimTailGlowOrb(struct Sprite *sprite)
{ {
if (gBattleAnimArgs[0] == ANIM_ATTACKER) if (gBattleAnimArgs[0] == ANIM_ATTACKER)
{ {
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + 18; sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + 18;
} }
else else
{ {
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 18; sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + 18;
} }
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
+12 -12
View File
@@ -189,8 +189,8 @@ const struct SpriteTemplate gOverheatFlameSpriteTemplate =
static void AnimOutrageFlame(struct Sprite *sprite) static void AnimOutrageFlame(struct Sprite *sprite)
{ {
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
{ {
sprite->x -= gBattleAnimArgs[0]; sprite->x -= gBattleAnimArgs[0];
@@ -215,8 +215,8 @@ static void AnimOutrageFlame(struct Sprite *sprite)
static void StartDragonFireTranslation(struct Sprite *sprite) static void StartDragonFireTranslation(struct Sprite *sprite)
{ {
SetSpriteCoordsToAnimAttackerCoords(sprite); SetSpriteCoordsToAnimAttackerCoords(sprite);
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
{ {
sprite->x -= gBattleAnimArgs[1]; sprite->x -= gBattleAnimArgs[1];
@@ -242,13 +242,13 @@ static void AnimDragonRageFirePlume(struct Sprite *sprite)
{ {
if (gBattleAnimArgs[0] == 0) if (gBattleAnimArgs[0] == 0)
{ {
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X);
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y);
} }
else else
{ {
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y);
} }
SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[1]); SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[1]);
@@ -270,8 +270,8 @@ static void AnimDragonDanceOrb(struct Sprite *sprite)
{ {
u16 r5; u16 r5;
u16 r0; u16 r0;
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
sprite->data[4] = 0; sprite->data[4] = 0;
sprite->data[5] = 1; sprite->data[5] = 1;
sprite->data[6] = gBattleAnimArgs[0]; sprite->data[6] = gBattleAnimArgs[0];
@@ -417,8 +417,8 @@ static void AnimOverheatFlame(struct Sprite *sprite)
{ {
int i; int i;
int yAmplitude = (gBattleAnimArgs[2] * 3) / 5; int yAmplitude = (gBattleAnimArgs[2] * 3) / 5;
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[4]; sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[4];
sprite->data[1] = Cos(gBattleAnimArgs[1], gBattleAnimArgs[2]); sprite->data[1] = Cos(gBattleAnimArgs[1], gBattleAnimArgs[2]);
sprite->data[2] = Sin(gBattleAnimArgs[1], yAmplitude); sprite->data[2] = Sin(gBattleAnimArgs[1], yAmplitude);
sprite->x += sprite->data[1] * gBattleAnimArgs[0]; sprite->x += sprite->data[1] * gBattleAnimArgs[0];
+35 -35
View File
@@ -4155,13 +4155,13 @@ static void AnimSparkingStars(struct Sprite* sprite)
{ {
if (!gBattleAnimArgs[6]) if (!gBattleAnimArgs[6])
{ {
sprite->x = GetBattlerSpriteCoord(battler, 0); sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X);
sprite->y = GetBattlerSpriteCoord(battler, 1) + gBattleAnimArgs[1]; sprite->y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y) + gBattleAnimArgs[1];
} }
else else
{ {
sprite->x = GetBattlerSpriteCoord(battler, 2); sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2);
sprite->y = GetBattlerSpriteCoord(battler, 3) + gBattleAnimArgs[1]; sprite->y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1];
} }
SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]);
@@ -4324,8 +4324,8 @@ static void AnimLockOnTarget_Step3(struct Sprite* sprite)
sprite->y2 = 0; sprite->y2 = 0;
sprite->x2 = 0; sprite->x2 = 0;
sprite->data[0] = 6; sprite->data[0] = 6;
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + a; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + a;
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + b; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + b;
sprite->callback = StartAnimLinearTranslation; sprite->callback = StartAnimLinearTranslation;
StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step5); StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step5);
} }
@@ -4709,13 +4709,13 @@ static void AnimSlashSlice(struct Sprite* sprite)
{ {
if (gBattleAnimArgs[0] == 0) if (gBattleAnimArgs[0] == 0)
{ {
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[1];
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2];
} }
else else
{ {
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[1]; sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[1];
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[2]; sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2];
} }
sprite->data[0] = 0; sprite->data[0] = 0;
@@ -4726,16 +4726,16 @@ static void AnimSlashSlice(struct Sprite* sprite)
static void AnimFalseSwipeSlice(struct Sprite* sprite) static void AnimFalseSwipeSlice(struct Sprite* sprite)
{ {
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 0xFFD0; sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + 0xFFD0;
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSlice_Step1); StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSlice_Step1);
sprite->callback = RunStoredCallbackWhenAnimEnds; sprite->callback = RunStoredCallbackWhenAnimEnds;
} }
static void AnimFalseSwipePositionedSlice(struct Sprite* sprite) static void AnimFalseSwipePositionedSlice(struct Sprite* sprite)
{ {
sprite->x = sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 0xFFD0 + gBattleAnimArgs[0]; sprite->x = sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + 0xFFD0 + gBattleAnimArgs[0];
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
StartSpriteAnim(sprite, 1); StartSpriteAnim(sprite, 1);
sprite->data[0] = 0; sprite->data[0] = 0;
sprite->data[1] = 0; sprite->data[1] = 0;
@@ -4776,13 +4776,13 @@ static void AnimEndureEnergy(struct Sprite* sprite)
{ {
if (gBattleAnimArgs[0] == 0) if (gBattleAnimArgs[0] == 0)
{ {
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[1]; sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X) + gBattleAnimArgs[1];
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[2]; sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + gBattleAnimArgs[2];
} }
else else
{ {
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[1]; sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X) + gBattleAnimArgs[1];
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[2]; sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + gBattleAnimArgs[2];
} }
sprite->data[0] = 0; sprite->data[0] = 0;
@@ -4805,8 +4805,8 @@ static void AnimEndureEnergy_Step(struct Sprite* sprite)
static void AnimSharpenSphere(struct Sprite* sprite) static void AnimSharpenSphere(struct Sprite* sprite)
{ {
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) - 12; sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) - 12;
sprite->data[0] = 0; sprite->data[0] = 0;
sprite->data[1] = 2; sprite->data[1] = 2;
sprite->data[2] = 0; sprite->data[2] = 0;
@@ -4844,8 +4844,8 @@ static void AnimConversion(struct Sprite* sprite)
{ {
if (sprite->data[0] == 0) if (sprite->data[0] == 0)
{ {
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[0]; sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X) + gBattleAnimArgs[0];
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[1]; sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + gBattleAnimArgs[1];
if (IsContest()) if (IsContest())
sprite->y += 10; sprite->y += 10;
@@ -4898,8 +4898,8 @@ static void AnimConversion2_Step(struct Sprite* sprite)
{ {
sprite->animPaused = 0; sprite->animPaused = 0;
sprite->data[0] = 30; sprite->data[0] = 30;
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
sprite->callback = StartAnimLinearTranslation; sprite->callback = StartAnimLinearTranslation;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
} }
@@ -4970,7 +4970,7 @@ static void AnimMoon_Step(struct Sprite* sprite)
static void AnimMoonlightSparkle(struct Sprite* sprite) static void AnimMoonlightSparkle(struct Sprite* sprite)
{ {
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[0]; sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[0];
sprite->y = gBattleAnimArgs[1]; sprite->y = gBattleAnimArgs[1];
sprite->data[0] = 0; sprite->data[0] = 0;
sprite->data[1] = 0; sprite->data[1] = 0;
@@ -5111,8 +5111,8 @@ static void AnimHornHit(struct Sprite* sprite)
sprite->data[0] = 0; sprite->data[0] = 0;
sprite->data[1] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[2];
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[0];
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1];
sprite->data[6] = sprite->x; sprite->data[6] = sprite->x;
sprite->data[7] = sprite->y; sprite->data[7] = sprite->y;
if (IsContest()) if (IsContest())
@@ -5299,8 +5299,8 @@ static void AnimWavyMusicNotes(struct Sprite* sprite)
} }
else else
{ {
a = GetBattlerSpriteCoord(gBattleAnimTarget, 2); a = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
b = GetBattlerSpriteCoord(gBattleAnimTarget, 3); b = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
} }
sprite->data[4] = sprite->x << 4; sprite->data[4] = sprite->x << 4;
@@ -5363,8 +5363,8 @@ static void AnimFlyingMusicNotes(struct Sprite* sprite)
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
gBattleAnimArgs[1] *= -1; gBattleAnimArgs[1] *= -1;
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[1];
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2];
StartSpriteAnim(sprite, gBattleAnimArgs[0]); StartSpriteAnim(sprite, gBattleAnimArgs[0]);
sprite->data[2] = 0; sprite->data[2] = 0;
sprite->data[3] = 0; sprite->data[3] = 0;
@@ -5407,8 +5407,8 @@ static void AnimBellyDrumHand(struct Sprite* sprite)
a = -16; a = -16;
} }
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + a; sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + a;
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + 8; sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + 8;
sprite->data[0] = 8; sprite->data[0] = 8;
sprite->callback = WaitAnimForDuration; sprite->callback = WaitAnimForDuration;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
@@ -5462,7 +5462,7 @@ void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite)
else else
sprite->x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_LEFT) - 8; sprite->x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_LEFT) - 8;
sprite->y = GetBattlerSpriteCoord(battler, 3) - (s16)GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 4; sprite->y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) - (s16)GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 4;
} }
static void AnimThoughtBubble(struct Sprite* sprite) static void AnimThoughtBubble(struct Sprite* sprite)
@@ -5525,7 +5525,7 @@ static void AnimFollowMeFinger(struct Sprite* sprite)
else else
battler = gBattleAnimTarget; battler = gBattleAnimTarget;
sprite->x = GetBattlerSpriteCoord(battler, 0); sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X);
sprite->y = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_TOP); sprite->y = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_TOP);
if (sprite->y <= 9) if (sprite->y <= 9)
sprite->y = 10; sprite->y = 10;
+16 -6
View File
@@ -1262,20 +1262,30 @@ const struct SpriteTemplate gGuardRingSpriteTemplate =
.callback = AnimGuardRing, .callback = AnimGuardRing,
}; };
#define sAmplitudeX data[1]
#define sCircleSpeed data[2]
#define sMoveSteps data[3]
#define sAmplitudeY data[4]
static void AnimCirclingFinger(struct Sprite *sprite) static void AnimCirclingFinger(struct Sprite *sprite)
{ {
SetSpriteCoordsToAnimAttackerCoords(sprite); SetSpriteCoordsToAnimAttackerCoords(sprite);
SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]);
sprite->y += gBattleAnimArgs[1]; sprite->y += gBattleAnimArgs[1];
sprite->data[1] = gBattleAnimArgs[2]; sprite->sAmplitudeX = gBattleAnimArgs[2];
sprite->data[2] = gBattleAnimArgs[4]; sprite->sCircleSpeed = gBattleAnimArgs[4];
sprite->data[3] = gBattleAnimArgs[5]; sprite->sMoveSteps = gBattleAnimArgs[5];
sprite->data[4] = gBattleAnimArgs[3]; sprite->sAmplitudeY = gBattleAnimArgs[3];
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = TranslateSpriteInEllipseOverDuration; sprite->callback = TranslateSpriteInEllipse;
sprite->callback(sprite); sprite->callback(sprite);
} }
#undef sAmplitudeX
#undef sCircleSpeed
#undef sMoveSteps
#undef sAmplitudeY
static void AnimBouncingMusicNote(struct Sprite *sprite) static void AnimBouncingMusicNote(struct Sprite *sprite)
{ {
u8 battler; u8 battler;
@@ -1883,7 +1893,7 @@ static void AnimRazorWindTornado(struct Sprite *sprite)
sprite->data[2] = gBattleAnimArgs[5]; sprite->data[2] = gBattleAnimArgs[5];
sprite->data[3] = gBattleAnimArgs[6]; sprite->data[3] = gBattleAnimArgs[6];
sprite->data[4] = gBattleAnimArgs[3]; sprite->data[4] = gBattleAnimArgs[3];
sprite->callback = TranslateSpriteInCircleOverDuration; sprite->callback = TranslateSpriteInCircle;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
sprite->callback(sprite); sprite->callback(sprite);
} }
+1 -1
View File
@@ -2283,7 +2283,7 @@ void AnimTask_TransformMon(u8 taskId)
break; break;
case 2: case 2:
HandleSpeciesGfxDataChange(gBattleAnimAttacker, gBattleAnimTarget, gTasks[taskId].data[10]); HandleSpeciesGfxDataChange(gBattleAnimAttacker, gBattleAnimTarget, gTasks[taskId].data[10]);
sub_80A6BFC(&animBg, gBattleAnimAttacker); GetBgDataForTransform(&animBg, gBattleAnimAttacker);
if (IsContest()) if (IsContest())
position = B_POSITION_PLAYER_LEFT; position = B_POSITION_PLAYER_LEFT;
+1 -1
View File
@@ -509,7 +509,7 @@ static void AnimUnusedCirclingShock(struct Sprite *sprite)
sprite->data[2] = gBattleAnimArgs[3]; sprite->data[2] = gBattleAnimArgs[3];
sprite->data[3] = gBattleAnimArgs[4]; sprite->data[3] = gBattleAnimArgs[4];
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = TranslateSpriteInCircleOverDuration; sprite->callback = TranslateSpriteInCircle;
} }
static void AnimSparkElectricity(struct Sprite *sprite) static void AnimSparkElectricity(struct Sprite *sprite)
+2 -2
View File
@@ -827,7 +827,7 @@ static void AnimSuperpowerOrb_Step(struct Sprite *sprite)
InitAnimLinearTranslation(sprite); InitAnimLinearTranslation(sprite);
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = AnimTranslateLinear_WaitEnd; sprite->callback = AnimTranslateLinear_WithFollowup;
} }
} }
@@ -923,7 +923,7 @@ static void AnimSuperpowerFireball(struct Sprite *sprite)
InitAnimLinearTranslation(sprite); InitAnimLinearTranslation(sprite);
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
sprite->callback = AnimTranslateLinear_WaitEnd; sprite->callback = AnimTranslateLinear_WithFollowup;
} }
static void AnimArmThrustHit_Step(struct Sprite *sprite) static void AnimArmThrustHit_Step(struct Sprite *sprite)
+1 -1
View File
@@ -472,7 +472,7 @@ static void AnimFireSpiralInward(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
sprite->callback = TranslateSpriteInGrowingCircleOverDuration; sprite->callback = TranslateSpriteInGrowingCircle;
sprite->callback(sprite); sprite->callback(sprite);
} }
+1 -1
View File
@@ -592,7 +592,7 @@ static void AnimIcePunchSwirlingParticle(struct Sprite *sprite)
sprite->data[3] = 30; sprite->data[3] = 30;
sprite->data[4] = -512; sprite->data[4] = -512;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
sprite->callback = TranslateSpriteInGrowingCircleOverDuration; sprite->callback = TranslateSpriteInGrowingCircle;
sprite->callback(sprite); sprite->callback(sprite);
} }
+103 -60
View File
@@ -20,7 +20,7 @@
extern const struct OamData gOamData_AffineNormal_ObjNormal_64x64; extern const struct OamData gOamData_AffineNormal_ObjNormal_64x64;
static void sub_80A6FB4(struct Sprite *sprite); static void AnimTranslateLinear_WithFollowup_SetCornerVecX(struct Sprite *sprite);
static void AnimFastTranslateLinearWaitEnd(struct Sprite *sprite); static void AnimFastTranslateLinearWaitEnd(struct Sprite *sprite);
static void AnimThrowProjectile_Step(struct Sprite *sprite); static void AnimThrowProjectile_Step(struct Sprite *sprite);
static void AnimBattlerTrace(struct Sprite *sprite); static void AnimBattlerTrace(struct Sprite *sprite);
@@ -383,7 +383,7 @@ u8 GetAnimBattlerSpriteId(u8 animBattler)
} }
else else
{ {
return 0xff; return SPRITE_NONE;
} }
} }
else if (animBattler == ANIM_TARGET) else if (animBattler == ANIM_TARGET)
@@ -395,13 +395,13 @@ u8 GetAnimBattlerSpriteId(u8 animBattler)
} }
else else
{ {
return 0xff; return SPRITE_NONE;
} }
} }
else if (animBattler == ANIM_ATK_PARTNER) else if (animBattler == ANIM_ATK_PARTNER)
{ {
if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
return 0xff; return SPRITE_NONE;
else else
return gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]; return gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)];
} }
@@ -410,7 +410,7 @@ u8 GetAnimBattlerSpriteId(u8 animBattler)
if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget))) if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget)))
return gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimTarget)]; return gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimTarget)];
else else
return 0xff; return SPRITE_NONE;
} }
} }
@@ -426,18 +426,38 @@ void SetCallbackToStoredInData6(struct Sprite *sprite)
sprite->callback = (void (*)(struct Sprite *))callback; sprite->callback = (void (*)(struct Sprite *))callback;
} }
void TranslateSpriteInCircleOverDuration(struct Sprite *sprite) // Sprite data for TranslateSpriteInCircle/Ellipse and related
#define sCirclePos data[0]
#define sAmplitude data[1]
#define sCircleSpeed data[2]
#define sDuration data[3]
// TranslateSpriteInGrowingCircle
#define sAmplitudeSpeed data[4]
#define sAmplitudeChange data[5]
// TranslateSpriteInEllipse
#define sAmplitudeX sAmplitude
#define sAmplitudeY data[4]
// TranslateSpriteInWavePattern
#define sCirclePosX sCirclePos
#define sCircleSpeedX sCircleSpeed
#define sCirclePosY data[4]
#define sCircleSpeedY data[5]
void TranslateSpriteInCircle(struct Sprite *sprite)
{ {
if (sprite->data[3]) if (sprite->sDuration)
{ {
sprite->x2 = Sin(sprite->data[0], sprite->data[1]); sprite->x2 = Sin(sprite->sCirclePos, sprite->sAmplitude);
sprite->y2 = Cos(sprite->data[0], sprite->data[1]); sprite->y2 = Cos(sprite->sCirclePos, sprite->sAmplitude);
sprite->data[0] += sprite->data[2]; sprite->sCirclePos += sprite->sCircleSpeed;
if (sprite->data[0] >= 0x100) if (sprite->sCirclePos >= 0x100)
sprite->data[0] -= 0x100; sprite->sCirclePos -= 0x100;
else if (sprite->data[0] < 0) else if (sprite->sCirclePos < 0)
sprite->data[0] += 0x100; sprite->sCirclePos += 0x100;
sprite->data[3]--; sprite->sDuration--;
} }
else else
{ {
@@ -445,19 +465,19 @@ void TranslateSpriteInCircleOverDuration(struct Sprite *sprite)
} }
} }
void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite) void TranslateSpriteInGrowingCircle(struct Sprite *sprite)
{ {
if (sprite->data[3]) if (sprite->sDuration)
{ {
sprite->x2 = Sin(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]); sprite->x2 = Sin(sprite->sCirclePos, (sprite->sAmplitudeChange >> 8) + sprite->sAmplitude);
sprite->y2 = Cos(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]); sprite->y2 = Cos(sprite->sCirclePos, (sprite->sAmplitudeChange >> 8) + sprite->sAmplitude);
sprite->data[0] += sprite->data[2]; sprite->sCirclePos += sprite->sCircleSpeed;
sprite->data[5] += sprite->data[4]; sprite->sAmplitudeChange += sprite->sAmplitudeSpeed;
if (sprite->data[0] >= 0x100) if (sprite->sCirclePos >= 0x100)
sprite->data[0] -= 0x100; sprite->sCirclePos -= 0x100;
else if (sprite->data[0] < 0) else if (sprite->sCirclePos < 0)
sprite->data[0] += 0x100; sprite->sCirclePos += 0x100;
sprite->data[3]--; sprite->sDuration--;
} }
else else
{ {
@@ -466,23 +486,27 @@ void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite)
} }
// Unused // Unused
static void sub_80A63C8(struct Sprite *sprite) // Exact shape depends on arguments. Can move in a figure-8-like pattern, or circular, etc.
static void TranslateSpriteInWavePattern(struct Sprite *sprite)
{ {
if (sprite->data[3]) if (sprite->sDuration)
{ {
sprite->x2 = Sin(sprite->data[0], sprite->data[1]); sprite->x2 = Sin(sprite->sCirclePosX, sprite->sAmplitude);
sprite->y2 = Cos(sprite->data[4], sprite->data[1]); sprite->y2 = Cos(sprite->sCirclePosY, sprite->sAmplitude);
sprite->data[0] += sprite->data[2]; sprite->sCirclePosX += sprite->sCircleSpeedX;
sprite->data[4] += sprite->data[5]; sprite->sCirclePosY += sprite->sCircleSpeedY;
if (sprite->data[0] >= 0x100)
sprite->data[0] -= 0x100; if (sprite->sCirclePosX >= 0x100)
else if (sprite->data[0] < 0) sprite->sCirclePosX -= 0x100;
sprite->data[0] += 0x100; else if (sprite->sCirclePosX < 0)
if (sprite->data[4] >= 0x100) sprite->sCirclePosX += 0x100;
sprite->data[4] -= 0x100;
else if (sprite->data[4] < 0) if (sprite->sCirclePosY >= 0x100)
sprite->data[4] += 0x100; sprite->sCirclePosY -= 0x100;
sprite->data[3]--; else if (sprite->sCirclePosY < 0)
sprite->sCirclePosY += 0x100;
sprite->sDuration--;
} }
else else
{ {
@@ -490,18 +514,18 @@ static void sub_80A63C8(struct Sprite *sprite)
} }
} }
void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite) void TranslateSpriteInEllipse(struct Sprite *sprite)
{ {
if (sprite->data[3]) if (sprite->sDuration)
{ {
sprite->x2 = Sin(sprite->data[0], sprite->data[1]); sprite->x2 = Sin(sprite->sCirclePos, sprite->sAmplitudeX);
sprite->y2 = Cos(sprite->data[0], sprite->data[4]); sprite->y2 = Cos(sprite->sCirclePos, sprite->sAmplitudeY);
sprite->data[0] += sprite->data[2]; sprite->sCirclePos += sprite->sCircleSpeed;
if (sprite->data[0] >= 0x100) if (sprite->sCirclePos >= 0x100)
sprite->data[0] -= 0x100; sprite->sCirclePos -= 0x100;
else if (sprite->data[0] < 0) else if (sprite->sCirclePos < 0)
sprite->data[0] += 0x100; sprite->sCirclePos += 0x100;
sprite->data[3]--; sprite->sDuration--;
} }
else else
{ {
@@ -509,6 +533,19 @@ void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite)
} }
} }
#undef sCirclePos
#undef sAmplitude
#undef sCircleSpeed
#undef sDuration
#undef sAmplitudeSpeed
#undef sAmplitudeChange
#undef sAmplitudeX
#undef sAmplitudeY
#undef sCirclePosX
#undef sCircleSpeedX
#undef sCirclePosY
#undef sCircleSpeedY
// Simply waits until the sprite's data[0] hits zero. // Simply waits until the sprite's data[0] hits zero.
// This is used to let sprite anims or affine anims to run for a designated // This is used to let sprite anims or affine anims to run for a designated
// duration. // duration.
@@ -521,7 +558,7 @@ void WaitAnimForDuration(struct Sprite *sprite)
} }
// Sprite data for ConvertPosDataToTranslateLinearData // Sprite data for ConvertPosDataToTranslateLinearData
#define sStepsX data[0] #define sStepsX data[0]
#define sStartX data[1] #define sStartX data[1]
#define sTargetX data[2] #define sTargetX data[2]
#define sStartY data[3] #define sStartY data[3]
@@ -680,6 +717,12 @@ static void TranslateSpriteToBattleAttackerPos(struct Sprite *sprite)
sprite->callback = AnimPosToTranslateLinear; sprite->callback = AnimPosToTranslateLinear;
} }
#undef sStepsX
#undef sStartX
#undef sTargetX
#undef sStartY
#undef sTargetY
// Unused // Unused
static void sub_80A67A4(struct Sprite *sprite) static void sub_80A67A4(struct Sprite *sprite)
{ {
@@ -913,7 +956,7 @@ void GetBattleAnimBgData(struct BattleAnimBgData *out, u32 bgId)
} }
} }
void sub_80A6BFC(struct BattleAnimBgData *out, u8 unused) void GetBgDataForTransform(struct BattleAnimBgData *out, u8 battlerId)
{ {
out->bgTiles = gBattleAnimBgTileBuffer; out->bgTiles = gBattleAnimBgTileBuffer;
out->bgTilemap = (u16 *)gBattleAnimBgTilemapBuffer; out->bgTilemap = (u16 *)gBattleAnimBgTilemapBuffer;
@@ -1052,17 +1095,17 @@ void StartAnimLinearTranslation(struct Sprite *sprite)
sprite->data[1] = sprite->x; sprite->data[1] = sprite->x;
sprite->data[3] = sprite->y; sprite->data[3] = sprite->y;
InitAnimLinearTranslation(sprite); InitAnimLinearTranslation(sprite);
sprite->callback = AnimTranslateLinear_WaitEnd; sprite->callback = AnimTranslateLinear_WithFollowup;
sprite->callback(sprite); sprite->callback(sprite);
} }
// Unused // Unused
static void sub_80A6F14(struct Sprite *sprite) static void StartAnimLinearTranslation_SetCornerVecX(struct Sprite *sprite)
{ {
sprite->data[1] = sprite->x; sprite->data[1] = sprite->x;
sprite->data[3] = sprite->y; sprite->data[3] = sprite->y;
InitAnimLinearTranslation(sprite); InitAnimLinearTranslation(sprite);
sprite->callback = sub_80A6FB4; sprite->callback = AnimTranslateLinear_WithFollowup_SetCornerVecX;
sprite->callback(sprite); sprite->callback(sprite);
} }
@@ -1096,16 +1139,16 @@ bool8 AnimTranslateLinear(struct Sprite *sprite)
return FALSE; return FALSE;
} }
void AnimTranslateLinear_WaitEnd(struct Sprite *sprite) void AnimTranslateLinear_WithFollowup(struct Sprite *sprite)
{ {
if (AnimTranslateLinear(sprite)) if (AnimTranslateLinear(sprite))
SetCallbackToStoredInData6(sprite); SetCallbackToStoredInData6(sprite);
} }
// Functionally unused // Functionally unused
static void sub_80A6FB4(struct Sprite *sprite) static void AnimTranslateLinear_WithFollowup_SetCornerVecX(struct Sprite *sprite)
{ {
sub_8039E9C(sprite); AnimSetCenterToCornerVecX(sprite);
if (AnimTranslateLinear(sprite)) if (AnimTranslateLinear(sprite))
SetCallbackToStoredInData6(sprite); SetCallbackToStoredInData6(sprite);
} }
@@ -1122,7 +1165,7 @@ void InitAnimLinearTranslationWithSpeedAndPos(struct Sprite *sprite)
sprite->data[1] = sprite->x; sprite->data[1] = sprite->x;
sprite->data[3] = sprite->y; sprite->data[3] = sprite->y;
InitAnimLinearTranslationWithSpeed(sprite); InitAnimLinearTranslationWithSpeed(sprite);
sprite->callback = AnimTranslateLinear_WaitEnd; sprite->callback = AnimTranslateLinear_WithFollowup;
sprite->callback(sprite); sprite->callback(sprite);
} }
+1 -1
View File
@@ -409,7 +409,7 @@ static void AnimCirclingSparkle(struct Sprite *sprite)
sprite->data[4] = 112; sprite->data[4] = 112;
sprite->data[5] = 0; sprite->data[5] = 0;
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = TranslateSpriteInGrowingCircleOverDuration; sprite->callback = TranslateSpriteInGrowingCircle;
sprite->callback(sprite); sprite->callback(sprite);
} }
+2 -2
View File
@@ -313,7 +313,7 @@ static void AnimFallingRock(struct Sprite *sprite)
sprite->data[5] = gBattleAnimArgs[2]; sprite->data[5] = gBattleAnimArgs[2];
StoreSpriteCallbackInData6(sprite, AnimFallingRock_Step); StoreSpriteCallbackInData6(sprite, AnimFallingRock_Step);
sprite->callback = TranslateSpriteInEllipseOverDuration; sprite->callback = TranslateSpriteInEllipse;
sprite->callback(sprite); sprite->callback(sprite);
} }
@@ -328,7 +328,7 @@ static void AnimFallingRock_Step(struct Sprite *sprite)
sprite->data[4] = -24; sprite->data[4] = -24;
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = TranslateSpriteInEllipseOverDuration; sprite->callback = TranslateSpriteInEllipse;
sprite->callback(sprite); sprite->callback(sprite);
} }
+2 -2
View File
@@ -1127,7 +1127,7 @@ static void LinkOpponentHandleLoadMonSprite(void)
SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler)); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(gActiveBattler, 2), GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2),
GetBattlerSpriteDefault_Y(gActiveBattler), GetBattlerSpriteDefault_Y(gActiveBattler),
GetBattlerSpriteSubpriority(gActiveBattler)); GetBattlerSpriteSubpriority(gActiveBattler));
@@ -1161,7 +1161,7 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit)
gBattlerSpriteIds[battlerId] = CreateSprite( gBattlerSpriteIds[battlerId] = CreateSprite(
&gMultiuseSpriteTemplate, &gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(battlerId, 2), GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2),
GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteDefault_Y(battlerId),
GetBattlerSpriteSubpriority(battlerId)); GetBattlerSpriteSubpriority(battlerId));
+2 -2
View File
@@ -1017,7 +1017,7 @@ static void LinkPartnerHandleLoadMonSprite(void)
SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler)); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(gActiveBattler, 2), GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2),
GetBattlerSpriteDefault_Y(gActiveBattler), GetBattlerSpriteDefault_Y(gActiveBattler),
GetBattlerSpriteSubpriority(gActiveBattler)); GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH;
@@ -1048,7 +1048,7 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit)
gBattlerSpriteIds[battlerId] = CreateSprite( gBattlerSpriteIds[battlerId] = CreateSprite(
&gMultiuseSpriteTemplate, &gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(battlerId, 2), GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2),
GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteDefault_Y(battlerId),
GetBattlerSpriteSubpriority(battlerId)); GetBattlerSpriteSubpriority(battlerId));
+2 -2
View File
@@ -1136,7 +1136,7 @@ static void OpponentHandleLoadMonSprite(void)
SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler)); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(gActiveBattler, 2), GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2),
GetBattlerSpriteDefault_Y(gActiveBattler), GetBattlerSpriteDefault_Y(gActiveBattler),
GetBattlerSpriteSubpriority(gActiveBattler)); GetBattlerSpriteSubpriority(gActiveBattler));
@@ -1171,7 +1171,7 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit)
SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId));
gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate, gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(battlerId, 2), GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2),
GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteDefault_Y(battlerId),
GetBattlerSpriteSubpriority(battlerId)); GetBattlerSpriteSubpriority(battlerId));
+1 -1
View File
@@ -2205,7 +2205,7 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit)
gBattlerSpriteIds[battlerId] = CreateSprite( gBattlerSpriteIds[battlerId] = CreateSprite(
&gMultiuseSpriteTemplate, &gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(battlerId, 2), GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2),
GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteDefault_Y(battlerId),
GetBattlerSpriteSubpriority(battlerId)); GetBattlerSpriteSubpriority(battlerId));
+2 -2
View File
@@ -1201,7 +1201,7 @@ static void PlayerPartnerHandleLoadMonSprite(void)
SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler)); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(gActiveBattler, 2), GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2),
GetBattlerSpriteDefault_Y(gActiveBattler), GetBattlerSpriteDefault_Y(gActiveBattler),
GetBattlerSpriteSubpriority(gActiveBattler)); GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH;
@@ -1232,7 +1232,7 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit)
gBattlerSpriteIds[battlerId] = CreateSprite( gBattlerSpriteIds[battlerId] = CreateSprite(
&gMultiuseSpriteTemplate, &gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(battlerId, 2), GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2),
GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteDefault_Y(battlerId),
GetBattlerSpriteSubpriority(battlerId)); GetBattlerSpriteSubpriority(battlerId));
+2 -2
View File
@@ -1110,7 +1110,7 @@ static void RecordedOpponentHandleLoadMonSprite(void)
SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler)); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(gActiveBattler, 2), GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2),
GetBattlerSpriteDefault_Y(gActiveBattler), GetBattlerSpriteDefault_Y(gActiveBattler),
GetBattlerSpriteSubpriority(gActiveBattler)); GetBattlerSpriteSubpriority(gActiveBattler));
@@ -1143,7 +1143,7 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit)
SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId));
gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate, gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(battlerId, 2), GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2),
GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteDefault_Y(battlerId),
GetBattlerSpriteSubpriority(battlerId)); GetBattlerSpriteSubpriority(battlerId));
+2 -2
View File
@@ -1092,7 +1092,7 @@ static void RecordedPlayerHandleLoadMonSprite(void)
SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler)); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(gActiveBattler, 2), GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2),
GetBattlerSpriteDefault_Y(gActiveBattler), GetBattlerSpriteDefault_Y(gActiveBattler),
GetBattlerSpriteSubpriority(gActiveBattler)); GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH;
@@ -1123,7 +1123,7 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit)
gBattlerSpriteIds[battlerId] = CreateSprite( gBattlerSpriteIds[battlerId] = CreateSprite(
&gMultiuseSpriteTemplate, &gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(battlerId, 2), GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2),
GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteDefault_Y(battlerId),
GetBattlerSpriteSubpriority(battlerId)); GetBattlerSpriteSubpriority(battlerId));
+1 -1
View File
@@ -1466,7 +1466,7 @@ static void StartSendOutAnim(u8 battlerId)
gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim);
SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId));
gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate, gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(battlerId, 2), GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2),
GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteDefault_Y(battlerId),
GetBattlerSpriteSubpriority(battlerId)); GetBattlerSpriteSubpriority(battlerId));
+8 -2
View File
@@ -1147,13 +1147,19 @@ void LoadAndCreateEnemyShadowSprites(void)
LoadCompressedSpriteSheet(&gSpriteSheet_EnemyShadow); LoadCompressedSpriteSheet(&gSpriteSheet_EnemyShadow);
battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBattlerSpriteCoord(battlerId, 0), GetBattlerSpriteCoord(battlerId, 1) + 29, 0xC8); gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow,
GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X),
GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 29,
0xC8);
gSprites[gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId].data[0] = battlerId; gSprites[gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId].data[0] = battlerId;
if (IsDoubleBattle()) if (IsDoubleBattle())
{ {
battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBattlerSpriteCoord(battlerId, 0), GetBattlerSpriteCoord(battlerId, 1) + 29, 0xC8); gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow,
GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X),
GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 29,
0xC8);
gSprites[gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId].data[0] = battlerId; gSprites[gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId].data[0] = battlerId;
} }
} }
+4 -4
View File
@@ -307,7 +307,7 @@ static const u16 *const sUnused1Ptr = sUnused1;
static const u16 sUnused2[] = {0xfff0, 0, 0x0400, 0, 0, 0, 0x3c00, 0, 0x7ffe, 1, 0, 0}; static const u16 sUnused2[] = {0xfff0, 0, 0x0400, 0, 0, 0, 0x3c00, 0, 0x7ffe, 1, 0, 0};
static const u16 *const sUnused2Ptr = sUnused2; static const u16 *const sUnused2Ptr = sUnused2;
static const s8 gUnknown_0831ACE0[] ={-32, -16, -16, -32, -32, 0, 0, 0}; static const s8 sCenterToCornerVecXs[8] ={-32, -16, -16, -32, -32};
// format: attacking type, defending type, damage multiplier // format: attacking type, defending type, damage multiplier
// the multiplier is a (decimal) fixed-point number: // the multiplier is a (decimal) fixed-point number:
@@ -2983,7 +2983,7 @@ void SpriteCB_PlayerMonFromBall(struct Sprite *sprite)
static void SpriteCB_TrainerThrowObject_Main(struct Sprite *sprite) static void SpriteCB_TrainerThrowObject_Main(struct Sprite *sprite)
{ {
sub_8039E9C(sprite); AnimSetCenterToCornerVecX(sprite);
if (sprite->animEnded) if (sprite->animEnded)
sprite->callback = SpriteCB_Idle; sprite->callback = SpriteCB_Idle;
} }
@@ -2996,10 +2996,10 @@ void SpriteCB_TrainerThrowObject(struct Sprite *sprite)
sprite->callback = SpriteCB_TrainerThrowObject_Main; sprite->callback = SpriteCB_TrainerThrowObject_Main;
} }
void sub_8039E9C(struct Sprite *sprite) void AnimSetCenterToCornerVecX(struct Sprite *sprite)
{ {
if (sprite->animDelayCounter == 0) if (sprite->animDelayCounter == 0)
sprite->centerToCornerVecX = gUnknown_0831ACE0[sprite->animCmdIndex]; sprite->centerToCornerVecX = sCenterToCornerVecXs[sprite->animCmdIndex];
} }
void BeginBattleIntroDummy(void) void BeginBattleIntroDummy(void)
+2 -2
View File
@@ -894,8 +894,8 @@ static void SpriteCB_BallThrow_CaptureMon(struct Sprite *sprite)
static void SpriteCB_PlayerMonSendOut_1(struct Sprite *sprite) static void SpriteCB_PlayerMonSendOut_1(struct Sprite *sprite)
{ {
sprite->data[0] = 25; sprite->data[0] = 25;
sprite->data[2] = GetBattlerSpriteCoord(sprite->sBattler, 2); sprite->data[2] = GetBattlerSpriteCoord(sprite->sBattler, BATTLER_COORD_X_2);
sprite->data[4] = GetBattlerSpriteCoord(sprite->sBattler, 3) + 24; sprite->data[4] = GetBattlerSpriteCoord(sprite->sBattler, BATTLER_COORD_Y_PIC_OFFSET) + 24;
sprite->data[5] = -30; sprite->data[5] = -30;
sprite->oam.affineParam = sprite->sBattler; sprite->oam.affineParam = sprite->sBattler;
InitAnimArcTranslation(sprite); InitAnimArcTranslation(sprite);
+2 -2
View File
@@ -222,7 +222,7 @@ static void CreateBattlerSprite(u8 battler)
return; return;
SetMultiuseSpriteTemplateToPokemon(GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler)); SetMultiuseSpriteTemplateToPokemon(GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler));
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, GetBattlerSpriteSubpriority(battler)); gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2), posY, GetBattlerSpriteSubpriority(battler));
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler; gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy; gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
gSprites[gBattlerSpriteIds[battler]].data[0] = battler; gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
@@ -258,7 +258,7 @@ static void CreateBattlerSprite(u8 battler)
return; return;
SetMultiuseSpriteTemplateToPokemon(GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler)); SetMultiuseSpriteTemplateToPokemon(GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler));
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, GetBattlerSpriteSubpriority(battler)); gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2), posY, GetBattlerSpriteSubpriority(battler));
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler; gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy; gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
gSprites[gBattlerSpriteIds[battler]].data[0] = battler; gSprites[gBattlerSpriteIds[battler]].data[0] = battler;