fix #K4063 - "back on ground" given at odd time
Moving over at item that's resting on ice gives a message about there being ice present and then about the item, whether mention_decor is On or Off. With it On, you'll get a message about being back on solid ground as soon as you leave the ice. With it Off you wouldn't get that at all if not levitating; that's the basic no-mention_decor behavior for ice. However, if you were levitating, you would get a delayed "back on solid ground" message when moving over some other object, which might occur quite a bit later. Autopickup handling is calling describe_decor() when the hero is levitating and some of that wasn't appropriate for no-mention_decor. This issue has been present since I first implemented mention_decor, not introduced by recent back_on_ground() changes.
This commit is contained in:
@@ -1138,9 +1138,7 @@ slip_or_trip(void)
|
||||
struct obj *otmp = vobj_at(u.ux, u.uy), *otmp2;
|
||||
const char *what;
|
||||
char buf[BUFSZ];
|
||||
boolean on_foot = TRUE;
|
||||
if (u.usteed)
|
||||
on_foot = FALSE;
|
||||
boolean on_foot = !u.usteed;
|
||||
|
||||
if (otmp && on_foot && !u.uinwater && is_pool(u.ux, u.uy))
|
||||
otmp = 0;
|
||||
@@ -1179,11 +1177,14 @@ slip_or_trip(void)
|
||||
/* is fumbling from ice alone? */
|
||||
boolean ice_only = !(EFumbling || (HFumbling & ~FROMOUTSIDE));
|
||||
|
||||
pline("%s %s%s on the ice.",
|
||||
pline("%s %s%s %s the ice.",
|
||||
u.usteed ? upstart(x_monnam(u.usteed, ARTICLE_THE, (char *) 0,
|
||||
SUPPRESS_SADDLE, FALSE))
|
||||
: "You",
|
||||
rn2(2) ? "slip" : "slide", on_foot ? "" : "s");
|
||||
rn2(2) ? "slip" : "slide", on_foot ? "" : "s",
|
||||
/* sometimes slipping due to ice occurs during turn that hero
|
||||
has just moved off the ice; phrase things differently then */
|
||||
is_ice(u.ux, u.uy) ? "on" : "off");
|
||||
/* fumbling outside of ice while mounted always causes the hero to
|
||||
fall from the saddle, so to avoid a counterintuitive effect where
|
||||
ice makes riding _less_ hazardous, unconditionally dismount if
|
||||
|
||||
Reference in New Issue
Block a user