Skip to content

Commit 5dab95f

Browse files
committed
Core/Movement: Fixed spline packed delta limit check
1 parent fe3f147 commit 5dab95f

File tree

1 file changed

+3
-7
lines changed

1 file changed

+3
-7
lines changed

src/server/game/Movement/Spline/MoveSpline.cpp

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -269,22 +269,18 @@ bool MoveSplineInitArgs::Validate(Unit const* unit)
269269
// check path lengths - why are we even starting such short movement?
270270
bool MoveSplineInitArgs::_checkPathLengths()
271271
{
272-
constexpr float MIN_XY_OFFSET = -(1 << 11) / 4.0f;
273-
constexpr float MIN_Z_OFFSET = -(1 << 10) / 4.0f;
274-
275-
// positive values have 1 less bit limit (if the highest bit was set, value would be sign extended into negative when decompressing)
276272
constexpr float MAX_XY_OFFSET = (1 << 10) / 4.0f;
277273
constexpr float MAX_Z_OFFSET = (1 << 9) / 4.0f;
278274

279-
auto isValidPackedXYOffset = [](float coord) -> bool { return coord > MIN_XY_OFFSET && coord < MAX_XY_OFFSET; };
280-
auto isValidPackedZOffset = [](float coord) -> bool { return coord > MIN_Z_OFFSET && coord < MAX_Z_OFFSET; };
275+
auto isValidPackedXYOffset = [](float coord) -> bool { return coord > -MAX_XY_OFFSET && coord < MAX_XY_OFFSET; };
276+
auto isValidPackedZOffset = [](float coord) -> bool { return coord > -MAX_Z_OFFSET && coord < MAX_Z_OFFSET; };
281277

282278
if (path.size() > 2)
283279
{
284280
Vector3 middle = (path.front() + path.back()) / 2;
285281
for (uint32 i = 1; i < path.size() - 1; ++i)
286282
{
287-
if ((path[i + 1] - path[i]).length() < 0.1f)
283+
if ((path[i + 1] - path[i]).squaredLength() < 0.01f)
288284
return false;
289285

290286
// when compression is enabled, each point coord is packed into 11 bits (10 for Z)

0 commit comments

Comments
 (0)