//===== Copyright 1996-2005, Valve Corporation, All rights reserved. ======// // // Purpose: // // $NoKeywords: $ // //===========================================================================// #include "cbase.h" #include "igamesystem.h" #include "toolframework/iserverenginetools.h" #include "init_factory.h" //----------------------------------------------------------------------------- // Purpose: This is an autogame system which is used to call back into the engine at appropriate points // so that IToolSystems can get these hooks at the correct time //----------------------------------------------------------------------------- class CToolFrameworkServer : public CAutoGameSystemPerFrame { public: virtual bool Init(); // Level init, shutdown virtual void LevelInitPreEntity(); // entities are created / spawned / precached here virtual void LevelInitPostEntity(); virtual void LevelShutdownPreEntity(); // Entities are deleted / released here... virtual void LevelShutdownPostEntity(); // Called each frame before entities think virtual void FrameUpdatePreEntityThink(); // called after entities think virtual void FrameUpdatePostEntityThink(); virtual void PreClientUpdate(); private: IServerEngineTools *m_pTools; }; // Singleton static CToolFrameworkServer g_ToolFrameworkServer; bool CToolFrameworkServer::Init() { factorylist_t list; FactoryList_Retrieve( list ); // Latch onto internal interface m_pTools = ( IServerEngineTools * )list.engineFactory( VSERVERENGINETOOLS_INTERFACE_VERSION, NULL ); if ( !m_pTools && !engine->IsDedicatedServer() ) { return false; } return true; } void CToolFrameworkServer::LevelInitPreEntity() { if ( !m_pTools ) { return; } m_pTools->LevelInitPreEntityAllTools(); } void CToolFrameworkServer::LevelInitPostEntity() { if ( !m_pTools ) { return; } m_pTools->LevelInitPostEntityAllTools(); } void CToolFrameworkServer::LevelShutdownPreEntity() { if ( !m_pTools ) { return; } m_pTools->LevelShutdownPreEntityAllTools(); } void CToolFrameworkServer::LevelShutdownPostEntity() { if ( !m_pTools ) { return; } m_pTools->LevelShutdownPostEntityAllTools(); } void CToolFrameworkServer::FrameUpdatePreEntityThink() { if ( !m_pTools ) { return; } m_pTools->FrameUpdatePreEntityThinkAllTools(); } void CToolFrameworkServer::FrameUpdatePostEntityThink() { if ( !m_pTools ) { return; } m_pTools->FrameUpdatePostEntityThinkAllTools(); } void CToolFrameworkServer::PreClientUpdate() { if ( !m_pTools ) { return; } m_pTools->PreClientUpdateAllTools(); }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 5821 | Knut Wikstrom |
Added Valve Source code. This is NOT to be commited to other than new code from Valve. |