Commit Graph

340 Commits

Author SHA1 Message Date
nhmall
50d04bbd61 Merge branch 'NetHack-3.6' 2019-11-07 23:10:47 -05:00
nhmall
7502a2e05f bump the Guidebook date 2019-11-07 19:15:34 -05:00
PatR
ed3a87a078 more Guidebook tweaks
Expand the sample configuration file a little and prevent it from
going past the right margin in Guidebook.txt.

Replace all instances of "config file" with "configuration file".

Reformat the "notes" at the end of the table of map symbols.
Unfortunately Guidebook.pdf from Guidebook.ps from Guidebook.mn
puts a page break between the header line "notes" and the two
actual notes.

Value 1 for 'mouse_support' was not just exceeding the margin of
Guidebook.txt but wrapping to the next line.  Shorten it.

Guidebook.tex had a typo "in the foler" (where 'folder' was meant)
and Guidebook.mn didn't have that phrase at all.

Remove a few trailing spaces.
2019-11-07 16:10:55 -08:00
nhmall
cc3b101a02 Merge branch 'NetHack-3.6' 2019-11-07 10:52:19 -05:00
nhmall
70bacac9e6 Guidebook.mn bit 2019-11-06 17:59:12 -05:00
nhmall
f07bf610b8 Merge branch 'NetHack-3.6' 2019-11-04 01:18:24 -05:00
Bart House
395c970add Changes to windows based discussion of .nethackrc. 2019-11-03 07:52:33 -08:00
nhmall
ffec86b244 Merge branch 'NetHack-3.6' 2019-11-02 22:53:46 -04:00
Bart House
2b73494296 Updated guidebook to discuss new loc and name of configuration file on win. 2019-11-02 18:18:48 -07:00
PatR
d7354fe78c Guidebook.tex catch up, Guideboon.mn bits
Guidebook.tex not tested.  The \, in the continuation of S_stone is
a narrow space in LaTeX.  It should be \hspace{ width of '(' } but
I don't remember how to measure something in LaTeX or TeX.

Guidebook.mn is getting two small changes:  I forgot about the
guideline that each sentence be on its own line.  Also, this adds the
fix for wide lines in the dungeoneers list although the reordering
accompanying a recent change might have made that moot (unless some
future reordering puts wide names on the same line again, assuming
that was the issue).
2019-11-02 16:05:39 -07:00
nhmall
28a4c65caa Merge branch 'NetHack-3.6' 2019-11-02 12:12:59 -04:00
PatR
c66eb915d2 Guidebook.mn Symbols section
The table listing symset entries was ok for ps/pdf output but for
plain text output it was wrapping to a second line for S_xan,
S_pet_override, and S_player_override and also going past the right
margin for some others.  I've shortened the text for those three
and narrowed the first column to give more room for the third column,
bringing all the lines within their margin.

The entry for S_stone was rather surprising:  "dark part of a room".
It now says "solid rock or unexplored terrain or dark part of a room"
and needed to span two lines.

The first column has been labeled "Default" but that was why that
column was wider than necessary.  It now has a label of two spaces
and is left justified instead of being centered.  It is also now
forcing constant-width Roman as the font and every character in that
column should be the same size so one reason for centering is removed.

The title used to be centered but always looked a bit off due to the
fact that the three columns have differing widths and/or because of
the over-wide lines changing the location of "center".  It is now
left justified and looks a little bit like it's labeling the first
column.  Perhaps it needs a blank line separating it from the rest.

Guidebook.tex is lagging again.
2019-11-02 03:32:35 -07:00
nhmall
6d385661c0 Merge branch 'NetHack-3.6' 2019-11-02 01:58:32 -04:00
nhmall
13f4a466d9 name correction 2019-11-02 01:44:00 -04:00
nhmall
f261b02f5a dungeoneers update 2019-11-02 01:40:58 -04:00
nhmall
2f260541d9 more doc updates and tweaks 2019-11-01 12:48:09 -04:00
Bart House
d9d47c120b Merge branch 'NetHack-3.6' 2019-10-31 20:46:54 -07:00
nhmall
696f54a3b8 doc updates 2019-10-31 13:27:10 -04:00
nhmall
b377771849 Merge branch 'NetHack-3.6' 2019-10-31 12:26:27 -04:00
PatR
eb825a2da5 catch Guidebook.tex up with Guidebook.mn
Only with the past couple of changes, not a complete reconciliation.

Not tested.
2019-10-31 05:31:39 -07:00
PatR
384f98b61f Guidebook tweak
This sample comment attending the sample SYMBOLS statement fit ok in
the pdf output but wrapped to another line in the plain text output,
so shorten it.

S_xan, S_pet_override, and S_player_override still wrap, but by a bit
less than before.  Their width causes the line of dashes at the top
of the table to wrap too.

Guidebook.tex is still lagging behind.
2019-10-30 17:37:04 -07:00
nhmall
2eab66617d Merge branch 'NetHack-3.6' 2019-10-30 13:21:20 -04:00
PatR
e08dc704ef fix 'roff warning
I think it was issued by tbl but it wasn't about any of the tables.
 warning: numeric expression expected (got 'R')
was complaining about
 .lp SYMBOLS, ROGUESYMBOLS
Exclosing the paragraph label within quotes to make it one argument
to the lp macro or command would have fixed this, but I've split
them into two paragraphs.  And reordered several of the paragraphs
which were alphabetized just enough to make the out of order ones
seem like mistakes.

Guidebook.tex needs to catch up.
2019-10-30 08:20:22 -07:00
nhmall
9258cb99e6 "and and" bit 2019-10-29 23:02:37 -04:00
nhmall
76dadab568 whitespace bit 2019-10-29 13:19:41 -04:00
nhmall
34d38dcf82 Merge branch 'NetHack-3.6' 2019-10-28 00:45:56 -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
642f698a7a Merge branch 'NetHack-3.6' 2019-10-01 20:44:57 -04:00
nhmall
e520071f52 update guidebook 2019-10-01 19:57:04 -04:00
nhmall
9755a86737 Merge branch 'master' into NetHack-3.7 2019-07-11 08:47:07 -04:00
nhmall
d4693d19bb Merge branch 'NetHack-3.6' 2019-07-11 08:46:50 -04:00
PatR
bfbe4e71ce make #panic honor paranoid_confirmatin:quit
If 'paranoid_confirmation:quit' is set, require "yes" instead of 'y'
to execute the wizard mode #panic command.
2019-07-11 02:54:02 -07:00
nhmall
394fad32eb Merge branch 'master' into NetHack-3.7 2019-07-10 22:02:22 -04:00
nhmall
7dfffbb712 Merge branch 'NetHack-3.6' 2019-07-10 21:58:58 -04:00
PatR
9eefeef5d2 fix github issue #200 - docs for 'strange object'
Fixes #200

The Guidebook claims that there's no symbol for 'S_strange_object'
which is literally true, but there is one for S_strange_obj.  It has
been in place longer than the paragraph claiming that there's no way
to customize that symbol.  I'm not sure why variant spelling was used.

Also, files.c doesn't use loadsyms[], it calls a routine which returns
a pointer to a specific element in that array.
2019-07-09 17:42:32 -07:00
nhmall
093e062de6 Merge branch 'master' into NetHack-3.7 2019-07-02 22:47:29 -04:00
nhmall
ca6dbd4b71 Merge branch 'NetHack-3.6' 2019-07-02 22:46:53 -04:00
PatR
1e7fb839a3 status_hilite for Xp and Exp by percent rules
Extend support for highlight rules that specify percentages from HP
and spell power to experience level and experience points.  For both
of those, the percentage is based on progress from the start of the
current Xp level to the start of the next Xp level.  100% isn't
possible so is used to enable highlighting a special case:  1 point
shy of next level, most likely to occur after losing a level.

This is something I had in mind a long time ago and then forgot all
about until fiddling with the final disclosure of experience points
recently.  It turned out to be trickier than expected because it needs
to check whether Xp should have a status update when it hasn't changed
but Exp has gone up.  The latter might hit a percentage threshold that
switches to another highlight rule.  Fortunately changes to Exp, at
least that aren't part of level gain or loss (which always trigger
status updating), are all funnelled through a single place (I hope).
2019-07-02 17:39:23 -07:00
nhmall
7054e06e42 NetHack minor release checklist items - savefiles
Make some progress on a couple of next minor release checklist
items, hopefully without introducing too many new bugs. This
is just the initial commit, and work continues.

Checklist items:

Savefiles compatible between Windows versions, whether 64-bit
or 32-bit in little-endian field format.

Selection of file formats:
 historical (structlevel saves),
 lendian (little-endian, fieldlevel saves),
 and just for proof-of-concept, ascii fieldlevel saves
 (the ascii is huge! 10x bigger than little-endian).

For the fieldlevel save, all complex data structures recursively
get broken down until until it is one of the simple types that
can't be broken down any further, and that gets when it gets
written to the output file.

New files needed for this build:

hand-coded:
include/sfprocs.h
src/sfbase.c      - really a dispatcher to one of the
                    output/input format routines.
src/sflendian.c   - little-endian output writer/reader.
src/sfascii.c     - ascii text output writer/reader.

auto-coded (generated):
include/sfproto.h
src/sfdata.c

This is just one approach. I'm sure there are countless others
and they have different pros and cons.

For producing the auto-coded files a utility called
universal-ctags, that is actively maintained and evolving,
was used to do all the heavy-lifting of parsing the
NetHack C sources to tabulate the data fields, and store
them in an intermediate file called util/nethack.tags
(not required for building NetHack if you already have a
generated include/sfproto.h and src/sfdata.c)

util/readtags (also not required for building NetHack
itself) will decipher the nethack.tags file and produce
the functions that can deal with the NetHack struct data
fields.

You can obtain the source for universal-ctags by cloning it
from here:
https://github.com/universal-ctags/ctags.git

The combination universal-ctags + util/readtags has been
tried and tested under both Windows and Linux, so it is
not tied to a particular platform.

Note: util/readtags will work only with universal-ctags
output, so other ctags are unlikely to work as-is.
Universal-ctags can be build from source very easily
under Linux, or under Windows using visual studio.
2019-06-23 00:11:46 -04:00
Pasi Kallinen
217671e00f Remove built-in speaker support
The changes to amiga, mac and msdos builds are untested.
2019-05-11 11:10:00 +03:00
nhmall
cf2a9b7797 Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2 2019-05-07 14:11:33 -04:00
keni
5676508180 Guidebook.mn: drop unneeded escaping 2019-05-07 13:53:24 -04:00
nhmall
c8777ea7ca 3.6.2 release bits into Guidebook 2019-05-07 08:40:46 -04:00
PatR
2724c88191 Guidebook update
Tweak the status hilites section.  Add a bit of detail about how to
specify both color and attribute and/or multiple attributes.  Also,
change the Guidebook's table of status fields to be column-oriented.
With the exception of 'score', reading down the three columns now
matches going across the status lines.  The previous ordering started
row-oriented but then became scrambled compared to the usual display.

As usual, Guidebook.tex is best guess....
2019-04-09 15:46:19 -07:00
PatR
0cad960428 X11 extended command selection
The expansion of the extended commands list to include every command
has made picking extended commands out of X11's menu become tedious.
This uses the existing 'extmenu' option (previously tty-only) to
control whether all the commands are present or just the traditional
subset not bound to non-meta keystrokes ('adjust', 'chat', 'loot', &c).
2019-04-01 08:58:49 -07:00
PatR
d1dade164e tty statuslines:3
Implement the 'statuslines' option for tty.  2 and 3 line status are
similar to curses.  Tty's version doesn't include insertion of extra
spaces for enhanced readability, or ignoring 'showexp' when space is
needed for other fields, or right justifying 'score' and suppressing
it when there isn't room for the entire number.  It continues to have
abbreviated condition and encumbrance descriptions that curses lacks
which get used when the normal ones take up too much space.

'statuslines' can be set with 'O' so it is feasible to switch back
and forth between 2 and 3 lines on the fly.  But only if the display
is at least 25 lines (actually ROWNO+4) or else CLIPPING is enabled
at build time.

This fixes the bug where after resorting to abbreviated condition
values it sometimes (always?) wouldn't switch back after more room
became available.  Abbreviated encumbrance values had problems too
(lack of leading space and not changing value if encumbrance changed
to anything other than unencumbered) and this fixes that as well.
2019-03-29 04:21:18 -07:00
PatR
59ab965863 curses ^P - support msg_window:full
curses uses 'reversed' (LIFO) style when displaying previous messages.
Use the existing (previously tty-only) 'msg_window' option to also
support 'full' (FIFO).  The actual code needed as just a couple of
lines; tweaking options parsing and the documentation was more work.
2019-03-24 19:20:21 -07:00
PatR
5efea7115a 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.
2019-03-21 14:33:39 -07:00
PatR
23ea5b07fe 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.]
2019-03-01 17:09:54 -08:00
PatR
eb1514da15 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).
2019-02-27 16:04:51 -08:00