2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-08 23:47:42 +00:00

CFrontEndUI work

This commit is contained in:
Jack Andersen
2016-12-29 20:37:01 -10:00
parent b3cae0d4d5
commit a93ca26ea1
29 changed files with 960 additions and 216 deletions

View File

@@ -34,6 +34,7 @@ namespace MP1
{
class CNESEmulator;
class CSaveUI;
class CQuitScreen;
class CFrontEndUI : public CIOWin
{
@@ -108,17 +109,18 @@ public:
Three
};
enum class EPhase
enum class EAction
{
Zero,
One,
Two
Two,
Three
};
u32 x0_rnd;
CSaveUI* x4_saveUI;
ESubMenu x8_subMenu = ESubMenu::Zero;
EPhase xc_phase = EPhase::Zero;
EAction xc_action = EAction::Zero;
TLockedToken<CGuiFrame> x10_frme;
CGuiFrame* x1c_loadedFrame = nullptr;
CGuiTableGroup* x20_tablegroup_fileselect = nullptr;
@@ -144,7 +146,7 @@ public:
void FinishedLoading();
bool PumpLoad();
bool IsTextDoneAnimating() const;
EPhase ProcessUserInput(const CFinalInput& input);
EAction ProcessUserInput(const CFinalInput& input);
void Draw() const;
void HandleActiveChange(CGuiTableGroup* active);
@@ -169,6 +171,13 @@ public:
struct SGBASupportFrame
{
enum class EAction
{
Zero,
One,
Two
};
u32 x0_ = 0;
std::unique_ptr<CGBASupport> x4_gbaSupport;
TLockedToken<CGuiFrame> xc_gbaScreen;
@@ -185,7 +194,7 @@ public:
void FinishedLoading();
bool PumpLoad();
void SetTableColors(CGuiTableGroup* tbgp) const;
void ProcessUserInput(const CFinalInput& input, CSaveUI* sui);
EAction ProcessUserInput(const CFinalInput& input, CSaveUI* sui);
void Draw() const;
void DoOptionsCancel(CGuiTableGroup* caller);
@@ -195,7 +204,17 @@ public:
struct SFrontEndFrame
{
enum class EAction
{
Zero,
One,
Two,
Three,
Four
};
u32 x0_rnd;
EAction x4_action;
TLockedToken<CGuiFrame> x8_frme;
CGuiFrame* x14_loadedFrme = nullptr;
CGuiTableGroup* x18_tablegroup_mainmenu = nullptr;
@@ -204,7 +223,7 @@ public:
SFrontEndFrame(u32 rnd);
void FinishedLoading();
bool PumpLoad();
void ProcessUserInput(const CFinalInput& input);
EAction ProcessUserInput(const CFinalInput& input);
void Draw() const;
void DoCancel(CGuiTableGroup* caller);
@@ -212,16 +231,26 @@ public:
void DoAdvance(CGuiTableGroup* caller);
};
struct SFusionBonusFrame
struct SNesEmulatorFrame
{
u32 x0_ = 0;
enum class EMode
{
Emulator,
QuitNESMetroid,
ContinuePlaying,
SaveProgress
};
EMode x0_mode = EMode::Emulator;
std::unique_ptr<CNESEmulator> x4_nesEmu;
std::unique_ptr<CQuitScreen> x8_quitScreen;
std::unique_ptr<CGuiTextSupport> xc_textSupport;
float x10_remTime = 8.f;
bool x14_ = false;
bool x15_ = true;
SFusionBonusFrame();
SNesEmulatorFrame();
void SetMode(EMode mode);
void ProcessUserInput(const CFinalInput& input, CSaveUI* sui);
bool DoUpdateWithSaveUI(float dt, CSaveUI* saveUi);
void Draw(CSaveUI* saveUi) const;
@@ -252,7 +281,7 @@ public:
};
};
SOptionsFrontEndFrame();
void ProcessUserInput(const CFinalInput& input, CSaveUI* sui);
bool ProcessUserInput(const CFinalInput& input, CSaveUI* sui);
void Draw() const;
};
@@ -296,7 +325,7 @@ private:
std::unique_ptr<SNewFileSelectFrame> xe0_newFileSel;
std::unique_ptr<SGBASupportFrame> xe4_gbaSupportFrme;
std::unique_ptr<SFrontEndFrame> xe8_frontendFrme;
std::unique_ptr<SFusionBonusFrame> xec_fusionFrme;
std::unique_ptr<SNesEmulatorFrame> xec_emuFrme;
std::unique_ptr<SOptionsFrontEndFrame> xf0_optionsFrme;
CStaticAudioPlayer* xf4_curAudio = nullptr;