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/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<>
|
||||
RandomMovementGenerator<Creature>::RandomMovementGenerator(const Creature& creature)
|
||||
{
|
||||
|
@ -36,8 +36,7 @@ class RandomMovementGenerator
|
||||
{
|
||||
public:
|
||||
explicit RandomMovementGenerator(const Creature&);
|
||||
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) {}
|
||||
explicit RandomMovementGenerator(float x, float y, float z, float radius, float verticalZ = 0.0f);
|
||||
|
||||
void _setRandomLocation(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();
|
||||
break;
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
if (isFlying)
|
||||
{
|
||||
newDestAssigned = GetRandomPointInTheAir(i_x, i_y, i_z, radius);
|
||||
/*if (newDestAssigned)
|
||||
sLog.outString("Generating air random point for %s", GetGuidStr().c_str());*/
|
||||
}
|
||||
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)))
|
||||
{
|
||||
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
|
||||
{
|
||||
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_STRUCTURE_NR 3
|
||||
#define WORLD_DB_CONTENT_NR 1
|
||||
#define WORLD_DB_UPDATE_DESCRIPTION "Fix SoR paladin"
|
||||
#define WORLD_DB_CONTENT_NR 2
|
||||
#define WORLD_DB_UPDATE_DESCRIPTION "Fix Random MMGen Scripts"
|
||||
#endif // __REVISION_H__
|
||||
|
Loading…
x
Reference in New Issue
Block a user