mirror of
https://github.com/PrimeDecomp/prime.git
synced 2026-07-12 18:18:56 -07:00
63 lines
1.4 KiB
C++
63 lines
1.4 KiB
C++
#ifndef _CMFGAME_HPP
|
|
#define _CMFGAME_HPP
|
|
|
|
#include "Kyoto/TOneStatic.hpp"
|
|
#include "MetroidPrime/CMainFlow.hpp"
|
|
#include "MetroidPrime/TGameTypes.hpp"
|
|
#include "rstl/rc_ptr.hpp"
|
|
#include "rstl/single_ptr.hpp"
|
|
|
|
class CInGameGuiManager;
|
|
class CStateManager;
|
|
|
|
enum EGameFlowState {
|
|
kGFS_InGame = 0,
|
|
kGFS_Paused,
|
|
kGFS_PlayerDied,
|
|
kGFS_CinematicSkip,
|
|
};
|
|
|
|
class CGameProfiler {
|
|
public:
|
|
CGameProfiler();
|
|
~CGameProfiler() {};
|
|
};
|
|
|
|
class CMFGame : public CIOWin {
|
|
public:
|
|
CMFGame(rstl::ncrc_ptr< CStateManager > stateManager,
|
|
rstl::ncrc_ptr< CInGameGuiManager > guiManager, CArchitectureQueue& architectureQueue);
|
|
~CMFGame() override;
|
|
|
|
void Touch() const;
|
|
EMessageReturn OnMessage(const CArchitectureMessage&, CArchitectureQueue&) override;
|
|
void Draw() const;
|
|
|
|
void EnterMapScreen();
|
|
void PauseGame();
|
|
void EnterLogBook();
|
|
void SaveGame();
|
|
void EnterMessageScreen(float time);
|
|
void UnpauseGame();
|
|
void PlayerDied();
|
|
|
|
bool IsCameraActiveFlow() const;
|
|
|
|
private:
|
|
rstl::ncrc_ptr< CStateManager > mStateManager;
|
|
rstl::ncrc_ptr< CInGameGuiManager > mGuiManager;
|
|
EGameFlowState mFlowState;
|
|
float mCineSkipTime;
|
|
rstl::single_ptr< CGameProfiler > x24; // Appears to be unused?
|
|
TUniqueId mSkippedCineCam;
|
|
bool mInitialized : 1;
|
|
bool mPlayerAlive : 1;
|
|
};
|
|
|
|
class CMFGameLoader : public CIOWin {
|
|
public:
|
|
CMFGameLoader();
|
|
~CMFGameLoader() override;
|
|
};
|
|
#endif
|