mirror of
https://github.com/EQEmu/Server.git
synced 2026-04-03 17:32:33 +00:00
Move stuck code out of main pathing function so we can add logging easily later
This commit is contained in:
parent
ccdebf0116
commit
9dd4002337
@ -1264,6 +1264,7 @@ protected:
|
|||||||
void CalculateNewFearpoint();
|
void CalculateNewFearpoint();
|
||||||
float FindGroundZ(float new_x, float new_y, float z_offset=0.0);
|
float FindGroundZ(float new_x, float new_y, float z_offset=0.0);
|
||||||
glm::vec3 UpdatePath(float ToX, float ToY, float ToZ, float Speed, bool &WaypointChange, bool &NodeReached);
|
glm::vec3 UpdatePath(float ToX, float ToY, float ToZ, float Speed, bool &WaypointChange, bool &NodeReached);
|
||||||
|
glm::vec3 HandleStuckPath(const glm::vec3 &To, const glm::vec3 &From);
|
||||||
|
|
||||||
virtual float GetSympatheticProcChances(uint16 spell_id, int16 ProcRateMod, int32 ItemProcRate = 0);
|
virtual float GetSympatheticProcChances(uint16 spell_id, int16 ProcRateMod, int32 ItemProcRate = 0);
|
||||||
int16 GetSympatheticSpellProcRate(uint16 spell_id);
|
int16 GetSympatheticSpellProcRate(uint16 spell_id);
|
||||||
|
|||||||
@ -48,15 +48,7 @@ glm::vec3 Mob::UpdatePath(float ToX, float ToY, float ToZ, float Speed, bool &Wa
|
|||||||
WaypointChanged = true;
|
WaypointChanged = true;
|
||||||
NodeReached = false;
|
NodeReached = false;
|
||||||
if (stuck) {
|
if (stuck) {
|
||||||
bool partial = false;
|
return HandleStuckPath(To, From);
|
||||||
bool stuck = false;
|
|
||||||
auto r = zone->pathing->FindRoute(To, From, partial, stuck);
|
|
||||||
Route.clear();
|
|
||||||
|
|
||||||
auto final_node = r.back();
|
|
||||||
Route.push_back(final_node);
|
|
||||||
AdjustRoute(Route, flymode, GetModelOffset());
|
|
||||||
return (*Route.begin()).pos;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Route.empty()) {
|
if (Route.empty()) {
|
||||||
@ -81,15 +73,7 @@ glm::vec3 Mob::UpdatePath(float ToX, float ToY, float ToZ, float Speed, bool &Wa
|
|||||||
NodeReached = false;
|
NodeReached = false;
|
||||||
|
|
||||||
if (stuck) {
|
if (stuck) {
|
||||||
bool partial = false;
|
return HandleStuckPath(To, From);
|
||||||
bool stuck = false;
|
|
||||||
auto r = zone->pathing->FindRoute(To, From, partial, stuck);
|
|
||||||
Route.clear();
|
|
||||||
|
|
||||||
auto final_node = r.back();
|
|
||||||
Route.push_back(final_node);
|
|
||||||
AdjustRoute(Route, flymode, GetModelOffset());
|
|
||||||
return (*Route.begin()).pos;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Route.empty()) {
|
if (Route.empty()) {
|
||||||
@ -154,15 +138,7 @@ glm::vec3 Mob::UpdatePath(float ToX, float ToY, float ToZ, float Speed, bool &Wa
|
|||||||
WaypointChanged = true;
|
WaypointChanged = true;
|
||||||
|
|
||||||
if (stuck) {
|
if (stuck) {
|
||||||
bool partial = false;
|
return HandleStuckPath(To, From);
|
||||||
bool stuck = false;
|
|
||||||
auto r = zone->pathing->FindRoute(To, From, partial, stuck);
|
|
||||||
Route.clear();
|
|
||||||
|
|
||||||
auto final_node = r.back();
|
|
||||||
Route.push_back(final_node);
|
|
||||||
AdjustRoute(Route, flymode, GetModelOffset());
|
|
||||||
return (*Route.begin()).pos;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Route.empty()) {
|
if(Route.empty()) {
|
||||||
@ -207,6 +183,19 @@ glm::vec3 Mob::UpdatePath(float ToX, float ToY, float ToZ, float Speed, bool &Wa
|
|||||||
return To;
|
return To;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
glm::vec3 Mob::HandleStuckPath(const glm::vec3 &To, const glm::vec3 &From)
|
||||||
|
{
|
||||||
|
bool partial = false;
|
||||||
|
bool stuck = false;
|
||||||
|
auto r = zone->pathing->FindRoute(To, From, partial, stuck);
|
||||||
|
Route.clear();
|
||||||
|
|
||||||
|
auto final_node = r.back();
|
||||||
|
Route.push_back(final_node);
|
||||||
|
AdjustRoute(Route, flymode, GetModelOffset());
|
||||||
|
return (*Route.begin()).pos;
|
||||||
|
}
|
||||||
|
|
||||||
void CullPoints(std::vector<FindPerson_Point> &points) {
|
void CullPoints(std::vector<FindPerson_Point> &points) {
|
||||||
if (!zone->HasMap()) {
|
if (!zone->HasMap()) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user