more window port interface adjustments
further adjustments to the window port interface to pass a pointer to a glyph_info struct which describes not just the glyph number itself, but also the ttychar, the color, the glyphflags, and the symset index. This affects two existing window port calls that get passed glyphs and does the parameter consistently for both of them using the glyph_info struct pointer: print_glyph() add_menu(). The recently added glyphmod parameter is now unnecessary and has been removed.
This commit is contained in:
+4
-4
@@ -3308,14 +3308,14 @@ struct obj *obj;
|
||||
start_menu(tmpwin, MENU_BEHAVE_STANDARD);
|
||||
any.a_int++;
|
||||
Sprintf(buf, "an object on the %s", surface(cc.x, cc.y));
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE, buf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
any.a_int++;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "a monster",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"a monster", MENU_ITEMFLAGS_NONE);
|
||||
any.a_int++;
|
||||
Sprintf(buf, "the %s", surface(cc.x, cc.y));
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE, buf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
end_menu(tmpwin, "Aim for what?");
|
||||
tohit = rn2(4);
|
||||
|
||||
+2
-2
@@ -1545,8 +1545,8 @@ struct obj *obj;
|
||||
if (!g.dungeons[i].dunlev_ureached)
|
||||
continue;
|
||||
any.a_int = i + 1;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
g.dungeons[i].dname, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, g.dungeons[i].dname, MENU_ITEMFLAGS_NONE);
|
||||
num_ok_dungeons++;
|
||||
last_ok_dungeon = i;
|
||||
}
|
||||
|
||||
+27
-27
@@ -1075,19 +1075,19 @@ cond_menu(VOID_ARGS)
|
||||
Sprintf(mbuf, "change sort order from \"%s\" to \"%s\"",
|
||||
menutitle[g.condmenu_sortorder],
|
||||
menutitle[1 - g.condmenu_sortorder]);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 'S', 0, ATR_NONE, mbuf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'S', 0, ATR_NONE,
|
||||
mbuf, MENU_ITEMFLAGS_NONE);
|
||||
any = cg.zeroany;
|
||||
Sprintf(mbuf, "sorted %s", menutitle[g.condmenu_sortorder]);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, mbuf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
iflags.menu_headings, mbuf, MENU_ITEMFLAGS_NONE);
|
||||
for (i = 0; i < SIZE(condtests); i++) {
|
||||
idx = sequence[i];
|
||||
Sprintf(mbuf, "cond_%-14s", condtests[idx].useroption);
|
||||
any = cg.zeroany;
|
||||
any.a_int = idx + 2; /* avoid zero and the sort change pick */
|
||||
condtests[idx].choice = FALSE;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
mbuf,
|
||||
condtests[idx].enabled
|
||||
? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
@@ -2346,7 +2346,7 @@ int arrmin, arrmax;
|
||||
for (i = arrmin; i < arrmax; i++) {
|
||||
any = cg.zeroany;
|
||||
any.a_int = i + adj;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
arr[i], MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
|
||||
@@ -2691,7 +2691,7 @@ query_conditions()
|
||||
for (i = 0; i < SIZE(conditions); i++) {
|
||||
any = cg.zeroany;
|
||||
any.a_ulong = conditions[i].mask;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
conditions[i].text[0], MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
|
||||
@@ -3260,7 +3260,7 @@ status_hilite_menu_choose_field()
|
||||
#endif
|
||||
any = cg.zeroany;
|
||||
any.a_int = (i + 1);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
initblstats[i].fldname, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
|
||||
@@ -3299,7 +3299,7 @@ int fld;
|
||||
any = cg.zeroany;
|
||||
any.a_int = onlybeh = BL_TH_ALWAYS_HILITE;
|
||||
Sprintf(buf, "Always highlight %s", initblstats[fld].fldname);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 'a', 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'a', 0, ATR_NONE,
|
||||
buf, MENU_ITEMFLAGS_NONE);
|
||||
nopts++;
|
||||
}
|
||||
@@ -3307,7 +3307,7 @@ int fld;
|
||||
if (fld == BL_CONDITION) {
|
||||
any = cg.zeroany;
|
||||
any.a_int = onlybeh = BL_TH_CONDITION;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 'b', 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'b', 0, ATR_NONE,
|
||||
"Bitmask of conditions", MENU_ITEMFLAGS_NONE);
|
||||
nopts++;
|
||||
}
|
||||
@@ -3316,7 +3316,7 @@ int fld;
|
||||
any = cg.zeroany;
|
||||
any.a_int = onlybeh = BL_TH_UPDOWN;
|
||||
Sprintf(buf, "%s value changes", initblstats[fld].fldname);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 'c', 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'c', 0, ATR_NONE,
|
||||
buf, MENU_ITEMFLAGS_NONE);
|
||||
nopts++;
|
||||
}
|
||||
@@ -3325,7 +3325,7 @@ int fld;
|
||||
&& (at == ANY_INT || at == ANY_LONG)) {
|
||||
any = cg.zeroany;
|
||||
any.a_int = onlybeh = BL_TH_VAL_ABSOLUTE;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 'n', 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'n', 0, ATR_NONE,
|
||||
"Number threshold", MENU_ITEMFLAGS_NONE);
|
||||
nopts++;
|
||||
}
|
||||
@@ -3333,7 +3333,7 @@ int fld;
|
||||
if (initblstats[fld].idxmax >= 0) {
|
||||
any = cg.zeroany;
|
||||
any.a_int = onlybeh = BL_TH_VAL_PERCENTAGE;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 'p', 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'p', 0, ATR_NONE,
|
||||
"Percentage threshold", MENU_ITEMFLAGS_NONE);
|
||||
nopts++;
|
||||
}
|
||||
@@ -3343,7 +3343,7 @@ int fld;
|
||||
any = cg.zeroany;
|
||||
any.a_int = onlybeh = BL_TH_TEXTMATCH;
|
||||
Sprintf(buf, "%s text match", initblstats[fld].fldname);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 't', 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 't', 0, ATR_NONE,
|
||||
buf, MENU_ITEMFLAGS_NONE);
|
||||
nopts++;
|
||||
}
|
||||
@@ -3390,7 +3390,7 @@ boolean ltok, gtok;
|
||||
Sprintf(buf, "Value goes down");
|
||||
any = cg.zeroany;
|
||||
any.a_int = 10 + LT_VALUE;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
buf, MENU_ITEMFLAGS_NONE);
|
||||
|
||||
if (str) {
|
||||
@@ -3398,7 +3398,7 @@ boolean ltok, gtok;
|
||||
str, (fld == BL_AC) ? "better (lower)" : "less");
|
||||
any = cg.zeroany;
|
||||
any.a_int = 10 + LE_VALUE;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
buf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
}
|
||||
@@ -3409,7 +3409,7 @@ boolean ltok, gtok;
|
||||
Sprintf(buf, "Value changes");
|
||||
any = cg.zeroany;
|
||||
any.a_int = 10 + EQ_VALUE;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
buf, MENU_ITEMFLAGS_NONE);
|
||||
|
||||
if (gtok) {
|
||||
@@ -3418,7 +3418,7 @@ boolean ltok, gtok;
|
||||
str, (fld == BL_AC) ? "worse (higher)" : "more");
|
||||
any = cg.zeroany;
|
||||
any.a_int = 10 + GE_VALUE;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
buf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
|
||||
@@ -3429,7 +3429,7 @@ boolean ltok, gtok;
|
||||
Sprintf(buf, "Value goes up");
|
||||
any = cg.zeroany;
|
||||
any.a_int = 10 + GT_VALUE;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
buf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
Sprintf(buf, "Select field %s value:", initblstats[fld].fldname);
|
||||
@@ -3931,7 +3931,7 @@ int fld;
|
||||
if (hlstr->fld == fld) {
|
||||
any = cg.zeroany;
|
||||
any.a_int = hlstr->id;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
hlstr->str, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
hlstr = hlstr->next;
|
||||
@@ -3939,19 +3939,19 @@ int fld;
|
||||
} else {
|
||||
any = cg.zeroany;
|
||||
Sprintf(buf, "No current hilites for %s", initblstats[fld].fldname);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE, buf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
|
||||
/* separator line */
|
||||
any = cg.zeroany;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE, "",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
|
||||
if (count) {
|
||||
any = cg.zeroany;
|
||||
any.a_int = -1;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 'X', 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'X', 0, ATR_NONE,
|
||||
"Remove selected hilites",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
@@ -3968,7 +3968,7 @@ int fld;
|
||||
{
|
||||
any = cg.zeroany;
|
||||
any.a_int = -2;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 'Z', 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'Z', 0, ATR_NONE,
|
||||
"Add a new hilite", MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
|
||||
@@ -4064,12 +4064,12 @@ shlmenu_redo:
|
||||
if (countall) {
|
||||
any = cg.zeroany;
|
||||
any.a_int = -1;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"View all hilites in config format",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
|
||||
any = cg.zeroany;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE, "",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
|
||||
@@ -4090,7 +4090,7 @@ shlmenu_redo:
|
||||
Sprintf(buf, "%-18s", initblstats[i].fldname);
|
||||
if (count)
|
||||
Sprintf(eos(buf), " (%d defined)", count);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
buf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
|
||||
|
||||
@@ -356,11 +356,11 @@ const struct ext_func_tab *efp; /* if Null, add a footnote to the menu */
|
||||
char qbuf[QBUFSZ];
|
||||
anything any = cg.zeroany;
|
||||
|
||||
add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(menuwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"[A] Command autocompletes", MENU_ITEMFLAGS_NONE);
|
||||
Sprintf(qbuf, "[m] Command accepts '%c' prefix",
|
||||
g.Cmd.spkeys[NHKF_REQMENU]);
|
||||
add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE, qbuf,
|
||||
add_menu(menuwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE, qbuf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
return (char *) 0;
|
||||
} else {
|
||||
@@ -405,16 +405,16 @@ doextlist(VOID_ARGS)
|
||||
redisplay = FALSE;
|
||||
any = cg.zeroany;
|
||||
start_menu(menuwin, MENU_BEHAVE_STANDARD);
|
||||
add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(menuwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"Extended Commands List",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(menuwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"", MENU_ITEMFLAGS_NONE);
|
||||
|
||||
Sprintf(buf, "Switch to %s commands that don't autocomplete",
|
||||
menumode ? "including" : "excluding");
|
||||
any.a_int = 1;
|
||||
add_menu(menuwin, NO_GLYPH, &any, 'a', 0, ATR_NONE, buf,
|
||||
add_menu(menuwin, &nul_glyphinfo, &any, 'a', 0, ATR_NONE, buf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
|
||||
if (!*searchbuf) {
|
||||
@@ -424,7 +424,7 @@ doextlist(VOID_ARGS)
|
||||
actual list of extended commands shown via separator lines;
|
||||
having ':' as an explicit selector overrides the default
|
||||
menu behavior for it; we retain 's' as a group accelerator */
|
||||
add_menu(menuwin, NO_GLYPH, &any, ':', 's', ATR_NONE,
|
||||
add_menu(menuwin, &nul_glyphinfo, &any, ':', 's', ATR_NONE,
|
||||
"Search extended commands",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
} else {
|
||||
@@ -437,18 +437,18 @@ doextlist(VOID_ARGS)
|
||||
also want to hide it from general menu use) because it won't
|
||||
work for interfaces which support ':' to search; use as a
|
||||
general menu command takes precedence over group accelerator */
|
||||
add_menu(menuwin, NO_GLYPH, &any, 's', ':', ATR_NONE,
|
||||
add_menu(menuwin, &nul_glyphinfo, &any, 's', ':', ATR_NONE,
|
||||
buf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
if (wizard) {
|
||||
any.a_int = 4;
|
||||
add_menu(menuwin, NO_GLYPH, &any, 'z', 0, ATR_NONE,
|
||||
add_menu(menuwin, &nul_glyphinfo, &any, 'z', 0, ATR_NONE,
|
||||
onelist ? "Switch to showing debugging commands in separate section"
|
||||
: "Switch to showing all alphabetically, including debugging commands",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
any = cg.zeroany;
|
||||
add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(menuwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"", MENU_ITEMFLAGS_NONE);
|
||||
menushown[0] = menushown[1] = 0;
|
||||
n = 0;
|
||||
@@ -490,7 +490,7 @@ doextlist(VOID_ARGS)
|
||||
results menu. */
|
||||
if (!menushown[pass]) {
|
||||
Strcpy(buf, headings[pass]);
|
||||
add_menu(menuwin, NO_GLYPH, &any, 0, 0,
|
||||
add_menu(menuwin, &nul_glyphinfo, &any, 0, 0,
|
||||
iflags.menu_headings, buf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
menushown[pass] = 1;
|
||||
@@ -499,16 +499,16 @@ doextlist(VOID_ARGS)
|
||||
2nd field will be " " or " [A]" or " [m]" or "[mA]" */
|
||||
Sprintf(buf, " %-14s %4s %s", efp->ef_txt,
|
||||
doc_extcmd_flagstr(menuwin, efp), efp->ef_desc);
|
||||
add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(menuwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
buf, MENU_ITEMFLAGS_NONE);
|
||||
++n;
|
||||
}
|
||||
if (n)
|
||||
add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(menuwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"", MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
if (*searchbuf && !n)
|
||||
add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(menuwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"no matches", MENU_ITEMFLAGS_NONE);
|
||||
else
|
||||
(void) doc_extcmd_flagstr(menuwin, (struct ext_func_tab *) 0);
|
||||
@@ -647,8 +647,8 @@ extcmd_via_menu()
|
||||
/* flush extended cmds for that letter already in buf */
|
||||
Sprintf(buf, fmtstr, prompt);
|
||||
any.a_char = prevaccelerator;
|
||||
add_menu(win, NO_GLYPH, &any, any.a_char, 0, ATR_NONE,
|
||||
buf, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, any.a_char,
|
||||
0, ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
acount = 0;
|
||||
if (!(accelerator != prevaccelerator || one_per_line))
|
||||
wastoolong = TRUE;
|
||||
@@ -671,8 +671,8 @@ extcmd_via_menu()
|
||||
/* flush buf */
|
||||
Sprintf(buf, fmtstr, prompt);
|
||||
any.a_char = prevaccelerator;
|
||||
add_menu(win, NO_GLYPH, &any, any.a_char, 0, ATR_NONE, buf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, any.a_char, 0,
|
||||
ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
Sprintf(prompt, "Extended Command: %s", cbuf);
|
||||
end_menu(win, prompt);
|
||||
@@ -1584,8 +1584,8 @@ wiz_intrinsic(VOID_ARGS)
|
||||
ordering, not their numerical PROP values), can only be
|
||||
set to timed values here so show a separator */
|
||||
any.a_int = 0;
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "--",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, "--", MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
any.a_int = i + 1; /* +1: avoid 0 */
|
||||
oldtimeout = u.uprops[p].intrinsic & TIMEOUT;
|
||||
@@ -1593,7 +1593,7 @@ wiz_intrinsic(VOID_ARGS)
|
||||
Sprintf(buf, "%-27s [%li]", propname, oldtimeout);
|
||||
else
|
||||
Sprintf(buf, "%s", propname);
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0, ATR_NONE, buf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
end_menu(win, "Which intrinsics?");
|
||||
@@ -1719,29 +1719,29 @@ doterrain(VOID_ARGS)
|
||||
start_menu(men, MENU_BEHAVE_STANDARD);
|
||||
any = cg.zeroany;
|
||||
any.a_int = 1;
|
||||
add_menu(men, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(men, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"known map without monsters, objects, and traps",
|
||||
MENU_ITEMFLAGS_SELECTED);
|
||||
any.a_int = 2;
|
||||
add_menu(men, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(men, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"known map without monsters and objects",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
any.a_int = 3;
|
||||
add_menu(men, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(men, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"known map without monsters",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
if (discover || wizard) {
|
||||
any.a_int = 4;
|
||||
add_menu(men, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(men, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"full map without monsters, objects, and traps",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
if (wizard) {
|
||||
any.a_int = 5;
|
||||
add_menu(men, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(men, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"internal levl[][].typ codes in base-36",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
any.a_int = 6;
|
||||
add_menu(men, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(men, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"legend of base-36 levl[][].typ codes",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
@@ -4072,7 +4072,7 @@ const char *text;
|
||||
if ((ch = cmd_from_func(func)) != '\0') {
|
||||
any = cg.zeroany;
|
||||
any.a_nfunc = func;
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, text,
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0, ATR_NONE, text,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -700,6 +700,10 @@ const struct const_globals cg = {
|
||||
DUMMY, /* zeroany */
|
||||
};
|
||||
|
||||
/* glyph, color, ttychar, symidx, glyphflags */
|
||||
const glyph_info nul_glyphinfo =
|
||||
{ NO_GLYPH, NO_COLOR, ' ', 0, MG_UNEXPL };
|
||||
|
||||
#define ZERO(x) memset(&x, 0, sizeof(x))
|
||||
|
||||
void
|
||||
|
||||
+3
-3
@@ -2006,12 +2006,12 @@ dump_map()
|
||||
lastnonblank = -1; /* buf[] index rather than map's x */
|
||||
for (x = 1; x < COLNO; x++) {
|
||||
int ch;
|
||||
unsigned glyphmod[NUM_GLYPHMOD];
|
||||
glyph_info glyphinfo;
|
||||
|
||||
glyph = reveal_terrain_getglyph(x, y, FALSE, u.uswallow,
|
||||
default_glyph, subset);
|
||||
map_glyphmod(x, y, glyph, 0, glyphmod);
|
||||
ch = (int) glyphmod[GM_TTYCHAR];
|
||||
map_glyphinfo(x, y, glyph, 0, &glyphinfo);
|
||||
ch = glyphinfo.ttychar;
|
||||
buf[x - 1] = ch;
|
||||
if (ch != ' ') {
|
||||
blankrow = FALSE;
|
||||
|
||||
+78
-68
@@ -132,8 +132,8 @@ static void FDECL(display_warning, (struct monst *));
|
||||
static int FDECL(check_pos, (int, int, int));
|
||||
static int FDECL(get_bk_glyph, (XCHAR_P, XCHAR_P));
|
||||
static int FDECL(tether_glyph, (int, int));
|
||||
#ifdef UNBUFFERED_GLYPHMOD
|
||||
static unsigned *FDECL(glyphmod_at, (XCHAR_P, XCHAR_P, int));
|
||||
#ifdef UNBUFFERED_GLYPHINFO
|
||||
static glyph_info *FDECL(glyphinfo_at, (XCHAR_P, XCHAR_P, int));
|
||||
#endif
|
||||
|
||||
/*#define WA_VERBOSE*/ /* give (x,y) locations for all "bad" spots */
|
||||
@@ -1370,16 +1370,16 @@ see_traps()
|
||||
}
|
||||
}
|
||||
|
||||
static unsigned no_gm[NUM_GLYPHMOD] = {
|
||||
MG_BADXY, (unsigned) ' ', (unsigned) NO_COLOR
|
||||
static glyph_info no_ginfo = {
|
||||
NO_GLYPH, 0, NO_COLOR, ' ', MG_BADXY
|
||||
};
|
||||
#ifndef UNBUFFERED_GLYPHMOD
|
||||
#define Glyphmod_at(x, y, glyph) \
|
||||
(((x) < 0 || (y) < 0 || (x) >= COLNO || (y) >= ROWNO) ? &no_gm[0] \
|
||||
: &g.gbuf[(y)][(x)].glyphmod[0])
|
||||
#ifndef UNBUFFERED_GLYPHINFO
|
||||
#define Glyphinfo_at(x, y, glyph) \
|
||||
(((x) < 0 || (y) < 0 || (x) >= COLNO || (y) >= ROWNO) ? &no_ginfo \
|
||||
: &g.gbuf[(y)][(x)].glyphinfo)
|
||||
#else
|
||||
static unsigned gm[NUM_GLYPHMOD];
|
||||
#define Glyphmod_at(x, y, glyph) glyphmod_at(x, y, glyph)
|
||||
static glyph_info ginfo;
|
||||
#define Glyphinfo_at(x, y, glyph) glyphinfo_at(x, y, glyph)
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -1457,6 +1457,7 @@ void
|
||||
redraw_map()
|
||||
{
|
||||
int x, y, glyph;
|
||||
glyph_info bkglyphinfo = nul_glyphinfo;
|
||||
|
||||
/*
|
||||
* Not sure whether this is actually necessary; save and restore did
|
||||
@@ -1477,8 +1478,9 @@ redraw_map()
|
||||
for (y = 0; y < ROWNO; ++y)
|
||||
for (x = 1; x < COLNO; ++x) {
|
||||
glyph = glyph_at(x, y); /* not levl[x][y].glyph */
|
||||
print_glyph(WIN_MAP, x, y, glyph, get_bk_glyph(x, y),
|
||||
Glyphmod_at(x, y, glyph));
|
||||
bkglyphinfo.glyph = get_bk_glyph(x, y);
|
||||
print_glyph(WIN_MAP, x, y,
|
||||
Glyphinfo_at(x, y, glyph), &bkglyphinfo);
|
||||
}
|
||||
flush_screen(1);
|
||||
}
|
||||
@@ -1540,8 +1542,8 @@ void
|
||||
show_glyph(x, y, glyph)
|
||||
int x, y, glyph;
|
||||
{
|
||||
#ifndef UNBUFFERED_GLYPHMOD
|
||||
unsigned glyphmod[NUM_GLYPHMOD];
|
||||
#ifndef UNBUFFERED_GLYPHINFO
|
||||
glyph_info glyphinfo;
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -1608,26 +1610,27 @@ int x, y, glyph;
|
||||
MAX_GLYPH, x, y);
|
||||
return;
|
||||
}
|
||||
#ifndef UNBUFFERED_GLYPHMOD
|
||||
/* without UNBUFFERED_GLYPHMOD defined the glyphmod values are buffered
|
||||
#ifndef UNBUFFERED_GLYPHINFO
|
||||
/* without UNBUFFERED_GLYPHINFO defined the glyphinfo values are buffered
|
||||
alongside the glyphs themselves for better performance, increased
|
||||
buffer size */
|
||||
map_glyphmod(x, y, glyph, 0, glyphmod);
|
||||
map_glyphinfo(x, y, glyph, 0, &glyphinfo);
|
||||
#endif
|
||||
|
||||
if (g.gbuf[y][x].glyph != glyph
|
||||
#ifndef UNBUFFERED_GLYPHMOD
|
||||
#ifndef UNBUFFERED_GLYPHINFO
|
||||
/* I don't think we have to test for changes in TTYCHAR or COLOR
|
||||
because they typically only change if the glyph changed */
|
||||
|| g.gbuf[y][x].glyphmod[GM_FLAGS] != glyphmod[GM_FLAGS]
|
||||
|| g.gbuf[y][x].glyphinfo.glyphflags != glyphinfo.glyphflags
|
||||
#endif
|
||||
|| iflags.use_background_glyph ) {
|
||||
g.gbuf[y][x].glyph = glyph;
|
||||
g.gbuf[y][x].gnew = 1;
|
||||
#ifndef UNBUFFERED_GLYPHMOD
|
||||
g.gbuf[y][x].glyphmod[GM_FLAGS] = glyphmod[GM_FLAGS];
|
||||
g.gbuf[y][x].glyphmod[GM_TTYCHAR] = glyphmod[GM_TTYCHAR];
|
||||
g.gbuf[y][x].glyphmod[GM_COLOR] = glyphmod[GM_COLOR];
|
||||
#ifndef UNBUFFERED_GLYPHINFO
|
||||
g.gbuf[y][x].glyphinfo.glyph = glyphinfo.glyph;
|
||||
g.gbuf[y][x].glyphinfo.glyphflags = glyphinfo.glyphflags;
|
||||
g.gbuf[y][x].glyphinfo.ttychar = glyphinfo.ttychar;
|
||||
g.gbuf[y][x].glyphinfo.color = glyphinfo.color;
|
||||
#endif
|
||||
if (g.gbuf_start[y] > x)
|
||||
g.gbuf_start[y] = x;
|
||||
@@ -1653,7 +1656,7 @@ int x, y, glyph;
|
||||
static gbuf_entry nul_gbuf = {
|
||||
0, /* gnew */
|
||||
GLYPH_UNEXPLORED, /* glyph */
|
||||
#ifndef UNBUFFERED_GLYPHMOD
|
||||
#ifndef UNBUFFERED_GLYPHINFO
|
||||
{(unsigned) ' ', (unsigned) NO_COLOR, MG_UNEXPL},
|
||||
#endif
|
||||
};
|
||||
@@ -1666,22 +1669,22 @@ clear_glyph_buffer()
|
||||
{
|
||||
register int x, y;
|
||||
gbuf_entry *gptr = &g.gbuf[0][0];
|
||||
unsigned *gmptr =
|
||||
#ifndef UNBUFFERED_GLYPHMOD
|
||||
&gptr->glyphmod[0];
|
||||
glyph_info *giptr =
|
||||
#ifndef UNBUFFERED_GLYPHINFO
|
||||
&gptr->glyphinfo;
|
||||
#else
|
||||
&gm[0];
|
||||
&ginfo;
|
||||
|
||||
map_glyphmod(0, 0, GLYPH_UNEXPLORED, 0, gmptr);
|
||||
map_glyphinfo(0, 0, GLYPH_UNEXPLORED, 0, giptr);
|
||||
#endif
|
||||
#ifndef UNBUFFERED_GLYPHMOD
|
||||
nul_gbuf.gnew = (gmptr[GM_TTYCHAR] != nul_gbuf.glyphmod[GM_TTYCHAR]
|
||||
|| gmptr[GM_COLOR] != nul_gbuf.glyphmod[GM_COLOR]
|
||||
|| gmptr[GM_FLAGS] != nul_gbuf.glyphmod[GM_FLAGS])
|
||||
#ifndef UNBUFFERED_GLYPHINFO
|
||||
nul_gbuf.gnew = (giptr->ttychar != nul_gbuf.glyphinfo.ttychar
|
||||
|| giptr->color != nul_gbuf.glyphinfo.color
|
||||
|| giptr->glyphflags != nul_gbuf.glyphinfo.glyphflags)
|
||||
#else
|
||||
nul_gbuf.gnew = (gmptr[GM_TTYCHAR] != ' '
|
||||
|| gmptr[GM_COLOR] != NO_COLOR
|
||||
|| (gmptr[GM_FLAGS] & ~MG_UNEXPL) != 0)
|
||||
nul_gbuf.gnew = (giptr->ttychar != ' '
|
||||
|| giptr->color != NO_COLOR
|
||||
|| (giptr->glyphflags & ~MG_UNEXPL) != 0)
|
||||
#endif
|
||||
? 1 : 0;
|
||||
for (y = 0; y < ROWNO; y++) {
|
||||
@@ -1703,30 +1706,33 @@ int start, stop, y;
|
||||
register int x, glyph;
|
||||
register boolean force;
|
||||
gbuf_entry *gptr = &g.gbuf[0][0];
|
||||
unsigned *gmptr =
|
||||
#ifndef UNBUFFERED_GLYPHMOD
|
||||
&gptr->glyphmod[0];
|
||||
glyph_info bkglyphinfo = nul_glyphinfo;
|
||||
glyph_info *giptr =
|
||||
#ifndef UNBUFFERED_GLYPHINFO
|
||||
&gptr->glyphinfo;
|
||||
#else
|
||||
&gm[0];
|
||||
&ginfo;
|
||||
|
||||
map_glyphmod(0, 0, GLYPH_UNEXPLORED, 0, gmptr);
|
||||
map_glyphinfo(0, 0, GLYPH_UNEXPLORED, 0U, giptr);
|
||||
#endif
|
||||
#ifndef UNBUFFERED_GLYPHMOD
|
||||
force = (gmptr[GM_TTYCHAR] != nul_gbuf.glyphmod[GM_TTYCHAR]
|
||||
|| gmptr[GM_COLOR] != nul_gbuf.glyphmod[GM_COLOR]
|
||||
|| gmptr[GM_FLAGS] != nul_gbuf.glyphmod[GM_FLAGS])
|
||||
#ifndef UNBUFFERED_GLYPHINFO
|
||||
force = (giptr->ttychar != nul_gbuf.glyphinfo.ttychar
|
||||
|| giptr->color != nul_gbuf.glyphinfo.color
|
||||
|| giptr->glyphflags != nul_gbuf.glyphinfo.glyphflags)
|
||||
#else
|
||||
force = (gmptr[GM_TTYCHAR] != ' '
|
||||
|| gmptr[GM_COLOR] != NO_COLOR
|
||||
|| (gmptr[GM_FLAGS] & ~MG_UNEXPL) != 0)
|
||||
force = (giptr->ttychar != ' '
|
||||
|| giptr->color != NO_COLOR
|
||||
|| (giptr->glyphflags & ~MG_UNEXPL) != 0)
|
||||
#endif
|
||||
? 1 : 0;
|
||||
for (x = start; x <= stop; x++) {
|
||||
gptr = &g.gbuf[y][x];
|
||||
glyph = gptr->glyph;
|
||||
if (force || glyph != GLYPH_UNEXPLORED)
|
||||
print_glyph(WIN_MAP, x, y, glyph,
|
||||
get_bk_glyph(x, y), Glyphmod_at(x, y, glyph));
|
||||
if (force || glyph != GLYPH_UNEXPLORED) {
|
||||
bkglyphinfo.glyph = get_bk_glyph(x, y);
|
||||
print_glyph(WIN_MAP, x, y,
|
||||
Glyphinfo_at(x, y, glyph), &bkglyphinfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1759,6 +1765,7 @@ int cursor_on_u;
|
||||
static int flushing = 0;
|
||||
static int delay_flushing = 0;
|
||||
register int x, y;
|
||||
glyph_info bkglyphinfo = nul_glyphinfo;
|
||||
|
||||
/* 3.7: don't update map, status, or perm_invent during save/restore */
|
||||
if (g.program_state.saving || g.program_state.restoring)
|
||||
@@ -1781,8 +1788,9 @@ int cursor_on_u;
|
||||
|
||||
for (; x <= g.gbuf_stop[y]; gptr++, x++)
|
||||
if (gptr->gnew) {
|
||||
print_glyph(WIN_MAP, x, y, gptr->glyph,
|
||||
get_bk_glyph(x, y), Glyphmod_at(x, y, gptr->glyph));
|
||||
bkglyphinfo.glyph = get_bk_glyph(x, y);
|
||||
print_glyph(WIN_MAP, x, y,
|
||||
Glyphinfo_at(x, y, gptr->glyph), &bkglyphinfo);
|
||||
gptr->gnew = 0;
|
||||
}
|
||||
}
|
||||
@@ -2000,14 +2008,14 @@ xchar x, y;
|
||||
return g.gbuf[y][x].glyph;
|
||||
}
|
||||
|
||||
#ifdef UNBUFFERED_GLYPHMOD
|
||||
unsigned *
|
||||
glyphmod_at(x, y, glyph)
|
||||
#ifdef UNBUFFERED_GLYPHINFO
|
||||
glyph_info *
|
||||
glyphinfo_at(x, y, glyph)
|
||||
xchar x, y;
|
||||
int glyph;
|
||||
{
|
||||
map_glyphmod(x, y, glyph, 0, gm);
|
||||
return &gm[0];
|
||||
map_glyphinfo(x, y, glyph, 0, &ginfo);
|
||||
return &ginfo;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -2133,10 +2141,11 @@ static const int explcolors[] = {
|
||||
#define GMAP_ALTARCOLOR 0x00000004
|
||||
|
||||
void
|
||||
map_glyphmod(x, y, glyph, mgflags, glyphmod)
|
||||
map_glyphinfo(x, y, glyph, mgflags, glyphinfo)
|
||||
xchar x, y;
|
||||
int glyph;
|
||||
unsigned mgflags, *glyphmod;
|
||||
unsigned mgflags;
|
||||
glyph_info *glyphinfo;
|
||||
{
|
||||
register int offset, idx;
|
||||
int color = NO_COLOR;
|
||||
@@ -2151,9 +2160,10 @@ unsigned mgflags, *glyphmod;
|
||||
do_mon_checks = FALSE;
|
||||
|
||||
if (x < 0 || y < 0 || x >= COLNO || y >= ROWNO) {
|
||||
glyphmod[GM_FLAGS] = MG_BADXY;
|
||||
glyphmod[GM_COLOR] = NO_COLOR;
|
||||
glyphmod[GM_TTYCHAR] = ' ';
|
||||
glyphinfo->glyph = NO_GLYPH;
|
||||
glyphinfo->glyphflags = MG_BADXY;
|
||||
glyphinfo->color = NO_COLOR;
|
||||
glyphinfo->ttychar = ' ';
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2426,17 +2436,17 @@ unsigned mgflags, *glyphmod;
|
||||
}
|
||||
}
|
||||
|
||||
glyphmod[GM_TTYCHAR] = ((mgflags & MG_FLAG_RETURNIDX) != 0) ? idx
|
||||
: g.showsyms[idx];
|
||||
|
||||
glyphinfo->symidx = idx;
|
||||
glyphinfo->ttychar = g.showsyms[idx];
|
||||
#ifdef TEXTCOLOR
|
||||
/* Turn off color if no color defined, or rogue level w/o PC graphics. */
|
||||
if (!has_color(color)
|
||||
|| ((g.glyphmap_perlevel_flags & GMAP_ROGUELEVEL) && !has_rogue_color))
|
||||
#endif
|
||||
color = NO_COLOR;
|
||||
glyphmod[GM_COLOR] = color;
|
||||
glyphmod[GM_FLAGS] = special;
|
||||
glyphinfo->color = color;
|
||||
glyphinfo->glyphflags = special;
|
||||
glyphinfo->glyph = glyph;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------ */
|
||||
|
||||
@@ -1617,7 +1617,7 @@ boolean at_stairs, falling, portal;
|
||||
|
||||
/* Reset the screen. */
|
||||
vision_reset(); /* reset the blockages */
|
||||
g.glyphmap_perlevel_flags = 0L; /* force per-level map_glyphmod() changes */
|
||||
g.glyphmap_perlevel_flags = 0L; /* force per-level map_glyphinfo() changes */
|
||||
docrt(); /* does a full vision recalc */
|
||||
flush_screen(-1);
|
||||
|
||||
|
||||
+19
-14
@@ -612,8 +612,8 @@ int gloc;
|
||||
iflags.getpos_coords);
|
||||
Sprintf(fullbuf, "%s%s%s", firstmatch,
|
||||
(*tmpbuf ? " " : ""), tmpbuf);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, fullbuf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, fullbuf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1364,27 +1364,32 @@ docallcmd()
|
||||
start_menu(win, MENU_BEHAVE_STANDARD);
|
||||
any = cg.zeroany;
|
||||
any.a_char = 'm'; /* group accelerator 'C' */
|
||||
add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'C', ATR_NONE,
|
||||
"a monster", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, abc ? 0 : any.a_char, 'C',
|
||||
ATR_NONE, "a monster", MENU_ITEMFLAGS_NONE);
|
||||
if (g.invent) {
|
||||
/* we use y and n as accelerators so that we can accept user's
|
||||
response keyed to old "name an individual object?" prompt */
|
||||
any.a_char = 'i'; /* group accelerator 'y' */
|
||||
add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'y', ATR_NONE,
|
||||
"a particular object in inventory", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, abc ? 0 : any.a_char, 'y',
|
||||
ATR_NONE, "a particular object in inventory",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = 'o'; /* group accelerator 'n' */
|
||||
add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'n', ATR_NONE,
|
||||
"the type of an object in inventory", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, abc ? 0 : any.a_char, 'n',
|
||||
ATR_NONE, "the type of an object in inventory",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
any.a_char = 'f'; /* group accelerator ',' (or ':' instead?) */
|
||||
add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, ',', ATR_NONE,
|
||||
"the type of an object upon the floor", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, abc ? 0 : any.a_char, ',',
|
||||
ATR_NONE, "the type of an object upon the floor",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = 'd'; /* group accelerator '\' */
|
||||
add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, '\\', ATR_NONE,
|
||||
"the type of an object on discoveries list", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, abc ? 0 : any.a_char, '\\',
|
||||
ATR_NONE, "the type of an object on discoveries list",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = 'a'; /* group accelerator 'l' */
|
||||
add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'l', ATR_NONE,
|
||||
"record an annotation for the current level", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, abc ? 0 : any.a_char, 'l',
|
||||
ATR_NONE, "record an annotation for the current level",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
end_menu(win, "What do you want to name?");
|
||||
if (select_menu(win, PICK_ONE, &pick_list) > 0) {
|
||||
ch = pick_list[0].item.a_char;
|
||||
|
||||
+4
-4
@@ -152,7 +152,7 @@ const struct symdef defsyms[MAXPCHARS] = {
|
||||
{ '.', "floor of a room", C(CLR_GRAY) }, /* room */
|
||||
/*20*/ { '.', "dark part of a room", C(CLR_BLACK) }, /* dark room */
|
||||
{ '#', "corridor", C(CLR_GRAY) }, /* dark corr */
|
||||
{ '#', "lit corridor", C(CLR_GRAY) }, /* lit corr, see map_glyphmod() */
|
||||
{ '#', "lit corridor", C(CLR_GRAY) }, /* lit corr, see map_glyphinfo() */
|
||||
{ '<', "staircase up", C(CLR_GRAY) }, /* upstair */
|
||||
{ '>', "staircase down", C(CLR_GRAY) }, /* dnstair */
|
||||
{ '<', "ladder up", C(CLR_BROWN) }, /* upladder */
|
||||
@@ -195,7 +195,7 @@ const struct symdef defsyms[MAXPCHARS] = {
|
||||
{ '^', "anti-magic field", C(HI_ZAP) }, /* trap */
|
||||
{ '^', "polymorph trap", C(CLR_BRIGHT_GREEN) }, /* trap */
|
||||
{ '~', "vibrating square", C(CLR_MAGENTA) }, /* "trap" */
|
||||
/* zap colors are changed by map_glyphmod() to match type of beam */
|
||||
/* zap colors are changed by map_glyphinfo() to match type of beam */
|
||||
{ '|', "", C(CLR_GRAY) }, /* vbeam */
|
||||
{ '-', "", C(CLR_GRAY) }, /* hbeam */
|
||||
{ '\\', "", C(CLR_GRAY) }, /* lslant */
|
||||
@@ -210,7 +210,7 @@ const struct symdef defsyms[MAXPCHARS] = {
|
||||
{ '*', "", C(HI_ZAP) },
|
||||
{ '#', "poison cloud", C(CLR_BRIGHT_GREEN) }, /* part of a cloud */
|
||||
{ '?', "valid position", C(CLR_BRIGHT_GREEN) }, /* target position */
|
||||
/* swallow colors are changed by map_glyphmod() to match engulfing monst */
|
||||
/* swallow colors are changed by map_glyphinfo() to match engulfing monst */
|
||||
{ '/', "", C(CLR_GREEN) }, /* swallow top left */
|
||||
{ '-', "", C(CLR_GREEN) }, /* swallow top center */
|
||||
{ '\\', "", C(CLR_GREEN) }, /* swallow top right */
|
||||
@@ -219,7 +219,7 @@ const struct symdef defsyms[MAXPCHARS] = {
|
||||
{ '\\', "", C(CLR_GREEN) }, /* swallow bottom left */
|
||||
{ '-', "", C(CLR_GREEN) }, /* swallow bottom center */
|
||||
{ '/', "", C(CLR_GREEN) }, /* swallow bottom right */
|
||||
/* explosion colors are changed by map_glyphmod() to match type of expl. */
|
||||
/* explosion colors are changed by map_glyphinfo() to match type of expl. */
|
||||
{ '/', "", C(CLR_ORANGE) }, /* explosion top left */
|
||||
{ '-', "", C(CLR_ORANGE) }, /* explosion top center */
|
||||
{ '\\', "", C(CLR_ORANGE) }, /* explosion top right */
|
||||
|
||||
+4
-4
@@ -2183,8 +2183,8 @@ boolean unreachable;
|
||||
} else {
|
||||
any.a_int = lchoices->idx + 1;
|
||||
}
|
||||
add_menu(win, NO_GLYPH, &any, lchoices->menuletter, 0, ATR_NONE, entry,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, lchoices->menuletter, 0,
|
||||
ATR_NONE, entry, MENU_ITEMFLAGS_NONE);
|
||||
/* this assumes there are at most 52 interesting levels */
|
||||
if (lchoices->menuletter == 'z')
|
||||
lchoices->menuletter = 'A';
|
||||
@@ -2295,8 +2295,8 @@ xchar *rdgn;
|
||||
}
|
||||
if (bymenu) {
|
||||
any = cg.zeroany;
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, buf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
iflags.menu_headings, buf, MENU_ITEMFLAGS_NONE);
|
||||
} else
|
||||
putstr(win, 0, buf);
|
||||
|
||||
|
||||
+3
-2
@@ -63,7 +63,7 @@ const char *buf;
|
||||
anything any;
|
||||
|
||||
any = cg.zeroany;
|
||||
add_menu(g.en_win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
|
||||
add_menu(g.en_win, &nul_glyphinfo, &any, 0, 0, ATR_NONE, buf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
} else
|
||||
putstr(g.en_win, 0, buf);
|
||||
@@ -2307,7 +2307,8 @@ set_vanq_order()
|
||||
if (i == VANQ_ALPHA_MIX || i == VANQ_MCLS_HTOL) /* skip these */
|
||||
continue;
|
||||
any.a_int = i + 1;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, vanqorders[i],
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
vanqorders[i],
|
||||
(i == g.vanq_sortmode)
|
||||
? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
|
||||
+33
-21
@@ -2747,9 +2747,10 @@ long *out_cnt;
|
||||
Sprintf(eos(prompt),
|
||||
" -- unidentified or partially identified item%s",
|
||||
plur(unid_cnt));
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, prompt, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0, ATR_NONE, prompt,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
if (!unid_cnt) {
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"(all items are permanently identified already)",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
gotsomething = TRUE;
|
||||
@@ -2765,23 +2766,27 @@ long *out_cnt;
|
||||
if (unid_cnt > 1)
|
||||
Sprintf(eos(prompt), " (%s for all)",
|
||||
visctrl(iflags.override_ID));
|
||||
add_menu(win, NO_GLYPH, &any, '_', iflags.override_ID, ATR_NONE,
|
||||
prompt, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, '_', iflags.override_ID,
|
||||
ATR_NONE, prompt, MENU_ITEMFLAGS_NONE);
|
||||
gotsomething = TRUE;
|
||||
}
|
||||
} else if (xtra_choice) {
|
||||
/* wizard override ID and xtra_choice are mutually exclusive */
|
||||
if (flags.sortpack)
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
|
||||
"Miscellaneous", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
iflags.menu_headings,
|
||||
"Miscellaneous", MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = HANDS_SYM; /* '-' */
|
||||
add_menu(win, NO_GLYPH, &any, HANDS_SYM, 0, ATR_NONE,
|
||||
add_menu(win, &nul_glyphinfo, &any, HANDS_SYM, 0, ATR_NONE,
|
||||
xtra_choice, MENU_ITEMFLAGS_NONE);
|
||||
gotsomething = TRUE;
|
||||
}
|
||||
nextclass:
|
||||
classcount = 0;
|
||||
for (srtinv = sortedinvent; (otmp = srtinv->obj) != 0; ++srtinv) {
|
||||
int tmpglyph;
|
||||
glyph_info tmpglyphinfo = nul_glyphinfo;
|
||||
|
||||
if (lets && !index(lets, otmp->invlet))
|
||||
continue;
|
||||
if (!flags.sortpack || otmp->oclass == *invlet) {
|
||||
@@ -2790,7 +2795,8 @@ long *out_cnt;
|
||||
any = cg.zeroany; /* all bits zero */
|
||||
ilet = otmp->invlet;
|
||||
if (flags.sortpack && !classcount) {
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
iflags.menu_headings,
|
||||
let_to_name(*invlet, FALSE,
|
||||
(want_reply && iflags.menu_head_objsym)),
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
@@ -2800,7 +2806,9 @@ long *out_cnt;
|
||||
any.a_obj = otmp;
|
||||
else
|
||||
any.a_char = ilet;
|
||||
add_menu(win, obj_to_glyph(otmp, rn2_on_display_rng), &any, ilet,
|
||||
tmpglyph = obj_to_glyph(otmp, rn2_on_display_rng);
|
||||
map_glyphinfo(0, 0, tmpglyph, 0U, &tmpglyphinfo);
|
||||
add_menu(win, &tmpglyphinfo, &any, ilet,
|
||||
wizid ? def_oc_syms[(int) otmp->oclass].sym : 0,
|
||||
ATR_NONE, doname(otmp), MENU_ITEMFLAGS_NONE);
|
||||
gotsomething = TRUE;
|
||||
@@ -2816,10 +2824,10 @@ long *out_cnt;
|
||||
}
|
||||
if (iflags.force_invmenu && lets && want_reply) {
|
||||
any = cg.zeroany;
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
|
||||
"Special", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
iflags.menu_headings, "Special", MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = '*';
|
||||
add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE,
|
||||
add_menu(win, &nul_glyphinfo, &any, '*', 0, ATR_NONE,
|
||||
"(list everything)", MENU_ITEMFLAGS_NONE);
|
||||
gotsomething = TRUE;
|
||||
}
|
||||
@@ -2830,7 +2838,7 @@ long *out_cnt;
|
||||
into the menu */
|
||||
if (iflags.perm_invent && !lets && !gotsomething) {
|
||||
any = cg.zeroany;
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, 0,
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0, 0,
|
||||
not_carrying_anything, MENU_ITEMFLAGS_NONE);
|
||||
want_reply = FALSE;
|
||||
}
|
||||
@@ -2896,7 +2904,8 @@ char avoidlet;
|
||||
struct obj *otmp;
|
||||
char ilet, ret = 0;
|
||||
char *invlet = flags.inv_order;
|
||||
int n, classcount, invdone = 0;
|
||||
int n, classcount, invdone = 0, tmpglyph;
|
||||
glyph_info tmpglyphinfo = nul_glyphinfo;
|
||||
winid win;
|
||||
anything any;
|
||||
menu_item *selected;
|
||||
@@ -2914,16 +2923,17 @@ char avoidlet;
|
||||
if (!flags.sortpack || otmp->oclass == *invlet) {
|
||||
if (flags.sortpack && !classcount) {
|
||||
any = cg.zeroany; /* zero */
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0,
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
iflags.menu_headings,
|
||||
let_to_name(*invlet, FALSE, FALSE),
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
classcount++;
|
||||
}
|
||||
any.a_char = ilet;
|
||||
add_menu(win, obj_to_glyph(otmp, rn2_on_display_rng),
|
||||
&any, ilet, 0, ATR_NONE,
|
||||
doname(otmp), MENU_ITEMFLAGS_NONE);
|
||||
tmpglyph = obj_to_glyph(otmp, rn2_on_display_rng);
|
||||
map_glyphinfo(0, 0, tmpglyph, 0U, &tmpglyphinfo);
|
||||
add_menu(win, &tmpglyphinfo, &any, ilet, 0,
|
||||
ATR_NONE, doname(otmp), MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
}
|
||||
if (flags.sortpack && *++invlet)
|
||||
@@ -4383,10 +4393,12 @@ const char *hdr, *txt;
|
||||
any = cg.zeroany;
|
||||
win = create_nhwindow(NHW_MENU);
|
||||
start_menu(win, MENU_BEHAVE_STANDARD);
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, hdr,
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0, iflags.menu_headings,
|
||||
hdr, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0, ATR_NONE, txt,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, txt, MENU_ITEMFLAGS_NONE);
|
||||
end_menu(win, (char *) 0);
|
||||
if (select_menu(win, PICK_NONE, &selected) > 0)
|
||||
free((genericptr_t) selected);
|
||||
|
||||
+1
-1
@@ -518,7 +518,7 @@ lua_State *L;
|
||||
any = cg.zeroany;
|
||||
if (*key)
|
||||
any.a_char = key[0];
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, str,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE, str,
|
||||
(*defval && *key && defval[0] == key[0])
|
||||
? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
|
||||
|
||||
+17
-13
@@ -541,7 +541,8 @@ int mode; /* 0 => 'O' cmd, 1 => full discoveries; 2 => class discoveries */
|
||||
any = cg.zeroany; /* zero out all bits */
|
||||
for (i = 0; disco_orders_descr[i]; ++i) {
|
||||
any.a_int = disco_order_let[i];
|
||||
add_menu(tmpwin, NO_GLYPH, &any, (char) any.a_int, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, (char) any.a_int,
|
||||
0, ATR_NONE,
|
||||
disco_orders_descr[i],
|
||||
(disco_order_let[i] == flags.discosort)
|
||||
? MENU_ITEMFLAGS_SELECTED
|
||||
@@ -552,15 +553,15 @@ int mode; /* 0 => 'O' cmd, 1 => full discoveries; 2 => class discoveries */
|
||||
(only showing one class so can't span all classes) but the
|
||||
chosen sort will stick and also apply to '\' usage */
|
||||
any = cg.zeroany;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"Note: full alphabetical and alphabetical within class",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
" are equivalent for single class discovery, but",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
" will matter for future use of total discoveries.",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
@@ -756,8 +757,8 @@ doclassdisco()
|
||||
Strcat(discosyms, "u");
|
||||
if (!traditional) {
|
||||
any.a_int = 'u';
|
||||
add_menu(tmpwin, NO_GLYPH, &any, menulet++, 0, ATR_NONE,
|
||||
unique_items, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, menulet++,
|
||||
0, ATR_NONE, unique_items, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -767,8 +768,8 @@ doclassdisco()
|
||||
Strcat(discosyms, "a");
|
||||
if (!traditional) {
|
||||
any.a_int = 'a';
|
||||
add_menu(tmpwin, NO_GLYPH, &any, menulet++, 0, ATR_NONE,
|
||||
artifact_items, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, menulet++,
|
||||
0, ATR_NONE, artifact_items, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -788,8 +789,9 @@ doclassdisco()
|
||||
Sprintf(eos(discosyms), "%c", c);
|
||||
if (!traditional) {
|
||||
any.a_int = c;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, menulet++, c,
|
||||
ATR_NONE, oclass_to_name(oclass, buf),
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any,
|
||||
menulet++, c, ATR_NONE,
|
||||
oclass_to_name(oclass, buf),
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
}
|
||||
@@ -950,13 +952,15 @@ rename_disco()
|
||||
|
||||
if (oclass != prev_class) {
|
||||
any.a_int = 0;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
iflags.menu_headings,
|
||||
let_to_name(oclass, FALSE, FALSE),
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
prev_class = oclass;
|
||||
}
|
||||
any.a_int = dis;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE,
|
||||
obj_typename(dis), MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
+104
-79
@@ -4766,8 +4766,8 @@ handler_menustyle()
|
||||
/* note: separate `style_name' variable used
|
||||
to avoid an optimizer bug in VAX C V2.3 */
|
||||
any.a_int = i + 1;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, *style_name, 0, ATR_NONE,
|
||||
style_name, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, *style_name, 0,
|
||||
ATR_NONE, style_name, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
end_menu(tmpwin, "Select menustyle:");
|
||||
if (select_menu(tmpwin, PICK_ONE, &style_pick) > 0) {
|
||||
@@ -4791,16 +4791,16 @@ int optidx;
|
||||
start_menu(tmpwin, MENU_BEHAVE_STANDARD);
|
||||
any = cg.zeroany;
|
||||
any.a_int = ALIGN_TOP;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 't', 0, ATR_NONE, "top",
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 't', 0, ATR_NONE, "top",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
any.a_int = ALIGN_BOTTOM;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 'b', 0, ATR_NONE, "bottom",
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'b', 0, ATR_NONE, "bottom",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
any.a_int = ALIGN_LEFT;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 'l', 0, ATR_NONE, "left",
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'l', 0, ATR_NONE, "left",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
any.a_int = ALIGN_RIGHT;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 'r', 0, ATR_NONE, "right",
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'r', 0, ATR_NONE, "right",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
Sprintf(abuf, "Select %s window placement relative to the map:",
|
||||
(optidx == opt_align_message) ? "message" : "status");
|
||||
@@ -4841,8 +4841,8 @@ handler_disclose(VOID_ARGS)
|
||||
Sprintf(buf, "%-12s[%c%c]", disclosure_names[i],
|
||||
flags.end_disclose[i], disclosure_options[i]);
|
||||
any.a_int = i + 1;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, disclosure_options[i], 0,
|
||||
ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, disclosure_options[i],
|
||||
0, ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
disc_cat[i] = 0;
|
||||
}
|
||||
end_menu(tmpwin, "Change which disclosure options categories:");
|
||||
@@ -4867,35 +4867,41 @@ handler_disclose(VOID_ARGS)
|
||||
any = cg.zeroany;
|
||||
/* 'y','n',and '+' work as alternate selectors; '-' doesn't */
|
||||
any.a_char = DISCLOSE_NO_WITHOUT_PROMPT;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, any.a_char, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0,
|
||||
any.a_char, ATR_NONE,
|
||||
"Never disclose, without prompting",
|
||||
(c == any.a_char) ? MENU_ITEMFLAGS_SELECTED
|
||||
: MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = DISCLOSE_YES_WITHOUT_PROMPT;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, any.a_char, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0,
|
||||
any.a_char, ATR_NONE,
|
||||
"Always disclose, without prompting",
|
||||
(c == any.a_char) ? MENU_ITEMFLAGS_SELECTED
|
||||
: MENU_ITEMFLAGS_NONE);
|
||||
if (*disclosure_names[i] == 'v') {
|
||||
any.a_char = DISCLOSE_SPECIAL_WITHOUT_PROMPT; /* '#' */
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, any.a_char, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0,
|
||||
any.a_char, ATR_NONE,
|
||||
"Always disclose, pick sort order from menu",
|
||||
(c == any.a_char) ? MENU_ITEMFLAGS_SELECTED
|
||||
: MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
any.a_char = DISCLOSE_PROMPT_DEFAULT_NO;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, any.a_char, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0,
|
||||
any.a_char, ATR_NONE,
|
||||
"Prompt, with default answer of \"No\"",
|
||||
(c == any.a_char) ? MENU_ITEMFLAGS_SELECTED
|
||||
: MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = DISCLOSE_PROMPT_DEFAULT_YES;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, any.a_char, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0,
|
||||
any.a_char, ATR_NONE,
|
||||
"Prompt, with default answer of \"Yes\"",
|
||||
(c == any.a_char) ? MENU_ITEMFLAGS_SELECTED
|
||||
: MENU_ITEMFLAGS_NONE);
|
||||
if (*disclosure_names[i] == 'v') {
|
||||
any.a_char = DISCLOSE_PROMPT_DEFAULT_SPECIAL; /* '?' */
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, any.a_char, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0,
|
||||
any.a_char, ATR_NONE,
|
||||
"Prompt, with default answer of \"Ask\" to request sort menu",
|
||||
(c == any.a_char) ? MENU_ITEMFLAGS_SELECTED
|
||||
: MENU_ITEMFLAGS_NONE);
|
||||
@@ -4940,18 +4946,18 @@ handler_msg_window(VOID_ARGS)
|
||||
any = cg.zeroany;
|
||||
if (!WINDOWPORT("curses")) {
|
||||
any.a_char = 's';
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 's', 0, ATR_NONE,
|
||||
"single", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 's',
|
||||
0, ATR_NONE, "single", MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = 'c';
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 'c', 0, ATR_NONE,
|
||||
"combination", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'c',
|
||||
0, ATR_NONE, "combination", MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
any.a_char = 'f';
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 'f', 0, ATR_NONE, "full",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'f',
|
||||
0, ATR_NONE, "full", MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = 'r';
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 'r', 0, ATR_NONE, "reversed",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'r',
|
||||
0, ATR_NONE, "reversed", MENU_ITEMFLAGS_NONE);
|
||||
end_menu(tmpwin, "Select message history display type:");
|
||||
if (select_menu(tmpwin, PICK_ONE, &window_pick) > 0) {
|
||||
iflags.prevmsg_window = window_pick->item.a_char;
|
||||
@@ -4984,8 +4990,8 @@ handler_number_pad(VOID_ARGS)
|
||||
any = cg.zeroany;
|
||||
for (i = 0; i < SIZE(npchoices); i++) {
|
||||
any.a_int = i + 1;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 'a' + i, 0, ATR_NONE,
|
||||
npchoices[i], MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'a' + i,
|
||||
0, ATR_NONE, npchoices[i], MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
end_menu(tmpwin, "Select number_pad mode:");
|
||||
if (select_menu(tmpwin, PICK_ONE, &mode_pick) > 0) {
|
||||
@@ -5039,8 +5045,8 @@ handler_paranoid_confirmation(VOID_ARGS)
|
||||
if (paranoia[i].flagmask == PARANOID_BONES && !wizard)
|
||||
continue;
|
||||
any.a_int = paranoia[i].flagmask;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, *paranoia[i].argname, 0,
|
||||
ATR_NONE, paranoia[i].explain,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, *paranoia[i].argname,
|
||||
0, ATR_NONE, paranoia[i].explain,
|
||||
(flags.paranoia_bits & paranoia[i].flagmask)
|
||||
? MENU_ITEMFLAGS_SELECTED
|
||||
: MENU_ITEMFLAGS_NONE);
|
||||
@@ -5078,8 +5084,8 @@ handler_pickup_burden(VOID_ARGS)
|
||||
for (i = 0; i < SIZE(burdentype); i++) {
|
||||
burden_name = burdentype[i];
|
||||
any.a_int = i + 1;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, burden_letters[i], 0, ATR_NONE,
|
||||
burden_name, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, burden_letters[i],
|
||||
0, ATR_NONE, burden_name, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
end_menu(tmpwin, "Select encumbrance level:");
|
||||
if (select_menu(tmpwin, PICK_ONE, &burden_pick) > 0) {
|
||||
@@ -5116,8 +5122,8 @@ handler_runmode(VOID_ARGS)
|
||||
for (i = 0; i < SIZE(runmodes); i++) {
|
||||
mode_name = runmodes[i];
|
||||
any.a_int = i + 1;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, *mode_name, 0, ATR_NONE,
|
||||
mode_name, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, *mode_name,
|
||||
0, ATR_NONE, mode_name, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
end_menu(tmpwin, "Select run/travel display mode:");
|
||||
if (select_menu(tmpwin, PICK_ONE, &mode_pick) > 0) {
|
||||
@@ -5143,7 +5149,8 @@ handler_sortloot(VOID_ARGS)
|
||||
for (i = 0; i < SIZE(sortltype); i++) {
|
||||
sortl_name = sortltype[i];
|
||||
any.a_char = *sortl_name;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, *sortl_name, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, *sortl_name,
|
||||
0, ATR_NONE,
|
||||
sortl_name, (flags.sortloot == *sortl_name)
|
||||
? MENU_ITEMFLAGS_SELECTED
|
||||
: MENU_ITEMFLAGS_NONE);
|
||||
@@ -5176,38 +5183,42 @@ handler_whatis_coord(VOID_ARGS)
|
||||
start_menu(tmpwin, MENU_BEHAVE_STANDARD);
|
||||
any = cg.zeroany;
|
||||
any.a_char = GPCOORDS_COMPASS;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, GPCOORDS_COMPASS, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, GPCOORDS_COMPASS,
|
||||
0, ATR_NONE,
|
||||
"compass ('east' or '3s' or '2n,4w')",
|
||||
(gp == GPCOORDS_COMPASS)
|
||||
? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = GPCOORDS_COMFULL;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, GPCOORDS_COMFULL, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, GPCOORDS_COMFULL,
|
||||
0, ATR_NONE,
|
||||
"full compass ('east' or '3south' or '2north,4west')",
|
||||
(gp == GPCOORDS_COMFULL)
|
||||
? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = GPCOORDS_MAP;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, GPCOORDS_MAP, 0, ATR_NONE,
|
||||
"map <x,y>",
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, GPCOORDS_MAP,
|
||||
0, ATR_NONE, "map <x,y>",
|
||||
(gp == GPCOORDS_MAP)
|
||||
? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = GPCOORDS_SCREEN;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, GPCOORDS_SCREEN, 0, ATR_NONE,
|
||||
"screen [row,column]",
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, GPCOORDS_SCREEN,
|
||||
0, ATR_NONE, "screen [row,column]",
|
||||
(gp == GPCOORDS_SCREEN)
|
||||
? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = GPCOORDS_NONE;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, GPCOORDS_NONE, 0, ATR_NONE,
|
||||
"none (no coordinates displayed)",
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, GPCOORDS_NONE,
|
||||
0, ATR_NONE, "none (no coordinates displayed)",
|
||||
(gp == GPCOORDS_NONE)
|
||||
? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
any.a_long = 0L;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"", MENU_ITEMFLAGS_NONE);
|
||||
Sprintf(buf, "map: upper-left: <%d,%d>, lower-right: <%d,%d>%s",
|
||||
1, 0, COLNO - 1, ROWNO - 1,
|
||||
flags.verbose ? "; column 0 unused, off left edge" : "");
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
if (strcmp(windowprocs.name, "tty")) /* only show for non-tty */
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"screen: row is offset to accommodate tty interface's use of top line",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
#if COLNO == 80
|
||||
@@ -5218,8 +5229,10 @@ handler_whatis_coord(VOID_ARGS)
|
||||
Sprintf(buf, "screen: upper-left: [%02d,%02d], lower-right: [%d,%d]%s",
|
||||
0 + 2, 1, ROWNO - 1 + 2, COLNO - 1, COL80ARG);
|
||||
#undef COL80ARG
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
buf, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"", MENU_ITEMFLAGS_NONE);
|
||||
end_menu(tmpwin,
|
||||
"Select coordinate display when auto-describing a map position:");
|
||||
if ((pick_cnt = select_menu(tmpwin, PICK_ONE, &window_pick)) > 0) {
|
||||
@@ -5247,17 +5260,17 @@ handler_whatis_filter(VOID_ARGS)
|
||||
start_menu(tmpwin, MENU_BEHAVE_STANDARD);
|
||||
any = cg.zeroany;
|
||||
any.a_char = (GFILTER_NONE + 1);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 'n',
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'n',
|
||||
0, ATR_NONE, "no filtering",
|
||||
(gf == GFILTER_NONE)
|
||||
? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = (GFILTER_VIEW + 1);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 'v',
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'v',
|
||||
0, ATR_NONE, "in view only",
|
||||
(gf == GFILTER_VIEW)
|
||||
? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = (GFILTER_AREA + 1);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 'a',
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'a',
|
||||
0, ATR_NONE, "in same area",
|
||||
(gf == GFILTER_AREA)
|
||||
? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
@@ -5337,7 +5350,7 @@ int optidx;
|
||||
any.a_int = 1; /* -1 + 2 [see 'if (sl->name) {' below]*/
|
||||
if (!symset_name)
|
||||
defindx = any.a_int;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"Default Symbols",
|
||||
(any.a_int == defindx) ? MENU_ITEMFLAGS_SELECTED
|
||||
: MENU_ITEMFLAGS_NONE);
|
||||
@@ -5358,7 +5371,8 @@ int optidx;
|
||||
if (symset_name && !strcmpi(sl->name, symset_name))
|
||||
defindx = any.a_int;
|
||||
Sprintf(buf, fmtstr, sl->name, sl->desc ? sl->desc : "");
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, buf,
|
||||
(any.a_int == defindx) ? MENU_ITEMFLAGS_SELECTED
|
||||
: MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
@@ -5494,7 +5508,8 @@ handler_autopickup_exception(VOID_ARGS)
|
||||
if (numapes) {
|
||||
ape = g.apelist;
|
||||
any = cg.zeroany;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
iflags.menu_headings,
|
||||
"Always pickup '<'; never pickup '>'",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
for (i = 0; i < numapes && ape; i++) {
|
||||
@@ -5503,8 +5518,8 @@ handler_autopickup_exception(VOID_ARGS)
|
||||
less than BUFSZ */
|
||||
Sprintf(apebuf, "\"%c%s\"", ape->grab ? '<' : '>',
|
||||
ape->pattern);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, apebuf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, apebuf, MENU_ITEMFLAGS_NONE);
|
||||
ape = ape->next;
|
||||
}
|
||||
}
|
||||
@@ -5602,8 +5617,8 @@ handler_menu_colors(VOID_ARGS)
|
||||
Strcat(mcbuf, tmp->origstr);
|
||||
/* combine main string and suffix */
|
||||
Strcat(mcbuf, &buf[1]); /* skip buf[]'s initial quote */
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, mcbuf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, mcbuf, MENU_ITEMFLAGS_NONE);
|
||||
tmp = tmp->next;
|
||||
}
|
||||
Sprintf(mcbuf, "%s menu colors",
|
||||
@@ -5672,8 +5687,8 @@ handler_msgtype(VOID_ARGS)
|
||||
Strcat(strncat(mtbuf, tmp->pattern, ln - 3), "...\"");
|
||||
else
|
||||
Strcat(strcat(mtbuf, tmp->pattern), "\"");
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, mtbuf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, mtbuf, MENU_ITEMFLAGS_NONE);
|
||||
tmp = tmp->next;
|
||||
}
|
||||
Sprintf(mtbuf, "%s message types",
|
||||
@@ -6679,7 +6694,8 @@ const char *prompt;
|
||||
if (!colornames[i].name)
|
||||
break;
|
||||
any.a_int = i + 1;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, colornames[i].name,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, colornames[i].name,
|
||||
(colornames[i].color == NO_COLOR) ? MENU_ITEMFLAGS_SELECTED
|
||||
: MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
@@ -6730,8 +6746,8 @@ const char *prompt;
|
||||
if (!attrnames[i].name)
|
||||
break;
|
||||
any.a_int = i + 1;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, attrnames[i].attr,
|
||||
attrnames[i].name,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
attrnames[i].attr, attrnames[i].name,
|
||||
(attrnames[i].attr == default_attr) ? MENU_ITEMFLAGS_SELECTED
|
||||
: MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
@@ -6828,8 +6844,8 @@ query_msgtype()
|
||||
for (i = 0; i < SIZE(msgtype_names); i++)
|
||||
if (msgtype_names[i].descr) {
|
||||
any.a_int = msgtype_names[i].msgtyp + 1;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
msgtype_names[i].descr, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, msgtype_names[i].descr, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
end_menu(tmpwin, "How to show the message");
|
||||
pick_cnt = select_menu(tmpwin, PICK_ONE, &picks);
|
||||
@@ -7537,7 +7553,7 @@ doset() /* changing options via menu by Per Liboriussen */
|
||||
|
||||
indexoffset = 1;
|
||||
any = cg.zeroany;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, iflags.menu_headings,
|
||||
"Booleans (selecting will toggle value):", MENU_ITEMFLAGS_NONE);
|
||||
any.a_int = 0;
|
||||
/* first list any other non-modifiable booleans, then modifiable ones */
|
||||
@@ -7562,13 +7578,14 @@ doset() /* changing options via menu by Per Liboriussen */
|
||||
else
|
||||
Sprintf(buf, fmtstr_doset_tab,
|
||||
name, *bool_p ? "true" : "false");
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
|
||||
any = cg.zeroany;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, iflags.menu_headings,
|
||||
"Compounds (selecting will prompt for new value):",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
|
||||
@@ -7599,9 +7616,10 @@ doset() /* changing options via menu by Per Liboriussen */
|
||||
}
|
||||
|
||||
any = cg.zeroany;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
|
||||
"Other settings:", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
iflags.menu_headings, "Other settings:", MENU_ITEMFLAGS_NONE);
|
||||
|
||||
for (i = 0; (name = othropt[i].name) != 0; i++) {
|
||||
if ((is_wc_option(name) && !wc_supported(name))
|
||||
@@ -7613,8 +7631,10 @@ doset() /* changing options via menu by Per Liboriussen */
|
||||
|
||||
#ifdef PREFIXES_IN_USE
|
||||
any = cg.zeroany;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
iflags.menu_headings,
|
||||
"Variable playground locations:", MENU_ITEMFLAGS_NONE);
|
||||
for (i = 0; i < PREFIX_COUNT; i++)
|
||||
doset_add_menu(tmpwin, fqn_prefix_names[i], -1, 0);
|
||||
@@ -7745,7 +7765,8 @@ int indexoffset; /* value to add to index in allopt[], or zero
|
||||
value);
|
||||
else
|
||||
Sprintf(buf, fmtstr_doset_tab, option, value);
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -7769,7 +7790,8 @@ int nset;
|
||||
name, buf2);
|
||||
else
|
||||
Sprintf(buf, fmtstr_doset_tab, name, buf2);
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
|
||||
/* display keys for menu actions; used by cmd.c '?i' and pager.c '?k' */
|
||||
@@ -7924,8 +7946,9 @@ int numtotal;
|
||||
continue;
|
||||
Sprintf(tmpbuf, action_titles[i].desc,
|
||||
(i == 1) ? makeplural(optname) : optname);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, action_titles[i].letr, 0, ATR_NONE,
|
||||
tmpbuf, (i == 3) ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo,&any, action_titles[i].letr,
|
||||
0, ATR_NONE, tmpbuf,
|
||||
(i == 3) ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
end_menu(tmpwin, "Do what?");
|
||||
if ((pick_cnt = select_menu(tmpwin, PICK_ONE, &pick_list)) > 0) {
|
||||
@@ -8411,8 +8434,8 @@ char *class_select;
|
||||
}
|
||||
}
|
||||
any.a_int = *class_list;
|
||||
add_menu(win, NO_GLYPH, &any, accelerator, category ? *class_list : 0,
|
||||
ATR_NONE, buf,
|
||||
add_menu(win, &nul_glyphinfo, &any, accelerator,
|
||||
category ? *class_list : 0, ATR_NONE, buf,
|
||||
selected ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
++class_list;
|
||||
if (category > 0) {
|
||||
@@ -8426,13 +8449,15 @@ char *class_select;
|
||||
if (category == 1 && next_accelerator <= 'z') {
|
||||
/* for objects, add "A - ' ' all classes", after a separator */
|
||||
any = cg.zeroany;
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
any.a_int = (int) ' ';
|
||||
Sprintf(buf, "%c %s", (char) any.a_int, "all classes of objects");
|
||||
/* we won't preselect this even if the incoming list is empty;
|
||||
having it selected means that it would have to be explicitly
|
||||
de-selected in order to select anything else */
|
||||
add_menu(win, NO_GLYPH, &any, 'A', 0, ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 'A', 0,
|
||||
ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
end_menu(win, prompt);
|
||||
n = select_menu(win, way ? PICK_ANY : PICK_ONE, &pick_list);
|
||||
|
||||
+15
-16
@@ -893,16 +893,15 @@ struct permonst **for_supplement;
|
||||
hallucinate = (Hallucination && !g.program_state.gameover);
|
||||
const char *x_str;
|
||||
nhsym tmpsym;
|
||||
unsigned glyphmod[NUM_GLYPHMOD];
|
||||
glyph_info glyphinfo = nul_glyphinfo;
|
||||
|
||||
gobbledygook[0] = '\0'; /* no hallucinatory liquid (yet) */
|
||||
if (looked) {
|
||||
glyph = glyph_at(cc.x, cc.y);
|
||||
/* Convert glyph at selected position to a symbol for use below. */
|
||||
map_glyphmod(cc.x, cc.y, glyph, 0, glyphmod);
|
||||
sym = glyphmod[GM_TTYCHAR];
|
||||
|
||||
Sprintf(prefix, "%s ", encglyph(glyph));
|
||||
map_glyphinfo(cc.x, cc.y, glyph, 0, &glyphinfo);
|
||||
sym = glyphinfo.symidx;
|
||||
Sprintf(prefix, "%s ", encglyph(glyphinfo.glyph));
|
||||
} else
|
||||
Sprintf(prefix, "%c ", sym);
|
||||
|
||||
@@ -1154,8 +1153,8 @@ struct permonst **for_supplement;
|
||||
case SYM_PET_OVERRIDE + SYM_OFF_X:
|
||||
if (looked) {
|
||||
/* convert to symbol without override in effect */
|
||||
map_glyphmod(cc.x, cc.y, glyph, MG_FLAG_NOOVERRIDE, glyphmod);
|
||||
sym = (int) glyphmod[GM_TTYCHAR];
|
||||
map_glyphinfo(cc.x, cc.y, glyph, 0, &glyphinfo);
|
||||
sym = glyphinfo.ttychar;
|
||||
goto check_monsters;
|
||||
}
|
||||
break;
|
||||
@@ -1264,21 +1263,21 @@ coord *click_cc;
|
||||
any.a_char = '/';
|
||||
/* 'y' and 'n' to keep backwards compatibility with previous
|
||||
versions: "Specify unknown object by cursor?" */
|
||||
add_menu(win, NO_GLYPH, &any,
|
||||
add_menu(win, &nul_glyphinfo, &any,
|
||||
flags.lootabc ? 0 : any.a_char, 'y', ATR_NONE,
|
||||
"something on the map", MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = 'i';
|
||||
add_menu(win, NO_GLYPH, &any,
|
||||
add_menu(win, &nul_glyphinfo, &any,
|
||||
flags.lootabc ? 0 : any.a_char, 0, ATR_NONE,
|
||||
"something you're carrying", MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = '?';
|
||||
add_menu(win, NO_GLYPH, &any,
|
||||
add_menu(win, &nul_glyphinfo, &any,
|
||||
flags.lootabc ? 0 : any.a_char, 'n', ATR_NONE,
|
||||
"something else (by symbol or name)",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
if (!u.uswallow && !Hallucination) {
|
||||
any = cg.zeroany;
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"", MENU_ITEMFLAGS_NONE);
|
||||
/* these options work sensibly for the swallowed case,
|
||||
but there's no reason for the player to use them then;
|
||||
@@ -1286,19 +1285,19 @@ coord *click_cc;
|
||||
symbol/monster class letter doesn't match up with
|
||||
bogus monster type, so suppress when hallucinating */
|
||||
any.a_char = 'm';
|
||||
add_menu(win, NO_GLYPH, &any,
|
||||
add_menu(win, &nul_glyphinfo, &any,
|
||||
flags.lootabc ? 0 : any.a_char, 0, ATR_NONE,
|
||||
"nearby monsters", MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = 'M';
|
||||
add_menu(win, NO_GLYPH, &any,
|
||||
add_menu(win, &nul_glyphinfo, &any,
|
||||
flags.lootabc ? 0 : any.a_char, 0, ATR_NONE,
|
||||
"all monsters shown on map", MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = 'o';
|
||||
add_menu(win, NO_GLYPH, &any,
|
||||
add_menu(win, &nul_glyphinfo, &any,
|
||||
flags.lootabc ? 0 : any.a_char, 0, ATR_NONE,
|
||||
"nearby objects", MENU_ITEMFLAGS_NONE);
|
||||
any.a_char = 'O';
|
||||
add_menu(win, NO_GLYPH, &any,
|
||||
add_menu(win, &nul_glyphinfo, &any,
|
||||
flags.lootabc ? 0 : any.a_char, 0, ATR_NONE,
|
||||
"all objects shown on map", MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
@@ -2154,7 +2153,7 @@ dohelp()
|
||||
Strcpy(helpbuf, help_menu_items[i].text);
|
||||
}
|
||||
any.a_int = i + 1;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
helpbuf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
end_menu(tmpwin, "Select one item:");
|
||||
|
||||
+49
-39
@@ -907,7 +907,7 @@ menu_item **pick_list; /* return list of items picked */
|
||||
int how; /* type of query */
|
||||
boolean FDECL((*allow), (OBJ_P)); /* allow function */
|
||||
{
|
||||
int i, n;
|
||||
int i, n, tmpglyph;
|
||||
winid win;
|
||||
struct obj *curr, *last, fake_hero_object, *olist = *olist_p;
|
||||
char *pack, packbuf[MAXOCLASSES + 1];
|
||||
@@ -917,6 +917,7 @@ boolean FDECL((*allow), (OBJ_P)); /* allow function */
|
||||
engulfer = (qflags & INCLUDE_HERO) != 0,
|
||||
engulfer_minvent;
|
||||
unsigned sortflags;
|
||||
glyph_info tmpglyphinfo = nul_glyphinfo;
|
||||
Loot *sortedolist, *srtoli;
|
||||
|
||||
*pick_list = (menu_item *) 0;
|
||||
@@ -990,7 +991,8 @@ boolean FDECL((*allow), (OBJ_P)); /* allow function */
|
||||
/* if sorting, print type name (once only) */
|
||||
if (sorted && !printed_type_name) {
|
||||
any = cg.zeroany;
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
iflags.menu_headings,
|
||||
let_to_name(*pack, FALSE,
|
||||
((how != PICK_NONE)
|
||||
&& iflags.menu_head_objsym)),
|
||||
@@ -999,7 +1001,9 @@ boolean FDECL((*allow), (OBJ_P)); /* allow function */
|
||||
}
|
||||
|
||||
any.a_obj = curr;
|
||||
add_menu(win, obj_to_glyph(curr, rn2_on_display_rng), &any,
|
||||
tmpglyph = obj_to_glyph(curr, rn2_on_display_rng);
|
||||
map_glyphinfo(0, 0, tmpglyph, 0U, &tmpglyphinfo);
|
||||
add_menu(win, &tmpglyphinfo, &any,
|
||||
(qflags & USE_INVLET) ? curr->invlet
|
||||
: (first && curr->oclass == COIN_CLASS) ? '$' : 0,
|
||||
def_oc_syms[(int) objects[curr->otyp].oc_class].sym,
|
||||
@@ -1018,13 +1022,15 @@ boolean FDECL((*allow), (OBJ_P)); /* allow function */
|
||||
if (sorted && n > 1) {
|
||||
Sprintf(buf, "%s Creatures",
|
||||
is_animal(u.ustuck->data) ? "Swallowed" : "Engulfed");
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, buf,
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0, iflags.menu_headings, buf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
fake_hero_object = cg.zeroobj;
|
||||
fake_hero_object.quan = 1L; /* not strictly necessary... */
|
||||
any.a_obj = &fake_hero_object;
|
||||
add_menu(win, mon_to_glyph(&g.youmonst, rn2_on_display_rng), &any,
|
||||
tmpglyph = mon_to_glyph(&g.youmonst, rn2_on_display_rng);
|
||||
map_glyphinfo(0, 0, tmpglyph, 0U, &tmpglyphinfo);
|
||||
add_menu(win, &tmpglyphinfo, &any,
|
||||
/* fake inventory letter, no group accelerator */
|
||||
CONTAINED_SYM, 0, ATR_NONE, an(self_lookat(buf)),
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
@@ -1166,13 +1172,14 @@ int how; /* type of query */
|
||||
any = cg.zeroany;
|
||||
any.a_int = 'A';
|
||||
itemflags = MENU_ITEMFLAGS_SKIPINVERT;
|
||||
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
|
||||
add_menu(win, &nul_glyphinfo, &any, invlet, 0, ATR_NONE,
|
||||
(qflags & WORN_TYPES) ? "Auto-select every item being worn"
|
||||
: "Auto-select every item",
|
||||
itemflags);
|
||||
|
||||
any = cg.zeroany;
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
|
||||
if ((qflags & ALL_TYPES) && (ccount > 1)) {
|
||||
@@ -1180,7 +1187,7 @@ int how; /* type of query */
|
||||
any = cg.zeroany;
|
||||
any.a_int = ALL_TYPES_SELECTED;
|
||||
itemflags = MENU_ITEMFLAGS_SKIPINVERT;
|
||||
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
|
||||
add_menu(win, &nul_glyphinfo, &any, invlet, 0, ATR_NONE,
|
||||
(qflags & WORN_TYPES) ? "All worn types" : "All types",
|
||||
itemflags);
|
||||
invlet = 'b';
|
||||
@@ -1196,7 +1203,7 @@ int how; /* type of query */
|
||||
any = cg.zeroany;
|
||||
any.a_int = curr->oclass;
|
||||
add_menu(
|
||||
win, NO_GLYPH, &any, invlet++,
|
||||
win, &nul_glyphinfo, &any, invlet++,
|
||||
def_oc_syms[(int) objects[curr->otyp].oc_class].sym,
|
||||
ATR_NONE, let_to_name(*pack, FALSE,
|
||||
(how != PICK_NONE)
|
||||
@@ -1217,7 +1224,8 @@ int how; /* type of query */
|
||||
if (do_unpaid || (qflags & BILLED_TYPES) || do_blessed || do_cursed
|
||||
|| do_uncursed || do_buc_unknown) {
|
||||
any = cg.zeroany;
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
|
||||
/* unpaid items if there are any */
|
||||
@@ -1225,15 +1233,15 @@ int how; /* type of query */
|
||||
invlet = 'u';
|
||||
any = cg.zeroany;
|
||||
any.a_int = 'u';
|
||||
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, "Unpaid items",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, invlet, 0,
|
||||
ATR_NONE, "Unpaid items", MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
/* billed items: checked by caller, so always include if BILLED_TYPES */
|
||||
if (qflags & BILLED_TYPES) {
|
||||
invlet = 'x';
|
||||
any = cg.zeroany;
|
||||
any.a_int = 'x';
|
||||
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
|
||||
add_menu(win, &nul_glyphinfo, &any, invlet, 0, ATR_NONE,
|
||||
"Unpaid items already used up", MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
|
||||
@@ -1245,28 +1253,28 @@ int how; /* type of query */
|
||||
invlet = 'B';
|
||||
any = cg.zeroany;
|
||||
any.a_int = 'B';
|
||||
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
|
||||
add_menu(win, &nul_glyphinfo, &any, invlet, 0, ATR_NONE,
|
||||
"Items known to be Blessed", itemflags);
|
||||
}
|
||||
if (do_cursed) {
|
||||
invlet = 'C';
|
||||
any = cg.zeroany;
|
||||
any.a_int = 'C';
|
||||
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
|
||||
add_menu(win, &nul_glyphinfo, &any, invlet, 0, ATR_NONE,
|
||||
"Items known to be Cursed", itemflags);
|
||||
}
|
||||
if (do_uncursed) {
|
||||
invlet = 'U';
|
||||
any = cg.zeroany;
|
||||
any.a_int = 'U';
|
||||
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
|
||||
add_menu(win, &nul_glyphinfo, &any, invlet, 0, ATR_NONE,
|
||||
"Items known to be Uncursed", itemflags);
|
||||
}
|
||||
if (do_buc_unknown) {
|
||||
invlet = 'X';
|
||||
any = cg.zeroany;
|
||||
any.a_int = 'X';
|
||||
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
|
||||
add_menu(win, &nul_glyphinfo, &any, invlet, 0, ATR_NONE,
|
||||
"Items of unknown Bless/Curse status", itemflags);
|
||||
}
|
||||
end_menu(win, qstr);
|
||||
@@ -1943,8 +1951,8 @@ doloot()
|
||||
cobj = cobj->nexthere)
|
||||
if (Is_container(cobj)) {
|
||||
any.a_obj = cobj;
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
doname(cobj), MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, doname(cobj), MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
end_menu(win, "Loot which containers?");
|
||||
n = select_menu(win, PICK_ANY, &pick_list);
|
||||
@@ -3055,47 +3063,49 @@ boolean outokay, inokay, alreadyused, more_containers;
|
||||
|
||||
any.a_int = 1; /* ':' */
|
||||
Sprintf(buf, "Look inside %s", thesimpleoname(obj));
|
||||
add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE, buf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, menuselector[any.a_int], 0,
|
||||
ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
if (outokay) {
|
||||
any.a_int = 2; /* 'o' */
|
||||
Sprintf(buf, "take %s out", something);
|
||||
add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE,
|
||||
buf, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, menuselector[any.a_int], 0,
|
||||
ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
if (inokay) {
|
||||
any.a_int = 3; /* 'i' */
|
||||
Sprintf(buf, "put %s in", something);
|
||||
add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE,
|
||||
buf, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, menuselector[any.a_int], 0,
|
||||
ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
if (outokay) {
|
||||
any.a_int = 4; /* 'b' */
|
||||
Sprintf(buf, "%stake out, then put in", inokay ? "both; " : "");
|
||||
add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE,
|
||||
buf, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, menuselector[any.a_int], 0,
|
||||
ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
if (inokay) {
|
||||
any.a_int = 5; /* 'r' */
|
||||
Sprintf(buf, "%sput in, then take out",
|
||||
outokay ? "both reversed; " : "");
|
||||
add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE,
|
||||
buf, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, menuselector[any.a_int], 0,
|
||||
ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
any.a_int = 6; /* 's' */
|
||||
Sprintf(buf, "stash one item into %s", thesimpleoname(obj));
|
||||
add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE,
|
||||
buf, MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, menuselector[any.a_int], 0,
|
||||
ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
any.a_int = 0;
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
if (more_containers) {
|
||||
any.a_int = 7; /* 'n' */
|
||||
add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE,
|
||||
"loot next container", MENU_ITEMFLAGS_SELECTED);
|
||||
add_menu(win, &nul_glyphinfo, &any, menuselector[any.a_int], 0,
|
||||
ATR_NONE, "loot next container", MENU_ITEMFLAGS_SELECTED);
|
||||
}
|
||||
any.a_int = 8; /* 'q' */
|
||||
Strcpy(buf, alreadyused ? "done" : "do nothing");
|
||||
add_menu(win, NO_GLYPH, &any, menuselector[any.a_int], 0, ATR_NONE, buf,
|
||||
add_menu(win, &nul_glyphinfo, &any, menuselector[any.a_int], 0,
|
||||
ATR_NONE, buf,
|
||||
more_containers ? MENU_ITEMFLAGS_NONE : MENU_ITEMFLAGS_SELECTED);
|
||||
|
||||
end_menu(win, prompt);
|
||||
@@ -3155,18 +3165,18 @@ dotip()
|
||||
if (Is_container(cobj)) {
|
||||
++i;
|
||||
any.a_obj = cobj;
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
doname(cobj), MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, doname(cobj), MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
if (g.invent) {
|
||||
any = cg.zeroany;
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"", MENU_ITEMFLAGS_NONE);
|
||||
any.a_obj = &dummyobj;
|
||||
/* use 'i' for inventory unless there are so many
|
||||
containers that it's already being used */
|
||||
i = (i <= 'i' - 'a' && !flags.lootabc) ? 'i' : 0;
|
||||
add_menu(win, NO_GLYPH, &any, i, 0, ATR_NONE,
|
||||
add_menu(win, &nul_glyphinfo, &any, i, 0, ATR_NONE,
|
||||
"tip something being carried", MENU_ITEMFLAGS_SELECTED);
|
||||
}
|
||||
end_menu(win, "Tip which container?");
|
||||
|
||||
+7
-7
@@ -1390,25 +1390,25 @@ winid bannerwin; /* if not WIN_ERR, clear window and show copyright in menu */
|
||||
clear_nhwindow(bannerwin);
|
||||
/* COPYRIGHT_BANNER_[ABCD] */
|
||||
for (k = 1; k <= 4; ++k)
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
copyright_banner_line(k), MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE, "",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE,
|
||||
"Select one of your saved games", MENU_ITEMFLAGS_NONE);
|
||||
for (k = 0; saved[k]; ++k) {
|
||||
any.a_int = k + 1;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, saved[k],
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, saved[k], MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
clet = (k <= 'n' - 'a') ? 'n' : 0; /* new game */
|
||||
any.a_int = -1; /* not >= 0 */
|
||||
add_menu(tmpwin, NO_GLYPH, &any, clet, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, clet, 0, ATR_NONE,
|
||||
"Start a new character", MENU_ITEMFLAGS_NONE);
|
||||
clet = (k + 1 <= 'q' - 'a') ? 'q' : 0; /* quit */
|
||||
any.a_int = -2;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, clet, 0, ATR_NONE,
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, clet, 0, ATR_NONE,
|
||||
"Never mind (quit)", MENU_ITEMFLAGS_SELECTED);
|
||||
/* no prompt on end_menu, as we've done our own at the top */
|
||||
end_menu(tmpwin, (char *) 0);
|
||||
|
||||
+8
-6
@@ -1904,28 +1904,30 @@ boolean preselect;
|
||||
any.a_int = 0;
|
||||
/* use four spaces of padding to fake a grayed out menu choice */
|
||||
Sprintf(buf, "%4s%s forces %s", "", constrainer, forcedvalue);
|
||||
add_menu(where, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
|
||||
add_menu(where, &nul_glyphinfo, &any, 0, 0, ATR_NONE, buf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
} else if (what) {
|
||||
any.a_int = RS_menu_arg(which);
|
||||
Sprintf(buf, "Pick%s %s first", (f >= 0) ? " another" : "", what);
|
||||
add_menu(where, NO_GLYPH, &any, RS_menu_let[which], 0, ATR_NONE, buf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(where, &nul_glyphinfo, &any, RS_menu_let[which], 0,
|
||||
ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
} else if (which == RS_filter) {
|
||||
char setfiltering[40];
|
||||
|
||||
any.a_int = RS_menu_arg(RS_filter);
|
||||
Sprintf(setfiltering, "%s role/race/&c filtering",
|
||||
gotrolefilter() ? "Reset" : "Set");
|
||||
add_menu(where, NO_GLYPH, &any, '~', 0, ATR_NONE,
|
||||
add_menu(where, &nul_glyphinfo, &any, '~', 0, ATR_NONE,
|
||||
setfiltering, MENU_ITEMFLAGS_NONE);
|
||||
} else if (which == ROLE_RANDOM) {
|
||||
any.a_int = ROLE_RANDOM;
|
||||
add_menu(where, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
|
||||
add_menu(where, &nul_glyphinfo, &any, '*', 0,
|
||||
ATR_NONE, "Random",
|
||||
preselect ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
} else if (which == ROLE_NONE) {
|
||||
any.a_int = ROLE_NONE;
|
||||
add_menu(where, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
|
||||
add_menu(where, &nul_glyphinfo, &any, 'q', 0,
|
||||
ATR_NONE, "Quit",
|
||||
preselect ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
} else {
|
||||
impossible("role_menu_extra: bad arg (%d)", which);
|
||||
|
||||
+12
-9
@@ -1583,13 +1583,14 @@ spellsortmenu()
|
||||
let = 'z'; /* assumes fewer than 26 sort choices... */
|
||||
/* separate final choice from others with a blank line */
|
||||
any.a_int = 0;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
} else {
|
||||
let = 'a' + i;
|
||||
}
|
||||
any.a_int = i + 1;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, let, 0, ATR_NONE, spl_sortchoices[i],
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, let, 0,
|
||||
ATR_NONE, spl_sortchoices[i],
|
||||
(i == g.spl_sortmode) ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
end_menu(tmpwin, "View known spells list sorted");
|
||||
@@ -1676,8 +1677,8 @@ int *spell_no;
|
||||
Sprintf(buf, "Name\tLevel\tCategory\tFail\tRetention");
|
||||
fmt = "%s\t%-d\t%s\t%-d%%\t%s";
|
||||
}
|
||||
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, buf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0,
|
||||
iflags.menu_headings, buf, MENU_ITEMFLAGS_NONE);
|
||||
for (i = 0; i < MAXSPELL && spellid(i) != NO_SPELL; i++) {
|
||||
splnum = !g.spl_orderindx ? i : g.spl_orderindx[i];
|
||||
Sprintf(buf, fmt, spellname(splnum), spellev(splnum),
|
||||
@@ -1686,8 +1687,10 @@ int *spell_no;
|
||||
spellretention(splnum, retentionbuf));
|
||||
|
||||
any.a_int = splnum + 1; /* must be non-zero */
|
||||
add_menu(tmpwin, NO_GLYPH, &any, spellet(splnum), 0, ATR_NONE, buf,
|
||||
(splnum == splaction) ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, spellet(splnum), 0,
|
||||
ATR_NONE, buf,
|
||||
(splnum == splaction)
|
||||
? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
how = PICK_ONE;
|
||||
if (splaction == SPELLMENU_VIEW) {
|
||||
@@ -1697,8 +1700,8 @@ int *spell_no;
|
||||
} else {
|
||||
/* more than 1 spell, add an extra menu entry */
|
||||
any.a_int = SPELLMENU_SORT + 1;
|
||||
add_menu(tmpwin, NO_GLYPH, &any, '+', 0, ATR_NONE,
|
||||
"[sort spells]", MENU_ITEMFLAGS_NONE);
|
||||
add_menu(tmpwin, &nul_glyphinfo, &any, '+', 0,
|
||||
ATR_NONE, "[sort spells]", MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
}
|
||||
end_menu(tmpwin, prompt);
|
||||
|
||||
+2
-2
@@ -617,8 +617,8 @@ dotelecmd()
|
||||
any = cg.zeroany;
|
||||
for (i = 0; i < SIZE(tports); ++i) {
|
||||
any.a_int = (int) tports[i].menulet;
|
||||
add_menu(win, NO_GLYPH, &any, (char) any.a_int, 0, ATR_NONE,
|
||||
tports[i].menudesc,
|
||||
add_menu(win, &nul_glyphinfo, &any, (char) any.a_int, 0,
|
||||
ATR_NONE, tports[i].menudesc,
|
||||
(tports[i].menulet == 'w') ? MENU_ITEMFLAGS_SELECTED
|
||||
: MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
|
||||
+10
-9
@@ -1220,18 +1220,18 @@ enhance_weapon_skill()
|
||||
(u.ulevel < MAXULEV)
|
||||
? "when you're more experienced"
|
||||
: "if skill slots become available");
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
if (maxxed_cnt > 0) {
|
||||
Sprintf(buf,
|
||||
"(Skill%s flagged by \"#\" cannot be enhanced any further.)",
|
||||
plur(maxxed_cnt));
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, "", MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
|
||||
/* List the skills, making ones that could be advanced
|
||||
@@ -1244,7 +1244,8 @@ enhance_weapon_skill()
|
||||
/* Print headings for skill types */
|
||||
any = cg.zeroany;
|
||||
if (i == skill_ranges[pass].first)
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
iflags.menu_headings,
|
||||
skill_ranges[pass].name, MENU_ITEMFLAGS_NONE);
|
||||
|
||||
if (P_RESTRICTED(i))
|
||||
@@ -1286,8 +1287,8 @@ enhance_weapon_skill()
|
||||
sklnambuf);
|
||||
}
|
||||
any.a_int = can_advance(i, speedy) ? i + 1 : 0;
|
||||
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf,
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
add_menu(win, &nul_glyphinfo, &any, 0, 0,
|
||||
ATR_NONE, buf, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
|
||||
Strcpy(buf, (to_advance > 0) ? "Pick a skill to advance:"
|
||||
|
||||
+31
-24
@@ -70,7 +70,7 @@ static void FDECL(dump_clear_nhwindow, (winid));
|
||||
static void FDECL(dump_display_nhwindow, (winid, BOOLEAN_P));
|
||||
static void FDECL(dump_destroy_nhwindow, (winid));
|
||||
static void FDECL(dump_start_menu, (winid, unsigned long));
|
||||
static void FDECL(dump_add_menu, (winid, int, const ANY_P *, CHAR_P,
|
||||
static void FDECL(dump_add_menu, (winid, const glyph_info *, const ANY_P *, CHAR_P,
|
||||
CHAR_P, int, const char *, unsigned int));
|
||||
static void FDECL(dump_end_menu, (winid, const char *));
|
||||
static int FDECL(dump_select_menu, (winid, int, MENU_ITEM_P **));
|
||||
@@ -516,11 +516,13 @@ static void FDECL(hup_init_nhwindows, (int *, char **));
|
||||
static void FDECL(hup_exit_nhwindows, (const char *));
|
||||
static winid FDECL(hup_create_nhwindow, (int));
|
||||
static int FDECL(hup_select_menu, (winid, int, MENU_ITEM_P **));
|
||||
static void FDECL(hup_add_menu, (winid, int, const anything *, CHAR_P, CHAR_P,
|
||||
int, const char *, unsigned int));
|
||||
static void FDECL(hup_add_menu, (winid, const glyph_info *, const anything *,
|
||||
CHAR_P, CHAR_P, int, const char *,
|
||||
unsigned int));
|
||||
static void FDECL(hup_end_menu, (winid, const char *));
|
||||
static void FDECL(hup_putstr, (winid, int, const char *));
|
||||
static void FDECL(hup_print_glyph, (winid, XCHAR_P, XCHAR_P, int, int, unsigned *));
|
||||
static void FDECL(hup_print_glyph, (winid, XCHAR_P, XCHAR_P,
|
||||
const glyph_info *, const glyph_info *));
|
||||
static void FDECL(hup_outrip, (winid, int, time_t));
|
||||
static void FDECL(hup_curs, (winid, int, int));
|
||||
static void FDECL(hup_display_nhwindow, (winid, BOOLEAN_P));
|
||||
@@ -704,9 +706,10 @@ struct mi **menu_list UNUSED;
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
hup_add_menu(window, glyph, identifier, sel, grpsel, attr, txt, itemflags)
|
||||
hup_add_menu(window, glyphinfo, identifier, sel, grpsel, attr, txt, itemflags)
|
||||
winid window UNUSED;
|
||||
int glyph UNUSED, attr UNUSED;
|
||||
const glyph_info *glyphinfo UNUSED;
|
||||
int attr UNUSED;
|
||||
const anything *identifier UNUSED;
|
||||
char sel UNUSED, grpsel UNUSED;
|
||||
const char *txt UNUSED;
|
||||
@@ -736,12 +739,11 @@ const char *text UNUSED;
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
hup_print_glyph(window, x, y, glyph, bkglyph, glyphmod)
|
||||
hup_print_glyph(window, x, y, glyphinfo, bkglyphinfo)
|
||||
winid window UNUSED;
|
||||
xchar x UNUSED, y UNUSED;
|
||||
int glyph UNUSED;
|
||||
int bkglyph UNUSED;
|
||||
unsigned *glyphmod UNUSED;
|
||||
const glyph_info *glyphinfo UNUSED;
|
||||
const glyph_info *bkglyphinfo UNUSED;
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -1340,9 +1342,9 @@ unsigned long mbehavior UNUSED;
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
dump_add_menu(win, glyph, identifier, ch, gch, attr, str, itemflags)
|
||||
dump_add_menu(win, glyphinfo, identifier, ch, gch, attr, str, itemflags)
|
||||
winid win UNUSED;
|
||||
int glyph;
|
||||
const glyph_info *glyphinfo;
|
||||
const anything *identifier UNUSED;
|
||||
char ch;
|
||||
char gch UNUSED;
|
||||
@@ -1351,7 +1353,7 @@ const char *str;
|
||||
unsigned int itemflags UNUSED;
|
||||
{
|
||||
if (dumplog_file) {
|
||||
if (glyph == NO_GLYPH)
|
||||
if (glyphinfo->glyph == NO_GLYPH)
|
||||
fprintf(dumplog_file, " %s\n", str);
|
||||
else
|
||||
fprintf(dumplog_file, " %c - %s\n", ch, str);
|
||||
@@ -1434,15 +1436,20 @@ int
|
||||
glyph2ttychar(glyph)
|
||||
int glyph;
|
||||
{
|
||||
int so;
|
||||
unsigned glyphmod[NUM_GLYPHMOD];
|
||||
glyph_info glyphinfo;
|
||||
|
||||
map_glyphmod(0, 0, glyph, MG_FLAG_RETURNIDX, glyphmod);
|
||||
so = (int) glyphmod[GM_TTYCHAR];
|
||||
if (so >= 0 && so < SYM_MAX)
|
||||
return (int) g.showsyms[so];
|
||||
else
|
||||
return ' ';
|
||||
map_glyphinfo(0, 0, glyph, 0, &glyphinfo);
|
||||
return glyphinfo.ttychar;
|
||||
}
|
||||
|
||||
int
|
||||
glyph2symidx(glyph)
|
||||
int glyph;
|
||||
{
|
||||
glyph_info glyphinfo;
|
||||
|
||||
map_glyphinfo(0, 0, glyph, 0, &glyphinfo);
|
||||
return glyphinfo.symidx;
|
||||
}
|
||||
|
||||
char *
|
||||
@@ -1462,7 +1469,7 @@ const char *str;
|
||||
{
|
||||
static const char hex[] = "00112233445566778899aAbBcCdDeEfF";
|
||||
char *put = buf;
|
||||
unsigned glyphmod[NUM_GLYPHMOD];
|
||||
glyph_info glyphinfo = nul_glyphinfo;
|
||||
|
||||
if (!str)
|
||||
return strcpy(buf, "");
|
||||
@@ -1488,8 +1495,8 @@ const char *str;
|
||||
gv = (gv * 16) + ((int) (dp - hex) / 2);
|
||||
else
|
||||
break;
|
||||
map_glyphmod(0, 0, gv, MG_FLAG_RETURNIDX, glyphmod);
|
||||
so = glyphmod[GM_TTYCHAR];
|
||||
map_glyphinfo(0, 0, gv, 0, &glyphinfo);
|
||||
so = glyphinfo.symidx;
|
||||
*put++ = g.showsyms[so];
|
||||
/* 'str' is ready for the next loop iteration and '*str'
|
||||
should not be copied at the end of this iteration */
|
||||
|
||||
Reference in New Issue
Block a user