Commit Graph

6453 Commits

Author SHA1 Message Date
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
Bart House
f0707fee6e More tweaks to how windows deals with directory paths. 2019-11-03 13:31:17 -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
nhmall
8df0a63938 Merge branch 'NetHack-3.6' 2019-10-20 09:51:35 -04:00
PatR
bf7e955645 mimicking slime molds
Mimic-as-slime_mold needs to keep track of the fruit index the same
way that mimic-as-corpse keeps track of corpse's monster type.  The
mimic description was changing (for '/' and ';' feedback) whenever
the player assiged a new fruit name.

That wasn't noticeable when applying a stethoscope because
mimic-as-slime_mold always yielded "that fruit is really a mimic".
Change it to report the fruit's type instead of generic "fruit".
2019-10-19 17:38:27 -07:00
nhmall
3dd7325ff1 Merge branch 'NetHack-3.6' 2019-10-19 12:30:38 -04:00
nhmall
c099e0a1ff grammar fix for "That walking shoes is really a small mimic" 2019-10-19 12:05:33 -04:00
PatR
46225955bc symset and roguesymset options
For 'O's menu, make the current symbol set be pre-selected so that
the set in use is clearly marked while contemplating changing it.
Using Return or Enter will pick it again; Escape is now needed to
deliberately not make any selection.

Also, change several symbol set initializations to use the new method
of deciding whether the default symbols are still in place.
2019-10-18 18:23:47 -07:00
PatR
f114675739 containers in shops
Fix a couple of bugs I stumbled across while testing something else.
The sell prompt for a container dropped in a shop had phrasing issues.
This fixes a couple but there are more.  The message composition
assumes that contents fall into two categories:  those already owned
by the shop and those the shopkeeper is offering to buy from the hero.
But there is a third:  stuff the shopkeeper doesn't care about so
won't buy.  The count_contents() routine can supply total contents or
shop-owned contents.  Subtracting one from the other yields combined
hero-owned without any way to separate out shk-cares and don't-care.
2019-10-18 15:00:16 -07:00
nhmall
c38c1aaf65 Merge branch 'NetHack-3.6' 2019-10-18 11:15:35 -04:00
PatR
1086f137de revert part of 4b87e858aa - partly eaten food
Partly eaten globs is seems to be can'o'worms and the hack I just
added to get_pricing_units() made things worse, so back that out.
2019-10-17 18:55:35 -07:00
PatR
4b87e858aa fix #H9312 - partly eaten food in bones shop
Dying in a shop while carrying partly eaten food would place that food
on the floor without marking it no_charge.  But marking it that way
wouldn't have helped because as bones data gets saved, every object on
the level has its no_charge flag cleared.  So 'no_charge' needs to be
explicitly set for partly eaten food in tended shops as a bones level
gets loaded.

Most of the shk.c diff is reformatting, but it does change the
get_pricing_units() routine to lie that the quantity is zero for
partly eaten food so that when multiplying with price it won't matter
whether the price has been forced to zero or been left non-zero.
2019-10-17 18:45:56 -07:00
nhmall
74dc97866b spelling mistake in comment in recent commit 2019-10-17 21:26:59 -04:00
nhmall
3ccc6e5308 Merge branch 'NetHack-3.6' 2019-10-17 20:52:10 -04:00
PatR
389c496055 zap colors
One of the comments for pull request #234 mentions that the colors
for sleep and poison are backwards.  Yellow dragons had green breath.
Green dragons would have had yellow breath if they used the normal
zap symbols, but they use the poison cloud one which is green so
they had green breath.  I rarely have color enabled and had never
noticed.  (At the moment I can't find where the switch from zap to
cloud is being done.)

Pull request #234 is based on #231, about control of the shield
effect animation when resisting.  But it changes struct flags so
would break 3.6.x save file compatibility.
2019-10-17 15:50:33 -07:00
PatR
6182b014ca github pull request #235 - curses symbol set init
Fixes #235

For initial options under curses, specifying 'DECgraphics' as a
boolean rather than as 'symset:DECgraphics' wasn't overriding the
new default 'symset:curses'.  Since previously DECgraphics was
rejected for curses, it's possible that no one noticed.
2019-10-17 14:38:45 -07:00
PatR
3e368b9a51 symbol set reorganization
Change the way symbol sets are loaded to make them have the same order
as they appear in the symbols file rather than being reversed.

Revise dat/symbols so that the new ordering yields a result similar
to the old ordering, more or less.  I've added a few set descriptions.
The only substantive change is marking DECgraphics as primary-only
(not available on rogue level) and adding new set DECgraphics_2 which
is commented out near the end.

Define symbol handling H_MAC since one of the sets specifies
'handling: MAC'.  All H_MAC is used for now is to avoid showing
MACgraphics as a symset when compiled without MAC_GRAPHICS_ENV (which
was used for pre-OSX Mac by the old code in sys/mac/), so it will be
hidden for everyone.

I left handling H_CURS even though curses doesn't implement anything
for it.  It could do something when rendering the map or assign a
function to 'cursesgraphics_mode_callback' for special init or both
but hasn't needed to.  Since curses is now supporting DECgraphics,
define 'decgraphics_mode_callback' for it.  No value is being
assigned so that doesn't do anything; curses seems to be setting up
the primary character set as text and secondary one as line-drawing
without the need for that hook.

With the added set descriptions, 'O's symset menu looked horrible for
curses due to the way curses decides to set the width of menus and
the resulting line wrapping which took place because of a too-narrow
menu.  I've added a chunk of code to the options handling code which
shouldn't really be there but makes the menu much easier to read.

Lastly, do some formatting cleanup in files.c.
2019-10-17 05:00:58 -07:00
PatR
d0c4d27a50 githib pull request #232 - curses symset
This time I'm putting things in as-is before making a few tweaks.

The pull request was three or four separate changes.  I used the
patch instead so they've been collected into one commit.
2019-10-16 15:52:00 -07:00
PatR
32e2d7cfc5 fix use_inverse (aka wc_inverse) for curses
Highlighting for monsters shown due to extended monster detection and
for lava shown in black and white didn't work because that keys off
of 'iflags.use_inverse' (actually a macro for 'iflags.wc_inverse') and
curses wasn't enabling that window-capability option.  To be fair, it
was probably unconditional at the time the curses interface was first
developed.  It checked for whether a monster was supposed to be drawn
with inverse highlighting but wouldn't draw it that way because the
flag was always false.  Inverse b&w lava is relatively new and curses
hadn't been taught about it.

Various other things such as pets (if hilite_pet is on) and object
piles (if hilite_pile is on) get highlighted with inverse video when
use_color is off, regardless of whether use_inverse is on or off.
That's probably a bug.
2019-10-14 02:28:27 -07:00
Pasi Kallinen
f200397689 Fix monster triggering land mine accessing deleted trap
mintrap -> thitm -> mondied -> relobj -> mdrop_obj ->
flooreffects -> deltrap

after calling thitm, the mintrap code was trying to access the trap.
2019-10-13 20:52:38 +03:00
Pasi Kallinen
346ebbce10 Fix launched object accessing a deleted trap
In launch_obj, the code first got the trap, then called ohitmon
(which can delete the trap by doing mondied -> fill_pit ->
flooreffects -> deltrap), then after that used the trap variable.
2019-10-13 20:40:58 +03:00
Pasi Kallinen
1f7095e226 Fix addressing deleted trap when helping monster out of a pit
Move reward_untrap before fill_pit, as the trap may get deleted.
2019-10-13 19:58:27 +03:00
Pasi Kallinen
9e9ee59ca7 Fix hero hiding under a statue shattered by land mine
Trigger a land mine while being polymorphed into a monster that
automatically hides (eg. scorpion). Have the statue on the land mine
shatter and all items on that square scatter away. Avoid falling
into the pit left by the land mine.
2019-10-13 19:30:32 +03:00
PatR
1fc8d7528c fix #H9298 - corpse mismatch
Corpses for dying monsters were being created with the wrong type,
caused by incorrect block nesting for 'if (ptr)' from commit
ad302fb8a9 (Oct 10).
2019-10-12 02:31:47 -07:00
PatR
6cbf10d974 South Park reference - gnomes' business plan
If you chat with a peaceful gnome while hallucinating, you might
get a silly message from the TV show South Park.

To make it work for non-gnome characters, I changed the speech of
monsters who normally just grunt (gnomes, orcs, ogres, a couple
of other groups) to full humanoid when the hero is hallucinating.
(It already does that for orcs if the hero--hallucinating or not--
is an orc and for gnomes when the hero is a gnome.)
2019-10-11 18:33:32 -07:00
Pasi Kallinen
46adb312e7 Fix priests and shopkeepers moving on other monsters 2019-10-11 20:24:17 +03:00