Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include "Sprite_.h"
- #include "..\..\NewNetvar.h"
- static BYTE* SetupCurrentView = 0;
- static Vector* g_vecCurrentRenderOrigin = 0;
- static Vector* g_vecCurrentVUp = 0;
- static Vector* g_vecCurrentVRight = 0;
- static Vector* g_vecCurrentVForward = 0;
- typedef bool (__cdecl* ScreenTransformFn)(Vector& world, Vector& screen);
- ScreenTransformFn ScreenTransform;
- static bool bOnceSprite = false;
- void Sprite_Init()
- {
- if (!SetupCurrentView)
- SetupCurrentView = (BYTE*)toolkit::FindPattern_("client.dll", (PBYTE)"\x8B\x44\x24\x04\xD9\x00\x8B\x4C\x24\x08\xD9\x1D", "xxxxxxxxxxxx");
- if (!SetupCurrentView)
- DebugBreak();
- g_vecCurrentRenderOrigin = *(Vector**)(SetupCurrentView + 0x0C);
- g_vecCurrentVUp = *(Vector**)(SetupCurrentView + 0x24);
- g_vecCurrentVRight = *(Vector**)(SetupCurrentView + 0x2F);
- g_vecCurrentVForward = *(Vector**)(SetupCurrentView + 0x36);
- ScreenTransform = (ScreenTransformFn)toolkit::FindPattern_("client.dll", (PBYTE)"\x8B\x0D\x00\x00\x00\x00\x8B\x01\x8B\x90\x90\x00\x00\x00\xFF\xD2\xD9\x40\x08\x8B\x4C\x24\x04", "xx????xxxxxxxxxxxxxxxxx");
- }
- const Vector &CurrentViewOrigin()
- {
- return *g_vecCurrentRenderOrigin;
- }
- const Vector &CurrentViewForward()
- {
- return *g_vecCurrentVForward;
- }
- const Vector &CurrentViewRight()
- {
- return *g_vecCurrentVRight;
- }
- const Vector &CurrentViewUp()
- {
- return *g_vecCurrentVUp;
- }
- void DrawHalo(IMaterial* pMaterial, Vector& source, float scale, float const* color, float flHDRColorScale )
- {
- if (!bOnceSprite)
- {
- Sprite_Init();
- bOnceSprite = true;
- }
- static unsigned int nHDRColorScaleCache = 0;
- Vector screen;
- Vector point;
- CMeshBuilder meshBuilder;
- CMatRenderContextPtr pRenderContext( materials );
- pRenderContext->Bind(pMaterial);
- IMesh* pMesh = pRenderContext->GetDynamicMesh( );
- meshBuilder.Begin( pMesh, MATERIAL_QUADS, 1 );
- // Transform source into screen space
- ScreenTransform( source, screen );
- meshBuilder.Color3fv (color);
- meshBuilder.TexCoord2f (0, 0, 1);
- VectorMA (source, -scale, CurrentViewUp(), point);
- VectorMA (point, -scale, CurrentViewRight(), point);
- meshBuilder.Position3fv (point.Base());
- meshBuilder.AdvanceVertex();
- meshBuilder.Color3fv (color);
- meshBuilder.TexCoord2f (0, 0, 0);
- VectorMA (source, scale, CurrentViewUp(), point);
- VectorMA (point, -scale, CurrentViewRight(), point);
- meshBuilder.Position3fv (point.Base());
- meshBuilder.AdvanceVertex();
- meshBuilder.Color3fv (color);
- meshBuilder.TexCoord2f (0, 1, 0);
- VectorMA (source, scale, CurrentViewUp(), point);
- VectorMA (point, scale, CurrentViewRight(), point);
- meshBuilder.Position3fv (point.Base());
- meshBuilder.AdvanceVertex();
- meshBuilder.Color3fv (color);
- meshBuilder.TexCoord2f (0, 1, 1);
- VectorMA (source, -scale, CurrentViewUp(), point);
- VectorMA (point, scale, CurrentViewRight(), point);
- meshBuilder.Position3fv (point.Base());
- meshBuilder.AdvanceVertex();
- meshBuilder.End();
- pMesh->Draw();
- }
Add Comment
Please, Sign In to add comment