'urgent' messages

Follow up on some old groundwork.  For tty, if the core has designated
a message as 'urgent', override any message suppression taking place
because of ESC typed at the --More-- prompt.  Right now, "You die"
messages, feedback about having something stolen, feedback for
"amorous demon" interaction (mainly in case of armor removal), and
exploding a bag of holding are treated as urgent.

The "You die" case is already handled by a hack in top-line handling;
I left that in place so the conversion of 3 or 4 pline("You die.*")
to custompline(URGENT_MESSAGE, "You die.*") was redundant.  There
are probably various non-You_die messages which precede done() which
should be marked urgent too.

Other interfaces might want to do something similar.  And we ought to
implement MSGTYPE=force or MSGTYPE=urgent to allow players to indicate
other messages that they want have to override suppression.  But I'm
not intending to work on either of those.  I mainly wanted to force
the magic bag explosion message to be shown since a sequence of "You
put <foo> into <bag>." messages is a likely candidate for --More--ESC.
This commit is contained in:
PatR
2021-12-17 17:46:49 -08:00
parent 420afb6b1f
commit 420d121f93
9 changed files with 55 additions and 38 deletions

View File

@@ -1838,11 +1838,12 @@ doseduce(struct monst *mon)
}
naked = (!uarmc && !uarmf && !uarmg && !uarms && !uarmh && !uarmu);
pline("%s %s%s.", Who,
Deaf ? "seems to murmur into your ear"
: naked ? "murmurs sweet nothings into your ear"
: "murmurs in your ear",
naked ? "" : ", while helping you undress");
custompline(URGENT_MESSAGE,
"%s %s%s.", Who,
Deaf ? "seems to murmur into your ear"
: naked ? "murmurs sweet nothings into your ear"
: "murmurs in your ear",
naked ? "" : ", while helping you undress");
mayberem(mon, Who, uarmc, cloak_simple_name(uarmc));
if (!uarmc)
mayberem(mon, Who, uarm, suit_simple_name(uarm));
@@ -1878,7 +1879,8 @@ doseduce(struct monst *mon)
verbalize("Well, then you owe me %s%s!",
yourgloves ? yname(yourgloves)
: "twelve pairs of gloves",
yourgloves ? " and eleven more pairs of gloves" : "");
yourgloves ? " and eleven more pairs of gloves"
: "");
}
} else if (seewho)
pline("%s appears to sigh.", Monnam(mon));
@@ -1892,8 +1894,9 @@ doseduce(struct monst *mon)
adjalign(1);
/* by this point you have discovered mon's identity, blind or not... */
pline("Time stands still while you and %s lie in each other's arms...",
noit_mon_nam(mon));
custompline(URGENT_MESSAGE,
"Time stands still while you and %s lie in each other's arms...",
noit_mon_nam(mon));
/* 3.6.1: a combined total for charisma plus intelligence of 35-1
used to guarantee successful outcome; now total maxes out at 32
as far as deciding what will happen; chance for bad outcome when