From b75ce0b99682fbdab59768032d5701301cf9f759 Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Sat, 11 Jun 2016 19:27:50 +0300 Subject: [PATCH] Prevent diagonal jump through open door --- src/dothrow.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/dothrow.c b/src/dothrow.c index 2a70c8c35..b8a3778b5 100644 --- a/src/dothrow.c +++ b/src/dothrow.c @@ -544,9 +544,15 @@ int x, y; } if (!Passes_walls || !(may_pass = may_passwall(x, y))) { - if (IS_ROCK(levl[x][y].typ) || closed_door(x, y)) { + boolean odoor_diag = (IS_DOOR(levl[x][y].typ) + && (levl[x][y].doormask & D_ISOPEN) + && (u.ux - x) && (u.uy - y)); + if (IS_ROCK(levl[x][y].typ) || closed_door(x, y) + || odoor_diag) { const char *s; + if (odoor_diag) + You("hit the door edge!"); pline("Ouch!"); if (IS_TREE(levl[x][y].typ)) s = "bumping into a tree";