Skip to content

Commit 9c34b3f

Browse files
committed
tweak jumping collision a bit
1 parent df72ff3 commit 9c34b3f

File tree

1 file changed

+27
-4
lines changed

1 file changed

+27
-4
lines changed

playerbot/strategy/actions/MovementActions.cpp

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2779,10 +2779,32 @@ WorldPosition JumpAction::CalculateJumpParameters(const WorldPosition& src, Unit
27792779

27802780
if (!foundCollision)
27812781
{
2782-
fx -= jumper->GetCollisionWidth() * vcos;
2783-
fy -= jumper->GetCollisionWidth() * vsin;
2782+
fx += jumper->GetCollisionWidth() * vcos;
2783+
fy += jumper->GetCollisionWidth() * vsin;
2784+
}
2785+
2786+
if (!foundCollision)
2787+
{
2788+
// check distanct collision
27842789
if (ascending)
2785-
fz -= jumper->GetCollisionHeight();
2790+
fz += jumper->GetCollisionHeight();
2791+
2792+
fx += jumper->GetCollisionWidth() * vcos;
2793+
fy += jumper->GetCollisionWidth() * vsin;
2794+
2795+
#ifdef MANGOSBOT_TWO
2796+
foundCollision = jumper->GetMap()->GetHitPosition(ox, oy, oz, fx, fy, fz, jumper->GetPhaseMask(), -0.5f);
2797+
#else
2798+
foundCollision = jumper->GetMap()->GetHitPosition(ox, oy, oz, fx, fy, fz, -0.5f);
2799+
#endif
2800+
2801+
if (!foundCollision)
2802+
{
2803+
fx -= jumper->GetCollisionWidth() * vcos;
2804+
fy -= jumper->GetCollisionWidth() * vsin;
2805+
if (ascending)
2806+
fz -= jumper->GetCollisionHeight();
2807+
}
27862808
}
27872809

27882810
path.push_back(WorldPosition(src.getMapId(), fx, fy, fz));
@@ -2816,7 +2838,8 @@ WorldPosition JumpAction::CalculateJumpParameters(const WorldPosition& src, Unit
28162838
{
28172839
goodLanding = false;
28182840
// reduce landing height by collision height
2819-
fz = fz - CONTACT_DISTANCE - jumper->GetCollisionHeight();
2841+
float fz_mod = fz - CONTACT_DISTANCE - jumper->GetCollisionHeight();
2842+
jumper->GetMap()->GetHitPosition(fx, fy, fz, fx, fy, fz_mod, -0.5f);
28202843
}
28212844

28222845
WorldPosition destination = WorldPosition(src.getMapId(), fx, fy ,fz);

0 commit comments

Comments
 (0)