]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/pathlib/pathlib.qh
Merge branch 'master' into Mario/vehicles
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / pathlib / pathlib.qh
index 1ceadbc8480faf5473f58fe16a28691c3fa80b97..d0029bfc4809be08e2d93195781100a082c755ad 100644 (file)
@@ -1,12 +1,16 @@
+#ifndef PATHLIB_H
+#define PATHLIB_H
+
+.entity pathlib_list;
 .entity path_next;
 .entity path_prev;
 
 #define inwater(point) (pointcontents(point) == CONTENT_WATER)
 #define medium spawnshieldtime
 
-#define PLIB_FORWARD '0 1 0'
+const vector PLIB_FORWARD = '0 1 0';
 //#define PLIB_BACK    '0 -1 0'
-#define PLIB_RIGHT   '1 0 0'
+const vector PLIB_RIGHT = '1 0 0';
 //#define PLIB_LEFT    '-1 0 0'
 
 #define DEBUGPATHING
@@ -17,24 +21,26 @@ void pathlib_showpath2(entity path);
 
 entity openlist;
 entity closedlist;
-entity edgelist;
+
 entity goal_node;
+entity start_node;
 
 .float is_path_node;
 .float pathlib_node_g;
 .float pathlib_node_h;
 .float pathlib_node_f;
-
-#define pathlib_node_edgeflag_unknown        0
-#define pathlib_node_edgeflag_left           2
-#define pathlib_node_edgeflag_right          4
-#define pathlib_node_edgeflag_forward        8
-#define pathlib_node_edgeflag_back           16
-#define pathlib_node_edgeflag_backleft       32
-#define pathlib_node_edgeflag_backright      64
-#define pathlib_node_edgeflag_forwardleft    128
-#define pathlib_node_edgeflag_forwardright   256
-#define pathlib_node_edgeflag_none           512
+.float pathlib_node_c;
+
+const float pathlib_node_edgeflag_unknown              = 0;
+const float pathlib_node_edgeflag_left                         = 2;
+const float pathlib_node_edgeflag_right                = 4;
+const float pathlib_node_edgeflag_forward              = 8;
+const float pathlib_node_edgeflag_back                         = 16;
+const float pathlib_node_edgeflag_backleft             = 32;
+const float pathlib_node_edgeflag_backright    = 64;
+const float pathlib_node_edgeflag_forwardleft  = 128;
+const float pathlib_node_edgeflag_forwardright         = 256;
+const float pathlib_node_edgeflag_none                         = 512;
 .float pathlib_node_edgeflags;
 
 float pathlib_open_cnt;
@@ -52,17 +58,17 @@ float pathlib_movecost_waterfactor;
 float pathlib_foundgoal;
 
 float pathlib_starttime;
-#define pathlib_maxtime 60
+const float pathlib_maxtime = 60;
 
 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);
+float     tile_check_cross(vector where);
+float     tile_check_plus(vector where);
+float     tile_check_star(vector where);
+var float tile_check(vector where);
 
 float  movenode_stepsize;
 vector movenode_stepup;
@@ -72,9 +78,9 @@ vector movenode_boxmax;
 vector movenode_boxmin;
 float  pathlib_movenode_goodnode;
 
-vector     pathlib_wateroutnode(vector start, vector end);
-vector     pathlib_swimnode(vector start, vector end);
-vector     pathlib_flynode(vector start, vector end);
+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);
 
@@ -95,14 +101,16 @@ float      pathlib_h_euclidean(vector a,vector b);
 float      pathlib_h_diagonal2(vector a, vector b);
 float      pathlib_h_diagonal3(vector a, vector b);
 float      pathlib_h_diagonal2sdp(vector preprev, vector prev, vector point, vector end);
+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 float  pathlib_wpp_waypointcallback(entity wp, entity wp_prev);
 
 #ifdef DEBUGPATHING
-#include "debug.qc"
+       #include "debug.qc"
 #endif
 
 #include "utility.qc"
@@ -111,3 +119,4 @@ var float  buildpath_nodefilter(vector n,vector c,vector p);
 #include "expandnode.qc"
 #include "main.qc"
 #include "path_waypoint.qc"
+#endif