aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorModoX <moardox@gmail.com>2024-09-21 05:33:30 +0200
committerModoX <moardox@gmail.com>2024-09-21 05:34:10 +0200
commit35b8868763cc46a16511b11a5c735dc534e887dc (patch)
treec627fc6dd8e66101e6ffb122586ee68d46748c98
parent26cebef0fe13027c316f47b7e82ad0f49f84268a (diff)
Core/Object: Added max height change param to MovePosition
-rw-r--r--src/server/game/Entities/Object/Object.cpp4
-rw-r--r--src/server/game/Entities/Object/Object.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 7feb6610bd4..069db552f3f 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -3490,7 +3490,7 @@ void WorldObject::GetContactPoint(WorldObject const* obj, float& x, float& y, fl
GetNearPoint(obj, x, y, z, distance2d, GetAbsoluteAngle(obj));
}
-void WorldObject::MovePosition(Position &pos, float dist, float angle) const
+void WorldObject::MovePosition(Position &pos, float dist, float angle, float maxHeightChange /*= 6.0f*/) const
{
angle += GetOrientation();
float destx, desty, destz, ground, floor;
@@ -3514,7 +3514,7 @@ void WorldObject::MovePosition(Position &pos, float dist, float angle) const
for (uint8 j = 0; j < 10; ++j)
{
// do not allow too big z changes
- if (std::fabs(pos.m_positionZ - destz) > 6)
+ if (std::fabs(pos.m_positionZ - destz) > maxHeightChange)
{
destx -= step * std::cos(angle);
desty -= step * std::sin(angle);
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index e5a205919ed..f8becf42063 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -505,7 +505,7 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation
void GetNearPoint2D(WorldObject const* searcher, float& x, float& y, float distance, float absAngle) const;
void GetNearPoint(WorldObject const* searcher, float& x, float& y, float& z, float distance2d, float absAngle) const;
void GetClosePoint(float& x, float& y, float& z, float size, float distance2d = 0, float relAngle = 0) const;
- void MovePosition(Position &pos, float dist, float angle) const;
+ void MovePosition(Position &pos, float dist, float angle, float maxHeightChange = 6.0f) const;
Position GetNearPosition(float dist, float angle);
void MovePositionToFirstCollision(Position &pos, float dist, float angle) const;
Position GetFirstCollisionPosition(float dist, float angle);