diff --git a/doc/fixes34.1 b/doc/fixes34.1 index 34ae36438..cd7b4b0d5 100644 --- a/doc/fixes34.1 +++ b/doc/fixes34.1 @@ -353,6 +353,8 @@ really add artifacts inside carried containers to final score (3.3.1 fix drop alternate weapon to terminate twoweapon combat if the alternate weapon gets cursed restore monster creation sanity checks to wizard mode ^G command +prevent recoil from hurtling you through narrow areas that you wouldn't + be able to move through intentionally Platform- and/or Interface-Specific Fixes diff --git a/src/dothrow.c b/src/dothrow.c index 8eeea3dfb..8520ffb95 100644 --- a/src/dothrow.c +++ b/src/dothrow.c @@ -471,6 +471,17 @@ hurtle_step(arg, x, y) losehp(rnd(2+*range), "touching the edge of the universe", KILLED_BY); return FALSE; } + if ((u.ux - x) && (u.uy - y) && + bad_rock(youmonst.data,u.ux,y) && bad_rock(youmonst.data,x,u.uy)) { + boolean too_much = (invent && (inv_weight() + weight_cap() > 600)); + /* Move at a diagonal. */ + if (bigmonst(youmonst.data) || too_much) { + You("%sget forcefully wedged into a crevice.", + too_much ? "and all your belongings " : ""); + losehp(rnd(2+*range), "wedging into a narrow crevice", KILLED_BY); + return FALSE; + } + } } if ((mon = m_at(x, y)) != 0) {