From ccdefe84e21e84699dc2c312e6fe8198e9a41f4b Mon Sep 17 00:00:00 2001 From: mand1nga Date: Sat, 14 Mar 2009 21:53:42 +0000 Subject: [PATCH] Search for nearest waypoints more progressively. This reduces greatly the server load on some maps (mentalspace, reservoir) git-svn-id: svn://svn.icculus.org/nexuiz/trunk@6159 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/bots.qc | 10 +++++----- data/qcsrc/server/havocbot.qc | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/data/qcsrc/server/bots.qc b/data/qcsrc/server/bots.qc index 2c1955779..c3ac623aa 100644 --- a/data/qcsrc/server/bots.qc +++ b/data/qcsrc/server/bots.qc @@ -1183,6 +1183,7 @@ void navigation_markroutes() local entity w, wp, waylist; local float searching, cost, cost2; local vector p; + local float i, increment; w = waylist = findchain(classname, "waypoint"); while (w) { @@ -1193,11 +1194,10 @@ void navigation_markroutes() w.enemy = world; w = w.chain; } - // try a short range search for the nearest waypoints, and expand the - // search repeatedly if none are found - if (!navigation_markroutes_nearestwaypoints(waylist, 500)) - if (!navigation_markroutes_nearestwaypoints(waylist, 1000)) - navigation_markroutes_nearestwaypoints(waylist, 1000000); + // try a short range search for the nearest waypoints, and expand thesearch repeatedly if none are found + increment = 500; + for(i=increment;navigation_markroutes_nearestwaypoints(waylist, i)&&i<50000;i+=increment); + searching = TRUE; while (searching) { diff --git a/data/qcsrc/server/havocbot.qc b/data/qcsrc/server/havocbot.qc index 7ba5d7e76..43ca054d2 100644 --- a/data/qcsrc/server/havocbot.qc +++ b/data/qcsrc/server/havocbot.qc @@ -905,7 +905,6 @@ void havocbot_ai() if(self.goalcurrent==world) if(self.waterlevel==2 || self.aistatus & AI_STATUS_OUT_WATER) { - // TODO: Make the bots detect and handle ladders and/or platforms // Look for the closest waypoint out of water local entity newgoal, head; local float bestdistance, distance; -- 2.39.2