//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: This is a panel which is rendered image on top of an entity // // $Revision: $ // $NoKeywords: $ //=============================================================================// #ifndef TEAMBITMAPIMAGE_H #define TEAMBITMAPIMAGE_H #ifdef _WIN32 #pragma once #endif //#include "tf_shareddefs.h" #include namespace vgui { class Panel; } class BitmapImage; class C_BaseEntity; class KeyValues; //----------------------------------------------------------------------------- // A multiplexer bitmap that chooses a bitmap based on team //----------------------------------------------------------------------------- class CTeamBitmapImage { public: // construction, destruction CTeamBitmapImage(); ~CTeamBitmapImage(); // initialization bool Init( vgui::Panel *pParent, KeyValues* pInitData, C_BaseEntity* pEntity ); // Alpha override... void SetAlpha( float alpha ); // Paint the sucka. Paint it the size of the parent panel void Paint( float yaw = 0.0f ); protected: // Wrapper so we can implement this with EHANDLES some day C_BaseEntity *GetEntity() { return m_pEntity; } private: enum { // NOTE: Was MAX_TF_TEAMS not 4, but I don't like the dependency here. BITMAP_COUNT = 4 + 1 }; BitmapImage *m_ppImage[ BITMAP_COUNT ]; C_BaseEntity *m_pEntity; float m_Alpha; bool m_bRelativeTeams; }; //----------------------------------------------------------------------------- // Helper method to initialize a team 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 InitializeTeamImage( KeyValues *pInitData, const char* pSectionName, vgui::Panel *pParent, C_BaseEntity *pEntity, CTeamBitmapImage* pBitmapImage ); #endif // TEAMBITMAPIMAGE_H