/* ======== SourceMM ======== * Copyright (C) 2004-2005 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng * * Author(s): David "BAILOPAN" Anderson * ============================ */ #ifndef _INCLUDE_CSERVER_GAMEDLL_H #define _INCLUDE_CSERVER_GAMEDLL_H /** * @brief Defines wrapper class for gamedll interfaces * @file CServerGameDLL.h */ #include #include "oslink.h" /** * @brief Empty class. We only care about DLLInit. */ class CServerGameDLL : public IServerGameDLL { IServerGameDLL *m_pOrig; char m_GameDescBuffer[256]; public: CServerGameDLL() : m_pOrig(0) { strcpy(m_GameDescBuffer, "Metamod:Source"); } void SetOrig(IServerGameDLL *pOrig) { m_pOrig = pOrig; snprintf(m_GameDescBuffer, 255, "%s", pOrig->GetGameDescription()); } virtual bool DLLInit( CreateInterfaceFn engineFactory, CreateInterfaceFn physicsFactory, CreateInterfaceFn fileSystemFactory, CGlobalVars *pGlobals); virtual bool GameInit( void ) { return m_pOrig->GameInit(); } virtual bool LevelInit( char const *pMapName, char const *pMapEntities, char const *pOldLevel, char const *pLandmarkName, bool loadGame, bool background ) { return m_pOrig->LevelInit(pMapName, pMapEntities, pOldLevel, pLandmarkName, loadGame, background); } virtual void ServerActivate( edict_t *pEdictList, int edictCount, int clientMax ) { m_pOrig->ServerActivate(pEdictList, edictCount, clientMax); } virtual void GameFrame( bool simulating ) { m_pOrig->GameFrame(simulating); } virtual void PreClientUpdate( bool simulating ) { m_pOrig->PreClientUpdate(simulating); } virtual void LevelShutdown( void ); virtual void GameShutdown( void ) { m_pOrig->GameShutdown(); } virtual void DLLShutdown( void ); virtual float GetTickInterval( void ) const { return m_pOrig->GetTickInterval(); } virtual ServerClass *GetAllServerClasses( void ) { return m_pOrig->GetAllServerClasses(); } virtual const char *GetGameDescription( void ) { return m_GameDescBuffer; } virtual void CreateNetworkStringTables( void ) { m_pOrig->CreateNetworkStringTables(); } virtual CSaveRestoreData *SaveInit( int size ) { return m_pOrig->SaveInit(size); } virtual void SaveWriteFields( CSaveRestoreData *a1, const char *a2, void *a3, datamap_t *a4, typedescription_t *a5, int a6) { m_pOrig->SaveWriteFields(a1, a2, a3, a4, a5, a6); } virtual void SaveReadFields( CSaveRestoreData *a1, const char *a2, void *a3, datamap_t *a4, typedescription_t *a5, int a6) { m_pOrig->SaveReadFields(a1, a2, a3, a4, a5, a6); } virtual void SaveGlobalState( CSaveRestoreData *a1) { m_pOrig->SaveGlobalState(a1); } virtual void RestoreGlobalState( CSaveRestoreData *a1) { m_pOrig->RestoreGlobalState(a1); } virtual void PreSave( CSaveRestoreData *a1) { m_pOrig->PreSave(a1); } virtual void Save( CSaveRestoreData *a1) { m_pOrig->Save(a1); } virtual void GetSaveComment( char *comment, int maxlength ) { m_pOrig->GetSaveComment(comment, maxlength); } virtual void WriteSaveHeaders( CSaveRestoreData *a1) { m_pOrig->WriteSaveHeaders(a1); } virtual void ReadRestoreHeaders( CSaveRestoreData *a1) { m_pOrig->ReadRestoreHeaders(a1); } virtual void Restore( CSaveRestoreData *a1, bool a2) { m_pOrig->Restore(a1, a2); } virtual bool IsRestoring() { return m_pOrig->IsRestoring(); } virtual int CreateEntityTransitionList( CSaveRestoreData *a1, int a2) { return m_pOrig->CreateEntityTransitionList(a1, a2); } virtual void BuildAdjacentMapList( void ) { m_pOrig->BuildAdjacentMapList(); } virtual bool GetUserMessageInfo( int msg_type, char *name, int maxnamelength, int& size ) { return m_pOrig->GetUserMessageInfo(msg_type, name, maxnamelength, size); } virtual CStandardSendProxies* GetStandardSendProxies() { return m_pOrig->GetStandardSendProxies(); } }; #endif //_INCLUDE_CSERVER_GAMEDLL_H