X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fpathlib%2Fpathlib.qh;h=dbf785266ae67a266a1b9d9c4f66ebac245fc60c;hb=45d8904a100765555e622598a39967963733df1d;hp=d1b6667d715f4a6075f992f999ceb846a608e339;hpb=6998d3c10219961585216b306e4e5b7c7c2e8b54;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/pathlib/pathlib.qh b/qcsrc/server/pathlib/pathlib.qh index d1b6667d7..d1bafe392 100644 --- a/qcsrc/server/pathlib/pathlib.qh +++ b/qcsrc/server/pathlib/pathlib.qh @@ -1,43 +1,42 @@ +#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 -#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 -#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; .float pathlib_node_c; -#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 +const float pathlib_node_edgeflag_unknown = 0; +const float pathlib_node_edgeflag_left = BIT(1); +const float pathlib_node_edgeflag_right = BIT(2); +const float pathlib_node_edgeflag_forward = BIT(3); +const float pathlib_node_edgeflag_back = BIT(4); +const float pathlib_node_edgeflag_backleft = BIT(5); +const float pathlib_node_edgeflag_backright = BIT(6); +const float pathlib_node_edgeflag_forwardleft = BIT(7); +const float pathlib_node_edgeflag_forwardright = BIT(8); +const float pathlib_node_edgeflag_none = BIT(9); .float pathlib_node_edgeflags; float pathlib_open_cnt; @@ -45,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; @@ -55,17 +54,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); +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; @@ -73,13 +72,13 @@ 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_star(entity node, vector start, vector goal); float pathlib_expandnode_box(entity node, vector start, vector goal); @@ -101,18 +100,7 @@ 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); - -#ifdef DEBUGPATHING - #include "debug.qc" -#endif - -#include "utility.qc" -#include "movenode.qc" -#include "costs.qc" -#include "expandnode.qc" -#include "main.qc" -#include "path_waypoint.qc"