diff options
author | Nikolay Korolev <nickvnuk@gmail.com> | 2021-08-26 21:50:19 +0300 |
---|---|---|
committer | Nikolay Korolev <nickvnuk@gmail.com> | 2021-08-26 21:56:31 +0300 |
commit | 7a80acf6a16cae5aa3303090097a43406746e04d (patch) | |
tree | cc381a9a9fae7b8cc67bf55a6053deb20592de0d /src | |
parent | b2daa0e502a04267d0b07b254e4f65867b78e526 (diff) |
fix debug teleport
Diffstat (limited to 'src')
-rw-r--r-- | src/core/re3.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/core/re3.cpp b/src/core/re3.cpp index 672cca98..b9cfc34d 100644 --- a/src/core/re3.cpp +++ b/src/core/re3.cpp @@ -47,6 +47,7 @@ #include "CarCtrl.h" #include "Population.h" #include "IniFile.h" +#include "Zones.h" #include "crossplatform.h" @@ -775,14 +776,14 @@ FixCar(void) static void TeleportToWaypoint(void) { - CStreaming::LoadScene(CRadar::TargetMarkerPos); - CStreaming::LoadSceneCollision(CRadar::TargetMarkerPos); - if (FindPlayerVehicle()) { - if (CRadar::TargetMarkerId != -1) - FindPlayerVehicle()->Teleport(CRadar::TargetMarkerPos + CVector(0.0f, 0.0f, CWorld::FindGroundZForCoord(CRadar::TargetMarkerPos.x, CRadar::TargetMarkerPos.y) + FindPlayerVehicle()->GetColModel()->boundingSphere.radius)); - } else - if(CRadar::TargetMarkerId != -1) - FindPlayerPed()->Teleport(CRadar::TargetMarkerPos + CVector(0.0f, 0.0f, CWorld::FindGroundZForCoord(CRadar::TargetMarkerPos.x, CRadar::TargetMarkerPos.y) + FEET_OFFSET)); + if (CRadar::TargetMarkerId == -1) + return; + CEntity* pEntityToTeleport = FindPlayerEntity(); + CVector vNewPos = CRadar::TargetMarkerPos; + CStreaming::LoadScene(vNewPos); + CStreaming::LoadSceneCollision(vNewPos); + vNewPos.z = CWorld::FindGroundZForCoord(vNewPos.x, vNewPos.y) + pEntityToTeleport->GetDistanceFromCentreOfMassToBaseOfModel(); + pEntityToTeleport->Teleport(vNewPos); } #endif |