sorted kinstone and figurine menu

This commit is contained in:
Henny022p
2022-01-25 00:44:48 +01:00
parent 6fd53ccfa0
commit 82fa5159fd
13 changed files with 1387 additions and 1208 deletions
-33
View File
@@ -285,37 +285,4 @@ typedef enum {
GAMEMAIN_SUBTASK,
} EGameMainState;
/** Subtasks override the game task for short periods */
typedef enum {
SUBTASK_EXIT,
SUBTASK_PAUSEMENU,
SUBTASK_EXIT2,
SUBTASK_MAPHINT,
SUBTASK_KINSTONEMENU,
SUBTASK_AUXCUTSCENE, /* cutscene without presence of player */
SUBTASK_PORTALCUTSCENE, /* player "falling" down portal cutscene */
SUBTASK_FIGURINEMENU,
SUBTASK_WORLDEVENT,
SUBTASK_FASTTRAVEL,
SUBTASK_LOCALMAPHINT,
} ESubtask;
typedef void(Subtask)(void);
/** @name Subtask entrypoints */
///@{
/** Subtask entrypoint. */
Subtask Subtask_Exit;
Subtask Subtask_PauseMenu;
Subtask Subtask_Exit;
Subtask Subtask_MapHint;
Subtask Subtask_KinstoneMenu;
Subtask Subtask_AuxCutscene;
Subtask Subtask_PortalCutscene;
Subtask Subtask_FigurineMenu;
Subtask Subtask_WorldEvent;
Subtask Subtask_FastTravel;
Subtask Subtask_LocalMapHint;
///@}
#endif // GAME_H
+11
View File
@@ -27,4 +27,15 @@ typedef struct {
static_assert(sizeof(FuseInfo) == 0x10);
extern FuseInfo gFuseInfo;
typedef struct {
u8 unk0;
u8 unk1;
u8 unk2;
u8 unk3;
u8 evt_type;
u8 unk5;
u8 _5[2];
} struct_080C9CBC;
extern struct_080C9CBC gUnk_080C9CBC[];
#endif // KINSTONE_H
+31 -1
View File
@@ -82,11 +82,41 @@ typedef struct {
static_assert(sizeof(GenericMenu) == 0x30);
typedef struct {
Menu base;
/*0x00*/ Menu base;
/*0x10*/ union SplitWord unk10;
/*0x14*/ u8 filler14[4];
/*0x18*/ u16 unk18;
/*0x1a*/ u16 unk1a;
/*0x1c*/ u8 filler1c[14];
/*0x2a*/ u8 unk2a;
/*0x2b*/ u8 filler2b[1];
/*0x2c*/ s8 unk2c;
/*0x2d*/ u8 filler2d[2];
/*0x2f*/ s8 unk2f;
} KinstoneMenu;
typedef struct {
/*0x00*/ Menu base;
/*0x10*/ union {
u16 h[2];
u8 a[4];
} unk10;
/*0x14*/ u8 filler14[6];
/*0x1a*/ u8 unk1a;
/*0x1b*/ u8 filler1b[1];
/*0x1c*/ u8 unk1c;
/*0x1d*/ u8 unk1d;
/*0x1e*/ u8 unk1e;
/*0x1f*/ s8 unk1f;
/*0x20*/ u8 unk20;
/*0x21*/ u8 unk21;
/*0x22*/ u8 filler22[0xc];
/*0x2e*/ u16 unk2e;
} FigurineMenu;
extern Menu gMenu;
#define gGenericMenu (*(GenericMenu*)&gMenu)
#define gKinstoneMenu (*(KinstoneMenu*)&gMenu)
#define gFigurineMenu (*(FigurineMenu*)&gMenu)
#endif
+42 -4
View File
@@ -3,14 +3,52 @@
#include "global.h"
/** Subtasks override the game task for short periods */
typedef enum {
SUBTASK_EXIT,
SUBTASK_PAUSEMENU,
SUBTASK_EXIT2,
SUBTASK_MAPHINT,
SUBTASK_KINSTONEMENU,
SUBTASK_AUXCUTSCENE, /* cutscene without presence of player */
SUBTASK_PORTALCUTSCENE, /* player "falling" down portal cutscene */
SUBTASK_FIGURINEMENU,
SUBTASK_WORLDEVENT,
SUBTASK_FASTTRAVEL,
SUBTASK_LOCALMAPHINT,
} ESubtask;
typedef void(Subtask)(void);
/** @name Subtask entrypoints */
///@{
/** Subtask entrypoint. */
Subtask Subtask_Exit;
Subtask Subtask_PauseMenu;
Subtask Subtask_Exit;
Subtask Subtask_MapHint;
Subtask Subtask_KinstoneMenu;
Subtask Subtask_AuxCutscene;
Subtask Subtask_PortalCutscene;
Subtask Subtask_FigurineMenu;
Subtask Subtask_WorldEvent;
Subtask Subtask_FastTravel;
Subtask Subtask_LocalMapHint;
///@}
// todo: separate headers for each subtask?
extern void sub_080A4528(void);
extern void sub_080A4398(void);
extern void sub_080A7114(u32);
extern void sub_080A3B74(void);
extern void sub_080A4054(void);
extern void sub_080A4D34(void);
extern u32 sub_080A4494(void);
extern void sub_080A4E90(u8);
extern void sub_080A4E84(u8);
extern const struct {
u8 unk0;
u8 unk1;
u8 filler[2];
void (*func)(void);
} gUnk_08128A38[];
#endif // SUBTASK_H