Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.5 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. //=============================================================================
  6. #ifndef ISERVERENGINETOOLS_H
  7. #define ISERVERENGINETOOLS_H
  8. #ifdef _WIN32
  9. #pragma once
  10. #endif
  11. #include "interface.h"
  12. //-----------------------------------------------------------------------------
  13. // Purpose: exposed from engine to game .dll
  14. //-----------------------------------------------------------------------------
  15. class IServerEngineTools : public IBaseInterface
  16. {
  17. public:
  18. // Level init, shutdown
  19. virtual void LevelInitPreEntityAllTools() = 0;
  20. // entities are created / spawned / precached here
  21. virtual void LevelInitPostEntityAllTools() = 0;
  22. virtual void LevelShutdownPreEntityAllTools() = 0;
  23. // Entities are deleted / released here...
  24. virtual void LevelShutdownPostEntityAllTools() = 0;
  25. // end of level shutdown
  26. // Called each frame before entities think
  27. virtual void FrameUpdatePreEntityThinkAllTools() = 0;
  28. // called after entities think
  29. virtual void FrameUpdatePostEntityThinkAllTools() = 0;
  30. virtual void PreClientUpdateAllTools() = 0;
  31. // FIXME: PostClientUpdateAllTools()???
  32. // The server uses this to call into the tools to get the actual
  33. // entities to spawn on startup
  34. virtual const char* GetEntityData( const char *pActualEntityData ) = 0;
  35. virtual void PreSetupVisibilityAllTools() = 0;
  36. virtual bool InToolMode() = 0;
  37. };
  38. #define VSERVERENGINETOOLS_INTERFACE_VERSION "VSERVERENGINETOOLS001"
  39. #endif // ISERVERENGINETOOLS_H