]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/server/pathlib/pathlib.qh
#include this
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / pathlib / pathlib.qh
1 #ifndef PATHLIB_H
2 #define PATHLIB_H
3
4 #if defined(CSQC)
5 #elif defined(MENUQC)
6 #elif defined(SVQC)
7         #include "../../common/util-pre.qh"
8     #include "../sys-pre.qh"
9     #include "../../dpdefs/progsdefs.qc"
10     #include "../../dpdefs/dpextensions.qc"
11     #include "../sys-post.qh"
12     #include "../../warpzonelib/anglestransform.qh"
13     #include "../../warpzonelib/mathlib.qh"
14     #include "../../warpzonelib/common.qh"
15     #include "../../warpzonelib/util_server.qh"
16     #include "../../warpzonelib/server.qh"
17     #include "../../common/constants.qh"
18     #include "../../common/stats.qh"
19     #include "../../common/teams.qh"
20     #include "../../common/util.qh"
21     #include "../../common/nades.qh"
22     #include "../../common/buffs.qh"
23     #include "../../common/test.qh"
24     #include "../../common/counting.qh"
25     #include "../../common/urllib.qh"
26     #include "../../common/command/markup.qh"
27     #include "../../common/command/rpn.qh"
28     #include "../../common/command/generic.qh"
29     #include "../../common/command/shared_defs.qh"
30     #include "../../common/net_notice.qh"
31     #include "../../common/animdecide.qh"
32     #include "../../common/monsters/monsters.qh"
33     #include "../../common/monsters/sv_monsters.qh"
34     #include "../../common/monsters/spawn.qh"
35     #include "../../common/weapons/config.qh"
36     #include "../../common/weapons/weapons.qh"
37     #include "../weapons/accuracy.qh"
38     #include "../weapons/common.qh"
39     #include "../weapons/csqcprojectile.qh"
40     #include "../weapons/hitplot.qh"
41     #include "../weapons/selection.qh"
42     #include "../weapons/spawning.qh"
43     #include "../weapons/throwing.qh"
44     #include "../weapons/tracing.qh"
45     #include "../weapons/weaponstats.qh"
46     #include "../weapons/weaponsystem.qh"
47     #include "../t_items.qh"
48     #include "../autocvars.qh"
49     #include "../constants.qh"
50     #include "../defs.qh"
51     #include "../../common/notifications.qh"
52     #include "../../common/deathtypes.qh"
53     #include "../mutators/mutators_include.qh"
54     #include "../tturrets/include/turrets_early.qh"
55     #include "../vehicles/vehicles_def.qh"
56     #include "../campaign.qh"
57     #include "../../common/campaign_common.qh"
58     #include "../../common/mapinfo.qh"
59     #include "../command/common.qh"
60     #include "../command/banning.qh"
61     #include "../command/radarmap.qh"
62     #include "../command/vote.qh"
63     #include "../command/getreplies.qh"
64     #include "../command/cmd.qh"
65     #include "../command/sv_cmd.qh"
66     #include "../../common/csqcmodel_settings.qh"
67     #include "../../csqcmodellib/common.qh"
68     #include "../../csqcmodellib/sv_model.qh"
69     #include "../anticheat.qh"
70     #include "../cheats.qh"
71     #include "../../common/playerstats.qh"
72     #include "../portals.qh"
73     #include "../g_hook.qh"
74     #include "../scores.qh"
75     #include "../spawnpoints.qh"
76     #include "../mapvoting.qh"
77     #include "../ipban.qh"
78     #include "../race.qh"
79     #include "../antilag.qh"
80     #include "../playerdemo.qh"
81     #include "../round_handler.qh"
82     #include "../item_key.qh"
83     #include "../secret.qh"
84 #endif
85
86
87 .entity pathlib_list;
88 .entity path_next;
89 .entity path_prev;
90
91 #define inwater(point) (pointcontents(point) == CONTENT_WATER)
92 #define medium spawnshieldtime
93
94 const vector PLIB_FORWARD = '0 1 0';
95 //#define PLIB_BACK    '0 -1 0'
96 const vector PLIB_RIGHT = '1 0 0';
97 //#define PLIB_LEFT    '-1 0 0'
98
99 #define DEBUGPATHING
100 #ifdef DEBUGPATHING
101 void pathlib_showpath(entity start);
102 void pathlib_showpath2(entity path);
103 #endif
104
105 entity openlist;
106 entity closedlist;
107
108 entity goal_node;
109 entity start_node;
110
111 .float is_path_node;
112 .float pathlib_node_g;
113 .float pathlib_node_h;
114 .float pathlib_node_f;
115 .float pathlib_node_c;
116
117 const float pathlib_node_edgeflag_unknown               = 0;
118 const float pathlib_node_edgeflag_left                  = 2;
119 const float pathlib_node_edgeflag_right                 = 4;
120 const float pathlib_node_edgeflag_forward               = 8;
121 const float pathlib_node_edgeflag_back                  = 16;
122 const float pathlib_node_edgeflag_backleft              = 32;
123 const float pathlib_node_edgeflag_backright     = 64;
124 const float pathlib_node_edgeflag_forwardleft   = 128;
125 const float pathlib_node_edgeflag_forwardright  = 256;
126 const float pathlib_node_edgeflag_none                  = 512;
127 .float pathlib_node_edgeflags;
128
129 float pathlib_open_cnt;
130 float pathlib_closed_cnt;
131 float pathlib_made_cnt;
132 float pathlib_merge_cnt;
133 float pathlib_searched_cnt;
134 float pathlib_bestopen_seached;
135 float pathlib_bestcash_hits;
136 float pathlib_bestcash_saved;
137 float pathlib_gridsize;
138 float pathlib_movecost;
139 float pathlib_movecost_diag;
140 float pathlib_movecost_waterfactor;
141 float pathlib_foundgoal;
142
143 float pathlib_starttime;
144 const float pathlib_maxtime = 60;
145
146 entity best_open_node;
147
148 vector tile_check_up;
149 vector tile_check_down;
150 float  tile_check_size;
151 float     tile_check_cross(vector where);
152 float     tile_check_plus(vector where);
153 float     tile_check_star(vector where);
154 var float tile_check(vector where);
155
156 float  movenode_stepsize;
157 vector movenode_stepup;
158 vector movenode_maxdrop;
159 vector movenode_boxup;
160 vector movenode_boxmax;
161 vector movenode_boxmin;
162 float  pathlib_movenode_goodnode;
163
164 vector     pathlib_wateroutnode(vector start, vector end, float doedge);
165 vector     pathlib_swimnode(vector start, vector end, float doedge);
166 vector     pathlib_flynode(vector start, vector end, float doedge);
167 vector     pathlib_walknode(vector start, vector end, float doedge);
168 var vector pathlib_movenode(vector start, vector end, float doedge);
169
170 float      pathlib_expandnode_star(entity node, vector start, vector goal);
171 float      pathlib_expandnode_box(entity node, vector start, vector goal);
172 float      pathlib_expandnode_octagon(entity node, vector start, vector goal);
173 var float  pathlib_expandnode(entity node, vector start, vector goal);
174
175 float      pathlib_g_static(entity parent, vector to, float static_cost);
176 float      pathlib_g_static_water(entity parent, vector to, float static_cost);
177 float      pathlib_g_euclidean(entity parent, vector to, float static_cost);
178 float      pathlib_g_euclidean_water(entity parent, vector to, float static_cost);
179 var float  pathlib_cost(entity parent, vector to, float static_cost);
180
181 float      pathlib_h_manhattan(vector a, vector b);
182 float      pathlib_h_diagonal(vector a, vector b);
183 float      pathlib_h_euclidean(vector a,vector b);
184 float      pathlib_h_diagonal2(vector a, vector b);
185 float      pathlib_h_diagonal3(vector a, vector b);
186 float      pathlib_h_diagonal2sdp(vector preprev, vector prev, vector point, vector end);
187 float      pathlib_h_none(vector preprev, vector prev) { return 0; }
188 var float  pathlib_heuristic(vector from, vector to);
189
190 var float  pathlib_makenode(entity parent,vector start, vector to, vector goal,float cost);
191 var float  buildpath_nodefilter(vector n,vector c,vector p);
192
193 var float  pathlib_wpp_waypointcallback(entity wp, entity wp_prev);
194
195 #ifdef DEBUGPATHING
196         #include "debug.qc"
197 #endif
198
199 #include "utility.qc"
200 #include "movenode.qc"
201 #include "costs.qc"
202 #include "expandnode.qc"
203 #include "main.qc"
204 #include "path_waypoint.qc"
205 #endif