summaryrefslogtreecommitdiff
path: root/game/client/dod/dod_hud_freezepanel.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/client/dod/dod_hud_freezepanel.h')
-rw-r--r--game/client/dod/dod_hud_freezepanel.h122
1 files changed, 122 insertions, 0 deletions
diff --git a/game/client/dod/dod_hud_freezepanel.h b/game/client/dod/dod_hud_freezepanel.h
new file mode 100644
index 0000000..86fc847
--- /dev/null
+++ b/game/client/dod/dod_hud_freezepanel.h
@@ -0,0 +1,122 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================
+
+#ifndef DOD_HUD_FREEZEPANEL_H
+#define DOD_HUD_FREEZEPANEL_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <vgui_controls/EditablePanel.h>
+#include <game/client/iviewport.h>
+#include <vgui/IScheme.h>
+#include "hud.h"
+#include "hudelement.h"
+#include "vgui_controls/ImagePanel.h"
+#include "vgui_avatarimage.h"
+#include "dod_hud_playerstatus_health.h"
+
+using namespace vgui;
+
+bool IsTakingAFreezecamScreenshot( void );
+
+/*
+//-----------------------------------------------------------------------------
+// Purpose: Custom health panel used in the freeze panel to show killer's health
+//-----------------------------------------------------------------------------
+class CDODFreezePanelHealth : public CTFHudPlayerHealth
+{
+public:
+ CTFFreezePanelHealth( Panel *parent, const char *name ) : CTFHudPlayerHealth( parent, name )
+ {
+ }
+
+ virtual const char *GetResFilename( void ) { return "resource/UI/FreezePanelKillerHealth.res"; }
+ virtual void OnThink()
+ {
+ // Do nothing. We're just preventing the base health panel from updating.
+ }
+};
+*/
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+class CDODFreezePanelCallout : public EditablePanel
+{
+ DECLARE_CLASS_SIMPLE( CDODFreezePanelCallout, EditablePanel );
+public:
+ CDODFreezePanelCallout( Panel *parent, const char *name );
+
+ virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
+};
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+class CDODFreezePanel : public EditablePanel, public CHudElement
+{
+private:
+ DECLARE_CLASS_SIMPLE( CDODFreezePanel, EditablePanel );
+
+public:
+ CDODFreezePanel( const char *pElementName );
+
+ virtual void Reset();
+ virtual void Init();
+ virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
+ virtual void FireGameEvent( IGameEvent * event );
+
+ void ShowSnapshotPanel( bool bShow );
+ void UpdateCallout( void );
+ void ShowCalloutsIn( float flTime );
+ void ShowSnapshotPanelIn( float flTime );
+ void Show();
+ void Hide();
+ virtual bool ShouldDraw( void );
+ void OnThink( void );
+
+ int HudElementKeyInput( int down, ButtonCode_t keynum, const char *pszCurrentBinding );
+
+ bool IsHoldingAfterScreenShot( void ) { return m_bHoldingAfterScreenshot; }
+
+protected:
+ CDODFreezePanelCallout *TestAndAddCallout( Vector &origin, Vector &vMins, Vector &vMaxs, CUtlVector<Vector> *vecCalloutsTL,
+ CUtlVector<Vector> *vecCalloutsBR, Vector &vecFreezeTL, Vector &vecFreezeBR, Vector &vecStatTL, Vector &vecStatBR, int *iX, int *iY );
+
+private:
+ void ShowNemesisPanel( bool bShow );
+
+ int m_iYBase;
+ int m_iKillerIndex;
+ //CTFHudPlayerHealth *m_pKillerHealth;
+ int m_iShowNemesisPanel;
+ CUtlVector<CDODFreezePanelCallout*> m_pCalloutPanels;
+ float m_flShowCalloutsAt;
+ float m_flShowSnapshotReminderAt;
+ EditablePanel *m_pNemesisSubPanel;
+ vgui::Label *m_pFreezeLabel;
+ vgui::Panel *m_pFreezePanelBG;
+ CAvatarImagePanel *m_pAvatar;
+ vgui::EditablePanel *m_pScreenshotPanel;
+ vgui::EditablePanel *m_pBasePanel;
+
+ int m_iBasePanelOriginalX;
+ int m_iBasePanelOriginalY;
+
+ bool m_bHoldingAfterScreenshot;
+
+ CDoDHudHealth *m_pHealthStatus;
+
+ enum
+ {
+ SHOW_NO_NEMESIS = 0,
+ SHOW_NEW_NEMESIS,
+ SHOW_REVENGE
+ };
+};
+
+#endif // DOD_HUD_FREEZEPANEL_H