Commit Graph

4798 Commits

Author SHA1 Message Date
PatR
4b9044f053 pull request #930 - Qt4 and older Qt5 support
Pull request form chasonr:  restore the capability of using old Qt 4.

I've added a brief Guidebook update.

Closes #930
2022-11-23 13:42:55 -08:00
PatR
e0867661b4 Unix: fix 'nethack -u name'
Using '-u name' rather than '-uname' was being treated as '--usage'
for any value of 'name'.

'-uname' worked as intended unless name was 'sage' (or leading
substring of it).  That's still the case after this fix, where the
space after -u is now necessary for that special case name.
2022-11-22 14:53:43 -08:00
PatR
8bab5546bd another man page revision
Add new '--usage' and '--help'.
Add missing '--nethackrc:RC-file' and '--no-nethackrc'.
Explain -D and -X more precisely.
Reorder the options to manually produce a synopsis section that looks
like

"  nethack [ -d|--directory directory ] [ -w|--windowtype interface ]
"  [ --nethackrc:RC-file | --no-nethackrc ] [ -n ] [ -dec | -ibm ]
"  [ -u playername ] [ -X | -D ] [ -p profession ] [ -r race ] [ -@ ]
"
"  Also [ -A|-Arc | -B|-Bar | -C|-Cav | -H|-Hea | -K|-Kni | -M|-Mon |
"  -P|-Pri | -R|-Rog | -Ran | -S|-Sam | -T|-Tou | -V|-Val | -W|-Wiz ]
"
"  nethack [ -d|--directory directory ] -s|--scores [ -v ]
"  [ -p profession ] [ -r race ] [ playernames ]
"
"  nethack [ --usage | --help ] [ --showpaths ] [ --version[:paste] ]

to avoid instances of line breaks like "...[\n-foo ]..." and
"...[ -bar\n]...".  With TeX it would be straightforward to favor line
breaks in front of "[" and after "]" but I don't know whether or how
'roff can do that.
2022-11-19 17:03:26 -08:00
PatR
d5dc5402f6 fixes entry for PR #928 - remove '#if LINT'
Pull request from argrath:  remove a bunch of '#ifdef LINT' code
snippets that no longer serve any useful purpose.

If a lint that handles C99 is ever produced, persumably it won't
need the fairly ridiculous hacks for 'static' and 'long'/'long *'.

Closes #928
2022-11-19 00:50:36 -08:00
PatR
fa0b2b7e94 fixes entry for PR #925 - shop boulders
Pull request from entrez:  boulders owned by shops could be used up
(plugging hole in floor) or stolen (pushed through unrepaired gap in
shop wall) without cost.  Not very common because shops rarely have
boulders in them.

Fixes #925
2022-11-19 00:15:23 -08:00
PatR
3278d7e0c1 control of command-line usage entry in '?' menu
Instead of using a compile-time macro to suppress inclusion of the
menu entry to show UNIX command-line usage in the help menu, use a
sysconf setting instead.

Default is HIDEUSAGE=0, to include the entry for command-line usage.
Set HIDEUSAGE=1 to exclude that.  Does not affect 'nethack --usage'
if player actually has access to the command-line.
2022-11-18 17:54:17 -08:00
PatR
a96b3d0b03 fix 'nethack --scores'
The command line parsing in unixmain.c accepted --scores as an
alternative to -s but prscore() in topten.c didn't.
2022-11-16 23:41:07 -08:00
PatR
76a94db88c manpage update
Add -w|--windowtype.

Also --scores and --directory as recognized variations of -s and -d.

Add -@.  The existing description of '-p @' seems to be inaccurate,
and random role but still having to supply race+gender+alignment
isn't very useful anyway.  The bit about maybe needing to quote @ with
backslash might still be useful if moved to -@ though.

Add -A|-Arc -B|-Bar ... -W|Wiz since they hadn't been listed.  I put
them on their own line instead of cluttering up the main program
invocation even further.

Move '-u character-name' before '-D' since that order matters on some
platforms.

Move --showpaths and --version to a separate command invocation since
combining them with any other stuff ends up ignoring that other stuff.
I didn't add --dumpenums.

The description of config file name and location under '-dec and -ibm'
is out of date, particularly for Windows.
2022-11-16 14:47:25 -08:00
nhmall
38ff4029aa follow-up bit to fixes3-7-0.txt 2022-11-05 19:40:23 -04:00
nhmall
76833d6f5e add fixes3-7-0.txt entry for pr923 2022-11-05 19:28:28 -04:00
PatR
f6b3b968e7 change #vanquished from wizard mode to normal play
Make the existing '#vanquished' command be available during regular
play, with M-V bound to it.  'm #vanquished' or 'm M-V' brings up
the sorting menu that you get when answering 'a' rather than 'y' at
the end-of-game "disclose vanquished creatures?" prompt.

The original #vanquished came from slash'em, where it was available
in normal play.  When added to nethack, it was put in as wizard-mode-
only. I added the sorting capability several years ago.

The chosen sort is remembered and re-used if not reset but only for
the remainder of the current session.  It probably ought of become
a run-time option so be settable in advance and across sessions but
I haven't done that.
2022-11-03 00:00:34 -07:00
PatR
dd36d765b6 revise Guidebook.mn comment 2022-11-02 14:29:35 -07:00
PatR
8b466b227a fixes entry for PR #917 - unnaming unique mons
Pull request from entrez:  attempting to unname a unique monster or
shopkeeper by assigning a new name of <space> was rejected as
intended, but the rejection message is phrased strangely when <space>
gets inserted as the name that won't be assigned.

Fixes #917
2022-11-01 16:26:29 -07:00
PatR
55ec68ef0a Longbow of Diana
Give an extra +1 to potential multi-shot to rangers wielding the
Longbow of Diana and shooting any type of arrow.  When an elf ranger
has been wielding an elven bow to shoot elvish arrows or an orc
ranger has been wielding an orcish bow to shoot orcish arrows, they
lose their racial bonus but won't lose any multi-shot capability by
switching to their quest artifact.  Human and gnome rangers gain the
+1 bonus.  (I have no idea how a gnome could wield a longbow.  One
would need a step ladder to hold it vertically, and could only draw
the string back a stubby arm's length if they held if horizonally.)

That bonus gets applied before feeding the multi-shot counter to
rnd() so doesn't mean an extra arrow every time.  And you have to
be wielding your own quest artifact--in addition to it being the
appropriate launcher for the ammo you're shooting--so doesn't provide
any multi-shot benefit to other types of characters who wish for it.
2022-10-31 23:13:05 -07:00
nhmall
ad23b4e8e1 grammar: "foo based" to "foo-based"
There seems to be a need to locate these in the distribution every decade or so.
2022-10-30 16:08:14 -04:00
nhmall
943c1bc3c3 more OSX -> macOS 2022-10-29 10:46:14 -04:00
nhmall
1adfbd2594 fixes update for pr913 part 2 2022-10-29 10:43:58 -04:00
nhmall
b445b99214 fixes entry for pr913 2022-10-29 10:38:29 -04:00
nhmall
2fef1f497c more Guidebook updates 2022-10-27 22:27:00 -04:00
nhmall
ee03f5c2ba Merge branch 'showgold-guidebook-update' of https://github.com/entrez/NetHack into NetHack-3.7 2022-10-27 22:23:34 -04:00
Michael Meyer
f39a158bdd Update Guidebook #showgold info
The #showgold command now does mention known contained gold in your
inventory, so the various lines in the Guidebook which explicitly state
that it doesn't needed to be updated.  Wish I had noticed this in time
to put it into the previous Guidebook patch I submitted, but what can
you do.
2022-10-27 16:21:11 -04:00
nhmall
8b89917ede be consistent for all patforms in fixes3-7-0.txt 2022-10-27 15:49:16 -04:00
nhmall
3cd99786f2 doc/Guidebook.txt update 2022-10-27 11:33:10 -04:00
nhmall
c2df67b1f1 Guidebook date stamp 2022-10-27 10:47:03 -04:00
Michael Meyer
19a02b7e18 Guidebook updates 2022-10-27 10:40:54 -04:00
nhmall
b70a3d198e add a fixes entry for pull request #910 2022-10-27 10:07:32 -04:00
PatR
eeb208b3a9 X11 getlin()'s prompt
Reissuing getlin() with a different prompt wasn't reliably resizing the
X11 prompt widget.  After a lot of hacking away at win/X11/dialogs.c I
eventually tried setting the response portion of the widget first and
got much better results, enough to throw away the tentative changes to
dialogs.c.

There's still a lot of room from improvement but I think it would need
to replace the ghostview prompting instead of trying to massage that.
2022-10-25 02:55:49 -07:00
PatR
027cf3bf4d map documentation refinement
Add minor detail to recently added map description in doc/window.txt:
origin is in upper left and positive y goes downward, so not typical
Cartesian x,y coordinate plane.
2022-10-23 15:31:12 -07:00
nhmall
6f20939db9 support Unicode on Win32 pr #903 2022-10-23 12:34:16 -04:00
PatR
39560aac49 fix github issue #907 - bad shade logic
Issue reported by vultur-cadens:  one of the checks for whether a
shade would be harmed by an attack was erroneously inside a block
of code that only executed when you could see the attack.  Basic
physical damage wasn't affected but some monster (or poly'd hero)
damage types that shouldn't affect shades didn't when seen but did
when unseen.

Could also get "attack passes harmlessly through the shade" when
an unseen attack for physical damage hit and failed to deal damage.

fixes #907
2022-10-23 01:11:14 -07:00
PatR
4e85ad85cc fixes entry for PR #904 - duplicate invlet
Pull request from entrez:  explicitly throwing 1 out of stack of more
than 1 and then having the throw be rejected by tageting yourself did
not recombine the split, resulting in stacks of 1 and N-1 that both
had the same inventory letter.  Undo the split if throwing fails.

A similar fix was made for gold a year and a half ago by commit
c3ccd93a88.

fixes #904
2022-10-23 00:18:42 -07:00
PatR
86cbf9366a PR #906 - loadstone confers 'steadfastness'
Pull request by Theyflower:  carrying a loadstone prevents big
monsters from hitting their target for knockback effect, same as
wielding Giantslayer.

The PR code needed fixing (unintended switch from 'otmp' to 'obj')
so I didn't use the commeit.  The PR code also required that the
loadstone be blessed which sounds nethackish but would mean that
nobody would ever notice.  Allow carrying any loadstone to prevent
being knocked back.  It will still be a rare accident or uncommon
tactical decision.  (It doesn't happen if the target is flying or
levitating because those checks deliberately come first.)

supersedes #906
closes #906
2022-10-22 23:57:05 -07:00
PatR
84fabf764a allow big humanoids to wear mummy wrappings
A giant mummy starts out with a mummy wrapping but couldn't wear it.
Allow humanoids who are bigger than human size (including poly'd hero
when applicable) to wear such cloaks.  They won't do so if they are
invisible and the cloak would let hero start seeing them.
2022-10-22 17:14:22 -07:00
PatR
b1f7a68636 document map column 0
Something that FIQ once pointed out:  the fact that map column 0 is
not shown wasn't explicitly described anywhere.  Add a paragraph for
NHW_MAP to doc/window.txt and describe it there.
2022-10-21 15:16:25 -07:00
PatR
b824031f12 \#saveoptions fix
I hadn't ever used #saveoptions before and when I checked to see
whether the autounlock:none changes were being handled properly, I
discovered that options set via 'm O' weren't being handled at all.

This includes some miscellaneous reformatting of things noticed
while tracking down the problem.
2022-10-13 13:19:58 -07:00
PatR
c2894a422b monk strength
Add a stack of 2 tins of spinach near the leader on the monk quest
start level and another stack of 2 blessed tins of spinach at a
random spot on the monk quest locate level, to compensate for the
inability to gain strength from giant corpses if they adhere to
vegan or vegetarian conduct.  paxed supplied the 'tinplace' magic.

4 tins of spinach aren't nearly enough to get to 18/100, but by
uncursing the first pair, if necessary, and waiting until strength
is at least 18, they can be eaten to add 4..40 (average 22) points
of exceptional strength.  (Players choosing either of those conducts
for other roles or foodless for any role are on their own as far as
boosting Str goes, same as before.)

The special level loader needed to be modified to handle tins of
spinach.  It now accepts "spinach" as a fake monster type for an
object of type "tin".  Also added support for empty tins since it
involved the same code, and use of fake monster type "empty" with
object type "egg" to be able to create generic (unhatchable) eggs.
(Wishing for "egg" produces those by default but it also accepts
explicit "empty egg" by coincidence.)
2022-10-12 13:47:12 -07:00
PatR
3681855f34 fixes entry for PR #883 - digestion attack by hero
Pull request from entrez:  poly'd hero who digests a creature has a
change to gain an intrinsic from it.  I put the fixes entry in the
New Features section.

I was a bit concerned that g.afternmv might be cleared during the
turns the hero is busy digesting, leaving a stale value for
g.corpsenm_digested, but I don't think that that can happen.

Fixes #883
2022-10-08 16:09:19 -07:00
PatR
01dea35a22 fix github issue #894 - guardian nagas can't grab
Issue reported by eakaye:  for a 'hugs' attack to succeed, the
monster must have at least three attacks and the two preceding the
hug attack need to both hit.  Guardian nagas had three attacks but
the first was melee 'bite' and the second was ranged 'spit'.  Those
are mutually exclusive, so they would never both hit and nagas never
grabbed their prey.

Make the spit attack be first, the bite attack be second, insert a
touch attack for 0 damage third, and make the hug be fourth.  Also,
change their hug damage type from 'phys' to 'wrap'.  The first and
2nd+3rd+4th are still mutually exclusive.

The resulting message feedback left something to be desired and has
been tweaked.

The difficulty-level formula used by deprecated 'makedefs -m' now
generates 17 rather than 16 for guardian naga so I changed revised
monster to match.  They are definitely more difficult now that their
constriction attack has a chance to hit.

Fixes #894
2022-10-07 01:07:43 -07:00
nhmall
bbac072e62 fixes entry for pr889 2022-10-06 12:37:16 -04:00
PatR
a1dae3caf8 "no monster to remove" for steed knockback
Reported directly to devteam, mounted hero whose steed got hit
for knockback effect triggered impossible "no monster to remove".

In addition to fixing that, this makes a knockback attempt at a
hero who is stuck to a cursed saddle knock the hero and steed back
instead of knocking the hero out of the saddle.

mhurtle_step() should be able to use u.ux0,u.uy0 to update the
hero's old location after moving the hero in order to move the
steed, but the value was different from what was expected and the
map showed stale steed symbol when I used that.  I'm not sure what
is going on there; saving u.ux,u.uy before moving the hero worked
as intended so I didn't pursue it.
2022-10-05 03:40:35 -07:00
PatR
a8bfeb4dca fix wishing help for X11
Pass the wait-for-response arg when displaying the wishing help text
window.  tty, curses, and Qt waited regardless, but X11 honors the
no-wait request.  It was showing the text window then letting the
core immediately resume, resulting in reissuing the wish prompt on
top of the help window.  Entering a successful wish then dismissed
the prompt but left the help on the screen, possibly obscuring the
map depending on placement.
2022-10-02 12:42:12 -07:00
PatR
b6a3d4b984 fix github issue #679 - orc strength
Reported by eakaye:  orcish hero has maximum strength of 18/50 but
hero poly'd into an orc was given 18/100 strength.  Also, a comment
from vultur-cadens pointed out that orcish heroes start with poison
resistance while monster orcs lack it.

Even though the boost to 18/100 is only temporary until the poly
times out, make orcs a special case where strongmonst from poly'ing
into them only gives 18/50 strength instead of 18/100.  Adopt the
suggestion that Uruk-hai be an exception and continue to give hero
poly'd into them 18/100.

If any gnome becomes strongmonst (currently none are), treat them
as 18/50 too.  Elvenking and elf-lord are strongmonst; treat their
forms as plain 18 though, matching the limit of elf heroes.  Lesser
monster elves aren't strongmost.

While in there, add another special case so that hero poly'd into a
giant gets 19 strength.  Monster giants are still plain strongmonst
so might warrant some sort of adjustment.

Give orcs poison resistance, but eating their corpses doesn't provide
an opportunity to confer it.  Note goblins and hobgoblins still don't
have the resistance (to distinguish them from orcs a bit).

Take away strongmonst from orc shamans and give it to orc mummies.
Human mummies should have it too (at least according to movies) but
I didn't alter them becuase they're already pretty dangerous at the
point they start occurring.  Take away strongmonst from plain 'elf'
placeholder.

New:  when hero polymorphs into a form that lacks the strongmonst
attribute, take away any exceptional strength (drop 18/01 through
18/100 down to 18; as mentioned above, the drop is only temporary).
There's no attempt to set the maximum even lower for wimpy forms.

Fixes #679
2022-10-01 18:14:59 -07:00
PatR
1da5cf570c fix #K3739: engraving in dust mentions frost
[sic] should be "engraving in frost mentions dust"

Writing on ice with fingers is described as writing in frost, but if
you overwrite an existing engraving rather than add to it the game
said you wiped out the engraving in the dust (immediately followed
by writing in the frost).

Not mentioned in the report:  finishing a multi-turn engraving on
ice had the same problem.
2022-10-01 02:34:28 -07:00
PatR
7eab6a3678 fixes entry for PR #884 - X11 extended command
Pull request from entrez:  X11's get-extended-command widget
allocated 1 extra byte for a couple of end-or-array terminators
and then wrote more than 1 byte to them when initializing its list
of extended commands.

Fixes #884
2022-09-30 08:32:45 -07:00
PatR
c88e5f2f8b fixes entry for pull request #881 - curses exit
Pull request from chasonr:  if the curses interface did a full screen
update while the game was ending, it could attempt to refresh windows
that had already been removed.

For #if PDCURSES, raw_print() could attempt to write to the message
window after it had been removed.

[Why is raw_print() using the message window at all?  Isn't the main
point of it to bypass that?]

Fixes #881
2022-09-28 14:31:11 -07:00
PatR
caf1eeebf9 fix #H5459 - explosions and steeds
Reported nearly five and half years ago:  mounted hero and steed
shared resistances if they got hit by an explosion.
2022-09-25 01:21:07 -07:00
PatR
f4e87e8744 fix "unique monster doppelganger and bones bug"
Reported by paxed 8 years ago:  if a bones file contains a
doppelganger imitating a unique monster, when it gets loaded
that monster ends up being marked as having been created.  The
doppelganger itself will shapechange to other forms, but the
unique monster won't be created when it should be because it has
become extinct.

Report involved creating a statue of a unique monster which
yields a doppelganger in that monster's shape, then using stone
to flesh to animate the statue, dying before it changes to some
other shape, and having bones be saved.
2022-09-24 18:49:48 -07:00
PatR
f9e5e4966a fix github issue #581 - "You see no door there."
Year old issue from copperwater:  'open' directed at a non-door told
player that there isn't a door and took no time unless character was
blind and learned what type of terrain it is, applying a key gave
the same message but used a turn and didn't update map to reflect any
terrain discovery.

Attempting to open an adjacent door or applying a key to one while in
a pit had a similar issue:  they produced the same "you can't reach
it from here" but had different time vs no-time outcome.

There may be other actions in the same situation.

Closes #581
2022-09-23 15:30:00 -07:00
PatR
eaac5b6c74 fixes entry for PR #848 - no traps in Tou shops
Pull request from copperwater:  the random traps specified by the
special level definitions of the tourist locate and goal levels could
be placed inside the shops present on those levels.

Fixes #848
2022-09-22 23:43:36 -07:00
PatR
0145a020c1 fixes entry and tweaks for PR #871 - revive corpse
Pull requet from entrez:  give better feedback than "it" when hero
observes a corpse reviving into a monster that can't be seen.

Tweak reviving from a container which was coded as if the container
was optional.  That can lead to confusion when someone reads the
code so make the situation more explicit.

Fixes #871
2022-09-20 14:33:39 -07:00