fix floor descriptions on the Planes when levitating
fix warning glyph description when monster symbol coincided the warning symbol
allow the same color names for status hilites and menucolors
+override MSGTYPE=norep while executing the ':' command
Platform- and/or Interface-Specific Fixes
extern NEARDATA struct instance_flags iflags;
/* last_msg values */
-#define PLNMSG_UNKNOWN 0 /* arbitrary */
-#define PLNMSG_ONE_ITEM_HERE 1 /* "you see <single item> here" */
-#define PLNMSG_TOWER_OF_FLAME 2 /* scroll of fire */
+#define PLNMSG_NOSHO_OVERRIDE (-2)
+#define PLNMSG_NOREP_OVERRIDE (-1)
+#define PLNMSG_UNKNOWN 0 /* arbitrary */
+#define PLNMSG_ONE_ITEM_HERE 1 /* "you see <single item> here" */
+#define PLNMSG_TOWER_OF_FLAME 2 /* scroll of fire */
#define PLNMSG_CAUGHT_IN_EXPLOSION 3 /* explode() feedback */
-#define PLNMSG_OBJ_GLOWS 4 /* "the <obj> glows <color>" */
+#define PLNMSG_OBJ_GLOWS 4 /* "the <obj> glows <color>" */
/* runmode options */
#define RUN_TPORT 0 /* don't update display until movement stops */
skip_objects = (flags.pile_limit > 0 && obj_cnt >= flags.pile_limit);
if (u.uswallow && u.ustuck) {
struct monst *mtmp = u.ustuck;
+
Sprintf(fbuf, "Contents of %s %s", s_suffix(mon_nam(mtmp)),
mbodypart(mtmp, STOMACH));
/* Skip "Contents of " by using fbuf index 12 */
int
dolook()
{
+ iflags.last_msg = PLNMSG_NOREP_OVERRIDE;
return look_here(0, FALSE);
}
return;
}
+ /*
+ * Normally the sequence is
+ * caller: pline("some message");
+ * pline: vsprintf + putstr + iflags.last_msg = PLNMSG_UNKNOWN;
+ * caller: iflags.last_msg = PLNMSG_some_message;
+ * and subsequent code can adjust the next message if it is
+ * affected by some_message.
+ *
+ * But some callers can use last_msg to control handling of next
+ * message
+ * caller: iflags.last_msg = PLNMSG_NOREP_OVERRIDE;
+ * caller: pline("another message");
+ * to force another_message to be delivered even if is a repeat
+ * and user's MSGTYPE settings have classified it as don't-repeat.
+ */
+
msgtyp = msgtype_type(line, no_repeat);
- if (msgtyp == MSGTYP_NOSHOW
- || (msgtyp == MSGTYP_NOREP && !strcmp(line, prevmsg)))
+ if ((msgtyp == MSGTYP_NOSHOW && iflags.last_msg != PLNMSG_NOSHO_OVERRIDE)
+ || (msgtyp == MSGTYP_NOREP && iflags.last_msg != PLNMSG_NOREP_OVERRIDE
+ && !strcmp(line, prevmsg)))
return;
if (vision_full_recalc)
vision_recalc(0);