diff options
Diffstat (limited to 'game/client/tf2/iusesmortarpanel.h')
| -rw-r--r-- | game/client/tf2/iusesmortarpanel.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/game/client/tf2/iusesmortarpanel.h b/game/client/tf2/iusesmortarpanel.h new file mode 100644 index 0000000..3a3e23f --- /dev/null +++ b/game/client/tf2/iusesmortarpanel.h @@ -0,0 +1,69 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef IUSESMORTARPANEL_H +#define IUSESMORTARPANEL_H +#ifdef _WIN32 +#pragma once +#endif + +#include "hud_minimap.h" + +// Derive from this if your entity wants to use the mortar firing panel +class IUsesMortarPanel +{ +public: + // Get the data from this mortar needed by the panel + virtual void GetMortarData( float *flClientMortarYaw, bool *bAllowedToFire, float *flPower, float *flFiringPower, float *flFiringAccuracy, int *iFiringState ) = 0; + + // Tell the server the mortar's been rotated + virtual void SendYawCommand( void ) = 0; + + // Panel's overriding client yaw + virtual void ForceClientYawCountdown( float flTime ) = 0; + + // Start firing + virtual void ClickFire( void ) = 0; +}; + +// Mortar firing panel +class CMortarMinimapPanel : public CMinimapPanel +{ +public: + + DECLARE_CLASS( CMortarMinimapPanel, CMinimapPanel ); + + CMortarMinimapPanel( vgui::Panel *pParent, const char *pElementName ); + virtual ~CMortarMinimapPanel(); + + void InitMortarMinimap( C_BaseEntity *pMortar ); + C_BaseEntity *GetMortar() const; + + virtual void Paint(); + + void OnMousePressed( vgui::MouseCode code ); + void OnCursorMoved( int x, int y ); + void OnMouseReleased( vgui::MouseCode code ); + + +public: + + EHANDLE m_hMortar; + BitmapImage m_MortarButtonUp; + BitmapImage m_MortarButtonDown; + BitmapImage m_MortarButtonCantFire; + BitmapImage m_MortarDirectionImage; + + bool m_bMouseDown; + bool m_bFireButtonDown; + int m_LastX, m_LastY; + + // The red-black fade material for the slider. + int m_nTextureId; + int m_nTextureId_CantFire; +}; + +#endif // IUSESMORTARPANEL_H |