X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fbot%2Fhavocbot%2Fhavocbot.qc;h=0b8bac7333ee49ce8807733056a810a888c6fdfd;hb=f5689f55e2665c871cfabcee9f8534c482e2b79b;hp=9b7198cef821f83efb36eeabae7e4923ae502989;hpb=fb61c977ddeed686ef587fd54e40f55a4bdc2322;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/bot/havocbot/havocbot.qc b/qcsrc/server/bot/havocbot/havocbot.qc index 9b7198cef..0b8bac733 100644 --- a/qcsrc/server/bot/havocbot/havocbot.qc +++ b/qcsrc/server/bot/havocbot/havocbot.qc @@ -1,10 +1,6 @@ #include "havocbot.qh" -#include "role_ctf.qc" #include "role_onslaught.qc" #include "role_keyhunt.qc" -#include "role_freezetag.qc" -#include "role_keepaway.qc" -#include "role_assault.qc" #include "roles.qc" void havocbot_ai() @@ -94,7 +90,7 @@ void havocbot_ai() self.aistatus |= AI_STATUS_ATTACKING; self.aistatus &~= AI_STATUS_ROAMING; - if(self.weapons) + if(!WEPSET_EMPTY_E(self)) { weapon_action(self.weapon, WR_AIM); if (autocvar_bot_nofire || IS_INDEPENDENT_PLAYER(self)) @@ -168,7 +164,7 @@ void havocbot_ai() for(i = WEP_FIRST; i <= WEP_LAST; ++i) { e = get_weaponinfo(i); - if ((e.spawnflags & WEP_FLAG_RELOADABLE) && (self.weapon_load[i] < cvar(strcat("g_balance_", e.netname, "_reload_ammo")))) + if (WEPSET_CONTAINS_EW(self, i) && (e.spawnflags & WEP_FLAG_RELOADABLE) && (self.weapon_load[i] < cvar(strcat("g_balance_", e.netname, "_reload_ammo")))) self.switchweapon = i; } } @@ -493,8 +489,8 @@ void havocbot_movetogoal() { if(fabs(self.velocity_z)<50) { - entity head, newgoal; - float distance, bestdistance; + entity head, newgoal = world; + float distance, bestdistance = 0; for (head = findchain(classname, "waypoint"); head; head = head.chain) { @@ -908,7 +904,7 @@ void havocbot_chooseenemy() self.dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE; - for(;;) + for(i = 0; ; ++i) { while (head) { @@ -930,7 +926,7 @@ void havocbot_chooseenemy() // I want to do a second scan if no enemy was found or I don't have weapons // TODO: Perform the scan when using the rifle (requires changes on the rifle code) - if(best || self.weapons) // || self.weapon == WEP_RIFLE + if(best || !WEPSET_EMPTY_E(self)) // || self.weapon == WEP_RIFLE break; if(i) break; @@ -939,7 +935,6 @@ void havocbot_chooseenemy() self.dphitcontentsmask |= DPCONTENTS_OPAQUE; head = head2; - ++i; } // Restore hit flags @@ -960,7 +955,7 @@ float havocbot_chooseweapon_checkreload(float new_weapon) // if this weapon is scheduled for reloading, don't switch to it during combat if (self.weapon_load[new_weapon] < 0) { - float i, other_weapon_available; + float i, other_weapon_available = FALSE; for(i = WEP_FIRST; i <= WEP_LAST; ++i) { // if we are out of ammo for all other weapons, it's an emergency to switch to anything else @@ -979,7 +974,7 @@ void havocbot_chooseweapon() float i; // ;) - if(g_weaponarena == WEPBIT_TUBA) + if(WEPSET_EQ_AW(g_weaponarena_weapons, WEP_TUBA)) { self.switchweapon = WEP_TUBA; return;