summaryrefslogtreecommitdiff
path: root/gflib/sprite.c
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2021-02-20 00:30:37 -0500
committerGriffinR <griffin.g.richards@gmail.com>2021-02-24 11:03:32 -0500
commitb04f0aaa2beb4dad08f78716ce1865b797fc34bd (patch)
tree0a73e547435301d7326d3cd70be9381e8e6fbe1e /gflib/sprite.c
parenta5852d57d124c49fd1b80510e968c18404a436a3 (diff)
Use SPRITE_NONE constant
Diffstat (limited to 'gflib/sprite.c')
-rw-r--r--gflib/sprite.c39
1 files changed, 24 insertions, 15 deletions
diff --git a/gflib/sprite.c b/gflib/sprite.c
index 2616aeaed..764ead3d3 100644
--- a/gflib/sprite.c
+++ b/gflib/sprite.c
@@ -33,6 +33,12 @@ struct SpriteCopyRequest
u16 size;
};
+struct OamDimensions32
+{
+ s32 width;
+ s32 height;
+};
+
struct OamDimensions
{
s8 width;
@@ -240,25 +246,28 @@ static const AffineAnimCmdFunc sAffineAnimCmdFuncs[] =
AffineAnimCmd_frame,
};
-static const s32 sUnknown_082EC6F4[3][4][2] =
+static const struct OamDimensions32 sOamDimensions32[3][4] =
{
+ [ST_OAM_SQUARE] =
{
- {8, 8},
- {0x10, 0x10},
- {0x20, 0x20},
- {0x40, 0x40},
+ [SPRITE_SIZE(8x8)] = { 8, 8 },
+ [SPRITE_SIZE(16x16)] = { 16, 16 },
+ [SPRITE_SIZE(32x32)] = { 32, 32 },
+ [SPRITE_SIZE(64x64)] = { 64, 64 },
},
+ [ST_OAM_H_RECTANGLE] =
{
- {0x10, 8},
- {0x20, 8},
- {0x20, 0x10},
- {0x40, 0x20},
+ [SPRITE_SIZE(16x8)] = { 16, 8 },
+ [SPRITE_SIZE(32x8)] = { 32, 8 },
+ [SPRITE_SIZE(32x16)] = { 32, 16 },
+ [SPRITE_SIZE(64x32)] = { 64, 32 },
},
+ [ST_OAM_V_RECTANGLE] =
{
- {8, 0x10},
- {8, 0x20},
- {0x10, 0x20},
- {0x20, 0x40},
+ [SPRITE_SIZE(8x16)] = { 8, 16 },
+ [SPRITE_SIZE(8x32)] = { 8, 32 },
+ [SPRITE_SIZE(16x32)] = { 16, 32 },
+ [SPRITE_SIZE(32x64)] = { 32, 64 },
},
};
@@ -1233,14 +1242,14 @@ void obj_update_pos2(struct Sprite *sprite, s32 a1, s32 a2)
u32 matrixNum = sprite->oam.matrixNum;
if (a1 != 0x800)
{
- var0 = sUnknown_082EC6F4[sprite->oam.shape][sprite->oam.size][0];
+ 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);
}
if (a2 != 0x800)
{
- var0 = sUnknown_082EC6F4[sprite->oam.shape][sprite->oam.size][1];
+ 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);