From fa0b2fb065a65d7830e992e7181144f0fc11ea47 Mon Sep 17 00:00:00 2001 From: RD42 <42702181+dashr9230@users.noreply.github.com> Date: Wed, 7 Aug 2024 19:02:25 +0800 Subject: [PATCH] [saco] Implement/match `CEntity::GetDistanceFromCamera()` --- saco/game/entity.cpp | 17 +++++++++++++++++ saco/game/entity.h | 1 + 2 files changed, 18 insertions(+) diff --git a/saco/game/entity.cpp b/saco/game/entity.cpp index 838075c..43bf40d 100644 --- a/saco/game/entity.cpp +++ b/saco/game/entity.cpp @@ -263,6 +263,23 @@ float CEntity::GetDistanceFromLocalPlayerPed() //----------------------------------------------------------- +float CEntity::GetDistanceFromCamera() +{ + if(!m_pEntity || m_pEntity->vtable == 0x863C40) return 100000.0f; + + MATRIX4X4 matThis; + float fSX,fSY,fSZ; + + GetMatrix(&matThis); + fSX = (matThis.pos.X - *(float*)0xB6F9CC) * (matThis.pos.X - *(float*)0xB6F9CC); + fSY = (matThis.pos.Y - *(float*)0xB6F9D0) * (matThis.pos.Y - *(float*)0xB6F9D0); + fSZ = (matThis.pos.Z - *(float*)0xB6F9D4) * (matThis.pos.Z - *(float*)0xB6F9D4); + + return (float)sqrt(fSX + fSY + fSZ); +} + +//----------------------------------------------------------- + float CEntity::GetDistanceFromPoint(float X, float Y, float Z) { MATRIX4X4 matThis; diff --git a/saco/game/entity.h b/saco/game/entity.h index d32683a..ed0af9e 100644 --- a/saco/game/entity.h +++ b/saco/game/entity.h @@ -26,6 +26,7 @@ public: UINT GetModelIndex(); void TeleportTo(float x, float y, float z); float GetDistanceFromLocalPlayerPed(); + float GetDistanceFromCamera(); float GetDistanceFromPoint(float X, float Y, float Z); BOOL IsStationary();