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:
@@ -1,4 +1,4 @@
|
||||
NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.452 $ $NHDT-Date: 1613272633 2021/02/14 03:17:13 $
|
||||
NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.453 $ $NHDT-Date: 1613292825 2021/02/14 08:53:45 $
|
||||
|
||||
General Fixes and Modified Features
|
||||
-----------------------------------
|
||||
@@ -531,6 +531,8 @@ X11: was still initializing map to 'stone' instead of 'unexplored' after they
|
||||
became separate glyphs
|
||||
X11: for text map without color, add support for black&white ice; draw it in
|
||||
inverse video to distinguish from ordinary floor
|
||||
X11: if perm_invent is set in NETHACKOPTIONS or config file, start with the
|
||||
persistent inventory window displayed
|
||||
X11+OSX: after the "bad Atom" fix (below), the persistent inventory window
|
||||
crept downward every time it got updated
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 },
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
Starting or restoring a game with 'perm_invent' enabled via config file
|
||||
or NETHACKOPTIONS does not begin with inventory shown.
|
||||
|
||||
When persistent inventory window is first populated, focus is given to
|
||||
its window (behavior might be window manager-specific; it happens with
|
||||
default window manager on OSX). Focus should be explicitly directed
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 winX.c $NHDT-Date: 1613272634 2021/02/14 03:17:14 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.96 $ */
|
||||
/* NetHack 3.7 winX.c $NHDT-Date: 1613292827 2021/02/14 08:53:47 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.97 $ */
|
||||
/* Copyright (c) Dean Luick, 1992 */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -1242,17 +1242,22 @@ X11_destroy_nhwindow(winid window)
|
||||
void
|
||||
X11_update_inventory(void)
|
||||
{
|
||||
struct xwindow *wp = 0;
|
||||
|
||||
if (!x_inited)
|
||||
return;
|
||||
|
||||
if (window_list[WIN_INVEN].menu_information->is_up) {
|
||||
if (iflags.perm_invent) {
|
||||
if (iflags.perm_invent) {
|
||||
/* skip any calls to update_inventory() before in_moveloop starts */
|
||||
if (g.program_state.in_moveloop || g.program_state.gameover) {
|
||||
updated_inventory = 1; /* hack to avoid mapping&raising window */
|
||||
(void) display_inventory((char *) 0, FALSE);
|
||||
updated_inventory = 0;
|
||||
} else {
|
||||
x11_no_perminv(&window_list[WIN_INVEN]);
|
||||
}
|
||||
} else if ((wp = &window_list[WIN_INVEN]) != 0
|
||||
&& wp->type == NHW_MENU && wp->menu_information->is_up) {
|
||||
/* persistent inventory is up but perm_invent is off, take it down */
|
||||
x11_no_perminv(wp);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 mswproc.c $NHDT-Date: 1596498364 2020/08/03 23:46:04 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.153 $ */
|
||||
/* NetHack 3.7 mswproc.c $NHDT-Date: 1613292828 2021/02/14 08:53:48 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.165 $ */
|
||||
/* Copyright (C) 2001 by Alex Kompel */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -86,6 +86,7 @@ struct window_procs mswin_procs = {
|
||||
| WC_FONTSIZ_MESSAGE | WC_FONTSIZ_STATUS | WC_FONTSIZ_MENU
|
||||
| WC_FONTSIZ_TEXT | WC_TILE_WIDTH | WC_TILE_HEIGHT | WC_TILE_FILE
|
||||
| WC_VARY_MSGCOUNT | WC_WINDOWCOLORS | WC_PLAYER_SELECTION
|
||||
| WC_PERM_INVENT
|
||||
| WC_SPLASH_SCREEN | WC_POPUP_DIALOG | WC_MOUSE_SUPPORT,
|
||||
#ifdef STATUS_HILITES
|
||||
WC2_HITPOINTBAR | WC2_FLUSH_STATUS | WC2_RESET_STATUS | WC2_HILITE_STATUS |
|
||||
|
||||
Reference in New Issue
Block a user