diff --git a/src/apply.c b/src/apply.c index 1b4dad81c..6eaf53dd4 100644 --- a/src/apply.c +++ b/src/apply.c @@ -2798,9 +2798,12 @@ doapply() otmp->blessed = obj->blessed; otmp->cursed = obj->cursed; otmp->owt = weight(otmp); - otmp = hold_another_object(otmp, - (u.uswallow || Is_airlevel(&u.uz) || - u.uinwater || Is_waterlevel(&u.uz)) ? + otmp = hold_another_object(otmp, u.uswallow ? + "Oops! %s out of your reach!" : + (Is_airlevel(&u.uz) || + Is_waterlevel(&u.uz) || + levl[u.ux][u.uy].typ < IRONBARS || + levl[u.ux][u.uy].typ >= ICE) ? "Oops! %s away from you!" : "Oops! %s to the floor!", The(aobjnam(otmp, "slip")), diff --git a/src/zap.c b/src/zap.c index ca26d524c..2d2ccc40f 100644 --- a/src/zap.c +++ b/src/zap.c @@ -4073,7 +4073,10 @@ retry: /* The(aobjnam()) is safe since otmp is unidentified -dlc */ (void) hold_another_object(otmp, u.uswallow ? "Oops! %s out of your reach!" : - Is_airlevel(&u.uz) || u.uinwater ? + (Is_airlevel(&u.uz) || + Is_waterlevel(&u.uz) || + levl[u.ux][u.uy].typ < IRONBARS || + levl[u.ux][u.uy].typ >= ICE) ? "Oops! %s away from you!" : "Oops! %s to the floor!", The(aobjnam(otmp,