X11 persistent inventory again: initial display

If 'perm_invent' is preset in player's options, have X11 show the
persistent inventory window from the start instead of waiting for
an 'i' command.  moveloop() prolog needed a tweak do deal with it
cleanly.

Require WC_PERM_INVENT in order to honor the perm_invent option.
X11 and curses already set that, tty and curses don't support it,
so only Windows GUI needed to be updated for it.
This commit is contained in:
PatR
2021-02-14 00:57:34 -08:00
parent 36179da82f
commit 8fff588ab3
6 changed files with 24 additions and 17 deletions

View File

@@ -1,4 +1,4 @@
/* NetHack 3.7 allmain.c $NHDT-Date: 1596498146 2020/08/03 23:42:26 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.145 $ */
/* NetHack 3.7 allmain.c $NHDT-Date: 1613292825 2021/02/14 08:53:45 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.151 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2012. */
/* NetHack may be freely redistributed. See license for details. */
@@ -68,7 +68,6 @@ moveloop(boolean resuming)
g.context.seer_turn = (long) rnd(30);
}
g.context.botlx = TRUE; /* for STATUS_HILITES */
update_inventory(); /* for perm_invent */
if (resuming) { /* restoring old game */
read_engr_at(u.ux, u.uy); /* subset of pickup() */
}
@@ -85,6 +84,11 @@ moveloop(boolean resuming)
g.context.move = 0;
g.program_state.in_moveloop = 1;
/* for perm_invent preset at startup, display persistent inventory after
invent is fully populated and the in_moveloop flag has been set */
if (iflags.perm_invent)
update_inventory();
for (;;) {
#ifdef SAFERHANGUP
if (g.program_state.done_hup)

View File

@@ -1,4 +1,4 @@
/* NetHack 3.7 options.c $NHDT-Date: 1612431350 2021/02/04 09:35:50 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.500 $ */
/* NetHack 3.7 options.c $NHDT-Date: 1613293046 2021/02/14 08:57:26 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.506 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Michael Allison, 2008. */
/* NetHack may be freely redistributed. See license for details. */
@@ -8091,6 +8091,7 @@ static struct wc_Opt wc_options[] = {
{ "color", WC_COLOR },
{ "eight_bit_tty", WC_EIGHT_BIT_IN },
{ "hilite_pet", WC_HILITE_PET },
{ "perm_invent", WC_PERM_INVENT },
{ "popup_dialog", WC_POPUP_DIALOG },
{ "player_selection", WC_PLAYER_SELECTION },
{ "preload_tiles", WC_PRELOAD_TILES },
@@ -8098,15 +8099,11 @@ static struct wc_Opt wc_options[] = {
{ "tile_file", WC_TILE_FILE },
{ "tile_width", WC_TILE_WIDTH },
{ "tile_height", WC_TILE_HEIGHT },
{ "use_inverse", WC_INVERSE },
{ "align_message", WC_ALIGN_MESSAGE },
{ "align_status", WC_ALIGN_STATUS },
{ "font_map", WC_FONT_MAP },
{ "font_menu", WC_FONT_MENU },
{ "font_message", WC_FONT_MESSAGE },
#if 0
{"perm_invent", WC_PERM_INVENT},
#endif
{ "font_size_map", WC_FONTSIZ_MAP },
{ "font_size_menu", WC_FONTSIZ_MENU },
{ "font_size_message", WC_FONTSIZ_MESSAGE },
@@ -8118,6 +8115,7 @@ static struct wc_Opt wc_options[] = {
{ "scroll_amount", WC_SCROLL_AMOUNT },
{ "scroll_margin", WC_SCROLL_MARGIN },
{ "splash_screen", WC_SPLASH_SCREEN },
{ "use_inverse", WC_INVERSE },
{ "vary_msgcount", WC_VARY_MSGCOUNT },
{ "windowcolors", WC_WINDOWCOLORS },
{ "mouse_support", WC_MOUSE_SUPPORT },