prime/include/MetroidPrime/CGameGlobalObjects.hpp

60 lines
1.8 KiB
C++

#ifndef _CGAMEGLOBALOBJECTS
#define _CGAMEGLOBALOBJECTS
#include "types.h"
#include "rstl/optional_object.hpp"
#include "rstl/single_ptr.hpp"
#include "Kyoto/Basics/COsContext.hpp"
#include "Kyoto/CMemoryCardSys.hpp"
#include "Kyoto/Alloc/CMemorySys.hpp"
#include "Kyoto/CResFactory.hpp"
#include "Kyoto/CSimplePool.hpp"
#include "Kyoto/CToken.hpp"
#include "Kyoto/Graphics/CGraphicsSys.hpp"
#include "Kyoto/TOneStatic.hpp"
#include "Kyoto/Text/CRasterFont.hpp"
#include "MetroidPrime/CInGameTweakManager.hpp"
#include "MetroidPrime/CMemoryCard.hpp"
#include "MetroidPrime/Enemies/CAiFuncMap.hpp"
#include "MetroidPrime/Factories/CCharacterFactoryBuilder.hpp"
#include "MetroidPrime/Player/CGameState.hpp"
class IRenderer;
class CStringTable;
class CGameGlobalObjects : public TOneStatic< CGameGlobalObjects > {
public:
CGameGlobalObjects(COsContext&, CMemorySys&);
void PostInitialize(COsContext&, CMemorySys&);
void AddPaksAndFactories();
void LoadStringTable();
rstl::single_ptr< CGameState >& GameState() { return x134_gameState; }
static CRasterFont* LoadDefaultFont();
private:
CMemoryCardSys x0_memoryCardSys;
CResFactory x4_resFactory;
CSimplePool xcc_simplePool;
CCharacterFactoryBuilder xec_characterFactoryBuilder;
CAiFuncMap x110_aiFuncMap;
CGraphicsSys x130_graphicsSys;
rstl::single_ptr< CGameState > x134_gameState;
rstl::single_ptr< CMemoryCard > x138_;
rstl::optional_object< TLockedToken< CStringTable > > x13c_stringTable;
rstl::single_ptr< IRenderer > x14c_renderer;
rstl::single_ptr< CInGameTweakManager > x150_inGameTweakManager;
TToken< CRasterFont > x154_defaultFont;
};
CHECK_SIZEOF(CGameGlobalObjects, 0x15c)
// TODO move to related headers
extern unkptr gpController;
extern unkptr gpDefaultFont;
#endif // _CGAMEGLOBALOBJECTS