Merge branch 'NetHack-3.6.2'

This commit is contained in:
nhmall
2018-10-25 17:54:37 -04:00
41 changed files with 2800 additions and 2089 deletions
+260 -257
View File
@@ -7,461 +7,464 @@ from or not transferred to your system if you wish.
.: .:
(files in top directory) (files in top directory)
.clang-format Files Porting README .clang-format Files Porting README
DEVEL: DEVEL:
(files for people developing changes to NetHack) (files for people developing changes to NetHack)
Developer.txt code_features.txt code_style.txt git_recipes.txt Developer.txt code_features.txt code_style.txt git_recipes.txt
gitinfo.pl nhgitset.pl gitinfo.pl nhgitset.pl
DEVEL/DOTGIT: DEVEL/DOTGIT:
(file for people developing changes to NetHack) (file for people developing changes to NetHack)
TARGET TARGET
DEVEL/hooksdir: DEVEL/hooksdir:
(files for people developing changes to NetHack) (files for people developing changes to NetHack)
NHadd NHgithook.pm NHsubst NHadd NHgithook.pm NHsubst
NHtext TARGET applypatch-msg NHtext TARGET applypatch-msg
commit-msg nhsub post-applypatch commit-msg nhsub post-applypatch
post-checkout post-commit post-merge post-checkout post-commit post-merge
post-rewrite pre-applypatch pre-auto-gc post-rewrite pre-applypatch pre-auto-gc
pre-commit pre-push pre-rebase pre-commit pre-push pre-rebase
prepare-commit-msg prepare-commit-msg
dat: dat:
(files for all versions) (files for all versions)
Arch.des Barb.des Caveman.des Healer.des Knight.des Arch.des Barb.des Caveman.des Healer.des Knight.des
Monk.des Priest.des Ranger.des Rogue.des Samurai.des Monk.des Priest.des Ranger.des Rogue.des Samurai.des
Tourist.des Valkyrie.des Wizard.des bigroom.des bogusmon.txt Tourist.des Valkyrie.des Wizard.des bigroom.des bogusmon.txt
castle.des cmdhelp data.base dungeon.def endgame.des castle.des cmdhelp data.base dungeon.def endgame.des
engrave.txt epitaph.txt gehennom.des help hh engrave.txt epitaph.txt gehennom.des help hh
history keyhelp knox.des license medusa.des history keyhelp knox.des license medusa.des
mines.des opthelp oracle.des oracles.txt quest.txt mines.des opthelp oracle.des oracles.txt quest.txt
rumors.fal rumors.tru sokoban.des symbols tower.des rumors.fal rumors.tru sokoban.des symbols tower.des
tribute wizhelp yendor.des tribute wizhelp yendor.des
doc: doc:
(files for all versions) (files for all versions)
Guidebook.mn Guidebook.tex Guidebook.txt config.nh dgn_comp.6 Guidebook.mn Guidebook.tex Guidebook.txt config.nh dgn_comp.6
dgn_comp.txt dlb.6 dlb.txt fixes10.0 fixes14.f dgn_comp.txt dlb.6 dlb.txt fixes10.0 fixes14.f
fixes22.0 fixes23.e fixes30.0 fixes30.pl01 fixes30.pl02 fixes22.0 fixes23.e fixes30.0 fixes30.pl01 fixes30.pl02
fixes30.pl03 fixes30.pl04 fixes30.pl05 fixes30.pl06 fixes30.pl07 fixes30.pl03 fixes30.pl04 fixes30.pl05 fixes30.pl06 fixes30.pl07
fixes30.pl08 fixes30.pl09 fixes30.pl10 fixes31.1 fixes31.2 fixes30.pl08 fixes30.pl09 fixes30.pl10 fixes31.1 fixes31.2
fixes31.3 fixes32.0 fixes32.1 fixes32.2 fixes32.3 fixes31.3 fixes32.0 fixes32.1 fixes32.2 fixes32.3
fixes33.0 fixes33.1 fixes34.0 fixes34.1 fixes34.2 fixes33.0 fixes33.1 fixes34.0 fixes34.1 fixes34.2
fixes34.3 fixes35.0 fixes36.0 fixes36.1 fixes36.2 fixes34.3 fixes35.0 fixes36.0 fixes36.1 fixes36.2
lev_comp.6 lev_comp.txt makedefs.6 makedefs.txt nethack.6 lev_comp.6 lev_comp.txt makedefs.6 makedefs.txt nethack.6
nethack.txt recover.6 recover.txt tmac.n window.doc nethack.txt recover.6 recover.txt tmac.n window.doc
include: include:
(files for GEM versions) (files for GEM versions)
bitmfile.h gem_rsc.h load_img.h wingem.h bitmfile.h gem_rsc.h load_img.h wingem.h
(file for GNOME versions) (file for GNOME versions)
winGnome.h winGnome.h
(files for Qt versions) (files for Qt versions)
qt_clust.h qt_kde0.h qt_win.h qt_xpms.h qttableview.h qt_clust.h qt_kde0.h qt_win.h qt_xpms.h qttableview.h
(files for X versions) (files for X versions)
tile2x11.h winX.h xwindow.h xwindowp.h tile2x11.h winX.h xwindow.h xwindowp.h
(files for all versions) (files for all versions)
align.h amiconf.h artifact.h artilist.h attrib.h align.h amiconf.h artifact.h artilist.h attrib.h
beconf.h botl.h color.h config.h config1.h beconf.h botl.h color.h config.h config1.h
context.h coord.h decl.h def_os2.h dgn_file.h context.h coord.h decl.h def_os2.h dgn_file.h
display.h dlb.h dungeon.h engrave.h extern.h display.h dlb.h dungeon.h engrave.h extern.h
flag.h func_tab.h global.h hack.h integer.h flag.h func_tab.h global.h hack.h integer.h
lev.h lint.h mail.h mextra.h mfndpos.h lev.h lint.h mail.h mextra.h mfndpos.h
micro.h mkroom.h monattk.h mondata.h monflag.h micro.h mkroom.h monattk.h mondata.h monflag.h
monst.h monsym.h ntconf.h obj.h objclass.h monst.h monsym.h ntconf.h obj.h objclass.h
os2conf.h patchlevel.h pcconf.h permonst.h prop.h os2conf.h patchlevel.h pcconf.h permonst.h prop.h
qtext.h quest.h rect.h region.h rm.h qtext.h quest.h rect.h region.h rm.h
skills.h sp_lev.h spell.h sys.h system.h skills.h sp_lev.h spell.h sys.h system.h
tcap.h tileset.h timeout.h tosconf.h tradstdc.h tcap.h tileset.h timeout.h tosconf.h tradstdc.h
trampoli.h trap.h unixconf.h vision.h vmsconf.h trampoli.h trap.h unixconf.h vision.h vmsconf.h
wceconf.h winami.h winprocs.h wintype.h you.h wceconf.h winami.h winprocs.h wintype.h you.h
youprop.h youprop.h
(file for tty versions) (file for tty versions)
wintty.h wintty.h
(files for various Macintosh versions) (files for various Macintosh versions)
mac-carbon.h mac-qt.h mac-term.h macconf.h macpopup.h mac-carbon.h mac-qt.h mac-term.h macconf.h macpopup.h
mactty.h macwin.h mttypriv.h mactty.h macwin.h mttypriv.h
src: src:
(files for all versions) (files for all versions)
allmain.c alloc.c apply.c artifact.c attrib.c ball.c allmain.c alloc.c apply.c artifact.c attrib.c ball.c
bones.c botl.c cmd.c dbridge.c decl.c detect.c bones.c botl.c cmd.c dbridge.c decl.c detect.c
dig.c display.c dlb.c do.c do_name.c do_wear.c dig.c display.c dlb.c do.c do_name.c do_wear.c
dog.c dogmove.c dokick.c dothrow.c drawing.c dungeon.c dog.c dogmove.c dokick.c dothrow.c drawing.c dungeon.c
eat.c end.c engrave.c exper.c explode.c extralev.c eat.c end.c engrave.c exper.c explode.c extralev.c
files.c fountain.c hack.c hacklib.c invent.c light.c files.c fountain.c hack.c hacklib.c invent.c light.c
lock.c mail.c makemon.c mapglyph.c mcastu.c mhitm.c lock.c mail.c makemon.c mapglyph.c mcastu.c mhitm.c
mhitu.c minion.c mklev.c mkmap.c mkmaze.c mkobj.c mhitu.c minion.c mklev.c mkmap.c mkmaze.c mkobj.c
mkroom.c mon.c mondata.c monmove.c monst.c mplayer.c mkroom.c mon.c mondata.c monmove.c monst.c mplayer.c
mthrowu.c muse.c music.c o_init.c objects.c objnam.c mthrowu.c muse.c music.c o_init.c objects.c objnam.c
options.c pager.c pickup.c pline.c polyself.c potion.c options.c pager.c pickup.c pline.c polyself.c potion.c
pray.c priest.c quest.c questpgr.c read.c rect.c pray.c priest.c quest.c questpgr.c read.c rect.c
region.c restore.c rip.c rnd.c role.c rumors.c region.c restore.c rip.c rnd.c role.c rumors.c
save.c shk.c shknam.c sit.c sounds.c sp_lev.c save.c shk.c shknam.c sit.c sounds.c sp_lev.c
spell.c steal.c steed.c sys.c teleport.c timeout.c spell.c steal.c steed.c sys.c teleport.c timeout.c
topten.c track.c trap.c u_init.c uhitm.c vault.c topten.c track.c trap.c u_init.c uhitm.c vault.c
version.c vision.c weapon.c were.c wield.c windows.c version.c vision.c weapon.c were.c wield.c windows.c
wizard.c worm.c worn.c write.c zap.c wizard.c worm.c worn.c write.c zap.c
sys/amiga: sys/amiga:
(files for Amiga versions - untested for 3.6.2) (files for Amiga versions - untested for 3.6.2)
Build.ami Install.ami Makefile.agc Makefile.ami NetHack.cnf Build.ami Install.ami Makefile.agc Makefile.ami NetHack.cnf
amidos.c amidos.p amifont.uu amifont8.uu amigst.c amidos.c amidos.p amifont.uu amifont8.uu amigst.c
amii.hlp amimenu.c amirip.c amisnd.c amistack.c amii.hlp amimenu.c amirip.c amisnd.c amistack.c
amitty.c amiwind.c amiwind.p clipwin.c colorwin.c amitty.c amiwind.c amiwind.p clipwin.c colorwin.c
cvtsnd.c grave16.xpm ifchange mkdmake txt2iff.c cvtsnd.c grave16.xpm ifchange mkdmake txt2iff.c
winami.c winami.p winchar.c windefs.h winext.h winami.c winami.p winchar.c windefs.h winext.h
winfuncs.c winkey.c winmenu.c winproto.h winreq.c winfuncs.c winkey.c winmenu.c winproto.h winreq.c
winstr.c xpm2iff.c winstr.c xpm2iff.c
sys/atari: sys/atari:
(files for Atari version - untested for 3.6.2) (files for Atari version - untested for 3.6.2)
Install.tos atarifnt.uue nethack.mnu setup.g tos.c Install.tos atarifnt.uue nethack.mnu setup.g tos.c
unx2atar.sed unx2atar.sed
sys/be: sys/be:
(files for BeOS version - untested for 3.6.2) (files for BeOS version - untested for 3.6.2)
README bemain.c README bemain.c
sys/mac: sys/mac:
(files for 68K Macintosh versions) (files for 68K Macintosh versions)
Files.r Install.mw MacHelp NHDeflts NHrsrc.hqx Files.r Install.mw MacHelp NHDeflts NHrsrc.hqx
NHsound.hqx News README carbon.plist dprintf.c NHsound.hqx News README carbon.plist dprintf.c
maccurs.c macerrs.c macfile.c machelp.hqx macmain.c maccurs.c macerrs.c macfile.c machelp.hqx macmain.c
macmenu.c macsnd.c mactopl.c mactty.c macunix.c macmenu.c macsnd.c mactopl.c mactty.c macunix.c
macwin.c mgetline.c mmodal.c mrecover.c mrecover.hqx macwin.c mgetline.c mmodal.c mrecover.c mrecover.hqx
mttymain.c mttymain.c
sys/msdos: sys/msdos:
(files for MSDOS version - untested for 3.6.2) (files for MSDOS version - untested for 3.6.2)
Install.dos Makefile.BC Makefile.GCC Makefile.MSC SCHEMA35.MSC Install.dos Makefile.BC Makefile.GCC Makefile.MSC SCHEMA35.MSC
moveinit.pat msdos.c msdoshlp.txt ovlinit.c pckeys.c moveinit.pat msdos.c msdoshlp.txt ovlinit.c pckeys.c
pctiles.c pctiles.h pcvideo.h portio.h schema1.BC pctiles.c pctiles.h pcvideo.h portio.h schema1.BC
schema2.BC schema3.MSC setup.bat sound.c tile2bin.c schema2.BC schema3.MSC setup.bat sound.c tile2bin.c
vesa.h video.c vidtxt.c vidvesa.c vidvga.c vesa.h video.c vidtxt.c vidvesa.c vidvga.c
(files for running MSDOS binary under Windows) (files for running MSDOS binary under Windows)
nhico.uu nhpif.uu nhico.uu nhpif.uu
sys/os2: sys/os2:
(files for OS/2 version - untested for 3.6.2) (files for OS/2 version - untested for 3.6.2)
Install.os2 Makefile.os2 nhpmico.uu os2.c Install.os2 Makefile.os2 nhpmico.uu os2.c
sys/share: sys/share:
(Berkeley random number file, which may be included in any version) (Berkeley random number file, which may be included in any version)
random.c random.c
(Berkeley uudecode file, which may be used in build process of any version) (Berkeley uudecode file, which may be used in build process of any version)
uudecode.c uudecode.c
(file for MSDOS, OS/2, NT, Amiga, and Atari versions - untested for 3.6.2) (file for MSDOS, OS/2, NT, Amiga, and Atari versions - untested for 3.6.2)
pcmain.c pcmain.c
(file for MSDOS, OS/2, and Atari versions - untested for 3.6.2) (file for MSDOS, OS/2, and Atari versions - untested for 3.6.2)
NetHack.cnf pctty.c NetHack.cnf pctty.c
(file for MSDOS, OS/2, and VMS versions) (file for MSDOS, OS/2, and VMS versions)
termcap termcap
(file for NT version) (file for NT version)
nhlan.c nhlan.c
(file for VMS version) (file for VMS version)
tclib.c tclib.c
(files for MSDOS and OS/2 versions - untested for 3.6.2) (files for MSDOS and OS/2 versions - untested for 3.6.2)
Makefile.lib termcap.uu Makefile.lib termcap.uu
(files for MSDOS, OS/2, NT, and Atari versions - untested for 3.6.2) (files for MSDOS, OS/2, NT, and Atari versions - untested for 3.6.2)
pcsys.c pcunix.c pcsys.c pcunix.c
(files for UNIX and Be versions) (files for UNIX and Be versions)
ioctl.c unixtty.c ioctl.c unixtty.c
(lex/yacc output for special level and dungeon compilers) (lex/yacc output for special level and dungeon compilers)
dgn_comp.h dgn_lex.c dgn_yacc.c lev_comp.h lev_lex.c lev_yacc.c dgn_comp.h dgn_lex.c dgn_yacc.c lev_comp.h lev_lex.c lev_yacc.c
(posix regex for versions that include regex in their C library) (posix regex for versions that include regex in their C library)
posixregex.c posixregex.c
(c++ regex code for versions that can build a C++ module and link it in) (c++ regex code for versions that can build a C++ module and link it in)
cppregex.cpp cppregex.cpp
(pmatch regex for other versions) (pmatch regex for other versions)
pmatchregex.c pmatchregex.c
sys/share/sounds: sys/share/sounds:
(files for Amiga and Macintosh versions) (files for Amiga and Macintosh versions)
README bell.uu bugle.uu erthdrum.uu firehorn.uu frsthorn.uu README bell.uu bugle.uu erthdrum.uu firehorn.uu frsthorn.uu
lethdrum.uu mgcflute.uu mgcharp.uu toolhorn.uu wdnflute.uu wdnharp.uu lethdrum.uu mgcflute.uu mgcharp.uu toolhorn.uu wdnflute.uu wdnharp.uu
sys/unix: sys/unix:
(files for UNIX versions) (files for UNIX versions)
Install.unx Makefile.dat Makefile.doc Makefile.src Install.unx Makefile.dat Makefile.doc Makefile.src
Makefile.top Makefile.utl NewInstall.unx README.linux Makefile.top Makefile.utl NewInstall.unx README.linux
depend.awk gitinfo.sh mkmkfile.sh nethack.sh depend.awk gitinfo.sh mkmkfile.sh nethack.sh
setup.sh sysconf unixmain.c unixres.c setup.sh sysconf unixmain.c unixres.c
unixunix.c unixunix.c
(files for replacement cpp, only needed by some ancient UNIX systems) (files for replacement cpp, only needed by some ancient UNIX systems)
cpp1.shr cpp2.shr cpp3.shr cpp1.shr cpp2.shr cpp3.shr
(file for sound driver for 386 UNIX) (file for sound driver for 386 UNIX)
snd86unx.shr snd86unx.shr
sys/unix/hints: sys/unix/hints:
(files for configuring UNIX NetHack versions) (files for configuring UNIX NetHack versions)
linux linux-chroot linux-qt4 linux-qt5 linux linux-chroot linux-qt4 linux-qt5
linux-x11 macosx macosx.sh macosx10.5 linux-x11 macosx macosx.sh macosx10.5
macosx10.7 macosx10.8 macosx10.10 macosx10.10-qt macosx10.7 macosx10.8 macosx10.10 macosx10.10-qt
unix unix
sys/vms: sys/vms:
(files for VMS version) (files for VMS version)
Install.vms Makefile.dat Makefile.doc Makefile.src Makefile.top Install.vms Makefile.dat Makefile.doc Makefile.src Makefile.top
Makefile.utl install.com lev_lex.h nethack.com oldcrtl.c Makefile.utl install.com lev_lex.h nethack.com oldcrtl.c
spec_lev.com sysconf vmsbuild.com vmsfiles.c vmsmail.c spec_lev.com sysconf vmsbuild.com vmsfiles.c vmsmail.c
vmsmain.c vmsmisc.c vmstty.c vmsunix.c vmsmain.c vmsmisc.c vmstty.c vmsunix.c
sys/wince: sys/wince:
(files for Windows CE and PocketPC - untested for 3.6.2) (files for Windows CE and PocketPC - untested for 3.6.2)
Install.ce bootstrp.mak celib.c cesetup.bat cesound.c Install.ce bootstrp.mak celib.c cesetup.bat cesound.c
defaults.nh keypad.uu menubar.uu mhaskyn.c mhaskyn.h defaults.nh keypad.uu menubar.uu mhaskyn.c mhaskyn.h
mhcmd.c mhcmd.h mhcolor.c mhcolor.h mhdlg.c mhcmd.c mhcmd.h mhcolor.c mhcolor.h mhdlg.c
mhdlg.h mhfont.c mhfont.h mhinput.c mhinput.h mhdlg.h mhfont.c mhfont.h mhinput.c mhinput.h
mhmain.c mhmain.h mhmap.c mhmap.h mhmenu.c mhmain.c mhmain.h mhmap.c mhmap.h mhmenu.c
mhmenu.h mhmsg.h mhmsgwnd.c mhmsgwnd.h mhrip.c mhmenu.h mhmsg.h mhmsgwnd.c mhmsgwnd.h mhrip.c
mhrip.h mhstatus.c mhstatus.h mhtext.c mhtext.h mhrip.h mhstatus.c mhstatus.h mhtext.c mhtext.h
mhtxtbuf.c mhtxtbuf.h mswproc.c newres.h nhico.uu mhtxtbuf.c mhtxtbuf.h mswproc.c newres.h nhico.uu
resource.h winMS.h winhack.c winhack.rc winhcksp.rc resource.h winMS.h winhack.c winhack.rc winhcksp.rc
winmain.c winmain.c
sys/wince/ceinc: sys/wince/ceinc:
(header files for Windows CE and PocketPC - untested for 3.6.2) (header files for Windows CE and PocketPC - untested for 3.6.2)
assert.h errno.h fcntl.h assert.h errno.h fcntl.h
sys/wince/ceinc/sys: sys/wince/ceinc/sys:
(sys/stat.h for Windows CE and PocketPC - untested for 3.6.2) (sys/stat.h for Windows CE and PocketPC - untested for 3.6.2)
stat.h stat.h
sys/winnt: sys/winnt:
(files for Windows 7/8.x/10 version) (files for Windows 7/8.x/10 version)
Install.nt Makefile.gcc Makefile.msc console.rc defaults.nh Install.nt Makefile.gcc Makefile.msc console.rc defaults.nh
nethack.def nh340key.c nhdefkey.c nhico.uu nhraykey.c nethack.def nh340key.c nhdefkey.c nhico.uu nhraykey.c
nhsetup.bat ntsound.c nttty.c porthelp stubs.c nhsetup.bat ntsound.c nttty.c porthelp stubs.c
sysconf win32api.h winnt.c sysconf win32api.h winnt.c
util: util:
(files for all versions) (files for all versions)
dgn_main.c dlb_main.c lev_main.c makedefs.c mdgrep.h mdgrep.pl dgn_main.c dlb_main.c lev_main.c makedefs.c mdgrep.h mdgrep.pl
panic.c recover.c panic.c recover.c
(lex/yacc input for special level and dungeon compilers) (lex/yacc input for special level and dungeon compilers)
dgn_comp.l dgn_comp.y lev_comp.l lev_comp.y dgn_comp.l dgn_comp.y lev_comp.l lev_comp.y
win/Qt: win/Qt:
(files for the Qt 3 widget library - X11, Windows, Mac OS X, or Qtopia) (files for the Qt 3 widget library - X11, Windows, Mac OS X, or Qtopia)
Info.plist Install.Qt knethack.lnk Info.plist Install.Qt knethack.lnk
knh-mini.xpm knh.xpm nhicns.uu knh-mini.xpm knh.xpm nhicns.uu
nhsplash.xpm qpe-nethack.control qt_clust.cpp nhsplash.xpm qpe-nethack.control qt_clust.cpp
qt_win.cpp qttableview.cpp tileedit.cpp qt_win.cpp qttableview.cpp tileedit.cpp
tileedit.h tileedit.h
win/Qt4: win/Qt4:
(files for the Qt 4 widget library - X11, Windows, Mac OS X) (files for the Qt 4 widget library - X11, Windows, Mac OS X)
qt4bind.cpp qt4bind.h qt4click.cpp qt4click.h qt4clust.cpp qt4bind.cpp qt4bind.h qt4click.cpp qt4click.h qt4clust.cpp
qt4clust.h qt4delay.cpp qt4delay.h qt4glyph.cpp qt4glyph.h qt4clust.h qt4delay.cpp qt4delay.h qt4glyph.cpp qt4glyph.h
qt4icon.cpp qt4icon.h qt4inv.cpp qt4inv.h qt4kde0.h qt4icon.cpp qt4icon.h qt4inv.cpp qt4inv.h qt4kde0.h
qt4key.cpp qt4key.h qt4line.cpp qt4line.h qt4main.cpp qt4key.cpp qt4key.h qt4line.cpp qt4line.h qt4main.cpp
qt4main.h qt4map.cpp qt4map.h qt4menu.cpp qt4menu.h qt4main.h qt4map.cpp qt4map.h qt4menu.cpp qt4menu.h
qt4msg.cpp qt4msg.h qt4plsel.cpp qt4plsel.h qt4rip.cpp qt4msg.cpp qt4msg.h qt4plsel.cpp qt4plsel.h qt4rip.cpp
qt4rip.h qt4set.cpp qt4set.h qt4stat.cpp qt4stat.h qt4rip.h qt4set.cpp qt4set.h qt4stat.cpp qt4stat.h
qt4str.cpp qt4str.h qt4streq.cpp qt4streq.h qt4svsel.cpp qt4str.cpp qt4str.h qt4streq.cpp qt4streq.h qt4svsel.cpp
qt4svsel.h qt4win.cpp qt4win.h qt4xcmd.cpp qt4xcmd.h qt4svsel.h qt4win.cpp qt4win.h qt4xcmd.cpp qt4xcmd.h
qt4yndlg.cpp qt4yndlg.h qt4yndlg.cpp qt4yndlg.h
win/X11: win/X11:
(files for X versions) (files for X versions)
Install.X11 NetHack.ad Window.c dialogs.c ibm.bdf Install.X11 NetHack.ad Window.c dialogs.c ibm.bdf
nethack.rc nh10.bdf nh32icon nh56icon nh72icon nethack.rc nh10.bdf nh32icon nh56icon nh72icon
nh_icon.xpm pet_mark.xbm pilemark.xbm rip.xpm tile2x11.c nh_icon.xpm pet_mark.xbm pilemark.xbm rip.xpm tile2x11.c
winX.c winmap.c winmenu.c winmesg.c winmisc.c winX.c winmap.c winmenu.c winmesg.c winmisc.c
winstat.c wintext.c winval.c winstat.c wintext.c winval.c
win/chain: win/chain:
(files for stacking window systems) (files for stacking window systems)
wc_chainin.c wc_chainout.c wc_trace.c wc_chainin.c wc_chainout.c wc_trace.c
win/gem: win/gem:
(files for GEM versions - untested for 3.6.2) (files for GEM versions - untested for 3.6.2)
Install.gem bitmfile.c gem_rsc.uu gem_rso.uu gr_rect.c gr_rect.h Install.gem bitmfile.c gem_rsc.uu gem_rso.uu gr_rect.c gr_rect.h
load_img.c tile2img.c title.uu wingem.c wingem1.c xpm2img.c load_img.c tile2img.c title.uu wingem.c wingem1.c xpm2img.c
win/gnome: win/gnome:
(files for GNOME versions - untested for 3.6.2) (files for GNOME versions - untested for 3.6.2)
README gn_xpms.h gnaskstr.c gnaskstr.h gnbind.c gnbind.h README gn_xpms.h gnaskstr.c gnaskstr.h gnbind.c gnbind.h
gnglyph.c gnglyph.h gnmain.c gnmain.h gnmap.c gnmap.h gnglyph.c gnglyph.h gnmain.c gnmain.h gnmap.c gnmap.h
gnmenu.c gnmenu.h gnmesg.c gnmesg.h gnomeprv.h gnopts.c gnmenu.c gnmenu.h gnmesg.c gnmesg.h gnomeprv.h gnopts.c
gnopts.h gnplayer.c gnplayer.h gnsignal.c gnsignal.h gnstatus.c gnopts.h gnplayer.c gnplayer.h gnsignal.c gnsignal.h gnstatus.c
gnstatus.h gntext.c gntext.h gnworn.c gnworn.h gnyesno.c gnstatus.h gntext.c gntext.h gnworn.c gnworn.h gnyesno.c
gnyesno.h mapbg.xpm gnyesno.h mapbg.xpm
win/macosx: win/macosx:
(files for macosx versions) (files for macosx versions)
NetHackGuidebook.applescript NetHackRecover.applescript NetHackGuidebook.applescript NetHackRecover.applescript
NetHackTerm.applescript recover.pl NetHackTerm.applescript recover.pl
win/share: win/share:
(files for versions using optional tiles) (files for versions using optional tiles)
bmptiles.c gifread.c giftiles.c monsters.txt objects.txt bmptiles.c gifread.c giftiles.c monsters.txt objects.txt
other.txt ppmwrite.c renumtiles.pl thintile.c tile.doc other.txt ppmwrite.c renumtiles.pl thintile.c tile.doc
tile.h tile2bmp.c tilemap.c tileset.c tiletext.c tile.h tile2bmp.c tilemap.c tileset.c tiletext.c
win/tty: win/tty:
(files for tty versions) (files for tty versions)
getline.c termcap.c topl.c wintty.c getline.c termcap.c topl.c wintty.c
win/win32: win/win32:
(files for Windows versions - tested up to Windows 10) (files for Windows versions - tested up to Windows 10)
dgnstuff.mak levstuff.mak mhaskyn.c mhaskyn.h mhdlg.c dgnstuff.mak levstuff.mak mhaskyn.c mhaskyn.h mhdlg.c
mhdlg.h mhfont.c mhfont.h mhinput.c mhinput.h mhdlg.h mhfont.c mhfont.h mhinput.c mhinput.h
mhmain.c mhmain.h mhmap.c mhmap.h mhmenu.c mhmain.c mhmain.h mhmap.c mhmap.h mhmenu.c
mhmenu.h mhmsg.h mhmsgwnd.c mhmsgwnd.h mhrip.c mhmenu.h mhmsg.h mhmsgwnd.c mhmsgwnd.h mhrip.c
mhrip.h mhsplash.c mhsplash.h mhstatus.c mhstatus.h mhrip.h mhsplash.c mhsplash.h mhstatus.c mhstatus.h
mhtext.c mhtext.h mnsel.uu mnselcnt.uu mnunsel.uu mhtext.c mhtext.h mnsel.uu mnselcnt.uu mnunsel.uu
mswproc.c nethack.rc nhresource.h petmark.uu pilemark.uu mswproc.c nethack.rc nhresource.h petmark.uu pilemark.uu
record.uu resource.h rip.uu splash.uu tiles.mak record.uu resource.h rip.uu splash.uu tiles.mak
winMS.h winhack.c winhack.rc winMS.h winhack.c winhack.rc
win/win32/vs2015: win/win32/vs2015:
(files for Windows versions - tested up to Windows 10) (files for Windows versions - tested up to Windows 10)
NetHack.sln NetHack.vcxproj NetHackW.vcxproj NetHack.sln NetHack.vcxproj NetHackW.vcxproj
afterdgncomp.proj afterdlb.proj afterlevcomp.proj afterdgncomp.proj afterdlb.proj afterlevcomp.proj
aftermakedefs.proj afternethack.proj afterrecover.proj aftermakedefs.proj afternethack.proj afterrecover.proj
aftertile2bmp.proj aftertilemap.proj afteruudecode.proj aftertile2bmp.proj aftertilemap.proj afteruudecode.proj
build.bat common.props config.props build.bat common.props config.props
console.props default.props default_dll.props console.props default.props default_dll.props
dgncomp.vcxproj dirs.props dlb.vcxproj dgncomp.vcxproj dirs.props dlb.vcxproj
dll.props files.props levcomp.vcxproj dll.props files.props levcomp.vcxproj
makedefs.vcxproj nh340key.def nh340key.vcxproj makedefs.vcxproj nh340key.def nh340key.vcxproj
nhdefkey.def nhdefkey.vcxproj nhraykey.def nhdefkey.def nhdefkey.vcxproj nhraykey.def
nhraykey.vcxproj notes.txt recover.vcxproj nhraykey.vcxproj notes.txt recover.vcxproj
tile2bmp.vcxproj tilemap.vcxproj tiles.vcxproj tile2bmp.vcxproj tilemap.vcxproj tiles.vcxproj
uudecode.vcxproj uudecode.vcxproj
win/win32/vs2017: win/win32/vs2017:
(files for Visual Studio 2017 Community Edition builds) (files for Visual Studio 2017 Community Edition builds)
NetHack.sln NetHack.vcxproj NetHackW.vcxproj NetHack.sln NetHack.vcxproj NetHackW.vcxproj
afterdgncomp.proj afterdlb.proj afterlevcomp.proj afterdgncomp.proj afterdlb.proj afterlevcomp.proj
aftermakedefs.proj afternethack.proj afterrecover.proj aftermakedefs.proj afternethack.proj afterrecover.proj
aftertile2bmp.proj aftertilemap.proj afteruudecode.proj aftertile2bmp.proj aftertilemap.proj afteruudecode.proj
build.bat common.props config.props build.bat common.props config.props
console.props default.props default_dll.props console.props default.props default_dll.props
dgncomp.vcxproj dirs.props dlb.vcxproj dgncomp.vcxproj dirs.props dlb.vcxproj
dll.props files.props levcomp.vcxproj dll.props files.props levcomp.vcxproj
makedefs.vcxproj nh340key.def nh340key.vcxproj makedefs.vcxproj nh340key.def nh340key.vcxproj
nhdefkey.def nhdefkey.vcxproj nhraykey.def nhdefkey.def nhdefkey.vcxproj nhraykey.def
nhraykey.vcxproj recover.vcxproj tile2bmp.vcxproj nhraykey.vcxproj recover.vcxproj tile2bmp.vcxproj
tilemap.vcxproj tiles.vcxproj uudecode.vcxproj tilemap.vcxproj tiles.vcxproj uudecode.vcxproj
This is a list of files produced by auxiliary programs. They can all be This is a list of files produced by auxiliary programs. They can all be
regenerated from the files in the distribution. regenerated from the files in the distribution.
dat: dat:
(file generated by dgn_comp at playground creation time) (file generated by dgn_comp at playground creation time)
dungeon dungeon
(files generated by lev_comp at playground creation time) (files generated by lev_comp at playground creation time)
Arc-fila.lev Arc-filb.lev Arc-goal.lev Arc-loca.lev Arc-strt.lev Arc-fila.lev Arc-filb.lev Arc-goal.lev Arc-loca.lev Arc-strt.lev
Bar-fila.lev Bar-filb.lev Bar-goal.lev Bar-loca.lev Bar-strt.lev Bar-fila.lev Bar-filb.lev Bar-goal.lev Bar-loca.lev Bar-strt.lev
Cav-fila.lev Cav-filb.lev Cav-goal.lev Cav-loca.lev Cav-strt.lev Cav-fila.lev Cav-filb.lev Cav-goal.lev Cav-loca.lev Cav-strt.lev
Hea-fila.lev Hea-filb.lev Hea-goal.lev Hea-loca.lev Hea-strt.lev Hea-fila.lev Hea-filb.lev Hea-goal.lev Hea-loca.lev Hea-strt.lev
Kni-fila.lev Kni-filb.lev Kni-goal.lev Kni-loca.lev Kni-strt.lev Kni-fila.lev Kni-filb.lev Kni-goal.lev Kni-loca.lev Kni-strt.lev
Mon-fila.lev Mon-filb.lev Mon-goal.lev Mon-loca.lev Mon-strt.lev Mon-fila.lev Mon-filb.lev Mon-goal.lev Mon-loca.lev Mon-strt.lev
Pri-fila.lev Pri-filb.lev Pri-goal.lev Pri-loca.lev Pri-strt.lev Pri-fila.lev Pri-filb.lev Pri-goal.lev Pri-loca.lev Pri-strt.lev
Ran-fila.lev Ran-filb.lev Ran-goal.lev Ran-loca.lev Ran-strt.lev Ran-fila.lev Ran-filb.lev Ran-goal.lev Ran-loca.lev Ran-strt.lev
Rog-fila.lev Rog-filb.lev Rog-goal.lev Rog-loca.lev Rog-strt.lev Rog-fila.lev Rog-filb.lev Rog-goal.lev Rog-loca.lev Rog-strt.lev
Sam-fila.lev Sam-filb.lev Sam-goal.lev Sam-loca.lev Sam-strt.lev Sam-fila.lev Sam-filb.lev Sam-goal.lev Sam-loca.lev Sam-strt.lev
Tou-fila.lev Tou-filb.lev Tou-goal.lev Tou-loca.lev Tou-strt.lev Tou-fila.lev Tou-filb.lev Tou-goal.lev Tou-loca.lev Tou-strt.lev
Val-fila.lev Val-filb.lev Val-goal.lev Val-loca.lev Val-strt.lev Val-fila.lev Val-filb.lev Val-goal.lev Val-loca.lev Val-strt.lev
Wiz-fila.lev Wiz-filb.lev Wiz-goal.lev Wiz-loca.lev Wiz-strt.lev Wiz-fila.lev Wiz-filb.lev Wiz-goal.lev Wiz-loca.lev Wiz-strt.lev
air.lev asmodeus.lev astral.lev baalz.lev bigrm-1.lev air.lev asmodeus.lev astral.lev baalz.lev bigrm-1.lev
bigrm-2.lev bigrm-3.lev bigrm-4.lev bigrm-5.lev bigrm-6.lev bigrm-2.lev bigrm-3.lev bigrm-4.lev bigrm-5.lev bigrm-6.lev
bigrm-7.lev bigrm-8.lev bigrm-9.lev bigrm-10.lev castle.lev bigrm-7.lev bigrm-8.lev bigrm-9.lev bigrm-10.lev castle.lev
earth.lev fakewiz1.lev fakewiz2.lev fire.lev juiblex.lev earth.lev fakewiz1.lev fakewiz2.lev fire.lev juiblex.lev
knox.lev medusa-1.lev medusa-2.lev medusa-3.lev medusa-4.lev knox.lev medusa-1.lev medusa-2.lev medusa-3.lev medusa-4.lev
minefill.lev minend-1.lev minend-2.lev minend-3.lev minetn-1.lev minefill.lev minend-1.lev minend-2.lev minend-3.lev minetn-1.lev
minetn-2.lev minetn-3.lev minetn-4.lev minetn-5.lev minetn-6.lev minetn-2.lev minetn-3.lev minetn-4.lev minetn-5.lev minetn-6.lev
minetn-7.lev oracle.lev orcus.lev sanctum.lev soko1-1.lev minetn-7.lev oracle.lev orcus.lev sanctum.lev soko1-1.lev
soko1-2.lev soko2-1.lev soko2-2.lev soko3-1.lev soko3-2.lev soko1-2.lev soko2-1.lev soko2-2.lev soko3-1.lev soko3-2.lev
soko4-1.lev soko4-2.lev tower1.lev tower2.lev tower3.lev soko4-1.lev soko4-2.lev tower1.lev tower2.lev tower3.lev
valley.lev water.lev wizard1.lev wizard2.lev wizard3.lev valley.lev water.lev wizard1.lev wizard2.lev wizard3.lev
(files generated by makedefs at playground creation time) (files generated by makedefs at playground creation time)
data dungeon.pdf options oracles quest.dat rumors data dungeon.pdf options oracles quest.dat rumors
(files generated for Qt interface on Mac OS X) (files generated for Qt interface on Mac OS X)
Info.plist nethack.icns Info.plist nethack.icns
(files generated for win32 at compile time) (files generated for win32 at compile time)
dlb.lst porthelp dlb.lst porthelp
(files generated for win32 gui at compile time) (files generated for win32 gui at compile time)
guioptions guioptions
(files generated for win32 tty at compile time) (files generated for win32 tty at compile time)
ttyoptions ttyoptions
(tile files optionally generated for X ports at playground creation time) (tile files optionally generated for X ports at playground creation time)
pet_mark.xbm rip.xpm x11tiles pet_mark.xbm rip.xpm x11tiles
include: include:
(file for tiles support copied from win/share at compile time) (file for tiles support copied from win/share at compile time)
tile.h tile.h
(file for win32 that are moved into include at compile time) (file for win32 that are moved into include at compile time)
win32api.h win32api.h
(files generated by makedefs at compile time) (files generated by makedefs at compile time)
date.h onames.h pm.h vis_tab.h date.h onames.h pm.h vis_tab.h
(files generated by yacc (or copied from sys/share) at compile time) (files generated by yacc (or copied from sys/share) at compile time)
dgn_comp.h lev_comp.h dgn_comp.h lev_comp.h
src: src:
(files for win32 that are moved into src at compile time) (files for win32 that are moved into src at compile time)
Makefile Makefile.bcc Makefile.gcc Makefile Makefile.bcc Makefile.gcc
(files generated by 'moc' for Qt interface at compile time) (files generated by 'moc' for Qt interface at compile time)
qt_kde0.moc qt_win.moc qttableview.moc qt_kde0.moc qt_win.moc qttableview.moc
(files generated by makedefs at compile time) (file generated by makedefs at compile time by some ports)
monstr.c vis_tab.c monstr.c
(file generated by makedefs at compile time)
vis_tab.c
(file optionally generated by tilemap at compile time) (file optionally generated by tilemap at compile time)
tile.c tile.c
sys/winnt: sys/winnt:
(file generated by uudecode at compile time) (file generated by uudecode at compile time)
nethack.ico nethack.ico
util: util:
(files generated by lex and yacc (or copied from sys/share) at compile time) (files generated by lex and yacc (or copied from sys/share) at compile time)
dgn_lex.c dgn_yacc.c lev_lex.c lev_yacc.c dgn_lex.c dgn_yacc.c lev_lex.c lev_yacc.c
(file generated for unix at compile time if various tiles utilities are built) (file generated for unix at compile time if various tiles utilities are built)
tiletxt.c tiletxt.c
(file generated for win32 at compile time) (file generated for win32 at compile time)
uudecode.exe uudecode.exe
NOTE: If your binaries were compiled with the data librarian (DLB) option, NOTE: If your binaries were compiled with the data librarian (DLB) option,
your playground will not contain all of the files listed here. All your playground will not contain all of the files listed here. All
+84 -79
View File
@@ -1047,7 +1047,15 @@ used up all the letters, so this is a way to introduce the less frequently
used commands. used commands.
What extended commands are available depends on what features the game was What extended commands are available depends on what features the game was
compiled with. compiled with.
.lp #adjust .\"
.\" Pad short entries out to 1+8 characters. This will make sure that
.\" the text description starts on its own line like long named entries
.\" instead of sometimes being on the same line for short name ones.
.\" The document will be longer, but mixing the two is harder to read.
.\" (For plain text output, the old 1+4 was sufficient. For Postscript,
.\" several need at least 1+7 due to narrow letters or ligatures.)
.\"
.lp "#adjust "
Adjust inventory letters (most useful when the Adjust inventory letters (most useful when the
.op fixinv .op fixinv
option is \(lqon\(rq). option is \(lqon\(rq).
@@ -1089,7 +1097,7 @@ Autocompletes.
Default key is \(oqM-A\(cq, and also \(oq\(haN\(cq if Default key is \(oqM-A\(cq, and also \(oq\(haN\(cq if
.op number_pad .op number_pad
is on. is on.
.lp #apply .lp "#apply "
Apply (use) a tool such as a pick-axe, a key, or a lamp. Apply (use) a tool such as a pick-axe, a key, or a lamp.
Default key is \(oqa\(cq. Default key is \(oqa\(cq.
.lp "" .lp ""
@@ -1107,70 +1115,70 @@ Toggle the
.op autopickup .op autopickup
option on/off. option on/off.
Default key is \(oq@\(cq. Default key is \(oq@\(cq.
.lp #call .lp "#call "
Call (name) a monster, or an object in inventory, on the floor, Call (name) a monster, or an object in inventory, on the floor,
or in the discoveries list, or add an annotation for the or in the discoveries list, or add an annotation for the
current level (same as \(lq#annotate\(rq). current level (same as \(lq#annotate\(rq).
Default key is \(oqC\(cq. Default key is \(oqC\(cq.
.lp #cast .lp "#cast "
Cast a spell. Cast a spell.
Default key is \(oqZ\(cq. Default key is \(oqZ\(cq.
.lp #chat .lp "#chat "
Talk to someone. Talk to someone.
Default key is \(oqM-c\)cq. Default key is \(oqM-c\)cq.
.lp #close .lp "#close "
Close a door. Close a door.
Default key is \(oqc\(cq. Default key is \(oqc\(cq.
.lp #conduct .lp "#conduct "
List voluntary challenges you have maintained. List voluntary challenges you have maintained.
Autocompletes. Autocompletes.
Default key is \(oqM-C\(cq. Default key is \(oqM-C\(cq.
.lp "" .lp ""
See the section below entitled \(lqConduct\(rq for details. See the section below entitled \(lqConduct\(rq for details.
.lp "#dip " .lp "#dip "
Dip an object into something. Dip an object into something.
Autocompletes. Autocompletes.
Default key is \(oqM-d\(cq. Default key is \(oqM-d\(cq.
.lp #down .lp "#down "
Go down a staircase. Go down a staircase.
Default key is \(oq>\(cq. Default key is \(oq>\(cq.
.lp #drop .lp "#drop "
Drop an item. Drop an item.
Default key is \(oqd\(cq. Default key is \(oqd\(cq.
.lp #droptype .lp #droptype
Drop specific item types. Drop specific item types.
Default key is \(oqD\(cq. Default key is \(oqD\(cq.
.lp "#eat " .lp "#eat "
Eat something. Eat something.
Default key is \(oqe\(cq. Default key is \(oqe\(cq.
The \(oqm\(cq prefix skips eating items on the floor. The \(oqm\(cq prefix skips eating items on the floor.
.lp #engrave .lp "#engrave "
Engrave writing on the floor. Engrave writing on the floor.
Default key is \(oqE\(cq. Default key is \(oqE\(cq.
.lp #enhance .lp "#enhance "
Advance or check weapon and spell skills. Advance or check weapon and spell skills.
Autocompletes. Autocompletes.
Default key is \(oqM-e\(cq. Default key is \(oqM-e\(cq.
.lp #exploremode .lp #exploremode
Enter the explore mode. Enter the explore mode.
.lp #fire .lp "#fire "
Fire ammunition from quiver. Fire ammunition from quiver.
Default key is \(oqf\(cq. Default key is \(oqf\(cq.
.lp #force .lp "#force "
Force a lock. Force a lock.
Autocompletes. Autocompletes.
Default key is \(oqM-f\(cq. Default key is \(oqM-f\(cq.
.lp #glance .lp "#glance "
Show what type of thing a map symbol corresponds to. Show what type of thing a map symbol corresponds to.
Default key is \(oq;\(cq. Default key is \(oq;\(cq.
.lp #help .lp "#help "
Show the help menu. Show the help menu.
Default key is \(oq?\(cq, and also \(oqh\(cq if Default key is \(oq?\(cq, and also \(oqh\(cq if
.op number_pad .op number_pad
is on. is on.
.lp #herecmdmenu .lp #herecmdmenu
Show a menu of possible actions in your current location. Show a menu of possible actions in your current location.
.lp #history .lp "#history "
Show long version and game history. Show long version and game history.
Default key is \(oqV\(cq. Default key is \(oqV\(cq.
.lp #inventory .lp #inventory
@@ -1179,22 +1187,22 @@ Default key is \(oqi\(cq.
.lp #inventtype .lp #inventtype
Inventory specific item types. Inventory specific item types.
Default key is \(oqI\(cq. Default key is \(oqI\(cq.
.lp #invoke .lp "#invoke "
Invoke an object's special powers. Invoke an object's special powers.
Autocompletes. Autocompletes.
Default key is \(oqM-i\(cq. Default key is \(oqM-i\(cq.
.lp #jump .lp "#jump "
Jump to another location. Jump to another location.
Autocompletes. Autocompletes.
Default key is \(oqM-j\(cq, and also \(oqj\(cq if Default key is \(oqM-j\(cq, and also \(oqj\(cq if
.op number_pad .op number_pad
is on. is on.
.lp #kick .lp "#kick "
Kick something. Kick something.
Default key is \(oq\(haD\(cq, and \(oqk\(cq if Default key is \(oq\(haD\(cq, and \(oqk\(cq if
.op number_pad .op number_pad
is on. is on.
.lp #known .lp "#known "
Show what object types have been discovered. Show what object types have been discovered.
Default key is \(oq\\\(cq. Default key is \(oq\\\(cq.
.lp #knownclass .lp #knownclass
@@ -1208,10 +1216,10 @@ Debug mode only.
Show mobile light sources. Show mobile light sources.
Autocompletes. Autocompletes.
Debug mode only. Debug mode only.
.lp #look .lp "#look "
Look at what is here, under you. Look at what is here, under you.
Default key is \(oq:\(cq. Default key is \(oq:\(cq.
.lp #loot .lp "#loot "
Loot a box or bag on the floor beneath you, or the saddle Loot a box or bag on the floor beneath you, or the saddle
from a steed standing next to you. from a steed standing next to you.
Autocompletes. Autocompletes.
@@ -1220,18 +1228,16 @@ and go directly to removing a saddle.
Default key is \(oqM-l\(cq, and also \(oql\(cq if Default key is \(oqM-l\(cq, and also \(oql\(cq if
.op number_pad .op number_pad
is on. is on.
.lp #monster .lp "#monster "
Use a monster's special ability (when polymorphed into monster form). Use a monster's special ability (when polymorphed into monster form).
Autocompletes. Autocompletes.
Default key is \(oqM-m\(cq. Default key is \(oqM-m\(cq.
.lp #name .lp "#name "
Name a monster, an individual object, or a type of object. Name a monster, an individual object, or a type of object.
Same as \(lq#call\(rq. Same as \(lq#call\(rq.
Autocompletes. Autocompletes.
Default keys are \(oqN\(cq, \(oqM-n\(cq, and \(oqM-N\(cq. Default keys are \(oqN\(cq, \(oqM-n\(cq, and \(oqM-N\(cq.
.\".lp #offer \" `ff' ligature is narrow enough that text fits on same line .lp "#offer " \" `ff' ligature is narrow
.\" \" as #offer but that looks bad because it is too close to 'r'
.lp "#offer "
Offer a sacrifice to the gods. Offer a sacrifice to the gods.
Autocompletes. Autocompletes.
Default key is \(oqM-o\(cq. Default key is \(oqM-o\(cq.
@@ -1240,11 +1246,10 @@ You'll need to find an altar to have any chance at success.
Corpses of recently killed monsters are the fodder of choice. Corpses of recently killed monsters are the fodder of choice.
.lp "" .lp ""
The \(oqm\(cq prefix skips offering any items which are on the altar. The \(oqm\(cq prefix skips offering any items which are on the altar.
.\".lp #open \" there's no ligature here, but text ends up too close to #open .lp "#open "
.lp "#open "
Open a door. Open a door.
Default key is \(oqo\(cq. Default key is \(oqo\(cq.
.lp #options .lp "#options "
Show and change option settings. Show and change option settings.
Default key is \(oqO\(cq. Default key is \(oqO\(cq.
.lp #overview .lp #overview
@@ -1258,15 +1263,15 @@ level will be included regardless of annotations.
Autocompletes. Autocompletes.
Default keys are \(oq\(haO\(cq, and \(oqM-O\(cq. Default keys are \(oq\(haO\(cq, and \(oqM-O\(cq.
.\" DON'T PANIC! .\" DON'T PANIC!
.lp #panic .lp "#panic "
Test the panic routine. Test the panic routine.
Terminates the current game. Terminates the current game.
Autocompletes. Autocompletes.
Debug mode only. Debug mode only.
.lp "#pay " .lp "#pay "
Pay your shopping bill. Pay your shopping bill.
Default key is \(oqp\(cq. Default key is \(oqp\(cq.
.lp #pickup .lp "#pickup "
Pick up things at the current location. Pick up things at the current location.
Default key is \(oq,\(cq. Default key is \(oq,\(cq.
The \(oqm\(cq prefix forces use of a menu. The \(oqm\(cq prefix forces use of a menu.
@@ -1274,7 +1279,7 @@ The \(oqm\(cq prefix forces use of a menu.
Polymorph self. Polymorph self.
Autocompletes. Autocompletes.
Debug mode only. Debug mode only.
.lp #pray .lp "#pray "
Pray to the gods for help. Pray to the gods for help.
Autocompletes. Autocompletes.
Default key is \(oqM-p\(cq. Default key is \(oqM-p\(cq.
@@ -1287,16 +1292,16 @@ option to make you confirm your intent before praying.
It is enabled by default, and you can reset the It is enabled by default, and you can reset the
.op paranoid_confirmation .op paranoid_confirmation
option to disable it. option to disable it.
.lp #prevmsg .lp "#prevmsg "
Show previously displayed game messages. Show previously displayed game messages.
Default key is \(oq\(haP\(cq. Default key is \(oq\(haP\(cq.
.lp #puton .lp "#puton "
Put on an accessory (ring, amulet, etc). Put on an accessory (ring, amulet, etc).
Default key is \(oqP\(cq. Default key is \(oqP\(cq.
.lp #quaff .lp "#quaff "
Quaff (drink) something. Quaff (drink) something.
Default key is \(oqq\(cq. Default key is \(oqq\(cq.
.lp #quit .lp "#quit "
Quit the program without saving your game. Quit the program without saving your game.
Autocompletes. Autocompletes.
Default key is \(oqM-q\(cq. Default key is \(oqM-q\(cq.
@@ -1307,35 +1312,35 @@ By default a response of \(oqy\(cq acknowledges that intent.
You can set the You can set the
.op paranoid_confirmation .op paranoid_confirmation
option to require a response of \(lqyes\(rq instead. option to require a response of \(lqyes\(rq instead.
.lp #quiver .lp "#quiver "
Select ammunition for quiver. Select ammunition for quiver.
Default key is \(oqQ\(cq. Default key is \(oqQ\(cq.
.lp #read .lp "#read "
Read a scroll, a spellbook, or something else. Read a scroll, a spellbook, or something else.
Default key is \(oqr\(cq. Default key is \(oqr\(cq.
.lp #redraw .lp "#redraw "
Redraw the screen. Redraw the screen.
Default key is \(oq\(haR\(cq, and also \(oq\(haL\(cq if Default key is \(oq\(haR\(cq, and also \(oq\(haL\(cq if
.op number_pad .op number_pad
is on. is on.
.lp #remove .lp "#remove "
Remove an accessory (ring, amulet, etc). Remove an accessory (ring, amulet, etc).
Default key is \(oqR\(cq. Default key is \(oqR\(cq.
.lp #ride .lp "#ride "
Ride (or stop riding) a saddled creature. Ride (or stop riding) a saddled creature.
Autocompletes. Autocompletes.
Default key is \(oqM-R\(cq. Default key is \(oqM-R\(cq.
.lp "#rub " .lp "#rub "
Rub a lamp or a stone. Rub a lamp or a stone.
Autocompletes. Autocompletes.
Default key is \(oqM-r\(cq. Default key is \(oqM-r\(cq.
.lp #save .lp "#save "
Save the game and exit the program. Save the game and exit the program.
Default key is \(oqS\(cq. Default key is \(oqS\(cq.
.lp #search .lp "#search "
Search for traps and secret doors around you. Search for traps and secret doors around you.
Default key is \(oqs\(cq. Default key is \(oqs\(cq.
.lp #seeall .lp "#seeall "
Show all equipment in use. Show all equipment in use.
Default key is \(oq*\(cq. Default key is \(oq*\(cq.
.lp #seeamulet .lp #seeamulet
@@ -1344,10 +1349,10 @@ Default key is \(oq\(dq\(cq. \" double quote
.lp #seearmor .lp #seearmor
Show the armor currently worn. Show the armor currently worn.
Default key is \(oq[\(cq. Default key is \(oq[\(cq.
.lp #seegold .lp "#seegold "
Count your gold. Count your gold.
Default key is \(oq$\(cq. Default key is \(oq$\(cq.
.lp #seenv .lp "#seenv "
Show seen vectors. Show seen vectors.
Autocompletes. Autocompletes.
Debug mode only. Debug mode only.
@@ -1360,30 +1365,30 @@ Default key is \(oq+\(cq.
.lp #seetools .lp #seetools
Show the tools currently in use. Show the tools currently in use.
Default key is \(oq(\(cq. Default key is \(oq(\(cq.
.lp #seetrap .lp "#seetrap "
Show the type of an adjacent trap. Show the type of an adjacent trap.
Default key is \(oq\(ha\(cq. \" 'hat' (circumflex character) Default key is \(oq\(ha\(cq. \" 'hat' (circumflex character)
.lp #seeweapon .lp #seeweapon
Show the weapon currently wielded. Show the weapon currently wielded.
Default key is \(oq)\(cq. Default key is \(oq)\(cq.
.lp #shell .lp "#shell "
Do a shell escape. Do a shell escape.
Default key is \(oq!\(cq. Default key is \(oq!\(cq.
.lp "#sit " .lp "#sit "
Sit down. Sit down.
Autocompletes. Autocompletes.
Default key is \(oqM-s\(cq. Default key is \(oqM-s\(cq.
.lp #stats .lp "#stats "
Show memory usage statistics. Show memory usage statistics.
Autocompletes. Autocompletes.
Debug mode only. Debug mode only.
.lp #suspend .lp "#suspend "
Suspend the game. Suspend the game.
Default key is \(oq\(haZ\(cq. Default key is \(oq\(haZ\(cq.
.lp #swap .lp "#swap "
Swap wielded and secondary weapons. Swap wielded and secondary weapons.
Default key is \(oqx\(cq. Default key is \(oqx\(cq.
.lp #takeoff .lp "#takeoff "
Take off one piece of armor. Take off one piece of armor.
Default key is \(oqT\(cq. Default key is \(oqT\(cq.
.lp #takeoffall .lp #takeoffall
@@ -1392,24 +1397,24 @@ Default key is \(oqA\(cq.
.lp #teleport .lp #teleport
Teleport around the level. Teleport around the level.
Default key is \(oq\(haT\(cq. Default key is \(oq\(haT\(cq.
.lp #terrain .lp "#terrain "
Show bare map without displaying monsters, objects, or traps. Show bare map without displaying monsters, objects, or traps.
Autocompletes. Autocompletes.
.lp #therecmdmenu .lp #therecmdmenu
Show a menu of possible actions in a location next to you. Show a menu of possible actions in a location next to you.
.lp #throw .lp "#throw "
Throw something. Throw something.
Default key is \(oqt\(cq. Default key is \(oqt\(cq.
.lp #timeout .lp "#timeout "
Look at the timeout queue. Look at the timeout queue.
Autocompletes. Autocompletes.
Debug mode only. Debug mode only.
.lp "#tip " .lp "#tip "
Tip over a container (bag or box) to pour out its contents. Tip over a container (bag or box) to pour out its contents.
Autocompletes. Autocompletes.
Default key is \(oqM-T\(cq. Default key is \(oqM-T\(cq.
The \(oqm\(cq prefix makes the command use a menu. The \(oqm\(cq prefix makes the command use a menu.
.lp #travel .lp "#travel "
Travel to a specific location on the map. Travel to a specific location on the map.
Default key is \(oq_\(cq. \" underscore Default key is \(oq_\(cq. \" underscore
Using the \(lqrequest menu\(rq prefix shows a menu of interesting targets Using the \(lqrequest menu\(rq prefix shows a menu of interesting targets
@@ -1418,7 +1423,7 @@ When picking a target with cursor and the
.op autodescribe .op autodescribe
option is on, the top line will show \(lq(no travel path)\(rq if option is on, the top line will show \(lq(no travel path)\(rq if
your character does not know of a path to that location. your character does not know of a path to that location.
.lp #turn .lp "#turn "
Turn undead away. Turn undead away.
Autocompletes. Autocompletes.
Default key is \(oqM-t\(cq. Default key is \(oqM-t\(cq.
@@ -1432,53 +1437,53 @@ is off.
Note that you must Note that you must
use suitable weapons for this type of combat, or it will use suitable weapons for this type of combat, or it will
be automatically turned off. be automatically turned off.
.lp #untrap .lp "#untrap "
Untrap something (trap, door, or chest). Untrap something (trap, door, or chest).
Default key is \(oqM-u\(cq, and \(oqu\(cq if Default key is \(oqM-u\(cq, and \(oqu\(cq if
.op number_pad .op number_pad
is on. is on.
.lp "" .lp ""
In some circumstances it can also be used to rescue trapped monsters. In some circumstances it can also be used to rescue trapped monsters.
.lp "#up " .lp "#up "
Go up a staircase. Go up a staircase.
Default key is \(oq<\(cq. Default key is \(oq<\(cq.
.lp #vanquished .lp #vanquished
List vanquished monsters. List vanquished monsters.
Autocompletes. Autocompletes.
Debug mode only. Debug mode only.
.lp #version .lp "#version "
Print compile time options for this version of NetHack. Print compile time options for this version of NetHack.
Autocompletes. Autocompletes.
Default key is \(oqM-v\(cq. Default key is \(oqM-v\(cq.
.lp #versionshort .lp #versionshort
Show version string. Show version string.
Default key is \(oqv\(cq. Default key is \(oqv\(cq.
.lp #vision .lp "#vision "
Show vision array. Show vision array.
Autocompletes. Autocompletes.
Debug mode only. Debug mode only.
.lp #wait .lp "#wait "
Rest one move while doing nothing. Rest one move while doing nothing.
Default key is \(oq.\(cq, and also \(oq\ \(cq if Default key is \(oq.\(cq, and also \(oq\ \(cq if
.op rest_on_space .op rest_on_space
is on. is on.
.lp #wear .lp "#wear "
Wear a piece of armor. Wear a piece of armor.
Default key is \(oqW\(cq. Default key is \(oqW\(cq.
.lp #whatdoes .lp #whatdoes
Tell what a key does. Tell what a key does.
Default key is \(oq&\(cq. Default key is \(oq&\(cq.
.lp #whatis .lp "#whatis "
Show what type of thing a symbol corresponds to. Show what type of thing a symbol corresponds to.
Default key is \(oq/\(cq. Default key is \(oq/\(cq.
.lp #wield .lp "#wield "
Wield a weapon. Wield a weapon.
Default key is \(oqw\(cq. Default key is \(oqw\(cq.
.lp #wipe .lp "#wipe "
Wipe off your face. Wipe off your face.
Autocompletes. Autocompletes.
Default key is \(oqM-w\(cq. Default key is \(oqM-w\(cq.
.lp #wizbury .lp "#wizbury "
Bury objects under and around you. Bury objects under and around you.
Autocompletes. Autocompletes.
Debug mode only. Debug mode only.
@@ -1508,7 +1513,7 @@ Teleport to another level.
Autocompletes. Autocompletes.
Debug mode only. Debug mode only.
Default key is \(oq\(haV\(cq. Default key is \(oq\(haV\(cq.
.lp #wizmap .lp "#wizmap "
Map the level. Map the level.
Autocompletes. Autocompletes.
Debug mode only. Debug mode only.
@@ -1525,19 +1530,19 @@ Debug mode only.
Show locations of special levels. Show locations of special levels.
Autocompletes. Autocompletes.
Debug mode only. Debug mode only.
.lp #wizwish .lp "#wizwish "
Wish for something. Wish for something.
Autocompletes. Autocompletes.
Debug mode only. Debug mode only.
Default key is \(oq\(haW\(cq. Default key is \(oq\(haW\(cq.
.lp #wmode .lp "#wmode "
Show wall modes. Show wall modes.
Autocompletes. Autocompletes.
Debug mode only. Debug mode only.
.lp "#zap " .lp "#zap "
Zap a wand. Zap a wand.
Default key is \(oqz\(cq. Default key is \(oqz\(cq.
.lp "#? " .lp "#? "
Help menu: get the list of available extended commands. Help menu: get the list of available extended commands.
.lp "" .lp ""
.pg .pg
+35 -35
View File
@@ -1335,12 +1335,15 @@
#offer #offer
Offer a sacrifice to the gods. Autocompletes. Default key Offer a sacrifice to the gods. Autocompletes. Default key
is `M-o'. The `m' prefix skips offering items on the altar. is `M-o'.
You'll need to find an altar to have any chance at success. You'll need to find an altar to have any chance at success.
Corpses of recently killed monsters are the fodder of Corpses of recently killed monsters are the fodder of
choice. choice.
The `m' prefix skips offering any items which are on the al-
tar.
#open #open
Open a door. Default key is `o'. Open a door. Default key is `o'.
@@ -1375,9 +1378,6 @@
Pray to the gods for help. Autocompletes. Default key is Pray to the gods for help. Autocompletes. Default key is
`M-p'. `M-p'.
Praying too soon after receiving prior help is a bad idea.
(Hint: entering the dungeon alive is treated as having re-
ceived help. You probably shouldn't start off a new game by
NetHack 3.6 October 16, 2018 NetHack 3.6 October 16, 2018
@@ -1390,6 +1390,9 @@
Praying too soon after receiving prior help is a bad idea.
(Hint: entering the dungeon alive is treated as having re-
ceived help. You probably shouldn't start off a new game by
praying right away.) Since using this command by accident praying right away.) Since using this command by accident
can cause trouble, there is an option to make you confirm can cause trouble, there is an option to make you confirm
your intent before praying. It is enabled by default, and your intent before praying. It is enabled by default, and
@@ -1440,9 +1443,6 @@
Rub a lamp or a stone. Autocompletes. Default key is `M- Rub a lamp or a stone. Autocompletes. Default key is `M-
r'. r'.
#save
Save the game and exit the program. Default key is `S'.
@@ -1456,6 +1456,9 @@
#save
Save the game and exit the program. Default key is `S'.
#search #search
Search for traps and secret doors around you. Default key Search for traps and secret doors around you. Default key
is `s'. is `s'.
@@ -1506,9 +1509,6 @@
#swap #swap
Swap wielded and secondary weapons. Default key is `x'. Swap wielded and secondary weapons. Default key is `x'.
#takeoff
Take off one piece of armor. Default key is `T'.
@@ -1522,6 +1522,9 @@
#takeoff
Take off one piece of armor. Default key is `T'.
#takeoffall #takeoffall
Remove all armor. Default key is `A'. Remove all armor. Default key is `A'.
@@ -1574,9 +1577,6 @@
#up #up
Go up a staircase. Default key is `<'. Go up a staircase. Default key is `<'.
#vanquished
List vanquished monsters. Autocompletes. Debug mode only.
NetHack 3.6 October 16, 2018 NetHack 3.6 October 16, 2018
@@ -1588,6 +1588,9 @@
#vanquished
List vanquished monsters. Autocompletes. Debug mode only.
#version #version
Print compile time options for this version of NetHack. Au- Print compile time options for this version of NetHack. Au-
tocompletes. Default key is `M-v'. tocompletes. Default key is `M-v'.
@@ -1640,9 +1643,6 @@
Set one or more intrinsic attributes. Autocompletes. Debug Set one or more intrinsic attributes. Autocompletes. Debug
mode only. mode only.
#wizlevelport
Teleport to another level. Autocompletes. Debug mode only.
NetHack 3.6 October 16, 2018 NetHack 3.6 October 16, 2018
@@ -1654,6 +1654,8 @@
#wizlevelport
Teleport to another level. Autocompletes. Debug mode only.
Default key is `^V'. Default key is `^V'.
#wizmap #wizmap
@@ -1705,8 +1707,6 @@
M-A #annotate M-A #annotate
M-c #chat
@@ -1720,6 +1720,8 @@
M-c #chat
M-C #conduct M-C #conduct
M-d #dip M-d #dip
@@ -1771,8 +1773,6 @@
j #jump j #jump
k #kick
@@ -1786,6 +1786,8 @@
k #kick
l #loot l #loot
N #name N #name
@@ -1838,8 +1840,6 @@
There is a special pre-mapped branch of the dungeon based on There is a special pre-mapped branch of the dungeon based on
the classic computer game "Sokoban." The goal is to push the the classic computer game "Sokoban." The goal is to push the
boulders into the pits or holes. With careful foresight, it is
possible to complete all of the levels according to the
NetHack 3.6 October 16, 2018 NetHack 3.6 October 16, 2018
@@ -1852,8 +1852,10 @@
traditional rules of Sokoban. Some allowances are permitted in boulders into the pits or holes. With careful foresight, it is
case the player gets stuck; however, they will lower your luck. possible to complete all of the levels according to the tradi-
tional rules of Sokoban. Some allowances are permitted in case
the player gets stuck; however, they will lower your luck.
5.3. Stairs and ladders (`<', `>') 5.3. Stairs and ladders (`<', `>')
@@ -1904,8 +1906,6 @@
floor while inside a shop. You will either be offered an amount floor while inside a shop. You will either be offered an amount
of gold and asked whether you're willing to sell, or you'll be of gold and asked whether you're willing to sell, or you'll be
told that the shopkeeper isn't interested (generally, your item told that the shopkeeper isn't interested (generally, your item
needs to be compatible with the type of merchandise carried by
the shop).
NetHack 3.6 October 16, 2018 NetHack 3.6 October 16, 2018
@@ -1918,6 +1918,9 @@
needs to be compatible with the type of merchandise carried by
the shop).
If you drop something in a shop by accident, the shopkeeper If you drop something in a shop by accident, the shopkeeper
will usually claim ownership without offering any compensation. will usually claim ownership without offering any compensation.
You'll have to buy it back if you want to reclaim it. You'll have to buy it back if you want to reclaim it.
@@ -1970,9 +1973,6 @@
from another when multiple monsters are present. Assigning a from another when multiple monsters are present. Assigning a
name which is just a space will remove any prior name. name which is just a space will remove any prior name.
The extended command "#chat" can be used to interact with an
adjacent monster. There is no actual dialog (in other words, you
NetHack 3.6 October 16, 2018 NetHack 3.6 October 16, 2018
@@ -1984,6 +1984,8 @@
The extended command "#chat" can be used to interact with an
adjacent monster. There is no actual dialog (in other words, you
don't get to choose what you'll say), but chatting with some mon- don't get to choose what you'll say), but chatting with some mon-
sters such as a shopkeeper or the Oracle of Delphi can produce sters such as a shopkeeper or the Oracle of Delphi can produce
useful results. useful results.
@@ -2038,8 +2040,6 @@
with it even if adjacent at the time. with it even if adjacent at the time.
NetHack 3.6 October 16, 2018 NetHack 3.6 October 16, 2018
@@ -4852,8 +4852,7 @@
and ride, and "all" for every condition. and ride, and "all" for every condition.
Allowed behaviors are "always", "up", "down", "changed", a per- Allowed behaviors are "always", "up", "down", "changed", a per-
centage or absolute number threshold, or a text to match centage or absolute number threshold, or text to match against.
against.
* "always" will set the default attributes for that field. * "always" will set the default attributes for that field.
@@ -4878,6 +4877,7 @@
points" fields. points" fields.
NetHack 3.6 October 16, 2018 NetHack 3.6 October 16, 2018
+1
View File
@@ -171,6 +171,7 @@ overview information for former hero was not being set properly when bones
in Guidebook.mn and Guidebook.txt, the 'I' command mis-described `IX' as in Guidebook.mn and Guidebook.txt, the 'I' command mis-described `IX' as
displaying inventory items whose bless/curse state is "known" displaying inventory items whose bless/curse state is "known"
(Guidebook.tex correctly had "unknown") (Guidebook.tex correctly had "unknown")
poison gas (stinking cloud) wasn't shown at drawbridge-up spot
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
+1
View File
@@ -145,6 +145,7 @@ E int NDECL(getbones);
/* ### botl.c ### */ /* ### botl.c ### */
E const char *FDECL(bl_idx_to_fldname, (int));
E char *NDECL(do_statusline1); E char *NDECL(do_statusline1);
E void NDECL(check_gold_symbol); E void NDECL(check_gold_symbol);
E char *NDECL(do_statusline2); E char *NDECL(do_statusline2);
+2 -1
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 permonst.h $NHDT-Date: 1432512778 2015/05/25 00:12:58 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $ */ /* NetHack 3.6 permonst.h $NHDT-Date: 1539804913 2018/10/17 19:35:13 $ $NHDT-Branch: keni-makedefsm $:$NHDT-Revision: 1.12 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Kenneth Lorber, Kensington, Maryland, 2015. */ /*-Copyright (c) Kenneth Lorber, Kensington, Maryland, 2015. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -58,6 +58,7 @@ struct permonst {
unsigned long mflags1, /* boolean bitflags */ unsigned long mflags1, /* boolean bitflags */
mflags2; /* more boolean bitflags */ mflags2; /* more boolean bitflags */
unsigned short mflags3; /* yet more boolean bitflags */ unsigned short mflags3; /* yet more boolean bitflags */
uchar difficulty; /* toughness (formerly from makedefs -m) */
#ifdef TEXTCOLOR #ifdef TEXTCOLOR
uchar mcolor; /* color to use */ uchar mcolor; /* color to use */
#endif #endif
+15 -5
View File
@@ -153,12 +153,7 @@ struct menu_info_t {
struct menu curr_menu; /* Menu being displayed. */ struct menu curr_menu; /* Menu being displayed. */
struct menu new_menu; /* New menu being built. */ struct menu new_menu; /* New menu being built. */
boolean nh_colors_inited;
XColor nh_colors[CLR_MAX];
XFontStruct *fs; /* Font for the window. */ XFontStruct *fs; /* Font for the window. */
XFontStruct *boldfs; /* Bold font */
Display *boldfs_dpy;
long menu_count; /* number entered by user */ long menu_count; /* number entered by user */
Dimension line_height; /* Total height of a line of text. */ Dimension line_height; /* Total height of a line of text. */
Dimension internal_height; /* Internal height between widget & border */ Dimension internal_height; /* Internal height between widget & border */
@@ -203,6 +198,11 @@ struct xwindow {
int prevx, cursx; /* Cursor position, only used by */ int prevx, cursx; /* Cursor position, only used by */
int prevy, cursy; /* map and "plain" status windows.*/ int prevy, cursy; /* map and "plain" status windows.*/
boolean nh_colors_inited;
XColor nh_colors[CLR_MAX];
XFontStruct *boldfs; /* Bold font */
Display *boldfs_dpy; /* Bold font display */
union { union {
struct map_info_t *Map_info; /* map window info */ struct map_info_t *Map_info; /* map window info */
struct mesg_info_t *Mesg_info; /* message window info */ struct mesg_info_t *Mesg_info; /* message window info */
@@ -254,6 +254,7 @@ E boolean plsel_ask_name;
typedef struct { typedef struct {
Boolean slow; /* issue prompts between map and message wins */ Boolean slow; /* issue prompts between map and message wins */
Boolean fancy_status; /* use "fancy" status vs. TTY-style status */
Boolean autofocus; /* grab pointer focus for popup windows */ Boolean autofocus; /* grab pointer focus for popup windows */
Boolean message_line; /* separate current turn mesgs from prev ones */ Boolean message_line; /* separate current turn mesgs from prev ones */
Boolean highlight_prompt; /* if 'slow', highlight yn prompts */ Boolean highlight_prompt; /* if 'slow', highlight yn prompts */
@@ -297,6 +298,9 @@ E void FDECL(positionpopup, (Widget, BOOLEAN_P));
/* ### winX.c ### */ /* ### winX.c ### */
E struct xwindow *FDECL(find_widget, (Widget)); E struct xwindow *FDECL(find_widget, (Widget));
E XColor FDECL(get_nhcolor, (struct xwindow *, int));
E void FDECL(init_menu_nhcolors, (struct xwindow *));
E void FDECL(load_boldfont, (struct xwindow *, Widget));
E Boolean FDECL(nhApproxColor, (Screen *, Colormap, char *, XColor *)); E Boolean FDECL(nhApproxColor, (Screen *, Colormap, char *, XColor *));
E void FDECL(get_widget_window_geometry, (Widget, int *, int *, int *, int *)); E void FDECL(get_widget_window_geometry, (Widget, int *, int *, int *, int *));
E char *FDECL(fontname_boldify, (const char *)); E char *FDECL(fontname_boldify, (const char *));
@@ -394,6 +398,8 @@ E void FDECL(hilight_value, (Widget));
E void FDECL(swap_fg_bg, (Widget)); E void FDECL(swap_fg_bg, (Widget));
/* external declarations */ /* external declarations */
E char *FDECL(X11_getmsghistory, (BOOLEAN_P));
E void FDECL(X11_putmsghistory, (const char *, BOOLEAN_P));
E void FDECL(X11_init_nhwindows, (int *, char **)); E void FDECL(X11_init_nhwindows, (int *, char **));
E void NDECL(X11_player_selection); E void NDECL(X11_player_selection);
E void NDECL(X11_askname); E void NDECL(X11_askname);
@@ -431,6 +437,10 @@ E void FDECL(X11_getlin, (const char *, char *));
E int NDECL(X11_get_ext_cmd); E int NDECL(X11_get_ext_cmd);
E void FDECL(X11_number_pad, (int)); E void FDECL(X11_number_pad, (int));
E void NDECL(X11_delay_output); E void NDECL(X11_delay_output);
E void NDECL(X11_status_init);
E void NDECL(X11_status_finish);
E void FDECL(X11_status_enablefield, (int, const char *, const char *, BOOLEAN_P));
E void FDECL(X11_status_update, (int, genericptr_t, int, int, int, unsigned long *));
/* other defs that really should go away (they're tty specific) */ /* other defs that really should go away (they're tty specific) */
E void NDECL(X11_start_screen); E void NDECL(X11_start_screen);
+2 -2
View File
@@ -9,6 +9,6 @@ qt_win.moc NH_filesgentag=>qt_kde0.moc
qttableview.moc NH_filesgentag=>qt_kde0.moc qttableview.moc NH_filesgentag=>qt_kde0.moc
tile.c NH_filesgentag=(file%s_optionally_generated_by_tilemap_at_compile_time) tile.c NH_filesgentag=(file%s_optionally_generated_by_tilemap_at_compile_time)
monstr.c NH_filesgentag=(file%s_generated_by_makedefs_at_compile_time_by_some_ports)
monstr.c NH_filesgentag=(file%s_generated_by_makedefs_at_compile_time) vis_tab.c NH_filesgentag=(file%s_generated_by_makedefs_at_compile_time)
vis_tab.c NH_filesgentag=>monstr.c
+1 -2
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 allmain.c $NHDT-Date: 1518193644 2018/02/09 16:27:24 $ $NHDT-Branch: githash $:$NHDT-Revision: 1.86 $ */ /* NetHack 3.6 allmain.c $NHDT-Date: 1539804859 2018/10/17 19:34:19 $ $NHDT-Branch: keni-makedefsm $:$NHDT-Revision: 1.89 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2012. */ /*-Copyright (c) Robert Patrick Rankin, 2012. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -35,7 +35,6 @@ boolean resuming;
*/ */
decl_init(); decl_init();
monst_init(); monst_init();
monstr_init(); /* monster strengths */
objects_init(); objects_init();
/* if a save file created in normal mode is now being restored in /* if a save file created in normal mode is now being restored in
+10
View File
@@ -1248,6 +1248,16 @@ static struct fieldid_t {
static const char threshold_value[] = "hilite_status threshold ", static const char threshold_value[] = "hilite_status threshold ",
is_out_of_range[] = " is out of range"; is_out_of_range[] = " is out of range";
const char *
bl_idx_to_fldname(idx)
int idx;
{
if (idx >= 0 && idx < MAXBLSTATS)
return initblstats[idx].fldname;
return (const char *) 0;
}
/* field name to bottom line index */ /* field name to bottom line index */
STATIC_OVL enum statusfields STATIC_OVL enum statusfields
fldname_to_bl_indx(name) fldname_to_bl_indx(name)
+27 -32
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 display.c $NHDT-Date: 1525056598 2018/04/30 02:49:58 $ $NHDT-Branch: master $:$NHDT-Revision: 1.92 $ */ /* NetHack 3.6 display.c $NHDT-Date: 1540502147 2018/10/25 21:15:47 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.94 $ */
/* Copyright (c) Dean Luick, with acknowledgements to Kevin Darcy */ /* Copyright (c) Dean Luick, with acknowledgements to Kevin Darcy */
/* and Dave Cohrs, 1990. */ /* and Dave Cohrs, 1990. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -512,6 +512,7 @@ warning_of(mon)
struct monst *mon; struct monst *mon;
{ {
int wl = 0, tmp = 0; int wl = 0, tmp = 0;
if (mon_warning(mon)) { if (mon_warning(mon)) {
tmp = (int) (mon->m_lev / 4); /* match display.h */ tmp = (int) (mon->m_lev / 4); /* match display.h */
wl = (tmp > WARNCOUNT - 1) ? WARNCOUNT - 1 : tmp; wl = (tmp > WARNCOUNT - 1) ? WARNCOUNT - 1 : tmp;
@@ -755,38 +756,36 @@ register int x, y;
/* normal region shown only on accessible positions, but poison clouds /* normal region shown only on accessible positions, but poison clouds
* also shown above lava, pools and moats. * also shown above lava, pools and moats.
*/ */
if (reg != NULL && (ACCESSIBLE(lev->typ) if (reg && (ACCESSIBLE(lev->typ)
|| (reg->glyph == cmap_to_glyph(S_poisoncloud) || (reg->glyph == cmap_to_glyph(S_poisoncloud)
&& (lev->typ == LAVAPOOL || lev->typ == POOL && is_pool_or_lava(x, y)))) {
|| lev->typ == MOAT)))) {
show_region(reg, x, y); show_region(reg, x, y);
return; return;
} }
if (x == u.ux && y == u.uy) { if (x == u.ux && y == u.uy) {
if (canspotself()) { int see_self = canspotself();
_map_location(x, y, 0); /* map *under* self */
/* update map information for <u.ux,u.uy> (remembered topology
and object/known trap/terrain glyph) but only display it if
hero can't see him/herself, then show self if appropriate */
_map_location(x, y, !see_self);
if (see_self)
display_self(); display_self();
} else
/* we can see what is there */
_map_location(x, y, 1);
} else { } else {
mon = m_at(x, y); mon = m_at(x, y);
worm_tail = is_worm_tail(mon); worm_tail = is_worm_tail(mon);
see_it = see_it = mon && (mon_visible(mon)
mon && (worm_tail ? (!mon->minvis || See_invisible) || (!worm_tail && (tp_sensemon(mon)
: (mon_visible(mon)) || tp_sensemon(mon) || MATCH_WARN_OF_MON(mon))));
|| MATCH_WARN_OF_MON(mon));
if (mon && (see_it || (!worm_tail && Detect_monsters))) { if (mon && (see_it || (!worm_tail && Detect_monsters))) {
if (mon->mtrapped) { if (mon->mtrapped) {
struct trap *trap = t_at(x, y); struct trap *trap = t_at(x, y);
int tt = trap ? trap->ttyp : NO_TRAP; int tt = trap ? trap->ttyp : NO_TRAP;
/* if monster is in a physical trap, you see the trap too /* if monster is in a physical trap, you see trap too */
*/ if (tt == BEAR_TRAP || is_pit(tt) || tt == WEB)
if (tt == BEAR_TRAP || is_pit(tt) trap->tseen = 1;
|| tt == WEB) {
trap->tseen = TRUE;
}
} }
_map_location(x, y, 0); /* map under the monster */ _map_location(x, y, 0); /* map under the monster */
/* also gets rid of any invisibility glyph */ /* also gets rid of any invisibility glyph */
@@ -795,7 +794,7 @@ register int x, y;
worm_tail); worm_tail);
} else if (mon && mon_warning(mon) && !is_worm_tail(mon)) { } else if (mon && mon_warning(mon) && !is_worm_tail(mon)) {
display_warning(mon); display_warning(mon);
} else if (glyph_is_invisible(levl[x][y].glyph)) { } else if (glyph_is_invisible(lev->glyph)) {
map_invisible(x, y); map_invisible(x, y);
} else } else
_map_location(x, y, 1); /* map the location */\ _map_location(x, y, 1); /* map the location */\
@@ -808,19 +807,17 @@ register int x, y;
if (canspotself()) if (canspotself())
display_self(); display_self();
} else if ((mon = m_at(x, y)) } else if ((mon = m_at(x, y)) != 0
&& ((see_it = (tp_sensemon(mon) || MATCH_WARN_OF_MON(mon) && ((see_it = (tp_sensemon(mon) || MATCH_WARN_OF_MON(mon)
|| (see_with_infrared(mon) || (see_with_infrared(mon)
&& mon_visible(mon)))) && mon_visible(mon)))) != 0
|| Detect_monsters)) { || Detect_monsters)) {
/* Monsters are printed every time. */ /* Seen or sensed monsters are printed every time.
/* This also gets rid of any invisibility glyph */ This also gets rid of any invisibility glyph. */
display_monster(x, y, mon, see_it ? 0 : DETECTED, display_monster(x, y, mon, see_it ? 0 : DETECTED,
is_worm_tail(mon) ? TRUE : FALSE); is_worm_tail(mon) ? TRUE : FALSE);
} else if ((mon = m_at(x, y)) && mon_warning(mon) } else if (mon && mon_warning(mon) && !is_worm_tail(mon)) {
&& !is_worm_tail(mon)) {
display_warning(mon); display_warning(mon);
}
/* /*
* If the location is remembered as being both dark (waslit is false) * If the location is remembered as being both dark (waslit is false)
@@ -828,7 +825,6 @@ register int x, y;
* *
* (1) A dark location that the hero could see through night * (1) A dark location that the hero could see through night
* vision. * vision.
*
* (2) Darkened while out of the hero's sight. This can happen * (2) Darkened while out of the hero's sight. This can happen
* when cursed scroll of light is read. * when cursed scroll of light is read.
* *
@@ -844,7 +840,7 @@ register int x, y;
* These checks and changes must be here and not in back_to_glyph(). * These checks and changes must be here and not in back_to_glyph().
* They are dependent on the position being out of sight. * They are dependent on the position being out of sight.
*/ */
else if (Is_rogue_level(&u.uz)) { } else if (Is_rogue_level(&u.uz)) {
if (lev->glyph == cmap_to_glyph(S_litcorr) && lev->typ == CORR) if (lev->glyph == cmap_to_glyph(S_litcorr) && lev->typ == CORR)
show_glyph(x, y, lev->glyph = cmap_to_glyph(S_corr)); show_glyph(x, y, lev->glyph = cmap_to_glyph(S_corr));
else if (lev->glyph == cmap_to_glyph(S_room) && lev->typ == ROOM else if (lev->glyph == cmap_to_glyph(S_room) && lev->typ == ROOM
@@ -852,8 +848,7 @@ register int x, y;
show_glyph(x, y, lev->glyph = cmap_to_glyph(S_stone)); show_glyph(x, y, lev->glyph = cmap_to_glyph(S_stone));
else else
goto show_mem; goto show_mem;
} } else if (!lev->waslit || (flags.dark_room && iflags.use_color)) {
else if (!lev->waslit || (flags.dark_room && iflags.use_color)) {
if (lev->glyph == cmap_to_glyph(S_litcorr) && lev->typ == CORR) if (lev->glyph == cmap_to_glyph(S_litcorr) && lev->typ == CORR)
show_glyph(x, y, lev->glyph = cmap_to_glyph(S_corr)); show_glyph(x, y, lev->glyph = cmap_to_glyph(S_corr));
else if (lev->glyph == cmap_to_glyph(S_room) && lev->typ == ROOM) else if (lev->glyph == cmap_to_glyph(S_room) && lev->typ == ROOM)
+2 -4
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 end.c $NHDT-Date: 1528332335 2018/06/07 00:45:35 $ $NHDT-Branch: NetHack-3.6.2 $:$NHDT-Revision: 1.141 $ */ /* NetHack 3.6 end.c $NHDT-Date: 1539804880 2018/10/17 19:34:40 $ $NHDT-Branch: keni-makedefsm $:$NHDT-Revision: 1.146 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2012. */ /*-Copyright (c) Robert Patrick Rankin, 2012. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -1574,8 +1574,6 @@ int status;
nethack_exit(status); nethack_exit(status);
} }
extern const int monstr[];
enum vanq_order_modes { enum vanq_order_modes {
VANQ_MLVL_MNDX = 0, VANQ_MLVL_MNDX = 0,
VANQ_MSTR_MNDX, VANQ_MSTR_MNDX,
@@ -1620,7 +1618,7 @@ const genericptr vptr2;
break; break;
case VANQ_MSTR_MNDX: case VANQ_MSTR_MNDX:
/* sort by monster toughness */ /* sort by monster toughness */
mstr1 = monstr[indx1], mstr2 = monstr[indx2]; mstr1 = mons[indx1].difficulty, mstr2 = mons[indx2].difficulty;
res = mstr2 - mstr1; /* monstr high to low */ res = mstr2 - mstr1; /* monstr high to low */
break; break;
case VANQ_ALPHA_SEP: case VANQ_ALPHA_SEP:
+4 -6
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 makemon.c $NHDT-Date: 1537477761 2018/09/20 21:09:21 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.124 $ */ /* NetHack 3.6 makemon.c $NHDT-Date: 1539804904 2018/10/17 19:35:04 $ $NHDT-Branch: keni-makedefsm $:$NHDT-Revision: 1.127 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2012. */ /*-Copyright (c) Robert Patrick Rankin, 2012. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -25,12 +25,10 @@ STATIC_DCL void FDECL(m_initinv, (struct monst *));
STATIC_DCL boolean FDECL(makemon_rnd_goodpos, (struct monst *, STATIC_DCL boolean FDECL(makemon_rnd_goodpos, (struct monst *,
unsigned, coord *)); unsigned, coord *));
extern const int monstr[];
#define m_initsgrp(mtmp, x, y) m_initgrp(mtmp, x, y, 3) #define m_initsgrp(mtmp, x, y) m_initgrp(mtmp, x, y, 3)
#define m_initlgrp(mtmp, x, y) m_initgrp(mtmp, x, y, 10) #define m_initlgrp(mtmp, x, y) m_initgrp(mtmp, x, y, 10)
#define toostrong(monindx, lev) (monstr[monindx] > lev) #define toostrong(monindx, lev) (mons[monindx].difficulty > lev)
#define tooweak(monindx, lev) (monstr[monindx] < lev) #define tooweak(monindx, lev) (mons[monindx].difficulty < lev)
boolean boolean
is_home_elemental(ptr) is_home_elemental(ptr)
@@ -1652,7 +1650,7 @@ int spc;
if (mk_gen_ok(last, G_GONE, mask)) { if (mk_gen_ok(last, G_GONE, mask)) {
/* consider it */ /* consider it */
if (num && toostrong(last, maxmlev) if (num && toostrong(last, maxmlev)
&& monstr[last] != monstr[last - 1] && rn2(2)) && mons[last].difficulty != mons[last - 1].difficulty && rn2(2))
break; break;
num += mons[last].geno & G_FREQ; num += mons[last].geno & G_FREQ;
} }
+401 -400
View File
File diff suppressed because it is too large Load Diff
+8 -10
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 muse.c $NHDT-Date: 1505181522 2017/09/12 01:58:42 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.80 $ */ /* NetHack 3.6 muse.c $NHDT-Date: 1539804880 2018/10/17 19:34:40 $ $NHDT-Branch: keni-makedefsm $:$NHDT-Revision: 1.85 $ */
/* Copyright (C) 1990 by Ken Arromdee */ /* Copyright (C) 1990 by Ken Arromdee */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -8,8 +8,6 @@
#include "hack.h" #include "hack.h"
extern const int monstr[];
boolean m_using = FALSE; boolean m_using = FALSE;
/* Let monsters use magic items. Arbitrary assumptions: Monsters only use /* Let monsters use magic items. Arbitrary assumptions: Monsters only use
@@ -991,7 +989,7 @@ rnd_defensive_item(mtmp)
struct monst *mtmp; struct monst *mtmp;
{ {
struct permonst *pm = mtmp->data; struct permonst *pm = mtmp->data;
int difficulty = monstr[(monsndx(pm))]; int difficulty = mons[(monsndx(pm))].difficulty;
int trycnt = 0; int trycnt = 0;
if (is_animal(pm) || attacktype(pm, AT_EXPL) || mindless(mtmp->data) if (is_animal(pm) || attacktype(pm, AT_EXPL) || mindless(mtmp->data)
@@ -1556,7 +1554,7 @@ rnd_offensive_item(mtmp)
struct monst *mtmp; struct monst *mtmp;
{ {
struct permonst *pm = mtmp->data; struct permonst *pm = mtmp->data;
int difficulty = monstr[(monsndx(pm))]; int difficulty = mons[(monsndx(pm))].difficulty;
if (is_animal(pm) || attacktype(pm, AT_EXPL) || mindless(mtmp->data) if (is_animal(pm) || attacktype(pm, AT_EXPL) || mindless(mtmp->data)
|| pm->mlet == S_GHOST || pm->mlet == S_KOP) || pm->mlet == S_GHOST || pm->mlet == S_KOP)
@@ -1636,7 +1634,7 @@ struct monst *mtmp;
return FALSE; return FALSE;
if (!stuck && !immobile && (mtmp->cham == NON_PM) if (!stuck && !immobile && (mtmp->cham == NON_PM)
&& monstr[(pmidx = monsndx(mdat))] < 6) { && mons[(pmidx = monsndx(mdat))].difficulty < 6) {
boolean ignore_boulders = (verysmall(mdat) || throws_rocks(mdat) boolean ignore_boulders = (verysmall(mdat) || throws_rocks(mdat)
|| passes_walls(mdat)), || passes_walls(mdat)),
diag_ok = !NODIAG(pmidx); diag_ok = !NODIAG(pmidx);
@@ -1722,13 +1720,13 @@ struct monst *mtmp;
} }
nomore(MUSE_WAN_POLYMORPH); nomore(MUSE_WAN_POLYMORPH);
if (obj->otyp == WAN_POLYMORPH && obj->spe > 0 if (obj->otyp == WAN_POLYMORPH && obj->spe > 0
&& (mtmp->cham == NON_PM) && monstr[monsndx(mdat)] < 6) { && (mtmp->cham == NON_PM) && mons[monsndx(mdat)].difficulty < 6) {
m.misc = obj; m.misc = obj;
m.has_misc = MUSE_WAN_POLYMORPH; m.has_misc = MUSE_WAN_POLYMORPH;
} }
nomore(MUSE_POT_POLYMORPH); nomore(MUSE_POT_POLYMORPH);
if (obj->otyp == POT_POLYMORPH && (mtmp->cham == NON_PM) if (obj->otyp == POT_POLYMORPH && (mtmp->cham == NON_PM)
&& monstr[monsndx(mdat)] < 6) { && mons[monsndx(mdat)].difficulty < 6) {
m.misc = obj; m.misc = obj;
m.has_misc = MUSE_POT_POLYMORPH; m.has_misc = MUSE_POT_POLYMORPH;
} }
@@ -1997,7 +1995,7 @@ rnd_misc_item(mtmp)
struct monst *mtmp; struct monst *mtmp;
{ {
struct permonst *pm = mtmp->data; struct permonst *pm = mtmp->data;
int difficulty = monstr[(monsndx(pm))]; int difficulty = mons[(monsndx(pm))].difficulty;
if (is_animal(pm) || attacktype(pm, AT_EXPL) || mindless(mtmp->data) if (is_animal(pm) || attacktype(pm, AT_EXPL) || mindless(mtmp->data)
|| pm->mlet == S_GHOST || pm->mlet == S_KOP) || pm->mlet == S_GHOST || pm->mlet == S_KOP)
@@ -2052,7 +2050,7 @@ struct obj *obj;
if (typ == WAN_DIGGING) if (typ == WAN_DIGGING)
return (boolean) !is_floater(mon->data); return (boolean) !is_floater(mon->data);
if (typ == WAN_POLYMORPH) if (typ == WAN_POLYMORPH)
return (boolean) (monstr[monsndx(mon->data)] < 6); return (boolean) (mons[monsndx(mon->data)].difficulty < 6);
if (objects[typ].oc_dir == RAY || typ == WAN_STRIKING if (objects[typ].oc_dir == RAY || typ == WAN_STRIKING
|| typ == WAN_TELEPORTATION || typ == WAN_CREATE_MONSTER) || typ == WAN_TELEPORTATION || typ == WAN_CREATE_MONSTER)
return TRUE; return TRUE;
+2 -3
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 pray.c $NHDT-Date: 1519662898 2018/02/26 16:34:58 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.96 $ */ /* NetHack 3.6 pray.c $NHDT-Date: 1539804904 2018/10/17 19:35:04 $ $NHDT-Branch: keni-makedefsm $:$NHDT-Revision: 1.103 $ */
/* Copyright (c) Benson I. Margulies, Mike Stephenson, Steve Linhart, 1989. */ /* Copyright (c) Benson I. Margulies, Mike Stephenson, Steve Linhart, 1989. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -1325,7 +1325,6 @@ dosacrifice()
if (otmp->otyp == CORPSE) { if (otmp->otyp == CORPSE) {
register struct permonst *ptr = &mons[otmp->corpsenm]; register struct permonst *ptr = &mons[otmp->corpsenm];
struct monst *mtmp; struct monst *mtmp;
extern const int monstr[];
/* KMH, conduct */ /* KMH, conduct */
u.uconduct.gnostic++; u.uconduct.gnostic++;
@@ -1338,7 +1337,7 @@ dosacrifice()
if (otmp->corpsenm == PM_ACID_BLOB if (otmp->corpsenm == PM_ACID_BLOB
|| (monstermoves <= peek_at_iced_corpse_age(otmp) + 50)) { || (monstermoves <= peek_at_iced_corpse_age(otmp) + 50)) {
value = monstr[otmp->corpsenm] + 1; value = mons[otmp->corpsenm].difficulty + 1;
if (otmp->oeaten) if (otmp->oeaten)
value = eaten_stat(value, otmp); value = eaten_stat(value, otmp);
} }
+24 -22
View File
@@ -354,12 +354,14 @@ register struct monst *mtmp;
Strcpy(buf, y_monnam(mtmp)); Strcpy(buf, y_monnam(mtmp));
buf[0] = highc(buf[0]); buf[0] = highc(buf[0]);
You("stop. %s is in the way!", buf); You("stop. %s is in the way!", buf);
context.travel = context.travel1 = context.mv = context.run = 0; context.travel = context.travel1 = context.mv = context.run
= 0;
return TRUE; return TRUE;
} else if ((mtmp->mfrozen || (!mtmp->mcanmove) } else if ((mtmp->mfrozen || (!mtmp->mcanmove)
|| (mtmp->data->mmove == 0)) && rn2(6)) { || (mtmp->data->mmove == 0)) && rn2(6)) {
pline("%s doesn't seem to move!", Monnam(mtmp)); pline("%s doesn't seem to move!", Monnam(mtmp));
context.travel = context.travel1 = context.mv = context.run = 0; context.travel = context.travel1 = context.mv = context.run
= 0;
return TRUE; return TRUE;
} else } else
return FALSE; return FALSE;
@@ -423,7 +425,7 @@ register struct monst *mtmp;
(void) hitum(mtmp, youmonst.data->mattk); (void) hitum(mtmp, youmonst.data->mattk);
mtmp->mstrategy &= ~STRAT_WAITMASK; mtmp->mstrategy &= ~STRAT_WAITMASK;
atk_done: atk_done:
/* see comment in attack_checks() */ /* see comment in attack_checks() */
/* we only need to check for this if we did an attack_checks() /* we only need to check for this if we did an attack_checks()
* and it returned 0 (it's okay to attack), and the monster didn't * and it returned 0 (it's okay to attack), and the monster didn't
@@ -807,7 +809,8 @@ int dieroll;
silvermsg = TRUE; silvermsg = TRUE;
silverobj = TRUE; silverobj = TRUE;
} }
if (artifact_light(obj) && obj->lamplit && mon_hates_light(mon)) if (artifact_light(obj) && obj->lamplit
&& mon_hates_light(mon))
lightobj = TRUE; lightobj = TRUE;
if (u.usteed && !thrown && tmp > 0 if (u.usteed && !thrown && tmp > 0
&& weapon_type(obj) == P_LANCE && mon != u.ustuck) { && weapon_type(obj) == P_LANCE && mon != u.ustuck) {
@@ -1550,6 +1553,7 @@ register struct attack *mattk;
register struct permonst *pd = mdef->data; register struct permonst *pd = mdef->data;
int armpro, tmp = d((int) mattk->damn, (int) mattk->damd); int armpro, tmp = d((int) mattk->damn, (int) mattk->damd);
boolean negated; boolean negated;
struct obj *mongold;
armpro = magic_negation(mdef); armpro = magic_negation(mdef);
/* since hero can't be cancelled, only defender's armor applies */ /* since hero can't be cancelled, only defender's armor applies */
@@ -1689,18 +1693,16 @@ register struct attack *mattk;
case AD_SGLD: case AD_SGLD:
/* This you as a leprechaun, so steal /* This you as a leprechaun, so steal
real gold only, no lesser coins */ real gold only, no lesser coins */
{ mongold = findgold(mdef->minvent);
struct obj *mongold = findgold(mdef->minvent); if (mongold) {
if (mongold) { obj_extract_self(mongold);
obj_extract_self(mongold); if (merge_choice(invent, mongold) || inv_cnt(FALSE) < 52) {
if (merge_choice(invent, mongold) || inv_cnt(FALSE) < 52) { addinv(mongold);
addinv(mongold); Your("purse feels heavier.");
Your("purse feels heavier."); } else {
} else { You("grab %s's gold, but find no room in your knapsack.",
You("grab %s's gold, but find no room in your knapsack.", mon_nam(mdef));
mon_nam(mdef)); dropy(mongold);
dropy(mongold);
}
} }
} }
exercise(A_DEX, TRUE); exercise(A_DEX, TRUE);
@@ -1711,8 +1713,9 @@ register struct attack *mattk;
tmp = 1; tmp = 1;
if (!negated && tmp < mdef->mhp) { if (!negated && tmp < mdef->mhp) {
char nambuf[BUFSZ]; char nambuf[BUFSZ];
boolean u_saw_mon = boolean u_saw_mon = (canseemon(mdef)
canseemon(mdef) || (u.uswallow && u.ustuck == mdef); || (u.uswallow && u.ustuck == mdef));
/* record the name before losing sight of monster */ /* record the name before losing sight of monster */
Strcpy(nambuf, Monnam(mdef)); Strcpy(nambuf, Monnam(mdef));
if (u_teleport_mon(mdef, FALSE) && u_saw_mon if (u_teleport_mon(mdef, FALSE) && u_saw_mon
@@ -1794,9 +1797,9 @@ register struct attack *mattk;
case AD_DRCO: case AD_DRCO:
if (!negated && !rn2(8)) { if (!negated && !rn2(8)) {
Your("%s was poisoned!", mpoisons_subj(&youmonst, mattk)); Your("%s was poisoned!", mpoisons_subj(&youmonst, mattk));
if (resists_poison(mdef)) if (resists_poison(mdef)) {
pline_The("poison doesn't seem to affect %s.", mon_nam(mdef)); pline_The("poison doesn't seem to affect %s.", mon_nam(mdef));
else { } else {
if (!rn2(10)) { if (!rn2(10)) {
Your("poison was deadly..."); Your("poison was deadly...");
tmp = mdef->mhp; tmp = mdef->mhp;
@@ -1941,12 +1944,11 @@ explum(mdef, mattk)
register struct monst *mdef; register struct monst *mdef;
register struct attack *mattk; register struct attack *mattk;
{ {
boolean resistance; /* only for cold/fire/elec */
register int tmp = d((int) mattk->damn, (int) mattk->damd); register int tmp = d((int) mattk->damn, (int) mattk->damd);
You("explode!"); You("explode!");
switch (mattk->adtyp) { switch (mattk->adtyp) {
boolean resistance; /* only for cold/fire/elec */
case AD_BLND: case AD_BLND:
if (!resists_blnd(mdef)) { if (!resists_blnd(mdef)) {
pline("%s is blinded by your flash of light!", Monnam(mdef)); pline("%s is blinded by your flash of light!", Monnam(mdef));
+24 -9
View File
@@ -64,7 +64,8 @@ STATIC_DCL void FDECL(dump_clear_nhwindow, (winid));
STATIC_DCL void FDECL(dump_display_nhwindow, (winid, BOOLEAN_P)); STATIC_DCL void FDECL(dump_display_nhwindow, (winid, BOOLEAN_P));
STATIC_DCL void FDECL(dump_destroy_nhwindow, (winid)); STATIC_DCL void FDECL(dump_destroy_nhwindow, (winid));
STATIC_DCL void FDECL(dump_start_menu, (winid)); STATIC_DCL void FDECL(dump_start_menu, (winid));
STATIC_DCL void FDECL(dump_add_menu, (winid, int, const ANY_P *, CHAR_P, CHAR_P, int, const char *, BOOLEAN_P)); STATIC_DCL void FDECL(dump_add_menu, (winid, int, const ANY_P *, CHAR_P,
CHAR_P, int, const char *, BOOLEAN_P));
STATIC_DCL void FDECL(dump_end_menu, (winid, const char *)); STATIC_DCL void FDECL(dump_end_menu, (winid, const char *));
STATIC_DCL int FDECL(dump_select_menu, (winid, int, MENU_ITEM_P **)); STATIC_DCL int FDECL(dump_select_menu, (winid, int, MENU_ITEM_P **));
STATIC_DCL void FDECL(dump_putstr, (winid, int, const char *)); STATIC_DCL void FDECL(dump_putstr, (winid, int, const char *));
@@ -145,14 +146,22 @@ static struct winlink *chain = 0;
static struct winlink * static struct winlink *
wl_new() wl_new()
{ {
return calloc(1, sizeof(struct winlink)); struct winlink *wl = (struct winlink *) alloc(sizeof *wl);
wl->nextlink = 0;
wl->wincp = 0;
wl->linkdata = 0;
return wl;
} }
static void static void
wl_addhead(struct winlink *wl) wl_addhead(struct winlink *wl)
{ {
wl->nextlink = chain; wl->nextlink = chain;
chain = wl; chain = wl;
} }
static void static void
wl_addtail(struct winlink *wl) wl_addtail(struct winlink *wl)
{ {
@@ -255,24 +264,28 @@ const char *s;
if (!winchoices[0].procs) { if (!winchoices[0].procs) {
raw_printf("No window types?"); raw_printf("No window types?");
exit(EXIT_FAILURE); nh_terminate(EXIT_FAILURE);
} }
if (!winchoices[1].procs) { if (!winchoices[1].procs) {
config_error_add("Window type %s not recognized. The only choice is: %s", config_error_add(
s, winchoices[0].procs->name); "Window type %s not recognized. The only choice is: %s",
s, winchoices[0].procs->name);
} else { } else {
char buf[BUFSZ]; char buf[BUFSZ];
boolean first = TRUE; boolean first = TRUE;
buf[0] = '\0'; buf[0] = '\0';
for (i = 0; winchoices[i].procs; i++) { for (i = 0; winchoices[i].procs; i++) {
if ('+' == winchoices[i].procs->name[0]) if ('+' == winchoices[i].procs->name[0])
continue; continue;
if ('-' == winchoices[i].procs->name[0]) if ('-' == winchoices[i].procs->name[0])
continue; continue;
Sprintf(eos(buf), "%s%s", first ? "" : ",", winchoices[i].procs->name); Sprintf(eos(buf), "%s%s",
first ? "" : ", ", winchoices[i].procs->name);
first = FALSE; first = FALSE;
} }
config_error_add("Window type %s not recognized. Choices are: %s", s, buf); config_error_add("Window type %s not recognized. Choices are: %s",
s, buf);
} }
if (windowprocs.win_raw_print == def_raw_print) if (windowprocs.win_raw_print == def_raw_print)
@@ -291,6 +304,7 @@ const char *s;
continue; continue;
if (!strcmpi(s, winchoices[i].procs->name)) { if (!strcmpi(s, winchoices[i].procs->name)) {
struct winlink *p = wl_new(); struct winlink *p = wl_new();
p->wincp = &winchoices[i]; p->wincp = &winchoices[i];
wl_addtail(p); wl_addtail(p);
/* NB: The ini_routine() will be called during commit. */ /* NB: The ini_routine() will be called during commit. */
@@ -307,7 +321,7 @@ const char *s;
raw_printf(" %s", winchoices[i].procs->name); raw_printf(" %s", winchoices[i].procs->name);
} }
exit(EXIT_FAILURE); nh_terminate(EXIT_FAILURE);
} }
void void
@@ -494,7 +508,8 @@ static short FDECL(hup_set_font_name, (winid, char *));
#endif #endif
static char *NDECL(hup_get_color_string); static char *NDECL(hup_get_color_string);
#endif /* CHANGE_COLOR */ #endif /* CHANGE_COLOR */
static void FDECL(hup_status_update, (int, genericptr_t, int, int, int, unsigned long *)); static void FDECL(hup_status_update, (int, genericptr_t, int, int, int,
unsigned long *));
static int NDECL(hup_int_ndecl); static int NDECL(hup_int_ndecl);
static void NDECL(hup_void_ndecl); static void NDECL(hup_void_ndecl);
+3 -4
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 wizard.c $NHDT-Date: 1456618999 2016/02/28 00:23:19 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.48 $ */ /* NetHack 3.6 wizard.c $NHDT-Date: 1539804905 2018/10/17 19:35:05 $ $NHDT-Branch: keni-makedefsm $:$NHDT-Revision: 1.53 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2016. */ /*-Copyright (c) Robert Patrick Rankin, 2016. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -11,8 +11,6 @@
#include "hack.h" #include "hack.h"
#include "qtext.h" #include "qtext.h"
extern const int monstr[];
STATIC_DCL short FDECL(which_arti, (int)); STATIC_DCL short FDECL(which_arti, (int));
STATIC_DCL boolean FDECL(mon_has_arti, (struct monst *, SHORT_P)); STATIC_DCL boolean FDECL(mon_has_arti, (struct monst *, SHORT_P));
STATIC_DCL struct monst *FDECL(other_mon_has_arti, (struct monst *, SHORT_P)); STATIC_DCL struct monst *FDECL(other_mon_has_arti, (struct monst *, SHORT_P));
@@ -588,7 +586,8 @@ struct monst *summoner;
m_cls = mons[makeindex].mlet; m_cls = mons[makeindex].mlet;
} while (summoner } while (summoner
&& ((attacktype(&mons[makeindex], AT_MAGC) && ((attacktype(&mons[makeindex], AT_MAGC)
&& monstr[makeindex] >= monstr[summoner->mnum]) && mons[makeindex].difficulty
>= mons[summoner->mnum].difficulty)
|| (s_cls == S_DEMON && m_cls == S_ANGEL) || (s_cls == S_DEMON && m_cls == S_ANGEL)
|| (s_cls == S_ANGEL && m_cls == S_DEMON))); || (s_cls == S_ANGEL && m_cls == S_DEMON)));
/* do this after picking the monster to place */ /* do this after picking the monster to place */
+5 -8
View File
@@ -1,5 +1,5 @@
# NetHack Makefile. # NetHack Makefile.
# NetHack 3.6 Makefile.src $NHDT-Date: 1526687360 2018/05/18 23:49:20 $ $NHDT-Branch: NetHack-3.6.2 $:$NHDT-Revision: 1.55 $ # NetHack 3.6 Makefile.src $NHDT-Date: 1539968067 2018/10/19 16:54:27 $ $NHDT-Branch: keni-makedefsm $:$NHDT-Revision: 1.58 $
# Copyright (c) 2018 by Pasi Kallinen # Copyright (c) 2018 by Pasi Kallinen
# NetHack may be freely redistributed. See license for details. # NetHack may be freely redistributed. See license for details.
@@ -427,7 +427,7 @@ SYSCSRC = ../sys/atari/tos.c ../sys/share/pcmain.c ../sys/share/pcsys.c \
SYSCXXSRC = ../sys/share/cppregex.cpp SYSCXXSRC = ../sys/share/cppregex.cpp
# generated source files (tile.c is handled separately via WINxxxSRC) # generated source files (tile.c is handled separately via WINxxxSRC)
GENCSRC = monstr.c vis_tab.c #tile.c GENCSRC = vis_tab.c #tile.c
# all windowing-system-dependent .c (for dependencies and such) # all windowing-system-dependent .c (for dependencies and such)
WINCSRC = $(WINTTYSRC) $(WINX11SRC) $(WINGNOMESRC) $(WINGEMSRC) WINCSRC = $(WINTTYSRC) $(WINX11SRC) $(WINGNOMESRC) $(WINGEMSRC)
@@ -474,7 +474,7 @@ HOBJ = $(FIRSTOBJ) allmain.o alloc.o apply.o artifact.o attrib.o ball.o \
extralev.o files.o fountain.o hack.o hacklib.o invent.o light.o \ extralev.o files.o fountain.o hack.o hacklib.o invent.o light.o \
lock.o mail.o makemon.o mapglyph.o mcastu.o mhitm.o mhitu.o \ lock.o mail.o makemon.o mapglyph.o mcastu.o mhitm.o mhitu.o \
minion.o mklev.o mkmap.o \ minion.o mklev.o mkmap.o \
mkmaze.o mkobj.o mkroom.o mon.o mondata.o monmove.o monstr.o \ mkmaze.o mkobj.o mkroom.o mon.o mondata.o monmove.o \
mplayer.o mthrowu.o muse.o music.o o_init.o objnam.o options.o \ mplayer.o mthrowu.o muse.o music.o o_init.o objnam.o options.o \
pager.o pickup.o pline.o polyself.o potion.o pray.o priest.o \ pager.o pickup.o pline.o polyself.o potion.o pray.o priest.o \
quest.o questpgr.o read.o rect.o region.o restore.o rip.o rnd.o \ quest.o questpgr.o read.o rect.o region.o restore.o rip.o rnd.o \
@@ -609,9 +609,7 @@ $(MAKEDEFS): $(FIRSTOBJ) \
@( cd ../util ; $(MAKE) ../include/onames.h ) @( cd ../util ; $(MAKE) ../include/onames.h )
../include/pm.h: $(MAKEDEFS) ../include/onames.h ../include/pm.h: $(MAKEDEFS) ../include/onames.h
@( cd ../util ; $(MAKE) ../include/pm.h ) @( cd ../util ; $(MAKE) ../include/pm.h )
monstr.c: $(MAKEDEFS) ../include/pm.h ../include/vis_tab.h: $(MAKEDEFS) ../include/pm.h
@( cd ../util ; $(MAKE) ../src/monstr.c )
../include/vis_tab.h: $(MAKEDEFS) monstr.c
@( cd ../util ; $(MAKE) ../include/vis_tab.h ) @( cd ../util ; $(MAKE) ../include/vis_tab.h )
# makedefs -z makes both vis_tab.h and vis_tab.c, but writes the .h first # makedefs -z makes both vis_tab.h and vis_tab.c, but writes the .h first
vis_tab.c: ../include/vis_tab.h vis_tab.c: ../include/vis_tab.h
@@ -659,7 +657,7 @@ clean:
spotless: clean spotless: clean
-rm -f a.out core $(GAME) Sys* -rm -f a.out core $(GAME) Sys*
-rm -f ../include/date.h ../include/onames.h ../include/pm.h -rm -f ../include/date.h ../include/onames.h ../include/pm.h
-rm -f monstr.c ../include/vis_tab.h vis_tab.c tile.c *.moc -rm -f ../include/vis_tab.h vis_tab.c tile.c *.moc
-rm -f ../win/gnome/gn_rip.h -rm -f ../win/gnome/gn_rip.h
@@ -886,7 +884,6 @@ wc_chainout.o: ../win/chain/wc_chainout.c $(HACK_H)
$(CC) $(CFLAGS) -c ../win/chain/wc_chainout.c $(CC) $(CFLAGS) -c ../win/chain/wc_chainout.c
wc_trace.o: ../win/chain/wc_trace.c $(HACK_H) ../include/func_tab.h wc_trace.o: ../win/chain/wc_trace.c $(HACK_H) ../include/func_tab.h
$(CC) $(CFLAGS) -c ../win/chain/wc_trace.c $(CC) $(CFLAGS) -c ../win/chain/wc_trace.c
monstr.o: monstr.c $(CONFIG_H)
vis_tab.o: vis_tab.c $(CONFIG_H) ../include/vis_tab.h vis_tab.o: vis_tab.c $(CONFIG_H) ../include/vis_tab.h
allmain.o: allmain.c $(HACK_H) allmain.o: allmain.c $(HACK_H)
alloc.o: alloc.c $(CONFIG_H) alloc.o: alloc.c $(CONFIG_H)
+2 -4
View File
@@ -1,5 +1,5 @@
# Makefile for NetHack's utility programs. # Makefile for NetHack's utility programs.
# NetHack 3.6 Makefile.utl $NHDT-Date: 1526687364 2018/05/18 23:49:24 $ $NHDT-Branch: NetHack-3.6.2 $:$NHDT-Revision: 1.36 $ # NetHack 3.6 Makefile.utl $NHDT-Date: 1539968067 2018/10/19 16:54:27 $ $NHDT-Branch: keni-makedefsm $:$NHDT-Revision: 1.38 $
# Copyright (c) 2018 by Robert Patrick Rankin # Copyright (c) 2018 by Robert Patrick Rankin
# NetHack may be freely redistributed. See license for details. # NetHack may be freely redistributed. See license for details.
@@ -242,8 +242,6 @@ mdgreph: mdgrep.pl
./makedefs -o ./makedefs -o
../include/pm.h: makedefs ../include/pm.h: makedefs
./makedefs -p ./makedefs -p
../src/monstr.c: makedefs
./makedefs -m
../include/vis_tab.h: makedefs ../include/vis_tab.h: makedefs
./makedefs -z ./makedefs -z
# makedefs -z makes both vis_tab.h and vis_tab.c, but writes the .h first # makedefs -z makes both vis_tab.h and vis_tab.c, but writes the .h first
@@ -447,7 +445,7 @@ tileedit: tileedit.cpp $(TEXT_IO)
# ../src/foo:: # ../src/foo::
# @( cd ../src ; $(MAKE) foo ) # @( cd ../src ; $(MAKE) foo )
# would always force foo to be up-to-date according to the src Makefile # would always force foo to be up-to-date according to the src Makefile
# when it's needed here. unfortunately, some makes believe this syntax # when it's needed here. Unfortunately, some makes believe this syntax
# means foo always changes, instead of foo should always be checked. # means foo always changes, instead of foo should always be checked.
# therefore, approximate via config.h dependencies, and hope that anybody # therefore, approximate via config.h dependencies, and hope that anybody
# changing anything other than basic configuration also knows when not # changing anything other than basic configuration also knows when not
+2 -10
View File
@@ -352,7 +352,7 @@ VOBJ10 = $(O)mail.o $(O)makemon.o $(O)mapglyph.o $(O)mcastu.o
VOBJ11 = $(O)mhitm.o $(O)mhitu.o $(O)minion.o $(O)mklev.o VOBJ11 = $(O)mhitm.o $(O)mhitu.o $(O)minion.o $(O)mklev.o
VOBJ12 = $(O)mkmap.o $(O)mkmaze.o $(O)mkobj.o $(O)mkroom.o VOBJ12 = $(O)mkmap.o $(O)mkmaze.o $(O)mkobj.o $(O)mkroom.o
VOBJ13 = $(O)mon.o $(O)mondata.o $(O)monmove.o $(O)monst.o VOBJ13 = $(O)mon.o $(O)mondata.o $(O)monmove.o $(O)monst.o
VOBJ14 = $(O)monstr.o $(O)mplayer.o $(O)mthrowu.o $(O)muse.o VOBJ14 = $(O)mplayer.o $(O)mthrowu.o $(O)muse.o
VOBJ15 = $(O)music.o $(O)o_init.o $(O)objects.o $(O)objnam.o VOBJ15 = $(O)music.o $(O)o_init.o $(O)objects.o $(O)objnam.o
VOBJ16 = $(O)options.o $(O)pager.o $(O)pickup.o $(O)pline.o VOBJ16 = $(O)options.o $(O)pager.o $(O)pickup.o $(O)pline.o
VOBJ17 = $(O)polyself.o $(O)potion.o $(O)pray.o $(O)priest.o VOBJ17 = $(O)polyself.o $(O)potion.o $(O)pray.o $(O)priest.o
@@ -637,7 +637,7 @@ $(O)sp_lev.tag: $(O)utility.tag $(DAT)/bigroom.des $(DAT)/castle.des \
$(subst /,\,echo sp_levs done > $(O)sp_lev.tag) $(subst /,\,echo sp_levs done > $(O)sp_lev.tag)
$(O)utility.tag: $(INCL)/date.h $(INCL)/onames.h $(INCL)/pm.h \ $(O)utility.tag: $(INCL)/date.h $(INCL)/onames.h $(INCL)/pm.h \
$(SRC)/monstr.c $(SRC)/vis_tab.c $(U)levcomp.exe $(INCL)/vis_tab.h \ $(SRC)/vis_tab.c $(U)levcomp.exe $(INCL)/vis_tab.h \
$(U)dgncomp.exe $(TILEUTIL16) $(U)dgncomp.exe $(TILEUTIL16)
$(subst /,\,@echo utilities made >$@) $(subst /,\,@echo utilities made >$@)
@echo utilities made. @echo utilities made.
@@ -743,12 +743,6 @@ $(INCL)/onames.h : $(U)makedefs.exe
$(INCL)/pm.h : $(U)makedefs.exe $(INCL)/pm.h : $(U)makedefs.exe
$(subst /,\,$(U)makedefs -p) $(subst /,\,$(U)makedefs -p)
#$(INCL)/trap.h : $(U)makedefs.exe
# $(U)makedefs -t
$(SRC)/monstr.c: $(U)makedefs.exe
$(subst /,\,$(U)makedefs -m)
$(INCL)/vis_tab.h: $(U)makedefs.exe $(INCL)/vis_tab.h: $(U)makedefs.exe
$(subst /,\,$(U)makedefs -z) $(subst /,\,$(U)makedefs -z)
@@ -1129,7 +1123,6 @@ spotless: clean
$(subst /,\,if exist $(DAT)/water.lev del $(DAT)/water.lev) $(subst /,\,if exist $(DAT)/water.lev del $(DAT)/water.lev)
$(subst /,\,if exist $(DAT)/wizard?.lev del $(DAT)/wizard?.lev) $(subst /,\,if exist $(DAT)/wizard?.lev del $(DAT)/wizard?.lev)
$(subst /,\,if exist $(O)sp_lev.tag del $(O)sp_lev.tag) $(subst /,\,if exist $(O)sp_lev.tag del $(O)sp_lev.tag)
$(subst /,\,if exist $(SRC)/monstr.c del $(SRC)/monstr.c)
$(subst /,\,if exist $(SRC)/vis_tab.c del $(SRC)/vis_tab.c) $(subst /,\,if exist $(SRC)/vis_tab.c del $(SRC)/vis_tab.c)
$(subst /,\,if exist $(U)recover.exe del $(U)recover.exe) $(subst /,\,if exist $(U)recover.exe del $(U)recover.exe)
$(subst /,\,if exist $(DAT)/dlb.lst del $(DAT)/dlb.lst) $(subst /,\,if exist $(DAT)/dlb.lst del $(DAT)/dlb.lst)
@@ -1400,7 +1393,6 @@ $(O)qt_clust.o: ../win/Qt/qt_clust.cpp $(INCL)/qt_clust.h
$(CXX) $(CXXFLAGS) -o$@ ../win/Qt/qt_clust.cpp $(CXX) $(CXXFLAGS) -o$@ ../win/Qt/qt_clust.cpp
$(O)qttableview.o: ../win/Qt/qttableview.cpp $(INCL)/qttableview.h $(O)qttableview.o: ../win/Qt/qttableview.cpp $(INCL)/qttableview.h
$(CXX) $(CXXFLAGS) -o$@ ../win/Qt/qttableview.cpp $(CXX) $(CXXFLAGS) -o$@ ../win/Qt/qttableview.cpp
$(O)monstr.o: monstr.c $(CONFIG_H)
$(O)vis_tab.o: vis_tab.c $(CONFIG_H) $(INCL)/vis_tab.h $(O)vis_tab.o: vis_tab.c $(CONFIG_H) $(INCL)/vis_tab.h
$(O)allmain.o: allmain.c $(HACK_H) $(O)allmain.o: allmain.c $(HACK_H)
$(O)alloc.o: alloc.c $(CONFIG_H) $(O)alloc.o: alloc.c $(CONFIG_H)
+2 -10
View File
@@ -384,7 +384,7 @@ VOBJ10 = $(O)mail.o $(O)pcmain.o $(O)makemon.o $(O)mapglyph.o $(O)mcastu.
VOBJ11 = $(O)mhitm.o $(O)mhitu.o $(O)minion.o $(O)mklev.o VOBJ11 = $(O)mhitm.o $(O)mhitu.o $(O)minion.o $(O)mklev.o
VOBJ12 = $(O)mkmap.o $(O)mkmaze.o $(O)mkobj.o $(O)mkroom.o VOBJ12 = $(O)mkmap.o $(O)mkmaze.o $(O)mkobj.o $(O)mkroom.o
VOBJ13 = $(O)mon.o $(O)mondata.o $(O)monmove.o $(O)monst.o VOBJ13 = $(O)mon.o $(O)mondata.o $(O)monmove.o $(O)monst.o
VOBJ14 = $(O)monstr.o $(O)mplayer.o $(O)mthrowu.o $(O)muse.o VOBJ14 = $(O)mplayer.o $(O)mthrowu.o $(O)muse.o
VOBJ15 = $(O)music.o $(O)o_init.o $(O)objects.o $(O)objnam.o VOBJ15 = $(O)music.o $(O)o_init.o $(O)objects.o $(O)objnam.o
VOBJ16 = $(O)options.o $(O)pager.o $(O)pickup.o $(O)pline.o VOBJ16 = $(O)options.o $(O)pager.o $(O)pickup.o $(O)pline.o
VOBJ17 = $(O)polyself.o $(O)potion.o $(O)pray.o $(O)priest.o VOBJ17 = $(O)polyself.o $(O)potion.o $(O)pray.o $(O)priest.o
@@ -638,7 +638,7 @@ $(O)sp_lev.tag: $(O)utility.tag $(DAT)\bigroom.des $(DAT)\castle.des \
echo sp_levs done > $(O)sp_lev.tag echo sp_levs done > $(O)sp_lev.tag
$(O)utility.tag: $(INCL)\date.h $(INCL)\onames.h $(INCL)\pm.h \ $(O)utility.tag: $(INCL)\date.h $(INCL)\onames.h $(INCL)\pm.h \
$(SRC)\monstr.c $(SRC)\vis_tab.c \ $(SRC)\vis_tab.c \
$(U)levcomp.exe $(INCL)\vis_tab.h \ $(U)levcomp.exe $(INCL)\vis_tab.h \
$(U)dgncomp.exe $(TILEUTIL16) $(U)dgncomp.exe $(TILEUTIL16)
@echo utilities made >$@ @echo utilities made >$@
@@ -839,12 +839,6 @@ $(INCL)\onames.h : $(U)makedefs.exe
$(INCL)\pm.h : $(U)makedefs.exe $(INCL)\pm.h : $(U)makedefs.exe
$(U)makedefs -p $(U)makedefs -p
#$(INCL)\trap.h : $(U)makedefs.exe
# $(U)makedefs -t
$(SRC)\monstr.c: $(U)makedefs.exe
$(U)makedefs -m
$(INCL)\vis_tab.h: $(U)makedefs.exe $(INCL)\vis_tab.h: $(U)makedefs.exe
$(U)makedefs -z $(U)makedefs -z
@@ -1234,7 +1228,6 @@ spotless: clean
if exist $(DAT)\dlb.lst del $(DAT)\dlb.lst if exist $(DAT)\dlb.lst del $(DAT)\dlb.lst
if exist $(DAT)\porthelp del $(DAT)\porthelp if exist $(DAT)\porthelp del $(DAT)\porthelp
if exist $(O)sp_lev.tag del $(O)sp_lev.tag if exist $(O)sp_lev.tag del $(O)sp_lev.tag
if exist $(SRC)\monstr.c del $(SRC)\monstr.c
if exist $(SRC)\vis_tab.c del $(SRC)\vis_tab.c if exist $(SRC)\vis_tab.c del $(SRC)\vis_tab.c
if exist nhdat. del nhdat. if exist nhdat. del nhdat.
if exist $(O)obj.tag del $(O)obj.tag if exist $(O)obj.tag del $(O)obj.tag
@@ -1520,7 +1513,6 @@ $(O)wc_chainout.o: ..\win\chain\wc_chainout.c $(HACK_H)
@$(cc) $(cflagsBuild) -Fo$@ ..\win\chain\wc_chainout.c @$(cc) $(cflagsBuild) -Fo$@ ..\win\chain\wc_chainout.c
$(O)wc_trace.o: ..\win\chain\wc_trace.c $(HACK_H) $(INCL)\func_tab.h $(O)wc_trace.o: ..\win\chain\wc_trace.c $(HACK_H) $(INCL)\func_tab.h
@$(cc) $(cflagsBuild) -Fo$@ ..\win\chain\wc_trace.c @$(cc) $(cflagsBuild) -Fo$@ ..\win\chain\wc_trace.c
$(O)monstr.o: monstr.c $(CONFIG_H)
$(O)vis_tab.o: vis_tab.c $(CONFIG_H) $(INCL)\vis_tab.h $(O)vis_tab.o: vis_tab.c $(CONFIG_H) $(INCL)\vis_tab.h
$(O)allmain.o: allmain.c $(HACK_H) $(O)allmain.o: allmain.c $(HACK_H)
$(O)alloc.o: alloc.c $(CONFIG_H) $(O)alloc.o: alloc.c $(CONFIG_H)
+22 -92
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 makedefs.c $NHDT-Date: 1520022901 2018/03/02 20:35:01 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.121 $ */ /* NetHack 3.6 makedefs.c $NHDT-Date: 1539804926 2018/10/17 19:35:26 $ $NHDT-Branch: keni-makedefsm $:$NHDT-Revision: 1.126 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Kenneth Lorber, Kensington, Maryland, 2015. */ /*-Copyright (c) Kenneth Lorber, Kensington, Maryland, 2015. */
/* Copyright (c) M. Stephenson, 1990, 1991. */ /* Copyright (c) M. Stephenson, 1990, 1991. */
@@ -183,8 +183,6 @@ static boolean FDECL(get_gitinfo, (char *, char *));
static void FDECL(do_rnd_access_file, (const char *)); static void FDECL(do_rnd_access_file, (const char *));
static boolean FDECL(d_filter, (char *)); static boolean FDECL(d_filter, (char *));
static boolean FDECL(h_filter, (char *)); static boolean FDECL(h_filter, (char *));
static boolean FDECL(ranged_attk, (struct permonst *));
static int FDECL(mstrength, (struct permonst *));
static void NDECL(build_savebones_compat_string); static void NDECL(build_savebones_compat_string);
static void NDECL(windowing_sanity); static void NDECL(windowing_sanity);
@@ -2197,89 +2195,18 @@ do_dungeon()
return; return;
} }
static boolean
ranged_attk(ptr) /* returns TRUE if monster can attack at range */
register struct permonst *ptr;
{
register int i, j;
register int atk_mask = (1 << AT_BREA) | (1 << AT_SPIT) | (1 << AT_GAZE);
for (i = 0; i < NATTK; i++) {
if ((j = ptr->mattk[i].aatyp) >= AT_WEAP || (atk_mask & (1 << j)))
return TRUE;
}
return FALSE;
}
/* This routine is designed to return an integer value which represents
* an approximation of monster strength. It uses a similar method of
* determination as "experience()" to arrive at the strength.
*/
static int
mstrength(ptr)
struct permonst *ptr;
{
int i, tmp2, n, tmp = ptr->mlevel;
if (tmp > 49) /* special fixed hp monster */
tmp = 2 * (tmp - 6) / 4;
/* For creation in groups */
n = (!!(ptr->geno & G_SGROUP));
n += (!!(ptr->geno & G_LGROUP)) << 1;
/* For ranged attacks */
if (ranged_attk(ptr))
n++;
/* For higher ac values */
n += (ptr->ac < 4);
n += (ptr->ac < 0);
/* For very fast monsters */
n += (ptr->mmove >= 18);
/* For each attack and "special" attack */
for (i = 0; i < NATTK; i++) {
tmp2 = ptr->mattk[i].aatyp;
n += (tmp2 > 0);
n += (tmp2 == AT_MAGC);
n += (tmp2 == AT_WEAP && (ptr->mflags2 & M2_STRONG));
}
/* For each "special" damage type */
for (i = 0; i < NATTK; i++) {
tmp2 = ptr->mattk[i].adtyp;
if ((tmp2 == AD_DRLI) || (tmp2 == AD_STON) || (tmp2 == AD_DRST)
|| (tmp2 == AD_DRDX) || (tmp2 == AD_DRCO) || (tmp2 == AD_WERE))
n += 2;
else if (strcmp(ptr->mname, "grid bug"))
n += (tmp2 != AD_PHYS);
n += ((int) (ptr->mattk[i].damd * ptr->mattk[i].damn) > 23);
}
/* Leprechauns are special cases. They have many hit dice so they can
hit and are hard to kill, but they don't really do much damage. */
if (!strcmp(ptr->mname, "leprechaun"))
n -= 2;
/* Finally, adjust the monster level 0 <= n <= 24 (approx.) */
if (n == 0)
tmp--;
else if (n >= 6)
tmp += (n / 2);
else
tmp += (n / 3 + 1);
return (tmp >= 0) ? tmp : 0;
}
void void
do_monstr() do_monstr()
{ {
register struct permonst *ptr; /* Don't break anything for ports that haven't been updated. */
register int i, j; printf("DEPRECATION WARNINGS:\n");
printf("'makedefs -m' is deprecated. Remove all references\n");
printf(" to it from the build process.\n");
printf("'monstr.c' is deprecated. Remove all references to\n");
printf(" it from the build process.\n");
printf("monstr[] is deprecated. Replace monstr[x] with\n");
printf(" mons[x].difficulty\n");
printf("monstr_init() is deprecated. Remove all references to it.\n");
/* /*
* create the source file, "monstr.c" * create the source file, "monstr.c"
@@ -2295,15 +2222,18 @@ do_monstr()
} }
Fprintf(ofp, "%s", Dont_Edit_Code); Fprintf(ofp, "%s", Dont_Edit_Code);
Fprintf(ofp, "#include \"config.h\"\n"); Fprintf(ofp, "#include \"config.h\"\n");
Fprintf(ofp, "\nconst int monstr[] = {\n"); Fprintf(ofp, "\nconst int monstrXXX[] = {\n");
for (ptr = &mons[0], j = 0; ptr->mlet; ptr++) { Fprintf(ofp, "0};\n");
SpinCursor(3); Fprintf(ofp, "/*\n");
Fprintf(ofp, "DEPRECATION WARNINGS:\n");
i = mstrength(ptr); Fprintf(ofp, "'makedefs -m' is deprecated. Remove all references\n");
Fprintf(ofp, "%2d,%c", i, (++j & 15) ? ' ' : '\n'); Fprintf(ofp, " to it from the build process.\n");
} Fprintf(ofp, "'monstr.c' is deprecated. Remove all references to\n");
/* might want to insert a final 0 entry here instead of just newline */ Fprintf(ofp, " it from the build process.\n");
Fprintf(ofp, "%s};\n", (j & 15) ? "\n" : ""); Fprintf(ofp, "monstr[] is deprecated. Replace monstr[x] with\n");
Fprintf(ofp, " mons[x].difficulty\n");
Fprintf(ofp, "monstr_init() is deprecated. Remove all references to it.\n");
Fprintf(ofp, "*/\n");
Fprintf(ofp, "\nvoid NDECL(monstr_init);\n"); Fprintf(ofp, "\nvoid NDECL(monstr_init);\n");
Fprintf(ofp, "\nvoid\n"); Fprintf(ofp, "\nvoid\n");
+62 -58
View File
@@ -100,6 +100,10 @@ NetHack*highlight_prompt: False
! has a lot of popups and is almost unplayable without some kind of autofocus. ! has a lot of popups and is almost unplayable without some kind of autofocus.
!NetHack*autofocus: True !NetHack*autofocus: True
! !
! True, use a "fancy" style status area vs. TTY-style status lines
!NetHack*fancy_status: False
! Specify the number of rows and columns of the map window. The default ! Specify the number of rows and columns of the map window. The default
! is the standard 80x21 window. Note: this _does_not_ change nethack's ! is the standard 80x21 window. Note: this _does_not_ change nethack's
! level size, only what you see of it. ! level size, only what you see of it.
@@ -170,80 +174,80 @@ NetHack*player_selection_dialog*play.cornerRoundPercent: NETHACK_BTN_ROUND
! role selection window (OPTIONS=player_selection:prompts) ! role selection window (OPTIONS=player_selection:prompts)
NetHack*player_selection*random.foreground: NETHACK_CLR_RANDOM NetHack*player_selection*btn_random.foreground: NETHACK_CLR_RANDOM
NetHack*player_selection*random.background: black NetHack*player_selection*btn_random.background: black
NetHack*player_selection*random.borderColor: NETHACK_CLR_RANDOM NetHack*player_selection*btn_random.borderColor: NETHACK_CLR_RANDOM
NetHack*player_selection*random.borderWidth: 1 NetHack*player_selection*btn_random.borderWidth: 1
NetHack*player_selection*random.shapeStyle: NETHACK_BTN_SHAPE NetHack*player_selection*btn_random.shapeStyle: NETHACK_BTN_SHAPE
NetHack*player_selection*random.cornerRoundPercent: NETHACK_BTN_ROUND NetHack*player_selection*btn_random.cornerRoundPercent: NETHACK_BTN_ROUND
NetHack*player_selection*quit.foreground: NETHACK_CLR_QUIT NetHack*player_selection*btn_quit.foreground: NETHACK_CLR_QUIT
NetHack*player_selection*quit.borderColor: NETHACK_CLR_QUIT NetHack*player_selection*btn_quit.borderColor: NETHACK_CLR_QUIT
NetHack*player_selection*quit.borderWidth: 1 NetHack*player_selection*btn_quit.borderWidth: 1
NetHack*player_selection*quit.shapeStyle: NETHACK_BTN_SHAPE NetHack*player_selection*btn_quit.shapeStyle: NETHACK_BTN_SHAPE
NetHack*player_selection*quit.cornerRoundPercent: NETHACK_BTN_ROUND NetHack*player_selection*btn_quit.cornerRoundPercent: NETHACK_BTN_ROUND
NetHack*player_selection*Command.foreground: NETHACK_CLR_FG NetHack*player_selection*Command.foreground: NETHACK_CLR_FG
NetHack*player_selection*Command.borderColor: NETHACK_CLR_FG NetHack*player_selection*Command.borderColor: NETHACK_CLR_FG
NetHack*player_selection*Command.borderWidth: NETHACK_CMD_BORDER NetHack*player_selection*Command.borderWidth: NETHACK_CMD_BORDER
! race selection window ! race selection window
NetHack*race_selection*random.foreground: NETHACK_CLR_RANDOM NetHack*race_selection*btn_random.foreground: NETHACK_CLR_RANDOM
NetHack*race_selection*random.background: black NetHack*race_selection*btn_random.background: black
NetHack*race_selection*random.borderColor: NETHACK_CLR_RANDOM NetHack*race_selection*btn_random.borderColor: NETHACK_CLR_RANDOM
NetHack*race_selection*random.borderWidth: 1 NetHack*race_selection*btn_random.borderWidth: 1
NetHack*race_selection*random.shapeStyle: NETHACK_BTN_SHAPE NetHack*race_selection*btn_random.shapeStyle: NETHACK_BTN_SHAPE
NetHack*race_selection*random.cornerRoundPercent: NETHACK_BTN_ROUND NetHack*race_selection*btn_random.cornerRoundPercent: NETHACK_BTN_ROUND
NetHack*race_selection*quit.foreground: NETHACK_CLR_QUIT NetHack*race_selection*btn_quit.foreground: NETHACK_CLR_QUIT
NetHack*race_selection*quit.borderColor: NETHACK_CLR_QUIT NetHack*race_selection*btn_quit.borderColor: NETHACK_CLR_QUIT
NetHack*race_selection*quit.borderWidth: 1 NetHack*race_selection*btn_quit.borderWidth: 1
NetHack*race_selection*quit.shapeStyle: NETHACK_BTN_SHAPE NetHack*race_selection*btn_quit.shapeStyle: NETHACK_BTN_SHAPE
NetHack*race_selection*quit.cornerRoundPercent: NETHACK_BTN_ROUND NetHack*race_selection*btn_quit.cornerRoundPercent: NETHACK_BTN_ROUND
NetHack*race_selection*Command.foreground: NETHACK_CLR_FG NetHack*race_selection*Command.foreground: NETHACK_CLR_FG
NetHack*race_selection*Command.borderColor: NETHACK_CLR_FG NetHack*race_selection*Command.borderColor: NETHACK_CLR_FG
NetHack*race_selection*Command.borderWidth: NETHACK_CMD_BORDER NetHack*race_selection*Command.borderWidth: NETHACK_CMD_BORDER
! gender selection window ! gender selection window
NetHack*gender_selection*random.foreground: NETHACK_CLR_RANDOM NetHack*gender_selection*btn_random.foreground: NETHACK_CLR_RANDOM
NetHack*gender_selection*random.background: black NetHack*gender_selection*btn_random.background: black
NetHack*gender_selection*random.borderColor: NETHACK_CLR_RANDOM NetHack*gender_selection*btn_random.borderColor: NETHACK_CLR_RANDOM
NetHack*gender_selection*random.borderWidth: 1 NetHack*gender_selection*btn_random.borderWidth: 1
NetHack*gender_selection*random.shapeStyle: NETHACK_BTN_SHAPE NetHack*gender_selection*btn_random.shapeStyle: NETHACK_BTN_SHAPE
NetHack*gender_selection*random.cornerRoundPercent: NETHACK_BTN_ROUND NetHack*gender_selection*btn_random.cornerRoundPercent: NETHACK_BTN_ROUND
NetHack*gender_selection*quit.foreground: NETHACK_CLR_QUIT NetHack*gender_selection*btn_quit.foreground: NETHACK_CLR_QUIT
NetHack*gender_selection*quit.borderColor: NETHACK_CLR_QUIT NetHack*gender_selection*btn_quit.borderColor: NETHACK_CLR_QUIT
NetHack*gender_selection*quit.borderWidth: 1 NetHack*gender_selection*btn_quit.borderWidth: 1
NetHack*gender_selection*quit.shapeStyle: NETHACK_BTN_SHAPE NetHack*gender_selection*btn_quit.shapeStyle: NETHACK_BTN_SHAPE
NetHack*gender_selection*quit.cornerRoundPercent: NETHACK_BTN_ROUND NetHack*gender_selection*btn_quit.cornerRoundPercent: NETHACK_BTN_ROUND
NetHack*gender_selection*Command.foreground: NETHACK_CLR_FG NetHack*gender_selection*Command.foreground: NETHACK_CLR_FG
NetHack*gender_selection*Command.borderColor: NETHACK_CLR_FG NetHack*gender_selection*Command.borderColor: NETHACK_CLR_FG
NetHack*gender_selection*Command.borderWidth: NETHACK_CMD_BORDER NetHack*gender_selection*Command.borderWidth: NETHACK_CMD_BORDER
! alignment selection window ! alignment selection window
NetHack*alignment_selection*random.foreground: NETHACK_CLR_RANDOM NetHack*alignment_selection*btn_random.foreground: NETHACK_CLR_RANDOM
NetHack*alignment_selection*random.background: black NetHack*alignment_selection*btn_random.background: black
NetHack*alignment_selection*random.borderColor: NETHACK_CLR_RANDOM NetHack*alignment_selection*btn_random.borderColor: NETHACK_CLR_RANDOM
NetHack*alignment_selection*random.borderWidth: 1 NetHack*alignment_selection*btn_random.borderWidth: 1
NetHack*alignment_selection*random.shapeStyle: NETHACK_BTN_SHAPE NetHack*alignment_selection*btn_random.shapeStyle: NETHACK_BTN_SHAPE
NetHack*alignment_selection*random.cornerRoundPercent: NETHACK_BTN_ROUND NetHack*alignment_selection*btn_random.cornerRoundPercent: NETHACK_BTN_ROUND
NetHack*alignment_selection*quit.foreground: NETHACK_CLR_QUIT NetHack*alignment_selection*btn_quit.foreground: NETHACK_CLR_QUIT
NetHack*alignment_selection*quit.borderColor: NETHACK_CLR_QUIT NetHack*alignment_selection*btn_quit.borderColor: NETHACK_CLR_QUIT
NetHack*alignment_selection*quit.borderWidth: 1 NetHack*alignment_selection*btn_quit.borderWidth: 1
NetHack*alignment_selection*quit.shapeStyle: NETHACK_BTN_SHAPE NetHack*alignment_selection*btn_quit.shapeStyle: NETHACK_BTN_SHAPE
NetHack*alignment_selection*quit.cornerRoundPercent: NETHACK_BTN_ROUND NetHack*alignment_selection*btn_quit.cornerRoundPercent: NETHACK_BTN_ROUND
NetHack*alignment_selection*Command.foreground: NETHACK_CLR_FG NetHack*alignment_selection*Command.foreground: NETHACK_CLR_FG
NetHack*alignment_selection*Command.borderColor: NETHACK_CLR_FG NetHack*alignment_selection*Command.borderColor: NETHACK_CLR_FG
NetHack*alignment_selection*Command.borderWidth: NETHACK_CMD_BORDER NetHack*alignment_selection*Command.borderWidth: NETHACK_CMD_BORDER
! extended commands window ! extended commands window
NetHack*extended_commands*dismiss.foreground: NETHACK_CLR_QUIT NetHack*extended_commands*btn_dismiss.foreground: NETHACK_CLR_QUIT
NetHack*extended_commands*dismiss.borderColor: NETHACK_CLR_QUIT NetHack*extended_commands*btn_dismiss.borderColor: NETHACK_CLR_QUIT
NetHack*extended_commands*dismiss.borderWidth: 1 NetHack*extended_commands*btn_dismiss.borderWidth: 1
NetHack*extended_commands*dismiss.shapeStyle: NETHACK_BTN_SHAPE NetHack*extended_commands*btn_dismiss.shapeStyle: NETHACK_BTN_SHAPE
NetHack*extended_commands*dismiss.cornerRoundPercent: NETHACK_BTN_ROUND NetHack*extended_commands*btn_dismiss.cornerRoundPercent: NETHACK_BTN_ROUND
NetHack*extended_commands*help.foreground: NETHACK_CLR_HELP NetHack*extended_commands*btn_help.foreground: NETHACK_CLR_HELP
NetHack*extended_commands*help.borderColor: NETHACK_CLR_HELP NetHack*extended_commands*btn_help.borderColor: NETHACK_CLR_HELP
NetHack*extended_commands*help.borderWidth: 1 NetHack*extended_commands*btn_help.borderWidth: 1
NetHack*extended_commands*help.shapeStyle: NETHACK_BTN_SHAPE NetHack*extended_commands*btn_help.shapeStyle: NETHACK_BTN_SHAPE
NetHack*extended_commands*help.cornerRoundPercent: NETHACK_BTN_ROUND NetHack*extended_commands*btn_help.cornerRoundPercent: NETHACK_BTN_ROUND
NetHack*extended_commands*Command.foreground: NETHACK_CLR_FG NetHack*extended_commands*Command.foreground: NETHACK_CLR_FG
NetHack*extended_commands*Command.borderColor: NETHACK_CLR_FG NetHack*extended_commands*Command.borderColor: NETHACK_CLR_FG
NetHack*extended_commands*Command.borderWidth: NETHACK_CMD_BORDER NetHack*extended_commands*Command.borderWidth: NETHACK_CMD_BORDER
@@ -302,13 +306,13 @@ NetHack*map*green: green3
NetHack*map*brown: DarkOrange3 NetHack*map*brown: DarkOrange3
NetHack*map*blue: blue3 NetHack*map*blue: blue3
NetHack*map*magenta: magenta3 NetHack*map*magenta: magenta3
NetHack*map*cyan: cyan3 NetHack*map*cyan: Dark cyan
NetHack*map*gray: gray50 NetHack*map*gray: gray50
NetHack*map*orange: yellow NetHack*map*orange: orange
NetHack*map*bright_green: green NetHack*map*bright_green: green
NetHack*map*yellow: yellow NetHack*map*yellow: yellow
NetHack*map*bright_blue: blue NetHack*map*bright_blue: Royal blue
NetHack*map*bright_magenta: magenta NetHack*map*bright_magenta: Fuchsia
NetHack*map*bright_cyan: cyan NetHack*map*bright_cyan: cyan
NetHack*map*white: white NetHack*map*white: white
! !
+179 -6
View File
@@ -49,6 +49,7 @@
#include "hack.h" #include "hack.h"
#include "winX.h" #include "winX.h"
#include "dlb.h" #include "dlb.h"
#include "xwindow.h"
#ifndef NO_SIGNAL #ifndef NO_SIGNAL
#include <signal.h> #include <signal.h>
@@ -103,7 +104,7 @@ struct window_procs X11_procs = {
(WC_COLOR | WC_HILITE_PET | WC_ASCII_MAP | WC_TILED_MAP (WC_COLOR | WC_HILITE_PET | WC_ASCII_MAP | WC_TILED_MAP
| WC_PLAYER_SELECTION | WC_PERM_INVENT | WC_MOUSE_SUPPORT), | WC_PLAYER_SELECTION | WC_PERM_INVENT | WC_MOUSE_SUPPORT),
#if defined(STATUS_HILITES) #if defined(STATUS_HILITES)
WC2_FLUSH_STATUS | WC2_RESET_STATUS | WC2_FLUSH_STATUS | WC2_RESET_STATUS | WC2_HILITE_STATUS |
#endif #endif
0L, 0L,
X11_init_nhwindows, X11_init_nhwindows,
@@ -133,9 +134,9 @@ struct window_procs X11_procs = {
#else #else
genl_outrip, genl_outrip,
#endif #endif
X11_preference_update, genl_getmsghistory, genl_putmsghistory, X11_preference_update, X11_getmsghistory, X11_putmsghistory,
genl_status_init, genl_status_finish, genl_status_enablefield, X11_status_init, X11_status_finish, X11_status_enablefield,
genl_status_update, X11_status_update,
genl_can_suspend_no, /* XXX may not always be correct */ genl_can_suspend_no, /* XXX may not always be correct */
}; };
@@ -181,6 +182,43 @@ static winid message_win = WIN_ERR, /* These are the winids of the message, */
status_win = WIN_ERR; /* are created in init_windows(). */ status_win = WIN_ERR; /* are created in init_windows(). */
static Pixmap icon_pixmap = None; /* Pixmap for icon. */ static Pixmap icon_pixmap = None; /* Pixmap for icon. */
void
X11_putmsghistory(msg, is_restoring)
const char *msg;
boolean is_restoring;
{
if (WIN_MESSAGE != WIN_ERR) {
struct xwindow *wp = &window_list[WIN_MESSAGE];
debugpline2("X11_putmsghistory('%s',%i)", msg, is_restoring);
if (msg)
append_message(wp, msg);
}
}
char *
X11_getmsghistory(init)
boolean init;
{
if (WIN_MESSAGE != WIN_ERR) {
static struct line_element *curr = (struct line_element *) 0;
static int numlines = 0;
struct xwindow *wp = &window_list[WIN_MESSAGE];
if (!curr) {
curr = wp->mesg_information->head;
numlines = 0;
}
if (numlines < wp->mesg_information->num_lines) {
curr = curr->next;
numlines++;
debugpline2("X11_getmsghistory(%i)='%s'", init, curr->line);
return curr->line;
}
}
return (char *) 0;
}
/* /*
* Find the window structure that corresponds to the given widget. Note * Find the window structure that corresponds to the given widget. Note
* that this is not the popup widget, nor the viewport, but the child. * that this is not the popup widget, nor the viewport, but the child.
@@ -226,6 +264,102 @@ find_free_window()
return (winid) windex; return (winid) windex;
} }
XColor
get_nhcolor(wp, clr)
struct xwindow *wp;
int clr;
{
init_menu_nhcolors(wp);
/* FIXME: init_menu_nhcolors may fail */
if (clr >= 0 && clr < CLR_MAX)
return wp->nh_colors[clr];
return wp->nh_colors[0];
}
void
init_menu_nhcolors(wp)
struct xwindow *wp;
{
static const char *mapCLR_to_res[CLR_MAX] = {
XtNblack,
XtNred,
XtNgreen,
XtNbrown,
XtNblue,
XtNmagenta,
XtNcyan,
XtNgray,
XtNforeground,
XtNorange,
XtNbright_green,
XtNyellow,
XtNbright_blue,
XtNbright_magenta,
XtNbright_cyan,
XtNwhite,
};
Display *dpy;
Colormap screen_colormap;
XrmDatabase rDB;
XrmValue value;
Status rc;
int color;
char *ret_type[32];
char clr_name[BUFSZ];
char clrclass[BUFSZ];
const char *wintypenames[NHW_TEXT] = {
"message", "status", "map", "menu", "text"
};
const char *wtn;
char wtn_up[BUFSZ];
if (wp->nh_colors_inited || !wp->type)
return;
wtn = wintypenames[wp->type - 1];
Strcpy(wtn_up, wtn);
(void) upstart(wtn_up);
dpy = XtDisplay(wp->w);
screen_colormap = DefaultColormap(dpy, DefaultScreen(dpy));
rDB = XrmGetDatabase(dpy);
for (color = 0; color < CLR_MAX; color++) {
Sprintf(clr_name, "nethack.%s.%s", wtn, mapCLR_to_res[color]);
Sprintf(clrclass, "NetHack.%s.%s", wtn_up, mapCLR_to_res[color]);
if (!XrmGetResource(rDB, clr_name, clrclass, ret_type, &value)) {
Sprintf(clr_name, "nethack.map.%s", mapCLR_to_res[color]);
Sprintf(clrclass, "NetHack.Map.%s", mapCLR_to_res[color]);
}
if (!XrmGetResource(rDB, clr_name, clrclass, ret_type, &value)) {
impossible("XrmGetResource error (%s)", clr_name);
} else if (!strcmp(ret_type[0], "String")) {
char tmpbuf[256];
if (value.size >= sizeof tmpbuf)
value.size = sizeof tmpbuf - 1;
(void) strncpy(tmpbuf, (char *) value.addr, (int) value.size);
tmpbuf[value.size] = '\0';
/* tmpbuf now contains the color name from the named resource */
rc = XAllocNamedColor(dpy, screen_colormap, tmpbuf,
&wp->nh_colors[color],
&wp->nh_colors[color]);
if (rc == 0) {
impossible("XAllocNamedColor failed for color %i (%s)",
color, clr_name);
}
}
}
wp->nh_colors_inited = TRUE;
}
/* /*
* Color conversion. The default X11 color converters don't try very * Color conversion. The default X11 color converters don't try very
* hard to find matching colors in PseudoColor visuals. If they can't * hard to find matching colors in PseudoColor visuals. If they can't
@@ -515,6 +649,31 @@ const char *fontname;
return buf; return buf;
} }
void
load_boldfont(wp, w)
struct xwindow *wp;
Widget w;
{
Arg args[1];
XFontStruct *fs;
unsigned long ret;
char *fontname;
Display *dpy;
if (wp->boldfs)
return;
XtSetArg(args[0], nhStr(XtNfont), &fs);
XtGetValues(w, args, 1);
if (!XGetFontProperty(fs, XA_FONT, &ret))
return;
wp->boldfs_dpy = dpy = XtDisplay(w);
fontname = fontname_boldify(XGetAtomName(dpy, (Atom)ret));
wp->boldfs = XLoadQueryFont(dpy, fontname);
}
#ifdef TEXTCOLOR #ifdef TEXTCOLOR
/* ARGSUSED */ /* ARGSUSED */
static void static void
@@ -790,9 +949,11 @@ const char *str;
toplines[TBUFSZ - 1] = 0; toplines[TBUFSZ - 1] = 0;
append_message(wp, str); append_message(wp, str);
break; break;
#ifndef STATUS_HILITES
case NHW_STATUS: case NHW_STATUS:
adjust_status(wp, str); adjust_status(wp, str);
break; break;
#endif
case NHW_MAP: case NHW_MAP:
impossible("putstr: called on map window \"%s\"", str); impossible("putstr: called on map window \"%s\"", str);
break; break;
@@ -913,6 +1074,9 @@ int type;
wp->prevx = wp->prevy = wp->cursx = wp->cursy = wp->pixel_width = wp->prevx = wp->prevy = wp->cursx = wp->cursy = wp->pixel_width =
wp->pixel_height = 0; wp->pixel_height = 0;
wp->keep_window = FALSE; wp->keep_window = FALSE;
wp->nh_colors_inited = FALSE;
wp->boldfs = (XFontStruct *) 0;
wp->boldfs_dpy = (Display *) 0;
switch (type) { switch (type) {
case NHW_MAP: case NHW_MAP:
@@ -1057,6 +1221,12 @@ winid window;
WIN_INVEN = WIN_ERR; WIN_INVEN = WIN_ERR;
} }
if (wp->boldfs) {
XFreeFont(wp->boldfs_dpy, wp->boldfs);
wp->boldfs = (XFontStruct *) 0;
wp->boldfs_dpy = (Display *) 0;
}
switch (wp->type) { switch (wp->type) {
case NHW_MAP: case NHW_MAP:
destroy_map_window(wp); destroy_map_window(wp);
@@ -1230,6 +1400,8 @@ static XtActionsRec actions[] = {
static XtResource resources[] = { static XtResource resources[] = {
{ nhStr("slow"), nhStr("Slow"), XtRBoolean, sizeof(Boolean), { nhStr("slow"), nhStr("Slow"), XtRBoolean, sizeof(Boolean),
XtOffset(AppResources *, slow), XtRString, nhStr("True") }, XtOffset(AppResources *, slow), XtRString, nhStr("True") },
{ nhStr("fancy_status"), nhStr("Fancy_status"), XtRBoolean, sizeof(Boolean),
XtOffset(AppResources *, fancy_status), XtRString, nhStr("True") },
{ nhStr("autofocus"), nhStr("AutoFocus"), XtRBoolean, sizeof(Boolean), { nhStr("autofocus"), nhStr("AutoFocus"), XtRBoolean, sizeof(Boolean),
XtOffset(AppResources *, autofocus), XtRString, nhStr("False") }, XtOffset(AppResources *, autofocus), XtRString, nhStr("False") },
{ nhStr("message_line"), nhStr("Message_line"), XtRBoolean, { nhStr("message_line"), nhStr("Message_line"), XtRBoolean,
@@ -2214,7 +2386,7 @@ static int
input_event(exit_condition) input_event(exit_condition)
int exit_condition; int exit_condition;
{ {
if (WIN_STATUS != WIN_ERR) /* hilighting on the fancy status window */ if (appResources.fancy_status && WIN_STATUS != WIN_ERR) /* hilighting on the fancy status window */
check_turn_events(); check_turn_events();
if (WIN_MAP != WIN_ERR) /* make sure cursor is not clipped */ if (WIN_MAP != WIN_ERR) /* make sure cursor is not clipped */
check_cursor_visibility(&window_list[WIN_MAP]); check_cursor_visibility(&window_list[WIN_MAP]);
@@ -2484,7 +2656,8 @@ init_standard_windows()
* after the fancy status widget is realized (above, with the game popup), * after the fancy status widget is realized (above, with the game popup),
* but before it is popped up. * but before it is popped up.
*/ */
null_out_status(); if (appResources.fancy_status)
null_out_status();
/* /*
* Set the map size to its standard size. As with the message window * Set the map size to its standard size. As with the message window
* above, the map window needs to be set to its constrained size until * above, the map window needs to be set to its constrained size until
+2 -120
View File
@@ -32,12 +32,9 @@
#undef PRESERVE_NO_SYSV #undef PRESERVE_NO_SYSV
#endif #endif
#include "xwindow.h"
#include "hack.h" #include "hack.h"
#include "winX.h" #include "winX.h"
XColor FDECL(get_nhcolor, (struct xwindow *, int));
static void FDECL(init_menu_nhcolors, (struct xwindow *));
static void FDECL(menu_size_change_handler, (Widget, XtPointer, static void FDECL(menu_size_change_handler, (Widget, XtPointer,
XEvent *, Boolean *)); XEvent *, Boolean *));
static void FDECL(menu_select, (Widget, XtPointer, XtPointer)); static void FDECL(menu_select, (Widget, XtPointer, XtPointer));
@@ -55,7 +52,6 @@ static void FDECL(invert_all, (struct xwindow *));
static void FDECL(invert_match, (struct xwindow *, char *)); static void FDECL(invert_match, (struct xwindow *, char *));
static void FDECL(menu_popdown, (struct xwindow *)); static void FDECL(menu_popdown, (struct xwindow *));
static Widget FDECL(menu_create_buttons, (struct xwindow *, Widget, Widget)); static Widget FDECL(menu_create_buttons, (struct xwindow *, Widget, Widget));
static void FDECL(load_boldfont, (struct xwindow *, Widget));
static void FDECL(menu_create_entries, (struct xwindow *, struct menu *)); static void FDECL(menu_create_entries, (struct xwindow *, struct menu *));
static void FDECL(destroy_menu_entry_widgets, (struct xwindow *)); static void FDECL(destroy_menu_entry_widgets, (struct xwindow *));
static void NDECL(create_menu_translation_tables); static void NDECL(create_menu_translation_tables);
@@ -1121,31 +1117,6 @@ Widget form,under;
return all; return all;
} }
static void
load_boldfont(wp, w)
struct xwindow *wp;
Widget w;
{
Arg args[1];
XFontStruct *fs;
unsigned long ret;
char *fontname;
Display *dpy;
if (wp->menu_information->boldfs)
return;
XtSetArg(args[0], nhStr(XtNfont), &fs);
XtGetValues(w, args, 1);
if (!XGetFontProperty(fs, XA_FONT, &ret))
return;
wp->menu_information->boldfs_dpy = dpy = XtDisplay(w);
fontname = fontname_boldify(XGetAtomName(dpy, (Atom)ret));
wp->menu_information->boldfs = XLoadQueryFont(dpy, fontname);
}
static void static void
menu_create_entries(wp, curr_menu) menu_create_entries(wp, curr_menu)
struct xwindow *wp; struct xwindow *wp;
@@ -1185,7 +1156,7 @@ struct menu *curr_menu;
get_nhcolor(wp, color).pixel); num_args++; get_nhcolor(wp, color).pixel); num_args++;
} }
/* TODO: ATR_BOLD, ATR_DIM, ATR_ULINE, ATR_BLINK */ /* TODO: ATR_DIM, ATR_ULINE, ATR_BLINK */
if (attr == ATR_INVERSE) { if (attr == ATR_INVERSE) {
XtSetArg(args[num_args], nhStr(XtNforeground), XtSetArg(args[num_args], nhStr(XtNforeground),
@@ -1215,7 +1186,7 @@ struct menu *curr_menu;
load_boldfont(wp, curr->w); load_boldfont(wp, curr->w);
num_args = 0; num_args = 0;
XtSetArg(args[num_args], nhStr(XtNfont), XtSetArg(args[num_args], nhStr(XtNfont),
wp->menu_information->boldfs); num_args++; wp->boldfs); num_args++;
XtSetValues(curr->w, args, num_args); XtSetValues(curr->w, args, num_args);
} }
@@ -1315,91 +1286,6 @@ struct xwindow *wp;
} }
} }
XColor
get_nhcolor(wp, clr)
struct xwindow *wp;
int clr;
{
init_menu_nhcolors(wp);
if (clr >= 0 && clr < CLR_MAX)
return wp->menu_information->nh_colors[clr];
return wp->menu_information->nh_colors[0];
}
static void
init_menu_nhcolors(wp)
struct xwindow *wp;
{
static const char *mapCLR_to_res[CLR_MAX] = {
XtNblack,
XtNred,
XtNgreen,
XtNbrown,
XtNblue,
XtNmagenta,
XtNcyan,
XtNgray,
XtNforeground,
XtNorange,
XtNbright_green,
XtNyellow,
XtNbright_blue,
XtNbright_magenta,
XtNbright_cyan,
XtNwhite,
};
Display *dpy;
Colormap screen_colormap;
XrmDatabase rDB;
XrmValue value;
Status rc;
int color;
char *ret_type[32];
char clr_name[BUFSZ];
char clrclass[BUFSZ];
if (wp->menu_information->nh_colors_inited)
return;
dpy = XtDisplay(wp->w);
screen_colormap = DefaultColormap(dpy, DefaultScreen(dpy));
rDB = XrmGetDatabase(dpy);
for (color = 0; color < CLR_MAX; color++) {
Sprintf(clr_name, "nethack.menu.%s", mapCLR_to_res[color]);
Sprintf(clrclass, "NetHack.Menu.%s", mapCLR_to_res[color]);
if (!XrmGetResource(rDB, clr_name, clrclass, ret_type, &value)) {
Sprintf(clr_name, "nethack.map.%s", mapCLR_to_res[color]);
Sprintf(clrclass, "NetHack.Map.%s", mapCLR_to_res[color]);
}
if (!XrmGetResource(rDB, clr_name, clrclass, ret_type, &value)) {
impossible("XrmGetResource error (%s)", clr_name);
} else if (!strcmp(ret_type[0], "String")) {
char tmpbuf[256];
if (value.size >= sizeof tmpbuf)
value.size = sizeof tmpbuf - 1;
(void) strncpy(tmpbuf, (char *) value.addr, (int) value.size);
tmpbuf[value.size] = '\0';
/* tmpbuf now contains the color name from the named resource */
rc = XAllocNamedColor(dpy, screen_colormap, tmpbuf,
&wp->menu_information->nh_colors[color],
&wp->menu_information->nh_colors[color]);
if (rc == 0) {
impossible("XAllocNamedColor failed for color %i (%s)",
color, clr_name);
}
}
}
wp->menu_information->nh_colors_inited = TRUE;
}
void void
create_menu_window(wp) create_menu_window(wp)
struct xwindow *wp; struct xwindow *wp;
@@ -1413,7 +1299,6 @@ struct xwindow *wp;
reset_menu_to_default(&wp->menu_information->new_menu); reset_menu_to_default(&wp->menu_information->new_menu);
reset_menu_count(wp->menu_information); reset_menu_count(wp->menu_information);
wp->w = wp->popup = (Widget) 0; wp->w = wp->popup = (Widget) 0;
wp->menu_information->nh_colors_inited = FALSE;
wp->menu_information->permi_x = -1; wp->menu_information->permi_x = -1;
wp->menu_information->permi_y = -1; wp->menu_information->permi_y = -1;
wp->menu_information->permi_w = -1; wp->menu_information->permi_w = -1;
@@ -1425,9 +1310,6 @@ destroy_menu_window(wp)
struct xwindow *wp; struct xwindow *wp;
{ {
clear_old_menu(wp); /* this will also destroy the widgets */ clear_old_menu(wp); /* this will also destroy the widgets */
if (wp->menu_information->boldfs)
XFreeFont(wp->menu_information->boldfs_dpy,
wp->menu_information->boldfs);
free((genericptr_t) wp->menu_information); free((genericptr_t) wp->menu_information);
wp->menu_information = (struct menu_info_t *) 0; wp->menu_information = (struct menu_info_t *) 0;
wp->type = NHW_NONE; /* allow re-use */ wp->type = NHW_NONE; /* allow re-use */
+2
View File
@@ -50,6 +50,8 @@ static char mesg_translations[] = "#override\n\
<Key>Right: scroll(6)\n\ <Key>Right: scroll(6)\n\
<Key>Up: scroll(8)\n\ <Key>Up: scroll(8)\n\
<Key>Down: scroll(2)\n\ <Key>Down: scroll(2)\n\
<Btn4Down>: scroll(8)\n\
<Btn5Down>: scroll(2)\n\
<Key>: input()"; <Key>: input()";
/* Move the message window's vertical scrollbar's slider to the bottom. */ /* Move the message window's vertical scrollbar's slider to the bottom. */
+10 -6
View File
@@ -1247,11 +1247,10 @@ X11_player_selection_dialog()
} else { } else {
ps_selected = -1; ps_selected = -1;
nh_XtPopup(popup, (int) XtGrabExclusive, form); nh_XtPopup(popup, (int) XtGrabExclusive, form);
/* The callback will enable the event loop exit. */
(void) x_event(EXIT_ON_EXIT);
} }
/* The callback will enable the event loop exit. */
(void) x_event(flags.randomall ? EXIT_ON_SENT_EVENT : EXIT_ON_EXIT);
nh_XtPopdown(popup); nh_XtPopdown(popup);
XtDestroyWidget(popup); XtDestroyWidget(popup);
@@ -1994,11 +1993,12 @@ Widget *formp; /* return */
Widget popup, popform, form, label, above, left, right, view; Widget popup, popform, form, label, above, left, right, view;
Widget *commands, *curr; Widget *commands, *curr;
int i; int i;
Arg args[8]; Arg args[12];
Cardinal num_args; Cardinal num_args;
Dimension width, other_width, max_width, border_width, Dimension width, other_width, max_width, border_width,
height, cumulative_height, screen_height; height, cumulative_height, screen_height;
int distance, skip; int distance, skip;
char btnname[BUFSZ];
commands = (Widget *) alloc((unsigned) num_names * sizeof (Widget)); commands = (Widget *) alloc((unsigned) num_names * sizeof (Widget));
@@ -2073,11 +2073,13 @@ Widget *formp; /* return */
*/ */
num_args = 0; num_args = 0;
XtSetArg(args[num_args], nhStr(XtNfromVert), label); num_args++; XtSetArg(args[num_args], nhStr(XtNfromVert), label); num_args++;
XtSetArg(args[num_args], nhStr(XtNlabel), left_name); num_args++;
#if 0 #if 0
XtSetArg(args[num_args], nhStr(XtNshapeStyle), XtSetArg(args[num_args], nhStr(XtNshapeStyle),
XmuShapeRoundedRectangle); num_args++; XmuShapeRoundedRectangle); num_args++;
#endif #endif
left = XtCreateManagedWidget(left_name, commandWidgetClass, form, args, Sprintf(btnname, "btn_%s", left_name);
left = XtCreateManagedWidget(btnname, commandWidgetClass, form, args,
num_args); num_args);
XtAddCallback(left, XtNcallback, left_callback, (XtPointer) 0); XtAddCallback(left, XtNcallback, left_callback, (XtPointer) 0);
skip = (distance < 4) ? 8 : 2 * distance; skip = (distance < 4) ? 8 : 2 * distance;
@@ -2094,11 +2096,13 @@ Widget *formp; /* return */
XtSetArg(args[num_args], nhStr(XtNfromHoriz), left); num_args++; XtSetArg(args[num_args], nhStr(XtNfromHoriz), left); num_args++;
XtSetArg(args[num_args], nhStr(XtNhorizDistance), skip); num_args++; XtSetArg(args[num_args], nhStr(XtNhorizDistance), skip); num_args++;
XtSetArg(args[num_args], nhStr(XtNfromVert), label); num_args++; XtSetArg(args[num_args], nhStr(XtNfromVert), label); num_args++;
XtSetArg(args[num_args], nhStr(XtNlabel), right_name); num_args++;
#if 0 #if 0
XtSetArg(args[num_args], nhStr(XtNshapeStyle), XtSetArg(args[num_args], nhStr(XtNshapeStyle),
XmuShapeRoundedRectangle); num_args++; XmuShapeRoundedRectangle); num_args++;
#endif #endif
right = XtCreateManagedWidget(right_name, commandWidgetClass, form, args, Sprintf(btnname, "btn_%s", right_name);
right = XtCreateManagedWidget(btnname, commandWidgetClass, form, args,
num_args); num_args);
XtAddCallback(right, XtNcallback, right_callback, (XtPointer) 0); XtAddCallback(right, XtNcallback, right_callback, (XtPointer) 0);
+768 -67
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 winstat.c $NHDT-Date: 1452920162 2016/01/16 04:56:02 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.16 $ */ /* NetHack 3.6 winstat.c $NHDT-Date: 1540247293 2018/10/22 22:28:13 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.18 $ */
/* Copyright (c) Dean Luick, 1992 */ /* Copyright (c) Dean Luick, 1992 */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -15,6 +15,7 @@
#endif #endif
#include <X11/Intrinsic.h> #include <X11/Intrinsic.h>
#include <X11/IntrinsicP.h>
#include <X11/StringDefs.h> #include <X11/StringDefs.h>
#include <X11/Shell.h> #include <X11/Shell.h>
#include <X11/Xaw/AsciiText.h> #include <X11/Xaw/AsciiText.h>
@@ -22,6 +23,7 @@
#include <X11/Xaw/Form.h> #include <X11/Xaw/Form.h>
#include <X11/Xaw/Paned.h> #include <X11/Xaw/Paned.h>
#include <X11/Xaw/Label.h> #include <X11/Xaw/Label.h>
#include <X11/Xaw/Viewport.h>
#include <X11/Xatom.h> #include <X11/Xatom.h>
#ifdef PRESERVE_NO_SYSV #ifdef PRESERVE_NO_SYSV
@@ -31,18 +33,754 @@
#undef PRESERVE_NO_SYSV #undef PRESERVE_NO_SYSV
#endif #endif
#include "xwindow.h"
#include "hack.h" #include "hack.h"
#include "winX.h" #include "winX.h"
/*
* Fancy status form entry storage indices.
*/
#define F_DUMMY 0
#define F_STR 1
#define F_DEX 2
#define F_CON 3
#define F_INT 4
#define F_WIS 5
#define F_CHA 6
#define F_NAME 7
#define F_DLEVEL 8
#define F_GOLD 9
#define F_HP 10
#define F_MAXHP 11
#define F_POWER 12
#define F_MAXPOWER 13
#define F_AC 14
#define F_LEVEL 15
#define F_EXP 16
#define F_ALIGN 17
#define F_TIME 18
#define F_SCORE 19
/* status conditions grouped by columns; tty orders these differently */
#define F_STONE 20
#define F_SLIME 21
#define F_STRNGL 22
#define F_FOODPOIS 23
#define F_TERMILL 24
#define F_HUNGER 25
#define F_ENCUMBER 26
#define F_LEV 27
#define F_FLY 28
#define F_RIDE 29
#define F_BLIND 30
#define F_DEAF 31
#define F_STUN 32
#define F_CONF 33
#define F_HALLU 34
#define NUM_STATS 35
static void FDECL(update_fancy_status, (struct xwindow *));
static void FDECL(update_fancy_status_field, (int));
static Widget FDECL(create_fancy_status, (Widget, Widget));
static void FDECL(destroy_fancy_status, (struct xwindow *));
static void FDECL(create_status_window_fancy, (struct xwindow *, BOOLEAN_P, Widget));
static void FDECL(create_status_window_tty, (struct xwindow *, BOOLEAN_P, Widget));
static void FDECL(destroy_status_window_fancy, (struct xwindow *));
static void FDECL(destroy_status_window_tty, (struct xwindow *));
static void FDECL(adjust_status_fancy, (struct xwindow *, const char *));
static void FDECL(adjust_status_tty, (struct xwindow *, const char *));
extern const char *status_fieldfmt[MAXBLSTATS];
extern char *status_vals[MAXBLSTATS];
extern boolean status_activefields[MAXBLSTATS];
static long X11_condition_bits;
static int X11_status_colors[MAXBLSTATS];
static int hpbar_percent, hpbar_color;
#define X11_NUM_STATUS_LINES 2
#define X11_NUM_STATUS_FIELD 15
static enum statusfields X11_fieldorder[X11_NUM_STATUS_LINES][X11_NUM_STATUS_FIELD] = {
{ BL_TITLE, BL_STR, BL_DX, BL_CO, BL_IN, BL_WI, BL_CH, BL_ALIGN,
BL_SCORE, BL_FLUSH, BL_FLUSH, BL_FLUSH, BL_FLUSH, BL_FLUSH,
BL_FLUSH },
{ BL_LEVELDESC, BL_GOLD, BL_HP, BL_HPMAX, BL_ENE, BL_ENEMAX,
BL_AC, BL_XP, BL_EXP, BL_HD, BL_TIME, BL_HUNGER,
BL_CAP, BL_CONDITION, BL_FLUSH }
};
static Widget X11_status_widget;
static Widget X11_status_labels[MAXBLSTATS];
static Widget X11_cond_labels[32]; /* Ugh */
struct xwindow *xw_status_win;
static Pixel X11_status_widget_fg, X11_status_widget_bg;
int
condcolor(bm, bmarray)
long bm;
unsigned long *bmarray;
{
int i;
if (bm && bmarray)
for (i = 0; i < CLR_MAX; ++i) {
if (bmarray[i] && (bm & bmarray[i]))
return i;
}
return NO_COLOR;
}
int
condattr(bm, bmarray)
long bm;
unsigned long *bmarray;
{
int attr = 0;
int i;
if (bm && bmarray) {
for (i = HL_ATTCLR_DIM; i < BL_ATTCLR_MAX; ++i) {
if (bmarray[i] && (bm & bmarray[i])) {
switch(i) {
case HL_ATTCLR_DIM:
attr |= HL_DIM;
break;
case HL_ATTCLR_BLINK:
attr |= HL_BLINK;
break;
case HL_ATTCLR_ULINE:
attr |= HL_ULINE;
break;
case HL_ATTCLR_INVERSE:
attr |= HL_INVERSE;
break;
case HL_ATTCLR_BOLD:
attr |= HL_BOLD;
break;
}
}
}
}
return attr;
}
void
X11_status_init()
{
#ifdef STATUS_HILITES
int i;
for (i = 0; i < MAXBLSTATS; ++i)
X11_status_colors[i] = NO_COLOR; /* no color */
X11_condition_bits = 0L;
hpbar_percent = 0, hpbar_color = NO_COLOR;
#endif /* STATUS_HILITES */
/* let genl_status_init do most of the initialization */
genl_status_init();
}
void
X11_status_finish()
{
/* nothing */
}
void
X11_status_enablefield(fieldidx, nm, fmt, enable)
int fieldidx;
const char *nm;
const char *fmt;
boolean enable;
{
genl_status_enablefield(fieldidx, nm, fmt, enable);
}
int
cond_bm2idx(bm)
unsigned long bm;
{
int i;
for (i = 0; i < 32; i++)
if ((1 << i) == bm)
return i;
return -1;
}
void
MaybeDisplayCond(bm, colormasks, text)
unsigned long bm;
unsigned long *colormasks;
const char *text;
{
int idx = cond_bm2idx(bm);
Widget label;
Arg args[10];
Cardinal num_args;
Pixel fg = X11_status_widget_fg, bg = X11_status_widget_bg;
Dimension lbl_wid;
Dimension lbl_hei;
Dimension lbl_border_wid;
Dimension lbl_iwidth;
if (idx < 0)
return;
label = X11_cond_labels[idx];
if ((X11_condition_bits & bm) != 0) {
int attrmask, coloridx;
XFontStruct *font;
Position lbl_x;
Position lbl_y;
#ifdef TEXTCOLOR
coloridx = condcolor(bm, colormasks);
#else
coloridx = NO_COLOR;
#endif
attrmask = condattr(bm, colormasks);
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNfont), &font); num_args++;
XtSetArg(args[num_args], nhStr(XtNx), &lbl_x); num_args++;
XtSetArg(args[num_args], nhStr(XtNy), &lbl_y); num_args++;
XtSetArg(args[num_args], nhStr(XtNwidth), &lbl_wid); num_args++;
XtSetArg(args[num_args], nhStr(XtNheight), &lbl_hei); num_args++;
XtSetArg(args[num_args], nhStr(XtNinternalWidth), &lbl_iwidth); num_args++;
XtSetArg(args[num_args], nhStr(XtNborderWidth), &lbl_border_wid); num_args++;
XtGetValues(label, args, num_args);
if (text && *text)
lbl_wid = lbl_iwidth + font->max_bounds.width * strlen(text);
else
lbl_wid = 1;
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNlabel), (text && *text) ? text : ""); num_args++;
XtSetArg(args[num_args], nhStr(XtNwidth), lbl_wid); num_args++;
fg = (coloridx != NO_COLOR) ? get_nhcolor(xw_status_win, coloridx).pixel
: X11_status_widget_fg;
if (attrmask & HL_INVERSE) {
Pixel tmppx = fg;
fg = bg;
bg = tmppx;
}
if (attrmask & HL_BOLD) {
load_boldfont(xw_status_win, label);
XtSetArg(args[num_args], nhStr(XtNfont),
xw_status_win->boldfs); num_args++;
}
if (fg == bg)
fg = get_nhcolor(xw_status_win, CLR_GRAY).pixel;
XtSetArg(args[num_args], nhStr(XtNforeground), fg); num_args++;
XtSetArg(args[num_args], nhStr(XtNbackground), bg); num_args++;
XtSetValues(label, args, num_args);
XtResizeWidget(label, lbl_wid, lbl_hei, lbl_border_wid);
} else {
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNwidth), &lbl_wid); num_args++;
XtSetArg(args[num_args], nhStr(XtNheight), &lbl_hei); num_args++;
XtSetArg(args[num_args], nhStr(XtNinternalWidth), &lbl_iwidth); num_args++;
XtSetArg(args[num_args], nhStr(XtNborderWidth), &lbl_border_wid); num_args++;
XtGetValues(label, args, num_args);
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNlabel), ""); num_args++;
XtSetArg(args[num_args], nhStr(XtNwidth), 1); num_args++;
XtSetArg(args[num_args], nhStr(XtNforeground), fg); num_args++;
XtSetArg(args[num_args], nhStr(XtNbackground), bg); num_args++;
XtSetValues(label, args, num_args);
XtResizeWidget(label, lbl_wid, lbl_hei, lbl_border_wid);
}
}
void
X11_status_update_tty(fld, ptr, chg, percent, color, colormasks)
int fld, chg UNUSED, percent, color;
genericptr_t ptr;
unsigned long *colormasks;
{
static boolean oncearound = FALSE; /* prevent premature partial display */
long *condptr = (long *) ptr;
int coloridx = NO_COLOR;
const char *text = (char *) ptr;
char tmpbuf[BUFSZ];
int attridx = 0;
XFontStruct *font;
Arg args[10];
Cardinal num_args;
Position lbl_x;
Position lbl_y;
Dimension lbl_wid;
Dimension lbl_hei;
Dimension lbl_border_wid;
Dimension lbl_iwidth;
Widget label;
Pixel fg = X11_status_widget_fg, bg = X11_status_widget_bg;
#ifndef TEXTCOLOR
color = NO_COLOR;
#endif
if (fld < BL_RESET || fld >= MAXBLSTATS)
return;
if ((fld >= 0 && fld < MAXBLSTATS) && !status_activefields[fld])
return;
if (fld != BL_FLUSH && fld != BL_RESET) {
if (!status_activefields[fld])
return;
switch (fld) {
case BL_CONDITION:
X11_condition_bits = *condptr;
oncearound = TRUE;
break;
default:
Sprintf(status_vals[fld],
(fld == BL_TITLE && iflags.wc2_hitpointbar) ? "%-30s" :
status_fieldfmt[fld] ? status_fieldfmt[fld] : "%s",
text);
X11_status_colors[fld] = color;
if (iflags.wc2_hitpointbar && fld == BL_HP) {
hpbar_percent = percent;
hpbar_color = color;
}
break;
}
if (fld == BL_CONDITION) {
MaybeDisplayCond(BL_MASK_STONE, colormasks, "Stone");
MaybeDisplayCond(BL_MASK_SLIME, colormasks, "Slime");
MaybeDisplayCond(BL_MASK_STRNGL, colormasks, "Strngl");
MaybeDisplayCond(BL_MASK_FOODPOIS, colormasks, "FoodPois");
MaybeDisplayCond(BL_MASK_TERMILL, colormasks, "TermIll");
MaybeDisplayCond(BL_MASK_BLIND, colormasks, "Blind");
MaybeDisplayCond(BL_MASK_DEAF, colormasks, "Deaf");
MaybeDisplayCond(BL_MASK_STUN, colormasks, "Stun");
MaybeDisplayCond(BL_MASK_CONF, colormasks, "Conf");
MaybeDisplayCond(BL_MASK_HALLU, colormasks, "Hallu");
MaybeDisplayCond(BL_MASK_LEV, colormasks, "Lev");
MaybeDisplayCond(BL_MASK_FLY, colormasks, "Fly");
MaybeDisplayCond(BL_MASK_RIDE, colormasks, "Ride");
} else {
label = X11_status_labels[fld];
text = status_vals[fld];
if (fld == BL_GOLD)
text = decode_mixed(tmpbuf, text);
#ifdef TEXTCOLOR
coloridx = X11_status_colors[fld] & 0x00FF;
#endif
attridx = (X11_status_colors[fld] & 0xFF00) >> 8;
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNfont), &font); num_args++;
XtSetArg(args[num_args], nhStr(XtNx), &lbl_x); num_args++;
XtSetArg(args[num_args], nhStr(XtNy), &lbl_y); num_args++;
XtSetArg(args[num_args], nhStr(XtNwidth), &lbl_wid); num_args++;
XtSetArg(args[num_args], nhStr(XtNheight), &lbl_hei); num_args++;
XtSetArg(args[num_args], nhStr(XtNinternalWidth), &lbl_iwidth); num_args++;
XtSetArg(args[num_args], nhStr(XtNborderWidth), &lbl_border_wid); num_args++;
XtGetValues(label, args, num_args);
/*raw_printf("font: %i-%i",
font->min_bounds.width, font->max_bounds.width);*/
if (text && *text)
lbl_wid = lbl_iwidth + font->max_bounds.width * strlen(text);
else
lbl_wid = 1;
/*raw_printf("1:lbl_wid=%i('%s')", lbl_wid, text);*/
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNlabel),
(text && *text) ? text : ""); num_args++;
XtSetArg(args[num_args], nhStr(XtNwidth), lbl_wid); num_args++;
fg = (coloridx != NO_COLOR) ? get_nhcolor(xw_status_win, coloridx).pixel
: X11_status_widget_fg;
if (attridx & HL_INVERSE) {
Pixel tmppx = fg;
fg = bg;
bg = tmppx;
}
if (attridx & HL_BOLD) {
load_boldfont(xw_status_win, label);
XtSetArg(args[num_args], nhStr(XtNfont),
xw_status_win->boldfs); num_args++;
}
if (fg == bg)
fg = get_nhcolor(xw_status_win, CLR_GRAY).pixel;
XtSetArg(args[num_args], nhStr(XtNforeground), fg); num_args++;
XtSetArg(args[num_args], nhStr(XtNbackground), bg); num_args++;
XtSetValues(label, args, num_args);
XtResizeWidget(label, lbl_wid, lbl_hei, lbl_border_wid);
}
} else {
int x, y;
for (y = 0; y < X11_NUM_STATUS_LINES; y++) {
Cardinal dx = 0;
for (x = 0; x < X11_NUM_STATUS_FIELD; x++) {
int f = X11_fieldorder[y][x];
if (f <= BL_FLUSH)
continue;
if (!status_activefields[f])
continue;
if (f == BL_CONDITION) {
int i;
for (i = 0; i < 32; i++) {
label = X11_cond_labels[i];
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNx), &lbl_x); num_args++;
XtSetArg(args[num_args], nhStr(XtNy), &lbl_y); num_args++;
XtSetArg(args[num_args], nhStr(XtNwidth), &lbl_wid); num_args++;
XtSetArg(args[num_args], nhStr(XtNheight), &lbl_hei); num_args++;
XtSetArg(args[num_args], nhStr(XtNborderWidth),
&lbl_border_wid); num_args++;
XtGetValues(label, args, num_args);
lbl_x = dx;
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNx), lbl_x); num_args++;
XtSetValues(label, args, num_args);
XtConfigureWidget(label, lbl_x, lbl_y,
lbl_wid, lbl_hei, lbl_border_wid);
if (lbl_wid > 1)
dx += lbl_wid;
}
continue;
}
label = X11_status_labels[f];
text = status_vals[f];
if (f == BL_GOLD)
text = decode_mixed(tmpbuf, text);
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNx), &lbl_x); num_args++;
XtSetArg(args[num_args], nhStr(XtNy), &lbl_y); num_args++;
XtSetArg(args[num_args], nhStr(XtNwidth), &lbl_wid); num_args++;
XtSetArg(args[num_args], nhStr(XtNheight), &lbl_hei); num_args++;
XtSetArg(args[num_args], nhStr(XtNborderWidth),
&lbl_border_wid); num_args++;
XtGetValues(label, args, num_args);
lbl_x = dx;
/*raw_printf("2:lbl_wid=%i('%s')", lbl_wid, text);*/
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNx), lbl_x); num_args++;
XtSetArg(args[num_args], nhStr(XtNlabel), text); num_args++;
XtSetValues(label, args, num_args);
XtConfigureWidget(label, lbl_x, lbl_y,
lbl_wid, lbl_hei, lbl_border_wid);
dx += lbl_wid;
}
}
}
}
/*ARGSUSED*/
void
X11_status_update_fancy(fld, ptr, chg, percent, color, colormasks)
int fld, chg UNUSED, percent UNUSED, color UNUSED;
genericptr_t ptr;
unsigned long *colormasks UNUSED;
{
static const struct {
int bl, ff;
} bl_to_fancyfield[] = {
{ BL_TITLE, F_NAME },
{ BL_STR, F_STR },
{ BL_DX, F_DEX },
{ BL_CO, F_CON },
{ BL_IN, F_INT },
{ BL_WI, F_WIS },
{ BL_CH, F_CHA },
{ BL_ALIGN, F_ALIGN },
{ BL_SCORE, F_SCORE },
{ BL_CAP, F_ENCUMBER },
{ BL_GOLD, F_GOLD },
{ BL_ENE, F_POWER },
{ BL_ENEMAX, F_MAXPOWER },
{ BL_XP, F_LEVEL },
{ BL_AC, F_AC },
/*{ BL_HD, F_ },*/
{ BL_TIME, F_TIME },
{ BL_HUNGER, F_HUNGER },
{ BL_HP, F_HP },
{ BL_HPMAX, F_MAXHP },
{ BL_LEVELDESC, F_DLEVEL },
{ BL_EXP, F_EXP }
};
static const struct {
unsigned long mask;
int ff;
} mask_to_fancyfield[] = {
{ BL_MASK_STONE, F_STONE },
{ BL_MASK_SLIME, F_SLIME },
{ BL_MASK_STRNGL, F_STRNGL },
{ BL_MASK_FOODPOIS, F_FOODPOIS },
{ BL_MASK_TERMILL, F_TERMILL },
{ BL_MASK_BLIND, F_BLIND },
{ BL_MASK_DEAF, F_DEAF },
{ BL_MASK_STUN, F_STUN },
{ BL_MASK_CONF, F_CONF },
{ BL_MASK_HALLU, F_HALLU },
{ BL_MASK_LEV, F_LEV },
{ BL_MASK_FLY, F_FLY },
{ BL_MASK_RIDE, F_RIDE }
};
int i;
if (fld == BL_RESET || fld == BL_FLUSH) {
if (WIN_STATUS != WIN_ERR) {
struct xwindow *wp = &window_list[WIN_STATUS];
update_fancy_status(wp);
}
return;
}
if (fld == BL_CONDITION) {
unsigned long mask = (unsigned long) ptr;
for (i = 0; i < SIZE(mask_to_fancyfield); i++)
if (mask_to_fancyfield[i].mask == mask)
update_fancy_status_field(mask_to_fancyfield[i].ff);
} else {
for (i = 0; i < SIZE(bl_to_fancyfield); i++)
if (bl_to_fancyfield[i].bl == fld)
update_fancy_status_field(bl_to_fancyfield[i].ff);
}
}
void
X11_status_update(fld, ptr, chg, percent, color, colormasks)
int fld, chg UNUSED, percent UNUSED, color;
genericptr_t ptr;
unsigned long *colormasks;
{
if (appResources.fancy_status)
X11_status_update_fancy(fld, ptr, chg, percent, color, colormasks);
else
X11_status_update_tty(fld, ptr, chg, percent, color, colormasks);
}
Widget
create_tty_status(parent, top)
Widget parent, top;
{
Widget form; /* The form that surrounds everything. */
Widget w;
Arg args[16];
Cardinal num_args;
int i, x, y;
num_args = 0;
if (top != (Widget) 0) {
XtSetArg(args[num_args], nhStr(XtNfromVert), top);
num_args++;
}
XtSetArg(args[num_args], nhStr(XtNdefaultDistance), 0);
num_args++;
XtSetArg(args[num_args], XtNborderWidth, 0);
num_args++;
XtSetArg(args[num_args], XtNwidth, 400); num_args++;
XtSetArg(args[num_args], XtNheight, 100); num_args++;
form = XtCreateManagedWidget("status_viewport", viewportWidgetClass,
parent, args, num_args);
num_args = 0;
XtSetArg(args[num_args], XtNwidth, 400); num_args++;
XtSetArg(args[num_args], XtNheight, 100); num_args++;
w = XtCreateManagedWidget("status_form", formWidgetClass,
form, args, num_args);
for (y = 0; y < X11_NUM_STATUS_LINES; y++) {
for (x = 0; x < X11_NUM_STATUS_FIELD; x++) {
int fld = X11_fieldorder[y][x];
char labelname[BUFSZ];
int prevfld;
if (fld <= BL_FLUSH)
continue;
Sprintf(labelname, "label_%s", bl_idx_to_fldname(fld));
num_args = 0;
if (y > 0) {
prevfld = X11_fieldorder[y-1][0];
XtSetArg(args[num_args], nhStr(XtNfromVert),
X11_status_labels[prevfld]); num_args++;
}
if (x > 0) {
prevfld = X11_fieldorder[y][x-1];
XtSetArg(args[num_args], nhStr(XtNfromHoriz),
X11_status_labels[prevfld]); num_args++;
}
XtSetArg(args[num_args], nhStr(XtNhorizDistance), 0); num_args++;
XtSetArg(args[num_args], nhStr(XtNvertDistance), 0); num_args++;
XtSetArg(args[num_args], nhStr(XtNtopMargin), 0); num_args++;
XtSetArg(args[num_args], nhStr(XtNbottomMargin), 0); num_args++;
XtSetArg(args[num_args], nhStr(XtNleftMargin), 0); num_args++;
XtSetArg(args[num_args], nhStr(XtNrightMargin), 0); num_args++;
XtSetArg(args[num_args], nhStr(XtNjustify), XtJustifyLeft); num_args++;
XtSetArg(args[num_args], nhStr(XtNborderWidth), 0); num_args++;
/*
XtSetArg(args[num_args], nhStr(XtNlabel),
bl_idx_to_fldname(fld)); num_args++;
*/
XtSetArg(args[num_args], nhStr(XtNlabel), ""); num_args++;
X11_status_labels[fld] = XtCreateManagedWidget(labelname,
labelWidgetClass, w,
args, num_args);
}
}
for (i = 0; i < 32; i++) {
char condname[BUFSZ];
int prevfld;
Sprintf(condname, "cond_%i", i);
num_args = 0;
prevfld = X11_fieldorder[0][0];
XtSetArg(args[num_args], nhStr(XtNfromVert),
X11_status_labels[prevfld]); num_args++;
XtSetArg(args[num_args], nhStr(XtNfromHoriz),
(i == 0) ? X11_status_labels[BL_CONDITION]
: X11_cond_labels[i-1]); num_args++;
XtSetArg(args[num_args], nhStr(XtNhorizDistance), 0); num_args++;
XtSetArg(args[num_args], nhStr(XtNvertDistance), 0); num_args++;
XtSetArg(args[num_args], nhStr(XtNtopMargin), 0); num_args++;
XtSetArg(args[num_args], nhStr(XtNbottomMargin), 0); num_args++;
XtSetArg(args[num_args], nhStr(XtNleftMargin), 0); num_args++;
XtSetArg(args[num_args], nhStr(XtNrightMargin), 0); num_args++;
XtSetArg(args[num_args], nhStr(XtNjustify), XtJustifyLeft); num_args++;
XtSetArg(args[num_args], nhStr(XtNborderWidth), 0); num_args++;
XtSetArg(args[num_args], nhStr(XtNlabel), ""); num_args++;
X11_cond_labels[i] = XtCreateManagedWidget(condname,
labelWidgetClass, w,
args, num_args);
}
return w;
}
/*ARGSUSED*/
void
create_status_window_tty(wp, create_popup, parent)
struct xwindow *wp; /* window pointer */
boolean create_popup UNUSED;
Widget parent;
{
Arg args[10];
Cardinal num_args;
wp->type = NHW_STATUS;
X11_status_widget = wp->w = create_tty_status(parent, (Widget) 0);
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNforeground), &X11_status_widget_fg); num_args++;
XtSetArg(args[num_args], nhStr(XtNbackground), &X11_status_widget_bg); num_args++;
XtGetValues(X11_status_widget, args, num_args);
}
void
destroy_status_window_tty(wp)
struct xwindow *wp;
{
/* If status_information is defined, then it a "text" status window. */
if (wp->status_information) {
if (wp->popup) {
nh_XtPopdown(wp->popup);
if (!wp->keep_window)
XtDestroyWidget(wp->popup), wp->popup = (Widget) 0;
}
free((genericptr_t) wp->status_information);
wp->status_information = 0;
} else {
}
if (!wp->keep_window)
wp->type = NHW_NONE;
}
/*ARGSUSED*/
void
adjust_status_tty(wp, str)
struct xwindow *wp UNUSED;
const char *str UNUSED;
{
/* nothing */
}
void
create_status_window(wp, create_popup, parent)
struct xwindow *wp; /* window pointer */
boolean create_popup;
Widget parent;
{
xw_status_win = wp;
if (appResources.fancy_status)
create_status_window_fancy(wp, create_popup, parent);
else
create_status_window_tty(wp, create_popup, parent);
}
void
destroy_status_window(wp)
struct xwindow *wp;
{
if (appResources.fancy_status)
destroy_status_window_fancy(wp);
else
destroy_status_window_tty(wp);
}
void
adjust_status(wp, str)
struct xwindow *wp;
const char *str;
{
if (appResources.fancy_status)
adjust_status_fancy(wp, str);
else
adjust_status_tty(wp, str);
}
extern const char *hu_stat[]; /* from eat.c */ extern const char *hu_stat[]; /* from eat.c */
extern const char *enc_stat[]; /* from botl.c */ extern const char *enc_stat[]; /* from botl.c */
static void FDECL(update_fancy_status, (struct xwindow *));
static Widget FDECL(create_fancy_status, (Widget, Widget));
static void FDECL(destroy_fancy_status, (struct xwindow *));
void void
create_status_window(wp, create_popup, parent) create_status_window_fancy(wp, create_popup, parent)
struct xwindow *wp; /* window pointer */ struct xwindow *wp; /* window pointer */
boolean create_popup; boolean create_popup;
Widget parent; Widget parent;
@@ -60,7 +798,7 @@ Widget parent;
* window. * window.
*/ */
if (!parent) if (!parent)
panic("create_status_window: no parent for fancy status"); panic("create_status_window_fancy: no parent for fancy status");
wp->status_information = 0; wp->status_information = 0;
wp->w = create_fancy_status(parent, (Widget) 0); wp->w = create_fancy_status(parent, (Widget) 0);
return; return;
@@ -133,7 +871,7 @@ Widget parent;
} }
void void
destroy_status_window(wp) destroy_status_window_fancy(wp)
struct xwindow *wp; struct xwindow *wp;
{ {
/* If status_information is defined, then it a "text" status window. */ /* If status_information is defined, then it a "text" status window. */
@@ -159,7 +897,7 @@ struct xwindow *wp;
* + We didn't set stringInPlace on the widget. * + We didn't set stringInPlace on the widget.
*/ */
void void
adjust_status(wp, str) adjust_status_fancy(wp, str)
struct xwindow *wp; struct xwindow *wp;
const char *str; const char *str;
{ {
@@ -216,52 +954,6 @@ static Widget FDECL(init_column, (const char *, Widget, Widget, Widget,
static void NDECL(fixup_cond_widths); static void NDECL(fixup_cond_widths);
static Widget FDECL(init_info_form, (Widget, Widget, Widget)); static Widget FDECL(init_info_form, (Widget, Widget, Widget));
/*
* Form entry storage indices.
*/
#define F_DUMMY 0
#define F_STR 1
#define F_DEX 2
#define F_CON 3
#define F_INT 4
#define F_WIS 5
#define F_CHA 6
#define F_NAME 7
#define F_DLEVEL 8
#define F_GOLD 9
#define F_HP 10
#define F_MAXHP 11
#define F_POWER 12
#define F_MAXPOWER 13
#define F_AC 14
#define F_LEVEL 15
#define F_EXP 16
#define F_ALIGN 17
#define F_TIME 18
#define F_SCORE 19
/* status conditions grouped by columns; tty orders these differently */
#define F_STONE 20
#define F_SLIME 21
#define F_STRNGL 22
#define F_FOODPOIS 23
#define F_TERMILL 24
#define F_HUNGER 25
#define F_ENCUMBER 26
#define F_LEV 27
#define F_FLY 28
#define F_RIDE 29
#define F_BLIND 30
#define F_DEAF 31
#define F_STUN 32
#define F_CONF 33
#define F_HALLU 34
#define NUM_STATS 35
/* /*
* Notes: * Notes:
* + Alignment needs a different init value, because -1 is an alignment. * + Alignment needs a different init value, because -1 is an alignment.
@@ -583,18 +1275,13 @@ long new_value;
* [**] HD is shown instead of level and exp if Upolyd. * [**] HD is shown instead of level and exp if Upolyd.
*/ */
static void static void
update_fancy_status(wp) update_fancy_status_field(i)
struct xwindow *wp; int i;
{ {
struct X_status_value *sv; struct X_status_value *sv = &shown_stats[i];
long val; long val;
int i;
if (wp->cursy != 0) switch (i) {
return; /* do a complete update when line 0 is done */
for (i = 0, sv = shown_stats; i < NUM_STATS; i++, sv++) {
switch (i) {
case F_DUMMY: case F_DUMMY:
val = 0L; val = 0L;
break; break;
@@ -734,11 +1421,25 @@ struct xwindow *wp;
val = 0L; val = 0L;
break; break;
} /* default */ } /* default */
} /* switch */ } /* switch */
update_val(sv, val); update_val(sv, val);
}
} }
/*ARGUSED*/
static void
update_fancy_status(wp)
struct xwindow *wp UNUSED;
{
int i;
/*if (wp->cursy != 0)
return;*/ /* do a complete update when line 0 is done */
for (i = 0; i < NUM_STATS; i++)
update_fancy_status_field(i);
}
/* /*
* Turn off hilighted status values after a certain amount of turns. * Turn off hilighted status values after a certain amount of turns.
*/ */
+14 -11
View File
@@ -27,23 +27,26 @@ void *me;
void *nextprocs; void *nextprocs;
void *nextdata; void *nextdata;
{ {
struct chainin_data *tdp = 0;
switch (cmd) { switch (cmd) {
case WINCHAIN_ALLOC: { case WINCHAIN_ALLOC:
struct chainin_data *tdp = calloc(1, sizeof(struct chainin_data)); tdp = (struct chainin_data *) alloc(sizeof *tdp);
tdp->nprocs = 0;
tdp->ndata = 0;
tdp->linknum = n; tdp->linknum = n;
cibase = tdp; cibase = 0;
return tdp; break;
} case WINCHAIN_INIT:
case WINCHAIN_INIT: { tdp = me;
struct chainin_data *tdp = me;
tdp->nprocs = nextprocs; tdp->nprocs = nextprocs;
tdp->ndata = nextdata; tdp->ndata = nextdata;
return tdp; break;
}
default: default:
raw_printf("chainin_procs_chain: bad cmd\n"); panic("chainin_procs_chain: bad cmd\n");
exit(EXIT_FAILURE); /*NOTREACHED*/
} }
return tdp;
} }
/* XXX if we don't need this, take it out of the table */ /* XXX if we don't need this, take it out of the table */
+13 -11
View File
@@ -10,7 +10,7 @@
struct chainout_data { struct chainout_data {
struct window_procs *nprocs; struct window_procs *nprocs;
#if 0 #if 0
void *ndata; void *ndata;
#endif #endif
int linknum; int linknum;
@@ -24,21 +24,23 @@ void *me;
void *nextprocs; void *nextprocs;
void *nextdata UNUSED; void *nextdata UNUSED;
{ {
struct chainout_data *tdp = 0;
switch (cmd) { switch (cmd) {
case WINCHAIN_ALLOC: { case WINCHAIN_ALLOC:
struct chainout_data *tdp = calloc(1, sizeof(struct chainout_data)); tdp = (struct chainout_data *) alloc(sizeof *tdp);
tdp->nprocs = 0;
tdp->linknum = n; tdp->linknum = n;
return tdp; break;
} case WINCHAIN_INIT:
case WINCHAIN_INIT: { tdp = me;
struct chainout_data *tdp = me;
tdp->nprocs = nextprocs; tdp->nprocs = nextprocs;
return tdp; break;
}
default: default:
raw_printf("chainout_procs_chain: bad cmd\n"); panic("chainout_procs_chain: bad cmd\n");
exit(EXIT_FAILURE); /*NOTREACHED*/
} }
return tdp;
} }
/* XXX if we don't need this, take it out of the table */ /* XXX if we don't need this, take it out of the table */
+24 -18
View File
@@ -48,22 +48,25 @@ void *me;
void *nextprocs; void *nextprocs;
void *nextdata; void *nextdata;
{ {
struct trace_data *tdp = 0;
switch (cmd) { switch (cmd) {
case WINCHAIN_ALLOC: { case WINCHAIN_ALLOC:
struct trace_data *tdp = calloc(1, sizeof(struct trace_data)); tdp = (struct trace_data *) alloc(sizeof *tdp);
tdp->nprocs = 0;
tdp->ndata = 0;
tdp->linknum = n; tdp->linknum = n;
return tdp; break;
} case WINCHAIN_INIT:
case WINCHAIN_INIT: { tdp = me;
struct trace_data *tdp = me;
tdp->nprocs = nextprocs; tdp->nprocs = nextprocs;
tdp->ndata = nextdata; tdp->ndata = nextdata;
return tdp; break;
}
default: default:
raw_printf("trace_procs_chain: bad cmd\n"); panic("trace_procs_chain: bad cmd\n");
exit(EXIT_FAILURE); /*NOTREACHED*/
} }
return tdp;
} }
void void
@@ -71,20 +74,22 @@ trace_procs_init(dir)
int dir; int dir;
{ {
char fname[200]; char fname[200];
long pid;
/* processors shouldn't need this test, but just in case */ /* processors shouldn't need this test, but just in case */
if (dir != WININIT) if (dir != WININIT)
return; return;
sprintf(fname, "%s/tlog.%d", HACKDIR, getpid()); pid = (long) getpid();
Sprintf(fname, "%s/tlog.%ld", HACKDIR, pid);
wc_tracelogf = fopen(fname, "w"); wc_tracelogf = fopen(fname, "w");
if (wc_tracelogf == NULL) { if (!wc_tracelogf) {
fprintf(stderr, "Can't open trace log file %s: %s\n", fname, fprintf(stderr, "Can't open trace log file %s: %s\n", fname,
strerror(errno)); strerror(errno));
exit(EXIT_FAILURE); nh_terminate(EXIT_FAILURE);
} }
setvbuf(wc_tracelogf, (char *) NULL, _IONBF, 0); setvbuf(wc_tracelogf, (char *) 0, _IONBF, 0);
fprintf(wc_tracelogf, "Trace log started for pid %d\n", getpid()); fprintf(wc_tracelogf, "Trace log started for pid %ld\n", pid);
indent_level = 0; indent_level = 0;
} }
@@ -769,7 +774,7 @@ char *bufp;
} }
if (bufp) { if (bufp) {
fprintf(wc_tracelogf, "%p)\n", bufp); fprintf(wc_tracelogf, "%s)\n", fmt_ptr((genericptr_t) bufp));
} else { } else {
fprintf(wc_tracelogf, "NULL)\n"); fprintf(wc_tracelogf, "NULL)\n");
} }
@@ -785,7 +790,7 @@ void *vp;
{ {
struct trace_data *tdp = vp; struct trace_data *tdp = vp;
int rv; int rv;
int ecl_size; int ecl_size = 0;
/* this is ugly, but the size isn't exposed */ /* this is ugly, but the size isn't exposed */
const struct ext_func_tab *efp; const struct ext_func_tab *efp;
@@ -1095,7 +1100,8 @@ unsigned long *colormasks;
ptr, chg, percent); ptr, chg, percent);
PRE; PRE;
(*tdp->nprocs->win_status_update)(tdp->ndata, idx, ptr, chg, percent, color, colormasks); (*tdp->nprocs->win_status_update)(tdp->ndata, idx, ptr, chg, percent,
color, colormasks);
POST; POST;
} }
+208 -209
View File
@@ -1,233 +1,232 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="config.props" /> <Import Project="config.props" />
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<ProjectGuid>{609BC774-C6F8-4B2B-AA7D-5B3D0EA95751}</ProjectGuid> <ProjectGuid>{609BC774-C6F8-4B2B-AA7D-5B3D0EA95751}</ProjectGuid>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
<RootNamespace>NetHack</RootNamespace> <RootNamespace>NetHack</RootNamespace>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="default.props" /> <Import Project="default.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Import Project="console.props" /> <Import Project="console.props" />
<Import Project="common.props" /> <Import Project="common.props" />
<Import Project="dirs.props" /> <Import Project="dirs.props" />
<Import Project="files.props" /> <Import Project="files.props" />
<PropertyGroup> <PropertyGroup>
<OutDir>$(BinDir)</OutDir> <OutDir>$(BinDir)</OutDir>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup> <ItemDefinitionGroup>
<ClCompile> <ClCompile>
<AdditionalOptions>/Gs /Oi- %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>/Gs /Oi- %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<InlineFunctionExpansion>Default</InlineFunctionExpansion> <InlineFunctionExpansion>Default</InlineFunctionExpansion>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers> <OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>$(WinWin32Dir);$(IncDir);$(SysWinntDir);$(SysShareDir);$(WinShareDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(WinWin32Dir);$(IncDir);$(SysWinntDir);$(SysShareDir);$(WinShareDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>TILES;WIN32CON;DLB;MSWIN_GRAPHICS;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>TILES;WIN32CON;DLB;MSWIN_GRAPHICS;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile> </ClCompile>
<Link> <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;%(AdditionalDependencies)</AdditionalDependencies> <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;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="$(SrcDir)allmain.c" /> <ClCompile Include="$(SrcDir)allmain.c" />
<ClCompile Include="$(SrcDir)alloc.c" /> <ClCompile Include="$(SrcDir)alloc.c" />
<ClCompile Include="$(SrcDir)apply.c" /> <ClCompile Include="$(SrcDir)apply.c" />
<ClCompile Include="$(SrcDir)artifact.c" /> <ClCompile Include="$(SrcDir)artifact.c" />
<ClCompile Include="$(SrcDir)attrib.c" /> <ClCompile Include="$(SrcDir)attrib.c" />
<ClCompile Include="$(SrcDir)ball.c" /> <ClCompile Include="$(SrcDir)ball.c" />
<ClCompile Include="$(SrcDir)bones.c" /> <ClCompile Include="$(SrcDir)bones.c" />
<ClCompile Include="$(SrcDir)botl.c" /> <ClCompile Include="$(SrcDir)botl.c" />
<ClCompile Include="$(SrcDir)cmd.c" /> <ClCompile Include="$(SrcDir)cmd.c" />
<ClCompile Include="$(SrcDir)dbridge.c" /> <ClCompile Include="$(SrcDir)dbridge.c" />
<ClCompile Include="$(SrcDir)decl.c" /> <ClCompile Include="$(SrcDir)decl.c" />
<ClCompile Include="$(SrcDir)detect.c" /> <ClCompile Include="$(SrcDir)detect.c" />
<ClCompile Include="$(SrcDir)dig.c" /> <ClCompile Include="$(SrcDir)dig.c" />
<ClCompile Include="$(SrcDir)display.c" /> <ClCompile Include="$(SrcDir)display.c" />
<ClCompile Include="$(SrcDir)dlb.c" /> <ClCompile Include="$(SrcDir)dlb.c" />
<ClCompile Include="$(SrcDir)do.c" /> <ClCompile Include="$(SrcDir)do.c" />
<ClCompile Include="$(SrcDir)dog.c" /> <ClCompile Include="$(SrcDir)dog.c" />
<ClCompile Include="$(SrcDir)dogmove.c" /> <ClCompile Include="$(SrcDir)dogmove.c" />
<ClCompile Include="$(SrcDir)dokick.c" /> <ClCompile Include="$(SrcDir)dokick.c" />
<ClCompile Include="$(SrcDir)dothrow.c" /> <ClCompile Include="$(SrcDir)dothrow.c" />
<ClCompile Include="$(SrcDir)do_name.c" /> <ClCompile Include="$(SrcDir)do_name.c" />
<ClCompile Include="$(SrcDir)do_wear.c" /> <ClCompile Include="$(SrcDir)do_wear.c" />
<ClCompile Include="$(SrcDir)drawing.c" /> <ClCompile Include="$(SrcDir)drawing.c" />
<ClCompile Include="$(SrcDir)dungeon.c" /> <ClCompile Include="$(SrcDir)dungeon.c" />
<ClCompile Include="$(SrcDir)eat.c" /> <ClCompile Include="$(SrcDir)eat.c" />
<ClCompile Include="$(SrcDir)end.c" /> <ClCompile Include="$(SrcDir)end.c" />
<ClCompile Include="$(SrcDir)engrave.c" /> <ClCompile Include="$(SrcDir)engrave.c" />
<ClCompile Include="$(SrcDir)exper.c" /> <ClCompile Include="$(SrcDir)exper.c" />
<ClCompile Include="$(SrcDir)explode.c" /> <ClCompile Include="$(SrcDir)explode.c" />
<ClCompile Include="$(SrcDir)extralev.c" /> <ClCompile Include="$(SrcDir)extralev.c" />
<ClCompile Include="$(SrcDir)files.c" /> <ClCompile Include="$(SrcDir)files.c" />
<ClCompile Include="$(SrcDir)fountain.c" /> <ClCompile Include="$(SrcDir)fountain.c" />
<ClCompile Include="$(SrcDir)hack.c" /> <ClCompile Include="$(SrcDir)hack.c" />
<ClCompile Include="$(SrcDir)hacklib.c" /> <ClCompile Include="$(SrcDir)hacklib.c" />
<ClCompile Include="$(SrcDir)invent.c" /> <ClCompile Include="$(SrcDir)invent.c" />
<ClCompile Include="$(SrcDir)light.c" /> <ClCompile Include="$(SrcDir)light.c" />
<ClCompile Include="$(SrcDir)lock.c" /> <ClCompile Include="$(SrcDir)lock.c" />
<ClCompile Include="$(SrcDir)mail.c" /> <ClCompile Include="$(SrcDir)mail.c" />
<ClCompile Include="$(SrcDir)makemon.c" /> <ClCompile Include="$(SrcDir)makemon.c" />
<ClCompile Include="$(SrcDir)mapglyph.c" /> <ClCompile Include="$(SrcDir)mapglyph.c" />
<ClCompile Include="$(SrcDir)mcastu.c" /> <ClCompile Include="$(SrcDir)mcastu.c" />
<ClCompile Include="$(SrcDir)mhitm.c" /> <ClCompile Include="$(SrcDir)mhitm.c" />
<ClCompile Include="$(SrcDir)mhitu.c" /> <ClCompile Include="$(SrcDir)mhitu.c" />
<ClCompile Include="$(SrcDir)minion.c" /> <ClCompile Include="$(SrcDir)minion.c" />
<ClCompile Include="$(SrcDir)mklev.c" /> <ClCompile Include="$(SrcDir)mklev.c" />
<ClCompile Include="$(SrcDir)mkmap.c" /> <ClCompile Include="$(SrcDir)mkmap.c" />
<ClCompile Include="$(SrcDir)mkmaze.c" /> <ClCompile Include="$(SrcDir)mkmaze.c" />
<ClCompile Include="$(SrcDir)mkobj.c" /> <ClCompile Include="$(SrcDir)mkobj.c" />
<ClCompile Include="$(SrcDir)mkroom.c" /> <ClCompile Include="$(SrcDir)mkroom.c" />
<ClCompile Include="$(SrcDir)mon.c" /> <ClCompile Include="$(SrcDir)mon.c" />
<ClCompile Include="$(SrcDir)mondata.c" /> <ClCompile Include="$(SrcDir)mondata.c" />
<ClCompile Include="$(SrcDir)monmove.c" /> <ClCompile Include="$(SrcDir)monmove.c" />
<ClCompile Include="$(SrcDir)monst.c" /> <ClCompile Include="$(SrcDir)monst.c" />
<ClCompile Include="$(SrcDir)monstr.c" /> <ClCompile Include="$(SrcDir)mplayer.c" />
<ClCompile Include="$(SrcDir)mplayer.c" /> <ClCompile Include="$(SrcDir)mthrowu.c" />
<ClCompile Include="$(SrcDir)mthrowu.c" /> <ClCompile Include="$(SrcDir)muse.c" />
<ClCompile Include="$(SrcDir)muse.c" /> <ClCompile Include="$(SrcDir)music.c" />
<ClCompile Include="$(SrcDir)music.c" /> <ClCompile Include="$(SrcDir)objects.c" />
<ClCompile Include="$(SrcDir)objects.c" /> <ClCompile Include="$(SrcDir)objnam.c" />
<ClCompile Include="$(SrcDir)objnam.c" /> <ClCompile Include="$(SrcDir)options.c" />
<ClCompile Include="$(SrcDir)options.c" /> <ClCompile Include="$(SrcDir)o_init.c" />
<ClCompile Include="$(SrcDir)o_init.c" /> <ClCompile Include="$(SrcDir)pager.c" />
<ClCompile Include="$(SrcDir)pager.c" /> <ClCompile Include="$(SrcDir)pickup.c" />
<ClCompile Include="$(SrcDir)pickup.c" /> <ClCompile Include="$(SrcDir)pline.c" />
<ClCompile Include="$(SrcDir)pline.c" /> <ClCompile Include="$(SrcDir)polyself.c" />
<ClCompile Include="$(SrcDir)polyself.c" /> <ClCompile Include="$(SrcDir)potion.c" />
<ClCompile Include="$(SrcDir)potion.c" /> <ClCompile Include="$(SrcDir)pray.c" />
<ClCompile Include="$(SrcDir)pray.c" /> <ClCompile Include="$(SrcDir)priest.c" />
<ClCompile Include="$(SrcDir)priest.c" /> <ClCompile Include="$(SrcDir)quest.c" />
<ClCompile Include="$(SrcDir)quest.c" /> <ClCompile Include="$(SrcDir)questpgr.c" />
<ClCompile Include="$(SrcDir)questpgr.c" /> <ClCompile Include="$(SrcDir)read.c" />
<ClCompile Include="$(SrcDir)read.c" /> <ClCompile Include="$(SrcDir)rect.c" />
<ClCompile Include="$(SrcDir)rect.c" /> <ClCompile Include="$(SrcDir)region.c" />
<ClCompile Include="$(SrcDir)region.c" /> <ClCompile Include="$(SrcDir)restore.c" />
<ClCompile Include="$(SrcDir)restore.c" /> <ClCompile Include="$(SrcDir)rip.c" />
<ClCompile Include="$(SrcDir)rip.c" /> <ClCompile Include="$(SrcDir)rnd.c" />
<ClCompile Include="$(SrcDir)rnd.c" /> <ClCompile Include="$(SrcDir)role.c" />
<ClCompile Include="$(SrcDir)role.c" /> <ClCompile Include="$(SrcDir)rumors.c" />
<ClCompile Include="$(SrcDir)rumors.c" /> <ClCompile Include="$(SrcDir)save.c" />
<ClCompile Include="$(SrcDir)save.c" /> <ClCompile Include="$(SrcDir)shk.c" />
<ClCompile Include="$(SrcDir)shk.c" /> <ClCompile Include="$(SrcDir)shknam.c" />
<ClCompile Include="$(SrcDir)shknam.c" /> <ClCompile Include="$(SrcDir)sit.c" />
<ClCompile Include="$(SrcDir)sit.c" /> <ClCompile Include="$(SrcDir)sounds.c" />
<ClCompile Include="$(SrcDir)sounds.c" /> <ClCompile Include="$(SrcDir)spell.c" />
<ClCompile Include="$(SrcDir)spell.c" /> <ClCompile Include="$(SrcDir)sp_lev.c" />
<ClCompile Include="$(SrcDir)sp_lev.c" /> <ClCompile Include="$(SrcDir)steal.c" />
<ClCompile Include="$(SrcDir)steal.c" /> <ClCompile Include="$(SrcDir)steed.c" />
<ClCompile Include="$(SrcDir)steed.c" /> <ClCompile Include="$(SrcDir)sys.c" />
<ClCompile Include="$(SrcDir)sys.c" /> <ClCompile Include="$(SrcDir)teleport.c" />
<ClCompile Include="$(SrcDir)teleport.c" /> <ClCompile Include="$(SrcDir)tile.c" />
<ClCompile Include="$(SrcDir)tile.c" /> <ClCompile Include="$(SrcDir)timeout.c" />
<ClCompile Include="$(SrcDir)timeout.c" /> <ClCompile Include="$(SrcDir)topten.c" />
<ClCompile Include="$(SrcDir)topten.c" /> <ClCompile Include="$(SrcDir)track.c" />
<ClCompile Include="$(SrcDir)track.c" /> <ClCompile Include="$(SrcDir)trap.c" />
<ClCompile Include="$(SrcDir)trap.c" /> <ClCompile Include="$(SrcDir)uhitm.c" />
<ClCompile Include="$(SrcDir)uhitm.c" /> <ClCompile Include="$(SrcDir)u_init.c" />
<ClCompile Include="$(SrcDir)u_init.c" /> <ClCompile Include="$(SrcDir)vault.c" />
<ClCompile Include="$(SrcDir)vault.c" /> <ClCompile Include="$(SrcDir)version.c" />
<ClCompile Include="$(SrcDir)version.c" /> <ClCompile Include="$(SrcDir)vision.c" />
<ClCompile Include="$(SrcDir)vision.c" /> <ClCompile Include="$(SrcDir)weapon.c" />
<ClCompile Include="$(SrcDir)weapon.c" /> <ClCompile Include="$(SrcDir)were.c" />
<ClCompile Include="$(SrcDir)were.c" /> <ClCompile Include="$(SrcDir)wield.c" />
<ClCompile Include="$(SrcDir)wield.c" /> <ClCompile Include="$(SrcDir)windows.c" />
<ClCompile Include="$(SrcDir)windows.c" /> <ClCompile Include="$(SrcDir)wizard.c" />
<ClCompile Include="$(SrcDir)wizard.c" /> <ClCompile Include="$(SrcDir)worm.c" />
<ClCompile Include="$(SrcDir)worm.c" /> <ClCompile Include="$(SrcDir)worn.c" />
<ClCompile Include="$(SrcDir)worn.c" /> <ClCompile Include="$(SrcDir)write.c" />
<ClCompile Include="$(SrcDir)write.c" /> <ClCompile Include="$(SrcDir)zap.c" />
<ClCompile Include="$(SrcDir)zap.c" /> <ClCompile Include="$(SysShareDir)cppregex.cpp" />
<ClCompile Include="$(SysShareDir)cppregex.cpp" /> <ClCompile Include="$(SysShareDir)nhlan.c" />
<ClCompile Include="$(SysShareDir)nhlan.c" /> <ClCompile Include="$(SysShareDir)pcmain.c" />
<ClCompile Include="$(SysShareDir)pcmain.c" /> <ClCompile Include="$(SysShareDir)pcsys.c" />
<ClCompile Include="$(SysShareDir)pcsys.c" /> <ClCompile Include="$(SysShareDir)pcunix.c" />
<ClCompile Include="$(SysShareDir)pcunix.c" /> <ClCompile Include="$(SysShareDir)random.c" />
<ClCompile Include="$(SysShareDir)random.c" /> <ClCompile Include="$(SysWinntDir)ntsound.c" />
<ClCompile Include="$(SysWinntDir)ntsound.c" /> <ClCompile Include="$(SysWinntDir)nttty.c" />
<ClCompile Include="$(SysWinntDir)nttty.c" /> <ClCompile Include="$(SysWinntDir)stubs.c">
<ClCompile Include="$(SysWinntDir)stubs.c"> <PreprocessorDefinitions>GUISTUB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>GUISTUB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile> </ClCompile>
<ClCompile Include="$(SysWinntDir)winnt.c" /> <ClCompile Include="$(SysWinntDir)winnt.c" />
<ClCompile Include="$(WinTtyDir)getline.c" /> <ClCompile Include="$(WinTtyDir)getline.c" />
<ClCompile Include="$(WinTtyDir)topl.c" /> <ClCompile Include="$(WinTtyDir)topl.c" />
<ClCompile Include="$(WinTtyDir)wintty.c" /> <ClCompile Include="$(WinTtyDir)wintty.c" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="$(IncDir)align.h" /> <ClInclude Include="$(IncDir)align.h" />
<ClInclude Include="$(IncDir)artifact.h" /> <ClInclude Include="$(IncDir)artifact.h" />
<ClInclude Include="$(IncDir)artilist.h" /> <ClInclude Include="$(IncDir)artilist.h" />
<ClInclude Include="$(IncDir)attrib.h" /> <ClInclude Include="$(IncDir)attrib.h" />
<ClInclude Include="$(IncDir)botl.h" /> <ClInclude Include="$(IncDir)botl.h" />
<ClInclude Include="$(IncDir)color.h" /> <ClInclude Include="$(IncDir)color.h" />
<ClInclude Include="$(IncDir)config.h" /> <ClInclude Include="$(IncDir)config.h" />
<ClInclude Include="$(IncDir)config1.h" /> <ClInclude Include="$(IncDir)config1.h" />
<ClInclude Include="$(IncDir)context.h" /> <ClInclude Include="$(IncDir)context.h" />
<ClInclude Include="$(IncDir)coord.h" /> <ClInclude Include="$(IncDir)coord.h" />
<ClInclude Include="$(IncDir)date.h" /> <ClInclude Include="$(IncDir)date.h" />
<ClInclude Include="$(IncDir)decl.h" /> <ClInclude Include="$(IncDir)decl.h" />
<ClInclude Include="$(IncDir)display.h" /> <ClInclude Include="$(IncDir)display.h" />
<ClInclude Include="$(IncDir)dlb.h" /> <ClInclude Include="$(IncDir)dlb.h" />
<ClInclude Include="$(IncDir)dungeon.h" /> <ClInclude Include="$(IncDir)dungeon.h" />
<ClInclude Include="$(IncDir)engrave.h" /> <ClInclude Include="$(IncDir)engrave.h" />
<ClInclude Include="$(IncDir)extern.h" /> <ClInclude Include="$(IncDir)extern.h" />
<ClInclude Include="$(IncDir)flag.h" /> <ClInclude Include="$(IncDir)flag.h" />
<ClInclude Include="$(IncDir)func_tab.h" /> <ClInclude Include="$(IncDir)func_tab.h" />
<ClInclude Include="$(IncDir)global.h" /> <ClInclude Include="$(IncDir)global.h" />
<ClInclude Include="$(IncDir)hack.h" /> <ClInclude Include="$(IncDir)hack.h" />
<ClInclude Include="$(IncDir)lev.h" /> <ClInclude Include="$(IncDir)lev.h" />
<ClInclude Include="$(IncDir)mextra.h" /> <ClInclude Include="$(IncDir)mextra.h" />
<ClInclude Include="$(IncDir)mfndpos.h" /> <ClInclude Include="$(IncDir)mfndpos.h" />
<ClInclude Include="$(IncDir)mkroom.h" /> <ClInclude Include="$(IncDir)mkroom.h" />
<ClInclude Include="$(IncDir)monattk.h" /> <ClInclude Include="$(IncDir)monattk.h" />
<ClInclude Include="$(IncDir)mondata.h" /> <ClInclude Include="$(IncDir)mondata.h" />
<ClInclude Include="$(IncDir)monflag.h" /> <ClInclude Include="$(IncDir)monflag.h" />
<ClInclude Include="$(IncDir)monst.h" /> <ClInclude Include="$(IncDir)monst.h" />
<ClInclude Include="$(IncDir)monsym.h" /> <ClInclude Include="$(IncDir)monsym.h" />
<ClInclude Include="$(IncDir)ntconf.h" /> <ClInclude Include="$(IncDir)ntconf.h" />
<ClInclude Include="$(IncDir)obj.h" /> <ClInclude Include="$(IncDir)obj.h" />
<ClInclude Include="$(IncDir)objclass.h" /> <ClInclude Include="$(IncDir)objclass.h" />
<ClInclude Include="$(IncDir)onames.h" /> <ClInclude Include="$(IncDir)onames.h" />
<ClInclude Include="$(IncDir)patchlevel.h" /> <ClInclude Include="$(IncDir)patchlevel.h" />
<ClInclude Include="$(IncDir)permonst.h" /> <ClInclude Include="$(IncDir)permonst.h" />
<ClInclude Include="$(IncDir)pm.h" /> <ClInclude Include="$(IncDir)pm.h" />
<ClInclude Include="$(IncDir)prop.h" /> <ClInclude Include="$(IncDir)prop.h" />
<ClInclude Include="$(IncDir)qtext.h" /> <ClInclude Include="$(IncDir)qtext.h" />
<ClInclude Include="$(IncDir)quest.h" /> <ClInclude Include="$(IncDir)quest.h" />
<ClInclude Include="$(IncDir)rect.h" /> <ClInclude Include="$(IncDir)rect.h" />
<ClInclude Include="$(IncDir)region.h" /> <ClInclude Include="$(IncDir)region.h" />
<ClInclude Include="$(IncDir)rm.h" /> <ClInclude Include="$(IncDir)rm.h" />
<ClInclude Include="$(IncDir)skills.h" /> <ClInclude Include="$(IncDir)skills.h" />
<ClInclude Include="$(IncDir)spell.h" /> <ClInclude Include="$(IncDir)spell.h" />
<ClInclude Include="$(IncDir)sp_lev.h" /> <ClInclude Include="$(IncDir)sp_lev.h" />
<ClInclude Include="$(IncDir)timeout.h" /> <ClInclude Include="$(IncDir)timeout.h" />
<ClInclude Include="$(IncDir)tradstdc.h" /> <ClInclude Include="$(IncDir)tradstdc.h" />
<ClInclude Include="$(IncDir)trap.h" /> <ClInclude Include="$(IncDir)trap.h" />
<ClInclude Include="$(IncDir)vision.h" /> <ClInclude Include="$(IncDir)vision.h" />
<ClInclude Include="$(IncDir)winprocs.h" /> <ClInclude Include="$(IncDir)winprocs.h" />
<ClInclude Include="$(IncDir)wintty.h" /> <ClInclude Include="$(IncDir)wintty.h" />
<ClInclude Include="$(IncDir)wintype.h" /> <ClInclude Include="$(IncDir)wintype.h" />
<ClInclude Include="$(IncDir)you.h" /> <ClInclude Include="$(IncDir)you.h" />
<ClInclude Include="$(IncDir)youprop.h" /> <ClInclude Include="$(IncDir)youprop.h" />
<ClInclude Include="$(WinWin32Dir)nhresource.h" /> <ClInclude Include="$(WinWin32Dir)nhresource.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="$(WinWin32Dir)NetHack.rc" />
</ItemGroup>
<ItemGroup>
<Image Include="$(WinWin32Dir)nethack.ico" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<ResourceCompile Include="$(WinWin32Dir)NetHack.rc" />
</ItemGroup>
<ItemGroup>
<Image Include="$(WinWin32Dir)nethack.ico" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<Target Name="AfterBuild"> <Target Name="AfterBuild">
<MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" /> <MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
</Target> </Target>
<Target Name="AfterClean"> <Target Name="AfterClean">
<MSBuild Projects="afternethack.proj" Targets="Clean" Properties="Configuration=$(Configuration)" /> <MSBuild Projects="afternethack.proj" Targets="Clean" Properties="Configuration=$(Configuration)" />
</Target> </Target>
<Target Name="AfterRebuild"> <Target Name="AfterRebuild">
<MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" /> <MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
</Target> </Target>
</Project> </Project>
+164 -165
View File
@@ -1,192 +1,191 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="config.props" /> <Import Project="config.props" />
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<ProjectGuid>{CEC5D360-8804-454F-8591-002184C23499}</ProjectGuid> <ProjectGuid>{CEC5D360-8804-454F-8591-002184C23499}</ProjectGuid>
<RootNamespace>NetHackW</RootNamespace> <RootNamespace>NetHackW</RootNamespace>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="default.props" /> <Import Project="default.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Import Project="common.props" /> <Import Project="common.props" />
<Import Project="dirs.props" /> <Import Project="dirs.props" />
<Import Project="files.props" /> <Import Project="files.props" />
<PropertyGroup> <PropertyGroup>
<OutDir>$(BinDir)</OutDir> <OutDir>$(BinDir)</OutDir>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup> <ItemDefinitionGroup>
<ClCompile> <ClCompile>
<AdditionalOptions>/Gs /Oi- %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>/Gs /Oi- %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<OmitFramePointers>true</OmitFramePointers> <OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>$(WinWin32Dir);$(IncDir);$(SysWinntDir);$(SysShareDir);$(WinShareDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(WinWin32Dir);$(IncDir);$(SysWinntDir);$(SysShareDir);$(WinShareDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>TILES;_WINDOWS;DLB;MSWIN_GRAPHICS;WIN32CONNDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>TILES;_WINDOWS;DLB;MSWIN_GRAPHICS;WIN32CONNDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile> </ClCompile>
<ResourceCompile> <ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture> <Culture>0x0409</Culture>
</ResourceCompile> </ResourceCompile>
<Link> <Link>
<!-- TODO common.props has SubSystem Console --> <!-- TODO common.props has SubSystem Console -->
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<AdditionalDependencies>comctl32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>comctl32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="$(SrcDir)allmain.c" /> <ClCompile Include="$(SrcDir)allmain.c" />
<ClCompile Include="$(SrcDir)alloc.c" /> <ClCompile Include="$(SrcDir)alloc.c" />
<ClCompile Include="$(SrcDir)apply.c" /> <ClCompile Include="$(SrcDir)apply.c" />
<ClCompile Include="$(SrcDir)artifact.c" /> <ClCompile Include="$(SrcDir)artifact.c" />
<ClCompile Include="$(SrcDir)attrib.c" /> <ClCompile Include="$(SrcDir)attrib.c" />
<ClCompile Include="$(SrcDir)ball.c" /> <ClCompile Include="$(SrcDir)ball.c" />
<ClCompile Include="$(SrcDir)bones.c" /> <ClCompile Include="$(SrcDir)bones.c" />
<ClCompile Include="$(SrcDir)botl.c" /> <ClCompile Include="$(SrcDir)botl.c" />
<ClCompile Include="$(SrcDir)cmd.c" /> <ClCompile Include="$(SrcDir)cmd.c" />
<ClCompile Include="$(SrcDir)dbridge.c" /> <ClCompile Include="$(SrcDir)dbridge.c" />
<ClCompile Include="$(SrcDir)decl.c" /> <ClCompile Include="$(SrcDir)decl.c" />
<ClCompile Include="$(SrcDir)detect.c" /> <ClCompile Include="$(SrcDir)detect.c" />
<ClCompile Include="$(SrcDir)dig.c" /> <ClCompile Include="$(SrcDir)dig.c" />
<ClCompile Include="$(SrcDir)display.c" /> <ClCompile Include="$(SrcDir)display.c" />
<ClCompile Include="$(SrcDir)dlb.c" /> <ClCompile Include="$(SrcDir)dlb.c" />
<ClCompile Include="$(SrcDir)do.c" /> <ClCompile Include="$(SrcDir)do.c" />
<ClCompile Include="$(SrcDir)dog.c" /> <ClCompile Include="$(SrcDir)dog.c" />
<ClCompile Include="$(SrcDir)dogmove.c" /> <ClCompile Include="$(SrcDir)dogmove.c" />
<ClCompile Include="$(SrcDir)dokick.c" /> <ClCompile Include="$(SrcDir)dokick.c" />
<ClCompile Include="$(SrcDir)dothrow.c" /> <ClCompile Include="$(SrcDir)dothrow.c" />
<ClCompile Include="$(SrcDir)do_name.c" /> <ClCompile Include="$(SrcDir)do_name.c" />
<ClCompile Include="$(SrcDir)do_wear.c" /> <ClCompile Include="$(SrcDir)do_wear.c" />
<ClCompile Include="$(SrcDir)drawing.c" /> <ClCompile Include="$(SrcDir)drawing.c" />
<ClCompile Include="$(SrcDir)dungeon.c" /> <ClCompile Include="$(SrcDir)dungeon.c" />
<ClCompile Include="$(SrcDir)eat.c" /> <ClCompile Include="$(SrcDir)eat.c" />
<ClCompile Include="$(SrcDir)end.c" /> <ClCompile Include="$(SrcDir)end.c" />
<ClCompile Include="$(SrcDir)engrave.c" /> <ClCompile Include="$(SrcDir)engrave.c" />
<ClCompile Include="$(SrcDir)exper.c" /> <ClCompile Include="$(SrcDir)exper.c" />
<ClCompile Include="$(SrcDir)explode.c" /> <ClCompile Include="$(SrcDir)explode.c" />
<ClCompile Include="$(SrcDir)extralev.c" /> <ClCompile Include="$(SrcDir)extralev.c" />
<ClCompile Include="$(SrcDir)files.c" /> <ClCompile Include="$(SrcDir)files.c" />
<ClCompile Include="$(SrcDir)fountain.c" /> <ClCompile Include="$(SrcDir)fountain.c" />
<ClCompile Include="$(SrcDir)hack.c" /> <ClCompile Include="$(SrcDir)hack.c" />
<ClCompile Include="$(SrcDir)hacklib.c" /> <ClCompile Include="$(SrcDir)hacklib.c" />
<ClCompile Include="$(SrcDir)invent.c" /> <ClCompile Include="$(SrcDir)invent.c" />
<ClCompile Include="$(SrcDir)light.c" /> <ClCompile Include="$(SrcDir)light.c" />
<ClCompile Include="$(SrcDir)lock.c" /> <ClCompile Include="$(SrcDir)lock.c" />
<ClCompile Include="$(SrcDir)mail.c" /> <ClCompile Include="$(SrcDir)mail.c" />
<ClCompile Include="$(SrcDir)makemon.c" /> <ClCompile Include="$(SrcDir)makemon.c" />
<ClCompile Include="$(SrcDir)mapglyph.c" /> <ClCompile Include="$(SrcDir)mapglyph.c" />
<ClCompile Include="$(SrcDir)mcastu.c" /> <ClCompile Include="$(SrcDir)mcastu.c" />
<ClCompile Include="$(SrcDir)mhitm.c" /> <ClCompile Include="$(SrcDir)mhitm.c" />
<ClCompile Include="$(SrcDir)mhitu.c" /> <ClCompile Include="$(SrcDir)mhitu.c" />
<ClCompile Include="$(SrcDir)minion.c" /> <ClCompile Include="$(SrcDir)minion.c" />
<ClCompile Include="$(SrcDir)mklev.c" /> <ClCompile Include="$(SrcDir)mklev.c" />
<ClCompile Include="$(SrcDir)mkmap.c" /> <ClCompile Include="$(SrcDir)mkmap.c" />
<ClCompile Include="$(SrcDir)mkmaze.c" /> <ClCompile Include="$(SrcDir)mkmaze.c" />
<ClCompile Include="$(SrcDir)mkobj.c" /> <ClCompile Include="$(SrcDir)mkobj.c" />
<ClCompile Include="$(SrcDir)mkroom.c" /> <ClCompile Include="$(SrcDir)mkroom.c" />
<ClCompile Include="$(SrcDir)mon.c" /> <ClCompile Include="$(SrcDir)mon.c" />
<ClCompile Include="$(SrcDir)mondata.c" /> <ClCompile Include="$(SrcDir)mondata.c" />
<ClCompile Include="$(SrcDir)monmove.c" /> <ClCompile Include="$(SrcDir)monmove.c" />
<ClCompile Include="$(SrcDir)monst.c" /> <ClCompile Include="$(SrcDir)monst.c" />
<ClCompile Include="$(SrcDir)monstr.c" /> <ClCompile Include="$(SrcDir)mplayer.c" />
<ClCompile Include="$(SrcDir)mplayer.c" /> <ClCompile Include="$(SrcDir)mthrowu.c" />
<ClCompile Include="$(SrcDir)mthrowu.c" /> <ClCompile Include="$(SrcDir)muse.c" />
<ClCompile Include="$(SrcDir)muse.c" /> <ClCompile Include="$(SrcDir)music.c" />
<ClCompile Include="$(SrcDir)music.c" /> <ClCompile Include="$(SrcDir)objects.c" />
<ClCompile Include="$(SrcDir)objects.c" /> <ClCompile Include="$(SrcDir)objnam.c" />
<ClCompile Include="$(SrcDir)objnam.c" /> <ClCompile Include="$(SrcDir)options.c" />
<ClCompile Include="$(SrcDir)options.c" /> <ClCompile Include="$(SrcDir)o_init.c" />
<ClCompile Include="$(SrcDir)o_init.c" /> <ClCompile Include="$(SrcDir)pager.c" />
<ClCompile Include="$(SrcDir)pager.c" /> <ClCompile Include="$(SrcDir)pickup.c" />
<ClCompile Include="$(SrcDir)pickup.c" /> <ClCompile Include="$(SrcDir)pline.c" />
<ClCompile Include="$(SrcDir)pline.c" /> <ClCompile Include="$(SrcDir)polyself.c" />
<ClCompile Include="$(SrcDir)polyself.c" /> <ClCompile Include="$(SrcDir)potion.c" />
<ClCompile Include="$(SrcDir)potion.c" /> <ClCompile Include="$(SrcDir)pray.c" />
<ClCompile Include="$(SrcDir)pray.c" /> <ClCompile Include="$(SrcDir)priest.c" />
<ClCompile Include="$(SrcDir)priest.c" /> <ClCompile Include="$(SrcDir)quest.c" />
<ClCompile Include="$(SrcDir)quest.c" /> <ClCompile Include="$(SrcDir)questpgr.c" />
<ClCompile Include="$(SrcDir)questpgr.c" /> <ClCompile Include="$(SrcDir)read.c" />
<ClCompile Include="$(SrcDir)read.c" /> <ClCompile Include="$(SrcDir)rect.c" />
<ClCompile Include="$(SrcDir)rect.c" /> <ClCompile Include="$(SrcDir)region.c" />
<ClCompile Include="$(SrcDir)region.c" /> <ClCompile Include="$(SrcDir)restore.c" />
<ClCompile Include="$(SrcDir)restore.c" /> <ClCompile Include="$(SrcDir)rip.c" />
<ClCompile Include="$(SrcDir)rip.c" /> <ClCompile Include="$(SrcDir)rnd.c" />
<ClCompile Include="$(SrcDir)rnd.c" /> <ClCompile Include="$(SrcDir)role.c" />
<ClCompile Include="$(SrcDir)role.c" /> <ClCompile Include="$(SrcDir)rumors.c" />
<ClCompile Include="$(SrcDir)rumors.c" /> <ClCompile Include="$(SrcDir)save.c" />
<ClCompile Include="$(SrcDir)save.c" /> <ClCompile Include="$(SrcDir)shk.c" />
<ClCompile Include="$(SrcDir)shk.c" /> <ClCompile Include="$(SrcDir)shknam.c" />
<ClCompile Include="$(SrcDir)shknam.c" /> <ClCompile Include="$(SrcDir)sit.c" />
<ClCompile Include="$(SrcDir)sit.c" /> <ClCompile Include="$(SrcDir)sounds.c" />
<ClCompile Include="$(SrcDir)sounds.c" /> <ClCompile Include="$(SrcDir)spell.c" />
<ClCompile Include="$(SrcDir)spell.c" /> <ClCompile Include="$(SrcDir)sp_lev.c" />
<ClCompile Include="$(SrcDir)sp_lev.c" /> <ClCompile Include="$(SrcDir)steal.c" />
<ClCompile Include="$(SrcDir)steal.c" /> <ClCompile Include="$(SrcDir)steed.c" />
<ClCompile Include="$(SrcDir)steed.c" /> <ClCompile Include="$(SrcDir)sys.c" />
<ClCompile Include="$(SrcDir)sys.c" /> <ClCompile Include="$(SrcDir)teleport.c" />
<ClCompile Include="$(SrcDir)teleport.c" /> <ClCompile Include="$(SrcDir)tile.c" />
<ClCompile Include="$(SrcDir)tile.c" /> <ClCompile Include="$(SrcDir)timeout.c" />
<ClCompile Include="$(SrcDir)timeout.c" /> <ClCompile Include="$(SrcDir)topten.c" />
<ClCompile Include="$(SrcDir)topten.c" /> <ClCompile Include="$(SrcDir)track.c" />
<ClCompile Include="$(SrcDir)track.c" /> <ClCompile Include="$(SrcDir)trap.c" />
<ClCompile Include="$(SrcDir)trap.c" /> <ClCompile Include="$(SrcDir)uhitm.c" />
<ClCompile Include="$(SrcDir)uhitm.c" /> <ClCompile Include="$(SrcDir)u_init.c" />
<ClCompile Include="$(SrcDir)u_init.c" /> <ClCompile Include="$(SrcDir)vault.c" />
<ClCompile Include="$(SrcDir)vault.c" /> <ClCompile Include="$(SrcDir)version.c" />
<ClCompile Include="$(SrcDir)version.c" /> <ClCompile Include="$(SrcDir)vision.c" />
<ClCompile Include="$(SrcDir)vision.c" /> <ClCompile Include="$(SrcDir)vis_tab.c" />
<ClCompile Include="$(SrcDir)vis_tab.c" /> <ClCompile Include="$(SrcDir)weapon.c" />
<ClCompile Include="$(SrcDir)weapon.c" /> <ClCompile Include="$(SrcDir)were.c" />
<ClCompile Include="$(SrcDir)were.c" /> <ClCompile Include="$(SrcDir)wield.c" />
<ClCompile Include="$(SrcDir)wield.c" /> <ClCompile Include="$(SrcDir)windows.c" />
<ClCompile Include="$(SrcDir)windows.c" /> <ClCompile Include="$(SrcDir)wizard.c" />
<ClCompile Include="$(SrcDir)wizard.c" /> <ClCompile Include="$(SrcDir)worm.c" />
<ClCompile Include="$(SrcDir)worm.c" /> <ClCompile Include="$(SrcDir)worn.c" />
<ClCompile Include="$(SrcDir)worn.c" /> <ClCompile Include="$(SrcDir)write.c" />
<ClCompile Include="$(SrcDir)write.c" /> <ClCompile Include="$(SrcDir)zap.c" />
<ClCompile Include="$(SrcDir)zap.c" /> <ClCompile Include="$(SysShareDir)cppregex.cpp" />
<ClCompile Include="$(SysShareDir)cppregex.cpp" /> <ClCompile Include="$(SysShareDir)nhlan.c" />
<ClCompile Include="$(SysShareDir)nhlan.c" /> <ClCompile Include="$(SysShareDir)pcmain.c" />
<ClCompile Include="$(SysShareDir)pcmain.c" /> <ClCompile Include="$(SysShareDir)pcsys.c" />
<ClCompile Include="$(SysShareDir)pcsys.c" /> <ClCompile Include="$(SysShareDir)pcunix.c" />
<ClCompile Include="$(SysShareDir)pcunix.c" /> <ClCompile Include="$(SysShareDir)random.c" />
<ClCompile Include="$(SysShareDir)random.c" /> <ClCompile Include="$(SysWinntDir)ntsound.c" />
<ClCompile Include="$(SysWinntDir)ntsound.c" /> <ClCompile Include="$(SysWinntDir)stubs.c">
<ClCompile Include="$(SysWinntDir)stubs.c"> <PreprocessorDefinitions>TTYSTUB;</PreprocessorDefinitions>
<PreprocessorDefinitions>TTYSTUB;</PreprocessorDefinitions>
</ClCompile> </ClCompile>
<ClCompile Include="$(SysWinntDir)winnt.c" /> <ClCompile Include="$(SysWinntDir)winnt.c" />
<ClCompile Include="$(WinWin32Dir)mhaskyn.c" /> <ClCompile Include="$(WinWin32Dir)mhaskyn.c" />
<ClCompile Include="$(WinWin32Dir)mhdlg.c" /> <ClCompile Include="$(WinWin32Dir)mhdlg.c" />
<ClCompile Include="$(WinWin32Dir)mhfont.c" /> <ClCompile Include="$(WinWin32Dir)mhfont.c" />
<ClCompile Include="$(WinWin32Dir)mhinput.c" /> <ClCompile Include="$(WinWin32Dir)mhinput.c" />
<ClCompile Include="$(WinWin32Dir)mhmain.c" /> <ClCompile Include="$(WinWin32Dir)mhmain.c" />
<ClCompile Include="$(WinWin32Dir)mhmap.c" /> <ClCompile Include="$(WinWin32Dir)mhmap.c" />
<ClCompile Include="$(WinWin32Dir)mhmenu.c" /> <ClCompile Include="$(WinWin32Dir)mhmenu.c" />
<ClCompile Include="$(WinWin32Dir)mhmsgwnd.c" /> <ClCompile Include="$(WinWin32Dir)mhmsgwnd.c" />
<ClCompile Include="$(WinWin32Dir)mhrip.c" /> <ClCompile Include="$(WinWin32Dir)mhrip.c" />
<ClCompile Include="$(WinWin32Dir)mhsplash.c" /> <ClCompile Include="$(WinWin32Dir)mhsplash.c" />
<ClCompile Include="$(WinWin32Dir)mhstatus.c" /> <ClCompile Include="$(WinWin32Dir)mhstatus.c" />
<ClCompile Include="$(WinWin32Dir)mhtext.c" /> <ClCompile Include="$(WinWin32Dir)mhtext.c" />
<ClCompile Include="$(WinWin32Dir)mswproc.c" /> <ClCompile Include="$(WinWin32Dir)mswproc.c" />
<ClCompile Include="$(WinWin32Dir)winhack.c" /> <ClCompile Include="$(WinWin32Dir)winhack.c" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="$(WinWin32Dir)winhack.rc" /> <ResourceCompile Include="$(WinWin32Dir)winhack.rc" />
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<Target Name="AfterBuild"> <Target Name="AfterBuild">
<MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" /> <MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
</Target> </Target>
<Target Name="AfterClean"> <Target Name="AfterClean">
<MSBuild Projects="afternethack.proj" Targets="Clean" Properties="Configuration=$(Configuration)" /> <MSBuild Projects="afternethack.proj" Targets="Clean" Properties="Configuration=$(Configuration)" />
</Target> </Target>
<Target Name="AfterRebuild"> <Target Name="AfterRebuild">
<MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" /> <MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
</Target> </Target>
</Project> </Project>
-1
View File
@@ -7,7 +7,6 @@
<Exec Command="$(ToolsDir)makedefs.exe -v" WorkingDirectory="$(UtilDir)"/> <Exec Command="$(ToolsDir)makedefs.exe -v" WorkingDirectory="$(UtilDir)"/>
<Exec Command="$(ToolsDir)makedefs.exe -o" WorkingDirectory="$(UtilDir)"/> <Exec Command="$(ToolsDir)makedefs.exe -o" WorkingDirectory="$(UtilDir)"/>
<Exec Command="$(ToolsDir)makedefs.exe -p" WorkingDirectory="$(UtilDir)"/> <Exec Command="$(ToolsDir)makedefs.exe -p" WorkingDirectory="$(UtilDir)"/>
<Exec Command="$(ToolsDir)makedefs.exe -m" WorkingDirectory="$(UtilDir)"/>
<Exec Command="$(ToolsDir)makedefs.exe -z" WorkingDirectory="$(UtilDir)"/> <Exec Command="$(ToolsDir)makedefs.exe -z" WorkingDirectory="$(UtilDir)"/>
<Exec Command="$(ToolsDir)makedefs.exe -d" WorkingDirectory="$(DatDir)"/> <Exec Command="$(ToolsDir)makedefs.exe -d" WorkingDirectory="$(DatDir)"/>
<Exec Command="$(ToolsDir)makedefs.exe -r" WorkingDirectory="$(DatDir)"/> <Exec Command="$(ToolsDir)makedefs.exe -r" WorkingDirectory="$(DatDir)"/>
-2
View File
@@ -8,8 +8,6 @@
<Defs Include = "$(IncDir)onames.h"/> <Defs Include = "$(IncDir)onames.h"/>
<!-- -p --> <!-- -p -->
<Defs Include = "$(IncDir)pm.h"/> <Defs Include = "$(IncDir)pm.h"/>
<!-- -m -->
<Defs Include = "$(SrcDir)monstr.c"/>
<!-- -z --> <!-- -z -->
<Defs Include = "$(IncDir)vis_tab.h"/> <Defs Include = "$(IncDir)vis_tab.h"/>
<Defs Include = "$(SrcDir)vis_tab.c"/> <Defs Include = "$(SrcDir)vis_tab.c"/>
+232 -233
View File
@@ -1,233 +1,232 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="config.props" /> <Import Project="config.props" />
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<ProjectGuid>{609BC774-C6F8-4B2B-AA7D-5B3D0EA95751}</ProjectGuid> <ProjectGuid>{609BC774-C6F8-4B2B-AA7D-5B3D0EA95751}</ProjectGuid>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
<RootNamespace>NetHack</RootNamespace> <RootNamespace>NetHack</RootNamespace>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="default.props" /> <Import Project="default.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Import Project="console.props" /> <Import Project="console.props" />
<Import Project="common.props" /> <Import Project="common.props" />
<Import Project="dirs.props" /> <Import Project="dirs.props" />
<Import Project="files.props" /> <Import Project="files.props" />
<PropertyGroup> <PropertyGroup>
<OutDir>$(BinDir)</OutDir> <OutDir>$(BinDir)</OutDir>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup> <ItemDefinitionGroup>
<ClCompile> <ClCompile>
<AdditionalOptions>/Gs /Oi- %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>/Gs /Oi- %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<InlineFunctionExpansion>Default</InlineFunctionExpansion> <InlineFunctionExpansion>Default</InlineFunctionExpansion>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers> <OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>$(WinWin32Dir);$(IncDir);$(SysWinntDir);$(SysShareDir);$(WinShareDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(WinWin32Dir);$(IncDir);$(SysWinntDir);$(SysShareDir);$(WinShareDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>TILES;WIN32CON;DLB;MSWIN_GRAPHICS;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>TILES;WIN32CON;DLB;MSWIN_GRAPHICS;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile> </ClCompile>
<Link> <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;%(AdditionalDependencies)</AdditionalDependencies> <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;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="$(SrcDir)allmain.c" /> <ClCompile Include="$(SrcDir)allmain.c" />
<ClCompile Include="$(SrcDir)alloc.c" /> <ClCompile Include="$(SrcDir)alloc.c" />
<ClCompile Include="$(SrcDir)apply.c" /> <ClCompile Include="$(SrcDir)apply.c" />
<ClCompile Include="$(SrcDir)artifact.c" /> <ClCompile Include="$(SrcDir)artifact.c" />
<ClCompile Include="$(SrcDir)attrib.c" /> <ClCompile Include="$(SrcDir)attrib.c" />
<ClCompile Include="$(SrcDir)ball.c" /> <ClCompile Include="$(SrcDir)ball.c" />
<ClCompile Include="$(SrcDir)bones.c" /> <ClCompile Include="$(SrcDir)bones.c" />
<ClCompile Include="$(SrcDir)botl.c" /> <ClCompile Include="$(SrcDir)botl.c" />
<ClCompile Include="$(SrcDir)cmd.c" /> <ClCompile Include="$(SrcDir)cmd.c" />
<ClCompile Include="$(SrcDir)dbridge.c" /> <ClCompile Include="$(SrcDir)dbridge.c" />
<ClCompile Include="$(SrcDir)decl.c" /> <ClCompile Include="$(SrcDir)decl.c" />
<ClCompile Include="$(SrcDir)detect.c" /> <ClCompile Include="$(SrcDir)detect.c" />
<ClCompile Include="$(SrcDir)dig.c" /> <ClCompile Include="$(SrcDir)dig.c" />
<ClCompile Include="$(SrcDir)display.c" /> <ClCompile Include="$(SrcDir)display.c" />
<ClCompile Include="$(SrcDir)dlb.c" /> <ClCompile Include="$(SrcDir)dlb.c" />
<ClCompile Include="$(SrcDir)do.c" /> <ClCompile Include="$(SrcDir)do.c" />
<ClCompile Include="$(SrcDir)dog.c" /> <ClCompile Include="$(SrcDir)dog.c" />
<ClCompile Include="$(SrcDir)dogmove.c" /> <ClCompile Include="$(SrcDir)dogmove.c" />
<ClCompile Include="$(SrcDir)dokick.c" /> <ClCompile Include="$(SrcDir)dokick.c" />
<ClCompile Include="$(SrcDir)dothrow.c" /> <ClCompile Include="$(SrcDir)dothrow.c" />
<ClCompile Include="$(SrcDir)do_name.c" /> <ClCompile Include="$(SrcDir)do_name.c" />
<ClCompile Include="$(SrcDir)do_wear.c" /> <ClCompile Include="$(SrcDir)do_wear.c" />
<ClCompile Include="$(SrcDir)drawing.c" /> <ClCompile Include="$(SrcDir)drawing.c" />
<ClCompile Include="$(SrcDir)dungeon.c" /> <ClCompile Include="$(SrcDir)dungeon.c" />
<ClCompile Include="$(SrcDir)eat.c" /> <ClCompile Include="$(SrcDir)eat.c" />
<ClCompile Include="$(SrcDir)end.c" /> <ClCompile Include="$(SrcDir)end.c" />
<ClCompile Include="$(SrcDir)engrave.c" /> <ClCompile Include="$(SrcDir)engrave.c" />
<ClCompile Include="$(SrcDir)exper.c" /> <ClCompile Include="$(SrcDir)exper.c" />
<ClCompile Include="$(SrcDir)explode.c" /> <ClCompile Include="$(SrcDir)explode.c" />
<ClCompile Include="$(SrcDir)extralev.c" /> <ClCompile Include="$(SrcDir)extralev.c" />
<ClCompile Include="$(SrcDir)files.c" /> <ClCompile Include="$(SrcDir)files.c" />
<ClCompile Include="$(SrcDir)fountain.c" /> <ClCompile Include="$(SrcDir)fountain.c" />
<ClCompile Include="$(SrcDir)hack.c" /> <ClCompile Include="$(SrcDir)hack.c" />
<ClCompile Include="$(SrcDir)hacklib.c" /> <ClCompile Include="$(SrcDir)hacklib.c" />
<ClCompile Include="$(SrcDir)invent.c" /> <ClCompile Include="$(SrcDir)invent.c" />
<ClCompile Include="$(SrcDir)light.c" /> <ClCompile Include="$(SrcDir)light.c" />
<ClCompile Include="$(SrcDir)lock.c" /> <ClCompile Include="$(SrcDir)lock.c" />
<ClCompile Include="$(SrcDir)mail.c" /> <ClCompile Include="$(SrcDir)mail.c" />
<ClCompile Include="$(SrcDir)makemon.c" /> <ClCompile Include="$(SrcDir)makemon.c" />
<ClCompile Include="$(SrcDir)mapglyph.c" /> <ClCompile Include="$(SrcDir)mapglyph.c" />
<ClCompile Include="$(SrcDir)mcastu.c" /> <ClCompile Include="$(SrcDir)mcastu.c" />
<ClCompile Include="$(SrcDir)mhitm.c" /> <ClCompile Include="$(SrcDir)mhitm.c" />
<ClCompile Include="$(SrcDir)mhitu.c" /> <ClCompile Include="$(SrcDir)mhitu.c" />
<ClCompile Include="$(SrcDir)minion.c" /> <ClCompile Include="$(SrcDir)minion.c" />
<ClCompile Include="$(SrcDir)mklev.c" /> <ClCompile Include="$(SrcDir)mklev.c" />
<ClCompile Include="$(SrcDir)mkmap.c" /> <ClCompile Include="$(SrcDir)mkmap.c" />
<ClCompile Include="$(SrcDir)mkmaze.c" /> <ClCompile Include="$(SrcDir)mkmaze.c" />
<ClCompile Include="$(SrcDir)mkobj.c" /> <ClCompile Include="$(SrcDir)mkobj.c" />
<ClCompile Include="$(SrcDir)mkroom.c" /> <ClCompile Include="$(SrcDir)mkroom.c" />
<ClCompile Include="$(SrcDir)mon.c" /> <ClCompile Include="$(SrcDir)mon.c" />
<ClCompile Include="$(SrcDir)mondata.c" /> <ClCompile Include="$(SrcDir)mondata.c" />
<ClCompile Include="$(SrcDir)monmove.c" /> <ClCompile Include="$(SrcDir)monmove.c" />
<ClCompile Include="$(SrcDir)monst.c" /> <ClCompile Include="$(SrcDir)monst.c" />
<ClCompile Include="$(SrcDir)monstr.c" /> <ClCompile Include="$(SrcDir)mplayer.c" />
<ClCompile Include="$(SrcDir)mplayer.c" /> <ClCompile Include="$(SrcDir)mthrowu.c" />
<ClCompile Include="$(SrcDir)mthrowu.c" /> <ClCompile Include="$(SrcDir)muse.c" />
<ClCompile Include="$(SrcDir)muse.c" /> <ClCompile Include="$(SrcDir)music.c" />
<ClCompile Include="$(SrcDir)music.c" /> <ClCompile Include="$(SrcDir)objects.c" />
<ClCompile Include="$(SrcDir)objects.c" /> <ClCompile Include="$(SrcDir)objnam.c" />
<ClCompile Include="$(SrcDir)objnam.c" /> <ClCompile Include="$(SrcDir)options.c" />
<ClCompile Include="$(SrcDir)options.c" /> <ClCompile Include="$(SrcDir)o_init.c" />
<ClCompile Include="$(SrcDir)o_init.c" /> <ClCompile Include="$(SrcDir)pager.c" />
<ClCompile Include="$(SrcDir)pager.c" /> <ClCompile Include="$(SrcDir)pickup.c" />
<ClCompile Include="$(SrcDir)pickup.c" /> <ClCompile Include="$(SrcDir)pline.c" />
<ClCompile Include="$(SrcDir)pline.c" /> <ClCompile Include="$(SrcDir)polyself.c" />
<ClCompile Include="$(SrcDir)polyself.c" /> <ClCompile Include="$(SrcDir)potion.c" />
<ClCompile Include="$(SrcDir)potion.c" /> <ClCompile Include="$(SrcDir)pray.c" />
<ClCompile Include="$(SrcDir)pray.c" /> <ClCompile Include="$(SrcDir)priest.c" />
<ClCompile Include="$(SrcDir)priest.c" /> <ClCompile Include="$(SrcDir)quest.c" />
<ClCompile Include="$(SrcDir)quest.c" /> <ClCompile Include="$(SrcDir)questpgr.c" />
<ClCompile Include="$(SrcDir)questpgr.c" /> <ClCompile Include="$(SrcDir)read.c" />
<ClCompile Include="$(SrcDir)read.c" /> <ClCompile Include="$(SrcDir)rect.c" />
<ClCompile Include="$(SrcDir)rect.c" /> <ClCompile Include="$(SrcDir)region.c" />
<ClCompile Include="$(SrcDir)region.c" /> <ClCompile Include="$(SrcDir)restore.c" />
<ClCompile Include="$(SrcDir)restore.c" /> <ClCompile Include="$(SrcDir)rip.c" />
<ClCompile Include="$(SrcDir)rip.c" /> <ClCompile Include="$(SrcDir)rnd.c" />
<ClCompile Include="$(SrcDir)rnd.c" /> <ClCompile Include="$(SrcDir)role.c" />
<ClCompile Include="$(SrcDir)role.c" /> <ClCompile Include="$(SrcDir)rumors.c" />
<ClCompile Include="$(SrcDir)rumors.c" /> <ClCompile Include="$(SrcDir)save.c" />
<ClCompile Include="$(SrcDir)save.c" /> <ClCompile Include="$(SrcDir)shk.c" />
<ClCompile Include="$(SrcDir)shk.c" /> <ClCompile Include="$(SrcDir)shknam.c" />
<ClCompile Include="$(SrcDir)shknam.c" /> <ClCompile Include="$(SrcDir)sit.c" />
<ClCompile Include="$(SrcDir)sit.c" /> <ClCompile Include="$(SrcDir)sounds.c" />
<ClCompile Include="$(SrcDir)sounds.c" /> <ClCompile Include="$(SrcDir)spell.c" />
<ClCompile Include="$(SrcDir)spell.c" /> <ClCompile Include="$(SrcDir)sp_lev.c" />
<ClCompile Include="$(SrcDir)sp_lev.c" /> <ClCompile Include="$(SrcDir)steal.c" />
<ClCompile Include="$(SrcDir)steal.c" /> <ClCompile Include="$(SrcDir)steed.c" />
<ClCompile Include="$(SrcDir)steed.c" /> <ClCompile Include="$(SrcDir)sys.c" />
<ClCompile Include="$(SrcDir)sys.c" /> <ClCompile Include="$(SrcDir)teleport.c" />
<ClCompile Include="$(SrcDir)teleport.c" /> <ClCompile Include="$(SrcDir)tile.c" />
<ClCompile Include="$(SrcDir)tile.c" /> <ClCompile Include="$(SrcDir)timeout.c" />
<ClCompile Include="$(SrcDir)timeout.c" /> <ClCompile Include="$(SrcDir)topten.c" />
<ClCompile Include="$(SrcDir)topten.c" /> <ClCompile Include="$(SrcDir)track.c" />
<ClCompile Include="$(SrcDir)track.c" /> <ClCompile Include="$(SrcDir)trap.c" />
<ClCompile Include="$(SrcDir)trap.c" /> <ClCompile Include="$(SrcDir)uhitm.c" />
<ClCompile Include="$(SrcDir)uhitm.c" /> <ClCompile Include="$(SrcDir)u_init.c" />
<ClCompile Include="$(SrcDir)u_init.c" /> <ClCompile Include="$(SrcDir)vault.c" />
<ClCompile Include="$(SrcDir)vault.c" /> <ClCompile Include="$(SrcDir)version.c" />
<ClCompile Include="$(SrcDir)version.c" /> <ClCompile Include="$(SrcDir)vision.c" />
<ClCompile Include="$(SrcDir)vision.c" /> <ClCompile Include="$(SrcDir)weapon.c" />
<ClCompile Include="$(SrcDir)weapon.c" /> <ClCompile Include="$(SrcDir)were.c" />
<ClCompile Include="$(SrcDir)were.c" /> <ClCompile Include="$(SrcDir)wield.c" />
<ClCompile Include="$(SrcDir)wield.c" /> <ClCompile Include="$(SrcDir)windows.c" />
<ClCompile Include="$(SrcDir)windows.c" /> <ClCompile Include="$(SrcDir)wizard.c" />
<ClCompile Include="$(SrcDir)wizard.c" /> <ClCompile Include="$(SrcDir)worm.c" />
<ClCompile Include="$(SrcDir)worm.c" /> <ClCompile Include="$(SrcDir)worn.c" />
<ClCompile Include="$(SrcDir)worn.c" /> <ClCompile Include="$(SrcDir)write.c" />
<ClCompile Include="$(SrcDir)write.c" /> <ClCompile Include="$(SrcDir)zap.c" />
<ClCompile Include="$(SrcDir)zap.c" /> <ClCompile Include="$(SysShareDir)cppregex.cpp" />
<ClCompile Include="$(SysShareDir)cppregex.cpp" /> <ClCompile Include="$(SysShareDir)nhlan.c" />
<ClCompile Include="$(SysShareDir)nhlan.c" /> <ClCompile Include="$(SysShareDir)pcmain.c" />
<ClCompile Include="$(SysShareDir)pcmain.c" /> <ClCompile Include="$(SysShareDir)pcsys.c" />
<ClCompile Include="$(SysShareDir)pcsys.c" /> <ClCompile Include="$(SysShareDir)pcunix.c" />
<ClCompile Include="$(SysShareDir)pcunix.c" /> <ClCompile Include="$(SysShareDir)random.c" />
<ClCompile Include="$(SysShareDir)random.c" /> <ClCompile Include="$(SysWinntDir)ntsound.c" />
<ClCompile Include="$(SysWinntDir)ntsound.c" /> <ClCompile Include="$(SysWinntDir)nttty.c" />
<ClCompile Include="$(SysWinntDir)nttty.c" /> <ClCompile Include="$(SysWinntDir)stubs.c">
<ClCompile Include="$(SysWinntDir)stubs.c"> <PreprocessorDefinitions>GUISTUB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>GUISTUB;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile>
</ClCompile> <ClCompile Include="$(SysWinntDir)winnt.c" />
<ClCompile Include="$(SysWinntDir)winnt.c" /> <ClCompile Include="$(WinTtyDir)getline.c" />
<ClCompile Include="$(WinTtyDir)getline.c" /> <ClCompile Include="$(WinTtyDir)topl.c" />
<ClCompile Include="$(WinTtyDir)topl.c" /> <ClCompile Include="$(WinTtyDir)wintty.c" />
<ClCompile Include="$(WinTtyDir)wintty.c" /> </ItemGroup>
</ItemGroup> <ItemGroup>
<ItemGroup> <ClInclude Include="$(IncDir)align.h" />
<ClInclude Include="$(IncDir)align.h" /> <ClInclude Include="$(IncDir)artifact.h" />
<ClInclude Include="$(IncDir)artifact.h" /> <ClInclude Include="$(IncDir)artilist.h" />
<ClInclude Include="$(IncDir)artilist.h" /> <ClInclude Include="$(IncDir)attrib.h" />
<ClInclude Include="$(IncDir)attrib.h" /> <ClInclude Include="$(IncDir)botl.h" />
<ClInclude Include="$(IncDir)botl.h" /> <ClInclude Include="$(IncDir)color.h" />
<ClInclude Include="$(IncDir)color.h" /> <ClInclude Include="$(IncDir)config.h" />
<ClInclude Include="$(IncDir)config.h" /> <ClInclude Include="$(IncDir)config1.h" />
<ClInclude Include="$(IncDir)config1.h" /> <ClInclude Include="$(IncDir)context.h" />
<ClInclude Include="$(IncDir)context.h" /> <ClInclude Include="$(IncDir)coord.h" />
<ClInclude Include="$(IncDir)coord.h" /> <ClInclude Include="$(IncDir)date.h" />
<ClInclude Include="$(IncDir)date.h" /> <ClInclude Include="$(IncDir)decl.h" />
<ClInclude Include="$(IncDir)decl.h" /> <ClInclude Include="$(IncDir)display.h" />
<ClInclude Include="$(IncDir)display.h" /> <ClInclude Include="$(IncDir)dlb.h" />
<ClInclude Include="$(IncDir)dlb.h" /> <ClInclude Include="$(IncDir)dungeon.h" />
<ClInclude Include="$(IncDir)dungeon.h" /> <ClInclude Include="$(IncDir)engrave.h" />
<ClInclude Include="$(IncDir)engrave.h" /> <ClInclude Include="$(IncDir)extern.h" />
<ClInclude Include="$(IncDir)extern.h" /> <ClInclude Include="$(IncDir)flag.h" />
<ClInclude Include="$(IncDir)flag.h" /> <ClInclude Include="$(IncDir)func_tab.h" />
<ClInclude Include="$(IncDir)func_tab.h" /> <ClInclude Include="$(IncDir)global.h" />
<ClInclude Include="$(IncDir)global.h" /> <ClInclude Include="$(IncDir)hack.h" />
<ClInclude Include="$(IncDir)hack.h" /> <ClInclude Include="$(IncDir)lev.h" />
<ClInclude Include="$(IncDir)lev.h" /> <ClInclude Include="$(IncDir)mextra.h" />
<ClInclude Include="$(IncDir)mextra.h" /> <ClInclude Include="$(IncDir)mfndpos.h" />
<ClInclude Include="$(IncDir)mfndpos.h" /> <ClInclude Include="$(IncDir)mkroom.h" />
<ClInclude Include="$(IncDir)mkroom.h" /> <ClInclude Include="$(IncDir)monattk.h" />
<ClInclude Include="$(IncDir)monattk.h" /> <ClInclude Include="$(IncDir)mondata.h" />
<ClInclude Include="$(IncDir)mondata.h" /> <ClInclude Include="$(IncDir)monflag.h" />
<ClInclude Include="$(IncDir)monflag.h" /> <ClInclude Include="$(IncDir)monst.h" />
<ClInclude Include="$(IncDir)monst.h" /> <ClInclude Include="$(IncDir)monsym.h" />
<ClInclude Include="$(IncDir)monsym.h" /> <ClInclude Include="$(IncDir)ntconf.h" />
<ClInclude Include="$(IncDir)ntconf.h" /> <ClInclude Include="$(IncDir)obj.h" />
<ClInclude Include="$(IncDir)obj.h" /> <ClInclude Include="$(IncDir)objclass.h" />
<ClInclude Include="$(IncDir)objclass.h" /> <ClInclude Include="$(IncDir)onames.h" />
<ClInclude Include="$(IncDir)onames.h" /> <ClInclude Include="$(IncDir)patchlevel.h" />
<ClInclude Include="$(IncDir)patchlevel.h" /> <ClInclude Include="$(IncDir)permonst.h" />
<ClInclude Include="$(IncDir)permonst.h" /> <ClInclude Include="$(IncDir)pm.h" />
<ClInclude Include="$(IncDir)pm.h" /> <ClInclude Include="$(IncDir)prop.h" />
<ClInclude Include="$(IncDir)prop.h" /> <ClInclude Include="$(IncDir)qtext.h" />
<ClInclude Include="$(IncDir)qtext.h" /> <ClInclude Include="$(IncDir)quest.h" />
<ClInclude Include="$(IncDir)quest.h" /> <ClInclude Include="$(IncDir)rect.h" />
<ClInclude Include="$(IncDir)rect.h" /> <ClInclude Include="$(IncDir)region.h" />
<ClInclude Include="$(IncDir)region.h" /> <ClInclude Include="$(IncDir)rm.h" />
<ClInclude Include="$(IncDir)rm.h" /> <ClInclude Include="$(IncDir)skills.h" />
<ClInclude Include="$(IncDir)skills.h" /> <ClInclude Include="$(IncDir)spell.h" />
<ClInclude Include="$(IncDir)spell.h" /> <ClInclude Include="$(IncDir)sp_lev.h" />
<ClInclude Include="$(IncDir)sp_lev.h" /> <ClInclude Include="$(IncDir)timeout.h" />
<ClInclude Include="$(IncDir)timeout.h" /> <ClInclude Include="$(IncDir)tradstdc.h" />
<ClInclude Include="$(IncDir)tradstdc.h" /> <ClInclude Include="$(IncDir)trap.h" />
<ClInclude Include="$(IncDir)trap.h" /> <ClInclude Include="$(IncDir)vision.h" />
<ClInclude Include="$(IncDir)vision.h" /> <ClInclude Include="$(IncDir)winprocs.h" />
<ClInclude Include="$(IncDir)winprocs.h" /> <ClInclude Include="$(IncDir)wintty.h" />
<ClInclude Include="$(IncDir)wintty.h" /> <ClInclude Include="$(IncDir)wintype.h" />
<ClInclude Include="$(IncDir)wintype.h" /> <ClInclude Include="$(IncDir)you.h" />
<ClInclude Include="$(IncDir)you.h" /> <ClInclude Include="$(IncDir)youprop.h" />
<ClInclude Include="$(IncDir)youprop.h" /> <ClInclude Include="$(WinWin32Dir)nhresource.h" />
<ClInclude Include="$(WinWin32Dir)nhresource.h" /> </ItemGroup>
</ItemGroup> <ItemGroup>
<ItemGroup> <ResourceCompile Include="$(WinWin32Dir)NetHack.rc" />
<ResourceCompile Include="$(WinWin32Dir)NetHack.rc" /> </ItemGroup>
</ItemGroup> <ItemGroup>
<ItemGroup> <Image Include="$(WinWin32Dir)nethack.ico" />
<Image Include="$(WinWin32Dir)nethack.ico" /> </ItemGroup>
</ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Target Name="AfterBuild">
<Target Name="AfterBuild"> <MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
<MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" /> </Target>
</Target> <Target Name="AfterClean">
<Target Name="AfterClean"> <MSBuild Projects="afternethack.proj" Targets="Clean" Properties="Configuration=$(Configuration)" />
<MSBuild Projects="afternethack.proj" Targets="Clean" Properties="Configuration=$(Configuration)" /> </Target>
</Target> <Target Name="AfterRebuild">
<Target Name="AfterRebuild"> <MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
<MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" /> </Target>
</Target> </Project>
</Project>
+183 -184
View File
@@ -1,184 +1,183 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="config.props" /> <Import Project="config.props" />
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<ProjectGuid>{CEC5D360-8804-454F-8591-002184C23499}</ProjectGuid> <ProjectGuid>{CEC5D360-8804-454F-8591-002184C23499}</ProjectGuid>
<RootNamespace>NetHackW</RootNamespace> <RootNamespace>NetHackW</RootNamespace>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="default.props" /> <Import Project="default.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Import Project="common.props" /> <Import Project="common.props" />
<Import Project="dirs.props" /> <Import Project="dirs.props" />
<Import Project="files.props" /> <Import Project="files.props" />
<PropertyGroup> <PropertyGroup>
<OutDir>$(BinDir)</OutDir> <OutDir>$(BinDir)</OutDir>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup> <ItemDefinitionGroup>
<ClCompile> <ClCompile>
<AdditionalOptions>/Gs /Oi- %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>/Gs /Oi- %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<OmitFramePointers>true</OmitFramePointers> <OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>$(WinWin32Dir);$(IncDir);$(SysWinntDir);$(SysShareDir);$(WinShareDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(WinWin32Dir);$(IncDir);$(SysWinntDir);$(SysShareDir);$(WinShareDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>TILES;_WINDOWS;DLB;MSWIN_GRAPHICS;WIN32CONNDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>TILES;_WINDOWS;DLB;MSWIN_GRAPHICS;WIN32CONNDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile> </ClCompile>
<ResourceCompile> <ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture> <Culture>0x0409</Culture>
</ResourceCompile> </ResourceCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<AdditionalDependencies>comctl32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>comctl32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="$(SrcDir)allmain.c" /> <ClCompile Include="$(SrcDir)allmain.c" />
<ClCompile Include="$(SrcDir)alloc.c" /> <ClCompile Include="$(SrcDir)alloc.c" />
<ClCompile Include="$(SrcDir)apply.c" /> <ClCompile Include="$(SrcDir)apply.c" />
<ClCompile Include="$(SrcDir)artifact.c" /> <ClCompile Include="$(SrcDir)artifact.c" />
<ClCompile Include="$(SrcDir)attrib.c" /> <ClCompile Include="$(SrcDir)attrib.c" />
<ClCompile Include="$(SrcDir)ball.c" /> <ClCompile Include="$(SrcDir)ball.c" />
<ClCompile Include="$(SrcDir)bones.c" /> <ClCompile Include="$(SrcDir)bones.c" />
<ClCompile Include="$(SrcDir)botl.c" /> <ClCompile Include="$(SrcDir)botl.c" />
<ClCompile Include="$(SrcDir)cmd.c" /> <ClCompile Include="$(SrcDir)cmd.c" />
<ClCompile Include="$(SrcDir)dbridge.c" /> <ClCompile Include="$(SrcDir)dbridge.c" />
<ClCompile Include="$(SrcDir)decl.c" /> <ClCompile Include="$(SrcDir)decl.c" />
<ClCompile Include="$(SrcDir)detect.c" /> <ClCompile Include="$(SrcDir)detect.c" />
<ClCompile Include="$(SrcDir)dig.c" /> <ClCompile Include="$(SrcDir)dig.c" />
<ClCompile Include="$(SrcDir)display.c" /> <ClCompile Include="$(SrcDir)display.c" />
<ClCompile Include="$(SrcDir)dlb.c" /> <ClCompile Include="$(SrcDir)dlb.c" />
<ClCompile Include="$(SrcDir)do.c" /> <ClCompile Include="$(SrcDir)do.c" />
<ClCompile Include="$(SrcDir)dog.c" /> <ClCompile Include="$(SrcDir)dog.c" />
<ClCompile Include="$(SrcDir)dogmove.c" /> <ClCompile Include="$(SrcDir)dogmove.c" />
<ClCompile Include="$(SrcDir)dokick.c" /> <ClCompile Include="$(SrcDir)dokick.c" />
<ClCompile Include="$(SrcDir)dothrow.c" /> <ClCompile Include="$(SrcDir)dothrow.c" />
<ClCompile Include="$(SrcDir)do_name.c" /> <ClCompile Include="$(SrcDir)do_name.c" />
<ClCompile Include="$(SrcDir)do_wear.c" /> <ClCompile Include="$(SrcDir)do_wear.c" />
<ClCompile Include="$(SrcDir)drawing.c" /> <ClCompile Include="$(SrcDir)drawing.c" />
<ClCompile Include="$(SrcDir)dungeon.c" /> <ClCompile Include="$(SrcDir)dungeon.c" />
<ClCompile Include="$(SrcDir)eat.c" /> <ClCompile Include="$(SrcDir)eat.c" />
<ClCompile Include="$(SrcDir)end.c" /> <ClCompile Include="$(SrcDir)end.c" />
<ClCompile Include="$(SrcDir)engrave.c" /> <ClCompile Include="$(SrcDir)engrave.c" />
<ClCompile Include="$(SrcDir)exper.c" /> <ClCompile Include="$(SrcDir)exper.c" />
<ClCompile Include="$(SrcDir)explode.c" /> <ClCompile Include="$(SrcDir)explode.c" />
<ClCompile Include="$(SrcDir)extralev.c" /> <ClCompile Include="$(SrcDir)extralev.c" />
<ClCompile Include="$(SrcDir)files.c" /> <ClCompile Include="$(SrcDir)files.c" />
<ClCompile Include="$(SrcDir)fountain.c" /> <ClCompile Include="$(SrcDir)fountain.c" />
<ClCompile Include="$(SrcDir)hack.c" /> <ClCompile Include="$(SrcDir)hack.c" />
<ClCompile Include="$(SrcDir)hacklib.c" /> <ClCompile Include="$(SrcDir)hacklib.c" />
<ClCompile Include="$(SrcDir)invent.c" /> <ClCompile Include="$(SrcDir)invent.c" />
<ClCompile Include="$(SrcDir)light.c" /> <ClCompile Include="$(SrcDir)light.c" />
<ClCompile Include="$(SrcDir)lock.c" /> <ClCompile Include="$(SrcDir)lock.c" />
<ClCompile Include="$(SrcDir)mail.c" /> <ClCompile Include="$(SrcDir)mail.c" />
<ClCompile Include="$(SrcDir)makemon.c" /> <ClCompile Include="$(SrcDir)makemon.c" />
<ClCompile Include="$(SrcDir)mapglyph.c" /> <ClCompile Include="$(SrcDir)mapglyph.c" />
<ClCompile Include="$(SrcDir)mcastu.c" /> <ClCompile Include="$(SrcDir)mcastu.c" />
<ClCompile Include="$(SrcDir)mhitm.c" /> <ClCompile Include="$(SrcDir)mhitm.c" />
<ClCompile Include="$(SrcDir)mhitu.c" /> <ClCompile Include="$(SrcDir)mhitu.c" />
<ClCompile Include="$(SrcDir)minion.c" /> <ClCompile Include="$(SrcDir)minion.c" />
<ClCompile Include="$(SrcDir)mklev.c" /> <ClCompile Include="$(SrcDir)mklev.c" />
<ClCompile Include="$(SrcDir)mkmap.c" /> <ClCompile Include="$(SrcDir)mkmap.c" />
<ClCompile Include="$(SrcDir)mkmaze.c" /> <ClCompile Include="$(SrcDir)mkmaze.c" />
<ClCompile Include="$(SrcDir)mkobj.c" /> <ClCompile Include="$(SrcDir)mkobj.c" />
<ClCompile Include="$(SrcDir)mkroom.c" /> <ClCompile Include="$(SrcDir)mkroom.c" />
<ClCompile Include="$(SrcDir)mon.c" /> <ClCompile Include="$(SrcDir)mon.c" />
<ClCompile Include="$(SrcDir)mondata.c" /> <ClCompile Include="$(SrcDir)mondata.c" />
<ClCompile Include="$(SrcDir)monmove.c" /> <ClCompile Include="$(SrcDir)monmove.c" />
<ClCompile Include="$(SrcDir)monst.c" /> <ClCompile Include="$(SrcDir)monst.c" />
<ClCompile Include="$(SrcDir)monstr.c" /> <ClCompile Include="$(SrcDir)mplayer.c" />
<ClCompile Include="$(SrcDir)mplayer.c" /> <ClCompile Include="$(SrcDir)mthrowu.c" />
<ClCompile Include="$(SrcDir)mthrowu.c" /> <ClCompile Include="$(SrcDir)muse.c" />
<ClCompile Include="$(SrcDir)muse.c" /> <ClCompile Include="$(SrcDir)music.c" />
<ClCompile Include="$(SrcDir)music.c" /> <ClCompile Include="$(SrcDir)objects.c" />
<ClCompile Include="$(SrcDir)objects.c" /> <ClCompile Include="$(SrcDir)objnam.c" />
<ClCompile Include="$(SrcDir)objnam.c" /> <ClCompile Include="$(SrcDir)options.c" />
<ClCompile Include="$(SrcDir)options.c" /> <ClCompile Include="$(SrcDir)o_init.c" />
<ClCompile Include="$(SrcDir)o_init.c" /> <ClCompile Include="$(SrcDir)pager.c" />
<ClCompile Include="$(SrcDir)pager.c" /> <ClCompile Include="$(SrcDir)pickup.c" />
<ClCompile Include="$(SrcDir)pickup.c" /> <ClCompile Include="$(SrcDir)pline.c" />
<ClCompile Include="$(SrcDir)pline.c" /> <ClCompile Include="$(SrcDir)polyself.c" />
<ClCompile Include="$(SrcDir)polyself.c" /> <ClCompile Include="$(SrcDir)potion.c" />
<ClCompile Include="$(SrcDir)potion.c" /> <ClCompile Include="$(SrcDir)pray.c" />
<ClCompile Include="$(SrcDir)pray.c" /> <ClCompile Include="$(SrcDir)priest.c" />
<ClCompile Include="$(SrcDir)priest.c" /> <ClCompile Include="$(SrcDir)quest.c" />
<ClCompile Include="$(SrcDir)quest.c" /> <ClCompile Include="$(SrcDir)questpgr.c" />
<ClCompile Include="$(SrcDir)questpgr.c" /> <ClCompile Include="$(SrcDir)read.c" />
<ClCompile Include="$(SrcDir)read.c" /> <ClCompile Include="$(SrcDir)rect.c" />
<ClCompile Include="$(SrcDir)rect.c" /> <ClCompile Include="$(SrcDir)region.c" />
<ClCompile Include="$(SrcDir)region.c" /> <ClCompile Include="$(SrcDir)restore.c" />
<ClCompile Include="$(SrcDir)restore.c" /> <ClCompile Include="$(SrcDir)rip.c" />
<ClCompile Include="$(SrcDir)rip.c" /> <ClCompile Include="$(SrcDir)rnd.c" />
<ClCompile Include="$(SrcDir)rnd.c" /> <ClCompile Include="$(SrcDir)role.c" />
<ClCompile Include="$(SrcDir)role.c" /> <ClCompile Include="$(SrcDir)rumors.c" />
<ClCompile Include="$(SrcDir)rumors.c" /> <ClCompile Include="$(SrcDir)save.c" />
<ClCompile Include="$(SrcDir)save.c" /> <ClCompile Include="$(SrcDir)shk.c" />
<ClCompile Include="$(SrcDir)shk.c" /> <ClCompile Include="$(SrcDir)shknam.c" />
<ClCompile Include="$(SrcDir)shknam.c" /> <ClCompile Include="$(SrcDir)sit.c" />
<ClCompile Include="$(SrcDir)sit.c" /> <ClCompile Include="$(SrcDir)sounds.c" />
<ClCompile Include="$(SrcDir)sounds.c" /> <ClCompile Include="$(SrcDir)spell.c" />
<ClCompile Include="$(SrcDir)spell.c" /> <ClCompile Include="$(SrcDir)sp_lev.c" />
<ClCompile Include="$(SrcDir)sp_lev.c" /> <ClCompile Include="$(SrcDir)steal.c" />
<ClCompile Include="$(SrcDir)steal.c" /> <ClCompile Include="$(SrcDir)steed.c" />
<ClCompile Include="$(SrcDir)steed.c" /> <ClCompile Include="$(SrcDir)sys.c" />
<ClCompile Include="$(SrcDir)sys.c" /> <ClCompile Include="$(SrcDir)teleport.c" />
<ClCompile Include="$(SrcDir)teleport.c" /> <ClCompile Include="$(SrcDir)tile.c" />
<ClCompile Include="$(SrcDir)tile.c" /> <ClCompile Include="$(SrcDir)timeout.c" />
<ClCompile Include="$(SrcDir)timeout.c" /> <ClCompile Include="$(SrcDir)topten.c" />
<ClCompile Include="$(SrcDir)topten.c" /> <ClCompile Include="$(SrcDir)track.c" />
<ClCompile Include="$(SrcDir)track.c" /> <ClCompile Include="$(SrcDir)trap.c" />
<ClCompile Include="$(SrcDir)trap.c" /> <ClCompile Include="$(SrcDir)uhitm.c" />
<ClCompile Include="$(SrcDir)uhitm.c" /> <ClCompile Include="$(SrcDir)u_init.c" />
<ClCompile Include="$(SrcDir)u_init.c" /> <ClCompile Include="$(SrcDir)vault.c" />
<ClCompile Include="$(SrcDir)vault.c" /> <ClCompile Include="$(SrcDir)version.c" />
<ClCompile Include="$(SrcDir)version.c" /> <ClCompile Include="$(SrcDir)vision.c" />
<ClCompile Include="$(SrcDir)vision.c" /> <ClCompile Include="$(SrcDir)vis_tab.c" />
<ClCompile Include="$(SrcDir)vis_tab.c" /> <ClCompile Include="$(SrcDir)weapon.c" />
<ClCompile Include="$(SrcDir)weapon.c" /> <ClCompile Include="$(SrcDir)were.c" />
<ClCompile Include="$(SrcDir)were.c" /> <ClCompile Include="$(SrcDir)wield.c" />
<ClCompile Include="$(SrcDir)wield.c" /> <ClCompile Include="$(SrcDir)windows.c" />
<ClCompile Include="$(SrcDir)windows.c" /> <ClCompile Include="$(SrcDir)wizard.c" />
<ClCompile Include="$(SrcDir)wizard.c" /> <ClCompile Include="$(SrcDir)worm.c" />
<ClCompile Include="$(SrcDir)worm.c" /> <ClCompile Include="$(SrcDir)worn.c" />
<ClCompile Include="$(SrcDir)worn.c" /> <ClCompile Include="$(SrcDir)write.c" />
<ClCompile Include="$(SrcDir)write.c" /> <ClCompile Include="$(SrcDir)zap.c" />
<ClCompile Include="$(SrcDir)zap.c" /> <ClCompile Include="$(SysShareDir)cppregex.cpp" />
<ClCompile Include="$(SysShareDir)cppregex.cpp" /> <ClCompile Include="$(SysShareDir)nhlan.c" />
<ClCompile Include="$(SysShareDir)nhlan.c" /> <ClCompile Include="$(SysShareDir)pcmain.c" />
<ClCompile Include="$(SysShareDir)pcmain.c" /> <ClCompile Include="$(SysShareDir)pcsys.c" />
<ClCompile Include="$(SysShareDir)pcsys.c" /> <ClCompile Include="$(SysShareDir)pcunix.c" />
<ClCompile Include="$(SysShareDir)pcunix.c" /> <ClCompile Include="$(SysShareDir)random.c" />
<ClCompile Include="$(SysShareDir)random.c" /> <ClCompile Include="$(SysWinntDir)ntsound.c" />
<ClCompile Include="$(SysWinntDir)ntsound.c" /> <ClCompile Include="$(SysWinntDir)stubs.c">
<ClCompile Include="$(SysWinntDir)stubs.c"> <PreprocessorDefinitions>TTYSTUB;</PreprocessorDefinitions>
<PreprocessorDefinitions>TTYSTUB;</PreprocessorDefinitions> </ClCompile>
</ClCompile> <ClCompile Include="$(SysWinntDir)winnt.c" />
<ClCompile Include="$(SysWinntDir)winnt.c" /> <ClCompile Include="$(WinWin32Dir)mhaskyn.c" />
<ClCompile Include="$(WinWin32Dir)mhaskyn.c" /> <ClCompile Include="$(WinWin32Dir)mhdlg.c" />
<ClCompile Include="$(WinWin32Dir)mhdlg.c" /> <ClCompile Include="$(WinWin32Dir)mhfont.c" />
<ClCompile Include="$(WinWin32Dir)mhfont.c" /> <ClCompile Include="$(WinWin32Dir)mhinput.c" />
<ClCompile Include="$(WinWin32Dir)mhinput.c" /> <ClCompile Include="$(WinWin32Dir)mhmain.c" />
<ClCompile Include="$(WinWin32Dir)mhmain.c" /> <ClCompile Include="$(WinWin32Dir)mhmap.c" />
<ClCompile Include="$(WinWin32Dir)mhmap.c" /> <ClCompile Include="$(WinWin32Dir)mhmenu.c" />
<ClCompile Include="$(WinWin32Dir)mhmenu.c" /> <ClCompile Include="$(WinWin32Dir)mhmsgwnd.c" />
<ClCompile Include="$(WinWin32Dir)mhmsgwnd.c" /> <ClCompile Include="$(WinWin32Dir)mhrip.c" />
<ClCompile Include="$(WinWin32Dir)mhrip.c" /> <ClCompile Include="$(WinWin32Dir)mhsplash.c" />
<ClCompile Include="$(WinWin32Dir)mhsplash.c" /> <ClCompile Include="$(WinWin32Dir)mhstatus.c" />
<ClCompile Include="$(WinWin32Dir)mhstatus.c" /> <ClCompile Include="$(WinWin32Dir)mhtext.c" />
<ClCompile Include="$(WinWin32Dir)mhtext.c" /> <ClCompile Include="$(WinWin32Dir)mswproc.c" />
<ClCompile Include="$(WinWin32Dir)mswproc.c" /> <ClCompile Include="$(WinWin32Dir)winhack.c" />
<ClCompile Include="$(WinWin32Dir)winhack.c" /> </ItemGroup>
</ItemGroup> <ItemGroup>
<ItemGroup> <ResourceCompile Include="$(WinWin32Dir)winhack.rc" />
<ResourceCompile Include="$(WinWin32Dir)winhack.rc" /> </ItemGroup>
</ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Target Name="AfterBuild">
<Target Name="AfterBuild"> <MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
<MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" /> </Target>
</Target> <Target Name="AfterClean">
<Target Name="AfterClean"> <MSBuild Projects="afternethack.proj" Targets="Clean" Properties="Configuration=$(Configuration)" />
<MSBuild Projects="afternethack.proj" Targets="Clean" Properties="Configuration=$(Configuration)" /> </Target>
</Target> <Target Name="AfterRebuild">
<Target Name="AfterRebuild"> <MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
<MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" /> </Target>
</Target> </Project>
</Project>
-1
View File
@@ -7,7 +7,6 @@
<Exec Command="$(ToolsDir)makedefs.exe -v" WorkingDirectory="$(UtilDir)"/> <Exec Command="$(ToolsDir)makedefs.exe -v" WorkingDirectory="$(UtilDir)"/>
<Exec Command="$(ToolsDir)makedefs.exe -o" WorkingDirectory="$(UtilDir)"/> <Exec Command="$(ToolsDir)makedefs.exe -o" WorkingDirectory="$(UtilDir)"/>
<Exec Command="$(ToolsDir)makedefs.exe -p" WorkingDirectory="$(UtilDir)"/> <Exec Command="$(ToolsDir)makedefs.exe -p" WorkingDirectory="$(UtilDir)"/>
<Exec Command="$(ToolsDir)makedefs.exe -m" WorkingDirectory="$(UtilDir)"/>
<Exec Command="$(ToolsDir)makedefs.exe -z" WorkingDirectory="$(UtilDir)"/> <Exec Command="$(ToolsDir)makedefs.exe -z" WorkingDirectory="$(UtilDir)"/>
<Exec Command="$(ToolsDir)makedefs.exe -d" WorkingDirectory="$(DatDir)"/> <Exec Command="$(ToolsDir)makedefs.exe -d" WorkingDirectory="$(DatDir)"/>
<Exec Command="$(ToolsDir)makedefs.exe -r" WorkingDirectory="$(DatDir)"/> <Exec Command="$(ToolsDir)makedefs.exe -r" WorkingDirectory="$(DatDir)"/>
-2
View File
@@ -8,8 +8,6 @@
<Defs Include = "$(IncDir)onames.h"/> <Defs Include = "$(IncDir)onames.h"/>
<!-- -p --> <!-- -p -->
<Defs Include = "$(IncDir)pm.h"/> <Defs Include = "$(IncDir)pm.h"/>
<!-- -m -->
<Defs Include = "$(SrcDir)monstr.c"/>
<!-- -z --> <!-- -z -->
<Defs Include = "$(IncDir)vis_tab.h"/> <Defs Include = "$(IncDir)vis_tab.h"/>
<Defs Include = "$(SrcDir)vis_tab.c"/> <Defs Include = "$(SrcDir)vis_tab.c"/>