#include "bot.qh"
-#include "../_all.qh"
#include "aim.qh"
#include "navigation.qh"
#include "havocbot/havocbot.qh"
#include "havocbot/scripting.qh"
+#include "../teamplay.qh"
+
#include "../antilag.qh"
#include "../autocvars.qh"
#include "../campaign.qh"
#include "../race.qh"
#include "../t_items.qh"
-#include "../mutators/mutators_include.qh"
+#include "../mutators/all.qh"
#include "../weapons/accuracy.qh"
#include "../../common/weapons/all.qh"
-#include "../../csqcmodellib/sv_model.qh"
-
-#include "../../dpdefs/dpextensions.qh"
-#include "../../dpdefs/progsdefs.qh"
+#include "../../lib/csqcmodel/sv_model.qh"
-#include "../../warpzonelib/common.qh"
-#include "../../warpzonelib/util_server.qh"
+#include "../../lib/warpzone/common.qh"
+#include "../../lib/warpzone/util_server.qh"
entity bot_spawn()
{SELFPARAM();
tokens = tokenizebyseparator(W_NumberWeaponOrder(autocvar_bot_ai_custom_weapon_priority_far)," ");
int c = 0;
- for(i=0; i < tokens && c < WEP_COUNT; ++i){
+ for(i=0; i < tokens && c < Weapons_COUNT; ++i){
w = stof(argv(i));
if ( w >= WEP_FIRST && w <= WEP_LAST) {
bot_weapons_far[c] = w;
++c;
}
}
- if(c < WEP_COUNT)
+ if(c < Weapons_COUNT)
bot_weapons_far[c] = -1;
// Parse mid distance weapon priorities
tokens = tokenizebyseparator(W_NumberWeaponOrder(autocvar_bot_ai_custom_weapon_priority_mid)," ");
c = 0;
- for(i=0; i < tokens && c < WEP_COUNT; ++i){
+ for(i=0; i < tokens && c < Weapons_COUNT; ++i){
w = stof(argv(i));
if ( w >= WEP_FIRST && w <= WEP_LAST) {
bot_weapons_mid[c] = w;
++c;
}
}
- if(c < WEP_COUNT)
+ if(c < Weapons_COUNT)
bot_weapons_mid[c] = -1;
// Parse close distance weapon priorities
tokens = tokenizebyseparator(W_NumberWeaponOrder(autocvar_bot_ai_custom_weapon_priority_close)," ");
c = 0;
- for(i=0; i < tokens && i < WEP_COUNT; ++i){
+ for(i=0; i < tokens && i < Weapons_COUNT; ++i){
w = stof(argv(i));
if ( w >= WEP_FIRST && w <= WEP_LAST) {
bot_weapons_close[c] = w;
++c;
}
}
- if(c < WEP_COUNT)
+ if(c < Weapons_COUNT)
bot_weapons_close[c] = -1;
bot_custom_weapon = true;
activerealplayers = 0;
realplayers = 0;
- FOR_EACH_REALCLIENT(head)
+ if(!MUTATOR_CALLHOOK(Bot_FixCount, activerealplayers, realplayers))
{
- if(IS_PLAYER(head) || g_lms || head.caplayer == 1)
- ++activerealplayers;
- ++realplayers;
+ FOR_EACH_REALCLIENT(head)
+ {
+ if(IS_PLAYER(head))
+ ++activerealplayers;
+ ++realplayers;
+ }
}
+ activerealplayers = bot_activerealplayers;
+ realplayers = bot_realplayers;
+
// add/remove bots if needed to make sure there are at least
// minplayers+bot_number, or remove all bots if no one is playing
// But don't remove bots immediately on level change, as the real players