73 lines
1.5 KiB
C++
73 lines
1.5 KiB
C++
#include "igamemgr.h"
|
|
#include "tier0/platform.h"
|
|
#include "tier1/interface.h"
|
|
#include "tier2/ifilesystem.h"
|
|
#include "tier2/fileformats/ini.h"
|
|
|
|
abstract_class CGame: public IGame {
|
|
public:
|
|
virtual void Load() override;
|
|
|
|
virtual void GameFrame() override;
|
|
private:
|
|
void *m_pLibrary;
|
|
};
|
|
|
|
abstract_class CGameManager: public IGameManager
|
|
{
|
|
public:
|
|
virtual void Init() override;
|
|
virtual void Shutdown() override;
|
|
virtual IGame *LoadGame( const char *szGameName ) override;
|
|
virtual IGameMod *LoadGlobalMod( const char *szModName ) override;
|
|
|
|
private:
|
|
IINIFile *g_pGameParameters;
|
|
};
|
|
|
|
void CGameManager::Init()
|
|
{
|
|
IFileHandle *pFile;
|
|
size_t nDataSize = 0;
|
|
CUtlBuffer<char> szData;
|
|
|
|
IINISection *pMainGame;
|
|
|
|
CUtlString sz;
|
|
|
|
pFile = filesystem->Open("game.ini", FILEMODE_READ);
|
|
szData = CUtlBuffer<char>(filesystem->Size(pFile));
|
|
filesystem->Read(pFile, szData.GetMemory(), szData.GetSize());
|
|
filesystem->Close(pFile);
|
|
|
|
g_pGameParameters= INIManager()->ReadString(szData);
|
|
pMainGame = g_pGameParameters->GetSection("MainGame");
|
|
|
|
LoadGame(pMainGame->GetStringValue("path"));
|
|
}
|
|
|
|
void CGameManager::Shutdown()
|
|
{
|
|
INIManager()->ReleaseFile(g_pGameParameters);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Load all the packages
|
|
//-----------------------------------------------------------------------------
|
|
IGame *CGameManager::LoadGame( const char *szGameName )
|
|
{
|
|
|
|
}
|
|
|
|
IGameMod *CGameManager::LoadGlobalMod( const char *szModName )
|
|
{
|
|
|
|
}
|
|
|
|
|
|
IGameManager *GameManager()
|
|
{
|
|
static CGameManager manager;
|
|
return (IGameManager*)&manager;
|
|
}
|