mirror of
https://github.com/zeldaret/oot.git
synced 2025-02-27 03:24:45 +00:00
38 lines
1.3 KiB
C
38 lines
1.3 KiB
C
|
#ifndef Z_GAME_DLFTBLS_H
|
||
|
#define Z_GAME_DLFTBLS_H
|
||
|
|
||
|
#include "ultra64.h"
|
||
|
#include "romfile.h"
|
||
|
#include "unk.h"
|
||
|
|
||
|
typedef struct GameStateOverlay {
|
||
|
/* 0x00 */ void* loadedRamAddr;
|
||
|
/* 0x04 */ RomFile file; // if applicable
|
||
|
/* 0x0C */ void* vramStart; // if applicable
|
||
|
/* 0x10 */ void* vramEnd; // if applicable
|
||
|
/* 0x14 */ void* unk_14;
|
||
|
/* 0x18 */ void* init; // initializes and executes the given context
|
||
|
/* 0x1C */ void* destroy; // deconstructs the context, and sets the next context to load
|
||
|
/* 0x20 */ void* unk_20;
|
||
|
/* 0x24 */ void* unk_24;
|
||
|
/* 0x28 */ UNK_TYPE4 unk_28;
|
||
|
/* 0x2C */ u32 instanceSize;
|
||
|
} GameStateOverlay; // size = 0x30
|
||
|
|
||
|
// Used in Graph_GetNextGameState in graph.c
|
||
|
#define DEFINE_GAMESTATE_INTERNAL(typeName, enumName) enumName,
|
||
|
#define DEFINE_GAMESTATE(typeName, enumName, name) DEFINE_GAMESTATE_INTERNAL(typeName, enumName)
|
||
|
typedef enum GameStateId {
|
||
|
#include "tables/gamestate_table.h"
|
||
|
GAMESTATE_ID_MAX
|
||
|
} GameStateId;
|
||
|
#undef DEFINE_GAMESTATE
|
||
|
#undef DEFINE_GAMESTATE_INTERNAL
|
||
|
|
||
|
extern GameStateOverlay gGameStateOverlayTable[GAMESTATE_ID_MAX];
|
||
|
|
||
|
void Overlay_LoadGameState(GameStateOverlay* overlayEntry);
|
||
|
void Overlay_FreeGameState(GameStateOverlay* overlayEntry);
|
||
|
|
||
|
#endif
|