aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/client/ViewConeImage.cpp
diff options
context:
space:
mode:
authorJoe Ludwig <[email protected]>2013-06-26 15:22:04 -0700
committerJoe Ludwig <[email protected]>2013-06-26 15:22:04 -0700
commit39ed87570bdb2f86969d4be821c94b722dc71179 (patch)
treeabc53757f75f40c80278e87650ea92808274aa59 /mp/src/game/client/ViewConeImage.cpp
downloadsource-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.tar.xz
source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.zip
First version of the SOurce SDK 2013
Diffstat (limited to 'mp/src/game/client/ViewConeImage.cpp')
-rw-r--r--mp/src/game/client/ViewConeImage.cpp83
1 files changed, 83 insertions, 0 deletions
diff --git a/mp/src/game/client/ViewConeImage.cpp b/mp/src/game/client/ViewConeImage.cpp
new file mode 100644
index 00000000..a8761d79
--- /dev/null
+++ b/mp/src/game/client/ViewConeImage.cpp
@@ -0,0 +1,83 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: This is a panel which is rendered image on top of an entity
+//
+// $Revision: $
+// $NoKeywords: $
+//=============================================================================//
+#include "cbase.h"
+#include "ViewConeImage.h"
+#include <KeyValues.h>
+#include <vgui_controls/Panel.h>
+#include "VGuiMatSurface/IMatSystemSurface.h"
+
+// memdbgon must be the last include file in a .cpp file!!!
+#include "tier0/memdbgon.h"
+
+//-----------------------------------------------------------------------------
+// initialization
+//-----------------------------------------------------------------------------
+bool CViewConeImage::Init( vgui::Panel *pParent, KeyValues* pInitData )
+{
+ Assert( pParent );
+
+ // Load viewcone material
+ if (!m_Image.Init( pParent->GetVPanel(), pInitData ))
+ return false;
+
+ // Position the view cone...
+ int viewconesize = pInitData->GetInt( "size", 32 );
+ m_Image.SetRenderSize( viewconesize, viewconesize );
+
+ int cx, cy;
+ pParent->GetSize( cx, cy );
+ m_Image.SetPos( (cx - viewconesize) / 2, (cy - viewconesize) / 2 );
+
+ return true;
+}
+
+//-----------------------------------------------------------------------------
+// Paint the sucka
+//-----------------------------------------------------------------------------
+void CViewConeImage::Paint( float yaw )
+{
+ g_pMatSystemSurface->DisableClipping( true );
+
+ m_Image.DoPaint( NULL, yaw );
+
+ g_pMatSystemSurface->DisableClipping( false );
+}
+
+void CViewConeImage::SetColor( int r, int g, int b )
+{
+ m_Image.SetColor( Color( r, g, b, 255 ) );
+}
+
+//-----------------------------------------------------------------------------
+// Helper method to initialize a view cone image from KeyValues data..
+// KeyValues contains the bitmap data, pSectionName, if it exists,
+// indicates which subsection of pInitData should be looked at to get at the
+// image data. The final argument is the bitmap image to initialize.
+// The function returns true if it succeeded.
+//
+// NOTE: This function looks for the key values 'material' and 'color'
+// and uses them to set up the material + modulation color of the image
+//-----------------------------------------------------------------------------
+bool InitializeViewConeImage( KeyValues *pInitData, const char* pSectionName,
+ vgui::Panel *pParent, CViewConeImage* pViewConeImage )
+{
+ KeyValues *pViewConeImageSection;
+ if (pSectionName)
+ {
+ pViewConeImageSection = pInitData->FindKey( pSectionName );
+ if ( !pViewConeImageSection )
+ return false;
+ }
+ else
+ {
+ pViewConeImageSection = pInitData;
+ }
+
+ return pViewConeImage->Init( pParent, pViewConeImageSection );
+}
+