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.

67 lines
1.6 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. // $NoKeywords: $
  6. //
  7. //=============================================================================//
  8. #include "cbase.h"
  9. #include "view.h"
  10. #include "iviewrender.h"
  11. // memdbgon must be the last include file in a .cpp file!!!
  12. #include "tier0/memdbgon.h"
  13. class C_Func_LOD : public C_BaseEntity
  14. {
  15. public:
  16. DECLARE_CLASS( C_Func_LOD, C_BaseEntity );
  17. DECLARE_CLIENTCLASS();
  18. C_Func_LOD();
  19. // C_BaseEntity overrides.
  20. public:
  21. unsigned char GetClientSideFade();
  22. public:
  23. // Replicated vars from the server.
  24. // These are documented in the server-side entity.
  25. public:
  26. float m_fDisappearDist;
  27. };
  28. ConVar lod_TransitionDist("lod_TransitionDist", "800");
  29. // ------------------------------------------------------------------------- //
  30. // Tables.
  31. // ------------------------------------------------------------------------- //
  32. // Datatable..
  33. IMPLEMENT_CLIENTCLASS_DT(C_Func_LOD, DT_Func_LOD, CFunc_LOD)
  34. RecvPropFloat(RECVINFO(m_fDisappearDist)),
  35. END_RECV_TABLE()
  36. // ------------------------------------------------------------------------- //
  37. // C_Func_LOD implementation.
  38. // ------------------------------------------------------------------------- //
  39. C_Func_LOD::C_Func_LOD()
  40. {
  41. m_fDisappearDist = 5000.0f;
  42. }
  43. //-----------------------------------------------------------------------------
  44. // Purpose: Calculate a fade.
  45. //-----------------------------------------------------------------------------
  46. unsigned char C_Func_LOD::GetClientSideFade()
  47. {
  48. return UTIL_ComputeEntityFade( this, m_fDisappearDist, m_fDisappearDist + lod_TransitionDist.GetFloat(), 1.0f );
  49. }