]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/server/bot/waypoints.qh
Merge branch 'master' into terencehill/itemstime
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / bot / waypoints.qh
1 /*
2  * Globals and Fields
3  */
4
5 const float WAYPOINTFLAG_GENERATED = 8388608;
6 const float WAYPOINTFLAG_ITEM = 4194304;
7 const float WAYPOINTFLAG_TELEPORT = 2097152;
8 const float WAYPOINTFLAG_NORELINK = 1048576;
9 const float WAYPOINTFLAG_PERSONAL = 524288;
10 const float WAYPOINTFLAG_PROTECTED = 262144;  // Useless WP detection never kills these.
11 const float WAYPOINTFLAG_USEFUL = 131072;  // Useless WP detection temporary flag.
12 const float WAYPOINTFLAG_DEAD_END = 65536;  // Useless WP detection temporary flag.
13
14 // fields you can query using prvm_global server to get some statistics about waypoint linking culling
15 float relink_total, relink_walkculled, relink_pvsculled, relink_lengthculled;
16
17 float botframe_waypointeditorlightningtime;
18 float botframe_loadedforcedlinks;
19 float botframe_cachedwaypointlinks;
20
21 .entity wp00, wp01, wp02, wp03, wp04, wp05, wp06, wp07, wp08, wp09, wp10, wp11, wp12, wp13, wp14, wp15;
22 .entity wp16, wp17, wp18, wp19, wp20, wp21, wp22, wp23, wp24, wp25, wp26, wp27, wp28, wp29, wp30, wp31;
23
24 // itemscore = (howmuchmoreIwant / howmuchIcanwant) / itemdistance
25 .float wp00mincost, wp01mincost, wp02mincost, wp03mincost, wp04mincost, wp05mincost, wp06mincost, wp07mincost;
26 .float wp08mincost, wp09mincost, wp10mincost, wp11mincost, wp12mincost, wp13mincost, wp14mincost, wp15mincost;
27 .float wp16mincost, wp17mincost, wp18mincost, wp19mincost, wp20mincost, wp21mincost, wp22mincost, wp23mincost;
28 .float wp24mincost, wp25mincost, wp26mincost, wp27mincost, wp28mincost, wp29mincost, wp30mincost, wp31mincost;
29
30 .float wpfire, wpcost, wpconsidered, wpisbox, wpflags, wplinked, wphardwired;
31
32 .vector wpnearestpoint;
33
34 /*
35  * Functions
36  */
37
38 void spawnfunc_waypoint();
39 void waypoint_addlink(entity from, entity to);
40 void waypoint_think();
41 void waypoint_clearlinks(entity wp);
42 void waypoint_schedulerelink(entity wp);
43
44 void waypoint_remove(entity e);
45 void waypoint_removeall();
46 void waypoint_schedulerelinkall();
47 void waypoint_load_links_hardwired();
48 void waypoint_save_links();
49 void waypoint_saveall();
50
51 void waypoint_spawnforitem_force(entity e, vector org);
52 void waypoint_spawnforitem(entity e);
53 void waypoint_spawnforteleporter(entity e, vector destination, float timetaken);
54 void botframe_showwaypointlinks();
55
56 float waypoint_loadall();
57 float waypoint_load_links();
58
59 entity waypoint_spawn(vector m1, vector m2, float f);
60 entity waypoint_spawnpersonal(vector position);
61
62 vector waypoint_fixorigin(vector position);
63
64 void botframe_autowaypoints();