fix gibhub issue #320 and more - 'mention_decor'
Fixes #320 Avoid giving "you are back on the bottom" nearly every step when moving around underwater. Avoid "you are back on floor" followed by "you trip over <object>" when fumbling in case that fumbling was due to being on ice when taking the step to floor. Done for all fumbling rather than just one-turn fumbling instigated by ice. When moving from ice or water to ground, show "you are back on floor" before listing objects at that spot instead of after. I think there was at least one more thing but have lost track. At any rate, 'mention_rate' potentially has a new set of bugs.
This commit is contained in:
@@ -716,7 +716,7 @@ nh_timeout()
|
||||
case FUMBLING:
|
||||
/* call this only when a move took place. */
|
||||
/* otherwise handle fumbling msgs locally. */
|
||||
if (u.umoved && !Levitation) {
|
||||
if (u.umoved && !(Levitation || Flying)) {
|
||||
slip_or_trip();
|
||||
nomul(-2);
|
||||
g.multi_reason = "fumbling";
|
||||
@@ -735,6 +735,22 @@ nh_timeout()
|
||||
HFumbling &= ~FROMOUTSIDE;
|
||||
if (Fumbling)
|
||||
incr_itimeout(&HFumbling, rnd(20));
|
||||
|
||||
if (iflags.defer_decor) {
|
||||
/*
|
||||
* describe_decor() is attempting to work around a
|
||||
* message sequencing issue: avoid
|
||||
* |You are back on floor.
|
||||
* |You trip over <object>.
|
||||
* if the trip is being caused by moving on ice
|
||||
* that the hero just left. A trip message has
|
||||
* just been given, now give change-in-terrain one.
|
||||
* Operate this way even for non-ice Fumbling so
|
||||
* that describe_decor() doesn't need to know any
|
||||
* details about that.
|
||||
*/
|
||||
deferred_decor(FALSE);
|
||||
}
|
||||
break;
|
||||
case DETECT_MONSTERS:
|
||||
see_monsters();
|
||||
|
||||
Reference in New Issue
Block a user