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.

48 lines
1.3 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. // $NoKeywords: $
  6. //=============================================================================//
  7. #ifndef ICLIENTENTITY_H
  8. #define ICLIENTENTITY_H
  9. #ifdef _WIN32
  10. #pragma once
  11. #endif
  12. #include "iclientrenderable.h"
  13. #include "iclientnetworkable.h"
  14. #include "iclientthinkable.h"
  15. struct Ray_t;
  16. class CGameTrace;
  17. typedef CGameTrace trace_t;
  18. class CMouthInfo;
  19. class IClientEntityInternal;
  20. struct SpatializationInfo_t;
  21. //-----------------------------------------------------------------------------
  22. // Purpose: All client entities must implement this interface.
  23. //-----------------------------------------------------------------------------
  24. abstract_class IClientEntity : public IClientUnknown, public IClientRenderable, public IClientNetworkable, public IClientThinkable
  25. {
  26. public:
  27. // Delete yourself.
  28. virtual void Release( void ) = 0;
  29. // Network origin + angles
  30. virtual const Vector& GetAbsOrigin( void ) const = 0;
  31. virtual const QAngle& GetAbsAngles( void ) const = 0;
  32. virtual CMouthInfo *GetMouth( void ) = 0;
  33. // Retrieve sound spatialization info for the specified sound on this entity
  34. // Return false to indicate sound is not audible
  35. virtual bool GetSoundSpatialization( SpatializationInfo_t& info ) = 0;
  36. };
  37. #endif // ICLIENTENTITY_H