Files
prime/include/MetroidPrime/CMFGame.hpp

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