]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/pathlib/costs.qc
Merge branch 'master' into martin-t/defaults
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / pathlib / costs.qc
index 3e452f66e7dc02dbf2937410c44e08ba8684f95d..1449e382a6913daffb425bb5d58d5b7e666cb564 100644 (file)
@@ -1,4 +1,4 @@
-#include "pathlib.qh"
+#include "costs.qh"
 
 float pathlib_g_static(entity parent,vector to, float static_cost)
 {
@@ -35,8 +35,7 @@ float pathlib_h_manhattan(vector a,vector b)
 {
     //h(n) = D * (abs(n.x-goal.x) + abs(n.y-goal.y))
 
-    float h;
-    h  = fabs(a.x - b.x);
+    float h  = fabs(a.x - b.x);
     h += fabs(a.y - b.y);
     h *= pathlib_gridsize;
 
@@ -50,11 +49,10 @@ float pathlib_h_manhattan(vector a,vector b)
 float pathlib_h_diagonal(vector a,vector b)
 {
     //h(n) = D * max(abs(n.x-goal.x), abs(n.y-goal.y))
-    float h,x,y;
 
-    x = fabs(a.x - b.x);
-    y = fabs(a.y - b.y);
-    h = pathlib_movecost * max(x,y);
+    float hx = fabs(a.x - b.x);
+    float hy = fabs(a.y - b.y);
+    float h = pathlib_movecost * max(hx,hy);
 
     return h;
 }
@@ -75,21 +73,19 @@ float pathlib_h_euclidean(vector a,vector b)
 **/
 float pathlib_h_diagonal2(vector a,vector b)
 {
-    float h_diag,h_str,h,x,y;
-
     /*
     h_diagonal(n) = min(abs(n.x-goal.x), abs(n.y-goal.y))
     h_straight(n) = (abs(n.x-goal.x) + abs(n.y-goal.y))
     h(n) = D2 * h_diagonal(n) + D * (h_straight(n) - 2*h_diagonal(n)))
     */
 
-    x = fabs(a.x - b.x);
-    y = fabs(a.y - b.y);
+    float hx = fabs(a.x - b.x);
+    float hy = fabs(a.y - b.y);
 
-    h_diag = min(x,y);
-    h_str = x + y;
+    float h_diag = min(hx,hy);
+    float h_str = hx + hy;
 
-    h =  pathlib_movecost_diag * h_diag;
+    float h =  pathlib_movecost_diag * h_diag;
     h += pathlib_movecost * (h_str - 2 * h_diag);
 
     return h;
@@ -101,28 +97,23 @@ float pathlib_h_diagonal2(vector a,vector b)
 **/
 float pathlib_h_diagonal2sdp(vector preprev,vector prev,vector point,vector end)
 {
-    float h_diag,h_str,h,x,y,z;
-
     //h_diagonal(n) = min(abs(n.x-goal.x), abs(n.y-goal.y))
     //h_straight(n) = (abs(n.x-goal.x) + abs(n.y-goal.y))
     //h(n) = D2 * h_diagonal(n) + D * (h_straight(n) - 2*h_diagonal(n)))
 
-    x = fabs(point.x - end.x);
-    y = fabs(point.y - end.y);
-    z = fabs(point.z - end.z);
+    float hx = fabs(point.x - end.x);
+    float hy = fabs(point.y - end.y);
+    float hz = fabs(point.z - end.z);
 
-    h_diag = min3(x,y,z);
-    h_str = x + y + z;
+    float h_diag = min3(hx,hy,hz);
+    float h_str = hx + hy + hz;
 
-    h =  pathlib_movecost_diag * h_diag;
+    float h =  pathlib_movecost_diag * h_diag;
     h += pathlib_movecost * (h_str - 2 * h_diag);
 
-    float m;
-    vector d1,d2;
-
-    d1 = normalize(preprev - point);
-    d2 = normalize(prev    - point);
-    m = vlen(d1-d2);
+    vector d1 = normalize(preprev - point);
+    vector d2 = normalize(prev    - point);
+    float m = vlen(d1-d2);
 
     return h * m;
 }
@@ -130,16 +121,14 @@ float pathlib_h_diagonal2sdp(vector preprev,vector prev,vector point,vector end)
 
 float pathlib_h_diagonal3(vector a,vector b)
 {
-    float h_diag,h_str,h,x,y,z;
-
-    x = fabs(a.x - b.x);
-    y = fabs(a.y - b.y);
-    z = fabs(a.z - b.z);
+    float hx = fabs(a.x - b.x);
+    float hy = fabs(a.y - b.y);
+    float hz = fabs(a.z - b.z);
 
-    h_diag = min3(x,y,z);
-    h_str = x + y + z;
+    float h_diag = min3(hx,hy,hz);
+    float h_str = hx + hy + hz;
 
-    h =  pathlib_movecost_diag * h_diag;
+    float h =  pathlib_movecost_diag * h_diag;
     h += pathlib_movecost * (h_str - 2 * h_diag);
 
     return h;