SHARE
TWEET

Untitled

a guest Aug 21st, 2019 69 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     bool ScreenTransformD3D(const Vector& vOrigin, Vector& vOut)
  2.         {
  3.             bool behind = true;;
  4.             float width;
  5.  
  6.             //const D3DXMATRIX& WorldToScreen = *(D3DXMATRIX*)(*(PDWORD)(pOffset->dwMatrixOffset)+988);
  7.  
  8.         //  DWORD MM = (DWORD)&pEngine->WorldToScreenMatrix();
  9.         //  pOffset->dwMatrixOffset = (MM + 0x40);
  10.  
  11.             D3DXMATRIX * pWorldToScreen = nullptr;// *(D3DXMATRIX*)(*(PDWORD)(pOffset->dwMatrixOffset) + 988);
  12.  
  13.  
  14.             static float* ViewMatrixOld = nullptr;
  15.         //  float* ViewMatrix = nullptr;
  16.  
  17.             if (!ViewMatrixOld)
  18.             {
  19.                 ViewMatrixOld = GetW2SEngine();
  20.             }
  21.             else
  22.             {
  23.                 pWorldToScreen = (D3DXMATRIX*)(*(PDWORD)(ViewMatrixOld)+0x3DC);
  24.                 if ((DWORD)pWorldToScreen <= (DWORD) GetModuleHandle(0))
  25.                 {
  26.                     pWorldToScreen = nullptr;
  27.                     ViewMatrixOld = GetW2SEngine();
  28.                     ConColorMsg(Color::Red(), "[WARNING] D3D Matrix failed! %X\n", pWorldToScreen);
  29.                 }
  30.             //  else
  31.             //      Utils::DebugMSG("%x", &*pWorldToScreen);
  32.             }
  33.  
  34.             if (pWorldToScreen && *pWorldToScreen)
  35.             {
  36.                 D3DXMATRIX W2S = *pWorldToScreen;
  37.  
  38.                 vOut.X = W2S._11 * vOrigin.X + W2S._12 * vOrigin.Y + W2S._13 * vOrigin.Z + W2S._14;
  39.                 vOut.Y = W2S._21 * vOrigin.X + W2S._22 * vOrigin.Y + W2S._23 * vOrigin.Z + W2S._24;
  40.  
  41.                 width = W2S._41 * vOrigin.X + W2S._42 * vOrigin.Y + W2S._43 * vOrigin.Z + W2S._44;
  42.  
  43.                 vOut.Z = 0;
  44.  
  45.                 if (width < 0.001f)
  46.                 {
  47.                     behind = true;
  48.  
  49.                     vOut.X *= 100000;
  50.                     vOut.Y *= 100000;
  51.                 }
  52.                 else
  53.                 {
  54.                     behind = false;
  55.  
  56.                     float invWidth = 1.0 / width;
  57.  
  58.                     vOut.X *= invWidth;
  59.                     vOut.Y *= invWidth;
  60.                 }
  61.  
  62.             }
  63.  
  64.             return behind;
  65.         }
  66.  
  67.         bool ScreenTransform(const Vector& point, Vector& screen)
  68.         {
  69.         //  if (nTransformType == RENDERTYPES::ENGINE)
  70.         //return ScreenTransformEngine(point, screen);
  71.  
  72.         //  if (nTransformType == RENDERTYPES::D3D)
  73.                 return ScreenTransformD3D(point, screen);
  74.  
  75.             return false;
  76.         }
  77.  
  78.         bool WorldToScreen(CONST Vector &origin, OUT Vector &screen)
  79.         {
  80.             //return !pDebugOverlay->ScreenPosition(origin, screen);
  81.  
  82.             BOOL bRet = FALSE;
  83.  
  84.             if (!ScreenTransform(origin, screen))
  85.             {
  86.                 INT width, height;
  87.                 pEngine->GetScreenSize(width, height);
  88.  
  89.                 fScreenX = width / 2;
  90.                 fScreenY = height / 2;
  91.  
  92.                 fScreenX += 0.5f * screen.X * width + 0.5f;
  93.                 fScreenY -= 0.5f * screen.Y * height + 0.5f;
  94.  
  95.                 screen.X = fScreenX;
  96.                 screen.Y = fScreenY;
  97.  
  98.                 bRet = TRUE;
  99.             }
  100.  
  101.             return bRet;
  102.         }
  103.        
  104.        
  105.        
  106.         for (int i = 0; i <= pEntityList()->GetHigestEntityIndex(); i++)
  107.         {
  108.             CBaseEntity* pEntity = (CBaseEntity*)pEntityList()->GetClientEntity(i);
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top