bloody skull
08-06-2007, 04:15 AM
I defined a public
int GetClass() {return m_iClass; }
in hl2mp_player.h
and I wanted to use it in this CLIENT VGUI-CONTROLLING file.
// ============================================//
// About: Display class logo
// Notes: It doesn't actually, since it doesn't work
// ============================================//
#include "hud.h"
#include "cbase.h"
#include "classlogo.h"
#include "iclientmode.h"
#include "hud_macros.h"
#include "c_team.h"
#include "vgui_controls/controls.h"
#include "vgui/ISurface.h"
#include "hl2mp_gamerules.h"
#include "tier0/memdbgon.h"
using namespace vgui;
//-----------------------------------------------------------
// Purpose:
//-----------------------------------------------------------
CRClassLogo::CRClassLogo( const char *pElementName ) : CHudElement( pElementName ), BaseClass( NULL, "CRClassLogo" )
{
// nothing useful for you to see
}
//-----------------------------------------------------------
// Purpose:
// Purpose:
//-----------------------------------------------------------
void CRClassLogo::PaintBackground()
{
SetBgColor(Color(0,0,0,0));
//My function GetClass is
//DEFINED in hl2mp_player.h, but I cannot use it from here
//So, what to do?
//SOMETHING *pPlayer = SOMETHING TO GetLocalPlayer());
if(pPlayer->GetClass() == 0 )
{
vgui::surface()->DrawSetColor(GetFgColor());
vgui::surface()->DrawSetTexture( m_nAssaultIcon );
vgui::surface()->DrawTexturedRect(0, 0, GetWide(), GetTall());
DevMsg("Class 0 displayed\n");
}
else if(pPlayer->GetClass() == 1 )
{
vgui::surface()->DrawSetColor(GetFgColor());
vgui::surface()->DrawSetTexture( m_nSupportIcon );
vgui::surface()->DrawTexturedRect(0, 0, GetWide(), GetTall());
DevMsg("Class 1 displayed. if you can read this, it works!\n");
}
else if(pPlayer->GetClass() == 2 )
{
vgui::surface()->DrawSetColor(GetFgColor());
vgui::surface()->DrawSetTexture( m_nSniperIcon );
vgui::surface()->DrawTexturedRect(0, 0, GetWide(), GetTall());
}
else if(pPlayer->GetClass() == 3 )
{
vgui::surface()->DrawSetColor(GetFgColor());
vgui::surface()->DrawSetTexture( m_nMachineIcon );
vgui::surface()->DrawTexturedRect(0, 0, GetWide(), GetTall());
}
else
{
vgui::surface()->DrawSetColor(GetFgColor());
vgui::surface()->DrawSetTexture( m_nAssaultIcon );
vgui::surface()->DrawTexturedRect(0, 0, GetWide(), GetTall());
}
SetPaintBorderEnabled(false);
BaseClass::PaintBackground();
}
DECLARE_HUDELEMENT( CRClassLogo );
what am I gonna do? I tried creating a m_Local variable, setting
m_Local.m_iClass = GetClass();
inside hl2mp_player.cpp, but when I use it in my file calling
CBasePlayer *pPlayer = UTIL_PlayerByIndex(engine->GetLocalPlayer());
and then
pPlayer->m_Local.m_iClass
that variable is ALWAYS = 0 and I don't know why :(
plz help me guys.
thanks for reading.
int GetClass() {return m_iClass; }
in hl2mp_player.h
and I wanted to use it in this CLIENT VGUI-CONTROLLING file.
// ============================================//
// About: Display class logo
// Notes: It doesn't actually, since it doesn't work
// ============================================//
#include "hud.h"
#include "cbase.h"
#include "classlogo.h"
#include "iclientmode.h"
#include "hud_macros.h"
#include "c_team.h"
#include "vgui_controls/controls.h"
#include "vgui/ISurface.h"
#include "hl2mp_gamerules.h"
#include "tier0/memdbgon.h"
using namespace vgui;
//-----------------------------------------------------------
// Purpose:
//-----------------------------------------------------------
CRClassLogo::CRClassLogo( const char *pElementName ) : CHudElement( pElementName ), BaseClass( NULL, "CRClassLogo" )
{
// nothing useful for you to see
}
//-----------------------------------------------------------
// Purpose:
// Purpose:
//-----------------------------------------------------------
void CRClassLogo::PaintBackground()
{
SetBgColor(Color(0,0,0,0));
//My function GetClass is
//DEFINED in hl2mp_player.h, but I cannot use it from here
//So, what to do?
//SOMETHING *pPlayer = SOMETHING TO GetLocalPlayer());
if(pPlayer->GetClass() == 0 )
{
vgui::surface()->DrawSetColor(GetFgColor());
vgui::surface()->DrawSetTexture( m_nAssaultIcon );
vgui::surface()->DrawTexturedRect(0, 0, GetWide(), GetTall());
DevMsg("Class 0 displayed\n");
}
else if(pPlayer->GetClass() == 1 )
{
vgui::surface()->DrawSetColor(GetFgColor());
vgui::surface()->DrawSetTexture( m_nSupportIcon );
vgui::surface()->DrawTexturedRect(0, 0, GetWide(), GetTall());
DevMsg("Class 1 displayed. if you can read this, it works!\n");
}
else if(pPlayer->GetClass() == 2 )
{
vgui::surface()->DrawSetColor(GetFgColor());
vgui::surface()->DrawSetTexture( m_nSniperIcon );
vgui::surface()->DrawTexturedRect(0, 0, GetWide(), GetTall());
}
else if(pPlayer->GetClass() == 3 )
{
vgui::surface()->DrawSetColor(GetFgColor());
vgui::surface()->DrawSetTexture( m_nMachineIcon );
vgui::surface()->DrawTexturedRect(0, 0, GetWide(), GetTall());
}
else
{
vgui::surface()->DrawSetColor(GetFgColor());
vgui::surface()->DrawSetTexture( m_nAssaultIcon );
vgui::surface()->DrawTexturedRect(0, 0, GetWide(), GetTall());
}
SetPaintBorderEnabled(false);
BaseClass::PaintBackground();
}
DECLARE_HUDELEMENT( CRClassLogo );
what am I gonna do? I tried creating a m_Local variable, setting
m_Local.m_iClass = GetClass();
inside hl2mp_player.cpp, but when I use it in my file calling
CBasePlayer *pPlayer = UTIL_PlayerByIndex(engine->GetLocalPlayer());
and then
pPlayer->m_Local.m_iClass
that variable is ALWAYS = 0 and I don't know why :(
plz help me guys.
thanks for reading.