Counter Strike : Global Offensive Source Code
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.
|
|
//========= Copyright � 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef GAMEGRAPHIC_H
#define GAMEGRAPHIC_H
#ifdef _WIN32
#pragma once
#endif
#include "uigeometry.h"
#include "tier1/utlvector.h"
#include "inputsystem/ButtonCode.h"
#include "tier1/utlstring.h"
//#include "gameuiscript.h"
#include "filesystem.h"
struct InputEvent_t; class CGraphicGroup; class CGameUIScript; class CGameUIDefinition; class CAnimData; class CDmxElement; enum EScriptExecution;
struct StageRenderInfo_t { Vector parentPos; Vector2D parentScale; int parentRot; matrix3x4_t relToScreen; matrix3x4_t relToScreenHoldAspectRatio; };
//-----------------------------------------------------------------------------
// A class that contains a rect or text or hit area
//-----------------------------------------------------------------------------
class CGameGraphic { public:
CGameGraphic(); virtual ~CGameGraphic();
// Update geometry and execute scripting.
virtual void UpdateGeometry(){} // Populate lists for rendering
virtual void UpdateRenderTransforms( const StageRenderInfo_t &stageRenderInfo ); virtual void UpdateRenderData( color32 parentColor, CUtlVector< RenderGeometryList_t > &renderGeometryLists, int firstListIndex ); virtual void DrawExtents( CUtlVector< RenderGeometryList_t > &renderGeometryLists, int firstListIndex );
virtual bool HasState( const char *pStateName ); virtual void SetState( const char *pStateName, bool bStartPlaying = true ); bool IsDonePlaying(); const char *GetState(); virtual void StartPlaying(); virtual void StopPlaying(); virtual void AdvanceState(); void SetAnimationTimePassed( DmeTime_t time ); DmeTime_t GetAnimationTimePassed();
virtual KeyValues *HandleScriptCommand( KeyValues *args );
virtual bool HitTest( int x, int y ) { return false; }
CGraphicGroup *GetGroup() const { return m_pGroup; } void SetGroup( CGraphicGroup *pGroup ) { m_pGroup = pGroup; }
const char *GetName() const { return m_pName; } bool IsGraphicNamed( const char *pName ); virtual CGameGraphic *FindGraphicByName( const char *pName ) const;
virtual void SetVisible( bool bVisible ){ m_Geometry.m_bVisible = bVisible; } bool GetVisible( ) const { return m_Geometry.m_bVisible; }
bool CanAcceptInput() const { return m_bCanAcceptInput; } virtual bool IsHitArea() const { return false; } virtual bool IsGroup() const { return false; } virtual bool IsDynamic() const { return false; }
void SetResultantColor( bool bTop, color32 parentColor );
virtual bool MaintainAspectRatio() const { return m_Geometry.m_bMaintainAspectRatio; }
int32 GetScriptHandle() { return m_iScriptHandle; } static CGameGraphic * FromScriptHandle( int32 iScriptHandle );
virtual const char *GetMaterialAlias(){ return NULL; }
virtual void SetCenter( float x, float y ) { m_Geometry.m_Center = Vector2D( x, y ); } virtual void SetScale( float xScale, float yScale ) { m_Geometry.m_Scale = Vector2D( xScale, yScale); } virtual void SetColor( color32 c ){ m_Geometry.m_Color = c; }
protected: int GetStateIndex( const char *pStateName );
CUtlString m_pName; CGraphicGroup *m_pGroup; bool m_bCanAcceptInput;
CGeometry m_Geometry; CUtlVector< CAnimData * > m_Anims; int m_CurrentState; DmeTime_t m_flAnimTime;
int32 m_iScriptHandle;
};
#endif // GAMEGRAPHIC_H
|