Merge pull request #86 from H0zen/develop21
Validate the spawn distance passed to RandomMovementGenerator ctor
This commit is contained in:
commit
435d78e1aa
@ -30,6 +30,17 @@
|
|||||||
#include "movement/MoveSplineInit.h"
|
#include "movement/MoveSplineInit.h"
|
||||||
#include "movement/MoveSpline.h"
|
#include "movement/MoveSpline.h"
|
||||||
|
|
||||||
|
template<>
|
||||||
|
RandomMovementGenerator<Creature>::RandomMovementGenerator(float x, float y, float z, float radius, float verticalZ) :
|
||||||
|
i_nextMoveTime(0), i_x(x), i_y(y), i_z(z), i_radius(radius), i_verticalZ(verticalZ)
|
||||||
|
{
|
||||||
|
if (radius < 0.1f)
|
||||||
|
{
|
||||||
|
DEBUG_FILTER_LOG(LOG_FILTER_AI_AND_MOVEGENSS, "RandomMovementGenerator<Creature> constructor: wrong value for spawn distance. Set to 0.1f");
|
||||||
|
i_radius = 0.1f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
RandomMovementGenerator<Creature>::RandomMovementGenerator(const Creature& creature)
|
RandomMovementGenerator<Creature>::RandomMovementGenerator(const Creature& creature)
|
||||||
{
|
{
|
||||||
|
@ -36,8 +36,7 @@ class RandomMovementGenerator
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit RandomMovementGenerator(const Creature&);
|
explicit RandomMovementGenerator(const Creature&);
|
||||||
explicit RandomMovementGenerator(float x, float y, float z, float radius, float verticalZ = 0.0f) :
|
explicit RandomMovementGenerator(float x, float y, float z, float radius, float verticalZ = 0.0f);
|
||||||
i_nextMoveTime(0), i_x(x), i_y(y), i_z(z), i_radius(radius), i_verticalZ(verticalZ) {}
|
|
||||||
|
|
||||||
void _setRandomLocation(T&);
|
void _setRandomLocation(T&);
|
||||||
void Initialize(T&);
|
void Initialize(T&);
|
||||||
|
@ -2280,21 +2280,19 @@ bool Map::GetReachableRandomPosition(Unit* unit, float& x, float& y, float& z, f
|
|||||||
isSwimming = static_cast<Creature*>(unit)->IsSwimming();
|
isSwimming = static_cast<Creature*>(unit)->IsSwimming();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
sLog.outError("Map::GetReachableRandomPosition> Unsupported unit type is passed!");
|
sLog.outError("Map::GetReachableRandomPosition> Unsupported unit (%s) is passed!", unit->GetGuidStr().c_str());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (radius < 0.1f)
|
if (radius < 0.1f)
|
||||||
{
|
{
|
||||||
sLog.outError("Map::GetReachableRandomPosition> Unsupported unit type is passed!");
|
sLog.outError("Map::GetReachableRandomPosition> Invalid radius (%f) for %s", radius, unit->GetGuidStr().c_str());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isFlying)
|
if (isFlying)
|
||||||
{
|
{
|
||||||
newDestAssigned = GetRandomPointInTheAir(i_x, i_y, i_z, radius);
|
newDestAssigned = GetRandomPointInTheAir(i_x, i_y, i_z, radius);
|
||||||
/*if (newDestAssigned)
|
|
||||||
sLog.outString("Generating air random point for %s", GetGuidStr().c_str());*/
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2303,14 +2301,10 @@ bool Map::GetReachableRandomPosition(Unit* unit, float& x, float& y, float& z, f
|
|||||||
if (isSwimming && (res & (LIQUID_MAP_UNDER_WATER | LIQUID_MAP_IN_WATER)))
|
if (isSwimming && (res & (LIQUID_MAP_UNDER_WATER | LIQUID_MAP_IN_WATER)))
|
||||||
{
|
{
|
||||||
newDestAssigned = GetRandomPointUnderWater(i_x, i_y, i_z, radius, liquid_status);
|
newDestAssigned = GetRandomPointUnderWater(i_x, i_y, i_z, radius, liquid_status);
|
||||||
/*if (newDestAssigned)
|
|
||||||
sLog.outString("Generating swim random point for %s", GetGuidStr().c_str());*/
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
newDestAssigned = GetReachableRandomPointOnGround(i_x, i_y, i_z, radius);
|
newDestAssigned = GetReachableRandomPointOnGround(i_x, i_y, i_z, radius);
|
||||||
/*if (newDestAssigned)
|
|
||||||
sLog.outString("Generating ground random point for %s", GetGuidStr().c_str());*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,6 +38,6 @@
|
|||||||
|
|
||||||
#define WORLD_DB_VERSION_NR 21
|
#define WORLD_DB_VERSION_NR 21
|
||||||
#define WORLD_DB_STRUCTURE_NR 3
|
#define WORLD_DB_STRUCTURE_NR 3
|
||||||
#define WORLD_DB_CONTENT_NR 1
|
#define WORLD_DB_CONTENT_NR 2
|
||||||
#define WORLD_DB_UPDATE_DESCRIPTION "Fix SoR paladin"
|
#define WORLD_DB_UPDATE_DESCRIPTION "Fix Random MMGen Scripts"
|
||||||
#endif // __REVISION_H__
|
#endif // __REVISION_H__
|
||||||
|
Loading…
x
Reference in New Issue
Block a user