Commit Graph

5426 Commits

Author SHA1 Message Date
nhmall
75d22a2dbf separate MAIL functionality from MAIL-related structure inclusion
With 3.7+ aspirations of improving savefile interoperability between 32-bit
and 64-bit builds, as well as between platforms, it is better to not have
the underlying struct/array content be conditional.

This splits off some of the MAIL code into MAIL_STRUCTURES code. In theory,
since MAIL_STRUCTURES is unconditionally included, the macro could
just go away and leave that code unconditional, but this commit doesn't
go that far.
2019-11-09 16:19:05 -05:00
nhmall
e6bafb3f90 default to little-endian in 3.7 2019-11-09 13:52:36 -05:00
nhmall
afec87a766 Merge branch 'NetHack-3.6' 2019-11-09 12:24:10 -05:00
nhmall
67bea58539 Merge branch 'NetHack-3.6' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6 2019-11-09 11:12:18 -05:00
nhmall
c566c01f8d add command line option --showpaths
Add
	--showpaths
early option to show where NetHack is expecting to find certain files
without starting up a game. It exits afterwards.

Windows sample (for illustration only, locations may differ for you):
    Variable playground locations:
        [hackdir   ]="C:\Users\JohnDoe\NetHack\3.6\"
        [leveldir  ]="C:\Users\JohnDoe\AppData\Local\NetHack\3.6\"
        [savedir   ]="C:\Users\JohnDoe\AppData\Local\NetHack\3.6\"
        [bonesdir  ]="C:\ProgramData\NetHack\3.6\"
        [datadir   ]="C:\personal\nhdev\363\test\binary\"
        [scoredir  ]="C:\ProgramData\NetHack\3.6\"
        [lockdir   ]="C:\ProgramData\NetHack\3.6\"
        [sysconfdir]="C:\ProgramData\NetHack\3.6\"
        [configdir ]="C:\Users\JohnDoe\NetHack\3.6\"
        [troubledir]="C:\Users\JohnDoe\NetHack\3.6\"
    Your system configuration file (in sysconfdir):
        "C:\Users\JohnDoe\NetHack\3.6\sysconf"
    Your system symbols file (in sysconfdir):
        "C:\Users\JohnDoe\NetHack\3.6\symbols"
    Your personal configuration file (in configdir):
        "C:\Users\JohnDoe\NetHack\3.6\.nethackrc"

Linux (for illustration only, locations may differ for you):
    Your system configuration file:
        "/home/johndoe/nh/install/games/lib/nethackdir/sysconf"
    Your system symbols file:
        "/home/johndoe/nh/install/games/lib/nethackdir/symbols"
    Your personal configuration file:
        "/home/johndoe/.nethackrc"
2019-11-09 10:57:25 -05:00
PatR
0615387f95 fix #H9391 - slippery gloves
Slippery fingers would transfer from bare hands to gloved hands if
you put gloves on.  The reverse, transfering from gloves to bare
hands when taking gloves off, was already being prevented for
directly taking them off, but still allowed the slipperiness to
transfer when gloves were lost.  This prevents putting on gloves
when fingers are slippery and attempts to handle cases where gloves
get unworn by ways other than 'T' (or 'R') or 'A'.

There's no slippery attribute for objects (way too much work for too
little value); slippery gloves is just the combination of wearing
gloves and having slippery fingers (which now has to have happened
while already wearing those gloves).  This changes inventory to use
"(being worn; slippery)" when applicable and much of the patch deals
with funnelling Glib changes through new make_glib() to try to make
sure that persistent inventory adds or removes "; slippery" right
away when changes happen.

If gloves are taken off involuntarily (shapechange to a form that
can't wear them, destruction via scroll of destroy armor or monster
spell of same or via overenchantment, theft), slippery fingers ends
right away instead of the usual few turns later.
2019-11-09 01:07:09 -08:00
nhmall
a03e29ffb3 deaf-aware fixup 2019-11-08 12:38:37 -05:00
nhmall
e9f81f6b26 Merge branch 'NetHack-3.6' 2019-11-08 12:36:06 -05:00
nhmall
7da9104fac one more deaf aware bit 2019-11-08 12:35:13 -05:00
nhmall
a3d2be04be Revert "one more "Deaf-aware" comment"
This reverts commit 2835d8774e.
2019-11-08 12:34:27 -05:00
nhmall
95010603a7 Merge branch 'NetHack-3.6' 2019-11-08 12:26:43 -05:00
nhmall
2835d8774e one more "Deaf-aware" comment 2019-11-08 11:22:50 -05:00
nhmall
50d04bbd61 Merge branch 'NetHack-3.6' 2019-11-07 23:10:47 -05:00
PatR
6afb780d98 status highlight fix for experience level
When I expanded the Guidebook's sample configuration file I added
several status_hilite options.  I decided that I'd better test what
was written and discovered that if Xp had an up or changed rule as
well as one or more percentage rules, it was showing bogus changes
whenever the integer value of the percentage changed.  The fix
turned out to be simple but it took a while to figure out.

I ultimately left the status_hilite settings out of the sample
options, because they tended to be too wide for Guidebook.txt's
formatting rather than because they weren't working as expected.
2019-11-07 17:54:57 -08:00
nhmall
0494152aea Merge branch 'NetHack-3.6' 2019-11-06 16:45:43 -05:00
PatR
d13911495c unix USE_FCNTL vs 'perm'
Reported directly to devteam, the POSIX_TYPES subset (most? all
these days?) of Unix that defines USE_FCNTL was unlocking lock file
'perm' when done with it but wasn't explicitly closing it unless
the unlocking failed.  Triggered a valgrind complaint and could have
posed a problem if restart gets implemented for this configuraiton.
2019-11-06 10:52:48 -08:00
PatR
423bce2bf6 fix #H9407 - "butterfiles"
Feedback when playing music while hallucinating misspelled
"butterflies".

Other bits in the same code (not part of #H9407):

All feedback messages while impaired gave "You produce <something>"
which was immediately followed by many of the instruments giving
their own "You produce <some other thing>."  Change the verb for the
playing-while-impaired messages to avoid having two consecutive
"you produce" ones.

Also, multiple impairments (two or more of stunned, confused, and
hallucinating) always gave the generic "what you produce is far
from music" message.  Have them sometimes ignore excess impairments
to give the message for one of those.
2019-11-06 10:06:59 -08:00
nhmall
a7e3129919 Merge branch 'NetHack-3.6' 2019-11-05 11:02:24 -05:00
nhmall
26121fca9a deafness left "Perhaps that why you cannot move it" message orphaned 2019-11-04 23:08:15 -05:00
nhmall
2170b9946b Merge branch 'NetHack-3.6' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6 2019-11-04 12:33:01 -05:00
nhmall
25edd16945 code maintenance bit to white-list current "You hear" instances
Flag existing occurrences of "You hear" as "Deaf-aware" so
that a grep for that string in the future doesn't need to
trigger further investigation of those.
2019-11-04 12:28:25 -05:00
PatR
fbc790a34d dipping into holy/unholy water while blind
Something I realized while following up a newsgroup post.  If you
knew an item's bless/curse state and dipped it into water while
blind, the bknown flag stayed set and you learned the item's new
bless/curse state without seeing any "glows blue/black/&c" feedback.
Clear the flag unless you know that the potion being dipped into is
water (or is clear if not water has not been discovered) and also
know the water potion's own bless/curse state.
2019-11-04 09:14:18 -08:00
Pasi Kallinen
efbef0f22c Fix unleashable message given for non-leashed monster 2019-11-04 18:58:22 +02:00
nhmall
f07bf610b8 Merge branch 'NetHack-3.6' 2019-11-04 01:18:24 -05:00
nhmall
93f95dd051 more deafness-related message corrections 2019-11-04 00:36:54 -05:00
PatR
f29a6b164d fix #H9392 - deafness vs music
Music wasn't using You_hear() so needs to handle Deaf itself.  Have
it give alternate messages for sounds being emitted from instruments.

This doesn't implement the suggestion that a Deaf hero shouldn't be
able to produce the same music as a non-deaf one.
2019-11-03 18:12:55 -08:00
Bart House
6b88a19365 Added new map_mode tiles_fit_to_screen for Windows NetHackW.exe 2019-11-03 17:59:39 -08:00
nhmall
28a4c65caa Merge branch 'NetHack-3.6' 2019-11-02 12:12:59 -04:00
Pasi Kallinen
4c9f4dbbd9 Prevent leashing monsters with no extremities
... and also unsolid monsters.
2019-11-02 11:40:37 +02:00
nhmall
6d385661c0 Merge branch 'NetHack-3.6' 2019-11-02 01:58:32 -04:00
Pasi Kallinen
54024f2015 Fix pet polyed to long worm staying leashed
Long worms cannot be leashed, but polymorphing a leashed pet
into a long worm kept it leashed.
2019-11-01 19:05:48 +02:00
nhmall
b377771849 Merge branch 'NetHack-3.6' 2019-10-31 12:26:27 -04:00
PatR
7cc59eb929 fix #H9374 - initial rendering of guardian angel
Creation of guardian angel bypasses tamedog() and marks it tame
directly but it wasn't updating the map after changing the monster.
So if 'hilite_pet' was On when entering the Astral Plane level, the
angel appeared to be ordinary monster rather than a tame one until
it moved or the screen was redrawn.  Also, the message about it
appearing was issued before marking it tame, so a tiny bit of code
reordering has been done to get the sequence correct.
2019-10-31 06:57:16 -07:00
Bart House
86473526b8 Save a copy of the symbols file to symbols.save when updating. 2019-10-30 19:17:03 -07:00
nhmall
61fe703331 Merge branch 'NetHack-3.6' 2019-10-30 20:22:48 -04:00
nhmall
b6d2697a6a function didn't match prototype 2019-10-30 18:40:48 -04:00
nhmall
2eab66617d Merge branch 'NetHack-3.6' 2019-10-30 13:21:20 -04:00
Bart House
43ef5ef7fa Windows Store support for NetHack 3.6. 2019-10-29 21:28:39 -07:00
nhmall
cef314822c Merge branch 'NetHack-3.6' 2019-10-29 08:43:58 -04:00
PatR
b1e0b6b17b avoid warning
and check whether pushing commits has been straightened out.
2019-10-28 16:02:16 -07:00
nhmall
6213c37d0b Merge branch 'NetHack-3.6' part 2 2019-10-28 00:59:44 -04:00
nhmall
34d38dcf82 Merge branch 'NetHack-3.6' 2019-10-28 00:45:56 -04:00
nhmall
f487083ab4 fix parse character count typo 2019-10-27 23:37:16 -04:00
nhmall
a399151d01 some symbol tweaks
A few symbol-related modifications:

- fulfill a request from a blind player to allow them to
  specify a unique/recognizable character for all pets and/or
  the player in the config file for use when using a screen
  reader (S_player_override, S_pet_override). Requires sysconf
  setting ACCESSIBILITY to be set to have an effect, although
  they can still be specified in the config file.

- Config file SYMBOLS entries were not working properly on
  the rogue level. Allow ROGUESYMBOLS as well as SYMBOLS to be
  specified in the config file independently.

- When values are moved into showsyms[], the overriding SYMBOLS
  or ROGUESYMBOLS entry from the config file is used if there is
  one; if there is no overriding value for a particular symbol,
  the loaded symset value is used; if there is no symset entry
  loaded for the symbol then a default symbol is used.
2019-10-27 23:12:11 -04:00
nhmall
83a4f641eb Merge branch 'NetHack-3.6' 2019-10-27 12:01:38 -04:00
PatR
d834ebb0ec paranoid_query bulletproofing
Make paranoid_query() (yn question requiring explicit "yes" answer)
protect itself from overly long prompt strings.  I'm not aware of
any specific overflowing queries so I temporary reduced QBUFSZ within
paranoid_query() in order to test.

For EDIT_GETLIN, don't use previous response as default if we loop
after neither "yes" nor "no" was given for paranoid confirm.
2019-10-26 19:01:49 -07:00
Pasi Kallinen
d201d302b7 Fix wizmakemap leaving genocided monsters on map
If a genocided monster was in "limbo" (migrating to the same level),
wizmakemap put it back on map.
2019-10-26 19:58:02 +03:00
PatR
757eca7fd9 fix github issue #238 - 'scores' option
Fixes #238

For the three fields in the 'scores' option's argument: top, around,
and own, if any was separated from preceding one by space(s) rather
than slash and lacked a count prefix, the argument parsing skipped
over it.  So "10t/3a/o" and "10t 3a 1o" worked but "10t 3a o" ignored
the 'o'.  The issue report was about 'own' but there's nothing special
about 'own' itself; just that it doesn't warrant a count prefix and is
usually last (in other words, normally preceded by one or both of the
other two) so more likely to trip over this.

[I thought there was another report about 'scores' misbehaving (from
quite a while ago) but couldn't find one.  If it exists, it might have
been about the same thing.]
2019-10-25 23:11:06 -07:00
nhmall
79db36b455 Merge branch 'NetHack-3.6' 2019-10-23 08:46:39 -04:00
nhmall
15d5942b2a fix recent bypass of obj placement 2019-10-22 09:40:10 -04:00