Commit Graph
65 Commits
Author SHA1 Message Date
nhmall 3545374e9c internal self-recover fix and bones name buffers 2019-11-21 23:41:11 -05:00
nhmall 4a8b9ee26c merge fix 2019-11-18 19:21:50 -05:00
nhmall 47fb8e5c0e Merge branch 'NetHack-3.6' 2019-11-18 19:20:55 -05:00
nhmall 893fa4efa8 update nhusage output on Windows 2019-11-18 19:20:03 -05:00
nhmall 9470138324 Merge branch 'NetHack-3.6' 2019-11-13 01:08:33 -05:00
nhmall 2359a9820e prototype fix after Windows gcc complaint 2019-11-11 18:12:39 -05:00
nhmall 900a826e8e Merge branch 'NetHack-3.6' 2019-11-11 14:32:09 -05:00
nhmall 6dfbff9d4b --showpaths wasn't returning the paths if there was an error in a config file
Also,
Windows only: Introduces some environment variable substitution for paths
specified in a config file
2019-11-11 12:49:54 -05:00
nhmall bc69fc65d2 Merge branch 'NetHack-3.6' into bart-test 2019-11-11 11:27:50 -05:00
nhmall afec87a766 Merge branch 'NetHack-3.6' 2019-11-09 12:24:10 -05:00
nhmall c566c01f8d add command line option --showpaths
Add
	--showpaths
early option to show where NetHack is expecting to find certain files
without starting up a game. It exits afterwards.

Windows sample (for illustration only, locations may differ for you):
    Variable playground locations:
        [hackdir   ]="C:\Users\JohnDoe\NetHack\3.6\"
        [leveldir  ]="C:\Users\JohnDoe\AppData\Local\NetHack\3.6\"
        [savedir   ]="C:\Users\JohnDoe\AppData\Local\NetHack\3.6\"
        [bonesdir  ]="C:\ProgramData\NetHack\3.6\"
        [datadir   ]="C:\personal\nhdev\363\test\binary\"
        [scoredir  ]="C:\ProgramData\NetHack\3.6\"
        [lockdir   ]="C:\ProgramData\NetHack\3.6\"
        [sysconfdir]="C:\ProgramData\NetHack\3.6\"
        [configdir ]="C:\Users\JohnDoe\NetHack\3.6\"
        [troubledir]="C:\Users\JohnDoe\NetHack\3.6\"
    Your system configuration file (in sysconfdir):
        "C:\Users\JohnDoe\NetHack\3.6\sysconf"
    Your system symbols file (in sysconfdir):
        "C:\Users\JohnDoe\NetHack\3.6\symbols"
    Your personal configuration file (in configdir):
        "C:\Users\JohnDoe\NetHack\3.6\.nethackrc"

Linux (for illustration only, locations may differ for you):
    Your system configuration file:
        "/home/johndoe/nh/install/games/lib/nethackdir/sysconf"
    Your system symbols file:
        "/home/johndoe/nh/install/games/lib/nethackdir/symbols"
    Your personal configuration file:
        "/home/johndoe/.nethackrc"
2019-11-09 10:57:25 -05:00
nhmall c675b234d8 Merge branch 'NetHack-3.6' 2019-11-06 16:52:25 -05:00
nhmall e3b69ccc43 buffer size 2019-11-06 16:51:47 -05:00
nhmall 0494152aea Merge branch 'NetHack-3.6' 2019-11-06 16:45:43 -05:00
nhmall 88f1d2f365 don't hardcode the version id in windmain 2019-11-06 16:44:25 -05:00
Bart House d4ff00cd40 Updated windows directory paths to latest iteration of design. 2019-11-04 19:34:03 -08:00
Bart House 7c5a2adfa5 Lock TROUBLEPREFIX after parsing sysconf. 2019-11-03 14:07:11 -08:00
Bart House f0707fee6e More tweaks to how windows deals with directory paths. 2019-11-03 13:31:17 -08:00
nhmall ffec86b244 Merge branch 'NetHack-3.6' 2019-11-02 22:53:46 -04:00
Bart House 11018da6b8 Renamed configuration file for windows to .nethackrc.
Also adjusted name of template files populated during windows builds.
2019-11-02 19:11:26 -07:00
Bart House 4e11038871 Merge branch 'NetHack-3.6' 2019-11-02 11:40:19 -07:00
Bart House 33149eed0e Move is_desktop_bridge() api to win10 wrapper. 2019-11-02 11:39:11 -07:00
nhmall 6d385661c0 Merge branch 'NetHack-3.6' 2019-11-02 01:58:32 -04:00
nhmall 3587d8aee9 bump Windows supported version in mingw-w64 sys/winnt/Makefile.gcc
mingw-w64 sys/winnt/Makefile.gcc required a Windows version bump from
0x0501 to 0x0601 (XP level to Windows 7 level) during compile in
order for the mingw system header files to include some of the
needed support for recent Windows port changes.
2019-11-02 01:03:02 -04:00
nhmall 4b163e3d55 Revert "quiet a mingw warning"
This reverts commit e33dfed456.
2019-11-01 16:33:04 -04:00
Bart House d9d47c120b Merge branch 'NetHack-3.6' 2019-10-31 20:46:54 -07:00
nhmall e33dfed456 quiet a mingw warning 2019-10-31 19:43:59 -04:00
nhmall b377771849 Merge branch 'NetHack-3.6' 2019-10-31 12:26:27 -04: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 33d00cf0e4 attempt to get mingw building correctly after recent changes
make typedef of boolean match mingw header files
link with shell32 and ole32 as Makefile.msc now had to do
kludge some stuff missing from mingw headers in sys/winnt/windmain.c
2019-10-30 18:48:28 -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
Bart House 97ca83fd02 Merge branch 'master' into NetHack-3.7
# Conflicts:
#	src/pline.c
#	sys/winnt/windmain.c
#	win/tty/topl.c
#	win/win32/scripts/fuzzer/longtest.bat
#	win/win32/scripts/fuzzer/restore.bat
#	win/win32/scripts/fuzzer/runtill.bat
2019-07-14 23:50:54 -07:00
Bart House cd1b650fb7 Merge branch 'NetHack-3.6'
# Conflicts:
#	DEVEL/Developer.txt
#	include/config.h
#	include/decl.h
#	include/display.h
#	include/extern.h
#	include/global.h
#	include/hack.h
#	include/patchlevel.h
#	src/display.c
#	src/dothrow.c
#	src/makemon.c
#	src/monst.c
#	src/objnam.c
#	src/sp_lev.c
#	src/wield.c
#	src/zap.c
#	sys/share/pmatchregex.c
#	sys/winnt/Makefile.msc
2019-07-14 23:36:56 -07:00
Bart House 4c1c247028 Revert "Fuzzer improvements."
This reverts commit 435f1c4626.
2019-07-14 21:10:39 -07:00
nhmall bd9709ad77 remove STATIC_DCL, STATIC_OVL, STATIC_VAR, STATIC_PTR 2019-07-14 18:15:49 -04:00
nhmall a0c38bd76c remove STATIC_DCL, STATIC_OVL, STATIC_VAR, STATIC_PTR from sys/winnt 2019-07-14 17:30:26 -04:00
Bart House b5b2f6fc74 Tweaks to fuzzer batch scripts. 2019-07-14 13:39:58 -07:00
nhmall 041a9ad9c1 Merge branch 'master' into NetHack-3.7 2019-07-14 09:57:32 -04:00
nhmall ec1b77ff80 Merge branch 'NetHack-3.6' 2019-07-14 09:39:24 -04:00
Bart House 435f1c4626 Fuzzer improvements.
phase_of_moon and friday_13th determined using rn2() instead of local
time if fuzzing.  Don't reseed using init_random() if fuzzing.  Allow
set_random to be called outside of hacklib.  rn2_on_display_rng uses
rn2 if fuzzing so that we have a single source of random that we can
ensure is reproducible.  Implement rul() that returns a random unsigned
long.  Fix bug in fuzzer handling of ntposkey which would cause us to use
unitialized values for x and y.  Added command line arguments to allow
auto starting and stopping of fuzzer.  Add a logging facility for the
fuzzer to use to record activity.  Added some scripts used to automate
fuzzer testing on windows.
2019-07-14 00:20:09 -07:00
nhmall ba0f6ed47f updated files 2019-06-23 00:57:38 -04: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
nhmall 69f767ac48 Merge branch 'NetHack-3.6' 2019-05-11 21:58:56 -04:00
nhmall 24fa83e5dc Report of no error msg deliverd by NetHackw.exe for some startup issues 2019-05-11 21:55:27 -04:00
nhmall fa186b49a1 Merge branch 'NetHack-3.6.2' 2019-03-12 21:18:46 -04:00
nhmall 93201e9e24 first attempt at mingw w64 build for Windows 2019-03-12 21:14:43 -04:00
nhmall 00f2feb83d Merge branch 'NetHack-3.6.2' 2019-01-21 06:47:42 -05:00
nhmall a6c290399b Windows warning fix 2019-01-19 11:04:26 -05:00