]> granicus.if.org Git - nethack/log
nethack
5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Sat, 23 Feb 2019 17:11:33 +0000 (12:11 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agoMinor Guidebook.{tex,mn} wording and typos. UR macro.
keni [Sat, 23 Feb 2019 01:00:14 +0000 (20:00 -0500)]
Minor Guidebook.{tex,mn} wording and typos.  UR macro.

5 years agovms/Makefile.src - curses
PatR [Fri, 22 Feb 2019 22:56:42 +0000 (14:56 -0800)]
vms/Makefile.src - curses

Add curses dependencies to VMS Makefile.  Not tested.

5 years agounix/Makefile.src - wincurs.h
PatR [Fri, 22 Feb 2019 22:55:29 +0000 (14:55 -0800)]
unix/Makefile.src - wincurs.h

I don't know whether anyone uses 'make tags' any more, but it was
missing include/wincurs.h (and win/curses/*.h, but I'm ingoring those).

5 years agomore bz 1604 - re-do vs autoquiver
PatR [Fri, 22 Feb 2019 20:54:39 +0000 (12:54 -0800)]
more bz 1604 - re-do vs autoquiver

Take another crack at describing yesterday's do-again fix.  Having
'autoquiver' enabled wasn't necessary to encounter the problem.
Also, 'in_doagain' is an int rather than a boolean.

5 years agofix typo in comment
nhmall [Fri, 22 Feb 2019 14:00:53 +0000 (09:00 -0500)]
fix typo in comment

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Fri, 22 Feb 2019 13:43:11 +0000 (08:43 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agoThis is cron-daily v1-Feb-22-2019. guidebook updated: doc/Guidebook.txt
nhw_cron [Fri, 22 Feb 2019 12:29:11 +0000 (07:29 -0500)]
This is cron-daily v1-Feb-22-2019.  guidebook updated: doc/Guidebook.txt

5 years agoThis is cron-daily v1-Feb-22-2019. files updated: Files
nhw_cron [Fri, 22 Feb 2019 12:29:07 +0000 (07:29 -0500)]
This is cron-daily v1-Feb-22-2019.  files updated: Files

5 years agofix #H8237 - corpse on an invalid trap
PatR [Fri, 22 Feb 2019 01:53:19 +0000 (17:53 -0800)]
fix #H8237 - corpse on an invalid trap

It's possible to get a rolling boulder trap which doesn't have any
boulder.  That isn't invalid, but if/when it happens on a shallow
level it shouldn't be covered by the corpse of a fake adventurer
since such a trap won't kill anyone.

5 years agoset up for proper generation of Files file
keni [Fri, 22 Feb 2019 01:32:36 +0000 (20:32 -0500)]
set up for proper generation of Files file

5 years agofix bz 1604 - re-do vs autoquiver
PatR [Thu, 21 Feb 2019 21:28:18 +0000 (13:28 -0800)]
fix bz 1604 - re-do vs autoquiver

One-line fix is much shorter than attempting to describe the problem.
^A could misuse previous input if 'f'<direction> needed to fill the
quiver and there was nothing suitable, so that the sequence became
'f'<what to throw>.  If previous <direction> was an inventory letter
that was occupied, and the item it that slot wasn't already worn in
some other slot, it would be put in quiver slot.  Then player would
be asked for direction rather than immediately throwing it since the
what-to-throw prompt had just used up the last of the ^A queue.

Miscellaneous formatting included....

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Wed, 20 Feb 2019 13:54:30 +0000 (08:54 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agoDECgraphics vs eight_bit_tty
PatR [Wed, 20 Feb 2019 02:25:02 +0000 (18:25 -0800)]
DECgraphics vs eight_bit_tty

The fuzzer likes to set options randomly; the combination of
DECgraphics symbol set (on a display capable of rendering it) plus
eight_bit_tty produces a bizarre map display.  Make DECgraphics
override eight_bit_tty rather than the other way around.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Tue, 19 Feb 2019 12:39:52 +0000 (07:39 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agoOSX has /dev/random
PatR [Mon, 18 Feb 2019 23:34:09 +0000 (15:34 -0800)]
OSX has /dev/random

We aren't defining BSD for OSX but we probably should be.  This doesn't
go that far, just changes a couple of __APPLE__ for MACOSX (set up in
config1.h) and defines DEV_RANDOM as "/dev/random".

5 years agomore #H8215 - monster instrinsics
PatR [Mon, 18 Feb 2019 23:24:02 +0000 (15:24 -0800)]
more #H8215 - monster instrinsics

5 years agopoly'd hero movement
PatR [Mon, 18 Feb 2019 21:24:58 +0000 (13:24 -0800)]
poly'd hero movement

Noticed while fixing the 'monster intrinsics from worn gear' bug(s):
set_uasmon() calls set_mon_data(&youmonst,...) which updates movement
when the monster polymorphs into something slower, then it did the
same thing to youmonst.movement itself, hitting the hero with a double
dose of reduction for any movement points not yet spent on current
turn.  Remove the set_uasmon() side of that, and change set_mon_data()
side to add a redundant non-zero test to prevent static analysis from
warning that it might be dividing by 0.

5 years agofix #H8215 - monster intrinsics from worn gear
PatR [Mon, 18 Feb 2019 21:17:14 +0000 (13:17 -0800)]
fix #H8215 - monster intrinsics from worn gear

Fixes #177

The monst struct has 'mintrinsics' field which attempts to handle
both mon->data->mresists and extrinsics supplied by worn armor, but
polymorph/shape-change was clobbering the extrinsics side of things.
Potentially fixing that by changing newcham() to use set_mon_data(...,1)
instead of (...,0) solved that but exposed two other bugs.  Intrinsics
from the old form carried over to the new form along with extrinsics
from worn armor, and update_mon_intrinsics() for armor being destroyed
or dropped only worked as intended if the armor->owornmask was cleared
beforehand--some places were clearing it after, so extrinsics from worn
gear could persist even after that gear was gone.

So, fixing the set_mon_data() call in newcham() was a no go.  This
fixes update_mon_intrinsics() and adopts the suggested code from
github pull request #177 to have mon->mintrinsics only handle worn
gear instead of trying to overload innate intrinsics with that.  This
is a superset of that; the flag argument to set_mon_data() is gone
and mon->mintrinsics has been renamed mon->mextrinsics.  (The routine
update_mon_intrinsics() ought to be renamed too, but I didn't do that.)

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Mon, 18 Feb 2019 16:53:19 +0000 (11:53 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agoextended #version windowing options
PatR [Sun, 17 Feb 2019 23:00:43 +0000 (15:00 -0800)]
extended #version windowing options

When makedefs generates dat/options for #version, enhance the
formatting of the 'supported windowing systems' section with more
thorough word fill and also emphasize the actual window system names
so that user can tell what value to give to OPTIONS=window_system:%s
when picking one of them.  Before and after

Supported windowing systems:
    traditional tty-based graphics,
    terminal-based graphics using curses libraries, and X11
    with a default of tty.

Supported windowing systems:
    "tty" (traditional text with optional line-drawing), "curses"
    (terminal-based graphics), and "X11", with a default of "tty".

5 years agoVMS curses
PatR [Sat, 16 Feb 2019 23:34:23 +0000 (15:34 -0800)]
VMS curses

Add untested support for building the curses interface instead of or
in addtion to tty.

While in there, update Makefile.src's isaac64.obj dependency.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Sat, 16 Feb 2019 19:22:09 +0000 (14:22 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agoNetHack Windows curses port build with Jan 2019 PDCurses update
nhmall [Sat, 16 Feb 2019 19:15:35 +0000 (14:15 -0500)]
NetHack Windows curses port build with Jan 2019 PDCurses update

Clear up some NetHack warnings with updated PDCurses by using
-DCHTYPE_32

..\win\curses\cursinvt.c(98): warning C4244: 'function': conversion from 'attr_t' to 'int', possible loss of data
..\win\curses\cursinvt.c(101): warning C4244: 'function': conversion from 'attr_t' to 'int', possible loss of data
..\win\curses\cursinvt.c(105): warning C4244: 'function': conversion from 'attr_t' to 'int', possible loss of data

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Sat, 16 Feb 2019 00:01:52 +0000 (19:01 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agoVMS system.h bit
PatR [Fri, 15 Feb 2019 22:10:09 +0000 (14:10 -0800)]
VMS system.h bit

Avoid some duplicate declarations for VMS.  The one for lseek()
has become an issue--not fixed here--and this narrows it down to
one place.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Fri, 15 Feb 2019 20:24:45 +0000 (15:24 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agoarray lint
PatR [Thu, 14 Feb 2019 00:11:23 +0000 (16:11 -0800)]
array lint

Suppress a diagnostic from the VMS compiler that the '&' in '&array'
has no effect.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Wed, 13 Feb 2019 19:57:47 +0000 (14:57 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agofix #H8183 - leather jacket doesn't show AC
PatR [Tue, 12 Feb 2019 23:40:05 +0000 (15:40 -0800)]
fix #H8183 - leather jacket doesn't show AC

Leather jacket doesn't take multiple turns to wear, so wearing it
wasn't calling Armor_on() and recently moved 'uarm->known = 1' didn't
get executed.  Not reported yet but had the same issue:  fedora and
dented pot wouldn't call Helmet_on().

5 years agoGuidebook tweak - options parsing
PatR [Tue, 12 Feb 2019 00:30:46 +0000 (16:30 -0800)]
Guidebook tweak - options parsing

5 years agomore #H8167 - late messages
PatR [Mon, 11 Feb 2019 21:39:34 +0000 (13:39 -0800)]
more #H8167 - late messages

Do late message suppression in a different fashion.  Also, there are
more messages than shk taking hero's possessions and guard taking
hero's gold that need to be suppressed if regular message delivery
is no longer possible:  "do not pass Go", "you arise from the grave
as a foo", "the corridor disappears", "you are encased in the rock".
Those last two are from vault handling but take place in a convoluted
manner:  paygd -> mongone -> grddead -> clear_fcorr.

5 years agotypo
nhmall [Mon, 11 Feb 2019 19:35:25 +0000 (14:35 -0500)]
typo

5 years agouse the NetHack macro NHSTDC in makedefs
nhmall [Mon, 11 Feb 2019 17:28:57 +0000 (12:28 -0500)]
use the NetHack macro NHSTDC in makedefs

5 years agoarrange platform/interface fixes alphabetically by platform in fixes36.2
nhmall [Mon, 11 Feb 2019 17:23:00 +0000 (12:23 -0500)]
arrange platform/interface fixes alphabetically by platform in fixes36.2

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Mon, 11 Feb 2019 17:03:49 +0000 (12:03 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agofix #H8167 - shopkeeper message after ending game
PatR [Mon, 11 Feb 2019 01:45:26 +0000 (17:45 -0800)]
fix #H8167 - shopkeeper message after ending game

Closing nethack's window sets 'program_state.stopprint' to inhibit
disclosure interaction, but shopkeeper claiming hero's stuff or vault
guard claiming hero's gold didn't honor that and just issued normal
pline messages.  For win32, they got delivered in a popup even though
nethack's window had gone away.

Make those two end-of-game situations honor 'program_state.stopprint'.
[Fix not tested on win32...]

5 years agoGuidebook date update
nhmall [Mon, 11 Feb 2019 00:02:06 +0000 (19:02 -0500)]
Guidebook date update

5 years agoGuidebook consistency improvement
nhmall [Sun, 10 Feb 2019 23:48:50 +0000 (18:48 -0500)]
Guidebook consistency improvement

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Sun, 10 Feb 2019 23:21:43 +0000 (18:21 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agoisaac64 on vms
PatR [Sun, 10 Feb 2019 21:54:16 +0000 (13:54 -0800)]
isaac64 on vms

Not tested yet...

5 years agocompiling isaac64.c
PatR [Sun, 10 Feb 2019 21:41:45 +0000 (13:41 -0800)]
compiling isaac64.c

Revise isaac64.c so that it can be compiled unconditionally and
yield nothing if USE_ISAAC64 isn't defined.  Necessary for building
via vmsbuild.com.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Sun, 10 Feb 2019 05:05:44 +0000 (00:05 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agocomment typo
PatR [Sun, 10 Feb 2019 00:27:51 +0000 (16:27 -0800)]
comment typo

5 years agofix #H8124 - interrupted donning gives player info
PatR [Sun, 10 Feb 2019 00:07:18 +0000 (16:07 -0800)]
fix #H8124 - interrupted donning gives player info

about the armor.  Wearing armor sets obj->known, making its enchantment
be shown when it gets formatted, because the AC value on the status line
lets the player deduce what that is.  It was being set at the beginning
of the wear operation.  If the armor got stolen before it became fully
worn, the enchantment was still shown.  Defer that until the end of the
operation.  An attentive player can still deduce the enchantment if the
item is stolen (because its protection starts immediately) but the hero
won't learn that enchantment unless the donning completes.

This might be suboptimal but it isn't qualitatively different from
watching a pet walk/not-walk over items whose bless/curse state isn't
known or dropping unidentified items in a shop to check their price.
The player can deduce something that the hero doesn't know yet.

5 years agominor nitpicks
PatR [Sat, 9 Feb 2019 23:33:16 +0000 (15:33 -0800)]
minor nitpicks

A couple of trivial things I noticed while looking at status cleanup.

5 years agocurses status cleanup
PatR [Sat, 9 Feb 2019 23:30:53 +0000 (15:30 -0800)]
curses status cleanup

Stop the last of the memory leaks occuring during basic usage.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Sat, 9 Feb 2019 00:58:36 +0000 (19:58 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agomore curses memory
PatR [Sat, 9 Feb 2019 00:51:33 +0000 (16:51 -0800)]
more curses memory

Message history now cleaned up at game end.  Status window cleanup is
not taking place because the core is suppressing it #if STATUS_HILITES.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Sat, 9 Feb 2019 00:03:20 +0000 (19:03 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Fri, 8 Feb 2019 23:52:22 +0000 (18:52 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agocurses: plug most memory leaks
PatR [Fri, 8 Feb 2019 23:50:59 +0000 (15:50 -0800)]
curses: plug most memory leaks

This takes care of a lot of the leaked memory in the curses interface.
It still needs to free memory allocated for status fields when the
status window is destroyed at game end; likewise for message history
when the message window is destroyed.

5 years agocurses: getline vs DEL, ESC
PatR [Fri, 8 Feb 2019 22:54:40 +0000 (14:54 -0800)]
curses: getline vs DEL, ESC

Support <delete> (aka <rubout>) during getline().  It doesn't actually
honor the current erase_char value set up for the terminal, just
treats DEL the same as ^H.  (The previous lack of support had nothing
to do with terminfo specifying ^H; the handling is hard-coded.)

tty treats escape while there's already some input as kill_char (erase
the input but get more from scratch) and returns ESC if there isn't.
curses was doing the first half but not the second, so not providing
any way to communicate "cancel" back to the core.  Fix is simple.

Other getline() bug fixes:
1] there was a wprintw("%*something") which was passing the value from
strlen (type 'size_t') to the "%*" argument (type 'int').  That's
always wrong (size_t is guaranteed to be unsigned) and could be severe
(if size_t is different width than int--as on current OSX systems--
depending upon the internals of argument passing).
2] strncpy() only supplies a terminating '\0' if the input is shorter
than the number of characters specified.

A lot of reformatting is warranted but I only did the getline routine
(manually, so might have missed stuff).

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Fri, 8 Feb 2019 19:52:57 +0000 (14:52 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agocurses memory: 'anything identifier'
PatR [Fri, 8 Feb 2019 01:10:55 +0000 (17:10 -0800)]
curses memory: 'anything identifier'

Three or four instances of one simple memory leak.  Allocating a union
'anything' to pass to add_menu(), then not doing anything with it.  The
value gets copied so there's no reason for the original to stick around.

[There are still lots of other memory leaks.]

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Fri, 8 Feb 2019 01:05:02 +0000 (20:05 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agocurses: change from malloc() to nethack's alloc()
PatR [Fri, 8 Feb 2019 00:48:37 +0000 (16:48 -0800)]
curses: change from malloc() to nethack's alloc()

There was no provision for malloc() potentially returning Null and it
wasn't integrated with nethack's MONITOR_HEAP.  'heaputil' shows that
the curses interface is leaking like a sieve.  If some things are
actually being allocated separately and then freed from within curses,
those need to be thoroughly documented and maybe switched back to
malloc().

5 years agocustompline(SUPPRESS_HISTORY,...) for curses
PatR [Fri, 8 Feb 2019 00:04:24 +0000 (16:04 -0800)]
custompline(SUPPRESS_HISTORY,...) for curses

The curses interface already has a hack to keep 'Count: 12', 'Count:
123' intermediate multi-digit counts out of its message recall history
for ^P, but it was flushing real messages when getpos()'s 'autodescribe'
reported what the cursor moved over.  Overload the count hack to support
 putstr(WIN_MESSAGE, ATR_NOHISTORY, text)
(which is what custompline(SUPPRESS_HISTORY, ...) eventually calls).

The conditional logic for when to create the 'count_window' was pretty
convoluted.  This simplification has the same semantics but I don't
have PDCURSES to actually verify that.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Wed, 6 Feb 2019 02:53:19 +0000 (21:53 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agoarmor comments
PatR [Tue, 5 Feb 2019 22:49:43 +0000 (14:49 -0800)]
armor comments

I don't see the #H8124 bug getting fixed any time soon, so add a
comment about it since the relevant place is unambiguous.

No change in code except removing a couple instances of 'register'.

5 years agomore message history
PatR [Tue, 5 Feb 2019 02:40:55 +0000 (18:40 -0800)]
more message history

Noticed while investigating the issue with DECgraphics characters in
msg_window:full/combination/reverse output for tty which got fixed
by the previous commit.  There was a discrepancy in DUMPLOG because
the pager code bypasses pline() in order to use putmixed().  tty
puts strings from the latter into ^P recall history (although they'll
only render correctly if nothing after the first character needs
special handling), but nothing was putting that same info into
DUMPLOG.  This fix is pretty clumsy but eliminates the discrepancy.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Tue, 5 Feb 2019 02:39:53 +0000 (21:39 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agotty ^P recall for dolook/whatis feedback
PatR [Tue, 5 Feb 2019 02:24:17 +0000 (18:24 -0800)]
tty ^P recall for dolook/whatis feedback

Noticed while testing the history suppression:  if you have DECgraphics
enabled and look at a graphics character on the map, the topline shows
x      description of x
where 'x' is displayed as it appears on the map (line drawing char).
^P for msg_window:single knows about that and reproduces the effect if
you recall such a line.  But msg_window:full/combination/reverse didn't
know about that and dumped it as-is into text output, ending up with a
strange 8-bit character for 'x' instead of the line drawing one.

I think other rendering schemes will be unaffected by this.  It's just
duplicating what is done for msg_window:single.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Tue, 5 Feb 2019 01:54:05 +0000 (20:54 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agofixes entry for amiga fix
nhmall [Tue, 5 Feb 2019 01:27:18 +0000 (20:27 -0500)]
fixes entry for amiga fix

Also, a pull request 175 showed up after the earlier commit for the missing
continuation lines, so mark the pull request as closed.

closes #175

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Tue, 5 Feb 2019 01:05:28 +0000 (20:05 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agoMerge branch 'NetHack-3.6.2-beta01' of https://rodney.nethack.org:20040/git/NHsource...
nhmall [Tue, 5 Feb 2019 01:04:59 +0000 (20:04 -0500)]
Merge branch 'NetHack-3.6.2-beta01' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6.2-beta01

5 years agoanother contributed Amiga bit, missing line continuations in Makefile
nhmall [Tue, 5 Feb 2019 01:02:53 +0000 (20:02 -0500)]
another contributed Amiga bit, missing line continuations in Makefile

5 years agotty ^P fixes entry
PatR [Tue, 5 Feb 2019 00:52:37 +0000 (16:52 -0800)]
tty ^P fixes entry

Left this out of previous commit.

5 years agotty ^P message recall
PatR [Tue, 5 Feb 2019 00:46:04 +0000 (16:46 -0800)]
tty ^P message recall

Extend 'putstr(WIN_MESSAGE, attribute, string)'s attribute so that
'custompline(SUPPRESS_HISTORY, ...)' can work with ^P's message
history like DUMPLOG history, in order to keep autodescribe feedback
and intermediate prompts for multi-digit count ('Count: 12', 'Count:
123') prompts out of recall history.  The old autodescribe behavior
could easily push all real messages out of the recall buffer when
moving the cursor around for getpos, and the count behavior looked
silly for a four or five digit gold count if you set the msg_window
option to 'full' or 'combination' and viewed them all at once.

Other interfaces may want to follow suit, but this doesn't force them
to make any changes.  I added a hook for "urgent messages" that might
be rendered in bold or red or some such and/or override the use of
ESC at --More-- from suppressing further messages, but there aren't
any custompline(URGENT_MESSAGE, ...) calls (potentially "You die...",
for instance) to exercise it.  Other people have implemented similar
feature it different ways and I'm not sure whether this one is really
the way to go since the core needs to categorize each message that it
deems to be urgent.  MSG_TYPE:stop may be sufficent, although MSG_TYPE
matching can entail a lot of regexp execution overhead at run-time.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Mon, 4 Feb 2019 23:37:15 +0000 (18:37 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agovariable moved to context long ago
nhmall [Mon, 4 Feb 2019 23:35:17 +0000 (18:35 -0500)]
variable moved to context long ago

just reported, a variable moved to context long ago

5 years agofunction call through pointer
PatR [Mon, 4 Feb 2019 23:01:36 +0000 (15:01 -0800)]
function call through pointer

There be others of these.  Don't for ANSI C for something this simple.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Sun, 3 Feb 2019 22:28:27 +0000 (17:28 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agogoodtype() reversal
PatR [Sun, 3 Feb 2019 22:08:29 +0000 (14:08 -0800)]
goodtype() reversal

Reverse an erroneous part of the vault guard commit.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Sun, 3 Feb 2019 02:09:23 +0000 (21:09 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agofix #H7173 / github #101 - vault exit
PatR [Sun, 3 Feb 2019 01:37:06 +0000 (17:37 -0800)]
fix #H7173 / github #101 - vault exit

Fixes #101

If you tell the vault guard your name, drop carried gold, wait one
turn, then pick up the gold again, the guard will move a step away
during the wait.  If you teleport away, the guard will seal vault
walls and then park himself on the one-square (so far) temporary
corridor adjacent to the vault wall.  Periodically he'll say "Move
along!" and the hero will hear it, regardless of location on the
level.  Unless you dig a corridor to rescue him, or one or more of
the vault's walls get breached again, he will never move.

The report emphasized that you could use this to steal the vault's
gold, but it relies on being able to teleport beyond the gaurd's
reach and if you can do that, you might as well do so before the
guard comes.  The stranded guard, and him saying "Move along!" when
no longer leading hero out of the vault, are more significant bugs.

Bonus fix:  if the game ends and the guard seals up the vault while
the hero is in a spot that gets fixed up (vault wall or temporary
corridor) don't give the "You are encased in the rock" message if
game end was due to death rather than quit.

5 years agoobject classes for wizard mode identify
PatR [Sat, 2 Feb 2019 02:40:45 +0000 (18:40 -0800)]
object classes for wizard mode identify

When ^I was changed to allow picking more than one item to make
its temporary identification become persistent, group accelators got
left out.  So to pick all potions, you needed to select them letter
by letter (or via '.' to select everything, then deselect non-potions
letter by letter).  Now you can use '!' to select all potions.

5 years agocuring deafness
PatR [Sat, 2 Feb 2019 02:24:23 +0000 (18:24 -0800)]
curing deafness

Make healing magic which cures blindness also cure deafness.  So,
drinking non-cursed potion of healing or any extra healing or full
healing; breathing fumes from blessed potion of healing or non-cursed
potion of extra healing or any potion of full healing; prayer reward
to cure blindness as a minor trouble.  (Doesn't affect unicorn horns
which already treat deafness and blindness as two distinct troubles
that are eligible to be cured.)

More of a missing feature than a bug fix, so I listed it in the new
features section of the fixes file.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Sat, 2 Feb 2019 00:23:44 +0000 (19:23 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agoFix making fake leash object with leashmon set
Pasi Kallinen [Fri, 1 Feb 2019 16:19:00 +0000 (18:19 +0200)]
Fix making fake leash object with leashmon set

When farlooking at a leash glyph on a map, the fake object should never
have leashmon set. This happened when a mimic was on the same spot
and was mimicing a corpse or statue, due to leashmon and corpsenm
using the same field.

5 years agoFix logic error in stuck_in_wall
Pasi Kallinen [Fri, 1 Feb 2019 11:38:21 +0000 (13:38 +0200)]
Fix logic error in stuck_in_wall

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Fri, 1 Feb 2019 00:56:38 +0000 (19:56 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agomissing maybe_reset_pick update
PatR [Fri, 1 Feb 2019 00:50:17 +0000 (16:50 -0800)]
missing maybe_reset_pick update

Accidentally omitted from the commit for 'stale lock picking context'
8bf16b940e15cac75cea2a4de92738c90fa71688.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Fri, 1 Feb 2019 00:29:55 +0000 (19:29 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agostale lock picking context
PatR [Thu, 31 Jan 2019 23:50:12 +0000 (15:50 -0800)]
stale lock picking context

Lock context wasn't being cleared if it was for a container and that
container got destroyed.  Case discovered was forcelock() ->
breakchestlock() -> delobj() (sometimes the container is destroyed
rather than just breaking its lock) followed by #wizmakemap (replace
current level) and maybe_reset_pick() trying to check whether
xlock.box was being carried.  But being interrupted, destroying the
container or dropping it down a hole to ship it to another level, then
attempting to resume picking the lock would also find a stale pointer.

5 years agoMerge branch 'NetHack-3.6.2-beta01' of https://rodney.nethack.org:20040/git/NHsource...
nhmall [Thu, 31 Jan 2019 23:22:55 +0000 (18:22 -0500)]
Merge branch 'NetHack-3.6.2-beta01' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6.2-beta01

5 years agoFix warning
Pasi Kallinen [Thu, 31 Jan 2019 19:31:26 +0000 (21:31 +0200)]
Fix warning

Fix "using integer constants in boolean context"

5 years agoRevert "adjust sample config file when STATUS_HILITES isn't defined"
nhmall [Thu, 31 Jan 2019 18:03:00 +0000 (13:03 -0500)]
Revert "adjust sample config file when STATUS_HILITES isn't defined"

This reverts commit 03e6c26af6de62f6a970d5b0c9845f924bfc93f4.

5 years agofix monstone() ... dealloc_obj() panic
PatR [Thu, 31 Jan 2019 12:22:04 +0000 (04:22 -0800)]
fix monstone() ... dealloc_obj() panic

Fuzzer feebdack.  When turning a monster into a statue, monstone()
builds a linked list of mon->minvent items to put into that statue.
It doesn't use obj_extract_self() to take them off again, leaving
obj->nobj non-Null.  Not noticed for the normal case where each item
gets linked into the container's contents, but triggers panic if an
item merges with something already put inside so gets removed.

Suddenly, the dungeon collapses.
dealloc_obj with nobj
[2] 0x01000c4193 panic + 995
[3] 0x0100155427 dealloc_obj + 71
[4] 0x010021d4de obfree + 686
[5] 0x01000f2f92 merged + 834
[6] 0x010015356e add_to_container + 126
[7] 0x01001628ac monstone + 636

I don't know why the petrified monster's mergeable inventory wasn't
already merged while in inventory.

5 years agoOption handling return values and errors
Pasi Kallinen [Thu, 31 Jan 2019 08:46:41 +0000 (10:46 +0200)]
Option handling return values and errors

Fix some options not stopping when encountering an error,
some didn't show up any errors, and other minor fixes.

5 years agoSilence sprintf format warnings and dehardcode buffer sizes
Pasi Kallinen [Thu, 31 Jan 2019 07:42:03 +0000 (09:42 +0200)]
Silence sprintf format warnings and dehardcode buffer sizes

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Thu, 31 Jan 2019 04:11:49 +0000 (23:11 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agoanother warning fix
PatR [Thu, 31 Jan 2019 00:25:31 +0000 (16:25 -0800)]
another warning fix

Only appeared when ISAAC64 was disabled.

5 years agorng bit
nhmall [Wed, 30 Jan 2019 16:08:11 +0000 (11:08 -0500)]
rng bit

5 years agoadd a descriptive comment to integer.h
nhmall [Wed, 30 Jan 2019 13:30:02 +0000 (08:30 -0500)]
add a descriptive comment to integer.h

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Wed, 30 Jan 2019 03:33:18 +0000 (22:33 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agofix a likely typo/transcription error in integer.h
nhmall [Wed, 30 Jan 2019 03:12:09 +0000 (22:12 -0500)]
fix a likely typo/transcription error in integer.h

5 years agofix build
nhmall [Wed, 30 Jan 2019 01:29:56 +0000 (20:29 -0500)]
fix build

../sys/unix/unixmain.c: In function ‘sys_random_seed’:
../sys/unix/unixmain.c:779:29: error: expected expression before ‘long’
         fread(&seed, sizeof long, 1, fptr);

5 years agorandrole() fix
PatR [Wed, 30 Jan 2019 01:14:55 +0000 (17:14 -0800)]
randrole() fix

Give all the calls to randrole() its new argument.