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.

130 lines
3.9 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. // $NoKeywords: $
  6. //=============================================================================//
  7. #ifndef DODWINPANEL_H
  8. #define DODWINPANEL_H
  9. #ifdef _WIN32
  10. #pragma once
  11. #endif
  12. #include <vgui_controls/EditablePanel.h>
  13. #include <game/client/iviewport.h>
  14. #include <vgui/IScheme.h>
  15. #include "hud.h"
  16. #include "hudelement.h"
  17. #include "dod_shareddefs.h"
  18. using namespace vgui;
  19. class CDODWinPanel : public EditablePanel, public CHudElement
  20. {
  21. private:
  22. DECLARE_CLASS_SIMPLE( CDODWinPanel, EditablePanel );
  23. public:
  24. CDODWinPanel( const char *pElementName, int iTeam );
  25. virtual void Reset();
  26. virtual void Init();
  27. virtual void VidInit();
  28. virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
  29. virtual void FireGameEvent( IGameEvent * event );
  30. void Show();
  31. void Hide();
  32. virtual bool ShouldDraw( void );
  33. virtual void Paint( void );
  34. void SetupAvatar( const char *pSide, int pos, int iPlayerIndex );
  35. protected:
  36. void SetFinalCaptureLabel( const char *szCappers, bool bAvatar );
  37. void DrawText( char *text, int x, int y, Color clrText );
  38. CHudTexture *GetIconForCategory( int category );
  39. CHudTexture *m_pIcon;
  40. CHudTexture *m_pIconCap;
  41. CHudTexture *m_pIconDefended;
  42. CHudTexture *m_pIconBomb;
  43. CHudTexture *m_pIconKill;
  44. vgui::Label *m_pLastCapperHeader;
  45. vgui::Label *m_pLastBomberHeader;
  46. vgui::Label *m_pLastCapperLabel; // list of names of the final cappers
  47. vgui::Label *m_pLastCapperLabel_Avatar;
  48. vgui::Label *m_pTimerStatusLabel; // shows time remaining or elapsed at round end
  49. int m_iLeftCategory;
  50. vgui::Label *m_pLeftCategoryHeader;
  51. vgui::Label *m_pLeftCategoryLabels[3];
  52. int m_iLeftCategoryScores[3];
  53. int m_iRightCategory;
  54. vgui::Label *m_pRightCategoryHeader;
  55. vgui::Label *m_pRightCategoryLabels[3];
  56. int m_iRightCategoryScores[3];
  57. bool m_bShowTimerDefend;
  58. bool m_bShowTimerAttack;
  59. int m_iTimerTime;
  60. int m_iFinalEventType;
  61. private:
  62. CPanelAnimationVarAliasType( int, m_iIconY, "icon_ypos", "0", "proportional_int" );
  63. CPanelAnimationVarAliasType( int, m_iIconX_left, "icon_xpos_left", "0", "proportional_int" );
  64. CPanelAnimationVarAliasType( int, m_iIconX_right, "icon_xpos_right", "0", "proportional_int" );
  65. CPanelAnimationVarAliasType( int, m_iIconW, "icon_w", "0", "proportional_int" );
  66. CPanelAnimationVarAliasType( int, m_iIconH, "icon_h", "0", "proportional_int" );
  67. CPanelAnimationVarAliasType( int, m_iIconSize, "icon_stat_size", "0", "proportional_int" );
  68. CPanelAnimationVarAliasType( int, m_iIconLeftX, "icon_left_stat_x", "0", "proportional_int" );
  69. CPanelAnimationVarAliasType( int, m_iIconLeftY1, "icon_left_stat_y1", "0", "proportional_int" );
  70. CPanelAnimationVarAliasType( int, m_iIconLeftY2, "icon_left_stat_y2", "0", "proportional_int" );
  71. CPanelAnimationVarAliasType( int, m_iIconLeftY3, "icon_left_stat_y3", "0", "proportional_int" );
  72. CPanelAnimationVarAliasType( int, m_iIconRightX, "icon_right_stat_x", "0", "proportional_int" );
  73. CPanelAnimationVarAliasType( int, m_iIconRightY1, "icon_right_stat_y1", "0", "proportional_int" );
  74. CPanelAnimationVarAliasType( int, m_iIconRightY2, "icon_right_stat_y2", "0", "proportional_int" );
  75. CPanelAnimationVarAliasType( int, m_iIconRightY3, "icon_right_stat_y3", "0", "proportional_int" );
  76. CPanelAnimationVar( vgui::HFont, m_hNumberFont, "NumberFont", "HudSelectionNumbers" );
  77. int m_iTeam;
  78. };
  79. class CDODWinPanel_Allies : public CDODWinPanel
  80. {
  81. private:
  82. DECLARE_CLASS_SIMPLE( CDODWinPanel_Allies, CDODWinPanel );
  83. public:
  84. CDODWinPanel_Allies( const char *pElementName );
  85. virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
  86. virtual void OnScreenSizeChanged( int iOldWide, int iOldTall );
  87. };
  88. class CDODWinPanel_Axis : public CDODWinPanel
  89. {
  90. private:
  91. DECLARE_CLASS_SIMPLE( CDODWinPanel_Axis, CDODWinPanel );
  92. public:
  93. CDODWinPanel_Axis( const char *pElementName );
  94. virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
  95. virtual void OnScreenSizeChanged( int iOldWide, int iOldTall );
  96. };
  97. #endif //DODWINPANEL_H