X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fpathlib%2Fpath_waypoint.qc;h=35dcce5b25030cad21e169218900308c5c1f6f55;hb=7666560c6a475aefe6b55ff74a20444f328e0093;hp=231c14f21bbbf6b6c8464a62d857ba593394116d;hpb=4e85c153239969d8dccea38031e18ddb24b6c935;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/pathlib/path_waypoint.qc b/qcsrc/server/pathlib/path_waypoint.qc index 231c14f21..35dcce5b2 100644 --- a/qcsrc/server/pathlib/path_waypoint.qc +++ b/qcsrc/server/pathlib/path_waypoint.qc @@ -1,3 +1,9 @@ +#include "path_waypoint.qh" +#include "../bot/waypoints.qh" + +#include "pathlib.qh" +#include "main.qh" + var float pathlib_wpp_open(entity wp, entity child, float cost); void pathlib_wpp_close(entity wp) @@ -8,7 +14,7 @@ void pathlib_wpp_close(entity wp) wp.pathlib_list = closedlist; if(wp == best_open_node) - best_open_node = world; + best_open_node = NULL; if(wp == goal_node) pathlib_foundgoal = true; @@ -158,13 +164,13 @@ entity pathlib_waypointpath(entity wp_from, entity wp_to, float callback) pathlib_searched_cnt = 0; pathlib_foundgoal = false; - dprint("pathlib_waypointpath init\n"); + LOG_TRACE("pathlib_waypointpath init\n"); // Initialize waypoint grid // FIXME! presisted chain for better preformance for(n = findchain(classname, "waypoint"); n; n = n.chain) { - n.pathlib_list = world; + n.pathlib_list = NULL; n.pathlib_node_g = 0; n.pathlib_node_f = 0; n.pathlib_node_h = 0; @@ -180,14 +186,14 @@ entity pathlib_waypointpath(entity wp_from, entity wp_to, float callback) start_node = wp_from; start_node.pathlib_list = closedlist; - dprint("Expanding ",ftos(pathlib_wpp_expand(start_node))," links\n"); + LOG_TRACE("Expanding ",ftos(pathlib_wpp_expand(start_node))," links\n"); if(pathlib_open_cnt <= 0) { - dprint("pathlib_waypointpath: Start waypoint not linked! aborting.\n"); - return world; + LOG_TRACE("pathlib_waypointpath: Start waypoint not linked! aborting.\n"); + return NULL; } - return world; + return NULL; } entity pathlib_waypointpath_step() @@ -197,21 +203,21 @@ entity pathlib_waypointpath_step() n = pathlib_wpp_bestopen(); if(!n) { - dprint("Cannot find best open node, abort.\n"); - return world; + LOG_TRACE("Cannot find best open node, abort.\n"); + return NULL; } pathlib_wpp_close(n); - dprint("Expanding ",ftos(pathlib_wpp_expand(n))," links\n"); + LOG_TRACE("Expanding ",ftos(pathlib_wpp_expand(n))," links\n"); if(pathlib_foundgoal) { entity start, end, open, ln; - dprint("Target found. Rebuilding and filtering path...\n"); + LOG_TRACE("Target found. Rebuilding and filtering path...\n"); buildpath_nodefilter = buildpath_nodefilter_none; - start = path_build(world, start_node.origin, world, world); - end = path_build(world, goal_node.origin, world, start); + start = path_build(NULL, start_node.origin, NULL, NULL); + end = path_build(NULL, goal_node.origin, NULL, start); ln = end; for(open = goal_node; open.path_prev != start_node; open = open.path_prev) @@ -226,20 +232,20 @@ entity pathlib_waypointpath_step() return start; } - return world; + return NULL; } -void plas_think() +void plas_think(entity this) { pathlib_waypointpath_step(); if(pathlib_foundgoal) return; - self.nextthink = time + 0.1; + this.nextthink = time + 0.1; } void pathlib_waypointpath_autostep() { entity n; n = spawn(); - n.think = plas_think; + setthink(n, plas_think); n.nextthink = time + 0.1; }