summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/fieldmap.h67
-rw-r--r--include/global.h6
-rw-r--r--include/sprite.h7
3 files changed, 79 insertions, 1 deletions
diff --git a/include/fieldmap.h b/include/fieldmap.h
index 09ad2ae07..503b4b931 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -35,11 +35,76 @@ struct MapHeader
struct MapObject
{
u32 active:1;
- u8 filler[0x20];
+ u32 mapobj_bit_1:1;
+ u32 mapobj_bit_2:1;
+ u32 mapobj_bit_3:1;
+ u32 mapobj_bit_4:1;
+ u32 mapobj_bit_5:1;
+ u32 mapobj_bit_6:1;
+ u32 mapobj_bit_7:1;
+ u32 mapobj_bit_8:1;
+ u32 mapobj_bit_9:1;
+ u32 mapobj_bit_10:1;
+ u32 mapobj_bit_11:1;
+ u32 mapobj_bit_12:1;
+ u32 mapobj_bit_13:1;
+ u32 mapobj_bit_14:1;
+ u32 mapobj_bit_15:1;
+ u32 mapobj_bit_16:1;
+ u32 mapobj_bit_17:1;
+ u32 mapobj_bit_18:1;
+ u32 mapobj_bit_19:1;
+ u32 mapobj_bit_20:1;
+ u32 mapobj_bit_21:1;
+ u32 mapobj_bit_22:1;
+ u32 mapobj_bit_23:1;
+ u32 mapobj_bit_24:1;
+ u32 mapobj_bit_25:1;
+ u32 mapobj_bit_26:1;
+ u32 mapobj_bit_27:1;
+ u32 mapobj_bit_28:1;
+ u32 mapobj_bit_29:1;
+ u32 mapobj_bit_30:1;
+ u32 mapobj_bit_31:1;
+ u8 spriteId;
+ u8 graphicsId;
+ u8 filler[0x1E];
+};
+
+struct MapObjectGraphicsInfo
+{
+ u16 tileTag;
+ u16 paletteTag1;
+ u16 paletteTag2;
+ u16 size;
+ s16 width;
+ s16 height;
+ u8 paletteSlot:4;
+ u8 shadowSize:2;
+ u8 inanimate:1;
+ u8 disableReflectionPaletteLoad:1;
+ u8 tracks;
+ struct OamData *oam;
+ struct SubspriteTable *subspriteTables;
+ union AnimCmd **anims;
+ struct SpriteFrameImage *images;
+ union AffineAnimCmd **affineAnims;
+};
+
+struct PlayerAvatar
+{
+ u8 bitfield;
+ u8 bike;
+ u8 running2;
+ u8 running1;
+ u8 spriteId;
+ u8 mapObjectId;
+ // TODO: rest of struct
};
extern struct MapObject gMapObjects[];
extern u8 gSelectedMapObject;
extern struct MapHeader gMapHeader;
+extern struct PlayerAvatar gPlayerAvatar;
#endif // GUARD_FIELDMAP_H
diff --git a/include/global.h b/include/global.h
index 3acdd5c62..437f87ecb 100644
--- a/include/global.h
+++ b/include/global.h
@@ -52,6 +52,12 @@ struct Coords16
s16 y;
};
+struct UCoords16
+{
+ u16 x;
+ u16 y;
+};
+
struct SecretBaseRecord
{
u8 sbr_field_0; // ID?
diff --git a/include/sprite.h b/include/sprite.h
index 9b800a9ea..fe55d18e8 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -1,6 +1,8 @@
#ifndef GUARD_SPRITE_H
#define GUARD_SPRITE_H
+#define MAX_SPRITES 64
+
struct SpriteSheet
{
u8 *data;
@@ -183,6 +185,11 @@ struct Sprite
u8 subpriority;
};
+extern s16 gSpriteCoordOffsetX;
+extern s16 gSpriteCoordOffsetY;
+
+extern struct Sprite gSprites[];
+
void ResetSpriteData(void);
void AnimateSprites(void);
void BuildOamBuffer(void);