change references from winnt to windows
rename sys/winnt to sys/windows move vs (visual studio) folder out of win/win32 and into sys/windows rename include/ntconf.h to include/windconf.h rename winnt.c to windsys.c place visual studio projects into individual subfolders. This will hopefully resolve GitHub issue #484 as well.
10
sys/windows/.gitattributes
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
Install.windows NHSUBST
|
||||
Makefile.* NHSUBST
|
||||
defaults.nh NHSUBST
|
||||
sysconf NHSUBST
|
||||
*.rc NHSUBST
|
||||
*.bat NHSUBST
|
||||
*.def NH_header=no
|
||||
* NH_filestag=(file%s_for_Windows_7/8.x/10_version)
|
||||
..files NH_filegenerated=nethack.ico
|
||||
nethack.ico NH_filesgentag=(file%s_generated_by_uudecode_at_compile_time)
|
||||
1
sys/windows/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
NetHack.ico
|
||||
235
sys/windows/.nethackrc.template
Normal file
@@ -0,0 +1,235 @@
|
||||
# NetHack 3.7 defaults.nh $NHDT-Date: 1524689357 2018/04/25 20:49:17 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.32 $
|
||||
# Copyright (c) 2006 by Michael Allison
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
# Sample config file for win32 NetHack
|
||||
# A '#' at the beginning of a line means the rest of the line is a comment.
|
||||
#
|
||||
# Some options MUST be set in this file, other options can be toggled while
|
||||
# playing. For a list of options available see the <opthelp.> file.
|
||||
#
|
||||
# To change the configuration, comment out the unwanted lines, and
|
||||
# uncomment the configuration you want.
|
||||
#
|
||||
# $NHDT-Date: 1524689357 2018/04/25 20:49:17 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.32 $
|
||||
|
||||
# *** OPTIONS ***
|
||||
#
|
||||
# Use the IBM character set rather than just plain ascii characters
|
||||
# for tty window-port.
|
||||
OPTIONS=symset:IBMGraphics_2,roguesymset:RogueEpyx
|
||||
|
||||
# Here is a suggested symbol set from Michael Feir,
|
||||
# for use by blind NetHack players
|
||||
#OPTIONS=symset:NHAccess,roguesymset:NHAccess
|
||||
|
||||
# Optional curses port interface
|
||||
#OPTIONS=windowtype:curses
|
||||
#
|
||||
# Keyboard handling
|
||||
# Different keyboard handlers can be loaded.
|
||||
# Default is nhdefkey.dll but you can override that.
|
||||
# Ray Chason's keyboard handler
|
||||
# OPTIONS=altkeyhandler:nhraykey.dll
|
||||
#
|
||||
# NetHack 3.4.0 keyboard handling
|
||||
# OPTIONS=altkeyhandler:nh340key.dll
|
||||
|
||||
# *** Personal Preferences ***
|
||||
# Some options to set personal preferences. Uncomment and change these to
|
||||
# suit your personal preference. If several people are to use the same
|
||||
# configuration, options like these should not be set.
|
||||
#
|
||||
#OPTIONS=name:Janet,role:Valkyrie,race:Human,gender:female,align:lawful
|
||||
#OPTIONS=dogname:Fido,catname:Morris,fruit:guava
|
||||
#OPTIONS=horsename:Silver
|
||||
|
||||
# Disable autopickup
|
||||
OPTIONS=!autopickup
|
||||
|
||||
# When autopickup is on, automatically pick up these types of objects
|
||||
#OPTIONS=pickup_types:$"=/!?+
|
||||
|
||||
#OPTIONS=packorder:")[%?+/=!(*0_`
|
||||
#OPTIONS=scores:10 top/2 around/own
|
||||
#OPTIONS=nolegacy,noverbose
|
||||
#OPTIONS=menustyle:traditional
|
||||
#OPTIONS=perm_invent
|
||||
|
||||
|
||||
# Highlight menu lines with different colors. You need to define the colors
|
||||
# with MENUCOLOR lines.
|
||||
# Toggle menucolor use on or off
|
||||
OPTIONS=menucolors
|
||||
# Define color used for a certain menu line. Format is
|
||||
# MENUCOLOR="regular expression"=color
|
||||
# or
|
||||
# MENUCOLOR="regular expression"=color&attribute
|
||||
# Show all blessed items in green
|
||||
MENUCOLOR=" blessed " = green
|
||||
# Show all holy water in green
|
||||
MENUCOLOR=" holy " = green
|
||||
# Show all cursed items in red
|
||||
MENUCOLOR=" cursed " = red
|
||||
# Show all unholy water in red
|
||||
MENUCOLOR=" unholy " = red
|
||||
# Show all cursed worn items in orange and underlined
|
||||
MENUCOLOR=" cursed .* (being worn)" = orange&underline
|
||||
|
||||
|
||||
|
||||
# General options. You might also set "silent" so as not to attract
|
||||
# the boss's attention.
|
||||
#
|
||||
# number_pad option can have an optional value of 0 (off), 1 (on),
|
||||
# or 2(on,legacy-mode) which causes 5='g', alt-5='G', alt-0='I'
|
||||
OPTIONS=time,noshowexp,number_pad:2,lit_corridor,mouse_support:1
|
||||
|
||||
# Make commands that ask for an inventory item pop up a menu
|
||||
OPTIONS=force_invmenu
|
||||
|
||||
#
|
||||
# If you want to get rid of "use #quit to quit..." use:
|
||||
OPTIONS=suppress_alert:3.3.1
|
||||
#
|
||||
# Note: the rest_on_space in the next line may not be
|
||||
# appropriate for a beginning NetHack player, since
|
||||
# it could result in use of a turn unintentionally.
|
||||
# If you're new to NetHack, leave it commented it out.
|
||||
#OPTIONS=rest_on_space
|
||||
#
|
||||
# Set some options to control graphical window-port (these will
|
||||
# be safely and silently ignored by the tty port)
|
||||
#
|
||||
# Map window settings
|
||||
# possible map_mode options include: tiles|ascii4x6|ascii6x8|ascii8x8|ascii16x8|
|
||||
# ascii7x12|ascii8x12|ascii16x12|ascii12x16|
|
||||
# ascii10x18|fit_to_screen|ascii_fit_to_screen|
|
||||
# tiles_fit_to_screen
|
||||
OPTIONS=map_mode:tiles,scroll_margin:10
|
||||
|
||||
# Message window settings
|
||||
OPTIONS=font_message:Arial,font_size_message:14,align_message:top
|
||||
|
||||
# Menu settings
|
||||
OPTIONS=font_menu:Arial,font_size_menu:14
|
||||
|
||||
# Text settings
|
||||
OPTIONS=font_text:Courier New,font_size_text:14
|
||||
|
||||
# Status window settings
|
||||
OPTIONS=font_status:Courier New,font_size_status:14
|
||||
|
||||
# Other
|
||||
OPTIONS=hilite_pet,!toptenwin
|
||||
#OPTIONS=!splash_screen,player_selection:prompts
|
||||
|
||||
# Status/message window colors
|
||||
# Possible color options include:
|
||||
# six digit hexadecimal RGB color value ("#8F8F8F"), black, red, green, brown,
|
||||
# blue, magenta, cyan, gray (or grey), orange, brightgreen, yellow, brightblue,
|
||||
# brightmagenta, brightcyan, white, trueblack, purple, silver, maroon, fuchsia,
|
||||
# lime, olive, navy, teal, aqua, activeborder, activecaption, appworkspace,
|
||||
# background, btnface, btnshadow, btntext, captiontext, graytext, highlight,
|
||||
# highlighttext, inactiveborder, inactivecaption, menu, menutext, scrollbar,
|
||||
# window, windowframe, windowtext.
|
||||
#OPTIONS=windowcolors:status windowtext/window message windowtext/window
|
||||
|
||||
# "Nethack mode" colors
|
||||
OPTIONS=windowcolors:status white/#000000 message white/#000000 text white/#000000 menu white/#000000 menutext white/#000000
|
||||
OPTIONS=vary_msgcount:4
|
||||
|
||||
# *** LOCATIONS ***
|
||||
# IMPORTANT: If you change any of these locations, the directories they
|
||||
# point at must exist. NetHack will not create them for you.
|
||||
#
|
||||
# The location that documentation and helps files are placed
|
||||
#HACKDIR=c:\User\USERNAME\NetHack\3.6
|
||||
#
|
||||
# The location that level files in progress are stored (writeable)
|
||||
#LEVELDIR=c:\User\USERNAME\AppData\Local\NetHack\3.6
|
||||
#
|
||||
# The location where saved games are kept (writeable)
|
||||
#SAVEDIR=c:\User\USERNAME\AppData\Local\NetHack\3.6
|
||||
#
|
||||
# The location that bones files are kept (writeable)
|
||||
#BONESDIR=c:\ProgramData\NetHack\3.6
|
||||
#
|
||||
# The location that score files are kept (writeable)
|
||||
#SCOREDIR=c:\ProgramData\NetHack\3.6
|
||||
#
|
||||
# The location that file synchronization locks are stored (writeable)
|
||||
#LOCKDIR=c:\ProgramData\NetHack\3.6
|
||||
#
|
||||
|
||||
# Finnish keyboards might need these modifications uncommented.
|
||||
# For \, @, $, [, |
|
||||
#OPTIONS=subkeyvalue:171/92
|
||||
#OPTIONS=subkeyvalue:178/64
|
||||
#OPTIONS=subkeyvalue:180/36
|
||||
#OPTIONS=subkeyvalue:184/91
|
||||
#OPTIONS=subkeyvalue:188/124
|
||||
|
||||
#
|
||||
# Some versions of Windows allow you to adjust the win32 console port
|
||||
# colors using R-G-B settings.
|
||||
#
|
||||
#OPTIONS=palette:black-0-0-0
|
||||
#OPTIONS=palette:red-210-0-0
|
||||
#OPTIONS=palette:green-80-200-0
|
||||
#OPTIONS=palette:brown-180-100-0
|
||||
#OPTIONS=palette:blue-0-0-200
|
||||
#OPTIONS=palette:magenta-128-0-128
|
||||
#OPTIONS=palette:cyan-50-180-180
|
||||
#OPTIONS=palette:gray-192-192-192
|
||||
#OPTIONS=palette:dark gray-100-100-100
|
||||
#OPTIONS=palette:orange-255-128-0
|
||||
#OPTIONS=palette:bright green-0-255-0
|
||||
#OPTIONS=palette:yellow-255-255-0
|
||||
#OPTIONS=palette:bright blue-100-100-240
|
||||
#OPTIONS=palette:bright magenta-255-0-255
|
||||
#OPTIONS=palette:bright cyan-0-255-255
|
||||
#OPTIONS=palette:white-255-255-255
|
||||
|
||||
|
||||
|
||||
# Status hilites
|
||||
OPTIONS=statushilites
|
||||
# HP
|
||||
OPTIONS=hitpointbar
|
||||
OPTIONS=hilite_status:hitpoints/100%/gray&normal
|
||||
OPTIONS=hilite_status:hitpoints/<100%/green&normal
|
||||
OPTIONS=hilite_status:hitpoints/<66%/yellow&normal
|
||||
OPTIONS=hilite_status:hitpoints/<50%/orange&normal
|
||||
OPTIONS=hilite_status:hitpoints/<33%/red&bold
|
||||
OPTIONS=hilite_status:hitpoints/<15%/red&inverse
|
||||
|
||||
## Pw
|
||||
OPTIONS=hilite_status:power/100%/gray&normal
|
||||
OPTIONS=hilite_status:power/<100%/green&normal
|
||||
OPTIONS=hilite_status:power/<66%/yellow&normal
|
||||
OPTIONS=hilite_status:power/<50%/orange&normal
|
||||
OPTIONS=hilite_status:power/<33%/red&bold
|
||||
|
||||
## Carry
|
||||
OPTIONS=hilite_status:cap/burdened/yellow/stressed/orange/strained/red&bold/overtaxed/red&inverse/overloaded/red&inverse&blink
|
||||
|
||||
## Hunger
|
||||
OPTIONS=hilite_status:hunger/satiated/yellow/hungry/orange/weak/red&bold/fainting/red&inverse/fainted/red&inverse&blink
|
||||
|
||||
## Mental
|
||||
OPTIONS=hilite_status:condition/hallu/yellow
|
||||
OPTIONS=hilite_status:condition/conf/orange
|
||||
OPTIONS=hilite_status:condition/stun/red&bold
|
||||
|
||||
## Health
|
||||
OPTIONS=hilite_status:condition/termill/red&inverse
|
||||
OPTIONS=hilite_status:condition/foodpois/red&inverse
|
||||
OPTIONS=hilite_status:condition/slime/red&inverse
|
||||
|
||||
# gold
|
||||
OPTIONS=hilite_status:gold/up/yellow/down/brown
|
||||
|
||||
# St, Dx, Co, In, Wi, Ch
|
||||
OPTIONS=hilite_status:characteristics/up/green/down/red
|
||||
|
||||
323
sys/windows/Install.windows
Normal file
@@ -0,0 +1,323 @@
|
||||
Copyright (c) NetHack Development Team 1990-2021
|
||||
NetHack may be freely redistributed. See license for details.
|
||||
==============================================================
|
||||
Instructions for compiling and installing
|
||||
NetHack 3.7 on a Windows system
|
||||
(Windows 7/8.x/10 or later only)
|
||||
==============================================================
|
||||
Last revision: $NHDT-Date: 1594155895 2020/07/07 21:04:55 $
|
||||
|
||||
Credit for the porting of NetHack to the Win32 Console Subsystem goes to
|
||||
the NT Porting Team started by Michael Allison.
|
||||
|
||||
Credit for the Win32 Graphical version of NetHack (aka "NetHack for
|
||||
Windows" or NetHackW) goes to Alex Kompel who initially developed and
|
||||
contributed the port.
|
||||
|
||||
Alex Kompel, Dion Nicolaas, Yitzhak Sapir, Derek S. Ray, Michael Allison,
|
||||
Pasi Kallinen, Bart House, and Janet Walz contributed to the maintainance
|
||||
of the tty and graphical windows versions of NetHack 3.7.0.
|
||||
|
||||
You can build a TTY version of NetHack and a Windows Graphical
|
||||
version. You can use one of the following build environments:
|
||||
|
||||
o A copy of Microsoft Visual Studio 2017 Community Edition or
|
||||
a copy of Microsoft Visual Studio 2019 Community Edition
|
||||
|
||||
OR
|
||||
|
||||
o (Untested for 3.7) A copy of MinGW. MinGW is a collection of header
|
||||
files and import libraries with which native Windows32 programs
|
||||
can be built; the MinGW distribution contains the GNU Compiler
|
||||
Collection. You can download MinGW at
|
||||
http://www.mingw.org/
|
||||
Earlier versions of MinGW will not allow you to build the Windows
|
||||
Graphical version.
|
||||
|
||||
/---------------------------------------------\
|
||||
| Directories for a Win32 NetHack build |
|
||||
\---------------------------------------------/
|
||||
|
||||
|
||||
(NetHack-top)
|
||||
|
|
||||
+-----+-----+------+------+-----+-------------+--------~------+
|
||||
| | | | | | | |
|
||||
util dat doc include src sys win lib (external)
|
||||
| | |
|
||||
+------+ +------+ +-----------+
|
||||
| | | | | |
|
||||
share windows tty win32 Lua-5.4.3 pdcurses
|
||||
|
|
||||
vs
|
||||
|
||||
/--------------------------------------------------------\
|
||||
| Building And Running Using Visual Studio 2017 or 2019 |
|
||||
\--------------------------------------------------------/
|
||||
|
||||
Before proceeding, please obtain the lua-5.4.3 sources and copy them to
|
||||
the new directory lib\lua-5.4.3\src. This source can be obtained either from
|
||||
http://www.lua.org/ftp/lua-5.4.3.tar.gz or from the git hub mirror
|
||||
https://github.com/lua/lua.git using the tag 'v5.4.3'. The build expects
|
||||
to find lua files such as 'lua.h' at 'lib\lua-5.4.3\src\lua.h'.
|
||||
|
||||
If you are NOT using Visual Studio 2017 or 2019 IDE, or you prefer to build
|
||||
using a Make utility and a Makefile proceed to "Building Using Make".
|
||||
|
||||
When using either Visual Studio 2017 or 2019, you simply need to load the
|
||||
solution file within the IDE, build the solution and run the version
|
||||
of NetHack you wish to run.
|
||||
|
||||
The Visual Studio NetHack solution file can be found here:
|
||||
win\win32\vs\NetHack.sln
|
||||
|
||||
Before executing the steps to build listed in the next paragraph,
|
||||
decide if you want to include optional curses window-port. See
|
||||
the note just below entitled "Optional curses window-port support."
|
||||
|
||||
So the steps are:
|
||||
1. Launch the IDE.
|
||||
2. Open the appropriate solution file.
|
||||
3. Select the build configuration you wish to use (Release, Debug, etc.).
|
||||
4. From the build menu, select build solution.
|
||||
5. Type F5 to start debugging.
|
||||
|
||||
You can also build all the projects for all platforms and configurations
|
||||
using a "build.bat" batch file found in the same directory as the solution.
|
||||
|
||||
Open a developer command prompt for the version of Visual Studio you are
|
||||
using. Change to the directory win\win32\vs and run "build.bat".
|
||||
|
||||
* Optional curses window-port support *
|
||||
|
||||
Since 3.6.2, the community patch for a window-port that uses curses has been
|
||||
incorporated into the NetHack source code tree. That window-port, which
|
||||
evolved from work originally done by Karl Garrison, has been used in several
|
||||
NetHack variants and on nethack.alt.org and on www.hardfought.org/nethack/.
|
||||
|
||||
If you want to include the curses window-port support in your Visual Studio
|
||||
build, you will have to first obtain the PDCurses sources from
|
||||
https://github.com/wmcbrine/PDCurses
|
||||
and have them available prior to building NetHack. There are two ways to
|
||||
enable curses window-port support during the VS build: Either set the
|
||||
environment variable PDCURSES to a folder containing a PDCurses
|
||||
repository/source-tree
|
||||
OR
|
||||
Place the PDCurses folder alongside the NetHack source repository prior
|
||||
to proceeding with steps 1 through 5 above.
|
||||
|
||||
|
||||
/-------------------------------------------\
|
||||
| Building From the Command Line Using Make |
|
||||
\-------------------------------------------/
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
-- Beginning of prerequisite step --
|
||||
|
||||
The first step in building either version of NetHack via Makefile is to
|
||||
execute sys\windows\nhsetup.bat to move some files to their required locations.
|
||||
|
||||
From the command prompt:
|
||||
cd sys\windows
|
||||
nhsetup
|
||||
|
||||
From a Windows explorer window:
|
||||
double-click on nhsetup.bat
|
||||
|
||||
If you wish to build from the command line, proceed to "BUILDING FROM
|
||||
THE COMMAND LINE."
|
||||
|
||||
-- end of prerequisite step --
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
Two different versions of NetHack will be built for Windows from the
|
||||
command line using the Makefile approach:
|
||||
A tty port utilizing the Win32 Console I/O subsystem, Console
|
||||
NetHack;
|
||||
A Win32 native port built on the Windows API, Graphical NetHack or
|
||||
NetHackW.
|
||||
|
||||
The executable for Console NetHack will be named NetHack.exe. The
|
||||
executable for Graphical NetHack will be named NetHackW.exe. The
|
||||
Makefile configuration will build both; NetHackW.exe and NetHack.exe
|
||||
will be able to use the same datafiles, save files and bones files.
|
||||
|
||||
Since the last official release of NetHack, compilers and computer
|
||||
architectures have evolved and you can now choose whether to build
|
||||
a 32-bit x86 version, or a 64-bit x64 version. The default Makefile
|
||||
is set up for a 32-bit x86 version, but that's only because it will
|
||||
run on the most number of existing Windows environments.
|
||||
|
||||
NetHack's save files and bones files in the 3.7.0 release have not yet
|
||||
evolved enough to allow them to interchange between the 32-bit version
|
||||
and the 64-bit version (or between different platforms). Hopefully
|
||||
that will change in an upcoming release.
|
||||
|
||||
I. Dispelling the Myths:
|
||||
|
||||
Compiling NetHack for Windows is not as easy as it sounds, nor as hard
|
||||
as it looks, however it will behoove you to read this entire section
|
||||
through before beginning the task.
|
||||
|
||||
We have provided a Makefile for each of the following compilers:
|
||||
|
||||
o Microsoft Visual Studio 2017 or 2019 C++ Compiler
|
||||
The Community Editions are fine and available at no cost
|
||||
o MinGW 2.0 (with GCC 3.2)
|
||||
|
||||
The Microsoft Visual Studio makefile was created for use
|
||||
with MS NMAKE which is provided with the Microsoft compiler.
|
||||
The supplied Makefile may work with earlier versions of the Microsoft
|
||||
compiler, but that has not been tested.
|
||||
|
||||
The GCC Makefile was created for use with GNU Make version 3.79.1,
|
||||
which comes with the MinGW package.
|
||||
|
||||
You may find it useful to obtain copies of lex (flex) and yacc
|
||||
(bison, or byacc). While not strictly necessary to compile nethack,
|
||||
they are required should you desire to make any changes to the level
|
||||
and dungeon compilers.
|
||||
|
||||
II. To compile your copy of NetHack on a Windows machine:
|
||||
|
||||
Setting Up
|
||||
|
||||
1. It almost goes without saying that you should make sure that your
|
||||
tools are set up and running correctly. That includes ensuring that
|
||||
all the necessary environment variables for the compiler environment
|
||||
are set correctly.
|
||||
|
||||
Change your current directory to the src subfolder of the nethack
|
||||
source tree.
|
||||
cd src
|
||||
|
||||
GCC
|
||||
|
||||
For the GCC Makefile, add <mingw>\bin to your path, where <mingw>
|
||||
is your MinGW root directory.).
|
||||
|
||||
Change your current directory to src subfolder of the nethack
|
||||
source tree.
|
||||
cd src
|
||||
|
||||
2. Since 3.6.2, the community patch for an optional curses window-port
|
||||
has been incorporated into the NetHack source code tree. That
|
||||
window-port, which evolved from work originally done by Karl Garrison,
|
||||
has been used in several NetHack variants and on nethack.alt.org and
|
||||
on www.hardfought.org/nethack/. The optional curses window-port is
|
||||
available for Windows, Mac OS X, and Unix (and also DOS).
|
||||
|
||||
If you want to include the optional curses window-port support in your
|
||||
command line Makefile build, you will have to first obtain the
|
||||
PDCurses sources from https://github.com/wmcbrine/PDCurses
|
||||
and have that source code tree available prior to building NetHack.
|
||||
Edit your Makefile and in Question 4 of the four decisions you can
|
||||
make in there, uncomment these two lines:
|
||||
ADD_CURSES=Y
|
||||
PDCURSES_TOP=..\..\pdcurses
|
||||
|
||||
Adjust the PDCURSES_TOP macro so that it points to the correct
|
||||
location for the top of the PDCurses source tree if it differs from
|
||||
the path shown.
|
||||
|
||||
3. Make sure all the necessary files are in the appropriate directory
|
||||
structure. You should have a main NetHack top directory with
|
||||
subdirectories dat, doc, include, src, sys\share, sys\windows,
|
||||
win\tty, util.
|
||||
|
||||
If you are including the optional Curses window port into your
|
||||
build,then you will need the top of the PDCurses sources in a
|
||||
folder parallel to the top of the NetHack folder (or you will need
|
||||
to change the value of the PDCURSES_TOP macro in the Makefile to
|
||||
specify the appropriate location.
|
||||
|
||||
(You can check the file "Files" in your top level directory for a
|
||||
more complete listing of what file is in which directory.)
|
||||
|
||||
If you downloaded or ftp'd the sources from a UNIX system, the lines
|
||||
will probably end in UNIX-style newlines, instead of the carriage
|
||||
return and line feed pairs used by Windows. Some programs have
|
||||
trouble with them, so you may need to convert them. The compiler
|
||||
should not have any problems with them however.
|
||||
|
||||
4. Edit your Makefile if you wish, but it is not required unless
|
||||
you are altering the build options.
|
||||
|
||||
If you are recompiling after patching your sources, or if you got
|
||||
your files from somewhere other than the official distribution,
|
||||
"touch makedefs.c" to ensure that certain files (onames.h and pm.h)
|
||||
are remade, lest potentially troublesome timestamps fool your make
|
||||
(or nmake) utility.
|
||||
|
||||
Compiling
|
||||
|
||||
5. Now that everything is set up...
|
||||
|
||||
For the Visual Studio compiler, as mentioned above, you should now be
|
||||
at the command prompt to carry out the build and your current
|
||||
directory should be the src subdirectory in the NetHack source tree.
|
||||
|
||||
In the src subdirectory, issue this command:
|
||||
nmake install
|
||||
|
||||
For GCC:
|
||||
Change your current directory to the NetHack src directory.
|
||||
Issue this command:
|
||||
mingw32-make -f Makefile.gcc install
|
||||
|
||||
If you get any errors along the way then something has not been set
|
||||
up correctly. The time it takes to compile depends on your
|
||||
particular machine of course, but you should be able to go for lunch
|
||||
and return to find everything finished. The less memory, and slower
|
||||
your machine, the longer the lunch you may take. :-)
|
||||
|
||||
In any case, it is likely that the command prompt window where you
|
||||
are doing the compiling will be occupied for a while. If all goes
|
||||
well, you will get an NetHack executable.
|
||||
|
||||
Notes:
|
||||
|
||||
1. To install an update of NetHack after changing something, change
|
||||
your current directory to src and issue the appropriate command for
|
||||
your compiler:
|
||||
|
||||
For Microsoft compiler:
|
||||
nmake
|
||||
|
||||
For GCC:
|
||||
mingw32-make -f Makefile.gcc
|
||||
|
||||
If you add, delete, or reorder monsters or objects, or you change
|
||||
the format of saved level files, delete any save and bones files.
|
||||
(Trying to use such files sometimes produces amusing confusions on
|
||||
the game's part, but usually crashes.)
|
||||
|
||||
If you made changes to any of the level compiler software, you may
|
||||
have to delete dgn_flex.c, dgn_yacc.c, lev_flex.c, and lev_yacc.c
|
||||
from the util directory to ensure that they are remade.
|
||||
|
||||
2. Depending on the build and compiler and tools used above, the
|
||||
executable produced by the TTY build is either:
|
||||
- a 32-bit (x86), flat-address space, non-overlayed .exe file,
|
||||
which should run on any recent Win32 environment.
|
||||
or
|
||||
- a 64-bit (x64) .exe file,
|
||||
which should run on any 64-bit Windows O/S.
|
||||
|
||||
Note that saved games are NOT compatible between the 32-bit and the
|
||||
64-bit versions at this time.
|
||||
|
||||
NetHack.exe is the tty version. NetHackW.exe is the graphical version.
|
||||
Play NetHack.
|
||||
|
||||
PROBLEMS
|
||||
|
||||
If you discover a bug and wish to report it, or if you have comments
|
||||
or suggestions we recommend using our "Contact Us" web page at:
|
||||
http://www.nethack.org/common/contact.html
|
||||
|
||||
If you don't have access to the web, or you want to send us a patch
|
||||
to the NetHack source code feel free to drop us a line c/o:
|
||||
DevTeam (at) nethack.org
|
||||
|
||||
Happy NetHacking!
|
||||
1718
sys/windows/Makefile.gcc
Normal file
2076
sys/windows/Makefile.msc
Normal file
49
sys/windows/console.rc
Normal file
@@ -0,0 +1,49 @@
|
||||
/* NetHack 3.7 console.rc $NHDT-Date: 1596498311 2020/08/03 23:45:11 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.14 $ */
|
||||
/* Copyright (c) Yitzhak Sapir, 2002. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
#include "windows.h"
|
||||
|
||||
1 ICON DISCARDABLE "NetHack.ICO"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 3,7,0,0
|
||||
PRODUCTVERSION 3,7,0,0
|
||||
FILEFLAGSMASK 0x1fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x9L
|
||||
#else
|
||||
FILEFLAGS 0x8L
|
||||
#endif
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x0L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "FileDescription", "NetHack for Windows - TTY Interface\0"
|
||||
VALUE "FileVersion", "3.7.0\0"
|
||||
VALUE "InternalName", "NetHack\0"
|
||||
VALUE "LegalCopyright", "Copyright (C) 1985 - 2020. By Stichting Mathematisch Centrum and M. Stephenson. See license for details.\0"
|
||||
VALUE "OriginalFilename", "NetHack.exe\0"
|
||||
VALUE "PrivateBuild", "050102\0"
|
||||
VALUE "ProductName", "NetHack\0"
|
||||
VALUE "ProductVersion", "3.7.0\0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/*console.rc*/
|
||||
|
||||
1999
sys/windows/consoletty.c
Normal file
9
sys/windows/nethack.def
Normal file
@@ -0,0 +1,9 @@
|
||||
NAME NETHACK
|
||||
DESCRIPTION 'NetHack 3.7.0 for Windows'
|
||||
EXETYPE WINDOWS
|
||||
STUB 'WINSTUB.EXE'
|
||||
CODE PRELOAD MOVEABLE DISCARDABLE
|
||||
DATA PRELOAD MOVEABLE MULTIPLE
|
||||
HEAPSIZE 4096
|
||||
STACKSIZE 9216
|
||||
EXPORTS WndProc
|
||||
353
sys/windows/nh340key.c
Normal file
@@ -0,0 +1,353 @@
|
||||
/* NetHack 3.7 nh340key.c $NHDT-Date: 1596498312 2020/08/03 23:45:12 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.16 $ */
|
||||
/* Copyright (c) NetHack PC Development Team 2003 */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
/*
|
||||
* This is the NetHack keystroke processing from NetHack 3.4.0.
|
||||
* It can be built as a run-time loadable dll (nh340key.dll),
|
||||
* placed in the same directory as the nethack.exe executable,
|
||||
* and loaded by specifying OPTIONS=altkeyhandler:nh340key
|
||||
* in defaults.nh
|
||||
*/
|
||||
|
||||
static char where_to_get_source[] = "http://www.nethack.org/";
|
||||
static char author[] = "The NetHack Development Team";
|
||||
|
||||
#include "win32api.h"
|
||||
#include "hack.h"
|
||||
#include "wintty.h"
|
||||
|
||||
extern HANDLE hConIn;
|
||||
extern INPUT_RECORD ir;
|
||||
char dllname[512];
|
||||
char *shortdllname;
|
||||
|
||||
int __declspec(dllexport) __stdcall ProcessKeystroke(HANDLE hConIn,
|
||||
INPUT_RECORD *ir, boolean *valid, boolean numberpad, int portdebug);
|
||||
|
||||
int WINAPI
|
||||
DllMain(HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
|
||||
{
|
||||
char dlltmpname[512];
|
||||
char *tmp = dlltmpname, *tmp2;
|
||||
*(tmp + GetModuleFileName(hInstance, tmp, 511)) = '\0';
|
||||
(void) strcpy(dllname, tmp);
|
||||
tmp2 = strrchr(dllname, '\\');
|
||||
if (tmp2) {
|
||||
tmp2++;
|
||||
shortdllname = tmp2;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Keyboard translation tables.
|
||||
* (Adopted from the MSDOS port)
|
||||
*/
|
||||
|
||||
#define KEYPADLO 0x47
|
||||
#define KEYPADHI 0x53
|
||||
|
||||
#define PADKEYS (KEYPADHI - KEYPADLO + 1)
|
||||
#define iskeypad(x) (KEYPADLO <= (x) && (x) <= KEYPADHI)
|
||||
|
||||
#ifdef QWERTZ_SUPPORT
|
||||
/* when 'numberpad' is 0 and Cmd.swap_yz is True
|
||||
(signaled by setting 0x10 on boolean numpad argument)
|
||||
treat keypress of numpad 7 as 'z' rather than 'y' */
|
||||
static boolean qwertz = FALSE;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Keypad keys are translated to the normal values below.
|
||||
* Shifted keypad keys are translated to the
|
||||
* shift values below.
|
||||
*/
|
||||
|
||||
static const struct pad {
|
||||
uchar normal, shift, cntrl;
|
||||
} keypad[PADKEYS] =
|
||||
{
|
||||
{ 'y', 'Y', C('y') }, /* 7 */
|
||||
{ 'k', 'K', C('k') }, /* 8 */
|
||||
{ 'u', 'U', C('u') }, /* 9 */
|
||||
{ 'm', C('p'), C('p') }, /* - */
|
||||
{ 'h', 'H', C('h') }, /* 4 */
|
||||
{ 'g', 'G', 'g' }, /* 5 */
|
||||
{ 'l', 'L', C('l') }, /* 6 */
|
||||
{ '+', 'P', C('p') }, /* + */
|
||||
{ 'b', 'B', C('b') }, /* 1 */
|
||||
{ 'j', 'J', C('j') }, /* 2 */
|
||||
{ 'n', 'N', C('n') }, /* 3 */
|
||||
{ 'i', 'I', C('i') }, /* Ins */
|
||||
{ '.', ':', ':' } /* Del */
|
||||
},
|
||||
numpad[PADKEYS] = {
|
||||
{ '7', M('7'), '7' }, /* 7 */
|
||||
{ '8', M('8'), '8' }, /* 8 */
|
||||
{ '9', M('9'), '9' }, /* 9 */
|
||||
{ 'm', C('p'), C('p') }, /* - */
|
||||
{ '4', M('4'), '4' }, /* 4 */
|
||||
{ 'g', 'G', 'g' }, /* 5 */
|
||||
{ '6', M('6'), '6' }, /* 6 */
|
||||
{ '+', 'P', C('p') }, /* + */
|
||||
{ '1', M('1'), '1' }, /* 1 */
|
||||
{ '2', M('2'), '2' }, /* 2 */
|
||||
{ '3', M('3'), '3' }, /* 3 */
|
||||
{ 'i', 'I', C('i') }, /* Ins */
|
||||
{ '.', ':', ':' } /* Del */
|
||||
};
|
||||
|
||||
#define inmap(x, vk) (((x) > 'A' && (x) < 'Z') || (vk) == 0xBF || (x) == '2')
|
||||
|
||||
int __declspec(dllexport) __stdcall
|
||||
ProcessKeystroke(
|
||||
HANDLE hConIn,
|
||||
INPUT_RECORD *ir,
|
||||
boolean *valid,
|
||||
boolean numberpad,
|
||||
int portdebug)
|
||||
{
|
||||
int keycode, vk;
|
||||
unsigned char ch, pre_ch;
|
||||
unsigned short int scan;
|
||||
unsigned long shiftstate;
|
||||
int altseq = 0;
|
||||
const struct pad *kpad;
|
||||
|
||||
#ifdef QWERTZ_SUPPORT
|
||||
if (numberpad & 0x10) {
|
||||
numberpad &= ~0x10;
|
||||
qwertz = TRUE;
|
||||
} else {
|
||||
qwertz = FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
shiftstate = 0L;
|
||||
ch = pre_ch = ir->Event.KeyEvent.uChar.AsciiChar;
|
||||
scan = ir->Event.KeyEvent.wVirtualScanCode;
|
||||
vk = ir->Event.KeyEvent.wVirtualKeyCode;
|
||||
keycode = MapVirtualKey(vk, 2);
|
||||
shiftstate = ir->Event.KeyEvent.dwControlKeyState;
|
||||
|
||||
if (shiftstate & (LEFT_ALT_PRESSED | RIGHT_ALT_PRESSED)) {
|
||||
if (ch || inmap(keycode, vk))
|
||||
altseq = 1;
|
||||
else
|
||||
altseq = -1; /* invalid altseq */
|
||||
}
|
||||
if (ch || (iskeypad(scan)) || (altseq > 0))
|
||||
*valid = TRUE;
|
||||
/* if (!valid) return 0; */
|
||||
/*
|
||||
* shiftstate can be checked to see if various special
|
||||
* keys were pressed at the same time as the key.
|
||||
* Currently we are using the ALT & SHIFT & CONTROLS.
|
||||
*
|
||||
* RIGHT_ALT_PRESSED, LEFT_ALT_PRESSED,
|
||||
* RIGHT_CTRL_PRESSED, LEFT_CTRL_PRESSED,
|
||||
* SHIFT_PRESSED,NUMLOCK_ON, SCROLLLOCK_ON,
|
||||
* CAPSLOCK_ON, ENHANCED_KEY
|
||||
*
|
||||
* are all valid bit masks to use on shiftstate.
|
||||
* eg. (shiftstate & LEFT_CTRL_PRESSED) is true if the
|
||||
* left control key was pressed with the keystroke.
|
||||
*/
|
||||
if (iskeypad(scan)) {
|
||||
kpad = numberpad ? numpad : keypad;
|
||||
if (shiftstate & SHIFT_PRESSED) {
|
||||
ch = kpad[scan - KEYPADLO].shift;
|
||||
} else if (shiftstate & (LEFT_CTRL_PRESSED | RIGHT_CTRL_PRESSED)) {
|
||||
ch = kpad[scan - KEYPADLO].cntrl;
|
||||
} else {
|
||||
ch = kpad[scan - KEYPADLO].normal;
|
||||
}
|
||||
#ifdef QWERTZ_SUPPORT
|
||||
/* OPTIONS=number_pad:-1 is for qwertz keyboard; for that setting,
|
||||
'numberpad' will be 0; core swaps y to zap, z to move northwest;
|
||||
we want numpad 7 to move northwest, so when qwertz is set,
|
||||
tell core that user who types numpad 7 typed z rather than y */
|
||||
if (qwertz && kpad[scan - KEYPADLO].normal == 'y')
|
||||
ch += 1; /* changes y to z, Y to Z, ^Y to ^Z */
|
||||
#endif /*QWERTZ_SUPPORT*/
|
||||
} else if (altseq > 0) { /* ALT sequence */
|
||||
if (vk == 0xBF)
|
||||
ch = M('?');
|
||||
else
|
||||
ch = M(tolower((uchar) keycode));
|
||||
}
|
||||
if (ch == '\r')
|
||||
ch = '\n';
|
||||
#ifdef PORT_DEBUG
|
||||
if (portdebug) {
|
||||
char buf[BUFSZ];
|
||||
Sprintf(buf,
|
||||
"PORTDEBUG (%s): ch=%u, sc=%u, vk=%d, sh=0x%lX (ESC to end)",
|
||||
shortdllname, ch, scan, vk, shiftstate);
|
||||
fprintf(stdout, "\n%s", buf);
|
||||
}
|
||||
#endif
|
||||
return ch;
|
||||
}
|
||||
|
||||
int __declspec(dllexport) __stdcall
|
||||
NHkbhit(
|
||||
HANDLE hConIn,
|
||||
INPUT_RECORD *ir)
|
||||
{
|
||||
int done = 0; /* true = "stop searching" */
|
||||
int retval; /* true = "we had a match" */
|
||||
DWORD count;
|
||||
unsigned short int scan;
|
||||
unsigned char ch;
|
||||
unsigned long shiftstate;
|
||||
int altseq = 0, keycode, vk;
|
||||
done = 0;
|
||||
retval = 0;
|
||||
while (!done) {
|
||||
count = 0;
|
||||
PeekConsoleInput(hConIn, ir, 1, &count);
|
||||
if (count > 0) {
|
||||
if (ir->EventType == KEY_EVENT && ir->Event.KeyEvent.bKeyDown) {
|
||||
ch = ir->Event.KeyEvent.uChar.AsciiChar;
|
||||
scan = ir->Event.KeyEvent.wVirtualScanCode;
|
||||
shiftstate = ir->Event.KeyEvent.dwControlKeyState;
|
||||
vk = ir->Event.KeyEvent.wVirtualKeyCode;
|
||||
keycode = MapVirtualKey(vk, 2);
|
||||
if (shiftstate & (LEFT_ALT_PRESSED | RIGHT_ALT_PRESSED)) {
|
||||
if (ch || inmap(keycode, vk))
|
||||
altseq = 1;
|
||||
else
|
||||
altseq = -1; /* invalid altseq */
|
||||
}
|
||||
if (ch || iskeypad(scan) || altseq) {
|
||||
done = 1; /* Stop looking */
|
||||
retval = 1; /* Found what we sought */
|
||||
} else {
|
||||
/* Strange Key event; let's purge it to avoid trouble */
|
||||
ReadConsoleInput(hConIn, ir, 1, &count);
|
||||
}
|
||||
|
||||
} else if ((ir->EventType == MOUSE_EVENT
|
||||
&& (ir->Event.MouseEvent.dwButtonState
|
||||
& MOUSEMASK))) {
|
||||
done = 1;
|
||||
retval = 1;
|
||||
}
|
||||
|
||||
else /* Discard it, it's an insignificant event */
|
||||
ReadConsoleInput(hConIn, ir, 1, &count);
|
||||
} else /* There are no events in console event queue */ {
|
||||
done = 1; /* Stop looking */
|
||||
retval = 0;
|
||||
}
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
int __declspec(dllexport) __stdcall CheckInput(
|
||||
HANDLE hConIn,
|
||||
INPUT_RECORD *ir,
|
||||
DWORD *count,
|
||||
boolean numpad,
|
||||
int mode,
|
||||
int *mod,
|
||||
coord *cc)
|
||||
{
|
||||
#if defined(SAFERHANGUP)
|
||||
DWORD dwWait;
|
||||
#endif
|
||||
int ch = 0;
|
||||
boolean valid = 0, done = 0;
|
||||
|
||||
#ifdef QWERTZ_SUPPORT
|
||||
if (numpad & 0x10) {
|
||||
numpad &= ~0x10;
|
||||
qwertz = TRUE;
|
||||
} else {
|
||||
qwertz = FALSE;
|
||||
}
|
||||
#endif
|
||||
while (!done) {
|
||||
#if defined(SAFERHANGUP)
|
||||
dwWait = WaitForSingleObjectEx(hConIn, // event object to wait for
|
||||
INFINITE, // waits indefinitely
|
||||
TRUE); // alertable wait enabled
|
||||
if (dwWait == WAIT_FAILED)
|
||||
return '\033';
|
||||
#endif
|
||||
ReadConsoleInput(hConIn, ir, 1, count);
|
||||
if (mode == 0) {
|
||||
if ((ir->EventType == KEY_EVENT) && ir->Event.KeyEvent.bKeyDown) {
|
||||
#ifdef QWERTZ_SUPPORT
|
||||
if (qwertz)
|
||||
numpad |= 0x10;
|
||||
#endif
|
||||
ch = ProcessKeystroke(hConIn, ir, &valid, numpad, 0);
|
||||
#ifdef QWERTZ_SUPPORT
|
||||
numpad &= ~0x10;
|
||||
#endif
|
||||
done = valid;
|
||||
}
|
||||
} else {
|
||||
if (count > 0) {
|
||||
if (ir->EventType == KEY_EVENT
|
||||
&& ir->Event.KeyEvent.bKeyDown) {
|
||||
ch = ProcessKeystroke(hConIn, ir, &valid, numpad, 0);
|
||||
if (valid)
|
||||
return ch;
|
||||
} else if (ir->EventType == MOUSE_EVENT) {
|
||||
if ((ir->Event.MouseEvent.dwEventFlags == 0)
|
||||
&& (ir->Event.MouseEvent.dwButtonState & MOUSEMASK)) {
|
||||
cc->x = ir->Event.MouseEvent.dwMousePosition.X + 1;
|
||||
cc->y = ir->Event.MouseEvent.dwMousePosition.Y - 1;
|
||||
|
||||
if (ir->Event.MouseEvent.dwButtonState & LEFTBUTTON)
|
||||
*mod = CLICK_1;
|
||||
else if (ir->Event.MouseEvent.dwButtonState
|
||||
& RIGHTBUTTON)
|
||||
*mod = CLICK_2;
|
||||
#if 0 /* middle button */
|
||||
else if (ir->Event.MouseEvent.dwButtonState & MIDBUTTON)
|
||||
*mod = CLICK_3;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
} else
|
||||
done = 1;
|
||||
}
|
||||
}
|
||||
return mode ? 0 : ch;
|
||||
}
|
||||
|
||||
int __declspec(dllexport) __stdcall
|
||||
SourceWhere(char** buf)
|
||||
{
|
||||
if (!buf)
|
||||
return 0;
|
||||
*buf = where_to_get_source;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int __declspec(dllexport) __stdcall
|
||||
SourceAuthor(char** buf)
|
||||
{
|
||||
if (!buf)
|
||||
return 0;
|
||||
*buf = author;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int __declspec(dllexport) __stdcall
|
||||
KeyHandlerName(char** buf, int full)
|
||||
{
|
||||
if (!buf)
|
||||
return 0;
|
||||
if (full)
|
||||
*buf = dllname;
|
||||
else
|
||||
*buf = shortdllname;
|
||||
return 1;
|
||||
}
|
||||
384
sys/windows/nhdefkey.c
Normal file
@@ -0,0 +1,384 @@
|
||||
/* NetHack 3.7 nhdefkey.c $NHDT-Date: 1596498313 2020/08/03 23:45:13 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.19 $ */
|
||||
/* Copyright (c) NetHack PC Development Team 2003 */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
/*
|
||||
* This is the default NetHack keystroke processing.
|
||||
* It can be built as a run-time loadable dll (nhdefkey.dll).
|
||||
* Alternative keystroke handlers can be built using the
|
||||
* entry points in this file as a template.
|
||||
*
|
||||
* Use the defaults.nh "altkeyhandler" option to set a
|
||||
* different dll name (without the ".DLL" extension) to
|
||||
* get different processing. Ensure that the dll referenced
|
||||
* in defaults.nh exists in the same directory as NetHack in
|
||||
* order for it to load successfully.
|
||||
*
|
||||
*/
|
||||
|
||||
static char where_to_get_source[] = "http://www.nethack.org/";
|
||||
static char author[] = "The NetHack Development Team";
|
||||
|
||||
#include "win32api.h"
|
||||
#include "hack.h"
|
||||
#include "wintty.h"
|
||||
|
||||
extern HANDLE hConIn;
|
||||
extern INPUT_RECORD ir;
|
||||
|
||||
char dllname[512];
|
||||
char *shortdllname;
|
||||
|
||||
int __declspec(dllexport) __stdcall ProcessKeystroke(HANDLE hConIn,
|
||||
INPUT_RECORD *ir, boolean *valid, boolean numberpad, int portdebug);
|
||||
|
||||
int WINAPI
|
||||
DllMain(HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
|
||||
{
|
||||
char dlltmpname[512];
|
||||
char *tmp = dlltmpname, *tmp2;
|
||||
*(tmp + GetModuleFileName(hInstance, tmp, 511)) = '\0';
|
||||
(void) strcpy(dllname, tmp);
|
||||
tmp2 = strrchr(dllname, '\\');
|
||||
if (tmp2) {
|
||||
tmp2++;
|
||||
shortdllname = tmp2;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Keyboard translation tables.
|
||||
* (Adopted from the MSDOS port)
|
||||
*/
|
||||
|
||||
#define KEYPADLO 0x47
|
||||
#define KEYPADHI 0x53
|
||||
|
||||
#define PADKEYS (KEYPADHI - KEYPADLO + 1)
|
||||
#define iskeypad(x) (KEYPADLO <= (x) && (x) <= KEYPADHI)
|
||||
|
||||
#ifdef QWERTZ_SUPPORT
|
||||
/* when 'numberpad' is 0 and Cmd.swap_yz is True
|
||||
(signaled by setting 0x10 on boolean numpad argument)
|
||||
treat keypress of numpad 7 as 'z' rather than 'y' */
|
||||
static boolean qwertz = FALSE;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Keypad keys are translated to the normal values below.
|
||||
* Shifted keypad keys are translated to the
|
||||
* shift values below.
|
||||
*/
|
||||
|
||||
static const struct pad {
|
||||
uchar normal, shift, cntrl;
|
||||
} keypad[PADKEYS] =
|
||||
{
|
||||
{ 'y', 'Y', C('y') }, /* 7 */
|
||||
{ 'k', 'K', C('k') }, /* 8 */
|
||||
{ 'u', 'U', C('u') }, /* 9 */
|
||||
{ 'm', C('p'), C('p') }, /* - */
|
||||
{ 'h', 'H', C('h') }, /* 4 */
|
||||
{ 'g', 'G', 'g' }, /* 5 */
|
||||
{ 'l', 'L', C('l') }, /* 6 */
|
||||
{ '+', 'P', C('p') }, /* + */
|
||||
{ 'b', 'B', C('b') }, /* 1 */
|
||||
{ 'j', 'J', C('j') }, /* 2 */
|
||||
{ 'n', 'N', C('n') }, /* 3 */
|
||||
{ 'i', 'I', C('i') }, /* Ins */
|
||||
{ '.', ':', ':' } /* Del */
|
||||
},
|
||||
numpad[PADKEYS] = {
|
||||
{ '7', M('7'), '7' }, /* 7 */
|
||||
{ '8', M('8'), '8' }, /* 8 */
|
||||
{ '9', M('9'), '9' }, /* 9 */
|
||||
{ 'm', C('p'), C('p') }, /* - */
|
||||
{ '4', M('4'), '4' }, /* 4 */
|
||||
{ '5', M('5'), '5' }, /* 5 */
|
||||
{ '6', M('6'), '6' }, /* 6 */
|
||||
{ '+', 'P', C('p') }, /* + */
|
||||
{ '1', M('1'), '1' }, /* 1 */
|
||||
{ '2', M('2'), '2' }, /* 2 */
|
||||
{ '3', M('3'), '3' }, /* 3 */
|
||||
{ '0', M('0'), '0' }, /* Ins */
|
||||
{ '.', ':', ':' } /* Del */
|
||||
};
|
||||
|
||||
#define inmap(x, vk) (((x) > 'A' && (x) < 'Z') || (vk) == 0xBF || (x) == '2')
|
||||
|
||||
static BYTE KeyState[256];
|
||||
|
||||
int __declspec(dllexport) __stdcall
|
||||
ProcessKeystroke(
|
||||
HANDLE hConIn,
|
||||
INPUT_RECORD* ir,
|
||||
boolean* valid,
|
||||
boolean numberpad,
|
||||
int portdebug)
|
||||
{
|
||||
int k = 0;
|
||||
int keycode, vk;
|
||||
unsigned char ch, pre_ch;
|
||||
unsigned short int scan;
|
||||
unsigned long shiftstate;
|
||||
int altseq = 0;
|
||||
const struct pad *kpad;
|
||||
|
||||
#ifdef QWERTZ_SUPPORT
|
||||
if (numberpad & 0x10) {
|
||||
numberpad &= ~0x10;
|
||||
qwertz = TRUE;
|
||||
} else {
|
||||
qwertz = FALSE;
|
||||
}
|
||||
#endif
|
||||
shiftstate = 0L;
|
||||
ch = pre_ch = ir->Event.KeyEvent.uChar.AsciiChar;
|
||||
scan = ir->Event.KeyEvent.wVirtualScanCode;
|
||||
vk = ir->Event.KeyEvent.wVirtualKeyCode;
|
||||
keycode = MapVirtualKey(vk, 2);
|
||||
shiftstate = ir->Event.KeyEvent.dwControlKeyState;
|
||||
KeyState[VK_SHIFT] = (shiftstate & SHIFT_PRESSED) ? 0x81 : 0;
|
||||
KeyState[VK_CONTROL] =
|
||||
(shiftstate & (LEFT_CTRL_PRESSED | RIGHT_CTRL_PRESSED)) ? 0x81 : 0;
|
||||
KeyState[VK_CAPITAL] = (shiftstate & CAPSLOCK_ON) ? 0x81 : 0;
|
||||
|
||||
if (shiftstate & (LEFT_ALT_PRESSED | RIGHT_ALT_PRESSED)) {
|
||||
if (ch || inmap(keycode, vk))
|
||||
altseq = 1;
|
||||
else
|
||||
altseq = -1; /* invalid altseq */
|
||||
}
|
||||
if (ch || (iskeypad(scan)) || (altseq > 0))
|
||||
*valid = TRUE;
|
||||
/* if (!valid) return 0; */
|
||||
/*
|
||||
* shiftstate can be checked to see if various special
|
||||
* keys were pressed at the same time as the key.
|
||||
* Currently we are using the ALT & SHIFT & CONTROLS.
|
||||
*
|
||||
* RIGHT_ALT_PRESSED, LEFT_ALT_PRESSED,
|
||||
* RIGHT_CTRL_PRESSED, LEFT_CTRL_PRESSED,
|
||||
* SHIFT_PRESSED,NUMLOCK_ON, SCROLLLOCK_ON,
|
||||
* CAPSLOCK_ON, ENHANCED_KEY
|
||||
*
|
||||
* are all valid bit masks to use on shiftstate.
|
||||
* eg. (shiftstate & LEFT_CTRL_PRESSED) is true if the
|
||||
* left control key was pressed with the keystroke.
|
||||
*/
|
||||
if (iskeypad(scan)) {
|
||||
kpad = numberpad ? numpad : keypad;
|
||||
if (shiftstate & SHIFT_PRESSED) {
|
||||
ch = kpad[scan - KEYPADLO].shift;
|
||||
} else if (shiftstate & (LEFT_CTRL_PRESSED | RIGHT_CTRL_PRESSED)) {
|
||||
ch = kpad[scan - KEYPADLO].cntrl;
|
||||
} else {
|
||||
ch = kpad[scan - KEYPADLO].normal;
|
||||
}
|
||||
#ifdef QWERTZ_SUPPORT
|
||||
/* OPTIONS=number_pad:-1 is for qwertz keyboard; for that setting,
|
||||
'numberpad' will be 0; core swaps y to zap, z to move northwest;
|
||||
we want numpad 7 to move northwest, so when qwertz is set,
|
||||
tell core that user who types numpad 7 typed z rather than y */
|
||||
if (qwertz && kpad[scan - KEYPADLO].normal == 'y')
|
||||
ch += 1; /* changes y to z, Y to Z, ^Y to ^Z */
|
||||
#endif /*QWERTZ_SUPPORT*/
|
||||
} else if (altseq > 0) { /* ALT sequence */
|
||||
if (vk == 0xBF)
|
||||
ch = M('?');
|
||||
else
|
||||
ch = M(tolower((uchar) keycode));
|
||||
}
|
||||
/* Attempt to work better with international keyboards. */
|
||||
else {
|
||||
WORD chr[2];
|
||||
k = ToAscii(vk, scan, KeyState, chr, 0);
|
||||
if (k <= 2)
|
||||
switch (k) {
|
||||
case 2: /* two characters */
|
||||
ch = (unsigned char) chr[1];
|
||||
*valid = TRUE;
|
||||
break;
|
||||
case 1: /* one character */
|
||||
ch = (unsigned char) chr[0];
|
||||
*valid = TRUE;
|
||||
break;
|
||||
case 0: /* no translation */
|
||||
default: /* negative */
|
||||
*valid = FALSE;
|
||||
}
|
||||
}
|
||||
if (ch == '\r')
|
||||
ch = '\n';
|
||||
#ifdef PORT_DEBUG
|
||||
if (portdebug) {
|
||||
char buf[BUFSZ];
|
||||
Sprintf(buf, "PORTDEBUG (%s): ch=%u, sc=%u, vk=%d, pre=%d, sh=0x%lX, "
|
||||
"ta=%d (ESC to end)",
|
||||
shortdllname, ch, scan, vk, pre_ch, shiftstate, k);
|
||||
fprintf(stdout, "\n%s", buf);
|
||||
}
|
||||
#endif
|
||||
return ch;
|
||||
}
|
||||
|
||||
int __declspec(dllexport) __stdcall
|
||||
NHkbhit(HANDLE hConIn, INPUT_RECORD *ir)
|
||||
{
|
||||
int done = 0; /* true = "stop searching" */
|
||||
int retval; /* true = "we had a match" */
|
||||
DWORD count;
|
||||
unsigned short int scan;
|
||||
unsigned char ch;
|
||||
unsigned long shiftstate;
|
||||
int altseq = 0, keycode, vk;
|
||||
done = 0;
|
||||
retval = 0;
|
||||
while (!done) {
|
||||
count = 0;
|
||||
PeekConsoleInput(hConIn, ir, 1, &count);
|
||||
if (count > 0) {
|
||||
if (ir->EventType == KEY_EVENT && ir->Event.KeyEvent.bKeyDown) {
|
||||
ch = ir->Event.KeyEvent.uChar.AsciiChar;
|
||||
scan = ir->Event.KeyEvent.wVirtualScanCode;
|
||||
shiftstate = ir->Event.KeyEvent.dwControlKeyState;
|
||||
vk = ir->Event.KeyEvent.wVirtualKeyCode;
|
||||
keycode = MapVirtualKey(vk, 2);
|
||||
if (shiftstate & (LEFT_ALT_PRESSED | RIGHT_ALT_PRESSED)) {
|
||||
if (ch || inmap(keycode, vk))
|
||||
altseq = 1;
|
||||
else
|
||||
altseq = -1; /* invalid altseq */
|
||||
}
|
||||
if (ch || iskeypad(scan) || altseq) {
|
||||
done = 1; /* Stop looking */
|
||||
retval = 1; /* Found what we sought */
|
||||
} else {
|
||||
/* Strange Key event; let's purge it to avoid trouble */
|
||||
ReadConsoleInput(hConIn, ir, 1, &count);
|
||||
}
|
||||
|
||||
} else if ((ir->EventType == MOUSE_EVENT
|
||||
&& (ir->Event.MouseEvent.dwButtonState
|
||||
& MOUSEMASK))) {
|
||||
done = 1;
|
||||
retval = 1;
|
||||
}
|
||||
|
||||
else /* Discard it, it's an insignificant event */
|
||||
ReadConsoleInput(hConIn, ir, 1, &count);
|
||||
} else /* There are no events in console event queue */ {
|
||||
done = 1; /* Stop looking */
|
||||
retval = 0;
|
||||
}
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
int __declspec(dllexport) __stdcall
|
||||
CheckInput(
|
||||
HANDLE hConIn,
|
||||
INPUT_RECORD *ir,
|
||||
DWORD* count,
|
||||
boolean numpad,
|
||||
int mode,
|
||||
int *mod,
|
||||
coord *cc)
|
||||
{
|
||||
#if defined(SAFERHANGUP)
|
||||
DWORD dwWait;
|
||||
#endif
|
||||
int ch = 0;
|
||||
boolean valid = 0, done = 0;
|
||||
|
||||
#ifdef QWERTZ_SUPPORT
|
||||
if (numpad & 0x10) {
|
||||
numpad &= ~0x10;
|
||||
qwertz = TRUE;
|
||||
} else {
|
||||
qwertz = FALSE;
|
||||
}
|
||||
#endif
|
||||
while (!done) {
|
||||
#if defined(SAFERHANGUP)
|
||||
dwWait = WaitForSingleObjectEx(hConIn, // event object to wait for
|
||||
INFINITE, // waits indefinitely
|
||||
TRUE); // alertable wait enabled
|
||||
if (dwWait == WAIT_FAILED)
|
||||
return '\033';
|
||||
#endif
|
||||
ReadConsoleInput(hConIn, ir, 1, count);
|
||||
if (mode == 0) {
|
||||
if ((ir->EventType == KEY_EVENT) && ir->Event.KeyEvent.bKeyDown) {
|
||||
ch = ProcessKeystroke(hConIn, ir, &valid, numpad, 0);
|
||||
done = valid;
|
||||
}
|
||||
} else {
|
||||
if (count > 0) {
|
||||
if (ir->EventType == KEY_EVENT
|
||||
&& ir->Event.KeyEvent.bKeyDown) {
|
||||
#ifdef QWERTZ_SUPPORT
|
||||
if (qwertz)
|
||||
numpad |= 0x10;
|
||||
#endif
|
||||
ch = ProcessKeystroke(hConIn, ir, &valid, numpad, 0);
|
||||
#ifdef QWERTZ_SUPPORT
|
||||
numpad &= ~0x10;
|
||||
#endif
|
||||
if (valid)
|
||||
return ch;
|
||||
} else if (ir->EventType == MOUSE_EVENT) {
|
||||
if ((ir->Event.MouseEvent.dwEventFlags == 0)
|
||||
&& (ir->Event.MouseEvent.dwButtonState & MOUSEMASK)) {
|
||||
cc->x = ir->Event.MouseEvent.dwMousePosition.X + 1;
|
||||
cc->y = ir->Event.MouseEvent.dwMousePosition.Y - 1;
|
||||
|
||||
if (ir->Event.MouseEvent.dwButtonState & LEFTBUTTON)
|
||||
*mod = CLICK_1;
|
||||
else if (ir->Event.MouseEvent.dwButtonState
|
||||
& RIGHTBUTTON)
|
||||
*mod = CLICK_2;
|
||||
#if 0 /* middle button */
|
||||
else if (ir->Event.MouseEvent.dwButtonState & MIDBUTTON)
|
||||
*mod = CLICK_3;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
} else
|
||||
done = 1;
|
||||
}
|
||||
}
|
||||
return mode ? 0 : ch;
|
||||
}
|
||||
|
||||
int __declspec(dllexport) __stdcall
|
||||
SourceWhere(char** buf)
|
||||
{
|
||||
if (!buf)
|
||||
return 0;
|
||||
*buf = where_to_get_source;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int __declspec(dllexport) __stdcall
|
||||
SourceAuthor(char **buf)
|
||||
{
|
||||
if (!buf)
|
||||
return 0;
|
||||
*buf = author;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int __declspec(dllexport) __stdcall
|
||||
KeyHandlerName(char **buf, int full)
|
||||
{
|
||||
if (!buf)
|
||||
return 0;
|
||||
if (full)
|
||||
*buf = dllname;
|
||||
else
|
||||
*buf = shortdllname;
|
||||
return 1;
|
||||
}
|
||||
27
sys/windows/nhico.uu
Normal file
@@ -0,0 +1,27 @@
|
||||
begin 600 nethack.ico
|
||||
M```!``(`("`0``````#H`@``)@```!`0$```````*`$```X#```H````(```
|
||||
M`$`````!``0``````(`"````````````````````````````````@```@```
|
||||
M`("``(````"``(``@(```,#`P`"`@(````#_``#_````__\`_P```/\`_P#_
|
||||
M_P``____````````````````````````__=P```````````'=W<`#___=P``
|
||||
M````````?_?W<`]W:/=P``#_<```!WB'!G`/8'B'<``/_W<```?VAGAP#P=E
|
||||
M;W``__]W<``'>`=H\`__=G_P#_!V9_<`!W=H=W``__</\/\,>(:/<`=P=W<`
|
||||
M``__\`_W=G9GB'<`!W=P````__#_=G=X2&"/<`=W``````_P_\=T=F>(:/<'
|
||||
M<```````#_9V=V5H8(AO<`````````_W=W1WAXAHA_````````#_9\<&>&!H
|
||||
M!H9W````````_W=V=6=GAH@(]P``````#_?'9W9T:(!H:&=P``````_V=WQV
|
||||
M=X=HA@B/<``````/]GQP=G>':(A@AW``````#_<'9\=VAH!HB&=P``````_V
|
||||
M=G=X9V>&"&"'<``````/]W?'9W1@B(:(9W````^&C_?'9W1WAX:`8(=P`'`/
|
||||
M_X_P9W9W:&A@AH:'</=P#_^/]W?'='>'AH@(AW!W\`=H;_9V=G!H:&"&A@=P
|
||||
M`(`'B(_P<'!V<&>(:(B'<`"`#_\/______=W=W=W=W!W<`__#_____?_?W=W
|
||||
M=W=P=W`/``__#___]W=W=W!W<`!P```/\`#_]_]_=W<`!W``````#P```/_W
|
||||
M=W<```!P````````````````````````````````````````````````````
|
||||
M````````````````````````````````````````````````````````````
|
||||
M````````````````````````````````````````````````````````````
|
||||
M```````````````````````H````$````"`````!``0``````,``````````
|
||||
M````````````````````````@```@````("``(````"``(``@(```,#`P`"`
|
||||
M@(````#_``#_````__\`_P```/\`_P#__P``____`````````````/<`````
|
||||
M=P`/_W`/<`=W<`#_\/8'!W<```\/9F!P<````/9F!@<`````]F9@9P````]F
|
||||
M9@8&<```#V9F8&!P```/9F8&!G````]F9F!@<``/?V9F!@9P<`]_9F9@8'!P
|
||||
M#P___W=W<'``#P__=W!P````````````````````````````````````````
|
||||
K````````````````````````````````````````````````````````````
|
||||
`
|
||||
end
|
||||
666
sys/windows/nhraykey.c
Normal file
@@ -0,0 +1,666 @@
|
||||
/* NetHack 3.7 nhraykey.c $NHDT-Date: 1596498314 2020/08/03 23:45:14 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.21 $ */
|
||||
/* Copyright (c) NetHack PC Development Team 2003 */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
/*
|
||||
* Keystroke handling contributed by Ray Chason.
|
||||
* The following text was written by Ray Chason.
|
||||
*
|
||||
* The problem
|
||||
* ===========
|
||||
*
|
||||
* The console-mode Nethack wants both keyboard and mouse input. The
|
||||
* problem is that the Windows API provides no easy way to get mouse input
|
||||
* and also keyboard input properly translated according to the user's
|
||||
* chosen keyboard layout.
|
||||
*
|
||||
* The ReadConsoleInput function returns a stream of keyboard and mouse
|
||||
* events. Nethack is interested in those events that represent a key
|
||||
* pressed, or a click on a mouse button. The keyboard events from
|
||||
* ReadConsoleInput are not translated according to the keyboard layout,
|
||||
* and do not take into account the shift, control, or alt keys.
|
||||
*
|
||||
* The PeekConsoleInput function works similarly to ReadConsoleInput,
|
||||
* except that it does not remove an event from the queue and it returns
|
||||
* instead of blocking when the queue is empty.
|
||||
*
|
||||
* A program can also use ReadConsole to get a properly translated stream
|
||||
* of characters. Unfortunately, ReadConsole does not return mouse events,
|
||||
* does not distinguish the keypad from the main keyboard, does not return
|
||||
* keys shifted with Alt, and does not even return the ESC key when
|
||||
* pressed.
|
||||
*
|
||||
* We want both the functionality of ReadConsole and the functionality of
|
||||
* ReadConsoleInput. But Microsoft didn't seem to think of that.
|
||||
*
|
||||
*
|
||||
* The solution, in the original code
|
||||
* ==================================
|
||||
*
|
||||
* The original 3.4.1 distribution tries to get proper keyboard translation
|
||||
* by passing keyboard events to the ToAscii function. This works, to some
|
||||
* extent -- it takes the shift key into account, and it processes dead
|
||||
* keys properly. But it doesn't take non-US keyboards into account. It
|
||||
* appears that ToAscii is meant for windowed applications, and does not
|
||||
* have enough information to do its job properly in a console application.
|
||||
*
|
||||
*
|
||||
* The Finnish keyboard patch
|
||||
* ==========================
|
||||
*
|
||||
* This patch adds the "subkeyvalue" option to the defaults.nh file. The
|
||||
* user can then add OPTIONS=sukeyvalue:171/92, for instance, to replace
|
||||
* the 171 character with 92, which is \. This works, once properly
|
||||
* configured, but places too much burden on the user. It also bars the
|
||||
* use of the substituted characters in naming objects or monsters.
|
||||
*
|
||||
*
|
||||
* The solution presented here
|
||||
* ===========================
|
||||
*
|
||||
* The best way I could find to combine the functionality of ReadConsole
|
||||
* with that of ReadConsoleInput is simple in concept. First, call
|
||||
* PeekConsoleInput to get the first event. If it represents a key press,
|
||||
* call ReadConsole to retrieve the key. Otherwise, pop it off the queue
|
||||
* with ReadConsoleInput and, if it's a mouse click, return it as such.
|
||||
*
|
||||
* But the Devil, as they say, is in the details. The problem is in
|
||||
* recognizing an event that ReadConsole will return as a key. We don't
|
||||
* want to call ReadConsole unless we know that it will immediately return:
|
||||
* if it blocks, the mouse and the Alt sequences will cease to function
|
||||
* until it returns.
|
||||
*
|
||||
* Separating process_keystroke into two functions, one for commands and a
|
||||
* new one, process_keystroke2, for answering prompts, makes the job a lot
|
||||
* easier. process_keystroke2 doesn't have to worry about mouse events or
|
||||
* Alt sequences, and so the consequences are minor if ReadConsole blocks.
|
||||
* process_keystroke, OTOH, never needs to return a non-ASCII character
|
||||
* that was read from ReadConsole; it returns bytes with the high bit set
|
||||
* only in response to an Alt sequence.
|
||||
*
|
||||
* So in process_keystroke, before calling ReadConsole, a bogus key event
|
||||
* is pushed on the queue. This event causes ReadConsole to return, even
|
||||
* if there was no other character available. Because the bogus key has
|
||||
* the eighth bit set, it is filtered out. This is not done in
|
||||
* process_keystroke2, because that would render dead keys unusable.
|
||||
*
|
||||
* A separate process_keystroke2 can also process the numeric keypad in a
|
||||
* way that makes sense for prompts: just return the corresponding symbol,
|
||||
* and pay no mind to number_pad or the num lock key.
|
||||
*
|
||||
* The recognition of Alt sequences is modified, to support the use of
|
||||
* characters generated with the AltGr key. A keystroke is an Alt sequence
|
||||
* if an Alt key is seen that can't be an AltGr (since an AltGr sequence
|
||||
* could be a character, and in some layouts it could even be an ASCII
|
||||
* character). This recognition is different on NT-based and 95-based
|
||||
* Windows:
|
||||
*
|
||||
* * On NT-based Windows, AltGr signals as right Alt and left Ctrl
|
||||
* together. So an Alt sequence is recognized if either Alt key is
|
||||
* pressed and if right Alt and left Ctrl are not both present. This
|
||||
* is true even if the keyboard in use does not have an AltGr key, and
|
||||
* uses right Alt for AltGr.
|
||||
*
|
||||
* * On 95-based Windows, with a keyboard that lacks the AltGr key, the
|
||||
* right Alt key is used instead. But it still signals as right Alt,
|
||||
* without left Ctrl. There is no way for the application to know
|
||||
* whether right Alt is Alt or AltGr, and so it is always assumed
|
||||
* to be AltGr. This means that Alt sequences must be formed with
|
||||
* left Alt.
|
||||
*
|
||||
* So the patch processes keystrokes as follows:
|
||||
*
|
||||
* * If the scan and virtual key codes are both 0, it's the bogus key,
|
||||
* and we ignore it.
|
||||
*
|
||||
* * Keys on the numeric keypad are processed for commands as in the
|
||||
* unpatched Nethack, and for prompts by returning the ASCII
|
||||
* character, even if the num lock is off.
|
||||
*
|
||||
* * Alt sequences are processed for commands as in the unpatched
|
||||
* Nethack, and ignored for prompts.
|
||||
*
|
||||
* * Control codes are returned as received, because ReadConsole will
|
||||
* not return the ESC key.
|
||||
*
|
||||
* * Other key-down events are passed to ReadConsole. The use of
|
||||
* ReadConsole is different for commands than for prompts:
|
||||
*
|
||||
* o For commands, the bogus key is pushed onto the queue before
|
||||
* ReadConsole is called. On return, non-ASCII characters are
|
||||
* filtered, so they are not mistaken for Alt sequences; this also
|
||||
* filters the bogus key.
|
||||
*
|
||||
* o For prompts, the bogus key is not used, because that would
|
||||
* interfere with dead keys. Eight bit characters may be returned,
|
||||
* and are coded in the configured code page.
|
||||
*
|
||||
*
|
||||
* Possible improvements
|
||||
* =====================
|
||||
*
|
||||
* Some possible improvements remain:
|
||||
*
|
||||
* * Integrate the existing Finnish keyboard patch, for use with non-
|
||||
* QWERTY layouts such as the German QWERTZ keyboard or Dvorak.
|
||||
*
|
||||
* * Fix the keyboard glitches in the graphical version. Namely, dead
|
||||
* keys don't work, and input comes in as ISO-8859-1 but is displayed
|
||||
* as code page 437 if IBMgraphics is set on startup.
|
||||
*
|
||||
* * Transform incoming text to ISO-8859-1, for full compatibility with
|
||||
* the graphical version.
|
||||
*
|
||||
* * After pushing the bogus key and calling ReadConsole, check to see
|
||||
* if we got the bogus key; if so, and an Alt is pressed, process the
|
||||
* event as an Alt sequence.
|
||||
*
|
||||
*/
|
||||
|
||||
static char where_to_get_source[] = "http://www.nethack.org/";
|
||||
static char author[] = "Ray Chason";
|
||||
|
||||
#include "win32api.h"
|
||||
#include "hack.h"
|
||||
#include "wintty.h"
|
||||
|
||||
extern HANDLE hConIn;
|
||||
extern INPUT_RECORD ir;
|
||||
char dllname[512];
|
||||
char *shortdllname;
|
||||
|
||||
int __declspec(dllexport) __stdcall ProcessKeystroke(HANDLE hConIn,
|
||||
INPUT_RECORD *ir, boolean *valid, boolean numberpad, int portdebug);
|
||||
|
||||
static INPUT_RECORD bogus_key;
|
||||
|
||||
int WINAPI
|
||||
DllMain(HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
|
||||
{
|
||||
char dlltmpname[512];
|
||||
char *tmp = dlltmpname, *tmp2;
|
||||
*(tmp + GetModuleFileName(hInstance, tmp, 511)) = '\0';
|
||||
(void) strcpy(dllname, tmp);
|
||||
tmp2 = strrchr(dllname, '\\');
|
||||
if (tmp2) {
|
||||
tmp2++;
|
||||
shortdllname = tmp2;
|
||||
}
|
||||
/* A bogus key that will be filtered when received, to keep ReadConsole
|
||||
* from blocking */
|
||||
bogus_key.EventType = KEY_EVENT;
|
||||
bogus_key.Event.KeyEvent.bKeyDown = 1;
|
||||
bogus_key.Event.KeyEvent.wRepeatCount = 1;
|
||||
bogus_key.Event.KeyEvent.wVirtualKeyCode = 0;
|
||||
bogus_key.Event.KeyEvent.wVirtualScanCode = 0;
|
||||
bogus_key.Event.KeyEvent.uChar.AsciiChar = (uchar) 0x80;
|
||||
bogus_key.Event.KeyEvent.dwControlKeyState = 0;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Keyboard translation tables.
|
||||
* (Adopted from the MSDOS port)
|
||||
*/
|
||||
|
||||
#define KEYPADLO 0x47
|
||||
#define KEYPADHI 0x53
|
||||
|
||||
#define PADKEYS (KEYPADHI - KEYPADLO + 1)
|
||||
#define iskeypad(x) (KEYPADLO <= (x) && (x) <= KEYPADHI)
|
||||
#define isnumkeypad(x) \
|
||||
(KEYPADLO <= (x) && (x) <= 0x51 && (x) != 0x4A && (x) != 0x4E)
|
||||
|
||||
#ifdef QWERTZ_SUPPORT
|
||||
/* when 'numberpad' is 0 and Cmd.swap_yz is True
|
||||
(signaled by setting 0x10 on boolean numpad argument)
|
||||
treat keypress of numpad 7 as 'z' rather than 'y' */
|
||||
static boolean qwertz = FALSE;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Keypad keys are translated to the normal values below.
|
||||
* Shifted keypad keys are translated to the
|
||||
* shift values below.
|
||||
*/
|
||||
|
||||
static const struct pad {
|
||||
uchar normal, shift, cntrl;
|
||||
} keypad[PADKEYS] =
|
||||
{
|
||||
{ 'y', 'Y', C('y') }, /* 7 */
|
||||
{ 'k', 'K', C('k') }, /* 8 */
|
||||
{ 'u', 'U', C('u') }, /* 9 */
|
||||
{ 'm', C('p'), C('p') }, /* - */
|
||||
{ 'h', 'H', C('h') }, /* 4 */
|
||||
{ 'g', 'G', 'g' }, /* 5 */
|
||||
{ 'l', 'L', C('l') }, /* 6 */
|
||||
{ '+', 'P', C('p') }, /* + */
|
||||
{ 'b', 'B', C('b') }, /* 1 */
|
||||
{ 'j', 'J', C('j') }, /* 2 */
|
||||
{ 'n', 'N', C('n') }, /* 3 */
|
||||
{ 'i', 'I', C('i') }, /* Ins */
|
||||
{ '.', ':', ':' } /* Del */
|
||||
},
|
||||
numpad[PADKEYS] = {
|
||||
{ '7', M('7'), '7' }, /* 7 */
|
||||
{ '8', M('8'), '8' }, /* 8 */
|
||||
{ '9', M('9'), '9' }, /* 9 */
|
||||
{ 'm', C('p'), C('p') }, /* - */
|
||||
{ '4', M('4'), '4' }, /* 4 */
|
||||
{ 'g', 'G', 'g' }, /* 5 */
|
||||
{ '6', M('6'), '6' }, /* 6 */
|
||||
{ '+', 'P', C('p') }, /* + */
|
||||
{ '1', M('1'), '1' }, /* 1 */
|
||||
{ '2', M('2'), '2' }, /* 2 */
|
||||
{ '3', M('3'), '3' }, /* 3 */
|
||||
{ 'i', 'I', C('i') }, /* Ins */
|
||||
{ '.', ':', ':' } /* Del */
|
||||
};
|
||||
|
||||
#define inmap(x, vk) (((x) > 'A' && (x) < 'Z') || (vk) == 0xBF || (x) == '2')
|
||||
|
||||
/* Use process_keystroke for key commands, process_keystroke2 for prompts */
|
||||
/* int process_keystroke(INPUT_RECORD *ir, boolean *valid, int
|
||||
* portdebug); */
|
||||
int process_keystroke2(HANDLE, INPUT_RECORD *ir, boolean *valid);
|
||||
static int is_altseq(unsigned long shiftstate);
|
||||
|
||||
static int
|
||||
is_altseq(unsigned long shiftstate)
|
||||
{
|
||||
/* We need to distinguish the Alt keys from the AltGr key.
|
||||
* On NT-based Windows, AltGr signals as right Alt and left Ctrl together;
|
||||
* on 95-based Windows, AltGr signals as right Alt only.
|
||||
* So on NT, we signal Alt if either Alt is pressed and left Ctrl is not,
|
||||
* and on 95, we signal Alt for left Alt only. */
|
||||
switch (shiftstate
|
||||
& (RIGHT_ALT_PRESSED | LEFT_ALT_PRESSED | LEFT_CTRL_PRESSED)) {
|
||||
case LEFT_ALT_PRESSED:
|
||||
case LEFT_ALT_PRESSED | LEFT_CTRL_PRESSED:
|
||||
return 1;
|
||||
|
||||
case RIGHT_ALT_PRESSED:
|
||||
case RIGHT_ALT_PRESSED | LEFT_ALT_PRESSED:
|
||||
return (GetVersion() & 0x80000000) == 0;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int __declspec(dllexport) __stdcall
|
||||
ProcessKeystroke(
|
||||
HANDLE hConIn,
|
||||
INPUT_RECORD *ir,
|
||||
boolean *valid,
|
||||
boolean numberpad,
|
||||
int portdebug)
|
||||
{
|
||||
int keycode, vk;
|
||||
unsigned char ch, pre_ch;
|
||||
unsigned short int scan;
|
||||
unsigned long shiftstate;
|
||||
int altseq = 0;
|
||||
const struct pad *kpad;
|
||||
DWORD count;
|
||||
|
||||
#ifdef QWERTZ_SUPPORT
|
||||
if (numberpad & 0x10) {
|
||||
numberpad &= ~0x10;
|
||||
qwertz = TRUE;
|
||||
} else {
|
||||
qwertz = FALSE;
|
||||
}
|
||||
#endif
|
||||
shiftstate = 0L;
|
||||
ch = pre_ch = ir->Event.KeyEvent.uChar.AsciiChar;
|
||||
scan = ir->Event.KeyEvent.wVirtualScanCode;
|
||||
vk = ir->Event.KeyEvent.wVirtualKeyCode;
|
||||
keycode = MapVirtualKey(vk, 2);
|
||||
shiftstate = ir->Event.KeyEvent.dwControlKeyState;
|
||||
if (scan == 0 && vk == 0) {
|
||||
/* It's the bogus_key */
|
||||
ReadConsoleInput(hConIn, ir, 1, &count);
|
||||
*valid = FALSE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (is_altseq(shiftstate)) {
|
||||
if (ch || inmap(keycode, vk))
|
||||
altseq = 1;
|
||||
else
|
||||
altseq = -1; /* invalid altseq */
|
||||
}
|
||||
if (ch || (iskeypad(scan)) || (altseq > 0))
|
||||
*valid = TRUE;
|
||||
/* if (!valid) return 0; */
|
||||
/*
|
||||
* shiftstate can be checked to see if various special
|
||||
* keys were pressed at the same time as the key.
|
||||
* Currently we are using the ALT & SHIFT & CONTROLS.
|
||||
*
|
||||
* RIGHT_ALT_PRESSED, LEFT_ALT_PRESSED,
|
||||
* RIGHT_CTRL_PRESSED, LEFT_CTRL_PRESSED,
|
||||
* SHIFT_PRESSED,NUMLOCK_ON, SCROLLLOCK_ON,
|
||||
* CAPSLOCK_ON, ENHANCED_KEY
|
||||
*
|
||||
* are all valid bit masks to use on shiftstate.
|
||||
* eg. (shiftstate & LEFT_CTRL_PRESSED) is true if the
|
||||
* left control key was pressed with the keystroke.
|
||||
*/
|
||||
if (iskeypad(scan)) {
|
||||
ReadConsoleInput(hConIn, ir, 1, &count);
|
||||
kpad = numberpad ? numpad : keypad;
|
||||
if (shiftstate & SHIFT_PRESSED) {
|
||||
ch = kpad[scan - KEYPADLO].shift;
|
||||
} else if (shiftstate & (LEFT_CTRL_PRESSED | RIGHT_CTRL_PRESSED)) {
|
||||
ch = kpad[scan - KEYPADLO].cntrl;
|
||||
} else {
|
||||
ch = kpad[scan - KEYPADLO].normal;
|
||||
}
|
||||
#ifdef QWERTZ_SUPPORT
|
||||
/* OPTIONS=number_pad:-1 is for qwertz keyboard; for that setting,
|
||||
'numberpad' will be 0; core swaps y to zap, z to move northwest;
|
||||
we want numpad 7 to move northwest, so when qwertz is set,
|
||||
tell core that user who types numpad 7 typed z rather than y */
|
||||
if (qwertz && kpad[scan - KEYPADLO].normal == 'y')
|
||||
ch += 1; /* changes y to z, Y to Z, ^Y to ^Z */
|
||||
#endif /*QWERTZ_SUPPORT*/
|
||||
} else if (altseq > 0) { /* ALT sequence */
|
||||
ReadConsoleInput(hConIn, ir, 1, &count);
|
||||
if (vk == 0xBF)
|
||||
ch = M('?');
|
||||
else
|
||||
ch = M(tolower((uchar) keycode));
|
||||
} else if (ch < 32 && !isnumkeypad(scan)) {
|
||||
/* Control code; ReadConsole seems to filter some of these,
|
||||
* including ESC */
|
||||
ReadConsoleInput(hConIn, ir, 1, &count);
|
||||
}
|
||||
/* Attempt to work better with international keyboards. */
|
||||
else {
|
||||
CHAR ch2;
|
||||
DWORD written;
|
||||
/* The bogus_key guarantees that ReadConsole will return,
|
||||
* and does not itself do anything */
|
||||
WriteConsoleInput(hConIn, &bogus_key, 1, &written);
|
||||
ReadConsole(hConIn, &ch2, 1, &count, NULL);
|
||||
/* Prevent high characters from being interpreted as alt
|
||||
* sequences; also filter the bogus_key */
|
||||
if (ch2 & 0x80)
|
||||
*valid = FALSE;
|
||||
else
|
||||
ch = ch2;
|
||||
if (ch == 0)
|
||||
*valid = FALSE;
|
||||
}
|
||||
if (ch == '\r')
|
||||
ch = '\n';
|
||||
#ifdef PORT_DEBUG
|
||||
if (portdebug) {
|
||||
char buf[BUFSZ];
|
||||
Sprintf(buf, "PORTDEBUG: ch=%u, scan=%u, vk=%d, pre=%d, "
|
||||
"shiftstate=0x%lX (ESC to end)\n",
|
||||
ch, scan, vk, pre_ch, shiftstate);
|
||||
fprintf(stdout, "\n%s", buf);
|
||||
}
|
||||
#endif
|
||||
return ch;
|
||||
}
|
||||
|
||||
int
|
||||
process_keystroke2(
|
||||
HANDLE hConIn,
|
||||
INPUT_RECORD *ir,
|
||||
boolean *valid)
|
||||
{
|
||||
/* Use these values for the numeric keypad */
|
||||
static const char keypad_nums[] = "789-456+1230.";
|
||||
|
||||
unsigned char ch;
|
||||
int vk;
|
||||
unsigned short int scan;
|
||||
unsigned long shiftstate;
|
||||
int altseq;
|
||||
DWORD count;
|
||||
|
||||
ch = ir->Event.KeyEvent.uChar.AsciiChar;
|
||||
vk = ir->Event.KeyEvent.wVirtualKeyCode;
|
||||
scan = ir->Event.KeyEvent.wVirtualScanCode;
|
||||
shiftstate = ir->Event.KeyEvent.dwControlKeyState;
|
||||
|
||||
if (scan == 0 && vk == 0) {
|
||||
/* It's the bogus_key */
|
||||
ReadConsoleInput(hConIn, ir, 1, &count);
|
||||
*valid = FALSE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
altseq = is_altseq(shiftstate);
|
||||
if (ch || (iskeypad(scan)) || altseq)
|
||||
*valid = TRUE;
|
||||
/* if (!valid) return 0; */
|
||||
/*
|
||||
* shiftstate can be checked to see if various special
|
||||
* keys were pressed at the same time as the key.
|
||||
* Currently we are using the ALT & SHIFT & CONTROLS.
|
||||
*
|
||||
* RIGHT_ALT_PRESSED, LEFT_ALT_PRESSED,
|
||||
* RIGHT_CTRL_PRESSED, LEFT_CTRL_PRESSED,
|
||||
* SHIFT_PRESSED,NUMLOCK_ON, SCROLLLOCK_ON,
|
||||
* CAPSLOCK_ON, ENHANCED_KEY
|
||||
*
|
||||
* are all valid bit masks to use on shiftstate.
|
||||
* eg. (shiftstate & LEFT_CTRL_PRESSED) is true if the
|
||||
* left control key was pressed with the keystroke.
|
||||
*/
|
||||
if (iskeypad(scan) && !altseq) {
|
||||
ReadConsoleInput(hConIn, ir, 1, &count);
|
||||
ch = keypad_nums[scan - KEYPADLO];
|
||||
} else if (ch < 32 && !isnumkeypad(scan)) {
|
||||
/* Control code; ReadConsole seems to filter some of these,
|
||||
* including ESC */
|
||||
ReadConsoleInput(hConIn, ir, 1, &count);
|
||||
}
|
||||
/* Attempt to work better with international keyboards. */
|
||||
else {
|
||||
CHAR ch2;
|
||||
ReadConsole(hConIn, &ch2, 1, &count, NULL);
|
||||
ch = ch2 & 0xFF;
|
||||
if (ch == 0)
|
||||
*valid = FALSE;
|
||||
}
|
||||
if (ch == '\r')
|
||||
ch = '\n';
|
||||
return ch;
|
||||
}
|
||||
|
||||
int __declspec(dllexport) __stdcall
|
||||
CheckInput(
|
||||
HANDLE hConIn,
|
||||
INPUT_RECORD *ir,
|
||||
DWORD *count,
|
||||
boolean numpad,
|
||||
int mode,
|
||||
int *mod,
|
||||
coord *cc)
|
||||
{
|
||||
#if defined(SAFERHANGUP)
|
||||
DWORD dwWait;
|
||||
#endif
|
||||
int ch = 0;
|
||||
boolean valid = 0, done = 0;
|
||||
|
||||
#ifdef QWERTZ_SUPPORT
|
||||
if (numpad & 0x10) {
|
||||
numpad &= ~0x10;
|
||||
qwertz = TRUE;
|
||||
} else {
|
||||
qwertz = FALSE;
|
||||
}
|
||||
#endif
|
||||
while (!done) {
|
||||
*count = 0;
|
||||
dwWait = WaitForSingleObject(hConIn, INFINITE);
|
||||
#if defined(SAFERHANGUP)
|
||||
if (dwWait == WAIT_FAILED)
|
||||
return '\033';
|
||||
#endif
|
||||
PeekConsoleInput(hConIn, ir, 1, count);
|
||||
if (mode == 0) {
|
||||
if ((ir->EventType == KEY_EVENT) && ir->Event.KeyEvent.bKeyDown) {
|
||||
ch = process_keystroke2(hConIn, ir, &valid);
|
||||
done = valid;
|
||||
} else
|
||||
ReadConsoleInput(hConIn, ir, 1, count);
|
||||
} else {
|
||||
ch = 0;
|
||||
if (count > 0) {
|
||||
if (ir->EventType == KEY_EVENT
|
||||
&& ir->Event.KeyEvent.bKeyDown) {
|
||||
#ifdef QWERTZ_SUPPORT
|
||||
if (qwertz)
|
||||
numpad |= 0x10;
|
||||
#endif
|
||||
ch = ProcessKeystroke(hConIn, ir, &valid, numpad,
|
||||
#ifdef PORTDEBUG
|
||||
1);
|
||||
#else
|
||||
0);
|
||||
#endif
|
||||
#ifdef QWERTZ_SUPPORT
|
||||
numpad &= ~0x10;
|
||||
#endif
|
||||
if (valid)
|
||||
return ch;
|
||||
} else {
|
||||
ReadConsoleInput(hConIn, ir, 1, count);
|
||||
if (ir->EventType == MOUSE_EVENT) {
|
||||
if ((ir->Event.MouseEvent.dwEventFlags == 0)
|
||||
&& (ir->Event.MouseEvent.dwButtonState
|
||||
& MOUSEMASK)) {
|
||||
cc->x =
|
||||
ir->Event.MouseEvent.dwMousePosition.X + 1;
|
||||
cc->y =
|
||||
ir->Event.MouseEvent.dwMousePosition.Y - 1;
|
||||
|
||||
if (ir->Event.MouseEvent.dwButtonState
|
||||
& LEFTBUTTON)
|
||||
*mod = CLICK_1;
|
||||
else if (ir->Event.MouseEvent.dwButtonState
|
||||
& RIGHTBUTTON)
|
||||
*mod = CLICK_2;
|
||||
#if 0 /* middle button */
|
||||
else if (ir->Event.MouseEvent.dwButtonState & MIDBUTTON)
|
||||
*mod = CLICK_3;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#if 0
|
||||
/* We ignore these types of console events */
|
||||
else if (ir->EventType == FOCUS_EVENT) {
|
||||
}
|
||||
else if (ir->EventType == MENU_EVENT) {
|
||||
}
|
||||
#endif
|
||||
}
|
||||
} else
|
||||
done = 1;
|
||||
}
|
||||
}
|
||||
*mod = 0;
|
||||
return ch;
|
||||
}
|
||||
|
||||
int __declspec(dllexport) __stdcall NHkbhit(
|
||||
HANDLE hConIn,
|
||||
INPUT_RECORD *ir)
|
||||
{
|
||||
int done = 0; /* true = "stop searching" */
|
||||
int retval; /* true = "we had a match" */
|
||||
DWORD count;
|
||||
unsigned short int scan;
|
||||
unsigned char ch;
|
||||
unsigned long shiftstate;
|
||||
int altseq = 0, keycode, vk;
|
||||
|
||||
done = 0;
|
||||
retval = 0;
|
||||
while (!done) {
|
||||
count = 0;
|
||||
PeekConsoleInput(hConIn, ir, 1, &count);
|
||||
if (count > 0) {
|
||||
if (ir->EventType == KEY_EVENT && ir->Event.KeyEvent.bKeyDown) {
|
||||
ch = ir->Event.KeyEvent.uChar.AsciiChar;
|
||||
scan = ir->Event.KeyEvent.wVirtualScanCode;
|
||||
shiftstate = ir->Event.KeyEvent.dwControlKeyState;
|
||||
vk = ir->Event.KeyEvent.wVirtualKeyCode;
|
||||
if (scan == 0 && vk == 0) {
|
||||
/* It's the bogus_key. Discard it */
|
||||
ReadConsoleInput(hConIn,ir,1,&count);
|
||||
} else {
|
||||
keycode = MapVirtualKey(vk, 2);
|
||||
if (is_altseq(shiftstate)) {
|
||||
if (ch || inmap(keycode, vk))
|
||||
altseq = 1;
|
||||
else
|
||||
altseq = -1; /* invalid altseq */
|
||||
}
|
||||
if (ch || iskeypad(scan) || altseq) {
|
||||
done = 1; /* Stop looking */
|
||||
retval = 1; /* Found what we sought */
|
||||
} else {
|
||||
/* Strange Key event; let's purge it to avoid trouble */
|
||||
ReadConsoleInput(hConIn, ir, 1, &count);
|
||||
}
|
||||
}
|
||||
|
||||
} else if ((ir->EventType == MOUSE_EVENT
|
||||
&& (ir->Event.MouseEvent.dwButtonState
|
||||
& MOUSEMASK))) {
|
||||
done = 1;
|
||||
retval = 1;
|
||||
}
|
||||
|
||||
else /* Discard it, it's an insignificant event */
|
||||
ReadConsoleInput(hConIn, ir, 1, &count);
|
||||
} else /* There are no events in console event queue */ {
|
||||
done = 1; /* Stop looking */
|
||||
retval = 0;
|
||||
}
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
int __declspec(dllexport) __stdcall
|
||||
SourceWhere(char** buf)
|
||||
{
|
||||
if (!buf)
|
||||
return 0;
|
||||
*buf = where_to_get_source;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int __declspec(dllexport) __stdcall
|
||||
SourceAuthor(char** buf)
|
||||
{
|
||||
if (!buf)
|
||||
return 0;
|
||||
*buf = author;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int __declspec(dllexport) __stdcall KeyHandlerName(
|
||||
char **buf,
|
||||
int full)
|
||||
{
|
||||
if (!buf)
|
||||
return 0;
|
||||
if (full)
|
||||
*buf = dllname;
|
||||
else
|
||||
*buf = shortdllname;
|
||||
return 1;
|
||||
}
|
||||
128
sys/windows/nhsetup.bat
Executable file
@@ -0,0 +1,128 @@
|
||||
@REM NetHack 3.7 nhsetup.bat $NHDT-Date: 1596498315 2020/08/03 23:45:15 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.40 $ */
|
||||
@REM Copyright (c) NetHack PC Development Team 1993-2019
|
||||
@REM NetHack may be freely redistributed. See license for details.
|
||||
@REM Win32 setup batch file, see Install.windows for details
|
||||
@REM
|
||||
@echo off
|
||||
pushd %~dp0
|
||||
set WIN32PATH=..\..\win\win32
|
||||
set BINPATH=..\..\binary
|
||||
set VCDir=
|
||||
|
||||
goto :main
|
||||
|
||||
:dirname
|
||||
rem Get the dirname of the second argument and set the variable who's
|
||||
rem name was specified in the first argument.
|
||||
call set %~1=%%~dp2
|
||||
call set %~1=%%%~1:~0,-1%%
|
||||
goto :EOF
|
||||
|
||||
:main
|
||||
|
||||
echo Checking to see if source tree directories are set up properly...
|
||||
if not exist ..\..\include\hack.h goto :err_dir
|
||||
if not exist ..\..\src\hack.c goto :err_dir
|
||||
if not exist ..\..\dat\wizard1.lua goto :err_dir
|
||||
if not exist ..\..\util\makedefs.c goto :err_dir
|
||||
if not exist ..\..\sys\windows\windsys.c goto :err_dir
|
||||
echo Directories look ok.
|
||||
|
||||
:movemakes
|
||||
echo Moving Makefiles into ..\..\src for those not using Visual Studio
|
||||
REM Some file movemet for those that still want to use MAKE or NMAKE and a Makefile
|
||||
:do_tty
|
||||
if NOT exist %BINPATH%\*.* mkdir %BINPATH%
|
||||
if NOT exist %BINPATH%\license copy ..\..\dat\license %BINPATH%\license >nul
|
||||
echo Copying Microsoft Makefile - Makefile.msc to ..\..\src\Makefile...
|
||||
if NOT exist ..\..\src\Makefile goto :domsc
|
||||
copy ..\..\src\Makefile ..\..\src\Makefile-orig >nul
|
||||
echo Your existing
|
||||
echo ..\..\src\Makefile
|
||||
echo has been renamed to
|
||||
echo ..\..\src\Makefile-orig
|
||||
:domsc
|
||||
copy Makefile.msc ..\..\src\Makefile >nul
|
||||
echo Microsoft Makefile copied ok.
|
||||
|
||||
echo Copying MinGW Makefile - Makefile.gcc to ..\..\src\Makefile.gcc...
|
||||
if NOT exist ..\..\src\Makefile.gcc goto :dogcc
|
||||
copy ..\..\src\Makefile.gcc ..\..\src\Makefile.gcc-orig >nul
|
||||
echo Your existing
|
||||
echo ..\..\src\Makefile.gcc
|
||||
echo has been renamed to
|
||||
echo ..\..\src\Makefile.gcc-orig
|
||||
:dogcc
|
||||
copy Makefile.gcc ..\..\src\Makefile.gcc >nul
|
||||
echo MinGW Makefile copied ok.
|
||||
|
||||
echo Done copying files.
|
||||
|
||||
echo Checking version of VC++ installed...
|
||||
:vscheck2019
|
||||
SET REGTREE=HKLM\SOFTWARE\WOW6432Node\Microsoft\VisualStudio
|
||||
@REM i can see your house from here... or at least your VC++ folder
|
||||
set VCDir="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\"
|
||||
if not defined VCDir goto :vscheck2017
|
||||
if not exist %VCDir% goto :vscheck2017
|
||||
if not "%VSCMD_VER%"=="16.0.0" goto :vscheck2017
|
||||
set MSVCVERSION=2019
|
||||
set MSVCPROJ=2017
|
||||
goto :fallback
|
||||
|
||||
:vscheck2017
|
||||
SET REGTREE=HKLM\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\SxS\VS7
|
||||
@REM i can see your house from here... or at least your VC++ folder
|
||||
for /f "usebackq skip=2 tokens=1-2*" %%a IN (`reg query %REGTREE% /v 15.0`) do @set VCDir="%%c"
|
||||
if not defined VCDir goto :vscheck2015
|
||||
if not exist %VCDir% goto :vscheck2015
|
||||
set MSVCVERSION=2017
|
||||
set MSVCPROJ=2017
|
||||
goto :fallback
|
||||
|
||||
:vscheck2015
|
||||
rem cannot use the registry trick used for vc2017
|
||||
rem 14 = 2015
|
||||
SET VCVERS=14
|
||||
rem Finally, let's determine the root folder for this VC installation.
|
||||
set VCROOT=%%VS%VCVERS%0COMNTOOLS%%
|
||||
if "%VCROOT:~-1%"=="\" set VCROOT=%VCROOT:~0,-1%
|
||||
rem VCROOT=VSDir\Common7\Tools
|
||||
call :dirname VCROOT "%VCROOT%"
|
||||
rem VCROOT=VSDir\Common7
|
||||
call :dirname VCROOT "%VCROOT%"
|
||||
rem VCROOT=VSDir
|
||||
set VCDir=%VCROOT%\VC
|
||||
SET MSVCVERSION=2015
|
||||
|
||||
:fallback
|
||||
echo Using VS%MSVCVERSION%.
|
||||
set SRCPATH=%WIN32PATH%\vs%MSVCPROJ%
|
||||
echo NetHack VS%MSVCVERSION% project files are in %SRCPATH%
|
||||
goto :done
|
||||
|
||||
:err_win
|
||||
echo Some of the files needed to build graphical NetHack
|
||||
echo for Windows are not in the expected places.
|
||||
echo Check "Install.windows" for a list of the steps required
|
||||
echo to build NetHack.
|
||||
goto :fini
|
||||
|
||||
:err_dir
|
||||
echo Your directories are not set up properly, please re-read the
|
||||
echo documentation and sys/windows/Install.windows.
|
||||
goto :fini
|
||||
|
||||
:done
|
||||
echo done!
|
||||
echo.
|
||||
echo Proceed with the next step documented in Install.windows
|
||||
echo.
|
||||
|
||||
:fini
|
||||
:end
|
||||
set _pause=N
|
||||
for %%x in (%cmdcmdline%) do if /i "%%~x"=="/c" set _pause=Y
|
||||
if "%_pause%"=="Y" pause
|
||||
set _pause=
|
||||
popd
|
||||
27
sys/windows/ntsound.c
Normal file
@@ -0,0 +1,27 @@
|
||||
/* NetHack 3.7 ntsound.c $NHDT-Date: 1596498316 2020/08/03 23:45:16 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.13 $ */
|
||||
/* Copyright (c) NetHack PC Development Team 1993 */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
/* */
|
||||
/*
|
||||
* ntsound.c - Windows NT NetHack sound support
|
||||
*
|
||||
*Edit History:
|
||||
* Initial Creation 93/12/11
|
||||
*
|
||||
*/
|
||||
|
||||
#include "win32api.h"
|
||||
#include "hack.h"
|
||||
#include <mmsystem.h>
|
||||
|
||||
#ifdef USER_SOUNDS
|
||||
|
||||
void
|
||||
play_usersound(const char* filename, int volume)
|
||||
{
|
||||
/* pline("play_usersound: %s (%d).", filename, volume); */
|
||||
(void) sndPlaySound(filename, SND_ASYNC | SND_NODEFAULT);
|
||||
}
|
||||
|
||||
#endif /*USER_SOUNDS*/
|
||||
/* ntsound.c */
|
||||
300
sys/windows/porthelp
Normal file
@@ -0,0 +1,300 @@
|
||||
Microsoft Windows specific help file for NetHack 3.7
|
||||
Copyright (c) NetHack PC Development Team 1993-2020.
|
||||
NetHack may be freely distributed. See license for details.
|
||||
(Last Revision: August 8, 2020)
|
||||
|
||||
This file details specifics for NetHack built for Windows 95, 98, NT,
|
||||
Me, 2000, and XP. Users of really early 16-bit Windows versions should
|
||||
use the MSDOS NetHack.
|
||||
|
||||
Please note that "NetHack for Windows - Graphical Interface" requires
|
||||
an installation of Internet Explorer 4 or an installation of
|
||||
version 4.71 of the common controls. See the following internet page:
|
||||
http://www.nethack.org/v340/ports/download-win.html#cc
|
||||
for more information. If the game runs for you, you are not affected.
|
||||
|
||||
New players should be sure to read GuideBook.txt which contains
|
||||
essential information about playing NetHack. It can be found in the
|
||||
same directory as your NetHack executable.
|
||||
|
||||
The NetHack for Windows port supports some additional or enhanced
|
||||
commands as well as some defaults.nh file options specific to
|
||||
configuration choices used during the building of NetHack for
|
||||
Windows. Listed below are those commands and defaults.nh file
|
||||
options.
|
||||
|
||||
Some options are applicable only to the "Graphical Interface."
|
||||
These are discussed separately in their own section.
|
||||
|
||||
Contents
|
||||
1. ALT Key Combinations
|
||||
2. Boolean options - Option that you can toggle on or off
|
||||
3. Graphical Interface - Options you can assign a value to
|
||||
4. Graphical Interface - Additional/Enhanced Commands
|
||||
5. Graphical Interface - Menus
|
||||
6. Numeric Keypad (for number_pad mode)
|
||||
|
||||
|
||||
1. ALT Key Combinations
|
||||
----------------------------------------------
|
||||
The non-graphical (tty) interface always operates in "NetHack mode",
|
||||
while the "NetHack for Windows - Graphical Interface" lets you
|
||||
toggle the mode. In non-NetHack mode, all ALT-key combinations
|
||||
are sent to the Windows itself, rather than to NetHack.
|
||||
|
||||
While playing in NetHack mode you can press the ALT key in
|
||||
combination with another key to execute an extended command
|
||||
as an alternative method to pressing a # key sequence.
|
||||
The available commands are:
|
||||
|
||||
Alt-2 #twoweapon - toggle two-weapon combat (unavailable
|
||||
if number_pad mode is set)
|
||||
Alt-a #adjust - adjust inventory letters.
|
||||
Alt-c #chat - talk to someone or something.
|
||||
Alt-d #dip - dip an object into something.
|
||||
Alt-e #enhance - enhance your skill with a weapon.
|
||||
Alt-f #force - force a lock.
|
||||
Alt-i #invoke - invoke an object's powers.
|
||||
Alt-j #jump - jump to a location.
|
||||
Alt-l #loot - loot a box on the floor.
|
||||
Alt-m #monster - use a monster's special ability.
|
||||
Alt-n #name - name an item or type of object.
|
||||
Alt-o #offer - offer a sacrifice to the gods.
|
||||
Alt-p #pray - pray to the gods for help.
|
||||
Alt-q #quit - quit the game. (Same as #quit)
|
||||
Alt-r #rub - rub a lamp.
|
||||
Alt-s #sit - sit down.
|
||||
Alt-t #turn - turn undead.
|
||||
Alt-u #untrap - untrap something.
|
||||
Alt-v #version - list compile time options for this version of
|
||||
NetHack.
|
||||
Alt-w #wipe - wipe off your face.
|
||||
Alt-? #? - display list of extended menu commands
|
||||
|
||||
2. Boolean Options (Options that can be toggled on or off)
|
||||
----------------------------------------------------------
|
||||
|
||||
Listed here are any options not discussed in the main help, options
|
||||
which may be slightly different from the main help file, and options
|
||||
which may need a slightly more explanatory note:
|
||||
|
||||
color Use color when displaying non-tiled maps. Tiled
|
||||
maps (available in the graphical port) are always
|
||||
rendered in color. Default: [TRUE]
|
||||
|
||||
hilite_pet Using tiled graphics, displays a small heart symbol
|
||||
next to your pet. Using ascii graphics, the pet is
|
||||
hilited in a white background.
|
||||
Default: [TRUE]
|
||||
|
||||
IBMgraphics Use IBM extended characters for the dungeon
|
||||
Default: [TRUE]
|
||||
|
||||
msg_window When ^P is pressed, it shows menu in a full window.
|
||||
Available only in the non-graphical (tty) version.
|
||||
Default: [FALSE]
|
||||
|
||||
toptenwin Write top ten list to a window, as opposed to stdout.
|
||||
Default in tty interface: [FALSE]
|
||||
Default in graphical interface: [TRUE] (and cannot be changed)
|
||||
|
||||
3. Options that you assign a value to (Graphical Interface only)
|
||||
----------------------------------------------------------------
|
||||
|
||||
"NetHack for Windows - Graphical Interface" recognizes the following
|
||||
additional options, which the non-graphical (tty) version will
|
||||
silently ignore. These are options that specify attributes of various
|
||||
windows. The windows that you can tailor include menu windows (such
|
||||
as the inventory list), text windows (such as "It is written in the
|
||||
book of ..." screens), the message window (where events of the game are
|
||||
displayed), the status window (where your character name
|
||||
and attributes are displayed), and the map window (where the map
|
||||
is drawn).
|
||||
|
||||
Window Alignment options:
|
||||
|
||||
align_message Specifies at which side of the NetHack screen the
|
||||
message window is aligned. This option can be used
|
||||
to align the window to "top" or "bottom".
|
||||
Default: [TOP]
|
||||
|
||||
align_status Specifies at which side of the NetHack screen the
|
||||
status window is aligned. This option can be used
|
||||
to align the window to "top" or "bottom".
|
||||
Default: [BOTTOM]
|
||||
|
||||
Map Window options:
|
||||
|
||||
map_mode Specifies which map mode to use.
|
||||
The following map modes are available:
|
||||
tiles (display things on the map with colored tiles),
|
||||
ascii4x6, ascii6x8, ascii8x8, ascii16x8, ascii7x12,
|
||||
ascii8x12, ascii16x12, ascii12x16, ascii10x18
|
||||
(which use that size font to display things on
|
||||
the map), or fit_to_screen (an ascii mode which
|
||||
forces things to fit on a single screen).
|
||||
Default: [tiles]
|
||||
|
||||
scroll_margin Specifies the number of map cells from the edge
|
||||
of the map window where scrolling will take place.
|
||||
Default: [5]
|
||||
|
||||
tile_file An alternative file containing bitmap to use for
|
||||
tiles. This file should be a .bmp file and should
|
||||
be organized as 40 rectangular tiles wide. It is
|
||||
beyond the scope of this document to describe the
|
||||
exact contents of each tile in the .bmp, which must
|
||||
match the object lists used when building NetHack.
|
||||
|
||||
tile_height Used with tile_file to specify the height of each
|
||||
tile in pixels. This option may only be specified
|
||||
in the defaults.nh config file.
|
||||
Default: [16]
|
||||
|
||||
tile_width Used with tile_file to specify the width of each
|
||||
tile in pixels. This option may only be specified
|
||||
in the defaults.nh config file.
|
||||
Default: [16]
|
||||
|
||||
Other Window options:
|
||||
|
||||
windowcolors Specifies the colors for various windows
|
||||
This option may only be specified in the
|
||||
defaults.nh config file and has the following
|
||||
format:
|
||||
window-type foreground/background
|
||||
Notes:
|
||||
- Both foreground and background colors are
|
||||
required, and a slash must separate them.
|
||||
- "window-type" is either "message" or "status"
|
||||
(Short forms are: "msg" or "sts").
|
||||
- "foreground" and "background" may be specified as
|
||||
a color name (such as "blue"), or by a six
|
||||
digit hexadecimal RGB color value (such as
|
||||
"#8F8F8F")
|
||||
- The following color names are available:
|
||||
black, red, green, brown, blue, magenta,
|
||||
cyan, gray (or grey), orange, brightgreen,
|
||||
yellow, brightblue, brightmagenta, brightcyan,
|
||||
white, trueblack, purple, silver, maroon, fuchsia,
|
||||
lime, olive, navy, teal, aqua. In addition, you
|
||||
can use the following names to refer to default
|
||||
Windows settings: activeborder, activecaption,
|
||||
appworkspace, background, btnface, btnshadow, btntext,
|
||||
captiontext, graytext, highlight, highlighttext,
|
||||
inactiveborder, inactivecaption, menu, menutext,
|
||||
scrollbar, window, windowframe, windowtext.
|
||||
|
||||
Example:
|
||||
OPTIONS=windowcolors:sts #00FF80/blue msg menutext/menu
|
||||
|
||||
font_menu Specifies the name of the menu font.
|
||||
font_message Specifies the name of the message font.
|
||||
font_status Specifies the name of the status font.
|
||||
font_text Specifies the name of the text font.
|
||||
|
||||
font_size_menu Specifies the size of the menu font.
|
||||
|
||||
font_size_message
|
||||
Specifies the size of the message font.
|
||||
|
||||
font_size_status
|
||||
Specifies the size of the status font.
|
||||
|
||||
font_size_text Specifies the size of the text font.
|
||||
|
||||
Miscellaneous options:
|
||||
|
||||
vary_msgcount Number of lines to display in message window.
|
||||
|
||||
|
||||
4. NetHack for Windows - Graphical Interface, Additional/Enhanced Commands
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
The following function keys are active in
|
||||
the "NetHack for Windows - Graphical Interface":
|
||||
|
||||
F4 Toggle level overview mode on/off
|
||||
This key will toggle the map between a view that
|
||||
is mapped to fit exactly to the window, and the
|
||||
view that shows the various symbols in their
|
||||
normal size. This is useful for getting an idea
|
||||
of where you are in a level.
|
||||
|
||||
F5 Toggle tiled display on/off.
|
||||
This key switches between the tiled and the
|
||||
traditional ASCII display. This is equivalent to
|
||||
using the "map_mode" option.
|
||||
|
||||
F10 Activate menu bar.
|
||||
This key will activate the menu bar, allowing you
|
||||
to select between the menus: File, Map,
|
||||
Window Settings, and Help.
|
||||
|
||||
5. Graphical Port Menus
|
||||
-----------------------
|
||||
|
||||
File
|
||||
Save - Allows you to save and exit the game
|
||||
Quit - Allows you to quit the game
|
||||
|
||||
Map - Provides for selection of map mode. Equivalent to using
|
||||
the map_mode option.
|
||||
|
||||
Window Settings - Changes your logged-on user's settings for NetHack.
|
||||
In 3.5.0, only one setting is available: NetHack mode, which can be
|
||||
checked or unchecked. NetHack mode allows you to use the ALT key for
|
||||
game key commands [see list above]. You can use F10 to access the
|
||||
menu bar while in NetHack mode. You can also clear your logged-on
|
||||
user's settings for NetHack. Settings in this window are saved in
|
||||
your logged-on user's registry.
|
||||
|
||||
Help - Provides help about various portions of NetHack.
|
||||
|
||||
|
||||
6. Numeric Keypad (for "OPTION=number_pad" mode)
|
||||
------------------------------------------------
|
||||
|
||||
The numeric keypad and surrounding characters act as macros for different
|
||||
commands in NetHack. The Num Lock should be toggled to "on" to make the
|
||||
most of these keys:
|
||||
|
||||
Key Normal Shift-Key
|
||||
---------- ---------- -------------
|
||||
1, 2, 3, 4 Move In Run In
|
||||
6, 7, 8, 9 Direction Direction
|
||||
|
||||
0 (Ins) Inventory Categorized
|
||||
Inventory
|
||||
|
||||
. (Del) Wait Turn : - Look Here
|
||||
|
||||
+ Spell List P - Put on an
|
||||
accessory
|
||||
|
||||
- m - Move Previous
|
||||
Only Message
|
||||
|
||||
NetHack for Windows - tty Interface Specific Behavior:
|
||||
------------------------------------------------------
|
||||
|
||||
In the non-graphical (tty) interface, when you use the Ctrl key with a
|
||||
directional key (1, 2, 3, 4, 6, 7, 8, 9) it means "go in specified
|
||||
direction until you hit a wall or run into something interesting."
|
||||
|
||||
NetHack for Windows - Graphical Interface Specific Behavior:
|
||||
------------------------------------------------------------
|
||||
|
||||
It is possible to scroll or pan the map in a specific direction:
|
||||
|
||||
Ctrl-Shift-Left (4) Scroll (Pan) map left
|
||||
Ctrl-Shift-Right (6) Scroll (Pan) map right
|
||||
Ctrl-Shift-Up (8) Scroll (Pan) map up
|
||||
Ctrl-Shift-Down (2) Scroll (Pan) map down
|
||||
Ctrl-Shift-Home (7) Scroll (Pan) map left to leftmost corner
|
||||
Ctrl-Shift-End (1) Scroll (Pan) map left to rightmost corner
|
||||
Ctrl-Shift-PgUp (9) Scroll (Pan) map left to uppermost corner
|
||||
Ctrl-Shift-PgDn (3) Scroll (Pan) map left to lowermost corner
|
||||
|
||||
|
||||
|
||||
15
sys/windows/stub-pdcscrn.c
Normal file
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Use this stub to insert a needed pragma prior
|
||||
* to compiling $(PDCWINCON)\pdcscrn.c in the
|
||||
* PDCurses distribution.
|
||||
*
|
||||
* We don't want to ask NetHack builders to
|
||||
* modify the PDCurses distribution in any way,
|
||||
* we only ask that they have the original intact
|
||||
* PDCurses source tree available during the build.
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma warning(disable : 4996)
|
||||
#include "pdcscrn.c"
|
||||
|
||||
193
sys/windows/stubs.c
Normal file
@@ -0,0 +1,193 @@
|
||||
/* NetHack 3.7 stubs.c $NHDT-Date: 1596498317 2020/08/03 23:45:17 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.31 $ */
|
||||
/* Copyright (c) 2015 by Michael Allison */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
#include "win32api.h"
|
||||
#include "hack.h"
|
||||
|
||||
#ifdef GUISTUB
|
||||
#ifdef TTYSTUB
|
||||
#error You cannot compile this with both GUISTUB and TTYSTUB defined.
|
||||
#endif
|
||||
|
||||
int GUILaunched;
|
||||
struct window_procs mswin_procs = { "-guistubs" };
|
||||
|
||||
#ifdef QT_GRAPHICS
|
||||
struct window_procs Qt_procs = { "-guistubs" };
|
||||
int qt_tilewidth, qt_tileheight, qt_fontsize, qt_compact_mode;
|
||||
#endif
|
||||
void
|
||||
mswin_destroy_reg(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
void
|
||||
mswin_raw_print_flush(void)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
mswin_raw_print(const char *str)
|
||||
{
|
||||
}
|
||||
|
||||
/* MINGW32 has trouble with both a main() and WinMain()
|
||||
* so we move main for the MINGW tty version into this stub
|
||||
* so that it is out of sight for the gui linkage.
|
||||
*/
|
||||
#ifdef __MINGW32__
|
||||
extern char default_window_sys[];
|
||||
extern int mingw_main(int argc, char **argv);
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
boolean resuming;
|
||||
|
||||
resuming = mingw_main(argc, argv);
|
||||
nethack_exit(EXIT_SUCCESS);
|
||||
/*NOTREACHED*/
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* GUISTUB */
|
||||
|
||||
/* =============================================== */
|
||||
|
||||
#ifdef TTYSTUB
|
||||
|
||||
HANDLE hConIn;
|
||||
HANDLE hConOut;
|
||||
int GUILaunched;
|
||||
struct window_procs tty_procs = { "-ttystubs" };
|
||||
#ifdef CURSES_GRAPHICS
|
||||
char erase_char, kill_char;
|
||||
#endif
|
||||
|
||||
void
|
||||
win_tty_init(int dir)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
consoletty_open(int mode)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int
|
||||
xputc(int ch)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
xputs(const char *s)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
raw_clear_screen(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
clear_screen(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
backsp(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
#ifndef NO_MOUSE_ALLOWED
|
||||
void
|
||||
toggle_mouse_support(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef PORT_DEBUG
|
||||
void
|
||||
win32con_debug_keystrokes(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
void
|
||||
win32con_handler_info(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
map_subkeyvalue(char *op)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* this is used as a printf() replacement when the window
|
||||
* system isn't initialized yet
|
||||
*/
|
||||
void msmsg
|
||||
VA_DECL(const char *, fmt)
|
||||
{
|
||||
VA_START(fmt);
|
||||
VA_INIT(fmt, const char *);
|
||||
VA_END();
|
||||
return;
|
||||
}
|
||||
|
||||
/*VARARGS1*/
|
||||
void consoletty_error
|
||||
VA_DECL(const char *, s)
|
||||
{
|
||||
VA_START(s);
|
||||
VA_INIT(s, const char *);
|
||||
VA_END();
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef TTY_GRAPHICS
|
||||
void
|
||||
synch_cursor(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
more(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
nethack_enter_consoletty(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
set_altkeyhandler(const char *inName)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
#if defined(USER_SOUNDS) && defined(TTY_SOUND_ESCCODES)
|
||||
void
|
||||
play_usersound_via_idx(int idx, int volume)
|
||||
{
|
||||
}
|
||||
#endif /* USER_SOUNDS && TTY_SOUND_ESCCODES */
|
||||
|
||||
#endif /* TTYSTUBS */
|
||||
117
sys/windows/sysconf.template
Normal file
@@ -0,0 +1,117 @@
|
||||
#
|
||||
# NetHack 3.7 sysconf $NHDT-Date: 1524689357 2018/04/25 20:49:17 $ $NHDT-Branch: NetHack-3.7.0 $:$NHDT-Revision: 1.22 $
|
||||
# Copyright (c) 2015 by Michael Allison
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
#
|
||||
# Sample sysconf file.
|
||||
# The sysconf file is only used if NetHack is compiled with SYSCF defined.
|
||||
# This file uses the same syntax as nethack.cf.
|
||||
|
||||
# Which users can use WIZARD (debugging) mode (the -D flag).
|
||||
# A value of * allows anyone to enter debugging mode.
|
||||
WIZARDS=*
|
||||
|
||||
# Users allowed to use the ! (shell escape) command or to suspend the game.
|
||||
# Uses the same syntax as the WIZARDS option above.
|
||||
#SHELLERS=
|
||||
|
||||
# Show debugging information originating from these source files.
|
||||
# Use '*' for all, or list source files separated by spaces.
|
||||
# Only available if game has been compiled with DEBUG.
|
||||
#DEBUGFILES=*
|
||||
|
||||
# Save end of game dump log to this file.
|
||||
# Only available if NetHack was compiled with DUMPLOG
|
||||
# Allows following placeholders:
|
||||
# %% literal '%'
|
||||
# %v version (eg. "3.7.0-0")
|
||||
# %u game UID
|
||||
# %t game start time, UNIX timestamp format
|
||||
# %T current time, UNIX timestamp format
|
||||
# %d game start time, YYYYMMDDhhmmss format
|
||||
# %D current time, YYYYMMDDhhmmss format
|
||||
# %n player name
|
||||
# %N first character of player name
|
||||
#DUMPLOGFILE=nethack-%n-%d.log
|
||||
|
||||
# Number of bones file pools.
|
||||
# The pool you belong to is determined at game start. You will
|
||||
# load and save bones only from that pool. Generally useful
|
||||
# for public servers only.
|
||||
# Changing this might make existing bones inaccessible.
|
||||
# Disabled by setting to 0, or commenting out.
|
||||
#BONES_POOLS=10
|
||||
|
||||
# Limit the number of simultaneous games (see also nethack.sh).
|
||||
#MAXPLAYERS=10
|
||||
|
||||
# If not null, added to string "To get local support, " in the support
|
||||
# information help.
|
||||
#SUPPORT=call Izchak at extension 42.
|
||||
|
||||
# Uncomment the next line to disable the SEDUCE option.
|
||||
#SEDUCE=0
|
||||
|
||||
# Uncomment the next line to enable some accessibility features such
|
||||
# as S_hero_override and S_pet_override symbols for screen readers
|
||||
# in the user config file.
|
||||
#ACCESSIBILITY=1
|
||||
|
||||
# Record (high score) file options.
|
||||
# CAUTION: changing these after people have started playing games can
|
||||
# lead to lost high scores!
|
||||
# Maximum entries for one person.
|
||||
#PERSMAX=10
|
||||
# Maximum entries in the record file.
|
||||
#ENTRYMAX=100
|
||||
# Minimum points to get an entry.
|
||||
#POINTSMIN=1
|
||||
# Determine identity of "person" in the score file with name (0) or
|
||||
# numeric (1) user id.
|
||||
#PERS_IS_UID=1
|
||||
|
||||
# Maximum number of score file entries to use for random statue names
|
||||
#MAX_STATUENAME_RANK=10
|
||||
|
||||
# 'portable_device_paths' is only supported for Windows. Starting with
|
||||
# 3.6.3, nethack on Windows treats the folder containing nethack.exe and
|
||||
# nethackW.exe as read-only and puts data files which are generated or
|
||||
# modified during play or by the user in assorted folders derived from
|
||||
# user name. 3.6.4 added PORTABLE_DEVICE_PATHS to allow reverting to
|
||||
# the old behavior of having the run-time configuration file and other
|
||||
# data in the same directory as the executable so that the whole thing
|
||||
# can be moved from one machine to another (flash drive or perhaps cloud)
|
||||
# without updating folder paths. Uncomment it and set to 1 to activate.
|
||||
#PORTABLE_DEVICE_PATHS=0
|
||||
|
||||
# *** LOCATIONS ***
|
||||
# IMPORTANT: If you change any of these locations, the directories they
|
||||
# point at must exist. NetHack will not create them for you.
|
||||
#
|
||||
# Before adjusting, you can verify the default locations for files with:
|
||||
# nethack --showpaths
|
||||
#
|
||||
# The location that users can adjust their config file startup options
|
||||
#CONFIGDIR=%USERPROFILE%\NetHack
|
||||
#
|
||||
# The location that a record of game aborts and self-diagnosed game problems
|
||||
# is kept (default=HACKDIR, writeable)
|
||||
#TROUBLEDIR=%USERPROFILE%\NetHack\3.7
|
||||
#
|
||||
# The location that documentation and helps files are placed
|
||||
#HACKDIR=%USERPROFILE%\NetHack\3.7
|
||||
#
|
||||
# The location that level files in progress are stored (writeable)
|
||||
#LEVELDIR=%USERPROFILE%\AppData\Local\NetHack\3.7
|
||||
#
|
||||
# The location where saved games are kept (writeable)
|
||||
#SAVEDIR=%USERPROFILE%\AppData\Local\NetHack\3.7
|
||||
#
|
||||
# The location that bones files are kept (writeable)
|
||||
#BONESDIR=c:\ProgramData\NetHack\3.7
|
||||
#
|
||||
# The location that score files are kept (writeable)
|
||||
#SCOREDIR=c:\ProgramData\NetHack\3.7
|
||||
#
|
||||
# The location that file synchronization locks are stored (writeable)
|
||||
#LOCKDIR=c:\ProgramData\NetHack\3.7
|
||||
8
sys/windows/travis-gcc.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
set -x
|
||||
mkdir -p lib
|
||||
cd lib
|
||||
git clone --depth 1 https://github.com/wmcbrine/PDCurses.git pdcurses
|
||||
#git clone --depth 1 https://github.com/universal-ctags/ctags.git ctags
|
||||
curl -R -O http://www.lua.org/ftp/lua-5.4.3.tar.gz
|
||||
tar zxf lua-5.4.3.tar.gz
|
||||
cd ../
|
||||
1
sys/windows/vs/.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
||||
* NH_filestag=(file%s_for_Visual_Studio_2017_or_2019_Community_Edition_builds)
|
||||
17
sys/windows/vs/.gitignore
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
!NetHack.sln
|
||||
*.db-shm
|
||||
*.db-wal
|
||||
paniclog
|
||||
_pkginfo.txt
|
||||
AppPackages
|
||||
BundleArtifacts
|
||||
report.xml
|
||||
*.cer
|
||||
*.appxbundle
|
||||
NetHackPackage_StoreKey.pfx
|
||||
NetHackPackage_TemporaryKey.pfx
|
||||
NetHackPackage.assets.cache
|
||||
NetHackPackage.wapproj.user
|
||||
NetHackPackage/obj/
|
||||
NetHackW.vcxproj.user
|
||||
obj/
|
||||
BIN
sys/windows/vs/Images/BadgeLogo.scale-100.png
Normal file
|
After Width: | Height: | Size: 238 B |
BIN
sys/windows/vs/Images/BadgeLogo.scale-125.png
Normal file
|
After Width: | Height: | Size: 300 B |
BIN
sys/windows/vs/Images/BadgeLogo.scale-150.png
Normal file
|
After Width: | Height: | Size: 370 B |
BIN
sys/windows/vs/Images/BadgeLogo.scale-200.png
Normal file
|
After Width: | Height: | Size: 520 B |
BIN
sys/windows/vs/Images/BadgeLogo.scale-400.png
Normal file
|
After Width: | Height: | Size: 770 B |
BIN
sys/windows/vs/Images/LargeTile.scale-100.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
sys/windows/vs/Images/LargeTile.scale-125.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
sys/windows/vs/Images/LargeTile.scale-150.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
sys/windows/vs/Images/LargeTile.scale-200.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
sys/windows/vs/Images/LargeTile.scale-400.png
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
sys/windows/vs/Images/LockScreenLogo.scale-200.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
sys/windows/vs/Images/SmallTile.scale-100.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
sys/windows/vs/Images/SmallTile.scale-125.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
sys/windows/vs/Images/SmallTile.scale-150.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
sys/windows/vs/Images/SmallTile.scale-200.png
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
BIN
sys/windows/vs/Images/SmallTile.scale-400.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
sys/windows/vs/Images/SplashScreen.scale-100.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
sys/windows/vs/Images/SplashScreen.scale-125.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
sys/windows/vs/Images/SplashScreen.scale-150.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
sys/windows/vs/Images/SplashScreen.scale-200.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
sys/windows/vs/Images/SplashScreen.scale-400.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
sys/windows/vs/Images/Square150x150Logo.scale-100.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
sys/windows/vs/Images/Square150x150Logo.scale-125.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
sys/windows/vs/Images/Square150x150Logo.scale-150.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
sys/windows/vs/Images/Square150x150Logo.scale-200.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
sys/windows/vs/Images/Square150x150Logo.scale-400.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 954 B |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
BIN
sys/windows/vs/Images/Square44x44Logo.scale-100.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
sys/windows/vs/Images/Square44x44Logo.scale-125.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
sys/windows/vs/Images/Square44x44Logo.scale-150.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
sys/windows/vs/Images/Square44x44Logo.scale-200.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
sys/windows/vs/Images/Square44x44Logo.scale-400.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
sys/windows/vs/Images/Square44x44Logo.targetsize-16.png
Normal file
|
After Width: | Height: | Size: 667 B |
BIN
sys/windows/vs/Images/Square44x44Logo.targetsize-24.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
BIN
sys/windows/vs/Images/Square44x44Logo.targetsize-256.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
sys/windows/vs/Images/Square44x44Logo.targetsize-32.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
sys/windows/vs/Images/Square44x44Logo.targetsize-48.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
sys/windows/vs/Images/StoreLogo.backup.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
sys/windows/vs/Images/StoreLogo.scale-100.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
sys/windows/vs/Images/StoreLogo.scale-125.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
sys/windows/vs/Images/StoreLogo.scale-150.png
Normal file
|
After Width: | Height: | Size: 8.5 KiB |
BIN
sys/windows/vs/Images/StoreLogo.scale-200.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
sys/windows/vs/Images/StoreLogo.scale-400.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
sys/windows/vs/Images/Wide310x150Logo.scale-100.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
sys/windows/vs/Images/Wide310x150Logo.scale-125.png
Normal file
|
After Width: | Height: | Size: 8.5 KiB |
BIN
sys/windows/vs/Images/Wide310x150Logo.scale-150.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
sys/windows/vs/Images/Wide310x150Logo.scale-200.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
sys/windows/vs/Images/Wide310x150Logo.scale-400.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
195
sys/windows/vs/NetHack.sln
Normal file
@@ -0,0 +1,195 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.26730.12
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetHackW", "NetHackW\NetHackW.vcxproj", "{CEC5D360-8804-454F-8591-002184C23499}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{93F10526-209E-41D7-BBEA-775787876895} = {93F10526-209E-41D7-BBEA-775787876895}
|
||||
{63F9B82B-F589-4082-ABE5-D4F0682050AB} = {63F9B82B-F589-4082-ABE5-D4F0682050AB}
|
||||
{BA3DD34C-04B7-40D0-B373-9329AA9E8945} = {BA3DD34C-04B7-40D0-B373-9329AA9E8945}
|
||||
{642BC75D-ABAF-403E-8224-7C725FD4CB42} = {642BC75D-ABAF-403E-8224-7C725FD4CB42}
|
||||
{0303A585-3F83-4BB7-AF6B-1E12C8FB54AC} = {0303A585-3F83-4BB7-AF6B-1E12C8FB54AC}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dlb", "dlb\dlb.vcxproj", "{0303A585-3F83-4BB7-AF6B-1E12C8FB54AC}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{63F9B82B-F589-4082-ABE5-D4F0682050AB} = {63F9B82B-F589-4082-ABE5-D4F0682050AB}
|
||||
{BA3DD34C-04B7-40D0-B373-9329AA9E8945} = {BA3DD34C-04B7-40D0-B373-9329AA9E8945}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "makedefs", "makedefs\makedefs.vcxproj", "{BA3DD34C-04B7-40D0-B373-9329AA9E8945}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "recover", "recover\recover.vcxproj", "{2F35F228-6733-4FE5-9B46-B3AA10D4BC2E}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tile2bmp", "tile2bmp\tile2bmp.vcxproj", "{642BC75D-ABAF-403E-8224-7C725FD4CB42}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{BA3DD34C-04B7-40D0-B373-9329AA9E8945} = {BA3DD34C-04B7-40D0-B373-9329AA9E8945}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tilemap", "tilemap\tilemap.vcxproj", "{93F10526-209E-41D7-BBEA-775787876895}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{BA3DD34C-04B7-40D0-B373-9329AA9E8945} = {BA3DD34C-04B7-40D0-B373-9329AA9E8945}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uudecode", "uudecode\uudecode.vcxproj", "{63F9B82B-F589-4082-ABE5-D4F0682050AB}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{BA3DD34C-04B7-40D0-B373-9329AA9E8945} = {BA3DD34C-04B7-40D0-B373-9329AA9E8945}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetHack", "NetHack\NetHack.vcxproj", "{609BC774-C6F8-4B2B-AA7D-5B3D0EA95751}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{63F9B82B-F589-4082-ABE5-D4F0682050AB} = {63F9B82B-F589-4082-ABE5-D4F0682050AB}
|
||||
{BA3DD34C-04B7-40D0-B373-9329AA9E8945} = {BA3DD34C-04B7-40D0-B373-9329AA9E8945}
|
||||
{6813477F-64B6-4B97-B230-438D0D233385} = {6813477F-64B6-4B97-B230-438D0D233385}
|
||||
{0303A585-3F83-4BB7-AF6B-1E12C8FB54AC} = {0303A585-3F83-4BB7-AF6B-1E12C8FB54AC}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nhdefkey", "nhdefkey\nhdefkey.vcxproj", "{6813477F-64B6-4B97-B230-438D0D233385}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{BA3DD34C-04B7-40D0-B373-9329AA9E8945} = {BA3DD34C-04B7-40D0-B373-9329AA9E8945}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nh340key", "nh340key\nh340key.vcxproj", "{BE04E242-A1E9-4593-B95B-057F37330B76}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{BA3DD34C-04B7-40D0-B373-9329AA9E8945} = {BA3DD34C-04B7-40D0-B373-9329AA9E8945}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nhraykey", "nhraykey\nhraykey.vcxproj", "{2E1F4BB3-3BD7-43AD-8E64-D3B8A2F5D7B2}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{BA3DD34C-04B7-40D0-B373-9329AA9E8945} = {BA3DD34C-04B7-40D0-B373-9329AA9E8945}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PDCurses", "PDCurses\PDCurses.vcxproj", "{BAA70D0F-3EC7-4D10-91F0-974F1F49308B}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{477BF231-48E0-4312-AA12-9D8576215489}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
NetHackProperties.props = NetHackProperties.props
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "NetHackPackage", "NetHackPackage.wapproj", "{6838EC9D-F25D-4779-9CD7-2EDB61E49429}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{CEC5D360-8804-454F-8591-002184C23499}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{CEC5D360-8804-454F-8591-002184C23499}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{CEC5D360-8804-454F-8591-002184C23499}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{CEC5D360-8804-454F-8591-002184C23499}.Debug|x64.Build.0 = Debug|x64
|
||||
{CEC5D360-8804-454F-8591-002184C23499}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{CEC5D360-8804-454F-8591-002184C23499}.Release|Win32.Build.0 = Release|Win32
|
||||
{CEC5D360-8804-454F-8591-002184C23499}.Release|x64.ActiveCfg = Release|x64
|
||||
{CEC5D360-8804-454F-8591-002184C23499}.Release|x64.Build.0 = Release|x64
|
||||
{0303A585-3F83-4BB7-AF6B-1E12C8FB54AC}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{0303A585-3F83-4BB7-AF6B-1E12C8FB54AC}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{0303A585-3F83-4BB7-AF6B-1E12C8FB54AC}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{0303A585-3F83-4BB7-AF6B-1E12C8FB54AC}.Debug|x64.Build.0 = Debug|x64
|
||||
{0303A585-3F83-4BB7-AF6B-1E12C8FB54AC}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{0303A585-3F83-4BB7-AF6B-1E12C8FB54AC}.Release|Win32.Build.0 = Release|Win32
|
||||
{0303A585-3F83-4BB7-AF6B-1E12C8FB54AC}.Release|x64.ActiveCfg = Release|x64
|
||||
{0303A585-3F83-4BB7-AF6B-1E12C8FB54AC}.Release|x64.Build.0 = Release|x64
|
||||
{BA3DD34C-04B7-40D0-B373-9329AA9E8945}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{BA3DD34C-04B7-40D0-B373-9329AA9E8945}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{BA3DD34C-04B7-40D0-B373-9329AA9E8945}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BA3DD34C-04B7-40D0-B373-9329AA9E8945}.Debug|x64.Build.0 = Debug|x64
|
||||
{BA3DD34C-04B7-40D0-B373-9329AA9E8945}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{BA3DD34C-04B7-40D0-B373-9329AA9E8945}.Release|Win32.Build.0 = Release|Win32
|
||||
{BA3DD34C-04B7-40D0-B373-9329AA9E8945}.Release|x64.ActiveCfg = Release|x64
|
||||
{BA3DD34C-04B7-40D0-B373-9329AA9E8945}.Release|x64.Build.0 = Release|x64
|
||||
{2F35F228-6733-4FE5-9B46-B3AA10D4BC2E}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2F35F228-6733-4FE5-9B46-B3AA10D4BC2E}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{2F35F228-6733-4FE5-9B46-B3AA10D4BC2E}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2F35F228-6733-4FE5-9B46-B3AA10D4BC2E}.Debug|x64.Build.0 = Debug|x64
|
||||
{2F35F228-6733-4FE5-9B46-B3AA10D4BC2E}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{2F35F228-6733-4FE5-9B46-B3AA10D4BC2E}.Release|Win32.Build.0 = Release|Win32
|
||||
{2F35F228-6733-4FE5-9B46-B3AA10D4BC2E}.Release|x64.ActiveCfg = Release|x64
|
||||
{2F35F228-6733-4FE5-9B46-B3AA10D4BC2E}.Release|x64.Build.0 = Release|x64
|
||||
{642BC75D-ABAF-403E-8224-7C725FD4CB42}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{642BC75D-ABAF-403E-8224-7C725FD4CB42}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{642BC75D-ABAF-403E-8224-7C725FD4CB42}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{642BC75D-ABAF-403E-8224-7C725FD4CB42}.Debug|x64.Build.0 = Debug|x64
|
||||
{642BC75D-ABAF-403E-8224-7C725FD4CB42}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{642BC75D-ABAF-403E-8224-7C725FD4CB42}.Release|Win32.Build.0 = Release|Win32
|
||||
{642BC75D-ABAF-403E-8224-7C725FD4CB42}.Release|x64.ActiveCfg = Release|x64
|
||||
{642BC75D-ABAF-403E-8224-7C725FD4CB42}.Release|x64.Build.0 = Release|x64
|
||||
{93F10526-209E-41D7-BBEA-775787876895}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{93F10526-209E-41D7-BBEA-775787876895}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{93F10526-209E-41D7-BBEA-775787876895}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{93F10526-209E-41D7-BBEA-775787876895}.Debug|x64.Build.0 = Debug|x64
|
||||
{93F10526-209E-41D7-BBEA-775787876895}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{93F10526-209E-41D7-BBEA-775787876895}.Release|Win32.Build.0 = Release|Win32
|
||||
{93F10526-209E-41D7-BBEA-775787876895}.Release|x64.ActiveCfg = Release|x64
|
||||
{93F10526-209E-41D7-BBEA-775787876895}.Release|x64.Build.0 = Release|x64
|
||||
{63F9B82B-F589-4082-ABE5-D4F0682050AB}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{63F9B82B-F589-4082-ABE5-D4F0682050AB}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{63F9B82B-F589-4082-ABE5-D4F0682050AB}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{63F9B82B-F589-4082-ABE5-D4F0682050AB}.Debug|x64.Build.0 = Debug|x64
|
||||
{63F9B82B-F589-4082-ABE5-D4F0682050AB}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{63F9B82B-F589-4082-ABE5-D4F0682050AB}.Release|Win32.Build.0 = Release|Win32
|
||||
{63F9B82B-F589-4082-ABE5-D4F0682050AB}.Release|x64.ActiveCfg = Release|x64
|
||||
{63F9B82B-F589-4082-ABE5-D4F0682050AB}.Release|x64.Build.0 = Release|x64
|
||||
{609BC774-C6F8-4B2B-AA7D-5B3D0EA95751}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{609BC774-C6F8-4B2B-AA7D-5B3D0EA95751}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{609BC774-C6F8-4B2B-AA7D-5B3D0EA95751}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{609BC774-C6F8-4B2B-AA7D-5B3D0EA95751}.Debug|x64.Build.0 = Debug|x64
|
||||
{609BC774-C6F8-4B2B-AA7D-5B3D0EA95751}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{609BC774-C6F8-4B2B-AA7D-5B3D0EA95751}.Release|Win32.Build.0 = Release|Win32
|
||||
{609BC774-C6F8-4B2B-AA7D-5B3D0EA95751}.Release|x64.ActiveCfg = Release|x64
|
||||
{609BC774-C6F8-4B2B-AA7D-5B3D0EA95751}.Release|x64.Build.0 = Release|x64
|
||||
{6813477F-64B6-4B97-B230-438D0D233385}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6813477F-64B6-4B97-B230-438D0D233385}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6813477F-64B6-4B97-B230-438D0D233385}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6813477F-64B6-4B97-B230-438D0D233385}.Debug|x64.Build.0 = Debug|x64
|
||||
{6813477F-64B6-4B97-B230-438D0D233385}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6813477F-64B6-4B97-B230-438D0D233385}.Release|Win32.Build.0 = Release|Win32
|
||||
{6813477F-64B6-4B97-B230-438D0D233385}.Release|x64.ActiveCfg = Release|x64
|
||||
{6813477F-64B6-4B97-B230-438D0D233385}.Release|x64.Build.0 = Release|x64
|
||||
{BE04E242-A1E9-4593-B95B-057F37330B76}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{BE04E242-A1E9-4593-B95B-057F37330B76}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{BE04E242-A1E9-4593-B95B-057F37330B76}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BE04E242-A1E9-4593-B95B-057F37330B76}.Debug|x64.Build.0 = Debug|x64
|
||||
{BE04E242-A1E9-4593-B95B-057F37330B76}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{BE04E242-A1E9-4593-B95B-057F37330B76}.Release|Win32.Build.0 = Release|Win32
|
||||
{BE04E242-A1E9-4593-B95B-057F37330B76}.Release|x64.ActiveCfg = Release|x64
|
||||
{BE04E242-A1E9-4593-B95B-057F37330B76}.Release|x64.Build.0 = Release|x64
|
||||
{2E1F4BB3-3BD7-43AD-8E64-D3B8A2F5D7B2}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2E1F4BB3-3BD7-43AD-8E64-D3B8A2F5D7B2}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{2E1F4BB3-3BD7-43AD-8E64-D3B8A2F5D7B2}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2E1F4BB3-3BD7-43AD-8E64-D3B8A2F5D7B2}.Debug|x64.Build.0 = Debug|x64
|
||||
{2E1F4BB3-3BD7-43AD-8E64-D3B8A2F5D7B2}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{2E1F4BB3-3BD7-43AD-8E64-D3B8A2F5D7B2}.Release|Win32.Build.0 = Release|Win32
|
||||
{2E1F4BB3-3BD7-43AD-8E64-D3B8A2F5D7B2}.Release|x64.ActiveCfg = Release|x64
|
||||
{2E1F4BB3-3BD7-43AD-8E64-D3B8A2F5D7B2}.Release|x64.Build.0 = Release|x64
|
||||
{BAA70D0F-3EC7-4D10-91F0-974F1F49308B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{BAA70D0F-3EC7-4D10-91F0-974F1F49308B}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{BAA70D0F-3EC7-4D10-91F0-974F1F49308B}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BAA70D0F-3EC7-4D10-91F0-974F1F49308B}.Debug|x64.Build.0 = Debug|x64
|
||||
{BAA70D0F-3EC7-4D10-91F0-974F1F49308B}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{BAA70D0F-3EC7-4D10-91F0-974F1F49308B}.Release|Win32.Build.0 = Release|Win32
|
||||
{BAA70D0F-3EC7-4D10-91F0-974F1F49308B}.Release|x64.ActiveCfg = Release|x64
|
||||
{BAA70D0F-3EC7-4D10-91F0-974F1F49308B}.Release|x64.Build.0 = Release|x64
|
||||
{6838EC9D-F25D-4779-9CD7-2EDB61E49429}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6838EC9D-F25D-4779-9CD7-2EDB61E49429}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6838EC9D-F25D-4779-9CD7-2EDB61E49429}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{6838EC9D-F25D-4779-9CD7-2EDB61E49429}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6838EC9D-F25D-4779-9CD7-2EDB61E49429}.Debug|x64.Build.0 = Debug|x64
|
||||
{6838EC9D-F25D-4779-9CD7-2EDB61E49429}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{6838EC9D-F25D-4779-9CD7-2EDB61E49429}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6838EC9D-F25D-4779-9CD7-2EDB61E49429}.Release|Win32.Build.0 = Release|Win32
|
||||
{6838EC9D-F25D-4779-9CD7-2EDB61E49429}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{6838EC9D-F25D-4779-9CD7-2EDB61E49429}.Release|x64.ActiveCfg = Release|x64
|
||||
{6838EC9D-F25D-4779-9CD7-2EDB61E49429}.Release|x64.Build.0 = Release|x64
|
||||
{6838EC9D-F25D-4779-9CD7-2EDB61E49429}.Release|x64.Deploy.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {6DF8F690-552A-4329-8FAB-DD447071A473}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
271
sys/windows/vs/NetHack/NetHack.vcxproj
Normal file
@@ -0,0 +1,271 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\config.props" />
|
||||
<Import Project="..\dirs.props" />
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{609BC774-C6F8-4B2B-AA7D-5B3D0EA95751}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>NetHack</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<Import Project="$(vsDir)default.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<Import Project="$(vsDir)NetHackProperties.props" />
|
||||
<Import Project="$(vsDir)console.props" />
|
||||
<Import Project="$(vsDir)common.props" />
|
||||
<Import Project="$(vsDir)files.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(BinDir)</OutDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="Exists('$(PDCURSES)')">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(PDCURSES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>CURSES_GRAPHICS;CHTYPE_32;PDC_NCMOUSE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalLibraryDirectories>$(ToolsDir)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>PDCurses.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalOptions>/Gs /Oi- /w44774 %(AdditionalOptions)</AdditionalOptions>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<AdditionalIncludeDirectories>$(WinWin32Dir);$(IncDir);$(SysWindDir);$(SysShareDir);$(WinShareDir);$(LuaDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>TILES;WIN32CON;DLB;MSWIN_GRAPHICS;SAFEPROCS;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;winmm.lib;Winmm.lib;bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="@(Lua)">
|
||||
<DisableSpecificWarnings>4701;4702;4244;4310;4774</DisableSpecificWarnings>
|
||||
<AdditionalOptions>%(AdditionalOptions) /wd4774</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(SrcDir)allmain.c" />
|
||||
<ClCompile Include="$(SrcDir)alloc.c" />
|
||||
<ClCompile Include="$(SrcDir)apply.c" />
|
||||
<ClCompile Include="$(SrcDir)artifact.c" />
|
||||
<ClCompile Include="$(SrcDir)attrib.c" />
|
||||
<ClCompile Include="$(SrcDir)ball.c" />
|
||||
<ClCompile Include="$(SrcDir)bones.c" />
|
||||
<ClCompile Include="$(SrcDir)botl.c" />
|
||||
<ClCompile Include="$(SrcDir)cmd.c" />
|
||||
<ClCompile Include="$(SrcDir)dbridge.c" />
|
||||
<ClCompile Include="$(SrcDir)decl.c" />
|
||||
<ClCompile Include="$(SrcDir)detect.c" />
|
||||
<ClCompile Include="$(SrcDir)dig.c" />
|
||||
<ClCompile Include="$(SrcDir)display.c" />
|
||||
<ClCompile Include="$(SrcDir)dlb.c" />
|
||||
<ClCompile Include="$(SrcDir)do.c" />
|
||||
<ClCompile Include="$(SrcDir)dog.c" />
|
||||
<ClCompile Include="$(SrcDir)dogmove.c" />
|
||||
<ClCompile Include="$(SrcDir)dokick.c" />
|
||||
<ClCompile Include="$(SrcDir)dothrow.c" />
|
||||
<ClCompile Include="$(SrcDir)do_name.c" />
|
||||
<ClCompile Include="$(SrcDir)do_wear.c" />
|
||||
<ClCompile Include="$(SrcDir)drawing.c" />
|
||||
<ClCompile Include="$(SrcDir)dungeon.c" />
|
||||
<ClCompile Include="$(SrcDir)eat.c" />
|
||||
<ClCompile Include="$(SrcDir)end.c" />
|
||||
<ClCompile Include="$(SrcDir)engrave.c" />
|
||||
<ClCompile Include="$(SrcDir)exper.c" />
|
||||
<ClCompile Include="$(SrcDir)explode.c" />
|
||||
<ClCompile Include="$(SrcDir)extralev.c" />
|
||||
<ClCompile Include="$(SrcDir)files.c" />
|
||||
<ClCompile Include="$(SrcDir)fountain.c" />
|
||||
<ClCompile Include="$(SrcDir)hack.c" />
|
||||
<ClCompile Include="$(SrcDir)hacklib.c" />
|
||||
<ClCompile Include="$(SrcDir)insight.c" />
|
||||
<ClCompile Include="$(SrcDir)invent.c" />
|
||||
<ClCompile Include="$(SrcDir)isaac64.c" />
|
||||
<ClCompile Include="$(SrcDir)light.c" />
|
||||
<ClCompile Include="$(SrcDir)lock.c" />
|
||||
<ClCompile Include="$(SrcDir)mail.c" />
|
||||
<ClCompile Include="$(SrcDir)makemon.c" />
|
||||
<ClCompile Include="$(SrcDir)mcastu.c" />
|
||||
<ClCompile Include="$(SrcDir)mdlib.c" />
|
||||
<ClCompile Include="$(SrcDir)mhitm.c" />
|
||||
<ClCompile Include="$(SrcDir)mhitu.c" />
|
||||
<ClCompile Include="$(SrcDir)minion.c" />
|
||||
<ClCompile Include="$(SrcDir)mklev.c" />
|
||||
<ClCompile Include="$(SrcDir)mkmap.c" />
|
||||
<ClCompile Include="$(SrcDir)mkmaze.c" />
|
||||
<ClCompile Include="$(SrcDir)mkobj.c" />
|
||||
<ClCompile Include="$(SrcDir)mkroom.c" />
|
||||
<ClCompile Include="$(SrcDir)mon.c" />
|
||||
<ClCompile Include="$(SrcDir)mondata.c" />
|
||||
<ClCompile Include="$(SrcDir)monmove.c" />
|
||||
<ClCompile Include="$(SrcDir)monst.c" />
|
||||
<ClCompile Include="$(SrcDir)mplayer.c" />
|
||||
<ClCompile Include="$(SrcDir)mthrowu.c" />
|
||||
<ClCompile Include="$(SrcDir)muse.c" />
|
||||
<ClCompile Include="$(SrcDir)music.c" />
|
||||
<ClCompile Include="$(SrcDir)nhlobj.c" />
|
||||
<ClCompile Include="$(SrcDir)nhlsel.c" />
|
||||
<ClCompile Include="$(SrcDir)nhlua.c" />
|
||||
<ClCompile Include="$(SrcDir)objects.c" />
|
||||
<ClCompile Include="$(SrcDir)objnam.c" />
|
||||
<ClCompile Include="$(SrcDir)options.c" />
|
||||
<ClCompile Include="$(SrcDir)o_init.c" />
|
||||
<ClCompile Include="$(SrcDir)pager.c" />
|
||||
<ClCompile Include="$(SrcDir)pickup.c" />
|
||||
<ClCompile Include="$(SrcDir)pline.c" />
|
||||
<ClCompile Include="$(SrcDir)polyself.c" />
|
||||
<ClCompile Include="$(SrcDir)potion.c" />
|
||||
<ClCompile Include="$(SrcDir)pray.c" />
|
||||
<ClCompile Include="$(SrcDir)priest.c" />
|
||||
<ClCompile Include="$(SrcDir)quest.c" />
|
||||
<ClCompile Include="$(SrcDir)questpgr.c" />
|
||||
<ClCompile Include="$(SrcDir)read.c" />
|
||||
<ClCompile Include="$(SrcDir)rect.c" />
|
||||
<ClCompile Include="$(SrcDir)region.c" />
|
||||
<ClCompile Include="$(SrcDir)restore.c" />
|
||||
<ClCompile Include="$(SrcDir)rip.c" />
|
||||
<ClCompile Include="$(SrcDir)rnd.c" />
|
||||
<ClCompile Include="$(SrcDir)role.c" />
|
||||
<ClCompile Include="$(SrcDir)rumors.c" />
|
||||
<ClCompile Include="$(SrcDir)save.c" />
|
||||
<ClCompile Include="$(SrcDir)sfstruct.c" />
|
||||
<ClCompile Include="$(SrcDir)shk.c" />
|
||||
<ClCompile Include="$(SrcDir)shknam.c" />
|
||||
<ClCompile Include="$(SrcDir)sit.c" />
|
||||
<ClCompile Include="$(SrcDir)sounds.c" />
|
||||
<ClCompile Include="$(SrcDir)spell.c" />
|
||||
<ClCompile Include="$(SrcDir)sp_lev.c" />
|
||||
<ClCompile Include="$(SrcDir)steal.c" />
|
||||
<ClCompile Include="$(SrcDir)steed.c" />
|
||||
<ClCompile Include="$(SrcDir)symbols.c" />
|
||||
<ClCompile Include="$(SrcDir)sys.c" />
|
||||
<ClCompile Include="$(SrcDir)teleport.c" />
|
||||
<ClCompile Include="$(SrcDir)tile.c" />
|
||||
<ClCompile Include="$(SrcDir)timeout.c" />
|
||||
<ClCompile Include="$(SrcDir)topten.c" />
|
||||
<ClCompile Include="$(SrcDir)track.c" />
|
||||
<ClCompile Include="$(SrcDir)trap.c" />
|
||||
<ClCompile Include="$(SrcDir)uhitm.c" />
|
||||
<ClCompile Include="$(SrcDir)u_init.c" />
|
||||
<ClCompile Include="$(SrcDir)vault.c" />
|
||||
<ClCompile Include="$(SrcDir)version.c" />
|
||||
<ClCompile Include="$(SrcDir)vision.c" />
|
||||
<ClCompile Include="$(SrcDir)weapon.c" />
|
||||
<ClCompile Include="$(SrcDir)were.c" />
|
||||
<ClCompile Include="$(SrcDir)wield.c" />
|
||||
<ClCompile Include="$(SrcDir)windows.c" />
|
||||
<ClCompile Include="$(SrcDir)wizard.c" />
|
||||
<ClCompile Include="$(SrcDir)worm.c" />
|
||||
<ClCompile Include="$(SrcDir)worn.c" />
|
||||
<ClCompile Include="$(SrcDir)write.c" />
|
||||
<ClCompile Include="$(SrcDir)zap.c" />
|
||||
<ClCompile Include="$(SysShareDir)cppregex.cpp" />
|
||||
<ClCompile Include="$(SysShareDir)nhlan.c" />
|
||||
<ClCompile Include="$(SysShareDir)random.c" />
|
||||
<ClCompile Include="$(SysWindDir)ntsound.c" />
|
||||
<ClCompile Include="$(SysWindDir)consoletty.c" />
|
||||
<ClCompile Include="$(SysWindDir)stubs.c">
|
||||
<PreprocessorDefinitions>GUISTUB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(SysWindDir)windmain.c" />
|
||||
<ClCompile Include="$(SysWindDir)windsys.c" />
|
||||
<ClCompile Include="$(WinShareDir)safeproc.c" />
|
||||
<ClCompile Include="$(WinTtyDir)getline.c" />
|
||||
<ClCompile Include="$(WinTtyDir)topl.c" />
|
||||
<ClCompile Include="$(WinTtyDir)wintty.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(WinCursDir)cursdial.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(WinCursDir)cursinit.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(WinCursDir)cursinvt.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(WinCursDir)cursmain.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(WinCursDir)cursmesg.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(WinCursDir)cursmisc.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(WinCursDir)cursstat.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(WinCursDir)curswins.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="$(IncDir)align.h" />
|
||||
<ClInclude Include="$(IncDir)artifact.h" />
|
||||
<ClInclude Include="$(IncDir)artilist.h" />
|
||||
<ClInclude Include="$(IncDir)attrib.h" />
|
||||
<ClInclude Include="$(IncDir)botl.h" />
|
||||
<ClInclude Include="$(IncDir)color.h" />
|
||||
<ClInclude Include="$(IncDir)config.h" />
|
||||
<ClInclude Include="$(IncDir)config1.h" />
|
||||
<ClInclude Include="$(IncDir)context.h" />
|
||||
<ClInclude Include="$(IncDir)coord.h" />
|
||||
<ClInclude Include="$(IncDir)date.h" />
|
||||
<ClInclude Include="$(IncDir)decl.h" />
|
||||
<ClInclude Include="$(IncDir)display.h" />
|
||||
<ClInclude Include="$(IncDir)dlb.h" />
|
||||
<ClInclude Include="$(IncDir)dungeon.h" />
|
||||
<ClInclude Include="$(IncDir)engrave.h" />
|
||||
<ClInclude Include="$(IncDir)extern.h" />
|
||||
<ClInclude Include="$(IncDir)flag.h" />
|
||||
<ClInclude Include="$(IncDir)func_tab.h" />
|
||||
<ClInclude Include="$(IncDir)global.h" />
|
||||
<ClInclude Include="$(IncDir)hack.h" />
|
||||
<ClInclude Include="$(IncDir)isaac64.h" />
|
||||
<ClInclude Include="$(IncDir)mextra.h" />
|
||||
<ClInclude Include="$(IncDir)mfndpos.h" />
|
||||
<ClInclude Include="$(IncDir)mkroom.h" />
|
||||
<ClInclude Include="$(IncDir)monattk.h" />
|
||||
<ClInclude Include="$(IncDir)mondata.h" />
|
||||
<ClInclude Include="$(IncDir)monflag.h" />
|
||||
<ClInclude Include="$(IncDir)monst.h" />
|
||||
<ClInclude Include="$(IncDir)monsym.h" />
|
||||
<ClInclude Include="$(IncDir)nhlua.h" />
|
||||
<ClInclude Include="$(IncDir)windconf.h" />
|
||||
<ClInclude Include="$(IncDir)obj.h" />
|
||||
<ClInclude Include="$(IncDir)objclass.h" />
|
||||
<ClInclude Include="$(IncDir)onames.h" />
|
||||
<ClInclude Include="$(IncDir)patchlevel.h" />
|
||||
<ClInclude Include="$(IncDir)permonst.h" />
|
||||
<ClInclude Include="$(IncDir)pm.h" />
|
||||
<ClInclude Include="$(IncDir)prop.h" />
|
||||
<ClInclude Include="$(IncDir)quest.h" />
|
||||
<ClInclude Include="$(IncDir)rect.h" />
|
||||
<ClInclude Include="$(IncDir)region.h" />
|
||||
<ClInclude Include="$(IncDir)rm.h" />
|
||||
<ClInclude Include="$(IncDir)skills.h" />
|
||||
<ClInclude Include="$(IncDir)spell.h" />
|
||||
<ClInclude Include="$(IncDir)sp_lev.h" />
|
||||
<ClInclude Include="$(IncDir)timeout.h" />
|
||||
<ClInclude Include="$(IncDir)tradstdc.h" />
|
||||
<ClInclude Include="$(IncDir)trap.h" />
|
||||
<ClInclude Include="$(IncDir)vision.h" />
|
||||
<ClInclude Include="$(IncDir)winprocs.h" />
|
||||
<ClInclude Include="$(IncDir)wintty.h" />
|
||||
<ClInclude Include="$(IncDir)wintype.h" />
|
||||
<ClInclude Include="$(IncDir)you.h" />
|
||||
<ClInclude Include="$(IncDir)youprop.h" />
|
||||
<ClInclude Include="$(WinWin32Dir)nhresource.h" />
|
||||
<ClInclude Include="$(WinCursDir)cursdial.h" />
|
||||
<ClInclude Include="$(WinCursDir)cursinit.h" />
|
||||
<ClInclude Include="$(WinCursDir)cursinvt.h" />
|
||||
<ClInclude Include="$(WinCursDir)cursmesg.h" />
|
||||
<ClInclude Include="$(WinCursDir)cursmisc.h" />
|
||||
<ClInclude Include="$(WinCursDir)cursstat.h" />
|
||||
<ClInclude Include="$(WinCursDir)curswins.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="$(WinWin32Dir)NetHack.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="$(WinWin32Dir)nethack.ico" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="cpp.hint" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<Target Name="AfterBuild">
|
||||
<MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
|
||||
</Target>
|
||||
<Target Name="AfterClean">
|
||||
<MSBuild Projects="afternethack.proj" Targets="Clean" Properties="Configuration=$(Configuration)" />
|
||||
</Target>
|
||||
<Target Name="AfterRebuild">
|
||||
<MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
|
||||
</Target>
|
||||
</Project>
|
||||
13
sys/windows/vs/NetHack/afternethack.proj
Normal file
@@ -0,0 +1,13 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\dirs.props" />
|
||||
<!-- TODO not copying record -->
|
||||
<Target Name="Build"
|
||||
Inputs="$(SysWindDir).nethackrc.template;$(DocDir)Guidebook.txt;$(DatDir)license;$(SysWindDir)sysconf.template;$(DocDir)nethack.txt;$(DatDir)symbols;$(WinWin32Dir)record;$(DatDir)opthelp"
|
||||
Outputs="$(BinDir).nethackrc.template;$(BinDir)Guidebook.txt;$(BinDir)license;$(BinDir)sysconf.template;$(BinDir)symbols.template;$(BinDir)record;$(BinDir)opthelp">
|
||||
<Copy SourceFiles="$(SysWindDir).nethackrc.template;$(DocDir)Guidebook.txt;$(DatDir)license;$(SysWindDir)sysconf.template;$(DocDir)nethack.txt;$(DatDir)symbols;$(WinWin32Dir)record;$(DatDir)opthelp"
|
||||
DestinationFiles="$(BinDir).nethackrc.template;$(BinDir)Guidebook.txt;$(BinDir)license;$(BinDir)sysconf.template;$(BinDir)nethack.txt;$(BinDir)symbols.template;$(BinDir)record;$(BinDir)opthelp" />
|
||||
</Target>
|
||||
<Target Name="Clean">
|
||||
<Delete Files="$(BinDir).nethackrc.template;$(BinDir)Guidebook.txt;$(BinDir)license;$(BinDir)sysconf.template;$(BinDir)nethack.txt;$(BinDir)symbols.template;$(BinDir)record;$(BinDir)opthelp"/>
|
||||
</Target>
|
||||
</Project>
|
||||
29
sys/windows/vs/NetHackPackage.appxmanifest
Normal file
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" IgnorableNamespaces="uap mp rescap">
|
||||
<Identity Name="30485NetHackDevTeam.NetHack3.6" Publisher="CN=8BDC628A-FAAA-4EBA-8B5B-EB61BA93BA1F" Version="363.0.28.0" />
|
||||
<Properties>
|
||||
<DisplayName>NetHack 3.7</DisplayName>
|
||||
<PublisherDisplayName>NetHack DevTeam</PublisherDisplayName>
|
||||
<Logo>Images\StoreLogo.png</Logo>
|
||||
</Properties>
|
||||
<Dependencies>
|
||||
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
|
||||
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14393.0" MaxVersionTested="10.0.14393.0" />
|
||||
</Dependencies>
|
||||
<Resources>
|
||||
<Resource Language="x-generate" />
|
||||
</Resources>
|
||||
<Applications>
|
||||
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="$targetentrypoint$">
|
||||
<uap:VisualElements DisplayName="NetHack 3.7" Description="NetHack 3.7" BackgroundColor="transparent" Square150x150Logo="Images\Square150x150Logo.png" Square44x44Logo="Images\Square44x44Logo.png">
|
||||
<uap:DefaultTile Wide310x150Logo="Images\Wide310x150Logo.png" Square310x310Logo="Images\LargeTile.png" Square71x71Logo="Images\SmallTile.png">
|
||||
</uap:DefaultTile>
|
||||
<uap:SplashScreen Image="Images\SplashScreen.png" />
|
||||
</uap:VisualElements>
|
||||
</Application>
|
||||
</Applications>
|
||||
<Capabilities>
|
||||
<Capability Name="internetClient" />
|
||||
<rescap:Capability Name="runFullTrust" />
|
||||
</Capabilities>
|
||||
</Package>
|
||||
144
sys/windows/vs/NetHackPackage.wapproj
Normal file
@@ -0,0 +1,144 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '15.0'">
|
||||
<VisualStudioVersion>15.0</VisualStudioVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<WapProjPath Condition="'$(WapProjPath)'==''">$(MSBuildExtensionsPath)\Microsoft\DesktopBridge\</WapProjPath>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(WapProjPath)\Microsoft.DesktopBridge.props" />
|
||||
<Import Project="NetHackProperties.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(BinDir)</OutDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>6838ec9d-f25d-4779-9cd7-2edb61e49429</ProjectGuid>
|
||||
<TargetPlatformVersion>10.0.17763.0</TargetPlatformVersion>
|
||||
<TargetPlatformMinVersion>10.0.15063.0</TargetPlatformMinVersion>
|
||||
<DefaultLanguage>en-US</DefaultLanguage>
|
||||
<PackageCertificateKeyFile>NetHackPackage_StoreKey.pfx</PackageCertificateKeyFile>
|
||||
<EntryPointProjectUniqueName>NetHackW\NetHackW.vcxproj</EntryPointProjectUniqueName>
|
||||
<PackageCertificateThumbprint>19591BE8832D6EFED75019EACE7C4CA42ABC90D4</PackageCertificateThumbprint>
|
||||
<GenerateAppInstallerFile>False</GenerateAppInstallerFile>
|
||||
<AppxAutoIncrementPackageRevision>True</AppxAutoIncrementPackageRevision>
|
||||
<AppxBundlePlatforms>x86</AppxBundlePlatforms>
|
||||
<AppInstallerUpdateFrequency>1</AppInstallerUpdateFrequency>
|
||||
<AppInstallerCheckForUpdateFrequency>OnApplicationRun</AppInstallerCheckForUpdateFrequency>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<AppxBundle>Always</AppxBundle>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<AppxBundle>Always</AppxBundle>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<AppxBundle>Always</AppxBundle>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<AppxBundle>Always</AppxBundle>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<AppxManifest Include="NetHackPackage.appxmanifest">
|
||||
<SubType>Designer</SubType>
|
||||
</AppxManifest>
|
||||
<None Include="NetHackPackage_TemporaryKey.pfx" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Images\BadgeLogo.scale-100.png" />
|
||||
<Content Include="Images\BadgeLogo.scale-125.png" />
|
||||
<Content Include="Images\BadgeLogo.scale-150.png" />
|
||||
<Content Include="Images\BadgeLogo.scale-200.png" />
|
||||
<Content Include="Images\BadgeLogo.scale-400.png" />
|
||||
<Content Include="Images\LargeTile.scale-100.png" />
|
||||
<Content Include="Images\LargeTile.scale-125.png" />
|
||||
<Content Include="Images\LargeTile.scale-150.png" />
|
||||
<Content Include="Images\LargeTile.scale-200.png" />
|
||||
<Content Include="Images\LargeTile.scale-400.png" />
|
||||
<Content Include="Images\LockScreenLogo.scale-200.png" />
|
||||
<Content Include="Images\SmallTile.scale-100.png" />
|
||||
<Content Include="Images\SmallTile.scale-125.png" />
|
||||
<Content Include="Images\SmallTile.scale-150.png" />
|
||||
<Content Include="Images\SmallTile.scale-200.png" />
|
||||
<Content Include="Images\SmallTile.scale-400.png" />
|
||||
<Content Include="Images\SplashScreen.scale-100.png" />
|
||||
<Content Include="Images\SplashScreen.scale-125.png" />
|
||||
<Content Include="Images\SplashScreen.scale-150.png" />
|
||||
<Content Include="Images\SplashScreen.scale-200.png" />
|
||||
<Content Include="Images\SplashScreen.scale-400.png" />
|
||||
<Content Include="Images\Square150x150Logo.scale-100.png" />
|
||||
<Content Include="Images\Square150x150Logo.scale-125.png" />
|
||||
<Content Include="Images\Square150x150Logo.scale-150.png" />
|
||||
<Content Include="Images\Square150x150Logo.scale-200.png" />
|
||||
<Content Include="Images\Square150x150Logo.scale-400.png" />
|
||||
<Content Include="Images\Square44x44Logo.altform-unplated_targetsize-16.png" />
|
||||
<Content Include="Images\Square44x44Logo.altform-unplated_targetsize-256.png" />
|
||||
<Content Include="Images\Square44x44Logo.altform-unplated_targetsize-32.png" />
|
||||
<Content Include="Images\Square44x44Logo.altform-unplated_targetsize-48.png" />
|
||||
<Content Include="Images\Square44x44Logo.scale-100.png" />
|
||||
<Content Include="Images\Square44x44Logo.scale-125.png" />
|
||||
<Content Include="Images\Square44x44Logo.scale-150.png" />
|
||||
<Content Include="Images\Square44x44Logo.scale-200.png" />
|
||||
<Content Include="Images\Square44x44Logo.scale-400.png" />
|
||||
<Content Include="Images\Square44x44Logo.targetsize-16.png" />
|
||||
<Content Include="Images\Square44x44Logo.targetsize-24.png" />
|
||||
<Content Include="Images\Square44x44Logo.targetsize-24_altform-unplated.png" />
|
||||
<Content Include="Images\Square44x44Logo.targetsize-256.png" />
|
||||
<Content Include="Images\Square44x44Logo.targetsize-32.png" />
|
||||
<Content Include="Images\Square44x44Logo.targetsize-48.png" />
|
||||
<Content Include="Images\StoreLogo.scale-100.png" />
|
||||
<Content Include="Images\StoreLogo.scale-125.png" />
|
||||
<Content Include="Images\StoreLogo.scale-150.png" />
|
||||
<Content Include="Images\StoreLogo.scale-200.png" />
|
||||
<Content Include="Images\StoreLogo.scale-400.png" />
|
||||
<Content Include="Images\Wide310x150Logo.scale-100.png" />
|
||||
<Content Include="Images\Wide310x150Logo.scale-125.png" />
|
||||
<Content Include="Images\Wide310x150Logo.scale-150.png" />
|
||||
<Content Include="Images\Wide310x150Logo.scale-200.png" />
|
||||
<Content Include="..\..\..\binary\$(Configuration)\$(Platform)\.nethackrc.template">
|
||||
<Link>NetHackW\.nethackrc.template</Link>
|
||||
</Content>
|
||||
<Content Include="..\..\..\binary\$(Configuration)\$(Platform)\Guidebook.txt">
|
||||
<Link>NetHackW\Guidebook.txt</Link>
|
||||
</Content>
|
||||
<Content Include="..\..\..\binary\$(Configuration)\$(Platform)\license">
|
||||
<Link>NetHackW\license</Link>
|
||||
</Content>
|
||||
<Content Include="..\..\..\binary\$(Configuration)\$(Platform)\nhdat$(VERSION_MAJOR)$(VERSION_MINOR)$(PATCHLEVEL)">
|
||||
<Link>NetHackW\nhdat$(VERSION_MAJOR)$(VERSION_MINOR)$(PATCHLEVEL)</Link>
|
||||
</Content>
|
||||
<Content Include="..\..\..\binary\$(Configuration)\$(Platform)\opthelp">
|
||||
<Link>NetHackW\opthelp</Link>
|
||||
</Content>
|
||||
<Content Include="..\..\..\binary\$(Configuration)\$(Platform)\symbols.template">
|
||||
<Link>NetHackW\symbols.template</Link>
|
||||
</Content>
|
||||
<Content Include="..\..\..\binary\$(Configuration)\$(Platform)\sysconf.template">
|
||||
<Link>NetHackW\sysconf.template</Link>
|
||||
</Content>
|
||||
<Content Include="Images\Wide310x150Logo.scale-400.png" />
|
||||
<None Include="NetHackPackage_StoreKey.pfx" />
|
||||
<None Include="Package.StoreAssociation.xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="NetHackW\NetHackW.vcxproj" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(WapProjPath)\Microsoft.DesktopBridge.targets" />
|
||||
</Project>
|
||||
29
sys/windows/vs/NetHackPackage/NetHackPackage.appxmanifest
Normal file
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" IgnorableNamespaces="uap mp rescap">
|
||||
<Identity Name="30485NetHackDevTeam.NetHack3.6" Publisher="CN=8BDC628A-FAAA-4EBA-8B5B-EB61BA93BA1F" Version="363.0.28.0" />
|
||||
<Properties>
|
||||
<DisplayName>NetHack 3.7</DisplayName>
|
||||
<PublisherDisplayName>NetHack DevTeam</PublisherDisplayName>
|
||||
<Logo>Images\StoreLogo.png</Logo>
|
||||
</Properties>
|
||||
<Dependencies>
|
||||
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
|
||||
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14393.0" MaxVersionTested="10.0.14393.0" />
|
||||
</Dependencies>
|
||||
<Resources>
|
||||
<Resource Language="x-generate" />
|
||||
</Resources>
|
||||
<Applications>
|
||||
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="$targetentrypoint$">
|
||||
<uap:VisualElements DisplayName="NetHack 3.7" Description="NetHack 3.7" BackgroundColor="transparent" Square150x150Logo="Images\Square150x150Logo.png" Square44x44Logo="Images\Square44x44Logo.png">
|
||||
<uap:DefaultTile Wide310x150Logo="Images\Wide310x150Logo.png" Square310x310Logo="Images\LargeTile.png" Square71x71Logo="Images\SmallTile.png">
|
||||
</uap:DefaultTile>
|
||||
<uap:SplashScreen Image="Images\SplashScreen.png" />
|
||||
</uap:VisualElements>
|
||||
</Application>
|
||||
</Applications>
|
||||
<Capabilities>
|
||||
<Capability Name="internetClient" />
|
||||
<rescap:Capability Name="runFullTrust" />
|
||||
</Capabilities>
|
||||
</Package>
|
||||
141
sys/windows/vs/NetHackPackage/NetHackPackage.wapproj
Normal file
@@ -0,0 +1,141 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '15.0'">
|
||||
<VisualStudioVersion>15.0</VisualStudioVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<WapProjPath Condition="'$(WapProjPath)'==''">$(MSBuildExtensionsPath)\Microsoft\DesktopBridge\</WapProjPath>
|
||||
</PropertyGroup>
|
||||
<Import Project="..\dirs.props" />
|
||||
<Import Project="$(WapProjPath)\Microsoft.DesktopBridge.props" />
|
||||
<Import Project="$(vsDir)NetHackProperties.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(BinDir)</OutDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>6838ec9d-f25d-4779-9cd7-2edb61e49429</ProjectGuid>
|
||||
<TargetPlatformVersion>10.0.17763.0</TargetPlatformVersion>
|
||||
<TargetPlatformMinVersion>10.0.15063.0</TargetPlatformMinVersion>
|
||||
<DefaultLanguage>en-US</DefaultLanguage>
|
||||
<PackageCertificateKeyFile>NetHackPackage_StoreKey.pfx</PackageCertificateKeyFile>
|
||||
<PackageCertificateThumbprint>19591BE8832D6EFED75019EACE7C4CA42ABC90D4</PackageCertificateThumbprint>
|
||||
<GenerateAppInstallerFile>False</GenerateAppInstallerFile>
|
||||
<AppxAutoIncrementPackageRevision>True</AppxAutoIncrementPackageRevision>
|
||||
<AppxBundlePlatforms>x86</AppxBundlePlatforms>
|
||||
<AppInstallerUpdateFrequency>1</AppInstallerUpdateFrequency>
|
||||
<AppInstallerCheckForUpdateFrequency>OnApplicationRun</AppInstallerCheckForUpdateFrequency>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<AppxBundle>Always</AppxBundle>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<AppxBundle>Always</AppxBundle>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<AppxBundle>Always</AppxBundle>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<AppxBundle>Always</AppxBundle>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<AppxManifest Include="NetHackPackage.appxmanifest">
|
||||
<SubType>Designer</SubType>
|
||||
</AppxManifest>
|
||||
<None Include="NetHackPackage_TemporaryKey.pfx" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="$(ImageDir)BadgeLogo.scale-100.png" />
|
||||
<Content Include="$(ImageDir)BadgeLogo.scale-125.png" />
|
||||
<Content Include="$(ImageDir)BadgeLogo.scale-150.png" />
|
||||
<Content Include="$(ImageDir)BadgeLogo.scale-200.png" />
|
||||
<Content Include="$(ImageDir)BadgeLogo.scale-400.png" />
|
||||
<Content Include="$(ImageDir)LargeTile.scale-100.png" />
|
||||
<Content Include="$(ImageDir)LargeTile.scale-125.png" />
|
||||
<Content Include="$(ImageDir)LargeTile.scale-150.png" />
|
||||
<Content Include="$(ImageDir)LargeTile.scale-200.png" />
|
||||
<Content Include="$(ImageDir)LargeTile.scale-400.png" />
|
||||
<Content Include="$(ImageDir)LockScreenLogo.scale-200.png" />
|
||||
<Content Include="$(ImageDir)SmallTile.scale-100.png" />
|
||||
<Content Include="$(ImageDir)SmallTile.scale-125.png" />
|
||||
<Content Include="$(ImageDir)SmallTile.scale-150.png" />
|
||||
<Content Include="$(ImageDir)SmallTile.scale-200.png" />
|
||||
<Content Include="$(ImageDir)SmallTile.scale-400.png" />
|
||||
<Content Include="$(ImageDir)SplashScreen.scale-100.png" />
|
||||
<Content Include="$(ImageDir)SplashScreen.scale-125.png" />
|
||||
<Content Include="$(ImageDir)SplashScreen.scale-150.png" />
|
||||
<Content Include="$(ImageDir)SplashScreen.scale-200.png" />
|
||||
<Content Include="$(ImageDir)SplashScreen.scale-400.png" />
|
||||
<Content Include="$(ImageDir)Square150x150Logo.scale-100.png" />
|
||||
<Content Include="$(ImageDir)Square150x150Logo.scale-125.png" />
|
||||
<Content Include="$(ImageDir)Square150x150Logo.scale-150.png" />
|
||||
<Content Include="$(ImageDir)Square150x150Logo.scale-200.png" />
|
||||
<Content Include="$(ImageDir)Square150x150Logo.scale-400.png" />
|
||||
<Content Include="$(ImageDir)Square44x44Logo.altform-unplated_targetsize-16.png" />
|
||||
<Content Include="$(ImageDir)Square44x44Logo.altform-unplated_targetsize-256.png" />
|
||||
<Content Include="$(ImageDir)Square44x44Logo.altform-unplated_targetsize-32.png" />
|
||||
<Content Include="$(ImageDir)Square44x44Logo.altform-unplated_targetsize-48.png" />
|
||||
<Content Include="$(ImageDir)Square44x44Logo.scale-100.png" />
|
||||
<Content Include="$(ImageDir)Square44x44Logo.scale-125.png" />
|
||||
<Content Include="$(ImageDir)Square44x44Logo.scale-150.png" />
|
||||
<Content Include="$(ImageDir)Square44x44Logo.scale-200.png" />
|
||||
<Content Include="$(ImageDir)Square44x44Logo.scale-400.png" />
|
||||
<Content Include="$(ImageDir)Square44x44Logo.targetsize-16.png" />
|
||||
<Content Include="$(ImageDir)Square44x44Logo.targetsize-24.png" />
|
||||
<Content Include="$(ImageDir)Square44x44Logo.targetsize-24_altform-unplated.png" />
|
||||
<Content Include="$(ImageDir)Square44x44Logo.targetsize-256.png" />
|
||||
<Content Include="$(ImageDir)Square44x44Logo.targetsize-32.png" />
|
||||
<Content Include="$(ImageDir)Square44x44Logo.targetsize-48.png" />
|
||||
<Content Include="$(ImageDir)StoreLogo.scale-100.png" />
|
||||
<Content Include="$(ImageDir)StoreLogo.scale-125.png" />
|
||||
<Content Include="$(ImageDir)StoreLogo.scale-150.png" />
|
||||
<Content Include="$(ImageDir)StoreLogo.scale-200.png" />
|
||||
<Content Include="$(ImageDir)StoreLogo.scale-400.png" />
|
||||
<Content Include="$(ImageDir)Wide310x150Logo.scale-100.png" />
|
||||
<Content Include="$(ImageDir)Wide310x150Logo.scale-125.png" />
|
||||
<Content Include="$(ImageDir)Wide310x150Logo.scale-150.png" />
|
||||
<Content Include="$(ImageDir)Wide310x150Logo.scale-200.png" />
|
||||
<Content Include="$(BinDir).nethackrc.template">
|
||||
<Link>$(vsDir)NetHackW\.nethackrc.template</Link>
|
||||
</Content>
|
||||
<Content Include="$(BinDir)Guidebook.txt">
|
||||
<Link>$(vsDir)NetHackW\Guidebook.txt</Link>
|
||||
</Content>
|
||||
<Content Include="$(BinDir)license">
|
||||
<Link>$(vsDir)NetHackW\license</Link>
|
||||
</Content>
|
||||
<Content Include="$(BinDir)nhdat$(VERSION_MAJOR)$(VERSION_MINOR)$(PATCHLEVEL)">
|
||||
<Link>$(vsDir)NetHackW\nhdat$(VERSION_MAJOR)$(VERSION_MINOR)$(PATCHLEVEL)</Link>
|
||||
</Content>
|
||||
<Content Include="$(BinDir)opthelp">
|
||||
<Link>$(vsDir)NetHackW\opthelp</Link>
|
||||
</Content>
|
||||
<Content Include="$(BinDir)symbols.template">
|
||||
<Link>$(vsDir)NetHackW\symbols.template</Link>
|
||||
</Content>
|
||||
<Content Include="$(BinDir)sysconf.template">
|
||||
<Link>$(vsDir)NetHackW\sysconf.template</Link>
|
||||
</Content>
|
||||
<Content Include="$(ImageDir)Wide310x150Logo.scale-400.png" />
|
||||
<None Include="NetHackPackage_StoreKey.pfx" />
|
||||
<None Include="Package.StoreAssociation.xml" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(WapProjPath)\Microsoft.DesktopBridge.targets" />
|
||||
</Project>
|
||||
373
sys/windows/vs/NetHackPackage/Package.StoreAssociation.xml
Normal file
@@ -0,0 +1,373 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<StoreAssociation xmlns="http://schemas.microsoft.com/appx/2010/storeassociation">
|
||||
<Publisher>CN=8BDC628A-FAAA-4EBA-8B5B-EB61BA93BA1F</Publisher>
|
||||
<PublisherDisplayName>NetHack DevTeam</PublisherDisplayName>
|
||||
<DeveloperAccountType>AAD</DeveloperAccountType>
|
||||
<GeneratePackageHash>http://www.w3.org/2001/04/xmlenc#sha256</GeneratePackageHash>
|
||||
<SupportedLocales>
|
||||
<Language Code="af" InMinimumRequirementSet="true" />
|
||||
<Language Code="af-za" InMinimumRequirementSet="true" />
|
||||
<Language Code="am" InMinimumRequirementSet="true" />
|
||||
<Language Code="am-et" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-ae" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-bh" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-dz" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-eg" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-iq" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-jo" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-kw" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-lb" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-ly" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-ma" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-om" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-qa" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-sa" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-sy" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-tn" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-ye" InMinimumRequirementSet="true" />
|
||||
<Language Code="as" InMinimumRequirementSet="true" />
|
||||
<Language Code="as-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="az" InMinimumRequirementSet="true" />
|
||||
<Language Code="az-arab" InMinimumRequirementSet="true" />
|
||||
<Language Code="az-arab-az" InMinimumRequirementSet="true" />
|
||||
<Language Code="az-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="az-cyrl-az" InMinimumRequirementSet="true" />
|
||||
<Language Code="az-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="az-latn-az" InMinimumRequirementSet="true" />
|
||||
<Language Code="be" InMinimumRequirementSet="true" />
|
||||
<Language Code="be-by" InMinimumRequirementSet="true" />
|
||||
<Language Code="bg" InMinimumRequirementSet="true" />
|
||||
<Language Code="bg-bg" InMinimumRequirementSet="true" />
|
||||
<Language Code="bn" InMinimumRequirementSet="true" />
|
||||
<Language Code="bn-bd" InMinimumRequirementSet="true" />
|
||||
<Language Code="bn-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="bs" InMinimumRequirementSet="true" />
|
||||
<Language Code="bs-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="bs-cyrl-ba" InMinimumRequirementSet="true" />
|
||||
<Language Code="bs-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="bs-latn-ba" InMinimumRequirementSet="true" />
|
||||
<Language Code="ca" InMinimumRequirementSet="true" />
|
||||
<Language Code="ca-es" InMinimumRequirementSet="true" />
|
||||
<Language Code="ca-es-valencia" InMinimumRequirementSet="true" />
|
||||
<Language Code="chr-cher" InMinimumRequirementSet="true" />
|
||||
<Language Code="chr-cher-us" InMinimumRequirementSet="true" />
|
||||
<Language Code="chr-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="cs" InMinimumRequirementSet="true" />
|
||||
<Language Code="cs-cz" InMinimumRequirementSet="true" />
|
||||
<Language Code="cy" InMinimumRequirementSet="true" />
|
||||
<Language Code="cy-gb" InMinimumRequirementSet="true" />
|
||||
<Language Code="da" InMinimumRequirementSet="true" />
|
||||
<Language Code="da-dk" InMinimumRequirementSet="true" />
|
||||
<Language Code="de" InMinimumRequirementSet="true" />
|
||||
<Language Code="de-at" InMinimumRequirementSet="true" />
|
||||
<Language Code="de-ch" InMinimumRequirementSet="true" />
|
||||
<Language Code="de-de" InMinimumRequirementSet="true" />
|
||||
<Language Code="de-li" InMinimumRequirementSet="true" />
|
||||
<Language Code="de-lu" InMinimumRequirementSet="true" />
|
||||
<Language Code="el" InMinimumRequirementSet="true" />
|
||||
<Language Code="el-gr" InMinimumRequirementSet="true" />
|
||||
<Language Code="en" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-011" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-014" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-018" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-021" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-029" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-053" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-au" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-bz" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-ca" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-gb" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-hk" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-id" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-ie" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-jm" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-kz" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-mt" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-my" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-nz" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-ph" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-pk" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-sg" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-tt" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-us" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-vn" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-za" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-zw" InMinimumRequirementSet="true" />
|
||||
<Language Code="es" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-019" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-419" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-ar" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-bo" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-cl" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-co" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-cr" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-do" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-ec" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-es" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-gt" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-hn" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-mx" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-ni" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-pa" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-pe" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-pr" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-py" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-sv" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-us" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-uy" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-ve" InMinimumRequirementSet="true" />
|
||||
<Language Code="et" InMinimumRequirementSet="true" />
|
||||
<Language Code="et-ee" InMinimumRequirementSet="true" />
|
||||
<Language Code="eu" InMinimumRequirementSet="true" />
|
||||
<Language Code="eu-es" InMinimumRequirementSet="true" />
|
||||
<Language Code="fa" InMinimumRequirementSet="true" />
|
||||
<Language Code="fa-ir" InMinimumRequirementSet="true" />
|
||||
<Language Code="fi" InMinimumRequirementSet="true" />
|
||||
<Language Code="fi-fi" InMinimumRequirementSet="true" />
|
||||
<Language Code="fil" InMinimumRequirementSet="true" />
|
||||
<Language Code="fil-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="fil-ph" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-011" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-015" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-021" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-029" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-155" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-be" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-ca" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-cd" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-ch" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-ci" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-cm" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-fr" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-ht" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-lu" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-ma" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-mc" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-ml" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-re" InMinimumRequirementSet="true" />
|
||||
<Language Code="frc-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="frp-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="ga" InMinimumRequirementSet="true" />
|
||||
<Language Code="ga-ie" InMinimumRequirementSet="true" />
|
||||
<Language Code="gd-gb" InMinimumRequirementSet="true" />
|
||||
<Language Code="gd-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="gl" InMinimumRequirementSet="true" />
|
||||
<Language Code="gl-es" InMinimumRequirementSet="true" />
|
||||
<Language Code="gu" InMinimumRequirementSet="true" />
|
||||
<Language Code="gu-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="ha" InMinimumRequirementSet="true" />
|
||||
<Language Code="ha-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="ha-latn-ng" InMinimumRequirementSet="true" />
|
||||
<Language Code="he" InMinimumRequirementSet="true" />
|
||||
<Language Code="he-il" InMinimumRequirementSet="true" />
|
||||
<Language Code="hi" InMinimumRequirementSet="true" />
|
||||
<Language Code="hi-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="hr" InMinimumRequirementSet="true" />
|
||||
<Language Code="hr-ba" InMinimumRequirementSet="true" />
|
||||
<Language Code="hr-hr" InMinimumRequirementSet="true" />
|
||||
<Language Code="hu" InMinimumRequirementSet="true" />
|
||||
<Language Code="hu-hu" InMinimumRequirementSet="true" />
|
||||
<Language Code="hy" InMinimumRequirementSet="true" />
|
||||
<Language Code="hy-am" InMinimumRequirementSet="true" />
|
||||
<Language Code="id" InMinimumRequirementSet="true" />
|
||||
<Language Code="id-id" InMinimumRequirementSet="true" />
|
||||
<Language Code="ig-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="ig-ng" InMinimumRequirementSet="true" />
|
||||
<Language Code="is" InMinimumRequirementSet="true" />
|
||||
<Language Code="is-is" InMinimumRequirementSet="true" />
|
||||
<Language Code="it" InMinimumRequirementSet="true" />
|
||||
<Language Code="it-ch" InMinimumRequirementSet="true" />
|
||||
<Language Code="it-it" InMinimumRequirementSet="true" />
|
||||
<Language Code="iu-cans" InMinimumRequirementSet="true" />
|
||||
<Language Code="iu-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="iu-latn-ca" InMinimumRequirementSet="true" />
|
||||
<Language Code="ja" InMinimumRequirementSet="true" />
|
||||
<Language Code="ja-jp" InMinimumRequirementSet="true" />
|
||||
<Language Code="ka" InMinimumRequirementSet="true" />
|
||||
<Language Code="ka-ge" InMinimumRequirementSet="true" />
|
||||
<Language Code="kk" InMinimumRequirementSet="true" />
|
||||
<Language Code="kk-kz" InMinimumRequirementSet="true" />
|
||||
<Language Code="km" InMinimumRequirementSet="true" />
|
||||
<Language Code="km-kh" InMinimumRequirementSet="true" />
|
||||
<Language Code="kn" InMinimumRequirementSet="true" />
|
||||
<Language Code="kn-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="ko" InMinimumRequirementSet="true" />
|
||||
<Language Code="ko-kr" InMinimumRequirementSet="true" />
|
||||
<Language Code="kok" InMinimumRequirementSet="true" />
|
||||
<Language Code="kok-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="ku-arab" InMinimumRequirementSet="true" />
|
||||
<Language Code="ku-arab-iq" InMinimumRequirementSet="true" />
|
||||
<Language Code="ky-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="ky-kg" InMinimumRequirementSet="true" />
|
||||
<Language Code="lb" InMinimumRequirementSet="true" />
|
||||
<Language Code="lb-lu" InMinimumRequirementSet="true" />
|
||||
<Language Code="lo" InMinimumRequirementSet="true" />
|
||||
<Language Code="lo-la" InMinimumRequirementSet="true" />
|
||||
<Language Code="lt" InMinimumRequirementSet="true" />
|
||||
<Language Code="lt-lt" InMinimumRequirementSet="true" />
|
||||
<Language Code="lv" InMinimumRequirementSet="true" />
|
||||
<Language Code="lv-lv" InMinimumRequirementSet="true" />
|
||||
<Language Code="mi" InMinimumRequirementSet="true" />
|
||||
<Language Code="mi-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="mi-nz" InMinimumRequirementSet="true" />
|
||||
<Language Code="mk" InMinimumRequirementSet="true" />
|
||||
<Language Code="mk-mk" InMinimumRequirementSet="true" />
|
||||
<Language Code="ml" InMinimumRequirementSet="true" />
|
||||
<Language Code="ml-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="mn-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="mn-mn" InMinimumRequirementSet="true" />
|
||||
<Language Code="mn-mong" InMinimumRequirementSet="true" />
|
||||
<Language Code="mn-phag" InMinimumRequirementSet="true" />
|
||||
<Language Code="mr" InMinimumRequirementSet="true" />
|
||||
<Language Code="mr-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="ms" InMinimumRequirementSet="true" />
|
||||
<Language Code="ms-bn" InMinimumRequirementSet="true" />
|
||||
<Language Code="ms-my" InMinimumRequirementSet="true" />
|
||||
<Language Code="mt" InMinimumRequirementSet="true" />
|
||||
<Language Code="mt-mt" InMinimumRequirementSet="true" />
|
||||
<Language Code="nb" InMinimumRequirementSet="true" />
|
||||
<Language Code="nb-no" InMinimumRequirementSet="true" />
|
||||
<Language Code="ne" InMinimumRequirementSet="true" />
|
||||
<Language Code="ne-np" InMinimumRequirementSet="true" />
|
||||
<Language Code="nl" InMinimumRequirementSet="true" />
|
||||
<Language Code="nl-be" InMinimumRequirementSet="true" />
|
||||
<Language Code="nl-nl" InMinimumRequirementSet="true" />
|
||||
<Language Code="nn" InMinimumRequirementSet="true" />
|
||||
<Language Code="nn-no" InMinimumRequirementSet="true" />
|
||||
<Language Code="no" InMinimumRequirementSet="true" />
|
||||
<Language Code="no-no" InMinimumRequirementSet="true" />
|
||||
<Language Code="nso" InMinimumRequirementSet="true" />
|
||||
<Language Code="nso-za" InMinimumRequirementSet="true" />
|
||||
<Language Code="om" InMinimumRequirementSet="false" />
|
||||
<Language Code="om-et" InMinimumRequirementSet="false" />
|
||||
<Language Code="or" InMinimumRequirementSet="true" />
|
||||
<Language Code="or-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="pa" InMinimumRequirementSet="true" />
|
||||
<Language Code="pa-arab" InMinimumRequirementSet="true" />
|
||||
<Language Code="pa-arab-pk" InMinimumRequirementSet="true" />
|
||||
<Language Code="pa-deva" InMinimumRequirementSet="true" />
|
||||
<Language Code="pa-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="pl" InMinimumRequirementSet="true" />
|
||||
<Language Code="pl-pl" InMinimumRequirementSet="true" />
|
||||
<Language Code="prs" InMinimumRequirementSet="true" />
|
||||
<Language Code="prs-af" InMinimumRequirementSet="true" />
|
||||
<Language Code="prs-arab" InMinimumRequirementSet="true" />
|
||||
<Language Code="pt" InMinimumRequirementSet="true" />
|
||||
<Language Code="pt-br" InMinimumRequirementSet="true" />
|
||||
<Language Code="pt-pt" InMinimumRequirementSet="true" />
|
||||
<Language Code="quc-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="qut-gt" InMinimumRequirementSet="true" />
|
||||
<Language Code="qut-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="quz" InMinimumRequirementSet="true" />
|
||||
<Language Code="quz-bo" InMinimumRequirementSet="true" />
|
||||
<Language Code="quz-ec" InMinimumRequirementSet="true" />
|
||||
<Language Code="quz-pe" InMinimumRequirementSet="true" />
|
||||
<Language Code="ro" InMinimumRequirementSet="true" />
|
||||
<Language Code="ro-ro" InMinimumRequirementSet="true" />
|
||||
<Language Code="ru" InMinimumRequirementSet="true" />
|
||||
<Language Code="ru-ru" InMinimumRequirementSet="true" />
|
||||
<Language Code="rw" InMinimumRequirementSet="true" />
|
||||
<Language Code="rw-rw" InMinimumRequirementSet="true" />
|
||||
<Language Code="sd-arab" InMinimumRequirementSet="true" />
|
||||
<Language Code="sd-arab-pk" InMinimumRequirementSet="true" />
|
||||
<Language Code="sd-deva" InMinimumRequirementSet="true" />
|
||||
<Language Code="si" InMinimumRequirementSet="true" />
|
||||
<Language Code="si-lk" InMinimumRequirementSet="true" />
|
||||
<Language Code="sk" InMinimumRequirementSet="true" />
|
||||
<Language Code="sk-sk" InMinimumRequirementSet="true" />
|
||||
<Language Code="sl" InMinimumRequirementSet="true" />
|
||||
<Language Code="sl-si" InMinimumRequirementSet="true" />
|
||||
<Language Code="sq" InMinimumRequirementSet="true" />
|
||||
<Language Code="sq-al" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-cyrl-ba" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-cyrl-cs" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-cyrl-me" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-cyrl-rs" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-latn-ba" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-latn-cs" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-latn-me" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-latn-rs" InMinimumRequirementSet="true" />
|
||||
<Language Code="sv" InMinimumRequirementSet="true" />
|
||||
<Language Code="sv-fi" InMinimumRequirementSet="true" />
|
||||
<Language Code="sv-se" InMinimumRequirementSet="true" />
|
||||
<Language Code="sw" InMinimumRequirementSet="true" />
|
||||
<Language Code="sw-ke" InMinimumRequirementSet="true" />
|
||||
<Language Code="ta" InMinimumRequirementSet="true" />
|
||||
<Language Code="ta-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="te" InMinimumRequirementSet="true" />
|
||||
<Language Code="te-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="tg-arab" InMinimumRequirementSet="true" />
|
||||
<Language Code="tg-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="tg-cyrl-tj" InMinimumRequirementSet="true" />
|
||||
<Language Code="tg-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="th" InMinimumRequirementSet="true" />
|
||||
<Language Code="th-th" InMinimumRequirementSet="true" />
|
||||
<Language Code="ti" InMinimumRequirementSet="true" />
|
||||
<Language Code="ti-et" InMinimumRequirementSet="true" />
|
||||
<Language Code="tk-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="tk-cyrl-tr" InMinimumRequirementSet="true" />
|
||||
<Language Code="tk-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="tk-latn-tr" InMinimumRequirementSet="true" />
|
||||
<Language Code="tk-tm" InMinimumRequirementSet="true" />
|
||||
<Language Code="tn" InMinimumRequirementSet="true" />
|
||||
<Language Code="tn-bw" InMinimumRequirementSet="true" />
|
||||
<Language Code="tn-za" InMinimumRequirementSet="true" />
|
||||
<Language Code="tr" InMinimumRequirementSet="true" />
|
||||
<Language Code="tr-tr" InMinimumRequirementSet="true" />
|
||||
<Language Code="tt-arab" InMinimumRequirementSet="true" />
|
||||
<Language Code="tt-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="tt-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="tt-ru" InMinimumRequirementSet="true" />
|
||||
<Language Code="ug-arab" InMinimumRequirementSet="true" />
|
||||
<Language Code="ug-cn" InMinimumRequirementSet="true" />
|
||||
<Language Code="ug-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="ug-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="uk" InMinimumRequirementSet="true" />
|
||||
<Language Code="uk-ua" InMinimumRequirementSet="true" />
|
||||
<Language Code="ur" InMinimumRequirementSet="true" />
|
||||
<Language Code="ur-pk" InMinimumRequirementSet="true" />
|
||||
<Language Code="uz" InMinimumRequirementSet="true" />
|
||||
<Language Code="uz-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="uz-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="uz-latn-uz" InMinimumRequirementSet="true" />
|
||||
<Language Code="vi" InMinimumRequirementSet="true" />
|
||||
<Language Code="vi-vn" InMinimumRequirementSet="true" />
|
||||
<Language Code="wo" InMinimumRequirementSet="true" />
|
||||
<Language Code="wo-sn" InMinimumRequirementSet="true" />
|
||||
<Language Code="xh" InMinimumRequirementSet="true" />
|
||||
<Language Code="xh-za" InMinimumRequirementSet="true" />
|
||||
<Language Code="yo-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="yo-ng" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-cn" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-hans" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-hans-cn" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-hans-sg" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-hant" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-hant-hk" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-hant-mo" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-hant-tw" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-hk" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-mo" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-sg" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-tw" InMinimumRequirementSet="true" />
|
||||
<Language Code="zu" InMinimumRequirementSet="true" />
|
||||
<Language Code="zu-za" InMinimumRequirementSet="true" />
|
||||
</SupportedLocales>
|
||||
<ProductReservedInfo>
|
||||
<MainPackageIdentityName>30485NetHackDevTeam.NetHack3.6</MainPackageIdentityName>
|
||||
<ReservedNames>
|
||||
<ReservedName>NetHack 3.7</ReservedName>
|
||||
</ReservedNames>
|
||||
</ProductReservedInfo>
|
||||
<AccountPackageIdentityNames>
|
||||
<MainPackageIdentityName>30485NetHackDevTeam.NetHackBeta</MainPackageIdentityName>
|
||||
</AccountPackageIdentityNames>
|
||||
<PackageInfoList LandingUrl="https://developer.microsoft.com/dashboard/Application?appId=9PJ7BFSRP8M5" />
|
||||
</StoreAssociation>
|
||||
38
sys/windows/vs/NetHackProperties.props
Normal file
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets" />
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<VERSION_MAJOR>3</VERSION_MAJOR>
|
||||
<VERSION_MINOR>7</VERSION_MINOR>
|
||||
<PATCHLEVEL>0</PATCHLEVEL>
|
||||
<LUA_MAJOR_VERSION>5</LUA_MAJOR_VERSION>
|
||||
<LUA_MINOR_VERSION>4</LUA_MINOR_VERSION>
|
||||
<LUA_PATCH_LEVEL>3></LUA_PATCH_LEVEL>
|
||||
<LUA_VERSION>$(LUA_MAJOR_VERSION).$(LUA_MINOR_VERSION).$(LUA_PATCH_LEVEL)</LUA_VERSION>
|
||||
<ADD_PACKAGE>true</ADD_PACKAGE>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup />
|
||||
<ItemDefinitionGroup />
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="VERSION_MAJOR">
|
||||
<Value>$(VERSION_MAJOR)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="VERSION_MINOR">
|
||||
<Value>$(VERSION_MINOR)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="PATCHLEVEL">
|
||||
<Value>$(PATCHLEVEL)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="LUA_VERSION">
|
||||
<Value>$(LUA_VERSION)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="ADD_PACKAGE">
|
||||
<Value>$(ADD_PACKAGE)</Value>
|
||||
<EnvironmentVariable>true</EnvironmentVariable>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
308
sys/windows/vs/NetHackW/NetHackW.vcxproj
Normal file
@@ -0,0 +1,308 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\config.props" />
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{CEC5D360-8804-454F-8591-002184C23499}</ProjectGuid>
|
||||
<RootNamespace>NetHackW</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<Import Project="..\dirs.props" />
|
||||
<Import Project="$(vsDir)default.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<Import Project="$(vsDir)NetHackProperties.props" />
|
||||
<Import Project="$(vsDir)common.props" />
|
||||
<Import Project="$(vsDir)files.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(BinDir)</OutDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalOptions>/Gs /Oi- /w44774 %(AdditionalOptions)</AdditionalOptions>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<AdditionalIncludeDirectories>$(WinWin32Dir);$(IncDir);$(SysWindDir);$(SysShareDir);$(WinShareDir);$(LuaDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>TILES;_WINDOWS;DLB;MSWIN_GRAPHICS;SAFEPROCS;NOTTYGRAPHICS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<AdditionalDependencies>comctl32.lib;winmm.lib;bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<AdditionalManifestFiles>$(WinWin32Dir)NethackW.exe.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
|
||||
</Manifest>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="@(Lua)">
|
||||
<DisableSpecificWarnings>4701;4702;4244;4310;4774</DisableSpecificWarnings>
|
||||
<AdditionalOptions>%(AdditionalOptions) /wd4774</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(SrcDir)allmain.c" />
|
||||
<ClCompile Include="$(SrcDir)alloc.c" />
|
||||
<ClCompile Include="$(SrcDir)apply.c" />
|
||||
<ClCompile Include="$(SrcDir)artifact.c" />
|
||||
<ClCompile Include="$(SrcDir)attrib.c" />
|
||||
<ClCompile Include="$(SrcDir)ball.c" />
|
||||
<ClCompile Include="$(SrcDir)bones.c" />
|
||||
<ClCompile Include="$(SrcDir)botl.c" />
|
||||
<ClCompile Include="$(SrcDir)cmd.c" />
|
||||
<ClCompile Include="$(SrcDir)dbridge.c" />
|
||||
<ClCompile Include="$(SrcDir)decl.c" />
|
||||
<ClCompile Include="$(SrcDir)detect.c" />
|
||||
<ClCompile Include="$(SrcDir)dig.c" />
|
||||
<ClCompile Include="$(SrcDir)display.c" />
|
||||
<ClCompile Include="$(SrcDir)dlb.c" />
|
||||
<ClCompile Include="$(SrcDir)do.c" />
|
||||
<ClCompile Include="$(SrcDir)dog.c" />
|
||||
<ClCompile Include="$(SrcDir)dogmove.c" />
|
||||
<ClCompile Include="$(SrcDir)dokick.c" />
|
||||
<ClCompile Include="$(SrcDir)dothrow.c" />
|
||||
<ClCompile Include="$(SrcDir)do_name.c" />
|
||||
<ClCompile Include="$(SrcDir)do_wear.c" />
|
||||
<ClCompile Include="$(SrcDir)drawing.c" />
|
||||
<ClCompile Include="$(SrcDir)dungeon.c" />
|
||||
<ClCompile Include="$(SrcDir)eat.c" />
|
||||
<ClCompile Include="$(SrcDir)end.c" />
|
||||
<ClCompile Include="$(SrcDir)engrave.c" />
|
||||
<ClCompile Include="$(SrcDir)exper.c" />
|
||||
<ClCompile Include="$(SrcDir)explode.c" />
|
||||
<ClCompile Include="$(SrcDir)extralev.c" />
|
||||
<ClCompile Include="$(SrcDir)files.c" />
|
||||
<ClCompile Include="$(SrcDir)fountain.c" />
|
||||
<ClCompile Include="$(SrcDir)hack.c" />
|
||||
<ClCompile Include="$(SrcDir)hacklib.c" />
|
||||
<ClCompile Include="$(SrcDir)invent.c" />
|
||||
<ClCompile Include="$(SrcDir)insight.c" />
|
||||
<ClCompile Include="$(SrcDir)isaac64.c" />
|
||||
<ClCompile Include="$(SrcDir)light.c" />
|
||||
<ClCompile Include="$(SrcDir)lock.c" />
|
||||
<ClCompile Include="$(SrcDir)mail.c" />
|
||||
<ClCompile Include="$(SrcDir)makemon.c" />
|
||||
<ClCompile Include="$(SrcDir)mcastu.c" />
|
||||
<ClCompile Include="$(SrcDir)mdlib.c" />
|
||||
<ClCompile Include="$(SrcDir)mhitm.c" />
|
||||
<ClCompile Include="$(SrcDir)mhitu.c" />
|
||||
<ClCompile Include="$(SrcDir)minion.c" />
|
||||
<ClCompile Include="$(SrcDir)mklev.c" />
|
||||
<ClCompile Include="$(SrcDir)mkmap.c" />
|
||||
<ClCompile Include="$(SrcDir)mkmaze.c" />
|
||||
<ClCompile Include="$(SrcDir)mkobj.c" />
|
||||
<ClCompile Include="$(SrcDir)mkroom.c" />
|
||||
<ClCompile Include="$(SrcDir)mon.c" />
|
||||
<ClCompile Include="$(SrcDir)mondata.c" />
|
||||
<ClCompile Include="$(SrcDir)monmove.c" />
|
||||
<ClCompile Include="$(SrcDir)monst.c" />
|
||||
<ClCompile Include="$(SrcDir)mplayer.c" />
|
||||
<ClCompile Include="$(SrcDir)mthrowu.c" />
|
||||
<ClCompile Include="$(SrcDir)muse.c" />
|
||||
<ClCompile Include="$(SrcDir)music.c" />
|
||||
<ClCompile Include="$(SrcDir)nhlobj.c" />
|
||||
<ClCompile Include="$(SrcDir)nhlsel.c" />
|
||||
<ClCompile Include="$(SrcDir)nhlua.c" />
|
||||
<ClCompile Include="$(SrcDir)objects.c" />
|
||||
<ClCompile Include="$(SrcDir)objnam.c" />
|
||||
<ClCompile Include="$(SrcDir)options.c" />
|
||||
<ClCompile Include="$(SrcDir)o_init.c" />
|
||||
<ClCompile Include="$(SrcDir)pager.c" />
|
||||
<ClCompile Include="$(SrcDir)pickup.c" />
|
||||
<ClCompile Include="$(SrcDir)pline.c" />
|
||||
<ClCompile Include="$(SrcDir)polyself.c" />
|
||||
<ClCompile Include="$(SrcDir)potion.c" />
|
||||
<ClCompile Include="$(SrcDir)pray.c" />
|
||||
<ClCompile Include="$(SrcDir)priest.c" />
|
||||
<ClCompile Include="$(SrcDir)quest.c" />
|
||||
<ClCompile Include="$(SrcDir)questpgr.c" />
|
||||
<ClCompile Include="$(SrcDir)read.c" />
|
||||
<ClCompile Include="$(SrcDir)rect.c" />
|
||||
<ClCompile Include="$(SrcDir)region.c" />
|
||||
<ClCompile Include="$(SrcDir)restore.c" />
|
||||
<ClCompile Include="$(SrcDir)rip.c" />
|
||||
<ClCompile Include="$(SrcDir)rnd.c" />
|
||||
<ClCompile Include="$(SrcDir)role.c" />
|
||||
<ClCompile Include="$(SrcDir)rumors.c" />
|
||||
<ClCompile Include="$(SrcDir)save.c" />
|
||||
<ClCompile Include="$(SrcDir)sfstruct.c" />
|
||||
<ClCompile Include="$(SrcDir)shk.c" />
|
||||
<ClCompile Include="$(SrcDir)shknam.c" />
|
||||
<ClCompile Include="$(SrcDir)sit.c" />
|
||||
<ClCompile Include="$(SrcDir)sounds.c" />
|
||||
<ClCompile Include="$(SrcDir)spell.c" />
|
||||
<ClCompile Include="$(SrcDir)sp_lev.c" />
|
||||
<ClCompile Include="$(SrcDir)steal.c" />
|
||||
<ClCompile Include="$(SrcDir)steed.c" />
|
||||
<ClCompile Include="$(SrcDir)symbols.c" />
|
||||
<ClCompile Include="$(SrcDir)sys.c" />
|
||||
<ClCompile Include="$(SrcDir)teleport.c" />
|
||||
<ClCompile Include="$(SrcDir)tile.c" />
|
||||
<ClCompile Include="$(SrcDir)timeout.c" />
|
||||
<ClCompile Include="$(SrcDir)topten.c" />
|
||||
<ClCompile Include="$(SrcDir)track.c" />
|
||||
<ClCompile Include="$(SrcDir)trap.c" />
|
||||
<ClCompile Include="$(SrcDir)uhitm.c" />
|
||||
<ClCompile Include="$(SrcDir)u_init.c" />
|
||||
<ClCompile Include="$(SrcDir)vault.c" />
|
||||
<ClCompile Include="$(SrcDir)version.c" />
|
||||
<ClCompile Include="$(SrcDir)vision.c" />
|
||||
<ClCompile Include="$(SrcDir)weapon.c" />
|
||||
<ClCompile Include="$(SrcDir)were.c" />
|
||||
<ClCompile Include="$(SrcDir)wield.c" />
|
||||
<ClCompile Include="$(SrcDir)windows.c" />
|
||||
<ClCompile Include="$(SrcDir)wizard.c" />
|
||||
<ClCompile Include="$(SrcDir)worm.c" />
|
||||
<ClCompile Include="$(SrcDir)worn.c" />
|
||||
<ClCompile Include="$(SrcDir)write.c" />
|
||||
<ClCompile Include="$(SrcDir)zap.c" />
|
||||
<ClCompile Include="$(SysShareDir)cppregex.cpp" />
|
||||
<ClCompile Include="$(SysShareDir)nhlan.c" />
|
||||
<ClCompile Include="$(SysShareDir)random.c" />
|
||||
<ClCompile Include="$(SysWindDir)ntsound.c" />
|
||||
<ClCompile Include="$(SysWindDir)stubs.c">
|
||||
<PreprocessorDefinitions>TTYSTUB;</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(SysWindDir)windmain.c" />
|
||||
<ClCompile Include="$(SysWindDir)windsys.c" />
|
||||
<ClCompile Include="$(SysWindDir)win10.c" />
|
||||
<ClCompile Include="$(WinShareDir)safeproc.c" />
|
||||
<ClCompile Include="$(WinWin32Dir)mhaskyn.c" />
|
||||
<ClCompile Include="$(WinWin32Dir)mhdlg.c" />
|
||||
<ClCompile Include="$(WinWin32Dir)mhfont.c" />
|
||||
<ClCompile Include="$(WinWin32Dir)mhinput.c" />
|
||||
<ClCompile Include="$(WinWin32Dir)mhmain.c" />
|
||||
<ClCompile Include="$(WinWin32Dir)mhmap.c" />
|
||||
<ClCompile Include="$(WinWin32Dir)mhmenu.c" />
|
||||
<ClCompile Include="$(WinWin32Dir)mhmsgwnd.c" />
|
||||
<ClCompile Include="$(WinWin32Dir)mhrip.c" />
|
||||
<ClCompile Include="$(WinWin32Dir)mhsplash.c" />
|
||||
<ClCompile Include="$(WinWin32Dir)mhstatus.c" />
|
||||
<ClCompile Include="$(WinWin32Dir)mhtext.c" />
|
||||
<ClCompile Include="$(WinWin32Dir)mswproc.c" />
|
||||
<ClCompile Include="$(WinWin32Dir)NetHackW.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="$(WinWin32Dir)NetHackW.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="$(WinWin32Dir)mhaskyn.h" />
|
||||
<ClInclude Include="$(WinWin32Dir)mhdlg.h" />
|
||||
<ClInclude Include="$(WinWin32Dir)mhfont.h" />
|
||||
<ClInclude Include="$(WinWin32Dir)mhinput.h" />
|
||||
<ClInclude Include="$(WinWin32Dir)mhmain.h" />
|
||||
<ClInclude Include="$(WinWin32Dir)mhmap.h" />
|
||||
<ClInclude Include="$(WinWin32Dir)mhmenu.h" />
|
||||
<ClInclude Include="$(WinWin32Dir)mhmsg.h" />
|
||||
<ClInclude Include="$(WinWin32Dir)mhmsgwnd.h" />
|
||||
<ClInclude Include="$(WinWin32Dir)mhrip.h" />
|
||||
<ClInclude Include="$(WinWin32Dir)mhsplash.h" />
|
||||
<ClInclude Include="$(WinWin32Dir)mhstatus.h" />
|
||||
<ClInclude Include="$(WinWin32Dir)mhtext.h" />
|
||||
<ClInclude Include="$(WinWin32Dir)winMS.h" />
|
||||
<ClInclude Include="$(IncDir)align.h" />
|
||||
<ClInclude Include="$(IncDir)artifact.h" />
|
||||
<ClInclude Include="$(IncDir)artilist.h" />
|
||||
<ClInclude Include="$(IncDir)attrib.h" />
|
||||
<ClInclude Include="$(IncDir)bitmfile.h" />
|
||||
<ClInclude Include="$(IncDir)botl.h" />
|
||||
<ClInclude Include="$(IncDir)color.h" />
|
||||
<ClInclude Include="$(IncDir)config.h" />
|
||||
<ClInclude Include="$(IncDir)config1.h" />
|
||||
<ClInclude Include="$(IncDir)context.h" />
|
||||
<ClInclude Include="$(IncDir)coord.h" />
|
||||
<ClInclude Include="$(IncDir)date.h" />
|
||||
<ClInclude Include="$(IncDir)decl.h" />
|
||||
<ClInclude Include="$(IncDir)dgn_comp.h" />
|
||||
<ClInclude Include="$(IncDir)dgn_file.h" />
|
||||
<ClInclude Include="$(IncDir)display.h" />
|
||||
<ClInclude Include="$(IncDir)dlb.h" />
|
||||
<ClInclude Include="$(IncDir)dungeon.h" />
|
||||
<ClInclude Include="$(IncDir)engrave.h" />
|
||||
<ClInclude Include="$(IncDir)extern.h" />
|
||||
<ClInclude Include="$(IncDir)flag.h" />
|
||||
<ClInclude Include="$(IncDir)fnamesiz.h" />
|
||||
<ClInclude Include="$(IncDir)func_tab.h" />
|
||||
<ClInclude Include="$(IncDir)gem_rsc.h" />
|
||||
<ClInclude Include="$(IncDir)global.h" />
|
||||
<ClInclude Include="$(IncDir)hack.h" />
|
||||
<ClInclude Include="$(IncDir)integer.h" />
|
||||
<ClInclude Include="$(IncDir)isaac64.h" />
|
||||
<ClInclude Include="$(IncDir)lev_comp.h" />
|
||||
<ClInclude Include="$(IncDir)lint.h" />
|
||||
<ClInclude Include="$(IncDir)load_img.h" />
|
||||
<ClInclude Include="$(IncDir)mail.h" />
|
||||
<ClInclude Include="$(IncDir)mextra.h" />
|
||||
<ClInclude Include="$(IncDir)mfndpos.h" />
|
||||
<ClInclude Include="$(IncDir)micro.h" />
|
||||
<ClInclude Include="$(IncDir)mkroom.h" />
|
||||
<ClInclude Include="$(IncDir)monattk.h" />
|
||||
<ClInclude Include="$(IncDir)mondata.h" />
|
||||
<ClInclude Include="$(IncDir)monflag.h" />
|
||||
<ClInclude Include="$(IncDir)monst.h" />
|
||||
<ClInclude Include="$(IncDir)monsym.h" />
|
||||
<ClInclude Include="$(IncDir)nhlua.h" />
|
||||
<ClInclude Include="$(IncDir)windconf.h" />
|
||||
<ClInclude Include="$(IncDir)obj.h" />
|
||||
<ClInclude Include="$(IncDir)objclass.h" />
|
||||
<ClInclude Include="$(IncDir)onames.h" />
|
||||
<ClInclude Include="$(IncDir)optlist.h" />
|
||||
<ClInclude Include="$(IncDir)patchlevel.h" />
|
||||
<ClInclude Include="$(IncDir)pcconf.h" />
|
||||
<ClInclude Include="$(IncDir)permonst.h" />
|
||||
<ClInclude Include="$(IncDir)pm.h" />
|
||||
<ClInclude Include="$(IncDir)prop.h" />
|
||||
<ClInclude Include="$(IncDir)quest.h" />
|
||||
<ClInclude Include="$(IncDir)rect.h" />
|
||||
<ClInclude Include="$(IncDir)region.h" />
|
||||
<ClInclude Include="$(IncDir)rm.h" />
|
||||
<ClInclude Include="$(IncDir)skills.h" />
|
||||
<ClInclude Include="$(IncDir)spell.h" />
|
||||
<ClInclude Include="$(IncDir)sp_lev.h" />
|
||||
<ClInclude Include="$(IncDir)sys.h" />
|
||||
<ClInclude Include="$(IncDir)system.h" />
|
||||
<ClInclude Include="$(IncDir)tcap.h" />
|
||||
<ClInclude Include="$(IncDir)tile2x11.h" />
|
||||
<ClInclude Include="$(IncDir)tileset.h" />
|
||||
<ClInclude Include="$(IncDir)timeout.h" />
|
||||
<ClInclude Include="$(IncDir)tradstdc.h" />
|
||||
<ClInclude Include="$(IncDir)trap.h" />
|
||||
<ClInclude Include="$(IncDir)unixconf.h" />
|
||||
<ClInclude Include="$(IncDir)vision.h" />
|
||||
<ClInclude Include="$(IncDir)vmsconf.h" />
|
||||
<ClInclude Include="$(IncDir)winami.h" />
|
||||
<ClInclude Include="$(IncDir)wincurs.h" />
|
||||
<ClInclude Include="$(IncDir)winprocs.h" />
|
||||
<ClInclude Include="$(IncDir)wintty.h" />
|
||||
<ClInclude Include="$(IncDir)wintype.h" />
|
||||
<ClInclude Include="$(IncDir)winX.h" />
|
||||
<ClInclude Include="$(IncDir)xwindow.h" />
|
||||
<ClInclude Include="$(IncDir)xwindowp.h" />
|
||||
<ClInclude Include="$(IncDir)you.h" />
|
||||
<ClInclude Include="$(IncDir)youprop.h" />
|
||||
<ClInclude Include="$(vsDir)resource.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="$(WinWin32Dir)mnsel.bmp" />
|
||||
<Image Include="$(WinWin32Dir)mnselcnt.bmp" />
|
||||
<Image Include="$(WinWin32Dir)mnunsel.bmp" />
|
||||
<Image Include="$(WinWin32Dir)NETHACK.ICO" />
|
||||
<Image Include="$(WinWin32Dir)petmark.bmp" />
|
||||
<Image Include="$(WinWin32Dir)pilemark.bmp" />
|
||||
<Image Include="$(WinWin32Dir)rip.bmp" />
|
||||
<Image Include="$(WinWin32Dir)splash.bmp" />
|
||||
<Image Include="$(WinWin32Dir)tiles.bmp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="cpp.hint" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<Target Name="AfterBuild">
|
||||
<MSBuild Projects="$(vsDir)NetHack\afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
|
||||
</Target>
|
||||
<Target Name="AfterClean">
|
||||
<MSBuild Projects="$(vsDir)NetHack\afternethack.proj" Targets="Clean" Properties="Configuration=$(Configuration)" />
|
||||
</Target>
|
||||
<Target Name="AfterRebuild">
|
||||
<MSBuild Projects="$(vsDir)NetHack\afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
|
||||
</Target>
|
||||
</Project>
|
||||
118
sys/windows/vs/PDCurses/PDCurses.vcxproj
Normal file
@@ -0,0 +1,118 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\dirs.props" />
|
||||
<Import Project="$(vsDir)config.props" />
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{BAA70D0F-3EC7-4D10-91F0-974F1F49308B}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>PDCurses</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<Import Project="$(vsDir)default_lib.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ItemGroup>
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\addch.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\addchstr.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\addstr.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\attr.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\beep.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\bkgd.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\border.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\clear.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\color.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\debug.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\delch.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\deleteln.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\getch.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\getstr.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\getyx.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\inch.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\inchstr.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\initscr.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\inopts.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\insch.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\insstr.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\kernel.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\keyname.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\mouse.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\move.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\outopts.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\overlay.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\pad.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\panel.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\printw.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\refresh.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\scanw.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\scroll.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\scr_dump.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\slk.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\termattr.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\touch.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\util.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\pdcurses\window.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\wincon\pdcclip.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\wincon\pdcdisp.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\wincon\pdcgetsc.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\wincon\pdckbd.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\wincon\pdcscrn.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\wincon\pdcsetsc.c" />
|
||||
<ClCompile Condition="Exists('$(PDCURSES)')" Include="$(PDCURSES)\wincon\pdcutil.c" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup >
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<IncludePath>$(PDCURSES);$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<DisableSpecificWarnings>4996;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<OmitDefaultLibName>true</OmitDefaultLibName>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
||||
373
sys/windows/vs/Package.StoreAssociation.xml
Normal file
@@ -0,0 +1,373 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<StoreAssociation xmlns="http://schemas.microsoft.com/appx/2010/storeassociation">
|
||||
<Publisher>CN=8BDC628A-FAAA-4EBA-8B5B-EB61BA93BA1F</Publisher>
|
||||
<PublisherDisplayName>NetHack DevTeam</PublisherDisplayName>
|
||||
<DeveloperAccountType>AAD</DeveloperAccountType>
|
||||
<GeneratePackageHash>http://www.w3.org/2001/04/xmlenc#sha256</GeneratePackageHash>
|
||||
<SupportedLocales>
|
||||
<Language Code="af" InMinimumRequirementSet="true" />
|
||||
<Language Code="af-za" InMinimumRequirementSet="true" />
|
||||
<Language Code="am" InMinimumRequirementSet="true" />
|
||||
<Language Code="am-et" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-ae" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-bh" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-dz" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-eg" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-iq" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-jo" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-kw" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-lb" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-ly" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-ma" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-om" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-qa" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-sa" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-sy" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-tn" InMinimumRequirementSet="true" />
|
||||
<Language Code="ar-ye" InMinimumRequirementSet="true" />
|
||||
<Language Code="as" InMinimumRequirementSet="true" />
|
||||
<Language Code="as-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="az" InMinimumRequirementSet="true" />
|
||||
<Language Code="az-arab" InMinimumRequirementSet="true" />
|
||||
<Language Code="az-arab-az" InMinimumRequirementSet="true" />
|
||||
<Language Code="az-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="az-cyrl-az" InMinimumRequirementSet="true" />
|
||||
<Language Code="az-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="az-latn-az" InMinimumRequirementSet="true" />
|
||||
<Language Code="be" InMinimumRequirementSet="true" />
|
||||
<Language Code="be-by" InMinimumRequirementSet="true" />
|
||||
<Language Code="bg" InMinimumRequirementSet="true" />
|
||||
<Language Code="bg-bg" InMinimumRequirementSet="true" />
|
||||
<Language Code="bn" InMinimumRequirementSet="true" />
|
||||
<Language Code="bn-bd" InMinimumRequirementSet="true" />
|
||||
<Language Code="bn-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="bs" InMinimumRequirementSet="true" />
|
||||
<Language Code="bs-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="bs-cyrl-ba" InMinimumRequirementSet="true" />
|
||||
<Language Code="bs-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="bs-latn-ba" InMinimumRequirementSet="true" />
|
||||
<Language Code="ca" InMinimumRequirementSet="true" />
|
||||
<Language Code="ca-es" InMinimumRequirementSet="true" />
|
||||
<Language Code="ca-es-valencia" InMinimumRequirementSet="true" />
|
||||
<Language Code="chr-cher" InMinimumRequirementSet="true" />
|
||||
<Language Code="chr-cher-us" InMinimumRequirementSet="true" />
|
||||
<Language Code="chr-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="cs" InMinimumRequirementSet="true" />
|
||||
<Language Code="cs-cz" InMinimumRequirementSet="true" />
|
||||
<Language Code="cy" InMinimumRequirementSet="true" />
|
||||
<Language Code="cy-gb" InMinimumRequirementSet="true" />
|
||||
<Language Code="da" InMinimumRequirementSet="true" />
|
||||
<Language Code="da-dk" InMinimumRequirementSet="true" />
|
||||
<Language Code="de" InMinimumRequirementSet="true" />
|
||||
<Language Code="de-at" InMinimumRequirementSet="true" />
|
||||
<Language Code="de-ch" InMinimumRequirementSet="true" />
|
||||
<Language Code="de-de" InMinimumRequirementSet="true" />
|
||||
<Language Code="de-li" InMinimumRequirementSet="true" />
|
||||
<Language Code="de-lu" InMinimumRequirementSet="true" />
|
||||
<Language Code="el" InMinimumRequirementSet="true" />
|
||||
<Language Code="el-gr" InMinimumRequirementSet="true" />
|
||||
<Language Code="en" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-011" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-014" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-018" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-021" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-029" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-053" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-au" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-bz" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-ca" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-gb" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-hk" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-id" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-ie" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-jm" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-kz" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-mt" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-my" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-nz" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-ph" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-pk" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-sg" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-tt" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-us" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-vn" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-za" InMinimumRequirementSet="true" />
|
||||
<Language Code="en-zw" InMinimumRequirementSet="true" />
|
||||
<Language Code="es" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-019" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-419" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-ar" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-bo" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-cl" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-co" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-cr" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-do" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-ec" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-es" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-gt" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-hn" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-mx" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-ni" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-pa" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-pe" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-pr" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-py" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-sv" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-us" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-uy" InMinimumRequirementSet="true" />
|
||||
<Language Code="es-ve" InMinimumRequirementSet="true" />
|
||||
<Language Code="et" InMinimumRequirementSet="true" />
|
||||
<Language Code="et-ee" InMinimumRequirementSet="true" />
|
||||
<Language Code="eu" InMinimumRequirementSet="true" />
|
||||
<Language Code="eu-es" InMinimumRequirementSet="true" />
|
||||
<Language Code="fa" InMinimumRequirementSet="true" />
|
||||
<Language Code="fa-ir" InMinimumRequirementSet="true" />
|
||||
<Language Code="fi" InMinimumRequirementSet="true" />
|
||||
<Language Code="fi-fi" InMinimumRequirementSet="true" />
|
||||
<Language Code="fil" InMinimumRequirementSet="true" />
|
||||
<Language Code="fil-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="fil-ph" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-011" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-015" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-021" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-029" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-155" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-be" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-ca" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-cd" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-ch" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-ci" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-cm" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-fr" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-ht" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-lu" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-ma" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-mc" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-ml" InMinimumRequirementSet="true" />
|
||||
<Language Code="fr-re" InMinimumRequirementSet="true" />
|
||||
<Language Code="frc-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="frp-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="ga" InMinimumRequirementSet="true" />
|
||||
<Language Code="ga-ie" InMinimumRequirementSet="true" />
|
||||
<Language Code="gd-gb" InMinimumRequirementSet="true" />
|
||||
<Language Code="gd-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="gl" InMinimumRequirementSet="true" />
|
||||
<Language Code="gl-es" InMinimumRequirementSet="true" />
|
||||
<Language Code="gu" InMinimumRequirementSet="true" />
|
||||
<Language Code="gu-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="ha" InMinimumRequirementSet="true" />
|
||||
<Language Code="ha-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="ha-latn-ng" InMinimumRequirementSet="true" />
|
||||
<Language Code="he" InMinimumRequirementSet="true" />
|
||||
<Language Code="he-il" InMinimumRequirementSet="true" />
|
||||
<Language Code="hi" InMinimumRequirementSet="true" />
|
||||
<Language Code="hi-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="hr" InMinimumRequirementSet="true" />
|
||||
<Language Code="hr-ba" InMinimumRequirementSet="true" />
|
||||
<Language Code="hr-hr" InMinimumRequirementSet="true" />
|
||||
<Language Code="hu" InMinimumRequirementSet="true" />
|
||||
<Language Code="hu-hu" InMinimumRequirementSet="true" />
|
||||
<Language Code="hy" InMinimumRequirementSet="true" />
|
||||
<Language Code="hy-am" InMinimumRequirementSet="true" />
|
||||
<Language Code="id" InMinimumRequirementSet="true" />
|
||||
<Language Code="id-id" InMinimumRequirementSet="true" />
|
||||
<Language Code="ig-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="ig-ng" InMinimumRequirementSet="true" />
|
||||
<Language Code="is" InMinimumRequirementSet="true" />
|
||||
<Language Code="is-is" InMinimumRequirementSet="true" />
|
||||
<Language Code="it" InMinimumRequirementSet="true" />
|
||||
<Language Code="it-ch" InMinimumRequirementSet="true" />
|
||||
<Language Code="it-it" InMinimumRequirementSet="true" />
|
||||
<Language Code="iu-cans" InMinimumRequirementSet="true" />
|
||||
<Language Code="iu-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="iu-latn-ca" InMinimumRequirementSet="true" />
|
||||
<Language Code="ja" InMinimumRequirementSet="true" />
|
||||
<Language Code="ja-jp" InMinimumRequirementSet="true" />
|
||||
<Language Code="ka" InMinimumRequirementSet="true" />
|
||||
<Language Code="ka-ge" InMinimumRequirementSet="true" />
|
||||
<Language Code="kk" InMinimumRequirementSet="true" />
|
||||
<Language Code="kk-kz" InMinimumRequirementSet="true" />
|
||||
<Language Code="km" InMinimumRequirementSet="true" />
|
||||
<Language Code="km-kh" InMinimumRequirementSet="true" />
|
||||
<Language Code="kn" InMinimumRequirementSet="true" />
|
||||
<Language Code="kn-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="ko" InMinimumRequirementSet="true" />
|
||||
<Language Code="ko-kr" InMinimumRequirementSet="true" />
|
||||
<Language Code="kok" InMinimumRequirementSet="true" />
|
||||
<Language Code="kok-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="ku-arab" InMinimumRequirementSet="true" />
|
||||
<Language Code="ku-arab-iq" InMinimumRequirementSet="true" />
|
||||
<Language Code="ky-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="ky-kg" InMinimumRequirementSet="true" />
|
||||
<Language Code="lb" InMinimumRequirementSet="true" />
|
||||
<Language Code="lb-lu" InMinimumRequirementSet="true" />
|
||||
<Language Code="lo" InMinimumRequirementSet="true" />
|
||||
<Language Code="lo-la" InMinimumRequirementSet="true" />
|
||||
<Language Code="lt" InMinimumRequirementSet="true" />
|
||||
<Language Code="lt-lt" InMinimumRequirementSet="true" />
|
||||
<Language Code="lv" InMinimumRequirementSet="true" />
|
||||
<Language Code="lv-lv" InMinimumRequirementSet="true" />
|
||||
<Language Code="mi" InMinimumRequirementSet="true" />
|
||||
<Language Code="mi-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="mi-nz" InMinimumRequirementSet="true" />
|
||||
<Language Code="mk" InMinimumRequirementSet="true" />
|
||||
<Language Code="mk-mk" InMinimumRequirementSet="true" />
|
||||
<Language Code="ml" InMinimumRequirementSet="true" />
|
||||
<Language Code="ml-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="mn-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="mn-mn" InMinimumRequirementSet="true" />
|
||||
<Language Code="mn-mong" InMinimumRequirementSet="true" />
|
||||
<Language Code="mn-phag" InMinimumRequirementSet="true" />
|
||||
<Language Code="mr" InMinimumRequirementSet="true" />
|
||||
<Language Code="mr-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="ms" InMinimumRequirementSet="true" />
|
||||
<Language Code="ms-bn" InMinimumRequirementSet="true" />
|
||||
<Language Code="ms-my" InMinimumRequirementSet="true" />
|
||||
<Language Code="mt" InMinimumRequirementSet="true" />
|
||||
<Language Code="mt-mt" InMinimumRequirementSet="true" />
|
||||
<Language Code="nb" InMinimumRequirementSet="true" />
|
||||
<Language Code="nb-no" InMinimumRequirementSet="true" />
|
||||
<Language Code="ne" InMinimumRequirementSet="true" />
|
||||
<Language Code="ne-np" InMinimumRequirementSet="true" />
|
||||
<Language Code="nl" InMinimumRequirementSet="true" />
|
||||
<Language Code="nl-be" InMinimumRequirementSet="true" />
|
||||
<Language Code="nl-nl" InMinimumRequirementSet="true" />
|
||||
<Language Code="nn" InMinimumRequirementSet="true" />
|
||||
<Language Code="nn-no" InMinimumRequirementSet="true" />
|
||||
<Language Code="no" InMinimumRequirementSet="true" />
|
||||
<Language Code="no-no" InMinimumRequirementSet="true" />
|
||||
<Language Code="nso" InMinimumRequirementSet="true" />
|
||||
<Language Code="nso-za" InMinimumRequirementSet="true" />
|
||||
<Language Code="om" InMinimumRequirementSet="false" />
|
||||
<Language Code="om-et" InMinimumRequirementSet="false" />
|
||||
<Language Code="or" InMinimumRequirementSet="true" />
|
||||
<Language Code="or-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="pa" InMinimumRequirementSet="true" />
|
||||
<Language Code="pa-arab" InMinimumRequirementSet="true" />
|
||||
<Language Code="pa-arab-pk" InMinimumRequirementSet="true" />
|
||||
<Language Code="pa-deva" InMinimumRequirementSet="true" />
|
||||
<Language Code="pa-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="pl" InMinimumRequirementSet="true" />
|
||||
<Language Code="pl-pl" InMinimumRequirementSet="true" />
|
||||
<Language Code="prs" InMinimumRequirementSet="true" />
|
||||
<Language Code="prs-af" InMinimumRequirementSet="true" />
|
||||
<Language Code="prs-arab" InMinimumRequirementSet="true" />
|
||||
<Language Code="pt" InMinimumRequirementSet="true" />
|
||||
<Language Code="pt-br" InMinimumRequirementSet="true" />
|
||||
<Language Code="pt-pt" InMinimumRequirementSet="true" />
|
||||
<Language Code="quc-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="qut-gt" InMinimumRequirementSet="true" />
|
||||
<Language Code="qut-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="quz" InMinimumRequirementSet="true" />
|
||||
<Language Code="quz-bo" InMinimumRequirementSet="true" />
|
||||
<Language Code="quz-ec" InMinimumRequirementSet="true" />
|
||||
<Language Code="quz-pe" InMinimumRequirementSet="true" />
|
||||
<Language Code="ro" InMinimumRequirementSet="true" />
|
||||
<Language Code="ro-ro" InMinimumRequirementSet="true" />
|
||||
<Language Code="ru" InMinimumRequirementSet="true" />
|
||||
<Language Code="ru-ru" InMinimumRequirementSet="true" />
|
||||
<Language Code="rw" InMinimumRequirementSet="true" />
|
||||
<Language Code="rw-rw" InMinimumRequirementSet="true" />
|
||||
<Language Code="sd-arab" InMinimumRequirementSet="true" />
|
||||
<Language Code="sd-arab-pk" InMinimumRequirementSet="true" />
|
||||
<Language Code="sd-deva" InMinimumRequirementSet="true" />
|
||||
<Language Code="si" InMinimumRequirementSet="true" />
|
||||
<Language Code="si-lk" InMinimumRequirementSet="true" />
|
||||
<Language Code="sk" InMinimumRequirementSet="true" />
|
||||
<Language Code="sk-sk" InMinimumRequirementSet="true" />
|
||||
<Language Code="sl" InMinimumRequirementSet="true" />
|
||||
<Language Code="sl-si" InMinimumRequirementSet="true" />
|
||||
<Language Code="sq" InMinimumRequirementSet="true" />
|
||||
<Language Code="sq-al" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-cyrl-ba" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-cyrl-cs" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-cyrl-me" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-cyrl-rs" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-latn-ba" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-latn-cs" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-latn-me" InMinimumRequirementSet="true" />
|
||||
<Language Code="sr-latn-rs" InMinimumRequirementSet="true" />
|
||||
<Language Code="sv" InMinimumRequirementSet="true" />
|
||||
<Language Code="sv-fi" InMinimumRequirementSet="true" />
|
||||
<Language Code="sv-se" InMinimumRequirementSet="true" />
|
||||
<Language Code="sw" InMinimumRequirementSet="true" />
|
||||
<Language Code="sw-ke" InMinimumRequirementSet="true" />
|
||||
<Language Code="ta" InMinimumRequirementSet="true" />
|
||||
<Language Code="ta-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="te" InMinimumRequirementSet="true" />
|
||||
<Language Code="te-in" InMinimumRequirementSet="true" />
|
||||
<Language Code="tg-arab" InMinimumRequirementSet="true" />
|
||||
<Language Code="tg-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="tg-cyrl-tj" InMinimumRequirementSet="true" />
|
||||
<Language Code="tg-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="th" InMinimumRequirementSet="true" />
|
||||
<Language Code="th-th" InMinimumRequirementSet="true" />
|
||||
<Language Code="ti" InMinimumRequirementSet="true" />
|
||||
<Language Code="ti-et" InMinimumRequirementSet="true" />
|
||||
<Language Code="tk-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="tk-cyrl-tr" InMinimumRequirementSet="true" />
|
||||
<Language Code="tk-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="tk-latn-tr" InMinimumRequirementSet="true" />
|
||||
<Language Code="tk-tm" InMinimumRequirementSet="true" />
|
||||
<Language Code="tn" InMinimumRequirementSet="true" />
|
||||
<Language Code="tn-bw" InMinimumRequirementSet="true" />
|
||||
<Language Code="tn-za" InMinimumRequirementSet="true" />
|
||||
<Language Code="tr" InMinimumRequirementSet="true" />
|
||||
<Language Code="tr-tr" InMinimumRequirementSet="true" />
|
||||
<Language Code="tt-arab" InMinimumRequirementSet="true" />
|
||||
<Language Code="tt-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="tt-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="tt-ru" InMinimumRequirementSet="true" />
|
||||
<Language Code="ug-arab" InMinimumRequirementSet="true" />
|
||||
<Language Code="ug-cn" InMinimumRequirementSet="true" />
|
||||
<Language Code="ug-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="ug-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="uk" InMinimumRequirementSet="true" />
|
||||
<Language Code="uk-ua" InMinimumRequirementSet="true" />
|
||||
<Language Code="ur" InMinimumRequirementSet="true" />
|
||||
<Language Code="ur-pk" InMinimumRequirementSet="true" />
|
||||
<Language Code="uz" InMinimumRequirementSet="true" />
|
||||
<Language Code="uz-cyrl" InMinimumRequirementSet="true" />
|
||||
<Language Code="uz-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="uz-latn-uz" InMinimumRequirementSet="true" />
|
||||
<Language Code="vi" InMinimumRequirementSet="true" />
|
||||
<Language Code="vi-vn" InMinimumRequirementSet="true" />
|
||||
<Language Code="wo" InMinimumRequirementSet="true" />
|
||||
<Language Code="wo-sn" InMinimumRequirementSet="true" />
|
||||
<Language Code="xh" InMinimumRequirementSet="true" />
|
||||
<Language Code="xh-za" InMinimumRequirementSet="true" />
|
||||
<Language Code="yo-latn" InMinimumRequirementSet="true" />
|
||||
<Language Code="yo-ng" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-cn" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-hans" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-hans-cn" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-hans-sg" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-hant" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-hant-hk" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-hant-mo" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-hant-tw" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-hk" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-mo" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-sg" InMinimumRequirementSet="true" />
|
||||
<Language Code="zh-tw" InMinimumRequirementSet="true" />
|
||||
<Language Code="zu" InMinimumRequirementSet="true" />
|
||||
<Language Code="zu-za" InMinimumRequirementSet="true" />
|
||||
</SupportedLocales>
|
||||
<ProductReservedInfo>
|
||||
<MainPackageIdentityName>30485NetHackDevTeam.NetHack3.6</MainPackageIdentityName>
|
||||
<ReservedNames>
|
||||
<ReservedName>NetHack 3.7</ReservedName>
|
||||
</ReservedNames>
|
||||
</ProductReservedInfo>
|
||||
<AccountPackageIdentityNames>
|
||||
<MainPackageIdentityName>30485NetHackDevTeam.NetHackBeta</MainPackageIdentityName>
|
||||
</AccountPackageIdentityNames>
|
||||
<PackageInfoList LandingUrl="https://developer.microsoft.com/dashboard/Application?appId=9PJ7BFSRP8M5" />
|
||||
</StoreAssociation>
|
||||
BIN
sys/windows/vs/ScreenShot.PNG
Normal file
|
After Width: | Height: | Size: 53 KiB |
44
sys/windows/vs/build.bat
Normal file
@@ -0,0 +1,44 @@
|
||||
@echo off
|
||||
|
||||
if "%VSCMD_VER%"=="" (
|
||||
echo MSBuild environment not set ... attempting to setup build environment.
|
||||
call :setup_environment
|
||||
)
|
||||
|
||||
if "%VSCMD_VER%"=="" (
|
||||
echo Unable to setup build environment. Exiting.
|
||||
goto :EOF
|
||||
)
|
||||
|
||||
msbuild NetHack.sln /t:Clean;Build /p:Configuration=Debug;Platform=Win32
|
||||
msbuild NetHack.sln /t:Clean;Build /p:Configuration=Debug;Platform=x64
|
||||
msbuild NetHack.sln /t:Clean;Build /p:Configuration=Release;Platform=Win32
|
||||
msbuild NetHack.sln /t:Clean;Build /p:Configuration=Release;Platform=x64
|
||||
|
||||
goto :EOF
|
||||
|
||||
:setup_environment
|
||||
|
||||
|
||||
if "%VS150COMNTOOLS%"=="" (
|
||||
call :set_vs15comntools
|
||||
)
|
||||
|
||||
if "%VS150COMNTOOLS%"=="" (
|
||||
echo Can not find Visual Studio 2017 Common Tools path.
|
||||
echo Set VS150COMNTOOLS appropriately.
|
||||
goto :EOF
|
||||
)
|
||||
|
||||
call "%VS150COMNTOOLS%VsMSBuildCmd.bat"
|
||||
cd %~dp0
|
||||
|
||||
goto :EOF
|
||||
|
||||
:set_vs15comntools
|
||||
|
||||
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Professional\Common7\Tools" (
|
||||
set "VS150COMNTOOLS=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Professional\Common7\Tools\"
|
||||
)
|
||||
|
||||
goto :EOF
|
||||
42
sys/windows/vs/common.props
Normal file
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Release'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<DisableSpecificWarnings>4820;4706;4244;4245;4100;4310</DisableSpecificWarnings>
|
||||
<PreprocessorDefinitions>WIN32;CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;WINVER=0x0601;_WIN32_WINNT=0x0601;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<ProgramDatabaseFile>$(SymbolsDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
</Project>
|
||||
28
sys/windows/vs/config.props
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>15.0</VCProjectVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(WindowsTargetPlatformVersion)'==''">
|
||||
<LatestTargetPlatformVersion>$([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0'))</LatestTargetPlatformVersion>
|
||||
<WindowsTargetPlatformVersion Condition="'$(WindowsTargetPlatformVersion)' == ''">$(LatestTargetPlatformVersion)</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
11
sys/windows/vs/console.props
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
</Project>
|
||||
6
sys/windows/vs/cpp.hint
Normal file
@@ -0,0 +1,6 @@
|
||||
// Hint files help the Visual Studio IDE interpret Visual C++ identifiers
|
||||
// such as names of functions and macros.
|
||||
// For more information see https://go.microsoft.com/fwlink/?linkid=865984
|
||||
#define E
|
||||
#define NDECL(x) x
|
||||
#define FDECL(x, y) x y
|
||||
17
sys/windows/vs/default.props
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<LocalDebuggerWorkingDirectory>$(BinDir)</LocalDebuggerWorkingDirectory>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Debug'" >
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Release'" >
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
17
sys/windows/vs/default_dll.props
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Debug'" >
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Release'" >
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
17
sys/windows/vs/default_lib.props
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Debug'" >
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Release'" >
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
32
sys/windows/vs/dirs.props
Normal file
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<RootDir>$(MSBuildProjectDirectory)\..\..\..\..\</RootDir>
|
||||
<vsDir>$(RootDir)sys\windows\vs\</vsDir>
|
||||
<BinDir>$(RootDir)binary\$(Configuration)\$(Platform)\</BinDir>
|
||||
<ObjDir>$(ProjectDir)obj\$(Configuration)\$(Platform)\$(TargetName)\</ObjDir>
|
||||
<SymbolsDir>$(ProjectDir)symbols\$(Configuration)\$(Platform)\$(TargetName)\</SymbolsDir>
|
||||
<ToolsDir>$(RootDir)tools\$(Configuration)\$(Platform)\</ToolsDir>
|
||||
<ImageDir>$(vsDir)\Images\</ImageDir>
|
||||
<UtilDir>$(RootDir)util\</UtilDir>
|
||||
<DatDir>$(RootDir)dat\</DatDir>
|
||||
<DocDir>$(RootDir)doc\</DocDir>
|
||||
<IncDir>$(RootDir)include\</IncDir>
|
||||
<LuaDir>$(RootDir)submodules\lua\</LuaDir>
|
||||
<SrcDir>$(RootDir)src\</SrcDir>
|
||||
<SysDir>$(RootDir)sys\</SysDir>
|
||||
<UtilDir>$(RootDir)util\</UtilDir>
|
||||
<SysShareDir>$(RootDir)sys\share\</SysShareDir>
|
||||
<SysWindDir>$(RootDir)sys\windows\</SysWindDir>
|
||||
<WinShareDir>$(RootDir)win\share\</WinShareDir>
|
||||
<WinTtyDir>$(RootDir)win\tty\</WinTtyDir>
|
||||
<WinWin32Dir>$(RootDir)win\win32\</WinWin32Dir>
|
||||
<OutDir>$(ToolsDir)</OutDir>
|
||||
<IntDir>$(ObjDir)</IntDir>
|
||||
<WinCursDir>$(RootDir)win\curses\</WinCursDir>
|
||||
<SubmodulesDir>$(RootDir)submodules\</SubmodulesDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(PDCURSES)'=='' AND Exists('$(RootDir)lib\PDCurses')">
|
||||
<PDCURSES>$(RootDir)lib\PDCurses\</PDCURSES>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
17
sys/windows/vs/dlb/afterdlb.proj
Normal file
@@ -0,0 +1,17 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\dirs.props"/>
|
||||
<Import Project="$(vsDir)files.props"/>
|
||||
<Target Name="Build"
|
||||
Inputs="$(ToolsDir)dlb.exe;@(DlbList);$(SysWindDir)porthelp"
|
||||
Outputs="$(BinDir)nhdat$(VERSION_MAJOR)$(VERSION_MINOR)$(PATCHLEVEL)">
|
||||
<MakeDir Directories="$(BinDir)"/>
|
||||
<Copy SourceFiles="$(SysWindDir)porthelp" DestinationFolder="$(DatDir)"/>
|
||||
<WriteLinesToFile File="$(DatDir)dlb.lst" Lines="@(DlbList->'%(filename)%(extension)')" Overwrite="true"/>
|
||||
<Exec Command=""$(ToolsDir)dlb.exe" cIf dlb.lst "$(BinDir)nhdat"" WorkingDirectory="$(DatDir)"/>
|
||||
<Delete Files="$(DatDir)porthelp"/>
|
||||
|
||||
</Target>
|
||||
<Target Name="Clean">
|
||||
<Delete Files="$(BinDir)nhdat$(VERSION_MAJOR)$(VERSION_MINOR)$(PATCHLEVEL)"/>
|
||||
</Target>
|
||||
</Project>
|
||||
51
sys/windows/vs/dlb/dlb.vcxproj
Normal file
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\dirs.props" />
|
||||
<Import Project="$(vsDir)config.props" />
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{0303A585-3F83-4BB7-AF6B-1E12C8FB54AC}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<Import Project="$(vsDir)default.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(vsDir)NetHackProperties.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(vsDir)NetHackProperties.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(vsDir)NetHackProperties.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(vsDir)NetHackProperties.props" />
|
||||
</ImportGroup>
|
||||
<Import Project="$(vsDir)console.props" />
|
||||
<Import Project="$(vsDir)common.props" />
|
||||
<Import Project="$(vsDir)files.props" />
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(IncDir);$(SysWindDir);$(SysShareDir);$(LuaDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32CON;DLB;MSWIN_GRAPHICS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(SrcDir)alloc.c" />
|
||||
<ClCompile Include="$(SrcDir)dlb.c" />
|
||||
<ClCompile Include="$(UtilDir)dlb_main.c" />
|
||||
<ClCompile Include="$(UtilDir)panic.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="$(IncDir)dlb.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<Target Name="AfterBuild">
|
||||
<MSBuild Projects="afterdlb.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
|
||||
</Target>
|
||||
<Target Name="AfterClean">
|
||||
<MSBuild Projects="afterdlb.proj" Targets="Clean" Properties="Configuration=$(Configuration)" />
|
||||
</Target>
|
||||
<Target Name="AfterRebuild">
|
||||
<MSBuild Projects="afterdlb.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
|
||||
</Target>
|
||||
</Project>
|
||||
11
sys/windows/vs/dll.props
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>WIN32CON;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
</Project>
|
||||
226
sys/windows/vs/files.props
Normal file
@@ -0,0 +1,226 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<!-- -v -->
|
||||
<Defs Include = "$(DatDir)options"/>
|
||||
<Defs Include = "$(IncDir)date.h"/>
|
||||
<!-- -o -->
|
||||
<Defs Include = "$(IncDir)onames.h"/>
|
||||
<!-- -p -->
|
||||
<Defs Include = "$(IncDir)pm.h"/>
|
||||
<!-- -r -->
|
||||
<Defs Include = "$(DatDir)rumors"/>
|
||||
<!-- -s -->
|
||||
<Defs Include = "$(DatDir)engrave"/>
|
||||
<Defs Include = "$(DatDir)epitaph"/>
|
||||
<Defs Include = "$(DatDir)bogusmon"/>
|
||||
<!-- -h -->
|
||||
<Defs Include = "$(DatDir)oracles"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Luafiles Include = "bigrm-1.lua"/>
|
||||
<Luafiles Include = "bigrm-2.lua"/>
|
||||
<Luafiles Include = "bigrm-3.lua"/>
|
||||
<Luafiles Include = "bigrm-4.lua"/>
|
||||
<Luafiles Include = "bigrm-5.lua"/>
|
||||
<Luafiles Include = "bigrm-6.lua"/>
|
||||
<Luafiles Include = "bigrm-7.lua"/>
|
||||
<Luafiles Include = "bigrm-8.lua"/>
|
||||
<Luafiles Include = "bigrm-9.lua"/>
|
||||
<Luafiles Include = "bigrm-10.lua"/>
|
||||
<Luafiles Include = "castle.lua"/>
|
||||
<Luafiles Include = "air.lua"/>
|
||||
<Luafiles Include = "astral.lua"/>
|
||||
<Luafiles Include = "earth.lua"/>
|
||||
<Luafiles Include = "fire.lua"/>
|
||||
<Luafiles Include = "water.lua"/>
|
||||
<Luafiles Include = "asmodeus.lua"/>
|
||||
<Luafiles Include = "baalz.lua"/>
|
||||
<Luafiles Include = "juiblex.lua"/>
|
||||
<Luafiles Include = "orcus.lua"/>
|
||||
<Luafiles Include = "quest.lua"/>
|
||||
<Luafiles Include = "sanctum.lua"/>
|
||||
<Luafiles Include = "valley.lua"/>
|
||||
<Luafiles Include = "knox.lua"/>
|
||||
<Luafiles Include = "minefill.lua"/>
|
||||
<Luafiles Include = "minend-1.lua"/>
|
||||
<Luafiles Include = "minend-2.lua"/>
|
||||
<Luafiles Include = "minend-3.lua"/>
|
||||
<Luafiles Include = "minetn-1.lua"/>
|
||||
<Luafiles Include = "minetn-2.lua"/>
|
||||
<Luafiles Include = "minetn-3.lua"/>
|
||||
<Luafiles Include = "minetn-4.lua"/>
|
||||
<Luafiles Include = "minetn-5.lua"/>
|
||||
<Luafiles Include = "minetn-6.lua"/>
|
||||
<Luafiles Include = "minetn-7.lua"/>
|
||||
<Luafiles Include = "medusa-1.lua"/>
|
||||
<Luafiles Include = "medusa-2.lua"/>
|
||||
<Luafiles Include = "medusa-3.lua"/>
|
||||
<Luafiles Include = "medusa-4.lua"/>
|
||||
<Luafiles Include = "oracle.lua"/>
|
||||
<Luafiles Include = "soko1-1.lua"/>
|
||||
<Luafiles Include = "soko1-2.lua"/>
|
||||
<Luafiles Include = "soko2-1.lua"/>
|
||||
<Luafiles Include = "soko2-2.lua"/>
|
||||
<Luafiles Include = "soko3-1.lua"/>
|
||||
<Luafiles Include = "soko3-2.lua"/>
|
||||
<Luafiles Include = "soko4-1.lua"/>
|
||||
<Luafiles Include = "soko4-2.lua"/>
|
||||
<Luafiles Include = "tower1.lua"/>
|
||||
<Luafiles Include = "tower2.lua"/>
|
||||
<Luafiles Include = "tower3.lua"/>
|
||||
<Luafiles Include = "fakewiz1.lua"/>
|
||||
<Luafiles Include = "fakewiz2.lua"/>
|
||||
<Luafiles Include = "wizard1.lua"/>
|
||||
<Luafiles Include = "wizard2.lua"/>
|
||||
<Luafiles Include = "wizard3.lua"/>
|
||||
<Luafiles Include = "arc-fila.lua"/>
|
||||
<Luafiles Include = "arc-filb.lua"/>
|
||||
<Luafiles Include = "arc-goal.lua"/>
|
||||
<Luafiles Include = "arc-loca.lua"/>
|
||||
<Luafiles Include = "arc-strt.lua"/>
|
||||
<Luafiles Include = "bar-fila.lua"/>
|
||||
<Luafiles Include = "bar-filb.lua"/>
|
||||
<Luafiles Include = "bar-goal.lua"/>
|
||||
<Luafiles Include = "bar-loca.lua"/>
|
||||
<Luafiles Include = "bar-strt.lua"/>
|
||||
<Luafiles Include = "cav-fila.lua"/>
|
||||
<Luafiles Include = "cav-filb.lua"/>
|
||||
<Luafiles Include = "cav-goal.lua"/>
|
||||
<Luafiles Include = "cav-loca.lua"/>
|
||||
<Luafiles Include = "cav-strt.lua"/>
|
||||
<Luafiles Include = "hea-fila.lua"/>
|
||||
<Luafiles Include = "hea-filb.lua"/>
|
||||
<Luafiles Include = "hea-goal.lua"/>
|
||||
<Luafiles Include = "hea-loca.lua"/>
|
||||
<Luafiles Include = "hea-strt.lua"/>
|
||||
<Luafiles Include = "kni-fila.lua"/>
|
||||
<Luafiles Include = "kni-filb.lua"/>
|
||||
<Luafiles Include = "kni-goal.lua"/>
|
||||
<Luafiles Include = "kni-loca.lua"/>
|
||||
<Luafiles Include = "kni-strt.lua"/>
|
||||
<Luafiles Include = "mon-fila.lua"/>
|
||||
<Luafiles Include = "mon-filb.lua"/>
|
||||
<Luafiles Include = "mon-goal.lua"/>
|
||||
<Luafiles Include = "mon-loca.lua"/>
|
||||
<Luafiles Include = "mon-strt.lua"/>
|
||||
<Luafiles Include = "pri-fila.lua"/>
|
||||
<Luafiles Include = "pri-filb.lua"/>
|
||||
<Luafiles Include = "pri-goal.lua"/>
|
||||
<Luafiles Include = "pri-loca.lua"/>
|
||||
<Luafiles Include = "pri-strt.lua"/>
|
||||
<Luafiles Include = "ran-fila.lua"/>
|
||||
<Luafiles Include = "ran-filb.lua"/>
|
||||
<Luafiles Include = "ran-goal.lua"/>
|
||||
<Luafiles Include = "ran-loca.lua"/>
|
||||
<Luafiles Include = "ran-strt.lua"/>
|
||||
<Luafiles Include = "rog-fila.lua"/>
|
||||
<Luafiles Include = "rog-filb.lua"/>
|
||||
<Luafiles Include = "rog-goal.lua"/>
|
||||
<Luafiles Include = "rog-loca.lua"/>
|
||||
<Luafiles Include = "rog-strt.lua"/>
|
||||
<Luafiles Include = "sam-fila.lua"/>
|
||||
<Luafiles Include = "sam-filb.lua"/>
|
||||
<Luafiles Include = "sam-goal.lua"/>
|
||||
<Luafiles Include = "sam-loca.lua"/>
|
||||
<Luafiles Include = "sam-strt.lua"/>
|
||||
<Luafiles Include = "tou-fila.lua"/>
|
||||
<Luafiles Include = "tou-filb.lua"/>
|
||||
<Luafiles Include = "tou-goal.lua"/>
|
||||
<Luafiles Include = "tou-loca.lua"/>
|
||||
<Luafiles Include = "tou-strt.lua"/>
|
||||
<Luafiles Include = "val-fila.lua"/>
|
||||
<Luafiles Include = "val-filb.lua"/>
|
||||
<Luafiles Include = "val-goal.lua"/>
|
||||
<Luafiles Include = "val-loca.lua"/>
|
||||
<Luafiles Include = "val-strt.lua"/>
|
||||
<Luafiles Include = "wiz-fila.lua"/>
|
||||
<Luafiles Include = "wiz-filb.lua"/>
|
||||
<Luafiles Include = "wiz-goal.lua"/>
|
||||
<Luafiles Include = "wiz-loca.lua"/>
|
||||
<Luafiles Include = "wiz-strt.lua"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<UUFiles Include = "$(SysWindDir)nhico.uu"/>
|
||||
<UUFiles Include = "$(WinWin32Dir)mnsel.uu"/>
|
||||
<UUFiles Include = "$(WinWin32Dir)mnselcnt.uu"/>
|
||||
<UUFiles Include = "$(WinWin32Dir)mnunsel.uu"/>
|
||||
<UUFiles Include = "$(WinWin32Dir)petmark.uu"/>
|
||||
<UUFiles Include = "$(WinWin32Dir)pilemark.uu"/>
|
||||
<UUFiles Include = "$(WinWin32Dir)splash.uu"/>
|
||||
<UUFiles Include = "$(WinWin32Dir)rip.uu"/>
|
||||
<UUFiles Include = "$(WinWin32Dir)record.uu"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<IconFiles Include = "$(WinWin32Dir)nethack.ico"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<RecordFiles Include = "$(WinWin32Dir)record"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BmpFiles Include = "$(WinWin32Dir)mnsel.bmp"/>
|
||||
<BmpFiles Include = "$(WinWin32Dir)mnselcnt.bmp"/>
|
||||
<BmpFiles Include = "$(WinWin32Dir)mnunsel.bmp"/>
|
||||
<BmpFiles Include = "$(WinWin32Dir)petmark.bmp"/>
|
||||
<BmpFiles Include = "$(WinWin32Dir)pilemark.bmp"/>
|
||||
<BmpFiles Include = "$(WinWin32Dir)rip.bmp"/>
|
||||
<BmpFiles Include = "$(WinWin32Dir)splash.bmp"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<DlbList Include = "$(DatDir)data"/>
|
||||
<DlbList Include = "$(DatDir)oracles"/>
|
||||
<DlbList Include = "$(DatDir)options" Condition="Exists('$(DatDir)options')"/>
|
||||
<DlbList Include = "$(DatDir)ttyoptions" Condition="Exists('$(DatDir)ttyoptions')"/>
|
||||
<DlbList Include = "$(DatDir)guioptions" Condition="Exists('$(DatDir)guioptions')"/>
|
||||
<DlbList Include = "$(DatDir)rumors"/>
|
||||
<DlbList Include = "$(DatDir)engrave"/>
|
||||
<DlbList Include = "$(DatDir)epitaph"/>
|
||||
<DlbList Include = "$(DatDir)bogusmon"/>
|
||||
<DlbList Include = "$(DatDir)tribute"/>
|
||||
<DlbList Include = "$(DatDir)help"/>
|
||||
<DlbList Include = "$(DatDir)porthelp"/>
|
||||
<DlbList Include = "$(DatDir)hh"/>
|
||||
<DlbList Include = "$(DatDir)cmdhelp"/>
|
||||
<DlbList Include = "$(DatDir)keyhelp"/>
|
||||
<DlbList Include = "$(DatDir)history"/>
|
||||
<DlbList Include = "$(DatDir)opthelp"/>
|
||||
<DlbList Include = "$(DatDir)wizhelp"/>
|
||||
<DlbList Include = "$(DatDir)license"/>
|
||||
<DlbList Include = "$(DatDir)*.lua"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Lua Include="$(LuaDir)lapi.c"/>
|
||||
<Lua Include="$(LuaDir)lauxlib.c" />
|
||||
<Lua Include="$(LuaDir)lbaselib.c" />
|
||||
<Lua Include="$(LuaDir)lbitlib.c" Condition="'$(LUA_MAJOR_VERSION).$(LUA_MINOR_VERSION)'=='5.3'" />
|
||||
<Lua Include="$(LuaDir)lcode.c" />
|
||||
<Lua Include="$(LuaDir)lcorolib.c" />
|
||||
<Lua Include="$(LuaDir)lctype.c" />
|
||||
<Lua Include="$(LuaDir)ldblib.c" />
|
||||
<Lua Include="$(LuaDir)ldebug.c" />
|
||||
<Lua Include="$(LuaDir)ldo.c" />
|
||||
<Lua Include="$(LuaDir)ldump.c" />
|
||||
<Lua Include="$(LuaDir)lfunc.c" />
|
||||
<Lua Include="$(LuaDir)lgc.c" />
|
||||
<Lua Include="$(LuaDir)linit.c" />
|
||||
<Lua Include="$(LuaDir)liolib.c" />
|
||||
<Lua Include="$(LuaDir)llex.c" />
|
||||
<Lua Include="$(LuaDir)lmathlib.c" />
|
||||
<Lua Include="$(LuaDir)lmem.c" />
|
||||
<Lua Include="$(LuaDir)loadlib.c" />
|
||||
<Lua Include="$(LuaDir)lobject.c" />
|
||||
<Lua Include="$(LuaDir)lopcodes.c" />
|
||||
<Lua Include="$(LuaDir)loslib.c" />
|
||||
<Lua Include="$(LuaDir)lparser.c" />
|
||||
<Lua Include="$(LuaDir)lstate.c" />
|
||||
<Lua Include="$(LuaDir)lstring.c" />
|
||||
<Lua Include="$(LuaDir)lstrlib.c" />
|
||||
<Lua Include="$(LuaDir)ltable.c" />
|
||||
<Lua Include="$(LuaDir)ltablib.c" />
|
||||
<Lua Include="$(LuaDir)ltm.c" />
|
||||
<Lua Include="$(LuaDir)lundump.c" />
|
||||
<Lua Include="$(LuaDir)lutf8lib.c" />
|
||||
<Lua Include="$(LuaDir)lvm.c" />
|
||||
<Lua Include="$(LuaDir)lzio.c" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||