aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorz0ldrax <compteh@ub.ro>2014-12-01 13:07:00 +0100
committerjackpoz <giacomopoz@gmail.com>2014-12-18 20:54:16 +0100
commit1b9aca10c798c1665e89f339629b73f841c72535 (patch)
treeda007fec5b368c1fb7f7f4684aab6334e87d0dcb
parentcbb1f7c6192c82179cfe438e368ce9ac19cd63fa (diff)
Merge pull request https://github.com/TrinityCore/TrinityCore/pull/13650
RandomMovementGenerator - no need for extra complexity in computing height
-rw-r--r--src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp
index 2e859a7a56f..33d93ee1384 100644
--- a/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp
@@ -56,12 +56,12 @@ void RandomMovementGenerator<Creature>::_setRandomLocation(Creature* creature)
Trinity::NormalizeMapCoord(destX);
Trinity::NormalizeMapCoord(destY);
- travelDistZ = distanceX*distanceX + distanceY*distanceY;
+ travelDistZ = range; // sin^2+cos^2=1, so travelDistZ=range^2; no need for sqrt below
if (is_air_ok) // 3D system above ground and above water (flying mode)
{
// Limit height change
- const float distanceZ = float(rand_norm()) * std::sqrt(travelDistZ)/2.0f;
+ const float distanceZ = float(rand_norm()) * travelDistZ/2.0f;
destZ = respZ + distanceZ;
float levelZ = map->GetWaterOrGroundLevel(destX, destY, destZ-2.0f);
@@ -73,7 +73,7 @@ void RandomMovementGenerator<Creature>::_setRandomLocation(Creature* creature)
else // 2D only
{
// 10.0 is the max that vmap high can check (MAX_CAN_FALL_DISTANCE)
- travelDistZ = travelDistZ >= 100.0f ? 10.0f : std::sqrt(travelDistZ);
+ travelDistZ = travelDistZ >= 10.0f ? 10.0f : travelDistZ;
// The fastest way to get an accurate result 90% of the time.
// Better result can be obtained like 99% accuracy with a ray light, but the cost is too high and the code is too long.