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.

78 lines
2.2 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. //=============================================================================//
  6. #ifndef HUD_RADAR_H
  7. #define HUD_RADAR_H
  8. #ifdef _WIN32
  9. #pragma once
  10. #endif
  11. #include <vgui_controls/Panel.h>
  12. #include <vgui_controls/Label.h>
  13. #include "hl2_vehicle_radar.h"
  14. #include "c_vguiscreen.h"
  15. class CRadarContact
  16. {
  17. public:
  18. Vector m_vecOrigin;
  19. int m_iType;
  20. float m_flTimeToRemove;
  21. };
  22. class CHudRadar : public CVGuiScreenPanel
  23. {
  24. public:
  25. DECLARE_CLASS_SIMPLE( CHudRadar, CVGuiScreenPanel );
  26. CHudRadar( vgui::Panel *parent, const char *panelName );
  27. ~CHudRadar();
  28. virtual void Paint();
  29. void VidInit(void);
  30. virtual bool Init( KeyValues* pKeyValues, VGuiScreenInitData_t* pInitData );
  31. virtual void SetVisible(bool state);
  32. void MsgFunc_UpdateRadar(bf_read &msg );
  33. void SetVehicle( C_BaseEntity *pVehicle ) { m_pVehicle = pVehicle; }
  34. void AddRadarContact( const Vector &vecOrigin, int iType, float flTimeToLive );
  35. int FindRadarContact( const Vector &vecOrigin );
  36. void MaintainRadarContacts();
  37. void ClearAllRadarContacts() { m_iNumRadarContacts = 0; }
  38. public:
  39. bool m_bUseFastUpdate;
  40. int m_ghostAlpha; // How intense the alpha channel is for CRT ghosts
  41. float m_flTimeStopGhosting;
  42. float m_flTimeStartGhosting;
  43. private:
  44. bool WorldToRadar( const Vector location, const Vector origin, const QAngle angles, float &x, float &y, float &z_delta, float &scale );
  45. void DrawPositionOnRadar( Vector vecPos, C_BasePlayer *pLocalPlayer, int type, int flags, int r, int g, int b, int a );
  46. void DrawIconOnRadar( Vector vecPos, C_BasePlayer *pLocalPlayer, int type, int flags, int r, int g, int b, int a );
  47. void FillRect( int x, int y, int w, int h );
  48. void DrawRadarDot( int x, int y, float z_diff, int iBaseDotSize, int flags, int r, int g, int b, int a );
  49. CRadarContact m_radarContacts[RADAR_MAX_CONTACTS];
  50. int m_iNumRadarContacts;
  51. C_BaseEntity *m_pVehicle;
  52. int m_iImageID;
  53. int m_textureID_IconLambda;
  54. int m_textureID_IconBuster;
  55. int m_textureID_IconStrider;
  56. int m_textureID_IconDog;
  57. int m_textureID_IconBase;
  58. };
  59. extern CHudRadar *GetHudRadar();
  60. #endif // HUD_RADAR_H