]> granicus.if.org Git - nethack/log
nethack
5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Sat, 23 Mar 2019 03:22:03 +0000 (23:22 -0400)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agostatus updating
PatR [Fri, 22 Mar 2019 23:13:21 +0000 (16:13 -0700)]
status updating

I've noticed (with curses interface) that there are a lot of
update_status(BL_FLUSH) calls when nothing on the status lines
has changed.  It happens while just wondering around, not due to
deliberate botlx update.  This eliminates one of the causes.
Updating hero's experience points or score (via u.urexp) was
requesting a bottom lines refresh even if the relevant options to
see those changed values was off.  The botl code would send a flush
directive even though nothing visible was modified.  (I have a fix
for that too, but am holding back while hoping to find some of the
other causes of unnecessary botl requests.)

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Fri, 22 Mar 2019 21:20:10 +0000 (17:20 -0400)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agohighlighting status condition via 'O' bug
PatR [Fri, 22 Mar 2019 01:26:31 +0000 (18:26 -0700)]
highlighting status condition via 'O' bug

It took me a while to track this down:  if you use 'O' to create
hilite_status rule(s) for status condition(s) and you specify multiple
attributes in the rule creation menu, it accepts them but it was
parsing the new rule(s) incorrectly and only supported one attribute.

 if (mask & bit)
  something;
 else if (mask & other_bit)
  something_else;
 else if (mask & yet_another_bit) ...

effectively stops at the first bit matched.  (At the time that that
was written, the menu leading to it only accepted a single attribute.)

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Thu, 21 Mar 2019 22:18:10 +0000 (18:18 -0400)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agocurses options and status groundwork
PatR [Thu, 21 Mar 2019 21:33:39 +0000 (14:33 -0700)]
curses options and status groundwork

More groundwork for overhauling the status display for curses, plus
a few functional changes.  It was doing a full status update for
every changed field (except conditions), instead of waiting for a
flush directive after gathering multiple changes at a time.  Since
it already does gather every change, the fix to wait is trivial.

This decouples 'hitpointbar' from 'statushilites'.  When highlighting
is off, it uses inverse video only.  When on, it behaves as before:
using inverse video plus the most recent color used to highlight HP
(which can vary if that has rules to highlight changes or percentage
thresholds) but ignoring any HP attribute(s).  This also enables the
latent 'statuslines' option and changes 'windowborders' option from
being settable at startup only to changeable during play.

'statuslines' can have a value of 2 (the default) or 3 and applies to
'align_status:bottom' or 'top'; it's ignored for 'left' and 'right'.
At the moment, setting it to 3 only allows status condition overflow
to wrap from the end of line to 2 to the beginning of line 3, and if
window borders are drawn they'll clobber the last character on line 2
and first one on line 3.  There's no point in trying to fix that
because it will go away when the main status overhaul changes go in.
Condition wrapping for vertical orientation (left or right placement)
was already subject to the same phenomenon and will be superseded too.

This also changes the meaning of the 'windowborders' value so could
impact players using source from git (or possibly beta binaries for
Windows, but not for OSX where curses interface wasn't included).
Old:
 0 = unspecified, 1 = On, 2 = Off, 3 = Auto (On if display is big
     enough, Off otherwise; reevaluated after dynamic resizing);
 Unspecified got changed to 3 during curses windowing initialization.
New:
 0 = Off, 1 = On, 2 = Auto;
 0 gets changed to 2 for default value at start of options processing.
So old value of 2 is changing meaning and explicit old value of 3 is
becoming invalid.  Implicit 3 changes to default 2.  Explicit 3 could
be the subject of a fixup but there isn't much point since 2 can't
have a similar fix.  Users who are using old 2 or explicit 3 will need
to update their run-time config files.

This adds 'statuslines' to the Guidebook and moves some other recently
added documentation of curses options from among the general options
(section 9.4) to "Window Port Customization options" (section 9.5).
None of them have been added to dat/opthelp which seems to be missing
all the wincap options.

Originally I made a lot of changes (mostly moving C99 declarations to
start of their blocks) to the old '#if 0' code at end of cursstat.c,
but have tossed those, except for one subtle bug that assumed 'int'
and 'long' are the same size.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Wed, 20 Mar 2019 13:28:23 +0000 (09:28 -0400)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agocurses update
PatR [Mon, 18 Mar 2019 22:08:01 +0000 (15:08 -0700)]
curses update

Miscellaenous stuff either groundwork for or noticed while updating
curses status.  The status changes themselves need some more testing.
One or two of the comments refer to that revised status which hasn't
been checked in yet.

5 years agodecode_mixed()'s return type
PatR [Mon, 18 Mar 2019 21:38:30 +0000 (14:38 -0700)]
decode_mixed()'s return type

decode_mixed() writes its output into a 'char *' buffer that's passed
in to it and then returns that buffer.  Some excessively paranoid
error checking forced to return 'const char *'.  Relax that and use
'char *' so callers can work with the result without extra casts.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Sat, 16 Mar 2019 00:57:10 +0000 (20:57 -0400)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agostatus lines' "End Game"
PatR [Sat, 16 Mar 2019 00:51:39 +0000 (17:51 -0700)]
status lines' "End Game"

Change the generic status line location "End Game" to relevant element
name "Earth", "Air", &c.  ("Plane of <element>" might be too long if
hungry and encumbered and afflicted by conditions.  "Astral Plane" is
already specific so not affected.)

5 years agohacklib.c tidbit
PatR [Fri, 15 Mar 2019 08:45:10 +0000 (01:45 -0700)]
hacklib.c tidbit

Describe 'trimspaces()' more accurately.

5 years agocurses STATUS_HILITES
PatR [Fri, 15 Mar 2019 08:12:59 +0000 (01:12 -0700)]
curses STATUS_HILITES

Honor hilite_status rules specifying color even if curses-specific
option 'guicolor' is off.

Update status from scratch when 'O' is used to manipulate hilite_status
rules.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Thu, 14 Mar 2019 00:19:12 +0000 (20:19 -0400)]
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 [Thu, 14 Mar 2019 00:04:50 +0000 (20:04 -0400)]
Merge branch 'NetHack-3.6.2-beta01' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6.2-beta01

5 years agoMerge branch 'NetHack-3.6.2-beta01' of https://rodney.nethack.org:20040/git/NHsource...
nhmall [Thu, 14 Mar 2019 00:04:16 +0000 (20:04 -0400)]
Merge branch 'NetHack-3.6.2-beta01' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6.2-beta01

5 years agoeven more mingw
nhmall [Wed, 13 Mar 2019 23:59:57 +0000 (19:59 -0400)]
even more mingw

5 years agoyet more mingw w64 build
nhmall [Wed, 13 Mar 2019 23:55:43 +0000 (19:55 -0400)]
yet more mingw w64 build

Fix:
../sys/winnt/nhraykey.c: In function 'CheckInput':
../sys/winnt/nhraykey.c:459:37: warning: type of 'mode' defaults to 'int' [-Wimplicit-int]
 int __declspec(dllexport) __stdcall CheckInput(hConIn, ir, count, numpad,
                                     ^~~~~~~~~~

5 years agocurses: hilite_pet, hilite_pile without color
PatR [Wed, 13 Mar 2019 23:50:56 +0000 (16:50 -0700)]
curses: hilite_pet, hilite_pile without color

The curses interface was ignoring video attributes (bold, inverse, &c)
when color is toggled off or if built with TEXTCOLOR disabled.  Honor
attributes regardless of whether color is displayed.

Also, toggling 'hilite_pet' On during play wouldn't do anything if the
curses-specific 'petattr' option had been left as None.  (It worked as
intended if set in starting options.)

5 years agoX11 graphical tombstone tweak
PatR [Wed, 13 Mar 2019 01:37:15 +0000 (18:37 -0700)]
X11 graphical tombstone tweak

Add some bullet-proofing to the X11 graphical tombstone sanity check.
Probably not necessary but better safe than sorry.

5 years agore-comment some optional Makefile lines for sys/winnt/Makefile.gcc
nhmall [Wed, 13 Mar 2019 01:32:54 +0000 (21:32 -0400)]
re-comment some optional Makefile lines for sys/winnt/Makefile.gcc

5 years agomore mingw
nhmall [Wed, 13 Mar 2019 01:30:22 +0000 (21:30 -0400)]
more mingw

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Wed, 13 Mar 2019 01:18:21 +0000 (21:18 -0400)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agofirst attempt at mingw w64 build for Windows
nhmall [Wed, 13 Mar 2019 01:14:43 +0000 (21:14 -0400)]
first attempt at mingw w64 build for Windows

5 years agonethack.sh: test -e vs test -f
PatR [Tue, 12 Mar 2019 21:11:26 +0000 (14:11 -0700)]
nethack.sh: test -e vs test -f

Change the test for whether fonts.dir exists (added to the script
in 3.6.0, for automatically setting up possible use of the NH10 font
under X11) from 'test -e file' to 'test -f file' since the latter
seems to be more universally available.  When present, fonts.dir is
plain text, so a test for "exists and is a regular file" rather than
one for general existance is appropriate.

5 years agoavoid crash for X11 tombstone
PatR [Tue, 12 Mar 2019 20:31:00 +0000 (13:31 -0700)]
avoid crash for X11 tombstone

If nethack is built to use graphical tombstone but file rip.xpm is
missing from the playground, there would be a crash if the rip output
was shown.  My first attempt to fix it prevented the crash but didn't
display any tombstone, just the last couple of lines of output which
follow the tombstone.  This keeps that in case of some other Xpm
failure, but checks for rip.xpm via stdio and reverts to genl_outrip
for text tombstone if it can't be opened.

5 years agolong #version feedback
PatR [Tue, 12 Mar 2019 01:11:21 +0000 (18:11 -0700)]
long #version feedback

Hide a bug in the X11 interface by manually wrapping 'short' version
line (the first line of #version output) when runtime ID or git hash
and/or branch is present.  Otherwise the very wide 'short' line causes
a horizontal scrollbar to be present at the bottom of the popup window,
but the window size doesn't take that into account so ends up being
one line too short.  Worse, there's no vertical scrollbar to bring the
last line into view.

Even if somebody figures out how to fix that properly, the really wide
line above a couple of paragraphs which have been carefully wrapped
for a much narrower width looked strange.

Also, move the 'short' version's period to the end of the text.
old: basic version info. (extra info)
new: basic version info (extra info).

5 years agowin/curses comment
PatR [Sun, 10 Mar 2019 23:06:29 +0000 (16:06 -0700)]
win/curses comment

Twice I've gone through the curses code to deal with CHAR_P, BOOLEAN_P,
and so forth.  Both times I eventually changed my mind.  This time I'm
just adding an explanatory comment instead.

5 years agocurses vs extended commands
PatR [Sun, 10 Mar 2019 21:53:31 +0000 (14:53 -0700)]
curses vs extended commands

Extend the earlier support for Delete/Rubout in getline() to the
text entry for extended commands.  In other words, treat <delete>
and <backspace> as synonyms in both places.

Some reformatting too, but only in a couple of the files.

5 years agomore UCHAR_P
PatR [Fri, 8 Mar 2019 19:48:31 +0000 (11:48 -0800)]
more UCHAR_P

When setting up an alternate definition for UCHAR_P to accommodate
DEC C's non-ANSI mode(s), leave the default definition to tradstdc.h.
DEC C's VAXC mode will end up expecting 'unsigned char' rather than
either 'int' or 'unsigned int'.  Not applicable for Unix but this
makes similar change there as is being made for VMS.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Fri, 8 Mar 2019 15:31:46 +0000 (10:31 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agovms update
PatR [Fri, 8 Mar 2019 01:12:01 +0000 (17:12 -0800)]
vms update

Suppress Isaac64 on VAX were there isn't an easy way to do 64-bit
arithmetic.  (Hard way isn't worth it for just an alternate RNG.)

Eliminate or suppress some diagnostics:

1) In strict ANSI mode, DEC C was reporting that '$' in identifier is
an extension (one time for each file in sys/vms/*.c).  (It doesn't do
that for the default 'relaxed ANSI' mode.)

2) DEC C uses WIDENED_PROTOTYPES but widens uchar (unsigned char)
differently depending upon the mode it is operating in.  (Applies to
Unix as well as VMS; based on documentation rather than testing.)

Update the comment in tradstdc.h about WIDENED vs UNWIDENED_PROTOTYPES.

An old comment in config1.h about a problem with the earliest version
of DEC C was probably based on an incorrect assumption of what was
really going, but I have no way to go back in time to verify that....

5 years agofix #H8330 - kicking obj stack uses wrong weight
PatR [Thu, 7 Mar 2019 00:59:39 +0000 (16:59 -0800)]
fix #H8330 - kicking obj stack uses wrong weight

Kicking a stack splits off one item (except for gold coins) and
propels it, but the range for how far it would move was calculated
before the split using the entire stack's weight.  So a large stack of
small items might fail with "thump" (which the report suggested hurt
the hero, but it doesn't) and none of the stack would move.  Splitting
sooner looked complicated because of several potential early returns
between the range calculation and the eventual kick, so this hacks the
stack's quantity to get the intended weight instead.

5 years agosys/share/*_yacc.c update
PatR [Wed, 6 Mar 2019 19:43:27 +0000 (11:43 -0800)]
sys/share/*_yacc.c update

For the pre-generated yacc sources, revert to the version of byacc
used for 3.6.1 and 3.6.0 to avoid unnecessary changes for 3.6.2.

5 years agorevise integer.h for vms
PatR [Wed, 6 Mar 2019 19:37:52 +0000 (11:37 -0800)]
revise integer.h for vms

The VMS compiler supports C99 and defines __STDC_VERSION__ to the
corresponding value, but it doesn't supply <stdint.h> so isaac64.c
wouldn't compile.  It does supply another header containing what is
needed.

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Tue, 5 Mar 2019 14:51:18 +0000 (09:51 -0500)]
Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

5 years agofix #H8319 - hero-owned container used inside shop
PatR [Mon, 4 Mar 2019 22:40:01 +0000 (14:40 -0800)]
fix #H8319 - hero-owned container used inside shop

showed non-empty containers in inventory (including the one being
applied) with a 'for sale' suffix during put-in operations, as if the
shop was trying to sell it to the hero.  Amount shown was cumulative
value of its contents.  (Using /menustyle:T doesn't show the container
being applied so this wasn't visible with it unless other non-empty
containers were being carried.)

Two or three fix attempts solved one problem but introduced another.
This one seems to finally get things right but considering that there
was trial and error along the way, my confidence isn't great.

5 years agofix #H8310 - riding a saddled tripe ration
PatR [Sat, 2 Mar 2019 02:32:41 +0000 (18:32 -0800)]
fix #H8310 - riding a saddled tripe ration

If steed ate a mimic corpse and started mimicking an object or dungeon
furniture, the hero was able to keep riding.  Force a dismount when
that happens, even if steed takes on monster shape rather than object
or furniture.  After that, #ride to remount non-monster will fail
unless using wizard mode's "force mount to succeed" action, in which
case steed's eating finishes immediately and it returns to normal.

This doesn't address the older report that mounted hero can continue
to move around while the steed is eating.

5 years agoGuidebook update
PatR [Sat, 2 Mar 2019 01:09:54 +0000 (17:09 -0800)]
Guidebook update

number_pad got removed from Guidebook.tex when mouse_support was added
by cc0e7a8750fd4e07d3a44592c38f5912d4e603de; put it back.  Evidently
a cut-and-paste mishap when copy-and-paste was intended, probably
provoked by '\numbox{}'.

Remove \numbox{} from mouse_support; it isn't needed there since the
choices aren't trying to line up with '-1'.

Both Guidebook.mn and Guidebook.tex:

Remove number_pad's "for backward compatibility" from mouse_support
since the latter is brand new.

New petattr list of uppercase letters seemed intrusive when rendered
with a bold font, so switch to lowercase.  (Option processing already
supports either case.)

Mention the '=' prefix for hilite_status 'absolute' threshold.

[As usual, the Guidebook.tex changes haven't been tested.]

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

5 years agofix #H8297 - healer vs undead turning
PatR [Thu, 28 Feb 2019 23:12:12 +0000 (15:12 -0800)]
fix #H8297 - healer vs undead turning

Report forwarded from spam filter so not included in bugzilla list.
Make corpse revival feedback be more consistent.  Some of the healer-
specific flavor is still there.

5 years agodocument curses options
PatR [Thu, 28 Feb 2019 00:04:51 +0000 (16:04 -0800)]
document curses options

Add curses options to the Guidebook.

The TeX one hasn't been tested (particularly "term_cols and\nterm_rows")
and windowborders #3).

5 years agoMerge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
nhmall [Wed, 27 Feb 2019 13:09:03 +0000 (08:09 -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 [Wed, 27 Feb 2019 00:53:42 +0000 (19:53 -0500)]
Merge branch 'NetHack-3.6.2-beta01' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6.2-beta01

5 years agosome fish should lay their eggs in the water rather than on land
nhmall [Wed, 27 Feb 2019 00:49:24 +0000 (19:49 -0500)]
some fish should lay their eggs in the water rather than on land

Generally, fish should lay their eggs in the water and
not on land, but the game was only allowing the opposite.

Eels are catadromous and lay their eggs in the Sargasso Sea,
not in the dungeon.

5 years agocurses run-time options
PatR [Tue, 26 Feb 2019 23:16:42 +0000 (15:16 -0800)]
curses run-time options

This started out as an attempt to document the curses options in the
Guidebook, but I didn't actually get that far.  Instead, integrate
the curses options better via more consistent WC/WC2 usage.  This
prevents 'guicolor' from showing up as a boolean option for non-curses
interface in curses+other binary.

For curses itself, let 'petattr' be set/reset via 'O'.  Also, accept
'Dim' as a possible pet highlight attribute since it already handles
all the other ordinary attributes.  I'm not sure what leftline and
rightline highlighting are supposed to do.  They were missing for
ncurses (or maybe they're misspelled for PDcurses?) but adding them
didn't produce any visible effect (using TERM=xterm-256color on OSX
with default font/character set).

Not addressed:
1) general confusion about compile-time vs run-time option filtering;
2) curses pet highlighting only works if 'color' option is enabled.

5 years agotoggling persistent inventory window
PatR [Mon, 25 Feb 2019 23:48:29 +0000 (15:48 -0800)]
toggling persistent inventory window

Something else noticed while testing #H8271:  toggling perm_invent on
with 'O' didn't show anything (at least with curses) until some later
action caused it to be updated.  Make updating persistent inventory be
included with full redraw and set the need_redraw flag when toggling
perm_invent.

5 years agomore wearing armor vs perm_invent window
PatR [Mon, 25 Feb 2019 23:44:21 +0000 (15:44 -0800)]
more wearing armor vs perm_invent window

Realized while fixing #H8271:  if persistent inventory got an update
while wearing or taking off was in progress (not within user's control
since hero is busy) the item in question was flagged as "(being worn)"
even though it wouldn't be worn if putting on got interrupted.  Update
doname() to show "(being donned)" or "(being doffed)" instead of
"(being worn)" when corresponding operation is in progress. (During
testing, I was able to observe "being doffed" but never managed to see
"being donned".)

5 years agofix #H8271 - wearing armor vs perm_invent window
PatR [Mon, 25 Feb 2019 23:33:43 +0000 (15:33 -0800)]
fix #H8271 - wearing armor vs perm_invent window

A relatively recent change moved 'obj->known = 1' when wearing armor
from before setworn(), which issues an update_inventory() call, to
afterwards.  There wasn't any particular update then, so observing
the enchantment of armor by wearing it wasn't being reflected in the
persistent inventory window if that was enabled.

5 years agoinclude isaac64 in xcode build
nhmall [Sun, 24 Feb 2019 19:35:49 +0000 (14:35 -0500)]
include isaac64 in xcode build

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