diff options
| author | z0ldrax <compteh@ub.ro> | 2014-12-01 13:07:00 +0100 |
|---|---|---|
| committer | jackpoz <giacomopoz@gmail.com> | 2015-01-17 18:48:54 +0100 |
| commit | 17039cd92255d85edff14171397a326c6eeffd06 (patch) | |
| tree | 5121d0bdd0a54911205d52de156bebe8ce8447d4 | |
| parent | e07054ff2df4cb10e5174a77ab23e9c96a5e1940 (diff) | |
Merge pull request https://github.com/TrinityCore/TrinityCore/pull/13650
RandomMovementGenerator - no need for extra complexity in computing height
(cherry picked from commit 1b9aca10c798c1665e89f339629b73f841c72535)
| -rw-r--r-- | src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp | 6 |
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 2ea19a02824..0341af299be 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. |
