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.

54 lines
1.8 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. // $NoKeywords: $
  6. //=============================================================================//
  7. #ifndef TF_HUD_MENU_EUREKA_TELEPORT_H
  8. #define TF_HUD_MENU_EUREKA_TELEPORT_H
  9. #ifdef _WIN32
  10. #pragma once
  11. #endif
  12. #include <vgui_controls/EditablePanel.h>
  13. #include <vgui_controls/Label.h>
  14. #include "IconPanel.h"
  15. #include "tf_controls.h"
  16. #include "hudelement.h"
  17. #include "tf_hud_menu_engy_build.h"
  18. using namespace vgui;
  19. class CHudEurekaEffectTeleportMenu : public CHudElement, public EditablePanel
  20. {
  21. DECLARE_CLASS_SIMPLE( CHudEurekaEffectTeleportMenu, EditablePanel );
  22. public:
  23. CHudEurekaEffectTeleportMenu( const char *pElementName );
  24. virtual void ApplySchemeSettings( IScheme *pScheme ) OVERRIDE;
  25. virtual bool ShouldDraw( void ) OVERRIDE;
  26. virtual void SetVisible( bool bState ) OVERRIDE;
  27. virtual void OnTick( void ) OVERRIDE;
  28. int HudElementKeyInput( int down, ButtonCode_t keynum, const char *pszCurrentBinding );
  29. virtual int GetRenderGroupPriority() OVERRIDE { return 51; }
  30. void WantsToTeleport( void );
  31. virtual GameActionSet_t GetPreferredActionSet() { return GAME_ACTION_SET_IN_GAME_HUD; }
  32. private:
  33. void SetSelectedItem( eEurekaTeleportTargets eSelectedTeleportTarget );
  34. void SendTeleportMessage( eEurekaTeleportTargets eTeleportTarget );
  35. bool CanTeleport() const;
  36. void UpdateHintLabels( void ); // show/hide the bright and dim build, destroy hint labels
  37. bool m_bWantsToTeleport;
  38. eEurekaTeleportTargets m_eSelectedTeleportTarget;
  39. buildmenulayouts_t m_eCurrentBuildMenuLayout;
  40. EditablePanel *m_pAvilableTargets[EUREKA_NUM_TARGETS];
  41. EditablePanel *m_pUnavailableTargets[EUREKA_NUM_TARGETS];
  42. CIconPanel *m_pActiveSelection;
  43. };
  44. #endif // TF_HUD_MENU_EUREKA_TELEPORT_H