fix #H1803 - levitating at floor level...
From a bug report, being stuck in the floor or in lava and trying to move downwards while levitating gave "you are floating high above the floor/lava" which contradicts being stuck. Now you'll get "you are trapped in the floor/lava" in that situation. I thought about letting it fall through to the chance to autodig with wielded pick, but decided to go with just the alternate message. (Being tethered to a buried iron ball still lets you "float high above the floor", so this doesn't check for being trapped that way.)
This commit is contained in:
@@ -376,6 +376,8 @@ ensure current_fruit gets set to the correct index when setting fruit
|
|||||||
monsters already wearing suits can't put on shirts
|
monsters already wearing suits can't put on shirts
|
||||||
if life-saved steed became untame, repeated "placing steed onto map?" warnings
|
if life-saved steed became untame, repeated "placing steed onto map?" warnings
|
||||||
would be given as long as the hero remained mounted
|
would be given as long as the hero remained mounted
|
||||||
|
trying to move down while levitating said "you are floating high above floor"
|
||||||
|
even when being stuck in floor or lava blocked full levitation
|
||||||
|
|
||||||
|
|
||||||
Platform- and/or Interface-Specific Fixes
|
Platform- and/or Interface-Specific Fixes
|
||||||
|
|||||||
@@ -764,11 +764,10 @@ dodown()
|
|||||||
|
|
||||||
for(obj = invent; obj; obj = obj->nobj) {
|
for(obj = invent; obj; obj = obj->nobj) {
|
||||||
if (obj->oartifact &&
|
if (obj->oartifact &&
|
||||||
artifact_has_invprop(obj,LEVITATION)) {
|
artifact_has_invprop(obj, LEVITATION)) {
|
||||||
if (obj->age < monstermoves)
|
if (obj->age < monstermoves)
|
||||||
obj->age = monstermoves + rnz(100);
|
obj->age = monstermoves;
|
||||||
else
|
obj->age += rnz(100);
|
||||||
obj->age += rnz(100);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+12
-2
@@ -1,4 +1,4 @@
|
|||||||
/* SCCS Id: @(#)fountain.c 3.5 2008/01/19 */
|
/* SCCS Id: @(#)fountain.c 3.5 2009/01/31 */
|
||||||
/* Copyright Scott R. Turner, srt@ucla, 10/27/86 */
|
/* Copyright Scott R. Turner, srt@ucla, 10/27/86 */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -12,11 +12,21 @@ STATIC_DCL void NDECL(dowaternymph);
|
|||||||
STATIC_PTR void FDECL(gush, (int,int,genericptr_t));
|
STATIC_PTR void FDECL(gush, (int,int,genericptr_t));
|
||||||
STATIC_DCL void NDECL(dofindgem);
|
STATIC_DCL void NDECL(dofindgem);
|
||||||
|
|
||||||
|
/* used when trying to dip in or drink from fountain or sink or pool while
|
||||||
|
levitating above it, or when trying to move downwards in that state */
|
||||||
void
|
void
|
||||||
floating_above(what)
|
floating_above(what)
|
||||||
const char *what;
|
const char *what;
|
||||||
{
|
{
|
||||||
You("are floating high above the %s.", what);
|
const char *umsg = "are floating high above the %s.";
|
||||||
|
|
||||||
|
if (u.utrap && (u.utraptype == TT_INFLOOR || u.utraptype == TT_LAVA)) {
|
||||||
|
/* when stuck in floor (not possible at fountain or sink location,
|
||||||
|
so must be attempting to move down), override the usual message */
|
||||||
|
umsg = "are trapped in the %s.";
|
||||||
|
what = surface(u.ux, u.uy); /* probably redundant */
|
||||||
|
}
|
||||||
|
You(umsg, what);
|
||||||
}
|
}
|
||||||
|
|
||||||
STATIC_OVL void
|
STATIC_OVL void
|
||||||
|
|||||||
Reference in New Issue
Block a user