diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-10-12 00:24:22 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-10-12 00:24:22 +0200 |
commit | 069449c5018f72287c20d5962ae64a42602d5d7e (patch) | |
tree | 3b8094d2345d72e61f62b95cdacb1c0b3070a091 | |
parent | 5344a408c4f26e8e2f81d23cb5c99fbc2ffe08cd (diff) |
Core/Entities: Fixed relative position calculation formula in Position::GetPositionOffsetTo
-rw-r--r-- | src/server/game/Entities/Object/Position.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/server/game/Entities/Object/Position.cpp b/src/server/game/Entities/Object/Position.cpp index 1ad21820e09..c3a4d0f57c9 100644 --- a/src/server/game/Entities/Object/Position.cpp +++ b/src/server/game/Entities/Object/Position.cpp @@ -49,8 +49,8 @@ void Position::GetPositionOffsetTo(Position const& endPos, Position& retOffset) float dx = endPos.GetPositionX() - GetPositionX(); float dy = endPos.GetPositionY() - GetPositionY(); - retOffset.m_positionX = dx * std::cos(GetOrientation()) + dy * std::sin(GetOrientation()); - retOffset.m_positionY = dy * std::cos(GetOrientation()) - dx * std::sin(GetOrientation()); + retOffset.m_positionX = (dx + dy * std::tan(GetOrientation())) / (std::cos(GetOrientation()) + std::sin(GetOrientation()) * std::tan(GetOrientation())); + retOffset.m_positionY = (dy - dx * std::tan(GetOrientation())) / (std::cos(GetOrientation()) + std::sin(GetOrientation()) * std::tan(GetOrientation())); retOffset.m_positionZ = endPos.GetPositionZ() - GetPositionZ(); retOffset.SetOrientation(endPos.GetOrientation() - GetOrientation()); } |