Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void __fastcall Hooked_PaintTraverse( void* thisptr, int edx, vgui::VPANEL vguiPanel, bool forceRepaint, bool allowForce )
- {
- toolkit::vmtmanager::GetOrCreateHook(thisptr)->GetMethod<::PaintTraverseFn>(OFFSET_PaintTraverse)(thisptr, vguiPanel, forceRepaint, allowForce);
- const char* pszPanelName = g_pVGuiPanel->GetName(vguiPanel);
- if(pszPanelName[0] == 'M'
- && pszPanelName[3] == 'S'
- && pszPanelName[9] == 'T'
- && pszPanelName[12] == 'P')
- {
- if (!Entity::Me() || !Entity::Me()->IsPlayer() || !*reinterpret_cast<GenDT_TFPlayer*>(Entity::Me())->iHealth() > 1
- || !ms_spyesp.GetInt())
- {
- return;
- }
- CViewSetup vs;
- (*toolkit::make_ptr<void (__thiscall**)(void*, CViewSetup&)>(*(PDWORD*)clientdll, 0xf8))(clientdll, vs);
- Frustum fp;
- render->Push3DView( vs, 0, NULL, fp, NULL );
- color32 tint;
- tint.r = 255;
- tint.g = 255;
- tint.b = 255;
- tint.a = 255;
- CMatRenderContextPtr pRenderContext( materials );
- pRenderContext->Bind(materials->FindMaterial("__colors\\spylogoVTF",NULL,0,0));
- C_BasePlayer* pPlayer = NULL;
- for (int i = 0; i < engine->GetMaxClients(); i++)
- {
- Vector orig;
- if (!Entity::CheckPlayer(i, false))
- continue;
- pPlayer = dynamic_cast<C_BasePlayer*>(Entity::GetBaseEntity(i));
- if (pPlayer && (*reinterpret_cast<GenDT_TFPlayer*>(pPlayer)->PlayerClass()->iClass() == TFClass_Spy))
- {
- orig = Entity::GetEyePos(pPlayer);
- orig.z += 15;
- DrawSprite(orig, 60, 30, tint);
- }
- }
- render->PopView(fp);
- }
- return;
- }
Add Comment
Please, Sign In to add comment