wizard mode: WIZKIT wishes could overflow inventory's 52 slots
when loading bones files, censor suspect characters from player-supplied
strings such as pet and fruit names
+can't swap places with tame grid bug when moving diagonally
Platform- and/or Interface-Specific Fixes
-/* SCCS Id: @(#)hack.c 3.5 2007/04/16 */
+/* SCCS Id: @(#)hack.c 3.5 2007/07/13 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
sobj_at(BOULDER, trap->tx, trap->ty)) {
/* can't swap places with pet pinned in a pit by a boulder */
u.ux = u.ux0, u.uy = u.uy0; /* didn't move after all */
+ } else if (u.ux0 != x && u.uy0 != y && NODIAG(mtmp->data - mons)) {
+ /* can't swap places when pet can't move to your spot */
+ u.ux = u.ux0, u.uy = u.uy0;
+ You("stop. %s can't move diagonally.",
+ upstart(y_monnam(mtmp)));
} else if (u.ux0 != x && u.uy0 != y &&
bad_rock(mtmp->data, x, u.uy0) &&
bad_rock(mtmp->data, u.ux0, y) &&
-/* SCCS Id: @(#)mon.c 3.5 2007/03/30 */
+/* SCCS Id: @(#)mon.c 3.5 2007/07/13 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
again when defender gets its chance to move */
if ((pa->mflags3 & M3_DISPLACES) != 0 &&
(pd->mflags3 & M3_DISPLACES) == 0 &&
+ /* no displacing grid bugs diagonally */
+ !(magr->mx != mdef->mx && magr->my != mdef->my &&
+ NODIAG(monsndx(pd))) &&
/* no displacing trapped monsters or multi-location longworms */
!mdef->mtrapped && (!mdef->wormno || !count_wsegs(mdef)) &&
/* riders can move anything; others, same size or smaller only */