1
0
mirror of https://github.com/blawar/ooot.git synced 2024-06-25 22:09:34 +00:00
ooot/include/def/z_select.h
2022-04-13 17:00:45 -04:00

63 lines
1.2 KiB
C++

#pragma once
#include "gamestate.h"
namespace oot::gamestate
{
enum class SceneType
{
TITLE,
GAME,
};
struct SceneSelectEntry
{
const char* name;
SceneType type;
s32 entranceIndex;
}; // size = 0xC
class Select : public Base
{
public:
Select(GraphicsContext* gfxCtx);
~Select();
void init() override;
void main() override;
Base* next() override;
void loadTitle(s32 entranceIndex);
void loadGame(s32 entranceIndex);
void updateMenu();
void printMenu(GfxPrint* printer);
void printLoadingMessage(GfxPrint* printer);
void printAgeSetting(GfxPrint* printer, s32 age);
void printCutsceneSetting(GfxPrint* printer, u16 csIndex);
void drawMenu();
void drawLoadingScreen();
void draw();
protected:
View view;
s32 currentScene;
s32 pageDownIndex; // Index of pageDownStops
s32 pageDownStops[7];
char unk_1FC[0x0C];
s32 opt;
s32 topDisplayedScene; // The scene which is currently at the top of the screen
char unk_210[0x0C];
s32 verticalInputAccumulator;
s32 verticalInput;
s32 timerUp;
s32 timerDown;
s32 lockUp;
s32 lockDown;
s32 unk_234; // unused
}; // size = 0x240
namespace factory
{
GameState* Select(GraphicsContext* gfxCtx);
}
} // namespace oot::gamestate