Fix the modulo fakematchings

Ported from pokeemerald commit af8e0b2516202879a078bc2d0cf26058284bed1f
This commit is contained in:
Mike-Goutokuji
2026-06-07 16:01:56 -04:00
parent e060ab955b
commit f8b7e7a8b5

View File

@@ -3226,9 +3226,6 @@ static void AnimItemSteal_Step3(struct Sprite* sprite)
// arg 1: initial wave offset
static void AnimTrickBag(struct Sprite* sprite)
{
int a;
int b;
if (!sprite->data[0])
{
if (!IsContest())
@@ -3238,13 +3235,7 @@ static void AnimTrickBag(struct Sprite* sprite)
}
else
{
a = gBattleAnimArgs[1] - 32;
if (a < 0)
b = gBattleAnimArgs[1] + 0xDF;
else
b = a;
sprite->data[1] = a - ((b >> 8) << 8);
sprite->data[1] = (gBattleAnimArgs[1] - 32) % 256;
sprite->x = 70;
}
@@ -4419,18 +4410,18 @@ static void AnimLockOnTarget_Step6(struct Sprite* sprite)
static void AnimLockOnMoveTarget(struct Sprite* sprite)
{
sprite->oam.affineParam = gBattleAnimArgs[0];
if ((s16)sprite->oam.affineParam == 1)
if (gBattleAnimArgs[0] == 1)
{
sprite->x -= 0x18;
sprite->y -= 0x18;
}
else if ((s16)sprite->oam.affineParam == 2)
else if (gBattleAnimArgs[0] == 2)
{
sprite->x -= 0x18;
sprite->y += 0x18;
sprite->oam.matrixNum = ST_OAM_VFLIP;
}
else if ((s16)sprite->oam.affineParam == 3)
else if (gBattleAnimArgs[0] == 3)
{
sprite->x += 0x18;
sprite->y -= 0x18;
@@ -4443,7 +4434,7 @@ static void AnimLockOnMoveTarget(struct Sprite* sprite)
sprite->oam.matrixNum = ST_OAM_HFLIP | ST_OAM_VFLIP;
}
sprite->oam.tileNum = (sprite->oam.tileNum + 16);
sprite->oam.tileNum += 16;
sprite->callback = AnimLockOnTarget;
sprite->callback(sprite);
}
@@ -4485,7 +4476,7 @@ static void AnimBowMon_Step1_Callback(struct Sprite* sprite)
{
sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker];
PrepareBattlerSpriteForRotScale(sprite->data[3], ST_OAM_OBJ_NORMAL);
sprite->data[4] = (sprite->data[6] = GetBattlerSide(gBattleAnimAttacker)) ? 0x300 : 0xFFFFFD00;
sprite->data[4] = (sprite->data[6] = GetBattlerSide(gBattleAnimAttacker)) ? 0x300 : -0x300;
sprite->data[5] = 0;
}
@@ -5384,7 +5375,7 @@ static void AnimWavyMusicNotes_Step(struct Sprite* sprite)
u8 index;
sprite->sMoveTimer++;
trigIdx = sprite->sMoveTimer * 5 - ((sprite->sMoveTimer * 5 / 256) << 8);
trigIdx = (sprite->sMoveTimer * 5) % 256;
sprite->sX += sprite->sVelocX;
sprite->sY += sprite->sVelocY;
sprite->x = sprite->sX >> 4;