mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 02:27:43 +00:00
CFrontEndUI work
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user