Files
funnygame/engine/gamemgr.cpp
2026-02-01 17:47:49 +02:00

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;
}