Flatten pos fields in struct Sprite
This commit is contained in:
@@ -1118,8 +1118,8 @@ static u8 CreateGlowingPokeballsEffect(s16 numMons, s16 x, s16 y, bool16 playHea
|
||||
struct Sprite *sprite;
|
||||
spriteId = CreateInvisibleSprite(SpriteCB_PokeballGlowEffect);
|
||||
sprite = &gSprites[spriteId];
|
||||
sprite->pos2.x = x;
|
||||
sprite->pos2.y = y;
|
||||
sprite->x2 = x;
|
||||
sprite->y2 = y;
|
||||
sprite->sPlayHealSe = playHealSe;
|
||||
sprite->sNumMons = numMons;
|
||||
sprite->sSpriteId = spriteId;
|
||||
@@ -1137,7 +1137,7 @@ static void PokeballGlowEffect_PlaceBalls(struct Sprite *sprite)
|
||||
if (sprite->sTimer == 0 || (--sprite->sTimer) == 0)
|
||||
{
|
||||
sprite->sTimer = 25;
|
||||
spriteId = CreateSpriteAtEnd(&sSpriteTemplate_PokeballGlow, sPokeballCoordOffsets[sprite->sCounter].x + sprite->pos2.x, sPokeballCoordOffsets[sprite->sCounter].y + sprite->pos2.y, 0);
|
||||
spriteId = CreateSpriteAtEnd(&sSpriteTemplate_PokeballGlow, sPokeballCoordOffsets[sprite->sCounter].x + sprite->x2, sPokeballCoordOffsets[sprite->sCounter].y + sprite->y2, 0);
|
||||
gSprites[spriteId].oam.priority = 2;
|
||||
gSprites[spriteId].sEffectSpriteId = sprite->sSpriteId;
|
||||
sprite->sCounter++;
|
||||
@@ -1461,7 +1461,7 @@ static bool8 FallWarpEffect_StartFall(struct Task *task)
|
||||
s16 centerToCornerVecY;
|
||||
sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
centerToCornerVecY = -(sprite->centerToCornerVecY << 1);
|
||||
sprite->pos2.y = -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY);
|
||||
sprite->y2 = -(sprite->y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY);
|
||||
task->tFallOffset = 1;
|
||||
task->tTotalFall = 0;
|
||||
gObjectEvents[gPlayerAvatar.objectEventId].invisible = FALSE;
|
||||
@@ -1477,7 +1477,7 @@ static bool8 FallWarpEffect_Fall(struct Task *task)
|
||||
|
||||
objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||
sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
sprite->pos2.y += task->tFallOffset;
|
||||
sprite->y2 += task->tFallOffset;
|
||||
if (task->tFallOffset < 8)
|
||||
{
|
||||
task->tTotalFall += task->tFallOffset;
|
||||
@@ -1485,19 +1485,19 @@ static bool8 FallWarpEffect_Fall(struct Task *task)
|
||||
if (task->tTotalFall & 0xf)
|
||||
task->tFallOffset <<= 1;
|
||||
}
|
||||
if (task->tSetTrigger == FALSE && sprite->pos2.y >= -16)
|
||||
if (task->tSetTrigger == FALSE && sprite->y2 >= -16)
|
||||
{
|
||||
task->tSetTrigger++;
|
||||
objectEvent->fixedPriority = 0;
|
||||
sprite->subspriteMode = task->tSubsprMode;
|
||||
objectEvent->triggerGroundEffectsOnMove = 1;
|
||||
}
|
||||
if (sprite->pos2.y >= 0)
|
||||
if (sprite->y2 >= 0)
|
||||
{
|
||||
PlaySE(SE_M_STRENGTH);
|
||||
objectEvent->triggerGroundEffectsOnStop = 1;
|
||||
objectEvent->landingJump = 1;
|
||||
sprite->pos2.y = 0;
|
||||
sprite->y2 = 0;
|
||||
task->tState++;
|
||||
}
|
||||
return FALSE;
|
||||
@@ -1635,8 +1635,8 @@ static void RideUpEscalatorOut(struct Task *task)
|
||||
{
|
||||
struct Sprite *sprite;
|
||||
sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
sprite->pos2.x = Cos(0x84, task->data[2]);
|
||||
sprite->pos2.y = Sin(0x94, task->data[2]);
|
||||
sprite->x2 = Cos(0x84, task->data[2]);
|
||||
sprite->y2 = Sin(0x94, task->data[2]);
|
||||
task->data[3]++;
|
||||
if (task->data[3] & 1)
|
||||
{
|
||||
@@ -1648,8 +1648,8 @@ static void RideDownEscalatorOut(struct Task *task)
|
||||
{
|
||||
struct Sprite *sprite;
|
||||
sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
sprite->pos2.x = Cos(0x7c, task->data[2]);
|
||||
sprite->pos2.y = Sin(0x76, task->data[2]);
|
||||
sprite->x2 = Cos(0x7c, task->data[2]);
|
||||
sprite->y2 = Sin(0x76, task->data[2]);
|
||||
task->data[3]++;
|
||||
if (task->data[3] & 1)
|
||||
{
|
||||
@@ -1729,8 +1729,8 @@ static bool8 EscalatorWarpIn_Down_Init(struct Task *task)
|
||||
{
|
||||
struct Sprite *sprite;
|
||||
sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
sprite->pos2.x = Cos(0x84, task->data[1]);
|
||||
sprite->pos2.y = Sin(0x94, task->data[1]);
|
||||
sprite->x2 = Cos(0x84, task->data[1]);
|
||||
sprite->y2 = Sin(0x94, task->data[1]);
|
||||
task->tState++;
|
||||
return FALSE;
|
||||
}
|
||||
@@ -1739,8 +1739,8 @@ static bool8 EscalatorWarpIn_Down_Ride(struct Task *task)
|
||||
{
|
||||
struct Sprite *sprite;
|
||||
sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
sprite->pos2.x = Cos(0x84, task->data[1]);
|
||||
sprite->pos2.y = Sin(0x94, task->data[1]);
|
||||
sprite->x2 = Cos(0x84, task->data[1]);
|
||||
sprite->y2 = Sin(0x94, task->data[1]);
|
||||
task->data[2]++;
|
||||
if (task->data[2] & 1)
|
||||
{
|
||||
@@ -1748,8 +1748,8 @@ static bool8 EscalatorWarpIn_Down_Ride(struct Task *task)
|
||||
}
|
||||
if (task->data[1] == 0)
|
||||
{
|
||||
sprite->pos2.x = 0;
|
||||
sprite->pos2.y = 0;
|
||||
sprite->x2 = 0;
|
||||
sprite->y2 = 0;
|
||||
task->tState = 5;
|
||||
}
|
||||
return FALSE;
|
||||
@@ -1759,8 +1759,8 @@ static bool8 EscalatorWarpIn_Up_Init(struct Task *task)
|
||||
{
|
||||
struct Sprite *sprite;
|
||||
sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
sprite->pos2.x = Cos(0x7c, task->data[1]);
|
||||
sprite->pos2.y = Sin(0x76, task->data[1]);
|
||||
sprite->x2 = Cos(0x7c, task->data[1]);
|
||||
sprite->y2 = Sin(0x76, task->data[1]);
|
||||
task->tState++;
|
||||
return FALSE;
|
||||
}
|
||||
@@ -1769,8 +1769,8 @@ static bool8 EscalatorWarpIn_Up_Ride(struct Task *task)
|
||||
{
|
||||
struct Sprite *sprite;
|
||||
sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
sprite->pos2.x = Cos(0x7c, task->data[1]);
|
||||
sprite->pos2.y = Sin(0x76, task->data[1]);
|
||||
sprite->x2 = Cos(0x7c, task->data[1]);
|
||||
sprite->y2 = Sin(0x76, task->data[1]);
|
||||
task->data[2]++;
|
||||
if (task->data[2] & 1)
|
||||
{
|
||||
@@ -1778,8 +1778,8 @@ static bool8 EscalatorWarpIn_Up_Ride(struct Task *task)
|
||||
}
|
||||
if (task->data[1] == 0)
|
||||
{
|
||||
sprite->pos2.x = 0;
|
||||
sprite->pos2.y = 0;
|
||||
sprite->x2 = 0;
|
||||
sprite->y2 = 0;
|
||||
task->tState++;
|
||||
}
|
||||
return FALSE;
|
||||
@@ -1972,7 +1972,7 @@ static bool8 LavaridgeGymB1FWarpEffect_CameraShake(struct Task *task, struct Obj
|
||||
|
||||
static bool8 LavaridgeGymB1FWarpEffect_Launch(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos2.y = 0;
|
||||
sprite->y2 = 0;
|
||||
task->data[3] = 1;
|
||||
gFieldEffectArguments[0] = objectEvent->currentCoords.x;
|
||||
gFieldEffectArguments[1] = objectEvent->currentCoords.y;
|
||||
@@ -2001,9 +2001,9 @@ static bool8 LavaridgeGymB1FWarpEffect_Rise(struct Task *task, struct ObjectEven
|
||||
if (task->data[2] > 6)
|
||||
{
|
||||
centerToCornerVecY = -(sprite->centerToCornerVecY << 1);
|
||||
if (sprite->pos2.y > -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY))
|
||||
if (sprite->y2 > -(sprite->y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY))
|
||||
{
|
||||
sprite->pos2.y -= task->data[3];
|
||||
sprite->y2 -= task->data[3];
|
||||
if (task->data[3] <= 7)
|
||||
{
|
||||
task->data[3]++;
|
||||
@@ -2013,7 +2013,7 @@ static bool8 LavaridgeGymB1FWarpEffect_Rise(struct Task *task, struct ObjectEven
|
||||
task->data[4] = 1;
|
||||
}
|
||||
}
|
||||
if (task->data[5] == 0 && sprite->pos2.y < -0x10)
|
||||
if (task->data[5] == 0 && sprite->y2 < -0x10)
|
||||
{
|
||||
task->data[5]++;
|
||||
objectEvent->fixedPriority = 1;
|
||||
@@ -2396,7 +2396,7 @@ static void TeleportWarpOutFieldEffect_SpinExit(struct Task *task)
|
||||
task->data[1] = 4;
|
||||
ObjectEventTurn(objectEvent, spinDirections[objectEvent->facingDirection]);
|
||||
}
|
||||
sprite->pos1.y -= task->data[3];
|
||||
sprite->y -= task->data[3];
|
||||
task->data[4] += task->data[3];
|
||||
if ((--task->data[2]) <= 0 && (task->data[2] = 4, task->data[3] < 8))
|
||||
{
|
||||
@@ -2466,7 +2466,7 @@ static void TeleportWarpInFieldEffect_Init(struct Task *task)
|
||||
{
|
||||
sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
centerToCornerVecY = -(sprite->centerToCornerVecY << 1);
|
||||
sprite->pos2.y = -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY);
|
||||
sprite->y2 = -(sprite->y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY);
|
||||
gObjectEvents[gPlayerAvatar.objectEventId].invisible = FALSE;
|
||||
task->data[0]++;
|
||||
task->data[1] = 8;
|
||||
@@ -2482,7 +2482,7 @@ static void TeleportWarpInFieldEffect_SpinEnter(struct Task *task)
|
||||
u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH};
|
||||
struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||
struct Sprite *sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
if ((sprite->pos2.y += task->data[1]) >= -8)
|
||||
if ((sprite->y2 += task->data[1]) >= -8)
|
||||
{
|
||||
if (task->data[13] == 0)
|
||||
{
|
||||
@@ -2498,7 +2498,7 @@ static void TeleportWarpInFieldEffect_SpinEnter(struct Task *task)
|
||||
sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
|
||||
}
|
||||
}
|
||||
if (sprite->pos2.y >= -0x30 && task->data[1] > 1 && !(sprite->pos2.y & 1))
|
||||
if (sprite->y2 >= -0x30 && task->data[1] > 1 && !(sprite->y2 & 1))
|
||||
{
|
||||
task->data[1]--;
|
||||
}
|
||||
@@ -2507,9 +2507,9 @@ static void TeleportWarpInFieldEffect_SpinEnter(struct Task *task)
|
||||
task->data[2] = 4;
|
||||
ObjectEventTurn(objectEvent, spinDirections[objectEvent->facingDirection]);
|
||||
}
|
||||
if (sprite->pos2.y >= 0)
|
||||
if (sprite->y2 >= 0)
|
||||
{
|
||||
sprite->pos2.y = 0;
|
||||
sprite->y2 = 0;
|
||||
task->data[0]++;
|
||||
task->data[1] = 1;
|
||||
task->data[2] = 0;
|
||||
@@ -2929,9 +2929,9 @@ static u8 InitFieldMoveMonSprite(u32 species, u32 otId, u32 personality)
|
||||
|
||||
static void SpriteCB_FieldMoveMonSlideOnscreen(struct Sprite *sprite)
|
||||
{
|
||||
if ((sprite->pos1.x -= 20) <= DISPLAY_WIDTH / 2)
|
||||
if ((sprite->x -= 20) <= DISPLAY_WIDTH / 2)
|
||||
{
|
||||
sprite->pos1.x = DISPLAY_WIDTH / 2;
|
||||
sprite->x = DISPLAY_WIDTH / 2;
|
||||
sprite->sOnscreenTimer = 30;
|
||||
sprite->callback = SpriteCB_FieldMoveMonWaitAfterCry;
|
||||
if (sprite->data[6])
|
||||
@@ -2953,10 +2953,10 @@ static void SpriteCB_FieldMoveMonWaitAfterCry(struct Sprite *sprite)
|
||||
|
||||
static void SpriteCB_FieldMoveMonSlideOffscreen(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->pos1.x < -64)
|
||||
if (sprite->x < -64)
|
||||
sprite->sSlidOffscreen = TRUE;
|
||||
else
|
||||
sprite->pos1.x -= 20;
|
||||
sprite->x -= 20;
|
||||
}
|
||||
|
||||
#undef tState
|
||||
@@ -3078,7 +3078,7 @@ u8 FldEff_RayquazaSpotlight(void)
|
||||
sprite->data[1] = 0;
|
||||
sprite->data[2] = 0;
|
||||
sprite->data[3] = -1;
|
||||
sprite->data[4] = sprite->pos1.y;
|
||||
sprite->data[4] = sprite->y;
|
||||
sprite->data[5] = 0;
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(14, 14));
|
||||
@@ -3120,17 +3120,17 @@ static void SpriteCB_NPCFlyOut(struct Sprite *sprite)
|
||||
{
|
||||
struct Sprite *npcSprite;
|
||||
|
||||
sprite->pos2.x = Cos(sprite->data[2], 0x8c);
|
||||
sprite->pos2.y = Sin(sprite->data[2], 0x48);
|
||||
sprite->x2 = Cos(sprite->data[2], 0x8c);
|
||||
sprite->y2 = Sin(sprite->data[2], 0x48);
|
||||
sprite->data[2] = (sprite->data[2] + 4) & 0xff;
|
||||
if (sprite->data[0])
|
||||
{
|
||||
npcSprite = &gSprites[sprite->data[1]];
|
||||
npcSprite->coordOffsetEnabled = FALSE;
|
||||
npcSprite->pos1.x = sprite->pos1.x + sprite->pos2.x;
|
||||
npcSprite->pos1.y = sprite->pos1.y + sprite->pos2.y - 8;
|
||||
npcSprite->pos2.x = 0;
|
||||
npcSprite->pos2.y = 0;
|
||||
npcSprite->x = sprite->x + sprite->x2;
|
||||
npcSprite->y = sprite->y + sprite->y2 - 8;
|
||||
npcSprite->x2 = 0;
|
||||
npcSprite->y2 = 0;
|
||||
}
|
||||
|
||||
if (sprite->data[2] >= 0x80)
|
||||
@@ -3306,10 +3306,10 @@ static void StartFlyBirdSwoopDown(u8 spriteId)
|
||||
struct Sprite *sprite;
|
||||
sprite = &gSprites[spriteId];
|
||||
sprite->callback = SpriteCB_FlyBirdSwoopDown;
|
||||
sprite->pos1.x = DISPLAY_WIDTH / 2;
|
||||
sprite->pos1.y = 0;
|
||||
sprite->pos2.x = 0;
|
||||
sprite->pos2.y = 0;
|
||||
sprite->x = DISPLAY_WIDTH / 2;
|
||||
sprite->y = 0;
|
||||
sprite->x2 = 0;
|
||||
sprite->y2 = 0;
|
||||
memset(&sprite->data[0], 0, 8 * sizeof(u16) /* zero all data cells */);
|
||||
sprite->sPlayerSpriteId = MAX_SPRITES;
|
||||
}
|
||||
@@ -3346,15 +3346,15 @@ static void SpriteCB_FlyBirdLeaveBall(struct Sprite *sprite)
|
||||
sprite->affineAnims = sAffineAnims_FlyBird;
|
||||
InitSpriteAffineAnim(sprite);
|
||||
StartSpriteAffineAnim(sprite, 0);
|
||||
sprite->pos1.x = 0x76;
|
||||
sprite->pos1.y = -0x30;
|
||||
sprite->x = 0x76;
|
||||
sprite->y = -0x30;
|
||||
sprite->data[0]++;
|
||||
sprite->data[1] = 0x40;
|
||||
sprite->data[2] = 0x100;
|
||||
}
|
||||
sprite->data[1] += (sprite->data[2] >> 8);
|
||||
sprite->pos2.x = Cos(sprite->data[1], 0x78);
|
||||
sprite->pos2.y = Sin(sprite->data[1], 0x78);
|
||||
sprite->x2 = Cos(sprite->data[1], 0x78);
|
||||
sprite->y2 = Sin(sprite->data[1], 0x78);
|
||||
if (sprite->data[2] < 0x800)
|
||||
{
|
||||
sprite->data[2] += 0x60;
|
||||
@@ -3371,17 +3371,17 @@ static void SpriteCB_FlyBirdLeaveBall(struct Sprite *sprite)
|
||||
|
||||
static void SpriteCB_FlyBirdSwoopDown(struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos2.x = Cos(sprite->data[2], 0x8c);
|
||||
sprite->pos2.y = Sin(sprite->data[2], 0x48);
|
||||
sprite->x2 = Cos(sprite->data[2], 0x8c);
|
||||
sprite->y2 = Sin(sprite->data[2], 0x48);
|
||||
sprite->data[2] = (sprite->data[2] + 4) & 0xff;
|
||||
if (sprite->sPlayerSpriteId != MAX_SPRITES)
|
||||
{
|
||||
struct Sprite *sprite1 = &gSprites[sprite->sPlayerSpriteId];
|
||||
sprite1->coordOffsetEnabled = FALSE;
|
||||
sprite1->pos1.x = sprite->pos1.x + sprite->pos2.x;
|
||||
sprite1->pos1.y = sprite->pos1.y + sprite->pos2.y - 8;
|
||||
sprite1->pos2.x = 0;
|
||||
sprite1->pos2.y = 0;
|
||||
sprite1->x = sprite->x + sprite->x2;
|
||||
sprite1->y = sprite->y + sprite->y2 - 8;
|
||||
sprite1->x2 = 0;
|
||||
sprite1->y2 = 0;
|
||||
}
|
||||
if (sprite->data[2] >= 0x80)
|
||||
{
|
||||
@@ -3399,8 +3399,8 @@ static void SpriteCB_FlyBirdReturnToBall(struct Sprite *sprite)
|
||||
sprite->affineAnims = sAffineAnims_FlyBird;
|
||||
InitSpriteAffineAnim(sprite);
|
||||
StartSpriteAffineAnim(sprite, 1);
|
||||
sprite->pos1.x = 0x5e;
|
||||
sprite->pos1.y = -0x20;
|
||||
sprite->x = 0x5e;
|
||||
sprite->y = -0x20;
|
||||
sprite->data[0]++;
|
||||
sprite->data[1] = 0xf0;
|
||||
sprite->data[2] = 0x800;
|
||||
@@ -3409,8 +3409,8 @@ static void SpriteCB_FlyBirdReturnToBall(struct Sprite *sprite)
|
||||
sprite->data[1] += sprite->data[2] >> 8;
|
||||
sprite->data[3] += sprite->data[2] >> 8;
|
||||
sprite->data[1] &= 0xff;
|
||||
sprite->pos2.x = Cos(sprite->data[1], 0x20);
|
||||
sprite->pos2.y = Sin(sprite->data[1], 0x78);
|
||||
sprite->x2 = Cos(sprite->data[1], 0x20);
|
||||
sprite->y2 = Sin(sprite->data[1], 0x78);
|
||||
if (sprite->data[2] > 0x100)
|
||||
{
|
||||
sprite->data[2] -= sprite->data[4];
|
||||
@@ -3495,10 +3495,10 @@ static void FlyInFieldEffect_FlyInWithBird(struct Task *task)
|
||||
objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||
sprite = &gSprites[objectEvent->spriteId];
|
||||
SetFlyBirdPlayerSpriteId(task->tBirdSpriteId, MAX_SPRITES);
|
||||
sprite->pos1.x += sprite->pos2.x;
|
||||
sprite->pos1.y += sprite->pos2.y;
|
||||
sprite->pos2.x = 0;
|
||||
sprite->pos2.y = 0;
|
||||
sprite->x += sprite->x2;
|
||||
sprite->y += sprite->y2;
|
||||
sprite->x2 = 0;
|
||||
sprite->y2 = 0;
|
||||
task->tState++;
|
||||
task->tTimer = 0;
|
||||
}
|
||||
@@ -3527,7 +3527,7 @@ static void FlyInFieldEffect_JumpOffBird(struct Task *task)
|
||||
8
|
||||
};
|
||||
struct Sprite *sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
sprite->pos2.y = sYPositions[task->tTimer];
|
||||
sprite->y2 = sYPositions[task->tTimer];
|
||||
|
||||
if ((++task->tTimer) >= (int)ARRAY_COUNT(sYPositions))
|
||||
task->tState++;
|
||||
@@ -3543,8 +3543,8 @@ static void FlyInFieldEffect_FieldMovePose(struct Task *task)
|
||||
sprite = &gSprites[objectEvent->spriteId];
|
||||
objectEvent->inanimate = FALSE;
|
||||
MoveObjectEventToMapCoords(objectEvent, objectEvent->currentCoords.x, objectEvent->currentCoords.y);
|
||||
sprite->pos2.x = 0;
|
||||
sprite->pos2.y = 0;
|
||||
sprite->x2 = 0;
|
||||
sprite->y2 = 0;
|
||||
sprite->coordOffsetEnabled = TRUE;
|
||||
SetPlayerAvatarFieldMove();
|
||||
ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION);
|
||||
@@ -3780,8 +3780,8 @@ static const struct SpriteTemplate sSpriteTemplate_DeoxysRockFragment = {
|
||||
static void CreateDeoxysRockFragments(struct Sprite* sprite)
|
||||
{
|
||||
int i;
|
||||
int xPos = (s16)gTotalCameraPixelOffsetX + sprite->pos1.x + sprite->pos2.x;
|
||||
int yPos = (s16)gTotalCameraPixelOffsetY + sprite->pos1.y + sprite->pos2.y - 4;
|
||||
int xPos = (s16)gTotalCameraPixelOffsetX + sprite->x + sprite->x2;
|
||||
int yPos = (s16)gTotalCameraPixelOffsetY + sprite->y + sprite->y2 - 4;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
@@ -3801,23 +3801,23 @@ static void SpriteCB_DeoxysRockFragment(struct Sprite* sprite)
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
case 0:
|
||||
sprite->pos1.x -= 16;
|
||||
sprite->pos1.y -= 12;
|
||||
sprite->x -= 16;
|
||||
sprite->y -= 12;
|
||||
break;
|
||||
case 1:
|
||||
sprite->pos1.x += 16;
|
||||
sprite->pos1.y -= 12;
|
||||
sprite->x += 16;
|
||||
sprite->y -= 12;
|
||||
break;
|
||||
case 2:
|
||||
sprite->pos1.x -= 16;
|
||||
sprite->pos1.y += 12;
|
||||
sprite->x -= 16;
|
||||
sprite->y += 12;
|
||||
break;
|
||||
case 3:
|
||||
sprite->pos1.x += 16;
|
||||
sprite->pos1.y += 12;
|
||||
sprite->x += 16;
|
||||
sprite->y += 12;
|
||||
break;
|
||||
}
|
||||
if ((u16)(sprite->pos1.x + 4) > DISPLAY_WIDTH + 8 || sprite->pos1.y < -4 || sprite->pos1.y > DISPLAY_HEIGHT + 4)
|
||||
if ((u16)(sprite->x + 4) > DISPLAY_WIDTH + 8 || sprite->y < -4 || sprite->y > DISPLAY_HEIGHT + 4)
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
|
||||
@@ -3837,8 +3837,8 @@ bool8 FldEff_MoveDeoxysRock(struct Sprite* sprite)
|
||||
ShiftObjectEventCoords(object, gFieldEffectArguments[3] + 7, gFieldEffectArguments[4] + 7);
|
||||
taskId = CreateTask(Task_MoveDeoxysRock, 80);
|
||||
gTasks[taskId].data[1] = object->spriteId;
|
||||
gTasks[taskId].data[2] = gSprites[object->spriteId].pos1.x + xPos;
|
||||
gTasks[taskId].data[3] = gSprites[object->spriteId].pos1.y + yPos;
|
||||
gTasks[taskId].data[2] = gSprites[object->spriteId].x + xPos;
|
||||
gTasks[taskId].data[3] = gSprites[object->spriteId].y + yPos;
|
||||
gTasks[taskId].data[8] = gFieldEffectArguments[5];
|
||||
gTasks[taskId].data[9] = objectEventIdBuffer;
|
||||
}
|
||||
@@ -3852,8 +3852,8 @@ static void Task_MoveDeoxysRock(u8 taskId)
|
||||
switch (data[0])
|
||||
{
|
||||
case 0:
|
||||
data[4] = sprite->pos1.x << 4;
|
||||
data[5] = sprite->pos1.y << 4;
|
||||
data[4] = sprite->x << 4;
|
||||
data[5] = sprite->y << 4;
|
||||
data[6] = SAFE_DIV(data[2] * 16 - data[4], data[8]);
|
||||
data[7] = SAFE_DIV(data[3] * 16 - data[5], data[8]);
|
||||
data[0]++;
|
||||
@@ -3863,14 +3863,14 @@ static void Task_MoveDeoxysRock(u8 taskId)
|
||||
data[8]--;
|
||||
data[4] += data[6];
|
||||
data[5] += data[7];
|
||||
sprite->pos1.x = data[4] >> 4;
|
||||
sprite->pos1.y = data[5] >> 4;
|
||||
sprite->x = data[4] >> 4;
|
||||
sprite->y = data[5] >> 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
struct ObjectEvent *object = &gObjectEvents[data[9]];
|
||||
sprite->pos1.x = data[2];
|
||||
sprite->pos1.y = data[3];
|
||||
sprite->x = data[2];
|
||||
sprite->y = data[3];
|
||||
ShiftStillObjectEventCoords(object);
|
||||
object->triggerGroundEffectsOnStop = TRUE;
|
||||
FieldEffectActiveListRemove(FLDEFF_MOVE_DEOXYS_ROCK);
|
||||
|
||||
Reference in New Issue
Block a user