diff options
author | maximius <none@none> | 2009-10-27 22:58:35 -0700 |
---|---|---|
committer | maximius <none@none> | 2009-10-27 22:58:35 -0700 |
commit | b243cf3228ddbbd15fe2bb8f5434bd45ce7c303e (patch) | |
tree | 931be496e21df4098f3e2fd296db9d4fe197a12c /src/game/ConfusedMovementGenerator.cpp | |
parent | d2fe03dda7e12c11048a58163b934e860f2c6e46 (diff) |
*Hallow's End Innkeeper, by WarHead
*Some Confused Movement Generator fixes, thanks Proofzor
--HG--
branch : trunk
Diffstat (limited to 'src/game/ConfusedMovementGenerator.cpp')
-rw-r--r-- | src/game/ConfusedMovementGenerator.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/game/ConfusedMovementGenerator.cpp b/src/game/ConfusedMovementGenerator.cpp index 24308dd6c36..9d07d0986ef 100644 --- a/src/game/ConfusedMovementGenerator.cpp +++ b/src/game/ConfusedMovementGenerator.cpp @@ -34,7 +34,7 @@ template<class T> void ConfusedMovementGenerator<T>::Initialize(T &unit) { - const float wander_distance=11; + const float wander_distance = 11; float x,y,z; x = unit.GetPositionX(); y = unit.GetPositionY(); @@ -49,21 +49,22 @@ ConfusedMovementGenerator<T>::Initialize(T &unit) VMAP::IVMapManager *vMaps = VMAP::VMapFactory::createOrGetVMapManager(); - for (unsigned int idx=0; idx < MAX_CONF_WAYPOINTS+1; ++idx) + for (uint8 idx = 0; idx <= MAX_CONF_WAYPOINTS; ++idx) { - const float wanderX=wander_distance*rand_norm() - wander_distance/2; - const float wanderY=wander_distance*rand_norm() - wander_distance/2; - const bool isInLoS = vMaps->isInLineOfSight(unit.GetMapId(), x, y, z + 2.0f, i_waypoints[idx][0], i_waypoints[idx][1], z + 2.0f); - if (!isInLoS) + if (isInLoS) + { + const float wanderX = wander_distance*rand_norm() - wander_distance/2; + const float wanderY = wander_distance*rand_norm() - wander_distance/2; + i_waypoints[idx][0] = x + wanderX; + i_waypoints[idx][1] = y + wanderY; + } + else { i_waypoints[idx][0] = x; i_waypoints[idx][1] = y; } - i_waypoints[idx][0] = x + wanderX; - i_waypoints[idx][1] = y + wanderY; - // prevent invalid coordinates generation Trinity::NormalizeMapCoord(i_waypoints[idx][0]); Trinity::NormalizeMapCoord(i_waypoints[idx][1]); @@ -77,7 +78,7 @@ ConfusedMovementGenerator<T>::Initialize(T &unit) } unit.UpdateGroundPositionZ(i_waypoints[idx][0],i_waypoints[idx][1],z); - i_waypoints[idx][2] = z; + i_waypoints[idx][2] = z; } unit.SetUInt64Value(UNIT_FIELD_TARGET, 0); |