]> granicus.if.org Git - nethack/commitdiff
Fix guard shoving monsters away coordinate logic
authorPasi Kallinen <paxed@alt.org>
Thu, 22 Nov 2018 18:24:56 +0000 (20:24 +0200)
committerPasi Kallinen <paxed@alt.org>
Thu, 22 Nov 2018 18:25:03 +0000 (20:25 +0200)
The logic required both x and y coordinates of the guard location and
the new location the guard wanted to move to be different. This is
obviously wrong, as the guard may move horizontally or vertically.

src/vault.c

index 1947aa75be436866d4c31336482ebd2af0821e4c..7e47577e27ff791cd3c749ff2a1c64c23aeffc6a 100644 (file)
@@ -585,10 +585,10 @@ gd_mv_monaway(grd, nx,ny)
 register struct monst *grd;
 int nx,ny;
 {
-    if (MON_AT(nx, ny) && nx != grd->mx && ny != grd->my) {
+    if (MON_AT(nx, ny) && !(nx == grd->mx && ny == grd->my)) {
         if (!Deaf)
             verbalize("Out of my way, scum!");
-        if (!rloc(m_at(nx, ny), FALSE) || m_at(nx, ny))
+        if (!rloc(m_at(nx, ny), FALSE) || MON_AT(nx, ny))
             m_into_limbo(m_at(nx, ny));
     }
 }