Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.97 KB | None | 0 0
  1. void CalcScreenCoords(D3DXVECTOR3 *vecWorld, D3DXVECTOR3 *vecScreen)
  2. {
  3.     /** C++-ifyed function 0x71DA00, formerly called by CHudSA::CalcScreenCoors **/
  4.     // Get the static view matrix as D3DXMATRIX
  5.     D3DXMATRIX  m((float *)(0xB6FA2C));
  6.  
  7.     // Get the static virtual screen (x,y)-sizes
  8.     DWORD       *dwLenX = (DWORD *)(0xC17044);
  9.     DWORD       *dwLenY = (DWORD *)(0xC17048);
  10.  
  11.     //DWORD *dwLenZ = (DWORD*)(0xC1704C);
  12.     //double aspectRatio = (*dwLenX) / (*dwLenY);
  13.     // Do a transformation
  14.     vecScreen->x = (vecWorld->z * m._31) + (vecWorld->y * m._21) + (vecWorld->x * m._11) + m._41;
  15.     vecScreen->y = (vecWorld->z * m._32) + (vecWorld->y * m._22) + (vecWorld->x * m._12) + m._42;
  16.     vecScreen->z = (vecWorld->z * m._33) + (vecWorld->y * m._23) + (vecWorld->x * m._13) + m._43;
  17.  
  18.     // Get the correct screen coordinates
  19.     double  fRecip = (double)1.0 / vecScreen->z;    //(vecScreen->z - (*dwLenZ));
  20.     vecScreen->x *= abs((float)(fRecip * (*dwLenX)));
  21.     vecScreen->y *= abs((float)(fRecip * (*dwLenY)));
  22. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement