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.

70 lines
1.9 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. // $NoKeywords: $
  6. //=============================================================================//
  7. #include "cbase.h"
  8. #include "hintitemorderbase.h"
  9. #include "paneleffect.h"
  10. //-----------------------------------------------------------------------------
  11. // Purpose:
  12. // Input : *parent -
  13. // *panelName -
  14. //-----------------------------------------------------------------------------
  15. CHintItemOrderBase::CHintItemOrderBase( vgui::Panel *parent, const char *panelName )
  16. : BaseClass( parent, panelName )
  17. {
  18. m_bEffects = false;
  19. m_LineEffect = EFFECT_INVALID_HANDLE;
  20. m_FlashEffect = EFFECT_INVALID_HANDLE;
  21. DrawAxialLineToOrder();
  22. }
  23. //-----------------------------------------------------------------------------
  24. // Purpose:
  25. //-----------------------------------------------------------------------------
  26. void CHintItemOrderBase::DrawAxialLineToOrder( void )
  27. {
  28. // Derived class already set up effects
  29. if ( m_bEffects )
  30. return;
  31. m_bEffects = true;
  32. // Flash for vote order
  33. m_FlashEffect = CreateFlashEffect( this, NULL );
  34. // Flash the hint panel itself
  35. CreateFlashEffect( this, GetParent() );
  36. // Point from hint to vote order panel
  37. m_LineEffect = CreateAxialLineEffect( this, GetParent(), NULL );
  38. }
  39. //-----------------------------------------------------------------------------
  40. // Purpose:
  41. // Input : *panel -
  42. //-----------------------------------------------------------------------------
  43. void CHintItemOrderBase::SetHintTarget( vgui::Panel *panel )
  44. {
  45. BaseClass::SetHintTarget( panel );
  46. if ( !m_bEffects )
  47. return;
  48. // Update effect target
  49. if ( !panel || !g_pTF2RootPanel )
  50. return;
  51. CPanelEffect *e = g_pTF2RootPanel->FindEffect( m_LineEffect );
  52. if ( e )
  53. {
  54. e->SetPanelOther( panel );
  55. }
  56. e = g_pTF2RootPanel->FindEffect( m_FlashEffect );
  57. if ( e )
  58. {
  59. e->SetPanel( panel );
  60. }
  61. }