From a306b9510875c96cad498a21a88ff57b8a16e684 Mon Sep 17 00:00:00 2001 From: div0 Date: Sun, 22 Nov 2009 18:01:07 +0000 Subject: [PATCH] try to support teleport waypoints in waypoint walking git-svn-id: svn://svn.icculus.org/nexuiz/trunk@8312 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/bot/havocbot/havocbot.qc | 14 ++++++++++++++ data/qcsrc/server/bot/navigation.qc | 6 ++++++ 2 files changed, 20 insertions(+) diff --git a/data/qcsrc/server/bot/havocbot/havocbot.qc b/data/qcsrc/server/bot/havocbot/havocbot.qc index 0e3e87844..7648d5c51 100644 --- a/data/qcsrc/server/bot/havocbot/havocbot.qc +++ b/data/qcsrc/server/bot/havocbot/havocbot.qc @@ -1281,6 +1281,20 @@ float havocbot_moveto(vector pos) self.havocbot_personal_waypoint_failcounter = 0; self.aistatus |= AI_STATUS_WAYPOINT_PERSONAL_LINKING; + // if pos is inside a teleport, then let's mark it as teleport waypoint + for(head = world; (head = find(head, classname, "trigger_teleport")); ) + { + entity s, o; + s = self; + o = other; + self = head; + other = s; + if(ExactTriggerHit()) + wp.wpflags |= WAYPOINTFLAG_TELEPORT; + self = s; + other = o; + } + return CMD_STATUS_EXECUTING; } diff --git a/data/qcsrc/server/bot/navigation.qc b/data/qcsrc/server/bot/navigation.qc index 63a0a448e..b744d5c72 100644 --- a/data/qcsrc/server/bot/navigation.qc +++ b/data/qcsrc/server/bot/navigation.qc @@ -844,6 +844,12 @@ void navigation_poptouchedgoals() if(self.lastteleporttime>0) if(time-self.lastteleporttime<0.15) { + if(self.aistatus & AI_STATUS_WAYPOINT_PERSONAL_GOING) + if(self.goalcurrent.wpflags & WAYPOINTFLAG_PERSONAL && self.goalcurrent.owner==self) + { + self.aistatus &~= AI_STATUS_WAYPOINT_PERSONAL_GOING; + self.aistatus |= AI_STATUS_WAYPOINT_PERSONAL_REACHED; + } navigation_poproute(); return; } -- 2.39.2