-$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.103 $ $NHDT-Date: 1565833748 2019/08/15 01:49:08 $
+$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.104 $ $NHDT-Date: 1567213888 2019/08/31 01:11:28 $
This fixes36.3 file is here to capture information about updates in the 3.6.x
lineage following the release of 3.6.2 in May 2019. Please note, however,
sandestins are immune to stoning; net result was monster dying twice,
triggering "dmonsfree: N removed doesn't match N+1 pending" warning;
instead of dying, make it revert to sandestin form with full health
+toggling perm_invent (where supported) while swallowed or underwater didn't
+ necessarily update the persistent inventory window right away
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
curses+'perm_invent': top line was wasted (left blank) when borders Off
curses+'perm_invent': don't highlight inventory letters since nothing is
selectable from the menu comprising the persistent inventory window
+curses+'perm_invent': could crash during restore if game was saved while
+ hero was swallowed (invalid u.ustuck pointer; suppressing attempts to
+ update persistent inventory window during restore hides the problem)
curses+'popup_dialog': show the text cursor at the end of prompts for single
character input
curses+DUMPLOG: pass along old messages from save file and quest message
-/* NetHack 3.6 extern.h $NHDT-Date: 1562114349 2019/07/03 00:39:09 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.715 $ */
+/* NetHack 3.6 extern.h $NHDT-Date: 1567213888 2019/08/31 01:11:28 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.728 $ */
/* Copyright (c) Steve Creps, 1988. */
/* NetHack may be freely redistributed. See license for details. */
E int FDECL(count_unidentified, (struct obj *));
E void FDECL(identify_pack, (int, BOOLEAN_P));
E void NDECL(learn_unseen_invent);
+E void NDECL(update_inventory);
E void FDECL(prinv, (const char *, struct obj *, long));
E char *FDECL(xprname,
(struct obj *, const char *, CHAR_P, BOOLEAN_P, long, long));
-/* NetHack 3.6 winprocs.h $NHDT-Date: 1553204011 2019/03/21 21:33:31 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.47 $ */
+/* NetHack 3.6 winprocs.h $NHDT-Date: 1567213890 2019/08/31 01:11:30 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.50 $ */
/* Copyright (c) David Cohrs, 1992 */
/* NetHack may be freely redistributed. See license for details. */
#define end_menu (*windowprocs.win_end_menu)
#define select_menu (*windowprocs.win_select_menu)
#define message_menu (*windowprocs.win_message_menu)
-#define update_inventory (*windowprocs.win_update_inventory)
+
#define mark_synch (*windowprocs.win_mark_synch)
#define wait_synch (*windowprocs.win_wait_synch)
#ifdef CLIPPING
-/* NetHack 3.6 display.c $NHDT-Date: 1560085863 2019/06/09 13:11:03 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.104 $ */
+/* NetHack 3.6 display.c $NHDT-Date: 1567213890 2019/08/31 01:11:30 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.106 $ */
/* Copyright (c) Dean Luick, with acknowledgements to Kevin Darcy */
/* and Dave Cohrs, 1990. */
/* NetHack may be freely redistributed. See license for details. */
if (u.uswallow) {
swallowed(1);
- return;
+ goto post_map;
}
if (Underwater && !Is_waterlevel(&u.uz)) {
under_water(1);
- return;
+ goto post_map;
}
if (u.uburied) {
under_ground(1);
- return;
+ goto post_map;
}
/* shut down vision */
/* overlay with monsters */
see_monsters();
+ post_map:
+
/* perm_invent */
update_inventory();
-/* NetHack 3.6 invent.c $NHDT-Date: 1562203850 2019/07/04 01:30:50 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.261 $ */
+/* NetHack 3.6 invent.c $NHDT-Date: 1567213892 2019/08/31 01:11:32 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.262 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Derek S. Ray, 2015. */
/* NetHack may be freely redistributed. See license for details. */
update_inventory();
}
+/* persistent inventory window is maintained by interface code;
+ 'update_inventory' used to be a macro for
+ (*windowprocs.win_update_inventory) but the restore hackery
+ was getting out of hand; this is now a central call point */
+void
+update_inventory()
+{
+ if (restoring)
+ return;
+
+ /*
+ * Ought to check (windowprocs.wincap2 & WC2_PERM_INVENT) here....
+ *
+ * We currently don't skip this call when iflags.perm_invent is False
+ * because curses uses that to disable a previous perm_invent window
+ * (after toggle via 'O'; perhaps the options code should handle that).
+ */
+ (*windowprocs.win_update_inventory)();
+}
+
/* should of course only be called for things in invent */
STATIC_OVL char
obj_to_let(obj)