X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fbot%2Fdefault%2Fbot.qh;h=05c6a5ed9a0643b4a1d8232c70a13d96262009b9;hb=c5fcf672c473edef7139d4250398184b8ae17224;hp=b3c628de1d6f40383fc9dc776941bbecc2f2b8ec;hpb=13719cec41a5a1b20d0fff3fe1b6df449bc2a884;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/bot/default/bot.qh b/qcsrc/server/bot/default/bot.qh index b3c628de1..05c6a5ed9 100644 --- a/qcsrc/server/bot/default/bot.qh +++ b/qcsrc/server/bot/default/bot.qh @@ -1,21 +1,20 @@ -#ifndef BOT_H -#define BOT_H +#pragma once /* * Globals and Fields */ -const int AI_STATUS_ROAMING = 1; // Bot is just crawling the map. No enemies at sight -const int AI_STATUS_ATTACKING = 2; // There are enemies at sight -const int AI_STATUS_RUNNING = 4; // Bot is bunny hopping -const int AI_STATUS_DANGER_AHEAD = 8; // There is lava/slime/trigger_hurt ahead -const int AI_STATUS_OUT_JUMPPAD = 16; // Trying to get out of a "vertical" jump pad -const int AI_STATUS_OUT_WATER = 32; // Trying to get out of water -const int AI_STATUS_WAYPOINT_PERSONAL_LINKING = 64; // Waiting for the personal waypoint to be linked -const int AI_STATUS_WAYPOINT_PERSONAL_GOING = 128; // Going to a personal waypoint -const int AI_STATUS_WAYPOINT_PERSONAL_REACHED = 256; // Personal waypoint reached -const int AI_STATUS_JETPACK_FLYING = 512; -const int AI_STATUS_JETPACK_LANDING = 1024; -const int AI_STATUS_STUCK = 2048; // Cannot reach any goal +const int AI_STATUS_ROAMING = BIT(0); // Bot is just crawling the map. No enemies at sight +const int AI_STATUS_ATTACKING = BIT(1); // There are enemies at sight +const int AI_STATUS_RUNNING = BIT(2); // Bot is bunny hopping +const int AI_STATUS_DANGER_AHEAD = BIT(3); // There is lava/slime/trigger_hurt ahead +const int AI_STATUS_OUT_JUMPPAD = BIT(4); // Trying to get out of a "vertical" jump pad +const int AI_STATUS_OUT_WATER = BIT(5); // Trying to get out of water +const int AI_STATUS_WAYPOINT_PERSONAL_LINKING = BIT(6); // Waiting for the personal waypoint to be linked +const int AI_STATUS_WAYPOINT_PERSONAL_GOING = BIT(7); // Going to a personal waypoint +const int AI_STATUS_WAYPOINT_PERSONAL_REACHED = BIT(8); // Personal waypoint reached +const int AI_STATUS_JETPACK_FLYING = BIT(9); +const int AI_STATUS_JETPACK_LANDING = BIT(10); +const int AI_STATUS_STUCK = BIT(11); // Cannot reach any goal .float isbot; // true if this client is actually a bot .int aistatus; @@ -42,12 +41,12 @@ float autoskill_nextthink; .float totalfrags_lastcheck; - +// Custom weapon priorities +float bot_distance_far; +float bot_distance_close; entity bot_list; -entity player_list; .entity nextbot; -.entity nextplayer; .string cleanname; .string netname_freeme; .string playermodel_freeme; @@ -76,6 +75,7 @@ float botframe_spawnedwaypoints; float botframe_nextthink; float botframe_nextdangertime; float bot_cvar_nextthink; +float bot_ignore_bots; // let bots not attack other bots (only works in non-teamplay) /* * Functions @@ -84,26 +84,26 @@ float bot_cvar_nextthink; entity bot_spawn(); float bot_fixcount(); -void bot_think(); -void bot_setnameandstuff(); +void bot_think(entity this); +void bot_setnameandstuff(entity this); void bot_custom_weapon_priority_setup(); void bot_endgame(); void bot_relinkplayerlist(); -void bot_clientdisconnect(); -void bot_clientconnect(); +void bot_clear(entity this); +void bot_clientdisconnect(entity this); +void bot_clientconnect(entity this); void bot_removefromlargestteam(); void bot_removenewest(); void autoskill(float factor); void bot_serverframe(); -.void() bot_ai; +.void(entity this) bot_ai; .float(entity player, entity item) bot_pickupevalfunc; /* * Imports */ -void() havocbot_setupbot; +void(entity this) havocbot_setupbot; -void bot_calculate_stepheightvec(void); -#endif +void bot_calculate_stepheightvec();