GetClosestWaypoint converted to xyz_location

This commit is contained in:
Arthur Ice 2014-11-30 15:40:24 -08:00
parent 69dbdb2485
commit 2e6711916e
2 changed files with 7 additions and 7 deletions

View File

@ -282,7 +282,7 @@ public:
void ResumeWandering(); void ResumeWandering();
void PauseWandering(int pausetime); void PauseWandering(int pausetime);
void MoveTo(float mtx, float mty, float mtz, float mth, bool saveguardspot); void MoveTo(float mtx, float mty, float mtz, float mth, bool saveguardspot);
void GetClosestWaypoint(std::list<wplist> &wp_list, int count, float m_x, float m_y, float m_z); void GetClosestWaypoint(std::list<wplist> &wp_list, int count, const xyz_location& location );
uint32 GetEquipment(uint8 material_slot) const; // returns item id uint32 GetEquipment(uint8 material_slot) const; // returns item id
int32 GetEquipmentMaterial(uint8 material_slot) const; int32 GetEquipmentMaterial(uint8 material_slot) const;

View File

@ -260,7 +260,7 @@ void NPC::CalculateNewWaypoint()
case 1: //10 closest case 1: //10 closest
{ {
std::list<wplist> closest; std::list<wplist> closest;
GetClosestWaypoint(closest, 10, GetX(), GetY(), GetZ()); GetClosestWaypoint(closest, 10, GetPosition());
std::list<wplist>::iterator iter = closest.begin(); std::list<wplist>::iterator iter = closest.begin();
if(closest.size() != 0) if(closest.size() != 0)
{ {
@ -316,7 +316,7 @@ void NPC::CalculateNewWaypoint()
case 5: //pick random closest 5 and pick one that's in sight case 5: //pick random closest 5 and pick one that's in sight
{ {
std::list<wplist> closest; std::list<wplist> closest;
GetClosestWaypoint(closest, 5, GetX(), GetY(), GetZ()); GetClosestWaypoint(closest, 5, GetPosition());
std::list<wplist>::iterator iter = closest.begin(); std::list<wplist>::iterator iter = closest.begin();
while(iter != closest.end()) while(iter != closest.end())
@ -357,7 +357,7 @@ bool wp_distance_pred(const wp_distance& left, const wp_distance& right)
return left.dist < right.dist; return left.dist < right.dist;
} }
void NPC::GetClosestWaypoint(std::list<wplist> &wp_list, int count, float m_x, float m_y, float m_z) void NPC::GetClosestWaypoint(std::list<wplist> &wp_list, int count, const xyz_location& location)
{ {
wp_list.clear(); wp_list.clear();
if(Waypoints.size() <= count) if(Waypoints.size() <= count)
@ -372,11 +372,11 @@ void NPC::GetClosestWaypoint(std::list<wplist> &wp_list, int count, float m_x, f
std::list<wp_distance> distances; std::list<wp_distance> distances;
for(int i = 0; i < Waypoints.size(); ++i) for(int i = 0; i < Waypoints.size(); ++i)
{ {
float cur_x = (Waypoints[i].x - m_x); float cur_x = (Waypoints[i].x - location.m_X);
cur_x *= cur_x; cur_x *= cur_x;
float cur_y = (Waypoints[i].y - m_y); float cur_y = (Waypoints[i].y - location.m_Y);
cur_y *= cur_y; cur_y *= cur_y;
float cur_z = (Waypoints[i].z - m_z); float cur_z = (Waypoints[i].z - location.m_Z);
cur_z *= cur_z; cur_z *= cur_z;
float cur_dist = cur_x + cur_y + cur_z; float cur_dist = cur_x + cur_y + cur_z;
wp_distance w_dist; wp_distance w_dist;