]> granicus.if.org Git - nethack/commitdiff
Make getpos monster/object coord picker deterministic
authorPasi Kallinen <paxed@alt.org>
Wed, 13 Jan 2016 08:22:41 +0000 (10:22 +0200)
committerPasi Kallinen <paxed@alt.org>
Wed, 13 Jan 2016 08:22:44 +0000 (10:22 +0200)
...and make it pick coordinates top-left to bottom-right.

src/do_name.c

index aca4df3d2cee1e4f1f39289aaa58e8aea2392b37..bd6d5e1954fd4753fa47765370079fcbc9727ab0 100644 (file)
@@ -88,10 +88,13 @@ const void *b;
 
     dx = u.ux - c1->x;
     dy = u.uy - c1->y;
-    dist_1 = dx * dx + dy * dy;
+    dist_1 = max(abs(dx), abs(dy));
     dx = u.ux - c2->x;
     dy = u.uy - c2->y;
-    dist_2 = dx * dx + dy * dy;
+    dist_2 = max(abs(dx), abs(dy));
+
+    if (dist_1 == dist_2)
+        return (c1->y != c2->y) ? (c1->y - c2->y) : (c1->x - c2->x);
 
     return dist_1 - dist_2;
 }