if (have_windows) {
wait_synch();
free_pickinv_cache(); /* extra persistent window if perm_invent */
- if (WIN_INVEN != WIN_ERR)
+ if (WIN_INVEN != WIN_ERR) {
destroy_nhwindow(WIN_INVEN), WIN_INVEN = WIN_ERR;
+ /* precaution in case any late update_inventory() calls occur */
+ flags.perm_invent = 0;
+ }
display_nhwindow(WIN_MESSAGE, TRUE);
destroy_nhwindow(WIN_MAP), WIN_MAP = WIN_ERR;
#ifndef STATUS_HILITES
? (const char *) ((flags.female && urole.name.f)
? urole.name.f
: urole.name.m)
- : (const char *) (flags.female ? "Demigoddess" : "Demigod"));
+ : (const char *) (flags.female ? "Demigoddess" : "Demigod"));
dump_forward_putstr(endwin, 0, pbuf, done_stopprint);
dump_forward_putstr(endwin, 0, "", done_stopprint);
Schroedingers_cat = odds_and_ends(invent, CAT_CHECK);
if (Schroedingers_cat) {
int mhp, m_lev = adj_lev(&mons[PM_HOUSECAT]);
+
mhp = d(m_lev, 8);
nowrap_add(u.urexp, mhp);
Strcat(eos(pbuf), " and Schroedinger's cat");
boolean want_reply;
long *out_cnt;
{
+ static const char not_carrying_anything[] = "Not carrying anything";
struct obj *otmp;
char ilet, ret;
char *invlet = flags.inv_order;
++n;
if (n == 0) {
- pline("Not carrying anything.");
+ pline("%s.", not_carrying_anything);
return 0;
}
goto nextclass;
}
}
-
if (iflags.force_invmenu && lets && want_reply) {
any = zeroany;
- add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, "Special", MENU_UNSELECTED);
+ add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
+ "Special", MENU_UNSELECTED);
any.a_char = '*';
- add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "(list everything)", MENU_UNSELECTED);
+ add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE,
+ "(list everything)", MENU_UNSELECTED);
+ }
+ /* for permanent inventory where we intend to show everything but
+ nothing has been listed (because there isn't anyhing to list;
+ recognized via any.a_char still being zero; the n==0 case above
+ gets skipped for perm_invent), put something into the menu */
+ if (flags.perm_invent && !lets && !any.a_char) {
+ any = zeroany;
+ add_menu(win, NO_GLYPH, &any, 0, 0, 0,
+ not_carrying_anything, MENU_UNSELECTED);
+ want_reply = FALSE;
}
-
end_menu(win, query && *query ? query : (char *) 0);
n = select_menu(win, want_reply ? PICK_ONE : PICK_NONE, &selected);