redraw all status fields, distinguished from BL_FLUSH which now only
specifies that the bot() call has completed so any buffered changes
should now be rendered
+for hilite_status of string status fields (title, dungeon-level, alignment),
+ the types value-goes-up and -down aren't meaningful; treat them as
+ value-changed if from config file and don't offer as choices with 'O'
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
items of undiscovered type come out before items of discovered type
within each class or sub-class of objects
YAFM when stumbling on an undetected monster while hallucinating
-Make it clear when a leprechaun dodges your attack
+make it clear when a leprechaun dodges your attack
wizard mode #wizidentify can now select individual items for permanent
identification and don't display the selection to permanently
identify everything if everything is already fully identified
if (*s[sidx + 1] == '\0')
sidx--;
} else if (!strcmpi(s[sidx], "up") || !strcmpi(s[sidx], "down")) {
- if (!strcmpi(s[sidx], "down"))
+ if (initblstats[fld].anytype == ANY_STR)
+ /* ordered string comparison is supported but LT/GT for
+ the string fields (title, dungeon-level, alignment)
+ is pointless; treat 'up' or 'down' for string fields
+ as 'changed' rather than rejecting them outright */
+ ;
+ else if (!strcmpi(s[sidx], "down"))
down = TRUE;
else
up = TRUE;
return TRUE;
}
-
-
const struct condmap valid_conditions[] = {
{"stone", BL_MASK_STONE},
{"slime", BL_MASK_SLIME},
hilite.rel = lt_gt_eq;
hilite.value = aval;
} else if (behavior == BL_TH_UPDOWN) {
- boolean ltok = (fld != BL_TIME), gtok = TRUE;
+ if (initblstats[fld].anytype != ANY_STR) {
+ boolean ltok = (fld != BL_TIME), gtok = TRUE;
- lt_gt_eq = status_hilite_menu_choose_updownboth(fld, (char *)0,
- ltok, gtok);
- if (lt_gt_eq == NO_LTEQGT)
- goto choose_behavior;
+ lt_gt_eq = status_hilite_menu_choose_updownboth(fld, (char *)0,
+ ltok, gtok);
+ if (lt_gt_eq == NO_LTEQGT)
+ goto choose_behavior;
+ } else { /* ANY_STR */
+ /* player picked '<field> value changes' in outer menu;
+ ordered string comparison is supported but LT/GT for the
+ string status fields (title, dungeon level, alignment)
+ is pointless; rather than calling ..._choose_updownboth()
+ with ltok==False plus gtok=False and having a menu with a
+ single choice, skip it altogether and just use 'changed' */
+ lt_gt_eq = EQ_VALUE;
+ }
Sprintf(colorqry, "Choose a color for when %s %s:",
initblstats[fld].fldname,
(lt_gt_eq == EQ_VALUE) ? "changes"