hlsdk

DrawSprite usage

Nov 3rd, 2010
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. void __fastcall Hooked_PaintTraverse( void* thisptr, int edx, vgui::VPANEL vguiPanel, bool forceRepaint, bool allowForce )
  2. {
  3.     toolkit::vmtmanager::GetOrCreateHook(thisptr)->GetMethod<::PaintTraverseFn>(OFFSET_PaintTraverse)(thisptr, vguiPanel, forceRepaint, allowForce);
  4.  
  5.     const char* pszPanelName = g_pVGuiPanel->GetName(vguiPanel);
  6.     if(pszPanelName[0] == 'M'
  7.         && pszPanelName[3] == 'S'
  8.         && pszPanelName[9] == 'T'
  9.         && pszPanelName[12] == 'P')
  10.     {
  11.         if (!Entity::Me() || !Entity::Me()->IsPlayer() || !*reinterpret_cast<GenDT_TFPlayer*>(Entity::Me())->iHealth() > 1
  12.             || !ms_spyesp.GetInt())
  13.         {
  14.             return;
  15.         }
  16.  
  17.         CViewSetup vs;
  18.         (*toolkit::make_ptr<void (__thiscall**)(void*, CViewSetup&)>(*(PDWORD*)clientdll, 0xf8))(clientdll, vs);
  19.         Frustum fp;
  20.         render->Push3DView( vs, 0, NULL, fp, NULL );
  21.  
  22.         color32 tint;
  23.         tint.r = 255;
  24.         tint.g = 255;
  25.         tint.b = 255;
  26.         tint.a = 255;
  27.  
  28.         CMatRenderContextPtr pRenderContext( materials );
  29.         pRenderContext->Bind(materials->FindMaterial("__colors\\spylogoVTF",NULL,0,0));
  30.  
  31.         C_BasePlayer* pPlayer = NULL;
  32.         for (int i = 0; i < engine->GetMaxClients(); i++)
  33.         {
  34.             Vector orig;
  35.             if (!Entity::CheckPlayer(i, false))
  36.                 continue;
  37.  
  38.             pPlayer = dynamic_cast<C_BasePlayer*>(Entity::GetBaseEntity(i));
  39.             if (pPlayer && (*reinterpret_cast<GenDT_TFPlayer*>(pPlayer)->PlayerClass()->iClass() == TFClass_Spy))
  40.             {
  41.                 orig = Entity::GetEyePos(pPlayer);
  42.                 orig.z += 15;
  43.  
  44.                 DrawSprite(orig, 60, 30, tint);
  45.             }
  46.         }
  47.  
  48.         render->PopView(fp);
  49.     }
  50.     return;
  51. }
Add Comment
Please, Sign In to add comment