* Add missing entry for include/tile.h to (top)/Files; also
add new entry for generated file util/tiletxt.c (Unix only);
* Add several missing entries for tile utility programs that
can be built by sys/unix/Makefile.utl to util/.gitignore;
* Update sys/unix/Makefile.utl to build 'tilemap' differently so
that it won't leave behind an unwanted subdirectory tree under OSX:
util/tilemap.dSYM/
util/tilemap.dSYM/Contents/
util/tilemap.dSYM/Contents/Info.plist
util/tilemap.dSYM/Contents/Resources/
util/tilemap.dSYM/Contents/Resources/DWARF/
util/tilemap.dSYM/Contents/Resources/DWARF/tilemap
It now generates util/tiletxt.c on the fly, to be compiled into
tiletxt.o, so that tilemap.c can be compiled in the ordinary
manner and tilemap.o can be kept around for dependency checking.
(Creating real source file win/share/tiletxt.c would be a little
bit cleaner, but it's effectively two lines long so seems silly
to be in the source distribution.) I looked to see whether I
could find a linker or compiler option to suppress that stuff but
failed. I'm sure something of the sort must exist but didn't
pursue it. Someday I might actually learn about how OSX works....
Changes to be committed:
modified: include/config.h
modified: include/extern.h
modified: include/flag.h
modified: include/global.h
modified: include/ntconf.h
modified: include/wintty.h
modified: src/cmd.c
modified: src/files.c
modified: src/options.c
modified: sys/share/pcmain.c
modified: sys/share/pcsys.c
modified: sys/share/pcunix.c
modified: sys/winnt/Makefile.gcc
modified: sys/winnt/Makefile.msc
modified: sys/winnt/nttty.c
new file: sys/winnt/stubs.c
modified: sys/winnt/winnt.c
modified: util/makedefs.c
modified: win/tty/wintty.c
Adjust the code and the command line Makefile so that
you no longer have to choose whether to build the tty
version NetHack.exe, or the gui version NetHackW.exe.
Both will now be built in a single 'nmake install' pass.
The previous USE_OLDARGS worked with gcc on Intel, but was inherently
unsafe. This method is completely safe, just obnoxiously intrusive.
It you disliked debugpline*(), you're bound to hate this....
It should now be randomly disabled for a 3rd of Gehennom, to make things
a tad more interesting there. It's also disabled in Baalzebub's lair,
to make things a little more interesting.
Still don't know why the beetle is disappearing.
Remove the requirement for <stdarg.h> that was introduced to lev_comp.
USE_STDARG still works. USE_OLDARGS required hackery but has been
tested and actually works, although I wouldn't trust it on platforms
where 'long' and 'char *' aren't the same size. USE_VARARGS didn't
require any hackery--aside from the conversion to core's pline code--
but has not been tested: <varargs.h> supplied with OSX won't compile,
with an #error directive that basically says "switch to <stdarg.h>".
I changed several printf formats of %i and %li to %d and %ld because
I'm not sure how widespread the 'i' variant was back in days of yore.
[TODO: avoid use of snprintf since pre-ANSI systems won't have it.]
-Add a boolean option menucolors to toggle menu color
-Add MENUCOLOR -config file option
TODO:
-Better support for win32
-Support more windowports
-Update Guidebook
-Allow changing menucolor lines in-game
Re-run nhgitset.pl to install.
"perldoc DEVEL/hooksdir/nhsub" for details. General docs still to come.
Quick notes:
- "git nhsub" lets you apply substitutions to a file without involving any
version control.
- When doing nhadd/nhcommit, the working directory WILL reflect the results
of the substitutions.
Let's see what this breaks.
Here in branch paxed-new_lev_comp-B (branched
from paxed-new_lev_comp) is a simple fix
for the strcmpi issue.
The bottom section of lev_main.c has a bunch
of forced linkages to names from NetHack etc.
#ifdef STRICT_REF_DEF
bunch of stuff
#endif
This change to lev_main should make everything
work for those that don't supply a compiler
library version of strcmpi()
With this patch, those people can just
add a -DSTRICT_REF_DEF to their compile line
for lev_main.c.
This would close the issue in a simple way,
and doesn't require linking in anything new to
the level compiler, or modifying any port's Makefiles etc.
There is a lot of code affected by this, and Pat Rankin correctly
observes that it would be better to store roguelike as a level flag
rather than just using Is_rogue_level. A note for the future.