#tip horn of plenty (trunk only)

Bug in #tip handling for horn of plenty.  Emptying one while levitating
would trigger an "obj not free" panic by flooreffects() due to following
hitfloor() with redundant/inappropriate dropy().
This commit is contained in:
nethack.rankin
2006-06-20 02:31:37 +00:00
parent 58137a608a
commit ed202000f1

View File

@@ -1815,14 +1815,16 @@ boolean tipping; /* caller emptying entire contents; affects shop handling */
(const char *)0);
} else {
/* assumes this is taking place at hero's location */
if (!can_reach_floor(TRUE))
hitfloor(obj);
else if (IS_ALTAR(levl[u.ux][u.uy].typ))
doaltarobj(obj);
else
pline("%s %s to the %s.", Doname2(obj),
otense(obj, "drop"), surface(u.ux, u.uy));
dropy(obj);
if (!can_reach_floor(TRUE)) {
hitfloor(obj); /* does altar check, message, drop */
} else {
if (IS_ALTAR(levl[u.ux][u.uy].typ))
doaltarobj(obj); /* does its own drop message */
else
pline("%s %s to the %s.", Doname2(obj),
otense(obj, "drop"), surface(u.ux, u.uy));
dropy(obj);
}
}
if (horn->dknown) makeknown(HORN_OF_PLENTY);
}