Synced src/pokeball.c

This commit is contained in:
Eduardo Quezada
2022-07-29 21:39:25 -04:00
parent c40791fd4e
commit dcb9d9de1e
32 changed files with 575 additions and 495 deletions
+23 -23
View File
@@ -659,7 +659,7 @@ void AnimTask_SwitchOutBallEffect(u8 taskId)
y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y);
priority = gSprites[spriteId].oam.priority;
subpriority = gSprites[spriteId].subpriority;
gTasks[taskId].data[10] = LaunchBallStarsTask(x, y + 32, priority, subpriority, ballId);
gTasks[taskId].data[10] = AnimateBallOpenParticles(x, y + 32, priority, subpriority, ballId);
selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0);
gTasks[taskId].data[11] = LaunchBallFadeMonTask(0, gBattleAnimAttacker, selectedPalettes, ballId);
gTasks[taskId].data[0]++;
@@ -748,7 +748,7 @@ void AnimTask_ThrowBall(u8 taskId)
gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) - 16;
gSprites[spriteId].callback = SpriteCB_ThrowBall_Init;
gBattleSpritesDataPtr->animationData->field_9_x2 = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible;
gBattleSpritesDataPtr->animationData->wildMonInvisible = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible;
gTasks[taskId].data[0] = spriteId;
gTasks[taskId].func = AnimTask_ThrowBall_WaitAnimObjComplete;
}
@@ -860,7 +860,7 @@ static void SpriteCB_ThrowBall_ArcFlight(struct Sprite *sprite)
switch (ballId)
{
case 0 ... POKEBALL_COUNT - 1:
LaunchBallStarsTask(sprite->x, sprite->y - 5, 1, 28, ballId);
AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 28, ballId);
LaunchBallFadeMonTask(0, gBattleAnimTarget, 14, ballId);
break;
}
@@ -1015,7 +1015,7 @@ static void SpriteCB_ThrowBall_InitShake(struct Sprite *sprite)
sprite->data[3] = 0;
sprite->affineAnimPaused = TRUE;
StartSpriteAffineAnim(sprite, 1);
gBattleSpritesDataPtr->animationData->field_C = 0;
gBattleSpritesDataPtr->animationData->ballSubpx = 0;
sprite->callback = SpriteCB_ThrowBall_DoShake;
PlaySE(SE_BALL);
}
@@ -1029,14 +1029,14 @@ static void SpriteCB_ThrowBall_DoShake(struct Sprite *sprite)
switch (sprite->data[3] & 0xFF)
{
case 0:
if (gBattleSpritesDataPtr->animationData->field_C > 0xFF)
if (gBattleSpritesDataPtr->animationData->ballSubpx > 0xFF)
{
sprite->x2 += sprite->data[4];
gBattleSpritesDataPtr->animationData->field_C &= 0xFF;
gBattleSpritesDataPtr->animationData->ballSubpx &= 0xFF;
}
else
{
gBattleSpritesDataPtr->animationData->field_C += 0xB0;
gBattleSpritesDataPtr->animationData->ballSubpx += 0xB0;
}
sprite->data[5]++;
@@ -1044,7 +1044,7 @@ static void SpriteCB_ThrowBall_DoShake(struct Sprite *sprite)
var0 = sprite->data[5] + 7;
if (var0 > 14)
{
gBattleSpritesDataPtr->animationData->field_C = 0;
gBattleSpritesDataPtr->animationData->ballSubpx = 0;
sprite->data[3]++;
sprite->data[5] = 0;
}
@@ -1067,14 +1067,14 @@ static void SpriteCB_ThrowBall_DoShake(struct Sprite *sprite)
}
break;
case 2:
if (gBattleSpritesDataPtr->animationData->field_C > 0xFF)
if (gBattleSpritesDataPtr->animationData->ballSubpx > 0xFF)
{
sprite->x2 += sprite->data[4];
gBattleSpritesDataPtr->animationData->field_C &= 0xFF;
gBattleSpritesDataPtr->animationData->ballSubpx &= 0xFF;
}
else
{
gBattleSpritesDataPtr->animationData->field_C += 0xB0;
gBattleSpritesDataPtr->animationData->ballSubpx += 0xB0;
}
sprite->data[5]++;
@@ -1082,7 +1082,7 @@ static void SpriteCB_ThrowBall_DoShake(struct Sprite *sprite)
var0 = sprite->data[5] + 12;
if (var0 > 24)
{
gBattleSpritesDataPtr->animationData->field_C = 0;
gBattleSpritesDataPtr->animationData->ballSubpx = 0;
sprite->data[3]++;
sprite->data[5] = 0;
}
@@ -1104,14 +1104,14 @@ static void SpriteCB_ThrowBall_DoShake(struct Sprite *sprite)
ChangeSpriteAffineAnim(sprite, 1);
// fall through
case 4:
if (gBattleSpritesDataPtr->animationData->field_C > 0xFF)
if (gBattleSpritesDataPtr->animationData->ballSubpx > 0xFF)
{
sprite->x2 += sprite->data[4];
gBattleSpritesDataPtr->animationData->field_C &= 0xFF;
gBattleSpritesDataPtr->animationData->ballSubpx &= 0xFF;
}
else
{
gBattleSpritesDataPtr->animationData->field_C += 0xB0;
gBattleSpritesDataPtr->animationData->ballSubpx += 0xB0;
}
sprite->data[5]++;
@@ -1119,7 +1119,7 @@ static void SpriteCB_ThrowBall_DoShake(struct Sprite *sprite)
var0 = sprite->data[5] + 4;
if (var0 > 8)
{
gBattleSpritesDataPtr->animationData->field_C = 0;
gBattleSpritesDataPtr->animationData->ballSubpx = 0;
sprite->data[3]++;
sprite->data[5] = 0;
sprite->data[4] = -sprite->data[4];
@@ -1319,7 +1319,7 @@ static void SpriteCB_ThrowBall_BeginBreakOut(struct Sprite *sprite)
switch (ballId)
{
case 0 ... POKEBALL_COUNT - 1:
LaunchBallStarsTask(sprite->x, sprite->y - 5, 1, 28, ballId);
AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 28, ballId);
LaunchBallFadeMonTask(1, gBattleAnimTarget, 14, ballId);
break;
}
@@ -1351,7 +1351,7 @@ static void SpriteCB_ThrowBall_RunBreakOut(struct Sprite *sprite)
if (sprite->animEnded && next)
{
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].y2 = 0;
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = gBattleSpritesDataPtr->animationData->field_9_x2;
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = gBattleSpritesDataPtr->animationData->wildMonInvisible;
sprite->data[0] = 0;
sprite->callback = BattleAnimObj_SignalEnd;
gDoingBattleAnim = FALSE;
@@ -1430,7 +1430,7 @@ static void LoadBallParticleGfx(u8 ballId)
}
}
u8 LaunchBallStarsTask(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId)
u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId)
{
u8 taskId;
@@ -1448,7 +1448,7 @@ u8 LaunchBallStarsTask(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId)
static void IncrementBattleParticleCounter(void)
{
if (gMain.inBattle)
gBattleSpritesDataPtr->animationData->field_A++;
gBattleSpritesDataPtr->animationData->numBallParticles++;
}
static void PokeBallOpenParticleAnimation(u8 taskId)
@@ -1850,8 +1850,8 @@ static void DestroyBallOpenAnimationParticle(struct Sprite *sprite)
}
else
{
gBattleSpritesDataPtr->animationData->field_A--;
if (gBattleSpritesDataPtr->animationData->field_A == 0)
gBattleSpritesDataPtr->animationData->numBallParticles--;
if (gBattleSpritesDataPtr->animationData->numBallParticles == 0)
{
for (j = 0; j < POKEBALL_COUNT; j++)
{
@@ -2097,7 +2097,7 @@ static void AnimTask_ShinySparkles(u8 taskId)
return;
}
if (gBattleSpritesDataPtr->animationData->field_A)
if (gBattleSpritesDataPtr->animationData->numBallParticles)
return;
counter = gTasks[taskId].data[10]++;