Sync battle anim - bug

This commit is contained in:
GriffinR
2022-08-14 18:21:03 -04:00
parent 702d43e742
commit e4aec1b6d1
+34 -34
View File
@@ -6,16 +6,16 @@
static void AnimMegahornHorn(struct Sprite *sprite);
static void AnimLeechLifeNeedle(struct Sprite *sprite);
static void AnimTranslateWebThread(struct Sprite *sprite);
static void AnimTranslateWebThread_Step(struct Sprite *sprite);
static void AnimStringWrap(struct Sprite *sprite);
static void AnimStringWrap_Step(struct Sprite *sprite);
static void AnimSpiderWeb(struct Sprite *sprite);
static void AnimSpiderWeb_Step(struct Sprite *sprite);
static void AnimSpiderWeb_End(struct Sprite *sprite);
static void AnimTranslateStinger(struct Sprite *sprite);
static void AnimMissileArc(struct Sprite *sprite);
static void AnimMissileArc_Step(struct Sprite *sprite);
static void AnimTailGlowOrb(struct Sprite *sprite);
static void sub_80B41C0(struct Sprite *sprite);
static void sub_80B4274(struct Sprite *sprite);
static void sub_80B42E8(struct Sprite *sprite);
static void sub_80B4344(struct Sprite *sprite);
static void AnimMissileArcStep(struct Sprite *sprite);
static const union AffineAnimCmd sAffineAnim_MegahornHorn_0[] =
{
@@ -210,11 +210,11 @@ static void AnimMegahornHorn(struct Sprite *sprite)
gBattleAnimArgs[3] = -gBattleAnimArgs[3];
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
}
sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, 2) + gBattleAnimArgs[0];
sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, 3) + gBattleAnimArgs[1];
sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[0];
sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1];
sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2];
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3];
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3];
sprite->callback = StartAnimLinearTranslation;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
@@ -231,11 +231,11 @@ static void AnimLeechLifeNeedle(struct Sprite *sprite)
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
}
sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, 2) + gBattleAnimArgs[0];
sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, 3) + gBattleAnimArgs[1];
sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[0];
sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1];
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
sprite->callback = StartAnimLinearTranslation;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
@@ -257,8 +257,8 @@ static void AnimTranslateWebThread(struct Sprite *sprite)
sprite->data[3] = sprite->y;
if (!gBattleAnimArgs[4])
{
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
}
else
{
@@ -266,10 +266,10 @@ static void AnimTranslateWebThread(struct Sprite *sprite)
}
BattleAnim_InitLinearTranslationWithDuration(sprite);
sprite->data[5] = gBattleAnimArgs[3];
sprite->callback = sub_80B41C0;
sprite->callback = AnimTranslateWebThread_Step;
}
static void sub_80B41C0(struct Sprite *sprite)
static void AnimTranslateWebThread_Step(struct Sprite *sprite)
{
if (AnimTranslateLinear(sprite))
{
@@ -290,10 +290,10 @@ static void AnimStringWrap(struct Sprite *sprite)
sprite->y += gBattleAnimArgs[1];
if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
sprite->y += 8;
sprite->callback = sub_80B4274;
sprite->callback = AnimStringWrap_Step;
}
static void sub_80B4274(struct Sprite *sprite)
static void AnimStringWrap_Step(struct Sprite *sprite)
{
if (++sprite->data[0] == 3)
{
@@ -311,10 +311,10 @@ static void AnimSpiderWeb(struct Sprite *sprite)
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0));
sprite->data[0] = 16;
sprite->callback = sub_80B42E8;
sprite->callback = AnimSpiderWeb_Step;
}
static void sub_80B42E8(struct Sprite *sprite)
static void AnimSpiderWeb_Step(struct Sprite *sprite)
{
if (sprite->data[2] < 20)
{
@@ -328,12 +328,12 @@ static void sub_80B42E8(struct Sprite *sprite)
if (sprite->data[0] == 0)
{
sprite->invisible = TRUE;
sprite->callback = sub_80B4344;
sprite->callback = AnimSpiderWeb_End;
}
}
}
static void sub_80B4344(struct Sprite *sprite)
static void AnimSpiderWeb_End(struct Sprite *sprite)
{
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
@@ -377,8 +377,8 @@ static void AnimTranslateStinger(struct Sprite *sprite)
}
}
InitSpritePosToAnimAttacker(sprite, 1);
lVarX = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2];
lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3];
lVarX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3];
rot = ArcTan2Neg(lVarX - sprite->x, lVarY - sprite->y);
rot += 0xC000;
TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rot);
@@ -402,15 +402,15 @@ static void AnimMissileArc(struct Sprite *sprite)
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2];
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3];
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3];
sprite->data[5] = gBattleAnimArgs[5];
InitAnimArcTranslation(sprite);
sprite->callback = AnimMissileArcStep;
sprite->callback = AnimMissileArc_Step;
sprite->invisible = TRUE;
}
static void AnimMissileArcStep(struct Sprite *sprite)
static void AnimMissileArc_Step(struct Sprite *sprite)
{
sprite->invisible = FALSE;
@@ -447,15 +447,15 @@ static void AnimMissileArcStep(struct Sprite *sprite)
static void AnimTailGlowOrb(struct Sprite *sprite)
{
if (gBattleAnimArgs[0] == 0)
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
{
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + 18;
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + 18;
}
else
{
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 18;
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + 18;
}
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;