diff options
author | GriffinR <griffin.g.richards@gmail.com> | 2021-08-02 14:08:10 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-02 14:08:10 -0400 |
commit | bd5cf070597e9c9d175777832859ed0c64fe7760 (patch) | |
tree | 4dda9e759cbb4cf0c061c24a83832c59277f7d53 /gflib/sprite.c | |
parent | 06b909bcd80e5b3f882273a317ac957cd57f07a5 (diff) | |
parent | d391486247cc9f29d85787d6711f7cb993cf6585 (diff) |
Merge branch 'master' into doc-playerpc
Diffstat (limited to 'gflib/sprite.c')
-rw-r--r-- | gflib/sprite.c | 27 |
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); } } |