aboutsummaryrefslogtreecommitdiff
path: root/src/game/ConfusedMovementGenerator.cpp
diff options
context:
space:
mode:
authormaximius <none@none>2009-10-27 22:58:35 -0700
committermaximius <none@none>2009-10-27 22:58:35 -0700
commitb243cf3228ddbbd15fe2bb8f5434bd45ce7c303e (patch)
tree931be496e21df4098f3e2fd296db9d4fe197a12c /src/game/ConfusedMovementGenerator.cpp
parentd2fe03dda7e12c11048a58163b934e860f2c6e46 (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.cpp21
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);