summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
author21aslade <21aslade@go.dsdmail.net>2020-11-07 15:22:02 -0700
committer21aslade <21aslade@go.dsdmail.net>2020-11-07 15:22:02 -0700
commitd04dc143fbbef8feef61daf39d110703f4dfda9b (patch)
tree626b7ee4279b2224aa06bef8231fd6daa4363998 /include
parent4b6f822829d6dd771ed995030f1bf1d24f204536 (diff)
parentf1bfe499de0afdd8e93c5e3e0e6c9e12b3343e1b (diff)
Merge branch 'master' of https://github.com/zeldaret/tmc
Diffstat (limited to 'include')
-rw-r--r--include/area.h1
-rw-r--r--include/enemy.h2
-rw-r--r--include/entity.h70
-rw-r--r--include/functions.h36
-rw-r--r--include/global.h3
-rw-r--r--include/greatFairy.h4
-rw-r--r--include/lakitu.h84
-rw-r--r--include/manager.h3
-rw-r--r--include/menu.h2
-rw-r--r--include/npc.h1
-rw-r--r--include/player.h18
-rw-r--r--include/room.h52
-rw-r--r--include/screen.h11
-rw-r--r--include/structures.h20
14 files changed, 143 insertions, 164 deletions
diff --git a/include/area.h b/include/area.h
index a683cb2a..a3f27b93 100644
--- a/include/area.h
+++ b/include/area.h
@@ -8,6 +8,7 @@ typedef struct {
u8 areaMetadata;
u8 locationIndex;
u8 unk;
+ u8 regret;
u16 localFlagOffset;
u8 filler[10];
u16 field_0x10;
diff --git a/include/enemy.h b/include/enemy.h
index 811c5d06..0eb7b069 100644
--- a/include/enemy.h
+++ b/include/enemy.h
@@ -110,4 +110,6 @@ extern void Enemy66(Entity*);
extern u32 GetNextFunction(Entity*);
extern void EnemyFunctionHandler(Entity*, void (*const func[])(Entity*));
+extern void sub_0804AA30(Entity*, void (*const func[])(Entity*));
+extern void sub_08001324(Entity*);
#endif \ No newline at end of file
diff --git a/include/entity.h b/include/entity.h
index 36b02000..a90ca7c9 100644
--- a/include/entity.h
+++ b/include/entity.h
@@ -19,10 +19,7 @@ typedef struct {
} EntityType;
typedef struct {
- u8 unknown[6];
- u8 field_0x6;
- u8 field_0x7;
- u8 unknown2[4];
+ u8 unknown[8];
} BoundingBox;
typedef struct Entity {
@@ -44,12 +41,12 @@ typedef struct Entity {
/*0x18*/ union {
/* */ u8 raw;
/* */ struct {
- /* */ u8 draw : 2; // 1-2
- /* */ u8 ss2 : 1; // 4
- /* */ u8 ss3 : 1; // 8
- /* */ u8 shadow : 2; //0x10-0x20
- /* */ u8 flipX : 1; //0x40
- /* */ u8 flipY : 1; //0x80
+ /* */ u32 draw : 2; // 1-2
+ /* */ u32 ss2 : 1; // 4
+ /* */ u32 ss3 : 1; // 8
+ /* */ u32 shadow : 2; //0x10-0x20
+ /* */ u32 flipX : 1; //0x40
+ /* */ u32 flipY : 1; //0x80
/* */ } PACKED b;
/* */ } PACKED spriteSettings;
/*0x19*/ struct {
@@ -100,12 +97,9 @@ typedef struct Entity {
/*0x43*/ u8 field_0x43;
/*0x44*/ u8 field_0x44;
/*0x45*/ u8 currentHealth;
- /*0x46*/ s16 field_0x46;
+ /*0x46*/ u16 field_0x46;
/*0x48*/ BoundingBox* boundingBox;
- /*0x4c*/ u8 field_0x4c;
- /*0x4d*/ u8 field_0x4d;
- /*0x4e*/ u8 field_0x4e;
- /*0x4f*/ u8 field_0x4f;
+ /*0x4c*/ struct Entity* field_0x4c;
/*0x50*/ struct Entity* parent;
/*0x54*/ struct Entity* attachedEntity;
/*0x58*/ u8 animIndex;
@@ -123,12 +117,12 @@ typedef struct Entity {
/*0x5c*/ Frame* animPtr;
/*0x60*/ u16 spriteVramOffset;
/*0x62*/ u8 spriteOffsetX;
- /*0x63*/ u8 spriteOffsetY;
+ /*0x63*/ s8 spriteOffsetY;
/*0x64*/ u32* otherEntity;
/*0x68*/ union SplitHWord field_0x68;
/*0x6a*/ union SplitHWord field_0x6a;
/*0x6c*/ union SplitHWord field_0x6c;
- /*0x6e*/ u8 filler4[2];
+ /*0x6e*/ union SplitHWord field_0x6e;
/*0x70*/ union SplitWord field_0x70;
/*0x74*/ union SplitHWord field_0x74;
/*0x76*/ union SplitHWord field_0x76;
@@ -138,16 +132,18 @@ typedef struct Entity {
/*0x80*/ union SplitHWord field_0x80;
/*0x82*/ union SplitHWord field_0x82;
/*0x84*/ union SplitHWord cutsceneBeh;
- /*0x86*/ u16 field_0x86;
+ /*0x86*/ union SplitHWord field_0x86;
} Entity;
-#define COORD_TO_TILE(entity) \
- ((((entity->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 0x3fU) | \
- (((entity->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 0x3fU) << 6)
+#define TILE(x, y) \
+ ((((x - gRoomControls.roomOriginX) >> 4) & 0x3fU) | \
+ (((y - gRoomControls.roomOriginY) >> 4) & 0x3fU) << 6)
-#define COORD_TO_TILE_OFFSET(entity, xOff, yOff) \
- ((((entity->x.HALF.HI - xOff - gRoomControls.roomOriginX) >> 4) & 0x3fU) | \
- (((entity->y.HALF.HI - yOff - gRoomControls.roomOriginY) >> 4) & 0x3fU) << 6)
+#define COORD_TO_TILE(entity) \
+ TILE(entity->x.HALF.HI, entity->y.HALF.HI)
+
+#define COORD_TO_TILE_OFFSET(entity, xOff, yOff) \
+ TILE(entity->x.HALF.HI - xOff, entity->y.HALF.HI - yOff)
extern Entity* CreateEnemy(u32 subtype, u32 form);
extern Entity* CreateObject(u32 subtype, u32 form, u32 parameter);
@@ -167,7 +163,31 @@ extern void SetSpriteSubEntryOffsetData2(Entity*, u32, u32);
extern u32 GetFacingDirection(Entity*, Entity*);
-extern void DeleteThisEntity();
+extern void DeleteThisEntity(void);
+extern void CopyPosition(Entity*, Entity*);
+extern void DeleteEntity(Entity*);
+extern void PositionRelative(Entity*, Entity*, s32, s32);
+
+enum {
+ DirectionNorth = 0x00,
+ DirectionEast = 0x08,
+ DirectionSouth = 0x10,
+ DirectionWest = 0x18,
+};
+
+#define DirectionRound(expr) ((expr) & 0x18)
+#define DirectionRoundUp(expr) DirectionRound((expr) + 4)
+#define DirectionIsHorizontal(expr) ((expr) & 0x08)
+#define DirectionIsVertical(expr) ((expr) & 0x10)
+#define DirectionTurnAround(expr) (DirectionRoundUp(expr) ^ 0x10)
+#define DirectionToAnimationState(expr) (DirectionRoundUp(expr) >> 3)
+#define DirectionFromAnimationState(expr) (expr << 3)
+
+#define Direction8Round(expr) ((expr) & 0x1c)
+#define Direction8RoundUp(expr) Direction8Round((expr) + 2)
+#define Direction8TurnAround(expr) (Direction8RoundUp(expr) ^ 0x10)
+#define Direction8ToAnimationState(expr) (Direction8RoundUp(expr) >> 2)
+#define Direction8FromAnimationState(expr) (expr << 2)
extern Entity gUnk_03003DA0;
diff --git a/include/functions.h b/include/functions.h
index f8c41d34..46d21d7f 100644
--- a/include/functions.h
+++ b/include/functions.h
@@ -13,7 +13,7 @@
// Identified - to be sorted into header files
extern u32 Random(void);
extern void PlaySFX(u32);
-extern void ShowNPCDialogue(Entity*, u32*);
+extern void ShowNPCDialogue(Entity*, Dialog*);
extern u32 UpdateFuseInteraction();
extern void DeleteEntity(Entity*);
extern u32 __modsi3(u32, u32);
@@ -32,6 +32,7 @@ extern u32 GetFacingDirection(Entity*, Entity*);
extern Entity* CreatePlayerItem(u32, u32, u32, u32);
extern Entity* GetEmptyEntity(void);
extern u32 GetTileTypeByPos(s32 x, s32 y, u32 layer);
+extern u32 GetTileType(u32 pos, u32 layer);
extern void _DmaZero(void* src, u32 count);
extern void EraseAllEntities(void);
extern void SetTile(u32, u32, u32);
@@ -44,14 +45,15 @@ extern u8* GetSpriteSubEntryOffsetDataPointer(u32, u32);
extern u32 LoadFixedGFX(Entity*, u32);
extern void ExecuteScriptCommandSet(Entity*, void *);
extern void _DmaFill32(u32, void*, u32);
+extern Entity* CreateItemEntity(u32, u32, u32);
// Unidentified
-extern void sub_0806ED78(Entity*);
+extern u32 sub_0806ED78(Entity*);
extern void sub_0806920C(Entity*);
extern u32 sub_0805ACC0(Entity*);
extern u32 sub_0801E99C(Entity*);
extern void sub_0806924C(Entity*);
-extern u32 sub_080AEF88(Entity*);
+extern u32 ProcessMovement(Entity*);
extern Entity* sub_080873AC(Entity*, u32, u32);
extern void sub_08078778(Entity*);
extern void sub_080787A8(Entity*, u32);
@@ -60,7 +62,7 @@ extern void sub_080791D0();
extern void sub_0805EC9C();
extern void sub_0805EC60();
extern void sub_080873D0();
-extern u8 sub_080045D4(s16, s16, u16, u16);
+extern u8 sub_080045D4(s16, s16, u32, u32);
extern void sub_0806F69C(Entity*);
extern void sub_0805E3A0(void*, u32);
extern void sub_0806D0B0(Entity*);
@@ -78,7 +80,6 @@ extern s32 sub_0806ED9C(Entity*, u32, u32);
extern void sub_0807000C(Entity*);
extern void sub_0805E47C(Entity*);
extern void sub_0805E584(Entity*);
-extern void sub_0806ED78(Entity*);
extern void sub_08068BEC(Entity*, u32);
extern void sub_08078778(Entity*);
extern s32 sub_0806ED9C(Entity*, u32, u32);
@@ -93,7 +94,7 @@ extern void sub_0805ED14(u32*);
extern void sub_080A7C18(u32, u32, u32);
extern void sub_08068BEC(Entity*, u32);
extern void sub_0804AA30(Entity*, void (*const funcs[])(Entity*));
-extern void sub_0804A9FC(Entity*, u32);
+extern Entity* sub_0804A9FC(Entity*, u32);
extern void sub_0804A720(Entity*);
extern u32 sub_080AEFE0(Entity*);
extern u32 sub_08049FA0(Entity*);
@@ -103,7 +104,7 @@ extern u32 sub_08049EE4(Entity*);
extern Entity *sub_0804A98C(Entity *, u8, u8);
extern u32 sub_080544DC(u8);
extern void sub_08077E54(Entity*);
-extern void sub_080042BA(Entity*);
+extern void sub_080042BA(Entity*, u32);
extern void _DmaZero(void*, u32);
extern void sub_08077F24(ItemBehavior*, u32);
extern void sub_08079184();
@@ -138,7 +139,7 @@ extern void sub_0804C2F0(void);
extern void sub_0801AFE4(void);
extern u32 sub_08060354(void);
extern void sub_08057E64(void);
-extern void LoadAssetAsync(void*, u32, u32);
+extern void LoadAssetAsync(const void*, u32, u32);
extern void LoadPaletteGroup(u32);
extern void sub_0809F814(u32);
extern void sub_080300E8(void);
@@ -187,15 +188,17 @@ extern void sub_080A4398(void);
extern void sub_0801E738(u32);
extern void sub_080A70AC(const void*);
extern void sub_080A7114(u32);
+extern void sub_08001324(Entity*);
extern void sub_08001242(Entity*);
extern u32 sub_08003FC4(Entity*, u32);
extern u32 sub_080043E8(Entity*);
extern void sub_08001290(Entity*, u32);
-extern void sub_08004488(u32);
+extern void EnqueueSFX(u32);
extern void sub_08004596(Entity*, u32);
+extern u32 sub_080045B4(Entity*, u32, u32);
extern u32 sub_0807953C(void);
extern void ResetPlayer(void);
-extern void sub_080A29BC(Entity*);
+extern void CreateDust(Entity*);
extern void sub_080AE068(Entity*);
extern Manager* GetEmptyManager(void);
extern void AppendEntityToList(void*, u32);
@@ -219,7 +222,7 @@ extern u32 sub_0807CF88(u32, u8*);
extern u32 sub_0807D008(u32, void*);
extern void sub_0807D184(u32, char*);
extern u32 sub_0806F520();
-extern void sub_0806F4E8();
+extern void sub_0806F4E8(Entity*);
extern u32 sub_0806F3E4(Entity*);
extern void sub_0804A7D4(Entity*);
extern void sub_08033744(Entity*);
@@ -255,4 +258,15 @@ extern u32 sub_080044EC(Entity*, u32);
extern u32 sub_080002B8(Entity*);
extern u32 sub_08049F84(Entity*, u32);
extern void sub_0802F45C(Entity*);
+extern u32 sub_0800419C(Entity*, Entity*, u32, u32);
+extern void sub_08004542(Entity*);
+extern void sub_08077B20();
+extern u32 sub_080040A8(Entity*);
+extern u32 sub_08017850(Entity*);
+extern void sub_080809D4(void);
+extern void sub_08080CB4(Entity*);
+extern u32 GetTileTypeByEntity(Entity*);
+extern u32 sub_0800442E(Entity*);
+extern void sub_08081404(Entity*, u32);
+extern void sub_0807B7D8(u32, u32, u32);
#endif
diff --git a/include/global.h b/include/global.h
index f6d4a4e1..ad4b9daa 100644
--- a/include/global.h
+++ b/include/global.h
@@ -60,6 +60,9 @@ union SplitWord {
s16 LO, HI;
} HALF;
struct {
+ u16 LO, HI;
+ } HALF_U;
+ struct {
u8 byte0, byte1, byte2, byte3;
} BYTES;
};
diff --git a/include/greatFairy.h b/include/greatFairy.h
index 317bbf49..1d40304f 100644
--- a/include/greatFairy.h
+++ b/include/greatFairy.h
@@ -15,13 +15,9 @@ extern void sub_0805EC9C();
extern void sub_0805EC60();
extern void sub_080873D0();
extern void DeleteEntity();
-extern u32 sub_080045D4();
extern void sub_0806F69C();
-extern u32 Random();
-extern void sub_0805E3A0(Entity*, u32);
extern Entity* FindEntityInListBySubtype(u32, u32, u32);
extern void sub_080791D0();
-extern u32 FindEntityInListByForm(u32, u32, u32, u32, u32);
extern void (*const GreatFairy_Main[])(Entity*);
extern void (*const GreatFairy_Behaviors[])(Entity*);
extern void (*const GreatFairy_WingsBehaviors[])(Entity*);
diff --git a/include/lakitu.h b/include/lakitu.h
deleted file mode 100644
index bb599d33..00000000
--- a/include/lakitu.h
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef LAKITU_H
-#define LAKITU_H
-
-// Lakitu
-extern void EnemyFunctionHandler(Entity *, void (*const funcs[])(Entity*));
-extern void SetChildOffset(Entity *, s32, s32, s32);
-
-// sub_0803C784
-extern void sub_0804A9FC(Entity *, u32);
-extern void sub_0804AA30(Entity *, void (*const funcs[])(Entity *));
-
-// sub_0803C820
-extern u32 sub_0806F520(Entity *);
-
-// sub_0803C850
-extern void sub_0806F4E8(Entity *);
-
-// Lakitu_Initialize
-extern void sub_0804A720(Entity *);
-
-// Lakitu_Cloudless
-extern u32 sub_08003FC4(Entity *, u32);
-
-// sub_0803CA4C
-extern u32 sub_080041A0(Entity *, Entity *, u32, u32);
-
-// sub_0803CAD0
-extern u8 sub_080045D4(s16, s16, u16, u16);
-extern u32 sub_080AEFE0(Entity *);
-
-// Lakitu_SpawnLightning
-void PositionRelative(Entity*, Entity*, s32, s32);
-extern void sub_08004488(u32);
-
-// sub_0803CC08
-extern void DeleteEntity(Entity *);
-
-// Part of function tables
-extern void sub_08001324(Entity *);
-extern void sub_0804A7D4(Entity *);
-extern void sub_08001242(Entity *);
-
-// Used in multiple functions
-extern Entity *CreateFx(Entity*, u32, u32);
-extern Entity *sub_0804A98C(Entity *positionEntity, u8 subtype, u8 form); // Creates a projectile positioned at the given entity
-extern void UpdateAnimationSingleFrame(Entity *);
-extern void InitAnimationForceUpdate(Entity *, u32);
-extern u32 sub_0806FCB8(Entity *, u32, u32, u32);
-extern u32 sub_080045C4(Entity *, Entity *);
-
-
-// Forward references to functions in lakitu.c
-extern void sub_0803CAD0(Entity *);
-extern void sub_0803CBAC(Entity *);
-extern void sub_0803CA84(Entity *, u32);
-extern bool32 sub_0803CA4C(Entity *);
-extern bool32 sub_0803CB04(Entity *);
-extern void Lakitu_SpawnLightning(Entity *);
-extern void sub_0803CB34(Entity *);
-extern void sub_0803CC08(Entity *this);
-
-enum {
- INIT,
- HIDDEN,
- END_HIDE,
- IDLE,
- BEGIN_HIDE,
- LIGHTNING_THROW,
- LIGHTNING_DELAY,
- CLOUDLESS,
-};
-
-extern void (*const gUnk_080D0110[])(Entity *);
-extern void (*const LakituActionFuncs[])(Entity *);
-extern void (*const gUnk_080D0148[])(Entity *);
-
-typedef struct {
- s8 x;
- s8 y;
-} PACKED OffsetCoords;
-
-extern const OffsetCoords gUnk_080D0154[];
-
-#endif // LAKITU_H \ No newline at end of file
diff --git a/include/manager.h b/include/manager.h
index bd97c1c3..aa175ed6 100644
--- a/include/manager.h
+++ b/include/manager.h
@@ -22,7 +22,8 @@ typedef struct Manager {
/*0x0d*/ u8 unk_0d;
/*0x0e*/ u8 unk_0e;
/*0x0f*/ u8 unk_0f;
- /*0x10*/ u8 unk_10[0x4];
+ /*0x10*/ u8 unk_10;
+ /*0x11*/ u8 unk_11[3];
/*0x14*/ struct Manager * parent;
/*0x18*/ u8 unk_18[0x8];
// union SplitHWord unk_20;
diff --git a/include/menu.h b/include/menu.h
index 427a9de2..7ed5dae1 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -28,7 +28,7 @@ typedef struct {
u8 storyPanelIndex;
u16 transitionTimer;
u16 field_0xa;
- u8 field_0xc[0x4];
+ u8* field_0xc;
u8 unk10[2];
u8 field_0x12;
u8 unk13;
diff --git a/include/npc.h b/include/npc.h
index 4551b756..b6288ff2 100644
--- a/include/npc.h
+++ b/include/npc.h
@@ -171,7 +171,6 @@ extern void NPC58(Entity*);
extern void NPC58_Head(Entity*);
extern u32 UpdateFuseInteraction(Entity*);
-extern void ShowNPCDialogue(Entity*, u32*);
#endif \ No newline at end of file
diff --git a/include/player.h b/include/player.h
index c3b69e43..0d604dbd 100644
--- a/include/player.h
+++ b/include/player.h
@@ -33,26 +33,32 @@ typedef struct {
/*0x30*/ union {
/* */ u32 all;
/* */ struct {
- /* */ u32 filler9 : 3;
+ /* */ u32 filler9 : 2;
+ /* */ u32 unk2 : 1;
/* */ u32 noMinishCap : 1;
/* */ u32 pullingState : 1;
/* */ u32 windyState : 1;
/* */ u32 filler6 : 1;
/* */ u32 unk7 : 1;
- /* */ u32 filler8 : 2;
+ /* */ u32 unk8 : 1;
+ /* */ u32 unk9 : 1;
/* */ u32 slipperyState : 1;
/* */ u32 filler11 : 5;
/* */ u32 filler11b : 16;
/* */ } PACKED b;
/* */ } flags;
- /*0x34*/ u8 field_0x34[6];
+ /*0x34*/ u8 field_0x34[4];
+ /*0x38*/ u8 field_0x38;
+ /*0x39*/ u8 field_0x39;
/*0x3a*/ u16 field_0x3a;
/*0x3c*/ u8 field_0x3c[2];
/*0x3e*/ u8 swordGoldParticle : 1;
/* */ u8 swordBlueParticle : 1;
/* */ u8 filler14 : 6;
/*0x3f*/ u8 field_0x3f;
- /*0x40*/ u8 field_0x40[75];
+ /*0x40*/ u8 field_0x40[64];
+ /*0x80*/ u16 field_0x80;
+ /*0x82*/ u8 field_0x82[9];
/*0x8b*/ u8 field_0x8b;
/*0x8c*/ u32 field_0x8c;
/*0x90*/ union SplitWord field_0x90;
@@ -61,7 +67,8 @@ typedef struct {
/*0xa9*/ u8 field_0xa9;
/*0xaa*/ u8 field_0xaa;
/*0xab*/ u8 field_0xab;
- /*0xac*/ u32 field_0xac;
+ /*0xac*/ u16 field_0xac;
+ /*0xae*/ u16 field_0xae;
} PlayerState;
@@ -99,6 +106,7 @@ typedef struct {
} ItemBehavior;
extern u8 gBombBagSizes[];
+extern u8 gQuiverSizes[];
extern PlayerState gPlayerState;
extern Stats gStats;
diff --git a/include/room.h b/include/room.h
index 6245d225..0ecd60cc 100644
--- a/include/room.h
+++ b/include/room.h
@@ -12,36 +12,42 @@ typedef struct {
*/
typedef struct {
- u16 unk2;
- u8 unk3;
- u8 unk4;
- u8 areaID;
- u8 roomID;
- u16 roomOriginX;
- u16 roomOriginY;
- s16 roomScrollX;
- s16 roomScrollY;
- u8 unk5;
- u8 unk6;
- u8 filler[4];
- u8 screenShakeMagnitude;
- u8 unk7;
- u16 screenShakeTime;
- u16 filler2[6];
- u8 filler3[4];
- union SplitWord bg3OffsetX;
- union SplitWord bg3OffsetY;
- Entity* cameraTarget;
+ /*0x00*/ u16 unk2;
+ /*0x02*/ u8 unk3;
+ /*0x03*/ u8 unk4;
+ /*0x04*/ u8 areaID;
+ /*0x05*/ u8 roomID;
+ /*0x06*/ u16 roomOriginX;
+ /*0x08*/ u16 roomOriginY;
+ /*0x0A*/ s16 roomScrollX;
+ /*0x0C*/ s16 roomScrollY;
+ /*0x0E*/ u8 unk5;
+ /*0x0F*/ u8 unk6;
+ /*0x10*/ u8 filler[4];
+ /*0x14*/ u8 screenShakeMagnitude;
+ /*0x15*/ u8 unk7;
+ /*0x16*/ u16 screenShakeTime;
+ /*0x18*/ u16 filler2[3];
+ /*0x1E*/ u16 width;
+ /*0x20*/ u16 height;
+ /*0x22*/ u8 filler3[6];
+ /*0x28*/ union SplitWord bg3OffsetX;
+ /*0x2C*/ union SplitWord bg3OffsetY;
+ /*0x30*/ Entity* cameraTarget;
} RoomControls;
typedef struct {
- u8 filler[6];
+ u8 filler[4];
+ u8 field_0x4;
+ u8 filler1[1];
u8 itemForSaleIndex;
u8 field_0x7;
u8 field_0x8;
u8 field_0x9;
u8 unk2;
- u16 filler2[3];
+ u8 filler2[5];
+ u8 unk_10;
+ u8 filler6[3];
u32 roomFlags;
u32 unk3;
u8 filler4[48];
@@ -75,4 +81,4 @@ extern RoomVars gRoomVars;
extern void SetTileType(u32, u32, u32);
-#endif \ No newline at end of file
+#endif
diff --git a/include/screen.h b/include/screen.h
index 4de38e2b..953cde84 100644
--- a/include/screen.h
+++ b/include/screen.h
@@ -21,8 +21,7 @@ typedef struct {
u16 bg1yOffset;
u16 bg2xOffset;
u16 bg2yOffset;
- u16 bg3xOffset;
- u16 bg3yOffset;
+ void* unk_14;
} BgSettings;
typedef struct {
@@ -33,10 +32,10 @@ typedef struct {
u16 unk2;
u16 unk3;
u16 bg3Control;
- u16 bg3xOffset;
- u16 bg3yOffset;
+ s16 bg3xOffset;
+ s16 bg3yOffset;
u16 unk4;
- u32 unk5;
+ void* unk5;
} BgAffSettings;
typedef struct {
@@ -78,4 +77,4 @@ typedef struct {
extern BgControls gBgControls;
extern Screen gScreen;
-#endif \ No newline at end of file
+#endif
diff --git a/include/structures.h b/include/structures.h
index 01456a44..b6d348a9 100644
--- a/include/structures.h
+++ b/include/structures.h
@@ -23,7 +23,7 @@ typedef struct {
} struct_0807D1C4;
#define gUnk_02000000 ((struct_02000000*)(0x2000000))
-//extern struct_02000000 gUnk_02000000;
+// extern struct_02000000 gUnk_02000000;
typedef struct {
u8 filler0[0x4];
@@ -57,7 +57,7 @@ typedef struct {
extern SaveFile gUnk_02002A40;
typedef struct {
- u32 frameCount; // regular frame count? does anything reset it?
+ u32 frameCount; // regular frame count? does anything reset it?
u8 field_0x4[0x4];
bool8 transitioningOut;
u8 transitionType; // transition when changing areas
@@ -123,7 +123,7 @@ typedef struct {
u8 field_0x2;
u8 field_0x3;
u32 field_0x4;
- u16 fadeType; // fade in or out, are there others?
+ u16 fadeType; // fade in or out, are there others?
u16 fadeSpeed; // subtracted from duration
u16 fadeDuration;
u16 field_0xe;
@@ -160,4 +160,18 @@ typedef struct {
} struct_02034480;
extern struct_02034480 gUnk_02034480;
+typedef struct {
+ u32 flag : 12;
+ u32 flagType : 4;
+ u32 type : 4;
+ u32 unk : 1;
+ union {
+ struct {
+ u16 a;
+ u16 b;
+ } indices;
+ void (*func)(Entity*);
+ } data;
+} Dialog;
+
#endif