2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 02:27:43 +00:00

CFrontEndUI work

This commit is contained in:
Jack Andersen
2016-12-12 19:22:30 -10:00
parent 67e55749e0
commit 2d961af921
9 changed files with 333 additions and 36 deletions

View File

@@ -15,6 +15,10 @@ struct SObjectTag;
class CDependencyGroup;
class CTexture;
class CAudioGroupSet;
class CSaveWorld;
class CStringTable;
class CGuiFrame;
class CSaveUI;
namespace MP1
{
@@ -22,7 +26,7 @@ namespace MP1
class CFrontEndUI : public CIOWin
{
public:
enum class Phase
enum class EScreen
{
Zero,
One,
@@ -32,49 +36,71 @@ public:
Five,
Six
};
struct SScreenData
struct SNewFileSelect
{
};
enum class EMenuMovie
{
Stopped = -1,
FirstStart = 0,
StartLoop,
StartFileSelectA,
FileSelectLoop,
FileSelectPlayGameA,
FileSelectGBA,
GBALoop,
GBAFileSelectA,
GBAFileSelectB
};
private:
Phase x14_phase = Phase::Zero;
EScreen x14_screen = EScreen::Zero;
u32 x18_rndA;
u32 x1c_rndB;
TLockedToken<CDependencyGroup> x20_depsGroup;
TLockedToken<CTexture> x38_pressStart;
TLockedToken<CAudioGroupSet> x44_frontendAudioGrp;
u32 x50_ = 0;
u32 x54_ = 0;
float x58_ = 0.f;
bool x5c_ = false;
EScreen x50_curScreen = EScreen::Zero;
EScreen x54_nextScreen = EScreen::Zero;
float x58_movieSeconds = 0.f;
bool x5c_movieSecondsNeeded = false;
float x60_ = 0.f;
float x64_ = 0.f;
float x68_ = 1.f;
std::unique_ptr<u32> x6c_[9];
int xb8_nextAttract = -1;
u32 x6c_;
std::unique_ptr<CMoviePlayer> x70_menuMovies[9];
EMenuMovie xb8_curMovie = EMenuMovie::Stopped;
int xbc_nextAttract = 0;
int xc0_attractCount = 0;
std::unique_ptr<u32> xc4_;
u32 xc8_ = 0;
u32 xcc_ = 0;
bool xd0_ = 0;
bool xd1_ = 0;
bool xd2_ = 0;
std::unique_ptr<CMoviePlayer> xc4_attractMovie;
CMoviePlayer* xcc_curMoviePtr = nullptr;
bool xd0_ = false;
bool xd1_moviesLoaded = false;
bool xd2_ = false;
u32 xd4_ = 0;
u32 xd8_ = 0;
std::unique_ptr<SScreenData> xdc_scrData;
u32 xe0_ = 0;
std::unique_ptr<CSaveUI> xdc_saveUI;
std::unique_ptr<SNewFileSelect> xe0_newFileSel;
u32 xe4_ = 0;
u32 xec_ = 0;
u32 xf0_ = 0;
u32 xf4_ = 0;
void SetMovieSecondsDeferred()
{
x58_movieSeconds = 1000000.f;
x5c_movieSecondsNeeded = true;
}
void SetMovieSeconds(float seconds)
{
x58_movieSeconds = seconds;
x5c_movieSecondsNeeded = false;
}
void TransitionToFive();
public:
enum class EMenuMovie
{
};
enum class EScreen
{
};
CFrontEndUI(CArchitectureQueue& queue);
void OnSliderSelectionChange(CGuiSliderGroup* grp, float);
@@ -93,7 +119,7 @@ public:
std::string GetNextAttractMovieFileName();
void SetCurrentMovie(EMenuMovie movie);
void StopAttractMovie();
void StartAttractMovie(int idx);
void StartAttractMovie();
void UpdateMenuHighlights(CGuiTableGroup* grp);
void CompleteStateTransition();
bool CanBuild(const SObjectTag& tag);
@@ -101,6 +127,7 @@ public:
void HandleDebugMenuReturnValue(CGameDebug::EReturnValue val, CArchitectureQueue& queue);
void Draw() const;
void UpdateMovies(float dt);
bool PumpMovieLoad();
void ProcessUserInput(const CFinalInput& input, CArchitectureQueue& queue);
EMessageReturn Update(float dt, CArchitectureQueue& queue);
EMessageReturn OnMessage(const CArchitectureMessage& msg, CArchitectureQueue& queue);