mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 05:21:29 +00:00
Use constants for waypoint values that are not actual waypoints
This commit is contained in:
parent
a4c171cb1d
commit
3d1dda888d
@ -38,8 +38,6 @@
|
||||
#include <limits>
|
||||
#include <math.h>
|
||||
|
||||
#define ROAMBOX_MOVE_IN_PROGESS (666)
|
||||
|
||||
extern EntityList entity_list;
|
||||
extern FastMath g_Math;
|
||||
|
||||
@ -1574,13 +1572,14 @@ void NPC::AI_DoMovement() {
|
||||
/**
|
||||
* Roambox logic sets precedence
|
||||
*/
|
||||
using EQEmu::waypoints::WaypointStatus;
|
||||
|
||||
if (roambox_distance > 0) {
|
||||
|
||||
// Check if we're already moving to a WP
|
||||
// If so, if we're not moving we have arrived and need to set delay
|
||||
|
||||
if (GetCWP() == ROAMBOX_MOVE_IN_PROGESS && !IsMoving()) {
|
||||
if (GetCWP() == WaypointStatus::wpsRoamBoxPauseInProgress && !IsMoving()) {
|
||||
// We have arrived
|
||||
time_until_can_move = Timer::GetCurrentTime() + RandomTimer(roambox_min_delay, roambox_delay);
|
||||
SetCurrentWP(0);
|
||||
@ -1658,7 +1657,7 @@ void NPC::AI_DoMovement() {
|
||||
roambox_destination_y);
|
||||
Log(Logs::Detail, Logs::NPCRoamBox, "Dest Z is (%f)", roambox_destination_z);
|
||||
|
||||
SetCurrentWP(ROAMBOX_MOVE_IN_PROGESS);
|
||||
SetCurrentWP(WaypointStatus::wpsRoamBoxPauseInProgress);
|
||||
NavigateTo(roambox_destination_x, roambox_destination_y, roambox_destination_z);
|
||||
}
|
||||
|
||||
@ -1672,7 +1671,7 @@ void NPC::AI_DoMovement() {
|
||||
|
||||
int32 gridno = CastToNPC()->GetGrid();
|
||||
|
||||
if (gridno > 0 || cur_wp == -2) {
|
||||
if (gridno > 0 || cur_wp == WaypointStatus::wpsQuestControlNoGrid) {
|
||||
if (pause_timer_complete == true) { // time to pause at wp is over
|
||||
AI_SetupNextWaypoint();
|
||||
} // endif (pause_timer_complete==true)
|
||||
@ -1704,7 +1703,7 @@ void NPC::AI_DoMovement() {
|
||||
// as that is where roamer is unset and we don't want
|
||||
// the next trip through to move again based on grid stuff.
|
||||
doMove = false;
|
||||
if (cur_wp == -2) {
|
||||
if (cur_wp == WaypointStatus::wpsQuestControlNoGrid) {
|
||||
AI_SetupNextWaypoint();
|
||||
}
|
||||
|
||||
@ -1803,8 +1802,10 @@ void NPC::AI_SetupNextWaypoint() {
|
||||
pause_timer_complete = false;
|
||||
Log(Logs::Detail, Logs::Pathing, "We are departing waypoint %d.", cur_wp);
|
||||
|
||||
using EQEmu::waypoints::WaypointStatus;
|
||||
|
||||
//if we were under quest control (with no grid), we are done now..
|
||||
if (cur_wp == -2) {
|
||||
if (cur_wp == WaypointStatus::wpsQuestControlNoGrid) {
|
||||
Log(Logs::Detail, Logs::Pathing, "Non-grid quest mob has reached its quest ordered waypoint. Leaving pathing mode.");
|
||||
roamer = false;
|
||||
cur_wp = 0;
|
||||
|
||||
@ -108,7 +108,7 @@ void NPC::ResumeWandering()
|
||||
{ // we were paused by a quest
|
||||
AI_walking_timer->Disable();
|
||||
SetGrid(0 - GetGrid());
|
||||
if (cur_wp == -1)
|
||||
if (cur_wp == EQEmu::waypoints::WaypointStatus::wpsQuestControlGrid)
|
||||
{ // got here by a MoveTo()
|
||||
cur_wp = save_wp;
|
||||
UpdateWaypoint(cur_wp); // have him head to last destination from here
|
||||
@ -166,6 +166,9 @@ void NPC::PauseWandering(int pausetime)
|
||||
|
||||
void NPC::MoveTo(const glm::vec4& position, bool saveguardspot)
|
||||
{ // makes mob walk to specified location
|
||||
|
||||
using EQEmu::waypoints::WaypointStatus;
|
||||
|
||||
if (IsNPC() && GetGrid() != 0)
|
||||
{ // he is on a grid
|
||||
if (GetGrid() < 0)
|
||||
@ -177,7 +180,7 @@ void NPC::MoveTo(const glm::vec4& position, bool saveguardspot)
|
||||
if (cur_wp >= 0)
|
||||
{ // we've not already done a MoveTo()
|
||||
save_wp = cur_wp; // save the current waypoint
|
||||
cur_wp = -1; // flag this move as quest controlled
|
||||
cur_wp = WaypointStatus::wpsQuestControlGrid;
|
||||
}
|
||||
Log(Logs::Detail, Logs::AI, "MoveTo %s, pausing regular grid wandering. Grid %d, save_wp %d", to_string(static_cast<glm::vec3>(position)).c_str(), -GetGrid(), save_wp);
|
||||
}
|
||||
@ -185,7 +188,7 @@ void NPC::MoveTo(const glm::vec4& position, bool saveguardspot)
|
||||
{ // not on a grid
|
||||
roamer = true;
|
||||
save_wp = 0;
|
||||
cur_wp = -2; // flag as quest controlled w/no grid
|
||||
cur_wp = WaypointStatus::wpsQuestControlNoGrid;
|
||||
Log(Logs::Detail, Logs::AI, "MoveTo %s without a grid.", to_string(static_cast<glm::vec3>(position)).c_str());
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user