rendered paste body//HOOK HEREvoid* AppSysFactory( const char* pszName, int* piRetnCode ){ void* lpReturn = g_AppSysFactory( pszName, piRetnCode ); DO_ONCE ( vgui::VGui_InitInterfacesList( "CLIENT", &g_AppSysFactory, 1 ); if( vgui::VGui_InitInterfacesList("CLIENT", &g_AppSysFactory, 1) == false ) add_log( "Failed to initialize VGUI" ); if ( lpReturn ) { if( strcmp( pszName, "VGUI_Surface030" ) ) { hl2.m_pSurface = (vgui::ISurface*)lpReturn; hl2.m_pMatSurface = ( IMatSystemSurface* )vgui::surface(); } } ); return ( void* )lpReturn;}int __stdcall new_Init( _CreateInterfaceFn appSystemFactory, _CreateInterfaceFn physicsFactory, CGlobalVarsBase *pGlobals ){ g_AppSysFactory = appSystemFactory; hl2.m_pGlobals = pGlobals; return gClient.Init( AppSysFactory, physicsFactory, pGlobals );}void __stdcall new_HudUpdate ( bool bActive ){ DO_ONCE ( //hl2.m_pDrawzLayer = new CDrawLayer(); hl2.m_pHl2GameConsole->Init(); hl2.m_pNeeded->FontInit(); vgui::VPANEL VisualPanels = hl2.m_pEnginevgui->GetPanel( PANEL_INGAMESCREENS ); hl2.m_pDrawzLayer->Create( VisualPanels ); MathLib_Init( 2.2f, 2.2f, 0.0f, 2.0f, true, true, true, true ); ); gClient.HudUpdate( bActive );}//------------------------------//DrawLayer.cpp//------------------------------ScreenSize_t sScreenSize; // struct to store the screen-size//----------------------------------------------------------------------------------------------------------CDrawLayer::CDrawLayer ( void ){ pDrawPanel = NULL;}CDrawLayer::~CDrawLayer ( void ){ Destroy();}void CDrawLayer::Create( vgui::VPANEL parent ){ pDrawPanel = new CDrawPanel ( parent );}void CDrawLayer::Destroy( void ){ if ( pDrawPanel ) { ExitProcess( 0 ); pDrawPanel->SetParent( (vgui::Panel *)NULL ); delete pDrawPanel; delete ltfx; pDrawPanel = NULL; }}//------------------------------------------------------------------------------------------------------------------CDrawPanel::CDrawPanel( vgui::VPANEL parent ) : BaseClass( NULL,"DrawPanel" ){ SetParent( parent ); // set the parent SetPos( 0, 0 ); // start at the left top corner SetVisible( true ); // yup ... :) SetCursor( null ); // not needed hl2.m_pEngine->GetScreenSize( sScreenSize.m_iWidth, sScreenSize.m_iHeight ); SetSize( sScreenSize.m_iWidth, sScreenSize.m_iHeight );}int iUpdate = 0;void CDrawPanel::Paint( void ) {// HookDrawModel( ); DeprotectCvars( ); if ( !hl2.m_pEngine->IsConnected() || !hl2.m_pEngine->IsInGame() || !hl2.m_pMyPlayer->BaseEnt() || hl2.m_pEngine->Con_IsVisible() || hl2.m_pEngine->IsLevelMainMenuBackground() ) return; if( cvars.fHideScreenshot && hl2.m_pEngine->IsTakingScreenshot( ) ) return; //res changing bug int iNewWidth, iNewHeight; hl2.m_pEngine->GetScreenSize( iNewWidth, iNewHeight ); if( sScreenSize.m_iWidth != iNewWidth || sScreenSize.m_iHeight != iNewHeight ) { hl2.m_pEngine->GetScreenSize( sScreenSize.m_iWidth, sScreenSize.m_iHeight ); }}//------------------------------//DrawLayer.h//------------------------------#ifndef __PANELS_H__#define __PANELS_H__#include "sdk.h"typedef struct { int m_iWidth; int m_iHeight;} ScreenSize_t; // used to store the screen resolutionclass CDrawPanel : public vgui::Panel{ typedef vgui::Panel BaseClass; public: CDrawPanel( vgui::VPANEL parent ); virtual void Paint();};class CDrawLayer{ private: CDrawPanel* pDrawPanel; public: CDrawLayer ( void ); ~CDrawLayer ( void ); void Create ( vgui::VPANEL parent ); void Destroy( void );};extern ScreenSize_t sScreenSize;// struct to store the screen-size#endif