Commit Graph

599 Commits

Author SHA1 Message Date
PatR
ecee4e8610 Guidebook tweaks for ^E, section 5 header
Describe #wizdetect as revealing hidden things rather than searching
for hidden things since the latter is described more than once as
possibly needing multiple tries.

For plain text output, the "Rooms and corridors" section header was
harder than necessary to notice because it seemed to run together
with the list of commands preceding it.
|
| u    #untrap
|
| 5.  Rooms and corridors
|
Inserting an extra blank line in between them is helpful.  That isn't
needed for Postscript/PDF output because the text of the section
title is rendered with bold font, but I didn't attempt to make the
extra line be conditional.  The 'roff directive is added as a comment
to the TeX source without knowing whether an extra blank line would
be useful there (doubtful).
2021-08-26 15:32:52 -07:00
nhmall
b4d0d6fa58 date bump to match 267ac5 update to Guidebook source 2021-07-27 14:47:46 -04:00
Pasi Kallinen
267ac5add2 Add colored branch stairs
Different color for stairs that go to another dungeon branch.

Adds four new glyphs, S_br{up,dn}{stair,ladder}, which use the
same character as normal stairs/ladders, but yellow color.
In tiles, the up/down arrow is yellow-green instead of while-blue.

This feature has been around a lot and is in several different
variants, but this is implemented from scratch so tiles work too.
2021-07-27 17:21:01 +03:00
nhmall
2f35b2ac54 Guidebook date bump to reflect most recent update 2021-07-21 11:29:35 -04:00
Pasi Kallinen
893a14e2bd Remove special doinv key
The same thing can be done in config file with BIND=0:inventory
2021-07-21 16:33:10 +03:00
Pasi Kallinen
433f0cc15f Add new command: #retravel
Retravel travels to the previously selected destination.

Also changes the travel-via-mouse to execute the extended command
instead of faking a special key.
2021-07-21 10:59:08 +03:00
Pasi Kallinen
76f77ee0cc Add assistance to fire-command
Allows the fire-command to autowield a launcher; it will now
do either swapweapon or wield an appropriate launcher, if you
have ammo quivered.

This assistance can be turned off with the fireassist boolean option.

Adds a rudimentary command queue, which allows the code to add keys
or extended commands into the queue, and they're executed as if
the user did them.  Time passes normally when doing the queue,
and the queue will get cleared if hero is interrupted.
2021-06-16 13:14:32 +03:00
Pasi Kallinen
97e58a4fdc Change autopickup and color default values
Change the default value of autopickup to off. Having it on is
harmful for new players, making them very easily burdened.
We can't expect new players to know how to configure
pickup_types, pickup_burden, and pickup exceptions.

Change the default value of color to on. We can safely assume
new users have a terminal that supports color, and most people
want color.
2021-06-06 19:25:49 +03:00
Pasi Kallinen
8849f66dae Don't bind quit to any key by default
Quit is not a commmand you usually need very often, and generally
don't want to use by accident.

Apparently, on Spanish keyboard layout, n-with-tilde is interpreted
by the Windows NetHack as M-q, and the key is next to l. Loot also
asks for confirmation, just like quit.

Prevent stuff like this by not binding the quit command to any key.
2021-06-04 09:13:30 +03:00
PatR
a71d3185bf 'f' for aklys
Adopt a feature mentioned in the xNetHack release announcement.
If you use the fire ('f') command when wielding a throw-and-return
weapon while your quiver is empty and the 'autoquiver' option is
Off, throw the wielded weapon instead of prompting to fill the
quiver.  It will usually return and be re-wielded, so be ready to
fire again.

Implemented from scratch.
2021-03-26 16:19:24 -07:00
PatR
2ba87da95c Guidebook.mn SPECIAL THANKS - no need to shout
Guidebook.tex already uses mixed case for "Special Thanks"
but it put Dungeoneers into a new section--one on par with
Credits--rather than have that be a continuation of the
Special Thanks subsection.  Split the difference:  make
Dungeoneers be a second subsection of Credits in both.
2021-03-23 13:54:58 -07:00
PatR
33f714887d More Guidebook menu_* settings
Previous update added one change to Guidebook.tex which was omitted
from Guidebook.mn, so catch up.

Don't try to list the interfaces or ports which support each menu
command key.  Just have a generic "not every command is implemented
by every interface" instead.

Flesh out the one sentence menu_search description.

Update an example which shows changing menu_first_page to '{' now
that '{' has a default use for something else (menu_shift_left).
Since 'menu_first_page:^' is the opposite of 'menu_last_page:|' and
'\' shares the same key as '|' with opposite shift state, switch
the example to 'menu_first_page:\'.
2021-03-19 07:14:21 -07:00
PatR
f751905e16 Guidebook update for #perminv
Interaction with persistent inventory window was documented for
the '|' key a week ago but nothing was specified for '#perminv'.

menu_shift_left and menu_shift_right for X11 are now explicitly
for the perm_invent menu only.
2021-03-19 01:59:38 -07:00
PatR
946df19ea2 \#perminv, 2 of 2: implementation
Add new '|' command, aka #perminv, which allows the player to
send menu scrolling keystrokes to the persistent inventory window.

Implemented for X11, where its usefulness is limited, and for
curses, where it is more needed and also more fully functional.
The interface can either prompt for one keystroke, act upon it,
and return to normal play, or it can loop for multiple keystrokes
until player types <return> or <escape>.  X11 does the former if
the 'slow' application resource is False so that prompting uses
popups, and the latter when 'slow' is True where prompting is in
a fixed spot and doesn't end up causing the persistent inventory
window to be stacked behind the map window.  curses always does
the loop-until-done approach.  It also accepts up and down arrow
keys to scroll one line at a time.

Also adds two new menu scrolling commands, menu_shift_right (key
'}' by default) and menu_shift_left ('{') if wincap2 flags contain
WC2_MENU_SHIFT.  Shifting allows different substrings of too-long
lines to be seen.

For X11, neither works because their handling requires a horizontal
scrollbar and for some reason that escapes me our menus don't have
one of those.  If they did, shifts could work for all menus but a
shifted window would hide the selection letters.  So shifting would
be most usefully done as:  pan right, read more of any long lines,
immediately pan back to the left.

For curses, they only apply to the persistent inventory window.
Shift right redraws it with class headers and inventory letters
shown normally but the item descriptions omit their leftmost
portion, showing more text towards the end.  Shift left reverses
that and does nothing if the beginning is already in view.  Forward
and backward scrolling while shifted leave the shift in place.
2021-03-13 18:18:53 -08:00
nhmall
7a8be551e9 Guidebook date was behind on recent updates so give it a bump 2021-02-11 10:38:43 -05:00
PatR
fedc2d5abe nroff Guidebook fix
Options which show lists of possible values using '.CC' were
unintentionally being rendered with bold font.  I tracked it
down to "figure 3" which has been in place for quite a while.
The font setting and resetting wasn't working as I expected.
This change yields the intended results.
2021-02-10 18:48:21 -08:00
PatR
71bb01c328 curses persistent inventory window tweak
Under curses interface, provide a way to get a little more space
for perm_invent without turning off windowborders entirely.

Possible 'windowborders' values:
 0 = no borders, max screen space available for useful info
 1 = full borders, two lines and two columns wasted for each window
 2 = contingent borders, show if screen is big enough, else hide
New:
 3 = as 1 except no borders for perm_invent window
 4 = as 2 except never borders for perm_invent window

3 and 4 let the map, message, and status windows have borders while
providing two extra lines and two extra columns on each line for
persistent inventory.  It's not much but better than nothing when
borders are enabled.
2021-02-08 16:34:29 -08:00
PatR
39fbf083a2 Guidebook update
Document m\ and m`.

Several years ago there was a suggestion--aka complaint--that
"menustyle:Traditional was the only alternative for early versions"
was too vague and requested that the version be included.  It was
probably accurate at the time it was included, but I've changed it
from "early versions" to "very early versions" now.  :-}
2021-01-06 18:54:42 -08:00
PatR
c71dd6696d pickup_types documentation
Another one from several years ago.  Document 'pickup_types:.'
as a way to set pickup_types to a value that won't ever cause
anything to be picked up, in order to leave all autopickup
decisions to player's autopickup exceptions.

Actually implementing pickup_types:none would require just as
much documentation plus extra code.
2021-01-02 17:07:46 -08:00
PatR
934808be0e Qt support for changing 'statuslines' dynamically
Turns out it was nearly as simple as I originally thought.
I just missed one significant detail the first time around.
This leaves DYNAMIC_STATUSLINES as conditionl but now enables
it by default.  Using 'O' to change 'statuslines' from 2 to 3
or vice versa now works for Qt as well as for curses and tty.
2020-12-22 11:10:32 -08:00
PatR
4cf6727b4e re-implement pull req #334 - sorting discoveries
The pull request changed \ and ` output to unconditionally show
discoveries in alphabetical order.  That's nearly useless except
when looking at prediscovered weapons and armor that fighter
types start out knowing.

This allows the player to choose sorting order via the new
'sortdiscoveries' option.  In addition to setting it via
config file or 'O', it can be set via 'm' prefix for \ and `.
Choices are:
 o - sort by class, by order of discovery in class (default);
 s - sort by 'sortloot' classification which groups sub-class
     items (so all helmets before any other armor, then all
     gloves, then boots, and so on); within each sub-class, or
     whole class for classes which don't subdivide so usefully,
     partly-discovered types (where a name has been assigned)
     come before fully ID'd types;
 c - sort by class, alphabetically within class;
 a - sort alphabetically across all classes.

Turned out to be a large amount of work for fairly little gain,
although I suspect that 'sortdiscoveries:s' will eventually be
more popular than the default.

Invalidates existing save files so that current sort setting can
persist across save/restore cycles.

Closes #334
2020-12-19 17:45:49 -08:00
PatR
d27b8cb043 adopt some orphan commands
'? i' shows three keyless commands in the General section.  This
makes M-X the key for #exploremode.  #herecmdmenu and #therecmdmenu
are still keyless but now autocomplete.

A ridiculous amount of documentation for a three line code change.
2020-12-16 19:22:04 -08:00
PatR
788e21ac43 have <del> run #terrain
Having recently noticed that using <del> aka <delete> aka <rubout>
could work as a command, assign it to #terrain.  #terrain was the
only command in the "game" subset of commands as shown by '? i'
that didn't have any key assignment.

Since <delete> might be swapped with <backspace> on some terminals
and is a keypad key on the typical PC keyboard, it might not work
reliably depending on nethack's number_pad mode or the hardware
Num-Lock setting.  Players in either of those situations haven't
lost anything; they can still use extended command #terrain.
2020-12-14 01:00:19 -08:00
nhmall
69455f404e Guidebook date bump 2020-12-11 08:46:39 -05:00
PatR
6f5a1ccc63 fix Guidebook thinko
Fix the recently revised description of "#version".
'windowtype' doesn't have an underscore in it.
2020-12-11 05:26:00 -08:00
PatR
80a3c0c4d2 key rush.numpad/M-5 doc 2020-12-10 15:32:23 -08:00
PatR
241cb2a8d3 Guidebook catchup
The command rename "#seegold" to "#showgold" that also revised
a few of the short command desctipions didn't include a Guidebook
update.  So here one is.
2020-12-10 01:01:04 -08:00
PatR
516af11dc7 reduce the number of #seeXYZ commands
Noticed while working on Qt's extended command handling, there
are an awful lot of "seeXYZ" commands.  Keep the inventory display
ones (named versions of ')' to show wielded weapon(s), '[' for
worn armor, '"' for worn amulet, &c) and rename the others:
| #seenv     -> #wizseenv     debugging command
| #seespells -> #showspells   '+' command
| #seetrap   -> #showtrap     '^' command

Also, expand the descriptions of #shell and #suspend a bit in
the Guidebook.  LaTeX version is untested.
2020-11-30 16:16:14 -08:00
nhmall
0d6481ad8c spelling correction tidbit
Closes #415
2020-11-28 08:59:03 -05:00
PatR
6df9ebc1af add Guidebook description of rogue level
This is in response to the bug report we got however long ago
about the map display breaking when the [unfamiliar to player]
rogue level was reached.  It probably wouldn't have helped back
then since the subset of players who read the documentation is
about same subset as those who expect the Spanish Inquisition.

I wasn't sure whether appending "'s" to an italicized word
should be italicized itself and made it revert to the regular
font instead.  That should be changed if it's incorrect usage.
2020-11-25 10:21:43 -08:00
PatR
dde70b8d4a Guidebook bit: ascii_map and tiled_map
|ascii_map:
|If NetHack can, it should display an ascii character map if it can.
|tiled_map:
|If NetHack can, it should display a tiled map if it can.

Remove the "if {NetHack,it} can" redundancy and expand a little bit.

Also, alphabetize "tiled_map" as if the underscore were a space
instead of something that happens to collate after letters.

As usual, the Guidebook.tex changes are untested.
2020-11-25 09:15:20 -08:00
PatR
cb8baa1d1c Qt status overhaul: add support for 'statuslines'
Condense the Qt status slightly, moving Alignment field from the
Conditons line to the Characteristics line and the Time and Score
fields from their own possibly blank line to the HP,&c,Gold line.

That's for statuslines:2, which is the default.  statuslines:3
restores the previous layout.  I tried to make that become the
default for Qt but it got messy fast and I gave up.

I also tried to make changing 'statuslines' back and forth on the
fly work but failed.  I left the code in as #if DYNAMIC_STATUSLINES
but that isn't defined anywhere.  For the time being at least,
'statuslines' is config file or NETHACKOPTIONS only for Qt, not
changeable via 'O' like for curses and tty.

Change the option description for 'statuslines'.  That depended
upon whether curses was compiled in when it should depend on which
interface is active.  This moves the alternate info to Guidebook.
2020-11-17 05:07:09 -08:00
nhmall
af739196cf bump Guidebook date to reflect most recent changes 2020-10-02 12:29:26 -04:00
Pasi Kallinen
396b819988 Add safe_wait to toggle search and wait prevention 2020-10-02 19:00:40 +03:00
PatR
46f19f89ac goodbye END-CHOOSE
Instead of an additional options file directive to end the last
section of a CHOOSE directive, simplify by using an empty-name
section, [], instead.  So
...
CHOOSE one,two
[one]
...
[two]
...
[]
...

As with the short-lived END-CHOOSE directive, if no [] is present
then the rest of the file is part of the last choice.
2020-08-07 00:29:28 -07:00
PatR
2392832f22 END-CHOOSE directive for .nethackrc
Add an optional way to terminate the last section after a CHOOSE
directive in the run-time options file so that it's possible to
revert to common options.  If no END-CHOOSE directive is present
then the last CHOOSE section continues until the end of the file.
(All existing uses of CHOOSE already behave that way.)

Change the Guidebook to refer to OPTIONS=x, AUTOPICKUP_EXCEPTION=y,
CHOOSE=z, and so on as "directives" rather than "statements".  It
just feels like a better fit.
2020-08-06 15:57:05 -07:00
PatR
d7307f9ca5 Guidebook tweaks
Fix at least one typo.  Change a few quoted and/or italicized words
to fixed width (tty) font.  In the "Curses and Blessings" subsection,
mention dropping objects onto altars and the terms "BUC" and "BUCX".
2020-07-25 19:45:50 -07:00
PatR
2980aaa4cb history/Credits: aeb's Hack
Give an implied explanation for the seemingly odd copyright info in
the source files and the run-time startup banner.

The extra Hack version number, the release dates, and the newsgroup
creation are from
 https://homepages.cwi.nl/~aeb/games/hack/hack.html
which is the "Brouwer's /Hack/ page at CWI" external link near the
end of Andries Brouwer's Wikipedia page.
2020-07-12 17:17:14 -07:00
PatR
adb8fb57a2 Guidebook: traps
The documentation on traps was pretty skimpy so expand it.
2020-07-10 03:37:44 -07:00
PatR
0bd2c3154d fix default engraving/epitaph/bogusmon corruption
Fixes #369.
Fixes #370.

The default entries inserted by makedefs -s (starting in 3.6.6,
to guard against having an empty data file which led to divide by
zero crash when nethack picked a random entry) lacked a terminating
newline so the first entry from the file (for the usual case when
that data file wasn't empty) got implicitly concatenated to it.
If the first entry got chosen during play, the initial portion
corresponding to the default entry was decrypted properly but the
concatenated portion corresponding to file's first line didn't.
So gibberish was appended to default engraving or epitaph or bogus
monster; also, the input file's first line would never appear.

The newline fix in makedefs is different from pull request #370
but accomplishes the same thing.

The bulk of the patch is an enhancement to #wizrumorcheck to show
first (default inserted by makedefs), second (first in input file)
and last engravings, epitaphs, and bogusmons in addition to rumors.
The command name has become a little misleading but the limited
functionality doesn't call for separate commands.
2020-07-09 19:23:19 -07:00
PatR
bcd6665ccf history/Credits update
Fix two of the unresolved issues from the previous reconciliation
between dat/history and doc/Guidebook.*: synchronize the list of
devteam members for 3.0 and also the information about Izchak's
death.

Add a description of the Y2K situation.  It's been moved to its
own paragraph and rephrased from the earlier draft(s), both the
introduction and a switch from present to past tense.  Parentheses
around a whole paragraph look a bit odd but including the paragraph
without them also looks unusual because the context is so different
from adjacent paragraphs.  Maybe use "Note: Blah blah..." instead
of "(Blah blah...)"?

Redo the paragraph about 3.0 version numbering since the situation
was more complex than I realized.
2020-07-07 03:39:03 -07:00
nhmall
5a437b336a remove SYSFLAGS and MFLOPPY code
A check into github issue 364 confirmed that
ba6edbe5dc
had incorrectly updated the bwrite sizeof entry for sysflags.

The SYSFLAGS and MFLOPPY code is all in the outdated part of the tree, so just
remove it rather than re-correct it.

Closes #364
Closes #207
2020-07-05 08:50:13 -04:00
PatR
84bba3f099 refine documentation of Sokoban branch and conduct
Rephrase a few things and mention the extra boulder(s) since
that feature is a fundamental difference with actual Sokoban.

Fix typo/thinko:  "Others rules can...".

Change one instance of /Sokoban/ in italics to ordinary text.
Other conduct descriptions don't use such so it looked odd.
2020-07-04 15:09:56 -07:00
PatR
8801ec34eb fix github pull request #355 - Sokoban cheating
Track sokoban cheating (taking actions that incur a luck penalty).
The pull request only reported the number of times (possibly zero)
that the player broke nethack's sokoban rules when reporting the
"you obtained the Sokoban prize" achievement, which is when the
count is most meaningful, but this implements it as a full-fledged
conduct instead.  This way the #conduct command can be used after
"creative nethacking" to check immediately whether an action has
violated the Sokoban rules so a player willing to put in a bit of
effort can eventually learn which actions have a negative impact.

The new conduct is only shown during games where the character has
entered the Sokoban branch, but once that has happened it gets shown
no matter the location at the time of #conduct or end of game.

Most of this wasn't in the pull request:  expanding the Guidebook to
give more information about sokoban and its conduct.

Bump EDITLEVEL to invalidate to-be-3.7 save files because u.uconduct
has been extended.

Fixes #355
2020-07-03 02:21:30 -07:00
PatR
e762429151 Guidebook fixup
The new sound stuff needed some fixing up.

Guidebook.mn - list start no longer specified the longest key;
  in the Postscript/PDF output, the new longer one was partially
  overwritten by the text which followed and in the text output,
  things didn't line up cleanly anymore.
Guidebook.tex - former last list entry which became next-to-last
  was missing a necessary line break.  [not tested]
both - sentence punctuation:  change period to semi-colon in former
  last entry that's now next-to-last; vice versa in new last entry.
2020-07-02 16:15:02 -07:00
nhmall
e4b18f0545 fix github issue 361 to make user_sounds useful even if MSGTYPE is hidden
fixes #361

Also, experminental introduction of vt_sounddata to enable tty to pass
a sound file index to the terminal side of things where perhaps someone
can add code to something like hterm to take the information relayed by
NetHack to trigger user_sounds locally even if playing on a server.

Compile time option TTY_SOUND_ESCCODES required to build that support in.

It should be independent of TTY_TILE_ESCCODES.
2020-07-02 15:49:45 -04:00
PatR
30b19a3891 history reconciliation
Eliminate most of the minor differences between dat/history and the
end section of doc/Guidebook.txt which didn't seem to be intentional.
Several commas, a couple of past/present tense discrepancies, and
various clauses or whole sentences which were in one but not the
other.  There are still differences which this doesn't address.

Also a couple of actual changes.  Make the Guidebook refer to itself
as "this document" rather than "this paper".  Change "dozens of
people's work" to "scores of people's work".  Add a new sentence
describing the version numbering scheme used by 3.0, which wasn't
3.0.x yet.
2020-06-26 17:56:03 -07:00
PatR
e30f1b800e history of 'tiles'
Warwick did the heavy lifting of the first tiles implementation.  But
I was the one who suggested changing his terminology to "tiles" even
though that doesn't match the term's traditional usage in computer
graphics.  Since then, our [mis-]usage has spread beyond nethack and
its variants.  [This isn't just bragging; I recall several years ago
that someone thought our implementation of tiles for MS-DOS was the
original implementation.  Their search of the newsgroup archives didn't
find Warwick's original announcement--Atari binaries and/or a source
patch in between releases--because the term "tiles" wasn't in use yet.]

I'm not sure whether Dean's font preceded Warwick's icons, but the
concept did.  If the description of their implemenations is backwards
than that bit should be reworded.

Also, add a sentence explaining why NetHack++ "was quickly renamed
NetHack--".
2020-06-20 19:57:53 -07:00
PatR
1d631a701d long dash formatting in the Guidebook
Guidebook.mn had a mixture of literal "--" and \(em to insert an
M-sized dash.  The literal was poor usage but the 'em' directives
were using " \(em " for source readability.  Unfortunately those
spaces ended up being included in the output where a long dash
shouldn't be surrounded by such.  This changes both to be
|start\(emmiddle\(emend
for proper usage without unwanted spaces.  The 'roff source becomes
harder to read so such phrases have been moved onto separate lines
instead of just staying within the flow of words.  (I tried
|start
|\(em
|middle
|\(em
|end
but the newlines became unwanted spaces in the output.)

Guidebook.tex incorrectly had a numeric range dash ("--") instead
of long dash punctuation ("---") in the places where the 'roff
version had literal "--".  I also moved the quite readable
|start---middle---end
phrases and a handful of whole sentences to separate lines to match
the Guidebook.mn source more closely.

One trivial text change is "you will forget" to "you will have
forgotten" in the bit about what happens to remembered objects
when the "remembered, unseen monster" glyph is taken off the map
since forgetting happens when that glyph is put on.
2020-06-20 18:07:36 -07:00
nhmall
61482344ad Guidebook date bump 2020-06-20 08:40:21 -04:00