X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=qcsrc%2Fserver%2Fpathlib%2Fpathlib.qh;h=edfb98b2a2104962d736327f377037a1d8d5c13a;hb=HEAD;hp=765fe2a7f201b6bfa6b1e1da7e70c0cac3284d31;hpb=7fdbf7937f5130e5cd6a3431a57aceed909e2a66;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/pathlib/pathlib.qh b/qcsrc/server/pathlib/pathlib.qh index 765fe2a7f..edfb98b2a 100644 --- a/qcsrc/server/pathlib/pathlib.qh +++ b/qcsrc/server/pathlib/pathlib.qh @@ -1,30 +1,27 @@ -#ifndef PATHLIB_H -#define PATHLIB_H +#pragma once + +#ifndef DEBUGPATHING + #define DEBUGPATHING 0 +#endif .entity pathlib_list; .entity path_next; .entity path_prev; #define inwater(point) (pointcontents(point) == CONTENT_WATER) -#define medium spawnshieldtime const vector PLIB_FORWARD = '0 1 0'; //#define PLIB_BACK '0 -1 0' const vector PLIB_RIGHT = '1 0 0'; //#define PLIB_LEFT '-1 0 0' -#ifdef DEBUGPATHING -void pathlib_showpath(entity start); -void pathlib_showpath2(entity path); -#endif - entity openlist; entity closedlist; entity goal_node; entity start_node; -.float is_path_node; +.bool is_path_node; .float pathlib_node_g; .float pathlib_node_h; .float pathlib_node_f; @@ -47,7 +44,7 @@ float pathlib_closed_cnt; float pathlib_made_cnt; float pathlib_merge_cnt; float pathlib_searched_cnt; -float pathlib_bestopen_seached; +float pathlib_bestopen_searched; float pathlib_bestcash_hits; float pathlib_bestcash_saved; float pathlib_gridsize; @@ -64,10 +61,10 @@ entity best_open_node; vector tile_check_up; vector tile_check_down; float tile_check_size; -float tile_check_cross(vector where); -float tile_check_plus(vector where); -float tile_check_star(vector where); -var float tile_check(vector where); +bool tile_check_cross(entity this, vector where); +bool tile_check_plus(entity this, vector where); +bool tile_check_star(entity this, vector where); +var bool tile_check(entity this, vector where); float movenode_stepsize; vector movenode_stepup; @@ -75,17 +72,18 @@ vector movenode_maxdrop; vector movenode_boxup; vector movenode_boxmax; vector movenode_boxmin; -float pathlib_movenode_goodnode; +bool pathlib_movenode_goodnode; -vector pathlib_wateroutnode(vector start, vector end, float doedge); -vector pathlib_swimnode(vector start, vector end, float doedge); -vector pathlib_flynode(vector start, vector end, float doedge); -vector pathlib_walknode(vector start, vector end, float doedge); -var vector pathlib_movenode(vector start, vector end, float doedge); +vector pathlib_wateroutnode(entity this, vector start, vector end, float doedge); +vector pathlib_swimnode(entity this, vector start, vector end, float doedge); +vector pathlib_flynode(entity this, vector start, vector end, float doedge); +vector pathlib_walknode(entity this, vector start, vector end, float doedge); +var vector pathlib_movenode(entity this, vector start, vector end, float doedge); +//float pathlib_expandnode_starf(entity node, vector start, vector goal); float pathlib_expandnode_star(entity node, vector start, vector goal); float pathlib_expandnode_box(entity node, vector start, vector goal); -float pathlib_expandnode_octagon(entity node, vector start, vector goal); +//float pathlib_expandnode_octagon(entity node, vector start, vector goal); var float pathlib_expandnode(entity node, vector start, vector goal); float pathlib_g_static(entity parent, vector to, float static_cost); @@ -103,9 +101,10 @@ float pathlib_h_diagonal2sdp(vector preprev, vector prev, vector point, vec float pathlib_h_none(vector preprev, vector prev) { return 0; } var float pathlib_heuristic(vector from, vector to); -var float pathlib_makenode(entity parent,vector start, vector to, vector goal,float cost); -var float buildpath_nodefilter(vector n,vector c,vector p); +var bool pathlib_makenode(entity parent,vector start, vector to, vector goal,float cost); +var bool buildpath_nodefilter(vector n,vector c,vector p); var float pathlib_wpp_waypointcallback(entity wp, entity wp_prev); -#endif +IntrusiveList g_pathlib_nodes; +STATIC_INIT(g_pathlib_nodes) { g_pathlib_nodes = IL_NEW(); }