summaryrefslogtreecommitdiff
path: root/include/gba
diff options
context:
space:
mode:
authorPhlosioneer <mattmdrr2@gmail.com>2019-03-31 20:43:42 -0400
committerPhlosioneer <mattmdrr2@gmail.com>2019-03-31 20:43:42 -0400
commitcd069446e06c277222be0aaa05fb43b090259234 (patch)
treea740e2042ff6af3465cfdaa15fc29c35269cfa70 /include/gba
parent3181c64c64afa47b3adc04f325ad3798c8c324ec (diff)
parent93c4e35d844046d12c7d8bcc64e8fc3e03e85e0d (diff)
Merge branch 'master' into pokedex-area-const-array
Diffstat (limited to 'include/gba')
-rw-r--r--include/gba/types.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/include/gba/types.h b/include/gba/types.h
index 3d78b5b5e..cb370c785 100644
--- a/include/gba/types.h
+++ b/include/gba/types.h
@@ -87,6 +87,29 @@ struct OamData
#define ST_OAM_H_RECTANGLE 1
#define ST_OAM_V_RECTANGLE 2
+#define ST_OAM_SIZE_0 0
+#define ST_OAM_SIZE_1 1
+#define ST_OAM_SIZE_2 2
+#define ST_OAM_SIZE_3 3
+
+#define SPRITE_SIZE_8x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_SQUARE))
+#define SPRITE_SIZE_16x16 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_SQUARE))
+#define SPRITE_SIZE_32x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_SQUARE))
+#define SPRITE_SIZE_64x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_SQUARE))
+
+#define SPRITE_SIZE_16x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_H_RECTANGLE))
+#define SPRITE_SIZE_32x8 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_H_RECTANGLE))
+#define SPRITE_SIZE_32x16 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_H_RECTANGLE))
+#define SPRITE_SIZE_64x32 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_H_RECTANGLE))
+
+#define SPRITE_SIZE_8x16 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_V_RECTANGLE))
+#define SPRITE_SIZE_8x32 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_V_RECTANGLE))
+#define SPRITE_SIZE_16x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_V_RECTANGLE))
+#define SPRITE_SIZE_32x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_V_RECTANGLE))
+
+#define SPRITE_SIZE(dim) (SPRITE_SIZE_##dim >> 2)
+#define SPRITE_SHAPE(dim) (SPRITE_SIZE_##dim & 0xFF)
+
struct BgAffineSrcData
{
s32 texX;