X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fbot%2Fdefault%2Fnavigation.qc;h=4b65a69ccd292177fe9c345887a199acb428eed0;hb=969dc49d01d650a812706aba16c765af488605d0;hp=1f5377bb388b9d86f887931bcdc8f6ca19e67d24;hpb=d464b8e24227e71a33447c76220f5bf169047154;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/bot/default/navigation.qc b/qcsrc/server/bot/default/navigation.qc index 1f5377bb3..4b65a69cc 100644 --- a/qcsrc/server/bot/default/navigation.qc +++ b/qcsrc/server/bot/default/navigation.qc @@ -7,13 +7,14 @@ #include "bot.qh" #include "waypoints.qh" -#include +#include #include #include #include #include +#include #include .float speed; @@ -1654,7 +1655,7 @@ int navigation_poptouchedgoals(entity this) if(this.lastteleporttime > 0 && TELEPORT_USED(this, this.goalcurrent)) { if(this.aistatus & AI_STATUS_WAYPOINT_PERSONAL_GOING) - if(this.goalcurrent.wpflags & WAYPOINTFLAG_PERSONAL && this.goalcurrent.owner==this) + if((this.goalcurrent.wpflags & WAYPOINTFLAG_PERSONAL) && this.goalcurrent.owner==this) { this.aistatus &= ~AI_STATUS_WAYPOINT_PERSONAL_GOING; this.aistatus |= AI_STATUS_WAYPOINT_PERSONAL_REACHED; @@ -1696,7 +1697,7 @@ int navigation_poptouchedgoals(entity this) if (tele_ent && TELEPORT_USED(this, tele_ent)) { if (this.aistatus & AI_STATUS_WAYPOINT_PERSONAL_GOING) - if (tele_ent.wpflags & WAYPOINTFLAG_PERSONAL && tele_ent.owner == this) + if ((tele_ent.wpflags & WAYPOINTFLAG_PERSONAL) && tele_ent.owner == this) { this.aistatus &= ~AI_STATUS_WAYPOINT_PERSONAL_GOING; this.aistatus |= AI_STATUS_WAYPOINT_PERSONAL_REACHED; @@ -1718,7 +1719,7 @@ int navigation_poptouchedgoals(entity this) // Loose goal touching check when running // check goalstack01 to make sure waypoint isn't the final goal - if(this.aistatus & AI_STATUS_RUNNING && this.goalcurrent.classname == "waypoint" && !(this.goalcurrent.wpflags & WAYPOINTFLAG_JUMP) + if((this.aistatus & AI_STATUS_RUNNING) && this.goalcurrent.classname == "waypoint" && !(this.goalcurrent.wpflags & WAYPOINTFLAG_JUMP) && this.goalstack01 && !wasfreed(this.goalstack01) && vdist(vec2(this.velocity), >=, autocvar_sv_maxspeed)) { vector gco = this.goalcurrent.origin; @@ -1733,7 +1734,7 @@ int navigation_poptouchedgoals(entity this) { // Detect personal waypoints if(this.aistatus & AI_STATUS_WAYPOINT_PERSONAL_GOING) - if(this.goalcurrent.wpflags & WAYPOINTFLAG_PERSONAL && this.goalcurrent.owner==this) + if((this.goalcurrent.wpflags & WAYPOINTFLAG_PERSONAL) && this.goalcurrent.owner==this) { this.aistatus &= ~AI_STATUS_WAYPOINT_PERSONAL_GOING; this.aistatus |= AI_STATUS_WAYPOINT_PERSONAL_REACHED; @@ -1756,7 +1757,7 @@ int navigation_poptouchedgoals(entity this) gc_min = this.goalcurrent.origin - '1 1 1' * 12; gc_max = this.goalcurrent.origin + '1 1 1' * 12 + eZ * (jumpheight_vec.z + STAT(PL_MIN, this).z); } - if (time < this.ladder_time) + if (this.ladder_entity) { if (!boxesoverlap(this.absmin, this.absmax - eZ * STAT(PL_MAX, this).z, gc_min, gc_max)) break; @@ -1769,7 +1770,7 @@ int navigation_poptouchedgoals(entity this) // Detect personal waypoints if(this.aistatus & AI_STATUS_WAYPOINT_PERSONAL_GOING) - if(this.goalcurrent.wpflags & WAYPOINTFLAG_PERSONAL && this.goalcurrent.owner==this) + if((this.goalcurrent.wpflags & WAYPOINTFLAG_PERSONAL) && this.goalcurrent.owner==this) { this.aistatus &= ~AI_STATUS_WAYPOINT_PERSONAL_GOING; this.aistatus |= AI_STATUS_WAYPOINT_PERSONAL_REACHED;