mirror of
https://github.com/zeldaret/oot
synced 2026-06-16 06:45:49 -04:00
Generate gamestate overlay table with an include/tables/ header (#1504)
* Generate gamestate overlay table from an include/tables/ header * GameStateIndex -> GameStateId, move to z64.h, add GameStateId enum name field to the gamestate table, adjust and improve gamestate table comment * Shorten zeros in table definition * Generate linker symbols, other suggested changes * GAMESTATE_MAX -> GAMESTATE_ID_MAX like the others
This commit is contained in:
+10
-21
@@ -116,24 +116,15 @@ void Graph_InitTHGA(GraphicsContext* gfxCtx) {
|
||||
GameStateOverlay* Graph_GetNextGameState(GameState* gameState) {
|
||||
void* gameStateInitFunc = GameState_GetInit(gameState);
|
||||
|
||||
if (gameStateInitFunc == Setup_Init) {
|
||||
return &gGameStateOverlayTable[0];
|
||||
}
|
||||
if (gameStateInitFunc == MapSelect_Init) {
|
||||
return &gGameStateOverlayTable[1];
|
||||
}
|
||||
if (gameStateInitFunc == ConsoleLogo_Init) {
|
||||
return &gGameStateOverlayTable[2];
|
||||
}
|
||||
if (gameStateInitFunc == Play_Init) {
|
||||
return &gGameStateOverlayTable[3];
|
||||
}
|
||||
if (gameStateInitFunc == TitleSetup_Init) {
|
||||
return &gGameStateOverlayTable[4];
|
||||
}
|
||||
if (gameStateInitFunc == FileSelect_Init) {
|
||||
return &gGameStateOverlayTable[5];
|
||||
// Generates code to match gameStateInitFunc to a gamestate entry and returns it if found
|
||||
#define DEFINE_GAMESTATE_INTERNAL(typeName, enumName) \
|
||||
if (gameStateInitFunc == typeName##_Init) { \
|
||||
return &gGameStateOverlayTable[enumName]; \
|
||||
}
|
||||
#define DEFINE_GAMESTATE(typeName, enumName, name) DEFINE_GAMESTATE_INTERNAL(typeName, enumName)
|
||||
#include "tables/gamestate_table.h"
|
||||
#undef DEFINE_GAMESTATE
|
||||
#undef DEFINE_GAMESTATE_INTERNAL
|
||||
|
||||
LOG_ADDRESS("game_init_func", gameStateInitFunc, "../graph.c", 696);
|
||||
return NULL;
|
||||
@@ -421,16 +412,14 @@ void Graph_ThreadEntry(void* arg0) {
|
||||
GraphicsContext gfxCtx;
|
||||
GameState* gameState;
|
||||
u32 size;
|
||||
GameStateOverlay* nextOvl;
|
||||
GameStateOverlay* nextOvl = &gGameStateOverlayTable[GAMESTATE_SETUP];
|
||||
GameStateOverlay* ovl;
|
||||
char faultMsg[0x50];
|
||||
|
||||
nextOvl = &gGameStateOverlayTable[0];
|
||||
|
||||
osSyncPrintf("グラフィックスレッド実行開始\n"); // "Start graphic thread execution"
|
||||
Graph_Init(&gfxCtx);
|
||||
|
||||
while (nextOvl) {
|
||||
while (nextOvl != NULL) {
|
||||
ovl = nextOvl;
|
||||
Overlay_LoadGameState(ovl);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user