summaryrefslogtreecommitdiff
path: root/gflib/sprite.c
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2021-08-02 14:08:10 -0400
committerGitHub <noreply@github.com>2021-08-02 14:08:10 -0400
commitbd5cf070597e9c9d175777832859ed0c64fe7760 (patch)
tree4dda9e759cbb4cf0c061c24a83832c59277f7d53 /gflib/sprite.c
parent06b909bcd80e5b3f882273a317ac957cd57f07a5 (diff)
parentd391486247cc9f29d85787d6711f7cb993cf6585 (diff)
Merge branch 'master' into doc-playerpc
Diffstat (limited to 'gflib/sprite.c')
-rw-r--r--gflib/sprite.c27
1 files changed, 15 insertions, 12 deletions
diff --git a/gflib/sprite.c b/gflib/sprite.c
index c66b1e47d..408daf6f9 100644
--- a/gflib/sprite.c
+++ b/gflib/sprite.c
@@ -164,8 +164,8 @@ static const struct Sprite sDummySprite =
.template = &gDummySpriteTemplate,
.subspriteTables = NULL,
.callback = SpriteCallbackDummy,
- .pos1 = { 304, 160 },
- .pos2 = { 0, 0 },
+ .x = 304, .y = 160,
+ .x2 = 0, .y2 = 0,
.centerToCornerVecX = 0,
.centerToCornerVecY = 0,
.animNum = 0,
@@ -375,13 +375,13 @@ void UpdateOamCoords(void)
{
if (sprite->coordOffsetEnabled)
{
- sprite->oam.x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX;
- sprite->oam.y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY;
+ sprite->oam.x = sprite->x + sprite->x2 + sprite->centerToCornerVecX + gSpriteCoordOffsetX;
+ sprite->oam.y = sprite->y + sprite->y2 + sprite->centerToCornerVecY + gSpriteCoordOffsetY;
}
else
{
- sprite->oam.x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX;
- sprite->oam.y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY;
+ sprite->oam.x = sprite->x + sprite->x2 + sprite->centerToCornerVecX;
+ sprite->oam.y = sprite->y + sprite->y2 + sprite->centerToCornerVecY;
}
}
}
@@ -452,6 +452,10 @@ void SortSprites(void)
// Although this doesn't result in a bug in the ROM,
// the behavior is undefined.
j--;
+#ifdef UBFIX
+ if (j == 0)
+ break;
+#endif
sprite1 = &gSprites[sSpriteOrder[j - 1]];
sprite2 = &gSprites[sSpriteOrder[j]];
@@ -579,8 +583,8 @@ u8 CreateSpriteAt(u8 index, const struct SpriteTemplate *template, s16 x, s16 y,
sprite->affineAnims = template->affineAnims;
sprite->template = template;
sprite->callback = template->callback;
- sprite->pos1.x = x;
- sprite->pos1.y = y;
+ sprite->x = x;
+ sprite->y = y;
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
@@ -661,8 +665,7 @@ void ResetOamRange(u8 a, u8 b)
for (i = a; i < b; i++)
{
- struct OamData *oamBuffer = gMain.oamBuffer;
- oamBuffer[i] = *(struct OamData *)&gDummyOamData;
+ gMain.oamBuffer[i] = *(struct OamData *)&gDummyOamData;
}
}
@@ -1245,14 +1248,14 @@ void obj_update_pos2(struct Sprite *sprite, s32 a1, s32 a2)
var0 = sOamDimensions32[sprite->oam.shape][sprite->oam.size].width;
var1 = var0 << 8;
var2 = (var0 << 16) / gOamMatrices[matrixNum].a;
- sprite->pos2.x = sub_8007E28(var1, var2, a1);
+ sprite->x2 = sub_8007E28(var1, var2, a1);
}
if (a2 != 0x800)
{
var0 = sOamDimensions32[sprite->oam.shape][sprite->oam.size].height;
var1 = var0 << 8;
var2 = (var0 << 16) / gOamMatrices[matrixNum].d;
- sprite->pos2.y = sub_8007E28(var1, var2, a2);
+ sprite->y2 = sub_8007E28(var1, var2, a2);
}
}