From 261ec334a0bedbeb3f4340d22173bcb4dec78e6f Mon Sep 17 00:00:00 2001 From: theo3 Date: Tue, 4 Aug 2020 17:10:55 -0700 Subject: def ScreenTransition --- include/functions.h | 1 + include/global.h | 17 ++++++----------- include/structures.h | 36 ++++++++++++++++++++++++++++-------- 3 files changed, 35 insertions(+), 19 deletions(-) (limited to 'include') diff --git a/include/functions.h b/include/functions.h index 40ebac66..56b28ea6 100644 --- a/include/functions.h +++ b/include/functions.h @@ -204,4 +204,5 @@ extern u32 sub_0800445C(Entity*); extern void sub_0807A108(void); extern void sub_0801766C(Entity*); extern void sub_08004168(Entity*); +extern u32 sub_08052638(u32); #endif \ No newline at end of file diff --git a/include/global.h b/include/global.h index 6738b6b8..28a0769c 100644 --- a/include/global.h +++ b/include/global.h @@ -47,17 +47,12 @@ #define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) >= (b) ? (a) : (b)) -struct Coords16 -{ - s16 x; - s16 y; -} PACKED; - -struct UCoords16 -{ - u16 x; - u16 y; -}; +typedef union { + s32 WORD; + struct { + s16 x, y; + } HALF; +} Coords; union SplitWord { s32 WORD; diff --git a/include/structures.h b/include/structures.h index fb96345d..2ca783bf 100644 --- a/include/structures.h +++ b/include/structures.h @@ -17,12 +17,19 @@ typedef struct { extern struct_02002A40 gUnk_02002A40; typedef struct { - u8 field_0x0[8]; - u8 field_0x8; - u8 field_0x9; - u8 field_0xa[6]; - union SplitWord field_0x10; - u8 field_0x14[0xc]; + u16 frameCount; // regular frame count? does anything reset it? + u8 field_0x2[6]; + bool8 transitioningOut; + u8 transitionType; // transition when changing areas + u8 field_0xa; + u8 field_0xb; + u8 areaID; + u8 roomID; + u8 animState; + u8 field_0xf; + Coords startPos; + u16 collisionLayer; + u8 field_0x14[0xa]; u16 field_0x20; u16 field_0x22; u8 field_0x24[0x14]; @@ -35,9 +42,22 @@ typedef struct { u16 field_0x46; u16 field_0x48; u16 field_0x4a; -} struct_030010A0; +} ScreenTransition; -extern struct_030010A0 gUnk_030010A0; +extern ScreenTransition gScreenTransition; +typedef struct { + u16 transitionType; + u8 field_0x2[4]; + s16 playerXPos; + s16 playerYPos; + u8 field_0xa; + u8 areaID; + u8 roomID; + u8 collisionLayer; + u8 field_0xe; + u8 playerAnimState; + u16 transitionSFX; +} ScreenTransitionData; #endif \ No newline at end of file -- cgit v1.2.3