]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/pathlib/path_waypoint.qc
Impulses: migration pathway
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / pathlib / path_waypoint.qc
index 73b415537b2233d4faeeb2d16cc9a5443d5f78c4..4c3a7a1aadb70153b8918a330851467e74d19b1c 100644 (file)
@@ -1,3 +1,8 @@
+#include "../bot/waypoints.qh"
+
+#include "pathlib.qh"
+#include "main.qh"
+
 var float pathlib_wpp_open(entity wp, entity child, float cost);
 
 void pathlib_wpp_close(entity wp)
@@ -11,61 +16,61 @@ void pathlib_wpp_close(entity wp)
         best_open_node = world;
 
     if(wp == goal_node)
-        pathlib_foundgoal = TRUE;
+        pathlib_foundgoal = true;
 }
 
 float pathlib_wpp_opencb(entity wp, entity child, float cost)
 {
 
     if(child.pathlib_list == closedlist)
-        return FALSE;
+        return false;
 
        // FIXME! wp.wp##mincost is NOT distance. Make it distance or add a field for distance to be used here (for better speed)
        cost = vlen(child.origin - wp.origin);
-       
+
     child.path_prev     = wp;
     child.pathlib_list   = openlist;
     child.pathlib_node_g = wp.pathlib_node_g + cost;
     child.pathlib_node_h = pathlib_heuristic(child.origin, goal_node.origin);
     child.pathlib_node_c = pathlib_wpp_waypointcallback(child, wp);
     child.pathlib_node_f = child.pathlib_node_g + child.pathlib_node_h + child.pathlib_node_c;
-    
+
 
     if(child == goal_node)
-        pathlib_foundgoal = TRUE;
+        pathlib_foundgoal = true;
 
     ++pathlib_open_cnt;
 
     if(best_open_node.pathlib_node_f > child.pathlib_node_f)
         best_open_node = child;
 
-    return TRUE;
+    return true;
 }
 
 float pathlib_wpp_openncb(entity wp, entity child, float cost)
 {
 
     if(child.pathlib_list == closedlist)
-        return FALSE;
+        return false;
 
        // FIXME! wp.wp##mincost is NOT distance. Make it distance or add a field for distance to be used here (for better speed)
        cost = vlen(child.origin - wp.origin);
-       
+
     child.path_prev     = wp;
     child.pathlib_list   = openlist;
     child.pathlib_node_g = wp.pathlib_node_g + cost;
-    child.pathlib_node_h = pathlib_heuristic(child.origin, goal_node.origin); 
+    child.pathlib_node_h = pathlib_heuristic(child.origin, goal_node.origin);
     child.pathlib_node_f = child.pathlib_node_g + child.pathlib_node_h;
 
     if(child == goal_node)
-        pathlib_foundgoal = TRUE;
+        pathlib_foundgoal = true;
 
     ++pathlib_open_cnt;
 
     if(best_open_node.pathlib_node_f > child.pathlib_node_f)
         best_open_node = child;
 
-    return TRUE;
+    return true;
 }
 
 float pathlib_wpp_expand(entity wp)
@@ -102,7 +107,7 @@ float pathlib_wpp_expand(entity wp)
     if(wp.wp29) pathlib_wpp_open(wp,wp.wp29,wp.wp29mincost); else return 29;
     if(wp.wp30) pathlib_wpp_open(wp,wp.wp30,wp.wp30mincost); else return 30;
     if(wp.wp31) pathlib_wpp_open(wp,wp.wp31,wp.wp31mincost); else return 31;
-    
+
     return 32;
 }
 
@@ -133,32 +138,32 @@ entity pathlib_waypointpath(entity wp_from, entity wp_to, float callback)
     float ptime;
 
     ptime                                      = gettime(GETTIME_REALTIME);
-    pathlib_starttime          = ptime;        
+    pathlib_starttime          = ptime;
        pathlib_movecost                = 300;
        pathlib_movecost_diag   = vlen('1 1 0' * pathlib_movecost);
-       
-       if not (pathlib_wpp_waypointcallback) 
-               callback = FALSE;
-               
+
+       if (!pathlib_wpp_waypointcallback)
+               callback = false;
+
        if (callback)
                pathlib_wpp_open = pathlib_wpp_opencb;
        else
                pathlib_wpp_open = pathlib_wpp_openncb;
-       
+
        pathlib_heuristic = pathlib_h_none;
-       
-    if not(openlist)
+
+    if (!openlist)
         openlist       = spawn();
 
-    if not(closedlist)
+    if (!closedlist)
         closedlist     = spawn();
 
     pathlib_closed_cnt       = 0;
     pathlib_open_cnt         = 0;
     pathlib_searched_cnt     = 0;
-    pathlib_foundgoal      = FALSE;
+    pathlib_foundgoal      = false;
 
-    dprint("pathlib_waypointpath init\n");
+    LOG_TRACE("pathlib_waypointpath init\n");
 
     // Initialize waypoint grid
     // FIXME! presisted chain for better preformance
@@ -168,22 +173,22 @@ entity pathlib_waypointpath(entity wp_from, entity wp_to, float callback)
         n.pathlib_node_g = 0;
         n.pathlib_node_f = 0;
         n.pathlib_node_h = 0;
-        
+
         //setmodel(n, "models/runematch/rune.mdl");
         //n.effects = EF_LOWPRECISION;
         //n.colormod = '0 0 0';
         //n.scale = 1;
-        
+
     }
 
     goal_node  = wp_to;
     start_node = wp_from;
 
     start_node.pathlib_list = closedlist;
-    dprint("Expanding ",ftos(pathlib_wpp_expand(start_node))," links\n");
+    LOG_TRACE("Expanding ",ftos(pathlib_wpp_expand(start_node))," links\n");
     if(pathlib_open_cnt <= 0)
     {
-        dprint("pathlib_waypointpath: Start waypoint not linked! aborting.\n");
+        LOG_TRACE("pathlib_waypointpath: Start waypoint not linked! aborting.\n");
         return world;
     }
 
@@ -197,23 +202,23 @@ entity pathlib_waypointpath_step()
     n = pathlib_wpp_bestopen();
     if(!n)
     {
-        dprint("Cannot find best open node, abort.\n");
+        LOG_TRACE("Cannot find best open node, abort.\n");
         return world;
     }
     pathlib_wpp_close(n);
-       dprint("Expanding ",ftos(pathlib_wpp_expand(n))," links\n");
-       
+       LOG_TRACE("Expanding ",ftos(pathlib_wpp_expand(n))," links\n");
+
     if(pathlib_foundgoal)
     {
         entity start, end, open, ln;
-        
-        dprint("Target found. Rebuilding and filtering path...\n");
-        
+
+        LOG_TRACE("Target found. Rebuilding and filtering path...\n");
+
                buildpath_nodefilter = buildpath_nodefilter_none;
                start = path_build(world, start_node.origin, world, world);
                end   = path_build(world, goal_node.origin, world, start);
                ln    = end;
-               
+
                for(open = goal_node; open.path_prev != start_node; open = open.path_prev)
                {
                        n    = path_build(ln,open.origin,open.path_prev,start);
@@ -221,15 +226,15 @@ entity pathlib_waypointpath_step()
                        ln = n;
                }
                start.path_next = n;
-               n.path_prev = start;            
-               
+               n.path_prev = start;
+
         return start;
     }
 
     return world;
 }
 void plas_think()
-{
+{SELFPARAM();
     pathlib_waypointpath_step();
     if(pathlib_foundgoal)
         return;