Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool WorldToScreen(const Vector3& vOrigin, Vector3& vOut) {
- DWORD_PTR dwGraphics = (DWORD_PTR)this;
- DWORD_PTR dwCamera = *(DWORD_PTR*)(dwGraphics + 0x48);
- DWORD_PTR dwCameraMatrix = *(DWORD_PTR*)(dwCamera + 0x20);
- dwCameraMatrix += 0x10;
- D3DXMATRIX d3dmatrix = *(D3DXMATRIX*)(dwCameraMatrix + 0x1A0);
- D3DXMatrixTranspose(&d3dmatrix, &d3dmatrix);
- Matrix4x4 matrix = *(Matrix4x4*)&d3dmatrix;
- matrix._21 *= -1;
- matrix._22 *= -1;
- matrix._23 *= -1;
- matrix._24 *= -1;
- float w = matrix.GetAxis(3).Dot(vOrigin) + matrix.m[3][3];
- if (w < 0.098) {
- return false;
- }
- float x = matrix.GetAxis(0).Dot(vOrigin) + matrix.m[0][3];
- float y = matrix.GetAxis(1).Dot(vOrigin) + matrix.m[1][3];
- vOut.x = (m_nScreenWidth / 2) * (1.0 + x / w);
- vOut.y = (m_nScreenHeight / 2) * (1.0 - y / w);
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment