diff options
| author | 21aslade <21aslade@go.dsdmail.net> | 2020-11-07 15:22:02 -0700 |
|---|---|---|
| committer | 21aslade <21aslade@go.dsdmail.net> | 2020-11-07 15:22:02 -0700 |
| commit | d04dc143fbbef8feef61daf39d110703f4dfda9b (patch) | |
| tree | 626b7ee4279b2224aa06bef8231fd6daa4363998 /include | |
| parent | 4b6f822829d6dd771ed995030f1bf1d24f204536 (diff) | |
| parent | f1bfe499de0afdd8e93c5e3e0e6c9e12b3343e1b (diff) | |
Merge branch 'master' of https://github.com/zeldaret/tmc
Diffstat (limited to 'include')
| -rw-r--r-- | include/area.h | 1 | ||||
| -rw-r--r-- | include/enemy.h | 2 | ||||
| -rw-r--r-- | include/entity.h | 70 | ||||
| -rw-r--r-- | include/functions.h | 36 | ||||
| -rw-r--r-- | include/global.h | 3 | ||||
| -rw-r--r-- | include/greatFairy.h | 4 | ||||
| -rw-r--r-- | include/lakitu.h | 84 | ||||
| -rw-r--r-- | include/manager.h | 3 | ||||
| -rw-r--r-- | include/menu.h | 2 | ||||
| -rw-r--r-- | include/npc.h | 1 | ||||
| -rw-r--r-- | include/player.h | 18 | ||||
| -rw-r--r-- | include/room.h | 52 | ||||
| -rw-r--r-- | include/screen.h | 11 | ||||
| -rw-r--r-- | include/structures.h | 20 |
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 |
