.float(entity player, entity item) bot_pickupevalfunc;
.string cleanname;
.float havocbot_role_timeout;
+.void(entity this) havocbot_role;
+.void(entity this) havocbot_previous_role;
.float isbot; // true if this client is actually a bot
.float lastteleporttime;
.float navigation_hasgoals;
float havocbot_middlepoint_radius;
vector havocbot_symmetryaxis_equation;
+.float goalentity_lock_timeout;
+.float ignoregoaltime;
+.entity ignoregoal;
+
.entity bot_basewaypoint;
.bool navigation_dynamicgoal;
void navigation_dynamicgoal_init(entity this, bool initially_static);
void navigation_goalrating_start(entity this);
void navigation_goalrating_timeout_set(entity this);
void navigation_goalrating_timeout_force(entity this);
+void navigation_goalrating_timeout_expire(entity this, float seconds);
bool navigation_goalrating_timeout(entity this);
bool navigation_goalrating_timeout_can_be_anticipated(entity this);
void navigation_markroutes(entity this, entity fixed_source_waypoint);
void navigation_markroutes_inverted(entity fixed_source_waypoint);
void navigation_routerating(entity this, entity e, float f, float rangebias);
+vector get_closer_dest(entity ent, vector org);
+
+void set_tracewalk_dest(entity ent, vector org, bool fix_player_dest);
+vector set_tracewalk_dest_2(entity ent, vector org);
bool tracewalk(entity e, vector start, vector m1, vector m2, vector end, float end_height, float movemode);
void waypoint_remove_fromeditor(entity pl);
void waypoint_spawn_fromeditor(entity pl);
entity waypoint_spawn(vector m1, vector m2, float f);
void waypoint_unreachable(entity pl);
-
-.entity goalcurrent;
-void navigation_clearroute(entity this);