Forwarded from the newsgroup by Michael: giving a count before '.' to
rest many turns wouldn't be interrupted by having levitation end (despite
autopickup taking place at the time, which is what the thread is about but
not all that relevant to this particular issue). Stopping counted activity
is easy, so that's all I've done. Stopping a timed occupation would be a
lot harder due to message sequencing; I'm not going to attempt it.
can hear the opening or closing of an unseen drawbridge
prevent "object lost" panic caused by accessing freed memory after worn
non-fireproof water walking boots are destroyed by lava
+stop multi-turn running, searching, or resting early if levitation ends
Platform- and/or Interface-Specific Fixes
HLevitation &= ~hmask;
ELevitation &= ~emask;
if(Levitation) return(0); /* maybe another ring/potion/boots */
+ nomul(0); /* stop running or resting */
if(u.uswallow) {
You("float down, but you are still %s.",
is_animal(u.ustuck->data) ? "swallowed" : "engulfed");