mirror of
https://github.com/zeldaret/oot.git
synced 2025-02-26 19:04:20 +00:00
* split game states * split all GameState headers * match fig names * deduplicate headers from bad merge * split z64actor.h into z64actor_profile.h, z_actor_dlftbls.h * fix compile error * .bss
37 lines
1.3 KiB
C
37 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
|