X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fbot%2Fdefault%2Fnavigation.qh;h=b8b067c3b993cae47c20e7b5219a2d36aa913b9f;hb=16e64ff58cf65d7b3e0815aadb530580a6aa251b;hp=90e959a2670b838aad3e62c21f27a163a1f961b2;hpb=26280ae0d91f80b27f03ee645c76d1234a4215b7;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/bot/default/navigation.qh b/qcsrc/server/bot/default/navigation.qh index 90e959a26..b8b067c3b 100644 --- a/qcsrc/server/bot/default/navigation.qh +++ b/qcsrc/server/bot/default/navigation.qh @@ -30,6 +30,7 @@ entity navigation_bestgoal; .float goalcurrent_distance_time; .float goalentity_lock_timeout; +.bool goalentity_shouldbefrozen; .entity nearestwaypoint; .float nearestwaypointtimeout; @@ -50,6 +51,10 @@ entity navigation_bestgoal; #define navigation_item_addlink(from_wp, to_item) \ waypoint_addlink_customcost(to_item, from_wp, waypoint_getlinkcost(from_wp, to_item)) +#define TELEPORT_USED(pl, tele_wp) \ + (time - pl.lastteleporttime < ((tele_wp.wpflags & WAYPOINTFLAG_PERSONAL) ? 2 : 0.15) \ + && boxesoverlap(tele_wp.absmin, tele_wp.absmax, pl.lastteleport_origin + STAT(PL_MIN, pl), pl.lastteleport_origin + STAT(PL_MAX, pl))) + vector tracewalk_dest; float tracewalk_dest_height; @@ -57,6 +62,7 @@ float tracewalk_dest_height; .entity wp_goal_prev1; .float lastteleporttime; +.vector lastteleport_origin; .float blacklisted; @@ -77,7 +83,7 @@ float bot_waypoint_queue_bestgoalrating; .entity bot_basewaypoint; .bool navigation_dynamicgoal; void navigation_dynamicgoal_init(entity this, bool initially_static); -void navigation_dynamicgoal_set(entity this); +void navigation_dynamicgoal_set(entity this, entity dropper); void navigation_dynamicgoal_unset(entity this); .int nav_submerged_state; @@ -109,6 +115,7 @@ void navigation_markroutes_checkwaypoint(entity w, entity wp, float cost2, vecto 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); +bool navigation_shortenpath(entity this); int navigation_poptouchedgoals(entity this); void navigation_goalrating_start(entity this); void navigation_goalrating_end(entity this);