nethack 3.0, nethack 2.2, and hack 1.0 did not use a three component
version numbering scheme so their corresponding fixes files shouldn't
do so either. Change those from fixesX-Y-0.txt to fixesX-Y--.txt.
For
key name description
reduce the width of the first column from 8 spaces to 6 and increase
the width of the second column from 8 spaces to 10 so that fewer lines
have misaligned third column caused by long name.
Also a small amount of extra verbosity, mostly for I and A/P/R/T/W.
git has me really confused right now, first requiring a merge, then
not needing any merge. Anyway, add pull request #624 which was
unintentinoally closed and then couldn't re-opened. Now it's been
incorporated so is intentionally closed.
Closes#624
If you want to declare a pointer which the address pointed to is constant,
you should declare it as like `static const char *const var = "...";`.
This commit supplies missing `const` and prevents some programming
error in the future.
If the one provided in the zip/distribution is newer, replace
the one used by the game after renaming the current one to
symbols.save.
If the one used by the game is newer, do nothing with it.
The mingw-w64 version on the CI platform is older and
is missing a sought copy of winres.h.
This attempts to work around that by having the Makefile
create a temporary copy of winres.h in the win/win32 directory
which that windres.exe is already search in. The file is
then immediately removed after windres uses it.
The contents of the temporary winres.h match the contents
of that file that is distributed with the more up-to-date msys2
distribution of mingw-w64.
It won't be known if this workaround solves all the CI issues
with the mingw build until after it is committed and observed.
I unintentionally swapped the shift and ctrl movement keys
when redoing the movement input - change them back to how
it was earlier.
Also change the number_pad meta-key bindings, and explain
in the comments why: We can't bind shift or ctrl numbers.
Meta (aka alt-key) works with number-pad numbers when
the altmeta-option is on. There was no altmeta in 3.4.3.
Here's a table of the flags.run/g.context.run values,
from 3.4.3 and 3.7 as of this commit:
| num_pad:0 || num_pad:1
| 343 | 370 || 343 | 370
-------------------------------------------------
<dir> | 0 | 0 || 0 | 0
shift-<dir> | 1 | 1 || 0 | N/A
ctrl-<dir> | 3 | 3 || 0 | N/A
meta-<dir> | N/A | N/A || N/A | 1 (with altmeta)
m-prefix | 0 | - || 0 | -
G-prefix | 3 | 3 || 3 | 3
g-prefix | 2 | 2 || 2 | 2
5-prefix | N/A | N/A || 3 | 3
-------------------------------------------------
The m-prefix in 3.7 does not set the run-value, as it can now
be used with any movement key or prefix, which will set the run value.
New input system does not lose functionality when compared to 3.4.3.
Instead, the number_pad users gain the meta-<dir> running.
This doesn't fix the issue of three badly differentiated run values.
Make the same change as was done for Qt three or so weeks ago: force
the 'toptenwin' option on in X11_init_nhwdinows() so that scores (or
wizard mode "your score is ignored") are shown in a popup text window
instead of being sent to stdout.
The X11 tiled map was being initialized to the tile for giant ant.
Visible during the role/race/&c selection dialog and if you get the
"already a game in progress under your name; destroy it?" prompt.
Makefile.mingw32 and Makefile.mingw32.depend are intended to replace
Makefile.gcc.
To use them:
cd /d/prj/NetHack/src
cp ../sys/windows/Makefile.mingw32* .
mingw32-make -f Makefile.mingw32 clean
mingw32-make -f Makefile.mingw32 depend
mingw32-make -f Makefile.mingw32
Improvements:
Add $(USE_LUADLL) to release lua-5.4.3.dll, instead of link static
lua.lib into .exe files.
Add windres "--target" option, to fix the NetHackW.exe startup problem.
Add "-s" option to $(LDFLAGS) in release mode, to make exe/dll smaller.
Add $(CLEAN_DIR) and $(CLEAN_FILE) to track what to clean.
Remove *.tag, but use "order-only prerequisites" to make directory
before any '.o' is built.
Use make variables and functions to improve readability.
Each project has its own directory to hold object files, to fix the
interference problem between different projects, like NetHack.exe object
files were built with "-DTILES".
Add "-mconsole" option when linking NetHack.exe, to fix that sometimes
GetStdHandle returned with invalid handle error.
Add ".PHONY" statements.
Use "gcc -E -MM -MT" to implement semi-auto "Prerequisites Generating".
The stop_row and stop_col were off-by-one in some cases, leaving
black lines on the map when a window on top was closed.
Simplify the calculation by always going one row/col further,
ensuring previously covered area gets redrawn for sure.
This should not affect speed or resource usage noticeably these days.