From: terencehill Date: Tue, 24 Jan 2017 21:43:19 +0000 (+0100) Subject: Avoid rating all the items repeatedly when a bot reaches an item that is about to... X-Git-Tag: xonotic-v0.8.2~202^2~25 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=1b9fbea6e5ef24f649deed64850a6a2a65e72d98;p=xonotic%2Fxonotic-data.pk3dir.git Avoid rating all the items repeatedly when a bot reaches an item that is about to spawn --- diff --git a/qcsrc/server/bot/default/bot.qh b/qcsrc/server/bot/default/bot.qh index f615c0403..b72fad9bd 100644 --- a/qcsrc/server/bot/default/bot.qh +++ b/qcsrc/server/bot/default/bot.qh @@ -62,6 +62,7 @@ entity bot_list; .float bot_pickup; .float bot_pickupbasevalue; +.bool bot_pickup_respawning; .float bot_canfire; .float bot_strategytime; diff --git a/qcsrc/server/bot/default/havocbot/roles.qc b/qcsrc/server/bot/default/havocbot/roles.qc index 1efdab0d3..5c2580636 100644 --- a/qcsrc/server/bot/default/havocbot/roles.qc +++ b/qcsrc/server/bot/default/havocbot/roles.qc @@ -38,6 +38,8 @@ void havocbot_goalrating_items(entity this, float ratingscale, vector org, float if(time < it.scheduledrespawntime - t) continue; + + it.bot_pickup_respawning = true; } o = (it.absmin + it.absmax) * 0.5; if(vdist(o - org, >, sradius) || (it == this.ignoregoal && time < this.ignoregoaltime) ) diff --git a/qcsrc/server/bot/default/navigation.qc b/qcsrc/server/bot/default/navigation.qc index 4c8982e94..d6bb2195f 100644 --- a/qcsrc/server/bot/default/navigation.qc +++ b/qcsrc/server/bot/default/navigation.qc @@ -897,6 +897,13 @@ void navigation_poptouchedgoals(entity this) } } + if(this.goalcurrent.bot_pickup_respawning) + { + if(!this.goalcurrent.solid) + return; + this.goalcurrent.bot_pickup_respawning = false; + } + // If for some reason the bot is closer to the next goal, pop the current one if(this.goalstack01 && !wasfreed(this.goalstack01)) if(vlen2(this.goalcurrent.origin - this.origin) > vlen2(this.goalstack01.origin - this.origin))