mirror of
https://github.com/pret/pokefirered.git
synced 2026-09-27 11:28:15 -05:00
fix safari object throw and ghost dodging throw
This commit is contained in:
@@ -102,6 +102,8 @@ static void TimerBallOpenParticleAnimation(u8);
|
||||
static void PremierBallOpenParticleAnimation(u8);
|
||||
static void CB_CriticalCaptureThrownBallMovement(struct Sprite *sprite);
|
||||
static void SpriteCB_SafariBaitOrRock_Init(struct Sprite *);
|
||||
static void GhostBallDodge(struct Sprite *sprite);
|
||||
static void GhostBallDodge2(struct Sprite *sprite);
|
||||
|
||||
struct CaptureStar
|
||||
{
|
||||
@@ -1093,6 +1095,10 @@ static void SpriteCB_Ball_Arc(struct Sprite *sprite)
|
||||
{
|
||||
sprite->callback = SpriteCB_Ball_Block;
|
||||
}
|
||||
else if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_GHOST_DODGE)
|
||||
{
|
||||
sprite->callback = GhostBallDodge;
|
||||
}
|
||||
else
|
||||
{
|
||||
StartSpriteAnim(sprite, 1);
|
||||
@@ -2790,3 +2796,34 @@ static void CB_CriticalCaptureThrownBallMovement(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
// FRLG
|
||||
static void GhostBallDodge(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x += sprite->x2;
|
||||
sprite->y += sprite->y2;
|
||||
sprite->x2 = sprite->y2 = 0;
|
||||
sprite->data[0] = 0x22;
|
||||
sprite->data[1] = sprite->x;
|
||||
sprite->data[2] = sprite->x - 8;
|
||||
sprite->data[3] = sprite->y;
|
||||
sprite->data[4] = 0x90;
|
||||
sprite->data[5] = 0x20;
|
||||
InitAnimArcTranslation(sprite);
|
||||
TranslateAnimVerticalArc(sprite);
|
||||
sprite->callback = GhostBallDodge2;
|
||||
}
|
||||
|
||||
static void GhostBallDodge2(struct Sprite *sprite)
|
||||
{
|
||||
if (!TranslateAnimVerticalArc(sprite))
|
||||
{
|
||||
if ((sprite->y + sprite->y2) < 65)
|
||||
return;
|
||||
}
|
||||
|
||||
sprite->data[0] = 0;
|
||||
sprite->callback = DestroySpriteAfterOneFrame;
|
||||
gDoingBattleAnim = FALSE;
|
||||
UpdateOamPriorityInAllHealthboxes(1, FALSE);
|
||||
}
|
||||
|
||||
|
||||
@@ -2536,6 +2536,8 @@ void BtlController_HandleDrawTrainerPic(u32 battler, u32 trainerPicId, bool32 is
|
||||
xPos,
|
||||
yPos,
|
||||
subpriority);
|
||||
if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI) && GetBattlerPosition(battler) == B_POSITION_PLAYER_LEFT)
|
||||
gBattlerSpriteIds[battler] = gBattleStruct->trainerSlideSpriteIds[battler];
|
||||
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.paletteNum = battler;
|
||||
}
|
||||
@@ -2560,6 +2562,8 @@ void BtlController_HandleTrainerSlide(u32 battler, u32 trainerPicId)
|
||||
80,
|
||||
(8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80,
|
||||
30);
|
||||
if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI) && GetBattlerPosition(battler) == B_POSITION_PLAYER_LEFT)
|
||||
gBattlerSpriteIds[battler] = gBattleStruct->trainerSlideSpriteIds[battler];
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].oam.paletteNum = battler;
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].x2 = -96;
|
||||
gSprites[gBattleStruct->trainerSlideSpriteIds[battler]].sSpeedX = 2;
|
||||
|
||||
Reference in New Issue
Block a user