From 0a3f6d17dff7e6192447b3542d32c14d151fa598 Mon Sep 17 00:00:00 2001 From: Bart House Date: Sat, 10 Nov 2018 14:38:00 -0800 Subject: [PATCH 1/5] Removed the defining of WIN32CONNDEBUG for NethackW. Defined NOTTYGRAPHICS for NethackW. --- sys/share/pcsys.c | 9 --------- sys/winnt/winnt.c | 15 ++++++--------- win/win32/vs2017/NetHackW.vcxproj | 2 +- 3 files changed, 7 insertions(+), 19 deletions(-) diff --git a/sys/share/pcsys.c b/sys/share/pcsys.c index 59a78b927..0286ad50b 100644 --- a/sys/share/pcsys.c +++ b/sys/share/pcsys.c @@ -501,15 +501,6 @@ int code; exit(code); } -#ifdef WIN32 -#ifndef TTY_GRAPHICS -void -synch_cursor() -{ -} -#endif -#endif - /* Chdir back to original directory */ #ifdef TOS diff --git a/sys/winnt/winnt.c b/sys/winnt/winnt.c index 451aae2f0..966b268e0 100644 --- a/sys/winnt/winnt.c +++ b/sys/winnt/winnt.c @@ -4,6 +4,8 @@ /* * WIN32 system functions. + * + * Included in both console and window based clients on the windows platform. * * Initial Creation: Michael Allison - January 31/93 * @@ -229,15 +231,6 @@ Delay(int ms) (void) Sleep(ms); } -#ifdef TTY_GRAPHICS -extern void NDECL(backsp); -#else -void -backsp() -{ -} -#endif - void win32_abort() { @@ -250,9 +243,13 @@ win32_abort() msmsg("Execute debug breakpoint wizard?"); while ((ci = nhgetch()) != '\n') { if (ct > 0) { +#ifdef TTY_GRAPHICS backsp(); /* \b is visible on NT */ +#endif (void) putchar(' '); +#ifdef TTY_GRAPHICS backsp(); +#endif ct = 0; c = 'n'; } diff --git a/win/win32/vs2017/NetHackW.vcxproj b/win/win32/vs2017/NetHackW.vcxproj index 450210b81..d93276e83 100644 --- a/win/win32/vs2017/NetHackW.vcxproj +++ b/win/win32/vs2017/NetHackW.vcxproj @@ -20,7 +20,7 @@ Disabled true $(WinWin32Dir);$(IncDir);$(SysWinntDir);$(SysShareDir);$(WinShareDir);%(AdditionalIncludeDirectories) - TILES;_WINDOWS;DLB;MSWIN_GRAPHICS;WIN32CONNDEBUG;%(PreprocessorDefinitions) + TILES;_WINDOWS;DLB;MSWIN_GRAPHICS;NOTTYGRAPHICS;%(PreprocessorDefinitions) NDEBUG;%(PreprocessorDefinitions) From 20e8482e6ed517ea1398a620ff5579f2e97d2970 Mon Sep 17 00:00:00 2001 From: Bart House Date: Sat, 10 Nov 2018 16:37:12 -0800 Subject: [PATCH 2/5] Fix crash that can occur when panic is called early. --- win/win32/winhack.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/win/win32/winhack.c b/win/win32/winhack.c index a85bdc478..e9f83b1ea 100644 --- a/win/win32/winhack.c +++ b/win/win32/winhack.c @@ -88,11 +88,19 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, UNREFERENCED_PARAMETER(lpCmdLine); UNREFERENCED_PARAMETER(nCmdShow); - sys_early_init(); + // + // We need to support DPI awareness. + // + // BOOL result = SetProcessDpiAwarenessContext( + // DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2); + // - /* ensure that we don't access violate on a panic() */ + /* We must initialize state sufficiently to support calls to panic */ windowprocs.win_raw_print = mswin_raw_print; windowprocs.win_raw_print_bold = mswin_raw_print_bold; + windowprocs.win_wait_synch = mswin_wait_synch; + + sys_early_init(); /* init applicatio structure */ _nethack_app.hApp = hInstance; From 26171ed9f57cb1de52b5ed7533243c853994a68d Mon Sep 17 00:00:00 2001 From: Bart House Date: Sat, 10 Nov 2018 12:44:41 -0800 Subject: [PATCH 3/5] Ignore .vs hidden folders generated by visual studio 2017. --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index a4bfbe1de..3c766268f 100644 --- a/.gitignore +++ b/.gitignore @@ -50,5 +50,7 @@ Makefile.gcc-orig *.ilk # VS2013 extension to auto-whine about questionable code generates these *.lastcodeanalysissucceeded +# VS 2017 caches data into the hidden directory .vs +.vs # Win32-specific ignores end From e486d941edefcf33b4f6a005c55d5db86b56ac71 Mon Sep 17 00:00:00 2001 From: PatR Date: Sat, 10 Nov 2018 18:22:38 -0800 Subject: [PATCH 4/5] couple of #wizintrinsic fixes When #wizinstrinsic was expanded to be able to set any timed attribute, some that need more than just a timeout counter were left inconsistent. 1) Timed Flying wasn't blocked by levitation, and existing flight wasn't becoming blocked by timed levitation. Also, eventual flight timeout wasn't updating the status line, so false 'Fly' condition remained shown until a status update happened for some other reason. 2) Setting timer for Warn_of_mon didn't set up any type of monster to warn about so wouldn't do anything. This sets that to grid bug unless already set due to polymorph form or artifact that warns. The end.c portion is just a bit of formatting. --- doc/fixes36.2 | 2 ++ src/cmd.c | 14 +++++++++++++- src/end.c | 8 ++++---- src/timeout.c | 25 +++++++++++++++++++++++-- 4 files changed, 42 insertions(+), 7 deletions(-) diff --git a/doc/fixes36.2 b/doc/fixes36.2 index 96361d68a..2de78d988 100644 --- a/doc/fixes36.2 +++ b/doc/fixes36.2 @@ -192,6 +192,8 @@ attempting to #ride a long worm's tail could trigger impossible "worm_cross avoid "The " in "The falls down stairs." avoid potential buffer overflow if object with very long name knocks other objects down stairs when dropped, thrown, or kicked there +#wizintrinsic for 'flying' didn't update status line when flying ended +#wizintrinsic for 'warn_of_mon' didn't set any type of monster (now grid bugs) Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository diff --git a/src/cmd.c b/src/cmd.c index c783a5b2e..b2debe337 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 cmd.c $NHDT-Date: 1541631031 2018/11/07 22:50:31 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.299 $ */ +/* NetHack 3.6 cmd.c $NHDT-Date: 1541902950 2018/11/11 02:22:30 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.301 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Robert Patrick Rankin, 2013. */ /* NetHack may be freely redistributed. See license for details. */ @@ -1423,7 +1423,19 @@ wiz_intrinsic(VOID_ARGS) make_vomiting(newtimeout, FALSE); pline1(buf); break; + case WARN_OF_MON: + if (!Warn_of_mon) { + context.warntype.speciesidx = PM_GRID_BUG; + context.warntype.species + = &mons[context.warntype.speciesidx]; + } + goto def_feedback; + case LEVITATION: + case FLYING: + float_vs_flight(); + /*FALLTHRU*/ default: + def_feedback: pline("Timeout for %s %s %d.", propertynames[i].prop_name, oldtimeout ? "increased by" : "set to", amt); incr_itimeout(&u.uprops[p].intrinsic, amt); diff --git a/src/end.c b/src/end.c index 9cd4d40a0..a2f8967d0 100644 --- a/src/end.c +++ b/src/end.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 end.c $NHDT-Date: 1540767809 2018/10/28 23:03:29 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.148 $ */ +/* NetHack 3.6 end.c $NHDT-Date: 1541902951 2018/11/11 02:22:31 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.150 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Robert Patrick Rankin, 2012. */ /* NetHack may be freely redistributed. See license for details. */ @@ -2009,10 +2009,10 @@ const char *killername; { struct kinfo *k = find_delayed_killer(id); - if (k == (struct kinfo *) 0) { + if (!k) { /* no match, add a new delayed killer to the list */ - k = (struct kinfo *) alloc(sizeof(struct kinfo)); - (void) memset((genericptr_t)k, 0, sizeof(struct kinfo)); + k = (struct kinfo *) alloc(sizeof (struct kinfo)); + (void) memset((genericptr_t) k, 0, sizeof (struct kinfo)); k->id = id; k->next = killer.next; killer.next = k; diff --git a/src/timeout.c b/src/timeout.c index 4c9be0607..a75fc66b9 100644 --- a/src/timeout.c +++ b/src/timeout.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 timeout.c $NHDT-Date: 1505214876 2017/09/12 11:14:36 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.75 $ */ +/* NetHack 3.6 timeout.c $NHDT-Date: 1541902953 2018/11/11 02:22:33 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.84 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Robert Patrick Rankin, 2018. */ /* NetHack may be freely redistributed. See license for details. */ @@ -45,7 +45,7 @@ const struct propname { { SEE_INVIS, "see invisible" }, { INVIS, "invisible" }, /* properties beyond here don't have timed values during normal play, - so there's no much point in trying to order them sensibly; + so there's not much point in trying to order them sensibly; they're either on or off based on equipment, role, actions, &c */ { FIRE_RES, "fire resistance" }, { COLD_RES, "cold resistance" }, @@ -367,6 +367,7 @@ nh_timeout() { register struct prop *upp; struct kinfo *kptr; + boolean was_flying; int sleeptime; int m_idx; int baseluck = (flags.moonphase == FULL_MOON) ? 1 : 0; @@ -431,6 +432,7 @@ nh_timeout() pline("%s stops galloping.", Monnam(u.usteed)); } + was_flying = Flying; for (upp = u.uprops; upp < u.uprops + SIZE(u.uprops); upp++) if ((upp->intrinsic & TIMEOUT) && !(--upp->intrinsic & TIMEOUT)) { kptr = find_delayed_killer((int) (upp - u.uprops)); @@ -554,6 +556,25 @@ nh_timeout() case LEVITATION: (void) float_down(I_SPECIAL | TIMEOUT, 0L); break; + case FLYING: + /* timed Flying is via #wizintrinsic only */ + if (was_flying && !Flying) { + context.botl = 1; + You("land."); + spoteffects(TRUE); + } + break; + case WARN_OF_MON: + /* timed Warn_of_mon is via #wizintrinsic only */ + if (!Warn_of_mon) { + context.warntype.speciesidx = NON_PM; + if (context.warntype.species) { + You("are no longer warned about %s.", + makeplural(context.warntype.species->mname)); + context.warntype.species = (struct permonst *) 0; + } + } + break; case PASSES_WALLS: if (!Passes_walls) { if (stuck_in_wall()) From a0b53ee3917c7db3075ba04cbfb44df6d1984656 Mon Sep 17 00:00:00 2001 From: nhmall Date: Sun, 11 Nov 2018 10:29:52 -0500 Subject: [PATCH 5/5] merge --- .gitattributes | 2 + DEVEL/.gitattributes | 1 + Files | 505 +++++++++++-------------- dat/.gitattributes | 2 + doc/.gitattributes | 2 + doc/Guidebook.mn | 2 +- doc/Guidebook.tex | 2 +- doc/mn.7 | 273 +++++++++++++ doc/mnh.7 | 95 +++++ include/.gitattributes | 43 +++ src/.gitattributes | 14 + sys/amiga/.gitattributes | 1 + sys/atari/.gitattributes | 1 + sys/be/.gitattributes | 1 + sys/mac/.gitattributes | 1 + sys/msdos/.gitattributes | 3 + sys/os2/.gitattributes | 1 + sys/share/.gitattributes | 38 ++ sys/share/sounds/.gitattributes | 1 + sys/unix/.gitattributes | 3 + sys/unix/hints/.gitattributes | 1 + sys/vms/.gitattributes | 1 + sys/wince/.gitattributes | 1 + sys/wince/ceinc/.gitattributes | 1 + sys/wince/ceinc/sys/.gitattributes | 1 + sys/winnt/.gitattributes | 3 + sys/winnt/win10.c | 42 ++ sys/winnt/win10.h | 17 + util/.gitattributes | 12 + win/Qt/.gitattributes | 1 + win/Qt4/.gitattributes | 1 + win/X11/.gitattributes | 1 + win/chain/.gitattributes | 1 + win/gem/.gitattributes | 1 + win/gnome/.gitattributes | 1 + win/macosx/.gitattributes | 1 + win/share/.gitattributes | 1 + win/tty/.gitattributes | 1 + win/win32/.gitattributes | 1 + win/win32/vs2017/.gitattributes | 1 + win/win32/vs2017/NetHackW.exe.manifest | 18 + win/win32/vs2017/NetHackW.vcxproj | 6 +- win/win32/winhack.c | 7 +- 43 files changed, 832 insertions(+), 280 deletions(-) create mode 100644 doc/mn.7 create mode 100644 doc/mnh.7 create mode 100644 include/.gitattributes create mode 100644 src/.gitattributes create mode 100644 sys/atari/.gitattributes create mode 100644 sys/be/.gitattributes create mode 100644 sys/share/sounds/.gitattributes create mode 100644 sys/wince/ceinc/.gitattributes create mode 100644 sys/wince/ceinc/sys/.gitattributes create mode 100644 sys/winnt/win10.c create mode 100644 sys/winnt/win10.h create mode 100644 win/Qt4/.gitattributes create mode 100644 win/chain/.gitattributes create mode 100644 win/gem/.gitattributes create mode 100644 win/gnome/.gitattributes create mode 100644 win/tty/.gitattributes create mode 100644 win/win32/vs2017/.gitattributes create mode 100644 win/win32/vs2017/NetHackW.exe.manifest diff --git a/.gitattributes b/.gitattributes index d2c180284..4abc1c90b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -13,3 +13,5 @@ README NHSUBST *.uu NH_header=no *.xpm NH_header=no .git* NH_header=no +* NH_filestag=(file%s_in_top_directory) +NetHack.dsw NH_filestag=(file%s_for_win32_that_are_moved_into_._at_compile_time) diff --git a/DEVEL/.gitattributes b/DEVEL/.gitattributes index 2e9843c2f..835917d71 100644 --- a/DEVEL/.gitattributes +++ b/DEVEL/.gitattributes @@ -4,3 +4,4 @@ hooksdir/* NHSUBST * text=auto DOTGIT/TARGET NH_header=no hooksdir/TARGET NH_header=no +* NH_filestag=(file%s_for_people_developing_changes_to_NetHack) diff --git a/Files b/Files index 261e8e799..62ac59fac 100644 --- a/Files +++ b/Files @@ -7,461 +7,418 @@ from or not transferred to your system if you wish. .: (files in top directory) -.clang-format Files Porting README +.clang-format Files Porting README DEVEL: (files for people developing changes to NetHack) -Developer.txt code_features.txt code_style.txt git_recipes.txt -gitinfo.pl nhgitset.pl +Developer.txt code_features.txt code_style.txt git_recipes.txt +gitinfo.pl nhgitset.pl DEVEL/DOTGIT: (file for people developing changes to NetHack) -TARGET +TARGET DEVEL/hooksdir: (files for people developing changes to NetHack) -NHadd NHgithook.pm NHsubst -NHtext TARGET applypatch-msg -commit-msg nhsub post-applypatch -post-checkout post-commit post-merge -post-rewrite pre-applypatch pre-auto-gc -pre-commit pre-push pre-rebase -prepare-commit-msg +NHadd NHgithook.pm NHsubst +NHtext TARGET applypatch-msg +commit-msg nhsub post-applypatch +post-checkout post-commit post-merge +post-rewrite pre-applypatch pre-auto-gc +pre-commit pre-push pre-rebase +prepare-commit-msg dat: (files for all versions) -Arch.des Barb.des Caveman.des Healer.des Knight.des -Monk.des Priest.des Ranger.des Rogue.des Samurai.des -Tourist.des Valkyrie.des Wizard.des bigroom.des bogusmon.txt -castle.des cmdhelp data.base dungeon.def endgame.des -engrave.txt epitaph.txt gehennom.des help hh -history keyhelp knox.des license medusa.des -mines.des opthelp oracle.des oracles.txt quest.txt -rumors.fal rumors.tru sokoban.des symbols tower.des -tribute wizhelp yendor.des +Arch.des Barb.des Caveman.des Healer.des Knight.des +Monk.des Priest.des Ranger.des Rogue.des Samurai.des +Tourist.des Valkyrie.des Wizard.des bigroom.des bogusmon.txt +castle.des cmdhelp data.base dungeon.def endgame.des +engrave.txt epitaph.txt gehennom.des help hh +history keyhelp knox.des license medusa.des +mines.des opthelp oracle.des oracles.txt quest.txt +rumors.fal rumors.tru sokoban.des symbols tower.des +tribute wizhelp yendor.des doc: (files for all versions) -Guidebook.mn Guidebook.tex Guidebook.txt config.nh dgn_comp.6 -dgn_comp.txt dlb.6 dlb.txt fixes10.0 fixes14.f -fixes22.0 fixes23.e fixes30.0 fixes30.pl01 fixes30.pl02 -fixes30.pl03 fixes30.pl04 fixes30.pl05 fixes30.pl06 fixes30.pl07 -fixes30.pl08 fixes30.pl09 fixes30.pl10 fixes31.1 fixes31.2 -fixes31.3 fixes32.0 fixes32.1 fixes32.2 fixes32.3 -fixes33.0 fixes33.1 fixes34.0 fixes34.1 fixes34.2 -fixes34.3 fixes35.0 fixes36.0 fixes36.1 fixes36.2 -lev_comp.6 lev_comp.txt makedefs.6 makedefs.txt nethack.6 -nethack.txt recover.6 recover.txt tmac.n window.doc +Guidebook.mn Guidebook.tex Guidebook.txt config.nh dgn_comp.6 +dgn_comp.txt dlb.6 dlb.txt fixes10.0 fixes14.f +fixes22.0 fixes23.e fixes30.0 fixes30.pl01 fixes30.pl02 +fixes30.pl03 fixes30.pl04 fixes30.pl05 fixes30.pl06 fixes30.pl07 +fixes30.pl08 fixes30.pl09 fixes30.pl10 fixes31.1 fixes31.2 +fixes31.3 fixes32.0 fixes32.1 fixes32.2 fixes32.3 +fixes33.0 fixes33.1 fixes34.0 fixes34.1 fixes34.2 +fixes34.3 fixes35.0 fixes36.0 fixes36.1 fixes36.2 +lev_comp.6 lev_comp.txt makedefs.6 makedefs.txt mn.7 +mnh.7 nethack.6 nethack.txt recover.6 recover.txt +tmac.n tmac.nh window.doc include: (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) -winGnome.h +winGnome.h (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) -tile2x11.h winX.h xwindow.h xwindowp.h +tile2x11.h winX.h xwindow.h xwindowp.h (files for all versions) -align.h amiconf.h artifact.h artilist.h attrib.h -beconf.h botl.h color.h config.h config1.h -context.h coord.h decl.h def_os2.h dgn_file.h -display.h dlb.h dungeon.h engrave.h extern.h -flag.h func_tab.h global.h hack.h integer.h -lev.h lint.h mail.h mextra.h mfndpos.h -micro.h mkroom.h monattk.h mondata.h monflag.h -monst.h monsym.h ntconf.h obj.h objclass.h -os2conf.h patchlevel.h pcconf.h permonst.h prop.h -qtext.h quest.h rect.h region.h rm.h -skills.h sp_lev.h spell.h sys.h system.h -tcap.h tileset.h timeout.h tosconf.h tradstdc.h -trampoli.h trap.h unixconf.h vision.h vmsconf.h -wceconf.h winami.h winprocs.h wintype.h you.h -youprop.h +align.h amiconf.h artifact.h artilist.h attrib.h +beconf.h botl.h color.h config.h config1.h +context.h coord.h decl.h def_os2.h dgn_file.h +display.h dlb.h dungeon.h engrave.h extern.h +flag.h func_tab.h global.h hack.h integer.h +lev.h lint.h mail.h mextra.h mfndpos.h +micro.h mkroom.h monattk.h mondata.h monflag.h +monst.h monsym.h ntconf.h obj.h objclass.h +os2conf.h patchlevel.h pcconf.h permonst.h prop.h +qtext.h quest.h rect.h region.h rm.h +skills.h sp_lev.h spell.h sys.h system.h +tcap.h tileset.h timeout.h tosconf.h tradstdc.h +trampoli.h trap.h unixconf.h vision.h vmsconf.h +wceconf.h winami.h winprocs.h wintype.h you.h +youprop.h (file for tty versions) -wintty.h +wintty.h (files for various Macintosh versions) -mac-carbon.h mac-qt.h mac-term.h macconf.h macpopup.h -mactty.h macwin.h mttypriv.h +mac-carbon.h mac-qt.h mac-term.h macconf.h macpopup.h +mactty.h macwin.h mttypriv.h src: (files for all versions) -allmain.c alloc.c apply.c artifact.c attrib.c ball.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 -dog.c dogmove.c dokick.c dothrow.c drawing.c dungeon.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 -lock.c mail.c makemon.c mapglyph.c mcastu.c mhitm.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 -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 -pray.c priest.c quest.c questpgr.c read.c rect.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 -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 -version.c vision.c weapon.c were.c wield.c windows.c -wizard.c worm.c worn.c write.c zap.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 +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 +eat.c end.c engrave.c exper.c explode.c extralev.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 +mhitu.c minion.c mklev.c mkmap.c mkmaze.c mkobj.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 +options.c pager.c pickup.c pline.c polyself.c potion.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 +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 +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 +wizard.c worm.c worn.c write.c zap.c sys/amiga: (files for Amiga versions - untested for 3.6.2) -Build.ami Install.ami Makefile.agc Makefile.ami NetHack.cnf -amidos.c amidos.p amifont.uu amifont8.uu amigst.c -amii.hlp amimenu.c amirip.c amisnd.c amistack.c -amitty.c amiwind.c amiwind.p clipwin.c colorwin.c -cvtsnd.c grave16.xpm ifchange mkdmake txt2iff.c -winami.c winami.p winchar.c windefs.h winext.h -winfuncs.c winkey.c winmenu.c winproto.h winreq.c -winstr.c xpm2iff.c +Build.ami Install.ami Makefile.agc Makefile.ami NetHack.cnf +amidos.c amidos.p amifont.uu amifont8.uu amigst.c +amii.hlp amimenu.c amirip.c amisnd.c amistack.c +amitty.c amiwind.c amiwind.p clipwin.c colorwin.c +cvtsnd.c grave16.xpm ifchange mkdmake txt2iff.c +winami.c winami.p winchar.c windefs.h winext.h +winfuncs.c winkey.c winmenu.c winproto.h winreq.c +winstr.c xpm2iff.c sys/atari: (files for Atari version - untested for 3.6.2) -Install.tos atarifnt.uue nethack.mnu setup.g tos.c -unx2atar.sed +Install.tos atarifnt.uue nethack.mnu setup.g tos.c +unx2atar.sed sys/be: (files for BeOS version - untested for 3.6.2) -README bemain.c +README bemain.c sys/mac: (files for 68K Macintosh versions) -Files.r Install.mw MacHelp NHDeflts NHrsrc.hqx -NHsound.hqx News README carbon.plist dprintf.c -maccurs.c macerrs.c macfile.c machelp.hqx macmain.c -macmenu.c macsnd.c mactopl.c mactty.c macunix.c -macwin.c mgetline.c mmodal.c mrecover.c mrecover.hqx -mttymain.c +Files.r Install.mw MacHelp NHDeflts NHrsrc.hqx +NHsound.hqx News README carbon.plist dprintf.c +maccurs.c macerrs.c macfile.c machelp.hqx macmain.c +macmenu.c macsnd.c mactopl.c mactty.c macunix.c +macwin.c mgetline.c mmodal.c mrecover.c mrecover.hqx +mttymain.c sys/msdos: (files for MSDOS version - untested for 3.6.2) -Install.dos Makefile.BC Makefile.GCC Makefile.MSC SCHEMA35.MSC -moveinit.pat msdos.c msdoshlp.txt ovlinit.c pckeys.c -pctiles.c pctiles.h pcvideo.h portio.h schema1.BC -schema2.BC schema3.MSC setup.bat sound.c tile2bin.c -vesa.h video.c vidtxt.c vidvesa.c vidvga.c +Install.dos Makefile.BC Makefile.GCC Makefile.MSC SCHEMA35.MSC +moveinit.pat msdos.c msdoshlp.txt ovlinit.c pckeys.c +pctiles.c pctiles.h pcvideo.h portio.h schema1.BC +schema2.BC schema3.MSC setup.bat sound.c tile2bin.c +vesa.h video.c vidtxt.c vidvesa.c vidvga.c (files for running MSDOS binary under Windows) -nhico.uu nhpif.uu +nhico.uu nhpif.uu sys/os2: (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: (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) -uudecode.c +uudecode.c (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) -NetHack.cnf pctty.c +NetHack.cnf pctty.c (file for MSDOS, OS/2, and VMS versions) -termcap +termcap (file for NT version) -nhlan.c +nhlan.c (file for VMS version) -tclib.c +tclib.c (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) -pcsys.c pcunix.c +pcsys.c pcunix.c (files for UNIX and Be versions) -ioctl.c unixtty.c +ioctl.c unixtty.c (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) -posixregex.c +posixregex.c (c++ regex code for versions that can build a C++ module and link it in) -cppregex.cpp +cppregex.cpp (pmatch regex for other versions) -pmatchregex.c +pmatchregex.c sys/share/sounds: (files for Amiga and Macintosh versions) -README bell.uu bugle.uu erthdrum.uu firehorn.uu frsthorn.uu -lethdrum.uu mgcflute.uu mgcharp.uu toolhorn.uu wdnflute.uu wdnharp.uu +README bell.uu bugle.uu erthdrum.uu firehorn.uu frsthorn.uu +lethdrum.uu mgcflute.uu mgcharp.uu toolhorn.uu wdnflute.uu wdnharp.uu sys/unix: (files for UNIX versions) -Install.unx Makefile.dat Makefile.doc Makefile.src -Makefile.top Makefile.utl NewInstall.unx README.linux -depend.awk gitinfo.sh mkmkfile.sh nethack.sh -setup.sh sysconf unixmain.c unixres.c -unixunix.c +Install.unx Makefile.dat Makefile.doc Makefile.src +Makefile.top Makefile.utl NewInstall.unx README.linux +depend.awk gitinfo.sh mkmkfile.sh nethack.sh +setup.sh sysconf unixmain.c unixres.c +unixunix.c (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) -snd86unx.shr +snd86unx.shr sys/unix/hints: (files for configuring UNIX NetHack versions) -linux linux-chroot linux-qt4 linux-qt5 -linux-x11 macosx macosx.sh macosx10.5 -macosx10.7 macosx10.8 macosx10.10 macosx10.10-qt -unix +linux linux-chroot linux-qt4 linux-qt5 +linux-x11 macosx macosx.sh macosx10.5 +macosx10.7 macosx10.8 macosx10.10 macosx10.10-qt +unix sys/vms: (files for VMS version) -Install.vms Makefile.dat Makefile.doc Makefile.src Makefile.top -Makefile.utl install.com lev_lex.h nethack.com oldcrtl.c -spec_lev.com sysconf vmsbuild.com vmsfiles.c vmsmail.c -vmsmain.c vmsmisc.c vmstty.c vmsunix.c +Install.vms Makefile.dat Makefile.doc Makefile.src Makefile.top +Makefile.utl install.com lev_lex.h nethack.com oldcrtl.c +spec_lev.com sysconf vmsbuild.com vmsfiles.c vmsmail.c +vmsmain.c vmsmisc.c vmstty.c vmsunix.c sys/wince: (files for Windows CE and PocketPC - untested for 3.6.2) -Install.ce bootstrp.mak celib.c cesetup.bat cesound.c -defaults.nh keypad.uu menubar.uu mhaskyn.c mhaskyn.h -mhcmd.c mhcmd.h mhcolor.c mhcolor.h mhdlg.c -mhdlg.h mhfont.c mhfont.h mhinput.c mhinput.h -mhmain.c mhmain.h mhmap.c mhmap.h mhmenu.c -mhmenu.h mhmsg.h mhmsgwnd.c mhmsgwnd.h mhrip.c -mhrip.h mhstatus.c mhstatus.h mhtext.c mhtext.h -mhtxtbuf.c mhtxtbuf.h mswproc.c newres.h nhico.uu -resource.h winMS.h winhack.c winhack.rc winhcksp.rc -winmain.c +Install.ce bootstrp.mak celib.c cesetup.bat cesound.c +defaults.nh keypad.uu menubar.uu mhaskyn.c mhaskyn.h +mhcmd.c mhcmd.h mhcolor.c mhcolor.h mhdlg.c +mhdlg.h mhfont.c mhfont.h mhinput.c mhinput.h +mhmain.c mhmain.h mhmap.c mhmap.h mhmenu.c +mhmenu.h mhmsg.h mhmsgwnd.c mhmsgwnd.h mhrip.c +mhrip.h mhstatus.c mhstatus.h mhtext.c mhtext.h +mhtxtbuf.c mhtxtbuf.h mswproc.c newres.h nhico.uu +resource.h winMS.h winhack.c winhack.rc winhcksp.rc +winmain.c sys/wince/ceinc: (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/stat.h for Windows CE and PocketPC - untested for 3.6.2) -stat.h +stat.h sys/winnt: (files for Windows 7/8.x/10 version) -Install.nt Makefile.gcc Makefile.msc console.rc defaults.nh -nethack.def nh340key.c nhdefkey.c nhico.uu nhraykey.c -nhsetup.bat ntsound.c nttty.c porthelp stubs.c -sysconf win32api.h winnt.c +Install.nt Makefile.gcc Makefile.msc console.rc defaults.nh +nethack.def nh340key.c nhdefkey.c nhico.uu nhraykey.c +nhsetup.bat ntsound.c nttty.c porthelp stubs.c +sysconf win10.c win10.h win32api.h winnt.c util: (files for all versions) -dgn_main.c dlb_main.c lev_main.c makedefs.c mdgrep.h mdgrep.pl -panic.c recover.c +dgn_main.c dlb_main.c lev_main.c makedefs.c mdgrep.h mdgrep.pl +panic.c recover.c (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: (files for the Qt 3 widget library - X11, Windows, Mac OS X, or Qtopia) -Info.plist Install.Qt knethack.lnk -knh-mini.xpm knh.xpm nhicns.uu -nhsplash.xpm qpe-nethack.control qt_clust.cpp -qt_win.cpp qttableview.cpp tileedit.cpp -tileedit.h +Info.plist Install.Qt knethack.lnk +knh-mini.xpm knh.xpm nhicns.uu +nhsplash.xpm qpe-nethack.control qt_clust.cpp +qt_win.cpp qttableview.cpp tileedit.cpp +tileedit.h win/Qt4: (files for the Qt 4 widget library - X11, Windows, Mac OS X) -qt4bind.cpp qt4bind.h qt4click.cpp qt4click.h qt4clust.cpp -qt4clust.h qt4delay.cpp qt4delay.h qt4glyph.cpp qt4glyph.h -qt4icon.cpp qt4icon.h qt4inv.cpp qt4inv.h qt4kde0.h -qt4key.cpp qt4key.h qt4line.cpp qt4line.h qt4main.cpp -qt4main.h qt4map.cpp qt4map.h qt4menu.cpp qt4menu.h -qt4msg.cpp qt4msg.h qt4plsel.cpp qt4plsel.h qt4rip.cpp -qt4rip.h qt4set.cpp qt4set.h qt4stat.cpp qt4stat.h -qt4str.cpp qt4str.h qt4streq.cpp qt4streq.h qt4svsel.cpp -qt4svsel.h qt4win.cpp qt4win.h qt4xcmd.cpp qt4xcmd.h -qt4yndlg.cpp qt4yndlg.h +qt4bind.cpp qt4bind.h qt4click.cpp qt4click.h qt4clust.cpp +qt4clust.h qt4delay.cpp qt4delay.h qt4glyph.cpp qt4glyph.h +qt4icon.cpp qt4icon.h qt4inv.cpp qt4inv.h qt4kde0.h +qt4key.cpp qt4key.h qt4line.cpp qt4line.h qt4main.cpp +qt4main.h qt4map.cpp qt4map.h qt4menu.cpp qt4menu.h +qt4msg.cpp qt4msg.h qt4plsel.cpp qt4plsel.h qt4rip.cpp +qt4rip.h qt4set.cpp qt4set.h qt4stat.cpp qt4stat.h +qt4str.cpp qt4str.h qt4streq.cpp qt4streq.h qt4svsel.cpp +qt4svsel.h qt4win.cpp qt4win.h qt4xcmd.cpp qt4xcmd.h +qt4yndlg.cpp qt4yndlg.h win/X11: (files for X versions) -Install.X11 NetHack.ad Window.c dialogs.c ibm.bdf -nethack.rc nh10.bdf nh32icon nh56icon nh72icon -nh_icon.xpm pet_mark.xbm pilemark.xbm rip.xpm tile2x11.c -winX.c winmap.c winmenu.c winmesg.c winmisc.c -winstat.c wintext.c winval.c +Install.X11 NetHack.ad Window.c dialogs.c ibm.bdf +nethack.rc nh10.bdf nh32icon nh56icon nh72icon +nh_icon.xpm pet_mark.xbm pilemark.xbm rip.xpm tile2x11.c +winX.c winmap.c winmenu.c winmesg.c winmisc.c +winstat.c wintext.c winval.c win/chain: (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: (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 -load_img.c tile2img.c title.uu wingem.c wingem1.c xpm2img.c +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 win/gnome: (files for GNOME versions - untested for 3.6.2) -README gn_xpms.h gnaskstr.c gnaskstr.h gnbind.c gnbind.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 -gnopts.h gnplayer.c gnplayer.h gnsignal.c gnsignal.h gnstatus.c -gnstatus.h gntext.c gntext.h gnworn.c gnworn.h gnyesno.c -gnyesno.h mapbg.xpm +README gn_xpms.h gnaskstr.c gnaskstr.h gnbind.c gnbind.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 +gnopts.h gnplayer.c gnplayer.h gnsignal.c gnsignal.h gnstatus.c +gnstatus.h gntext.c gntext.h gnworn.c gnworn.h gnyesno.c +gnyesno.h mapbg.xpm win/macosx: (files for macosx versions) -NetHackGuidebook.applescript NetHackRecover.applescript -NetHackTerm.applescript recover.pl +NetHackGuidebook.applescript NetHackRecover.applescript +NetHackTerm.applescript recover.pl win/share: (files for versions using optional tiles) -bmptiles.c gifread.c giftiles.c monsters.txt objects.txt -other.txt ppmwrite.c renumtiles.pl thintile.c tile.doc -tile.h tile2bmp.c tilemap.c tileset.c tiletext.c +bmptiles.c gifread.c giftiles.c monsters.txt objects.txt +other.txt ppmwrite.c renumtiles.pl thintile.c tile.doc +tile.h tile2bmp.c tilemap.c tileset.c tiletext.c win/tty: (files for tty versions) -getline.c termcap.c topl.c wintty.c +getline.c termcap.c topl.c wintty.c win/win32: (files for Windows versions - tested up to Windows 10) -dgnstuff.mak levstuff.mak mhaskyn.c mhaskyn.h mhdlg.c -mhdlg.h mhfont.c mhfont.h mhinput.c mhinput.h -mhmain.c mhmain.h mhmap.c mhmap.h mhmenu.c -mhmenu.h mhmsg.h mhmsgwnd.c mhmsgwnd.h mhrip.c -mhrip.h mhsplash.c mhsplash.h mhstatus.c mhstatus.h -mhtext.c mhtext.h mnsel.uu mnselcnt.uu mnunsel.uu -mswproc.c nethack.rc nhresource.h petmark.uu pilemark.uu -record.uu resource.h rip.uu splash.uu tiles.mak -winMS.h winhack.c winhack.rc +dgnstuff.mak levstuff.mak mhaskyn.c mhaskyn.h mhdlg.c +mhdlg.h mhfont.c mhfont.h mhinput.c mhinput.h +mhmain.c mhmain.h mhmap.c mhmap.h mhmenu.c +mhmenu.h mhmsg.h mhmsgwnd.c mhmsgwnd.h mhrip.c +mhrip.h mhsplash.c mhsplash.h mhstatus.c mhstatus.h +mhtext.c mhtext.h mnsel.uu mnselcnt.uu mnunsel.uu +mswproc.c nethack.rc nhresource.h petmark.uu pilemark.uu +record.uu resource.h rip.uu splash.uu tiles.mak +winMS.h winhack.c winhack.rc win/win32/vs2015: (files for Windows versions - tested up to Windows 10) -NetHack.sln NetHack.vcxproj NetHackW.vcxproj -afterdgncomp.proj afterdlb.proj afterlevcomp.proj -aftermakedefs.proj afternethack.proj afterrecover.proj -aftertile2bmp.proj aftertilemap.proj afteruudecode.proj -build.bat common.props config.props -console.props default.props default_dll.props -dgncomp.vcxproj dirs.props dlb.vcxproj -dll.props files.props levcomp.vcxproj -makedefs.vcxproj nh340key.def nh340key.vcxproj -nhdefkey.def nhdefkey.vcxproj nhraykey.def -nhraykey.vcxproj notes.txt recover.vcxproj -tile2bmp.vcxproj tilemap.vcxproj tiles.vcxproj -uudecode.vcxproj +NetHack.sln NetHack.vcxproj NetHackW.vcxproj +afterdgncomp.proj afterdlb.proj afterlevcomp.proj +aftermakedefs.proj afternethack.proj afterrecover.proj +aftertile2bmp.proj aftertilemap.proj afteruudecode.proj +build.bat common.props config.props +console.props default.props default_dll.props +dgncomp.vcxproj dirs.props dlb.vcxproj +dll.props files.props levcomp.vcxproj +makedefs.vcxproj nh340key.def nh340key.vcxproj +nhdefkey.def nhdefkey.vcxproj nhraykey.def +nhraykey.vcxproj notes.txt recover.vcxproj +tile2bmp.vcxproj tilemap.vcxproj tiles.vcxproj +uudecode.vcxproj win/win32/vs2017: (files for Visual Studio 2017 Community Edition builds) -NetHack.sln NetHack.vcxproj NetHackW.vcxproj -afterdgncomp.proj afterdlb.proj afterlevcomp.proj -aftermakedefs.proj afternethack.proj afterrecover.proj -aftertile2bmp.proj aftertilemap.proj afteruudecode.proj -build.bat common.props config.props -console.props default.props default_dll.props -dgncomp.vcxproj dirs.props dlb.vcxproj -dll.props files.props levcomp.vcxproj -makedefs.vcxproj nh340key.def nh340key.vcxproj -nhdefkey.def nhdefkey.vcxproj nhraykey.def -nhraykey.vcxproj recover.vcxproj tile2bmp.vcxproj -tilemap.vcxproj tiles.vcxproj uudecode.vcxproj +NetHack.sln NetHack.vcxproj NetHackW.exe.manifest +NetHackW.vcxproj afterdgncomp.proj afterdlb.proj +afterlevcomp.proj aftermakedefs.proj afternethack.proj +afterrecover.proj aftertile2bmp.proj aftertilemap.proj +afteruudecode.proj build.bat common.props +config.props console.props default.props +default_dll.props dgncomp.vcxproj dirs.props +dlb.vcxproj dll.props files.props +levcomp.vcxproj makedefs.vcxproj nh340key.def +nh340key.vcxproj nhdefkey.def nhdefkey.vcxproj +nhraykey.def nhraykey.vcxproj recover.vcxproj +tile2bmp.vcxproj tilemap.vcxproj tiles.vcxproj +uudecode.vcxproj This is a list of files produced by auxiliary programs. They can all be regenerated from the files in the distribution. -dat: -(file generated by dgn_comp at playground creation time) -dungeon - -(files generated by lev_comp at playground creation time) -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 -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 -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 -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 -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 -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 -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 -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 -earth.lev fakewiz1.lev fakewiz2.lev fire.lev juiblex.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 -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 -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 -valley.lev water.lev wizard1.lev wizard2.lev wizard3.lev - -(files generated by makedefs at playground creation time) -data dungeon.pdf options oracles quest.dat rumors - -(files generated for Qt interface on Mac OS X) -Info.plist nethack.icns - -(files generated for win32 at compile time) -dlb.lst porthelp - -(files generated for win32 gui at compile time) -guioptions - -(files generated for win32 tty at compile time) -ttyoptions - -(tile files optionally generated for X ports at playground creation time) -pet_mark.xbm rip.xpm x11tiles - include: (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) -win32api.h +win32api.h (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) -dgn_comp.h lev_comp.h +dgn_comp.h lev_comp.h src: (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) -qt_kde0.moc qt_win.moc qttableview.moc +qt_kde0.moc qt_win.moc qttableview.moc -(files generated by makedefs at compile time) -monstr.c vis_tab.c +(file generated by makedefs at compile time by some ports) +monstr.c + +(file generated by makedefs at compile time) +vis_tab.c (file optionally generated by tilemap at compile time) -tile.c +tile.c sys/winnt: (file generated by uudecode at compile time) -nethack.ico +nethack.ico util: (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) -tiletxt.c +tiletxt.c (file generated for win32 at compile time) -uudecode.exe +uudecode.exe NOTE: If your binaries were compiled with the data librarian (DLB) option, your playground will not contain all of the files listed here. All diff --git a/dat/.gitattributes b/dat/.gitattributes index ea45e32a3..782b4d01e 100644 --- a/dat/.gitattributes +++ b/dat/.gitattributes @@ -4,3 +4,5 @@ data.base NHSUBST symbols NHSUBST tribute NHSUBST +* NH_filestag=(file%s_for_all_versions) +..files NH_filegenprog diff --git a/doc/.gitattributes b/doc/.gitattributes index 544cfa5c5..80fecb1d5 100644 --- a/doc/.gitattributes +++ b/doc/.gitattributes @@ -1,5 +1,6 @@ *.mn NHSUBST *.6 NHSUBST +*.7 NHSUBST fixes* NHSUBST window.doc NHSUBST config.nh NHSUBST @@ -8,3 +9,4 @@ tmac.n NH_header=no tmac.nh NUSUBST fixes* NH_header=no *.txt NH_header=no +* NH_filestag=(file%s_for_all_versions) diff --git a/doc/Guidebook.mn b/doc/Guidebook.mn index ebe9a7628..6b40f0ec5 100644 --- a/doc/Guidebook.mn +++ b/doc/Guidebook.mn @@ -4086,7 +4086,7 @@ For example, the following line in your config file will cause the hitpoints field to display in the color red if your hitpoints drop to or below a threshold of 30%: .si -.lp "OPTION=hilite_status: hitpoints/<30%/red/normal" +.lp "OPTION=hilite_status: hitpoints/<=30%/red/normal" .ei .pg For another example, the following line in your config file will cause diff --git a/doc/Guidebook.tex b/doc/Guidebook.tex index 008cff3e4..1a194ea54 100644 --- a/doc/Guidebook.tex +++ b/doc/Guidebook.tex @@ -4549,7 +4549,7 @@ For example, the following line in your config file will cause the hitpoints field to display in the color red if your hitpoints drop to or below a threshold of 30%: \begin{verbatim} - OPTION=hilite_status: hitpoints/<30%/red/normal + OPTION=hilite_status: hitpoints/<=30%/red/normal \end{verbatim} %.pg For another example, the following line in your config file will cause diff --git a/doc/mn.7 b/doc/mn.7 new file mode 100644 index 000000000..1d40edc2c --- /dev/null +++ b/doc/mn.7 @@ -0,0 +1,273 @@ +.\" $NHDT-Branch: NetHack-3.6.2 $:$NHDT-Revision: 1.0 $ $NHDT-Date: 1541298619 2018/11/04 02:30:19 $ +.TH MN 7 "News Version B2.11" +.SH NAME +mn \- text formatting macros for the news documentation +.SH SYNOPSIS +.B "nroff \-mn" +[ options ] file ... +.br +.B "troff \-mn" +[ options ] file ... +.SH DESCRIPTION +.PP +This package of +.IR nroff (1) +and +.IR troff (1) +macro definitions provides a formatting facility +which may be used to run off the formatted news documents. +When reverse line motions are needed, +filter the output through +.IR col (1). +.PP +All \-mn macros, +diversions, +string registers, +and number registers are defined below. +Many +.I nroff +and +.I troff +requests are unsafe in conjunction with this package. +However, +the requests below may be used with impunity: +.LP +.ta 5n 12n +.nf + .bp begin new page + .br break output line + .sp \f2n\fP insert \f2n\fP spacing lines + .ce \f2n\fP center next \f2n\fP lines + .ls \f2n\fP line spacing: \f2n\fP=1 single, \f2n\fP=2 double space + .na no alignment of right margin +.fi +.PP +Font and point size changes with \ef and \es are also allowed; +for example, +\&``\ef2word\efR'' will italicize \f2word.\fP +Output of the +.IR tbl (1), +.IR eqn (1), +and +.IR refer (1) +preprocessors for equations, +tables, +and references is acceptable as input. +.SH FILES +/usr/lib/tmac/tmac.n +.SH "SEE ALSO" +eqn(1), refer(1), tbl(1), troff(1) +.SH WARNINGS +.PP +If you do not set the string register ``.f'' to the file name, +you will only be told the line number on which any errors occur. +If you define this string to be the file name, +you will get the file name, +too. +This is useful when dealing with a document +split up into many files. +.PP +This package is not now intended for uses +other than with the news documentation. +.PP +Bug reports are always welcome; +please send them to the author. +(Include a sample of the input; +this helps track down the bug.) +.SH AUTHOR +Matt Bishop +.RI ( mab@riacs.arpa , +.IR ihnp4!ames!riacs!mab , +.IR decvax!decwrl!riacs!mab ) +.br +Updated for versions 1.4-1.6 by The NetHack Development Team +.SH REQUESTS +.PP +In the +.I Note +column, +.I b +means the request causes a break, +and +.I i +means the macro, +number register, +string register, +or diversion is internal and should not be used for anything. +In the +.I "What It Is" +column, +.IR div " means " diversion , +.IR mac " means " macro , +.IR num " means " "number register" , +and +.IR str " means " "string register" . +In the +.I "Initial Value" +column, +a hyphen means no initial value is used, +anything else is the initial value, +and if two values are given, +the first is for +.I nroff +and the second for +.IR troff . +.PP +.if n .in 0 +.ds x \f2x\fP\| +.ds y \f2y\fP\| +.ds z \f2z\fP\| +.ds X "\*x +.ds Y "\*x \*y +.ds Z "\*x \*y \*z +.tr _. +.ta \w'MacroNames'u +\w'WhatItIs'u +\w'InitialVal'u +\w'Note 'u +.sp .3 +.nf +Macro What Initial Note \0 Explanation +Name It Is Value +.sp .3 +_f num \- \- file name, used in error messages if set +_ai mac \- \- author's institution +_au mac \- b author's name +_b \*Z mac \- \- print \*x in font 3, \*y after, \*z before; + if no arguments, switch to font 3 +b num \- i used to embolden italics +_bi \*Z mac \- \- print \*x in emboldened font 2, \*y after, + \*z before +bm num 1i,1i+1v \- height of bottom margin +_bt mac \- \- print pottom title +bt num .5i+1v \- bottom of footer to bottom of page +_cf \*Z mac \- \- print contents of header line (double + quotes around \*x, \*y before, \*z after) +cm num 0 \- 0 if no cut marks, nonzero if cut marks +_cn \*Z mac \- \- print computer/site name; same as _i +_dd div \- i text of display +dg str \(**,\(dg \- footnote mark +dw str \f2current\fP \- name of current day of week +dy str \f2current\fP \- full date +_ed mac \- b end display +_ef mac \- b end footnote +_ei mac \- b move left margin to the right +_er mac \- \- print error message +_et mac \- b,i macro called at end of text +f0 str \- \- left bottom title +f1 num \- i current font number +f1 str \f2date\fP,\- \- center bottom title +f2 num \- i previous font number +f2 str \- \- right bottom title +fc num \- i per-page footnote count +_fd mac \- b,i drop footnotes +fg num \- i gets fudge factor for footnote +fl num 5.5i \- default footnote line length +_fn mac \- \- begin footnote +_fo mac \- \- bottom of page (footer) macro +fp num \- i current location of trap for _fo macro +_fs mac \- i print text/footnote separator +fs num \- i position where footnote printing should begin +_fx mac \- i collect overflow footnotes +_fy div \- i text of footnote overflow +_fz mac \- i move overflow footnotes from _fy to _tf +gs num \- i used to be sure footnotes fit +h0 num 0 i current level 1 section number +h0 str \- \- left header title +h1 num 0 i current level 2 section number +h1 str \f2\- page \-\fP \- center header title +h2 num 0 i current level 3 section number +h2 str \- \- right header title +h3 num 0 i current level 4 section number +_hd mac \- i top of page (header) macro +_hf mac \- \- print header field name; same as _cf +_hn \*x mac \- b numbered section; if present, \*x is level +hn num 0 i current level of numbering (temporary) +hs num 1v \- default intra-section spacing +_hu mac \- b unnumbered section header +_i \*Z mac \- \- print \*x in font 2, \*y after, \*z before; + if no arguments, switch to font 2 +i1 num \- i current indent +i2 num \- i previous indent +id num 0 i 1 if in display, 0 otherwise +if num 0 i 1 if in footnote, 0 otherwise +_is \*Z mac \- \- print \*x 2p bigger, \*y after, \*z before; + if no arguments, increase point size by 2p +it num 0 i 0 before _bt called, 1 after +l0 num 0 i leftmost position for left margin +l1 num \- i first level of indent for left margin +l2 num \- i second level of indent for left margin +l3 num \- i third level of indent for left margin +l4 num \- i fourth level of indent for left margin +l5 num \- i fifth level of indent for left margin +l6 num \- i sixth level of indent for left margin +l7 num \- i seventh level of indent for left margin +l8 num \- i eighth level of indent for left margin +l9 num \- i ninth level of indent for left margin +li num 5n \- paragraph indent +ll num 6i \- default line length +lm num 0 i current level of indent for left margin +lo num \- i previous level for left margin +_lp \*Y mac \- b labelled paragraph; \*x is label, \*y indent +lq str ",`` \- left double quotation marks +mo str \f2current\fP \- name of current month +_mt mac \- b title +mt num 1.5i+1v \- distance of title from top of page +_ng \*Z mac \- \- newsgroup name; same as _b +_nl mac \- b reset point size to default +ns num 0 i if nonzero, _fn does not call _fs +_op \*Z mac \- \- command option; same as _b +p1 num 0 i 1 after PDP-11(tm) footnote printed, + 0 before +_pa \*Z mac \- \- print protocol appellation; same as _i +_pd \*Y mac \- \- print PDP-11(tm), footnote; \*x after, + \*y before +pd num 1v,.3v \- intra-paragraph spacing +_pf mac \- \- print footer title +_pg \*x mac \- b paragraph; if \*x is l, left justify +pi num 5n \- default paragraph indent +po num 1.25i \- default page offset +ps num 12p \- default point size +_pt \*x mac \- \- print header; \*x is distance from top of + page +_qc \*Z mac \- \- print name of control char; \*x is name, + in font 3, between <>, \*y after, \*z before +_qp \*Z mac \- \- print char; same as _b +_r mac \- \- switch to font 1 +rg str \- \- registered trademark symbol +rq str ",'' \- right double quotation marks +s1 num \- i current point size +s2 num \- i previous point size +_sd \*X mac \- \- start display; if \*x is c, center display +sf num \- i 1 if center display, 0 otherwise +_si \*x num \- \- indent left margin by \*x (5n default) +_sm \*Z mac \- \- print \*x 2p smaller, \*y after, \*z before; + if no arguments, decrease point size by 2p +_sn \*x mac \- b space by \*x (1v default), enter nospace mode +_sr \*x mac \- \- enter spacemode, space by \*x (1v default) +t2 num 0 i 0 if little/no space, nonzero otherwise +_tf div \- i text of footnotes +tm num 1i-.5v \- height of top margin +tt num .5i-.5v \- distance from top of page to header +_ux \*Y mac \- \- print UNIX(tm), footnote; \*x after, + \*y before +ux num 0 i 1 after UNIX(tm) footnote printed, + 0 before +v1 num \- i current vertical spacing +v2 num \- i previous vertical spacing +vr str \- \- current version of news +vs num 16p \- default vertical spacing +vx num 0 i 1 after VAX(tm) footnote printed, + 0 before +_vx \*Y mac \- \- print VAX(tm), footnote; \*x after, + \*y before +ws str \- \- used to construct error message +_ya mac \- \- same as calling _yf, _yi, _ys, _yv +_yf mac \- \- restore fonts saved by _zf +_yi mac \- \- restore indents saved by _zi +Yr str \- \- current year +_ys mac \- \- restore point sizes saved by _zs +_yv mac \- \- restore vertical spacings saved by _zv +_za mac \- \- same as calling _zf, _zi, _zs, _zv +_zf mac \- \- save previous, current fonts +_zi mac \- \- save previous, current indents +_zs mac \- \- save previous, current point sizes +_zv mac \- \- save previous, current vertical spacings +.fi diff --git a/doc/mnh.7 b/doc/mnh.7 new file mode 100644 index 000000000..daed16283 --- /dev/null +++ b/doc/mnh.7 @@ -0,0 +1,95 @@ +.\" $NHDT-Branch: NetHack-3.6.2 $:$NHDT-Revision: 1.0 $ $NHDT-Date: 1541298620 2018/11/04 02:30:20 $ +.TH MNH 7 NETHACK +.SH NAME +mnh \- additional text formatting macros for the NetHack Guidebook +.SH SYNOPSIS +.B "make Guidebook" +.\"[ options ] file ... +.\".br +.\".B "troff \-mn" +.\"[ options ] file ... +.SH DESCRIPTION +.PP +This package of +.IR nroff (1) +and +.IR troff (1) +macro definitions extends +.IR tmac.n (7) +for the NetHack Guidebook. This document should be +read as an addendum to the documentation for +.IR tmac.n . +.PP +All \-mnh macros, +diversions, +string registers, +and number registers are defined below. +.SH FILES +doc/tmac.nh +.SH "SEE ALSO" +mn(7) +.SH AUTHOR +Pat Rankin +.SH REQUESTS +.PP +In the +.I Note +column, +.I b +means the request causes a break, +and +.I i +means the macro, +number register, +string register, +or diversion is internal and should not be used for anything. +In the +.I "What It Is" +column, +.IR div " means " diversion , +.IR mac " means " macro , +.IR num " means " "number register" , +and +.IR str " means " "string register" . +In the +.I "Initial Value" +column, +a hyphen means no initial value is used, +anything else is the initial value, +and if two values are given, +the first is for +.I nroff +and the second for +.IR troff . +.PP +.if n .in 0 +.ds x \f2x\fP\| +.ds y \f2y\fP\| +.ds z \f2z\fP\| +.ds X "\*x +.ds Y "\*x \*y +.ds Z "\*x \*y \*z +.tr _. +.ta \w'MacroNames'u +\w'WhatItIs'u +\w'InitialVal'u +\w'Note 'u +.sp .3 +.nf +Macro What Initial Note \0 Explanation +Name It Is Value +.sp .3 +_BR mac \- \- hard line break with vertical padding inserted +bR num \- i +_CC \*Y mac \- \- aligned one char key \*x with \fIshort\fP definition \*y +CW num \- i +CX num \- i +CY num \- i +CZ num \- i +CZ num \- i +_ED mac \- \- ends .SD +_PE mac \- b labelled paragraph end +_PL \*X mac \- b labelled paragraph label is \*x +_PS \*X mac \- b labelled paragraph start for label the width of \*x +PX num \- i +PY num \- i +_SD \*X mac \- \- .sd with options c-center i-indent n-no indent +SF num \- i +_UX mac \- \- .ux with updated trademark owner diff --git a/include/.gitattributes b/include/.gitattributes new file mode 100644 index 000000000..7294b8b43 --- /dev/null +++ b/include/.gitattributes @@ -0,0 +1,43 @@ +* NH_filestag=(file%s_for_all_versions) +..files NH_filegenerated=win32api.h,tile.h,dgn_comp.h,lev_comp.h,date.h,onames.h,pm.h,vis_tab.h + +win32api.h NH_filesgentag=(file%s_for_win32_that_are_moved_into_include_at_compile_time) + +tile.h NH_filesgentag=(file%s_for_tiles_support_copied_from_win/share_at_compile_time) + +dgn_comp.h NH_filesgentag=(file%s_generated_by_yacc_(or_copied_from_sys/share)_at_compile_time) +lev_comp.h NH_filesgentag=>dgn_comp.h + +date.h NH_filesgentag=(file%s_generated_by_makedefs_at_compile_time) +onames.h NH_filesgentag=>date.h +pm.h NH_filesgentag=>date.h +vis_tab.h NH_filesgentag=>date.h + +wintty.h NH_filestag=(file%s_for_tty_versions) + +tile2x11.h NH_filestag=(file%s_for_X_versions) +winX.h NH_filestag=>tile2x11.h +xwindow.h NH_filestag=>tile2x11.h +xwindowp.h NH_filestag=>tile2x11.h + +qt_clust.h NH_filestag=(file%s_for_Qt_versions) +qt_kde0.h NH_filestag=>qt_clust.h +qt_win.h NH_filestag=>qt_clust.h +qt_xpms.h NH_filestag=>qt_clust.h +qttableview.h NH_filestag=>qt_clust.h + +bitmfile.h NH_filestag=(file%s_for_GEM_versions) +gem_rsc.h NH_filestag=>bitmfile.h +load_img.h NH_filestag=>bitmfile.h +wingem.h NH_filestag=>bitmfile.h + +winGnome.h NH_filestag=(file%s_for_GNOME_versions) + +mac-carbon.h NH_filestag=(file%s_for_various_Macintosh_versions) +mac-qt.h NH_filestag=>mac-carbon.h +mac-term.h NH_filestag=>mac-carbon.h +macconf.h NH_filestag=>mac-carbon.h +macpopup.h NH_filestag=>mac-carbon.h +mactty.h NH_filestag=>mac-carbon.h +macwin.h NH_filestag=>mac-carbon.h +mttypriv.h NH_filestag=>mac-carbon.h diff --git a/src/.gitattributes b/src/.gitattributes new file mode 100644 index 000000000..4c2e83753 --- /dev/null +++ b/src/.gitattributes @@ -0,0 +1,14 @@ +* NH_filestag=(file%s_for_all_versions) +..files NH_filegenerated=Makefile,Makefile.bcc,Makefile.gcc,qt_kde0.moc,qt_win.moc,qttableview.moc,tile.c,monstr.c,vis_tab.c +Makefile.bcc NH_filesgentag=(file%s_for_win32_that_are_moved_into_src_at_compile_time) +Makefile.gcc NH_filesgentag=>Makefile.bcc +Makefile NH_filesgentag=>Makefile.bcc + +qt_kde0.moc NH_filesgentag=(file%s_generated_by_'moc'_for_Qt_interface_at_compile_time) +qt_win.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) +monstr.c NH_filesgentag=(file%s_generated_by_makedefs_at_compile_time_by_some_ports) + +vis_tab.c NH_filesgentag=(file%s_generated_by_makedefs_at_compile_time) diff --git a/sys/amiga/.gitattributes b/sys/amiga/.gitattributes index 7735c64ea..732c6177e 100644 --- a/sys/amiga/.gitattributes +++ b/sys/amiga/.gitattributes @@ -1 +1,2 @@ *.p NHSUBST +* NH_filestag=(file%s_for_Amiga_versions_-_untested_for_3.6.2) diff --git a/sys/atari/.gitattributes b/sys/atari/.gitattributes new file mode 100644 index 000000000..dea950a06 --- /dev/null +++ b/sys/atari/.gitattributes @@ -0,0 +1 @@ +* NH_filestag=(file%s_for_Atari_version_-_untested_for_3.6.2) diff --git a/sys/be/.gitattributes b/sys/be/.gitattributes new file mode 100644 index 000000000..76f62f434 --- /dev/null +++ b/sys/be/.gitattributes @@ -0,0 +1 @@ +* NH_filestag=(file%s_for_BeOS_version_-_untested_for_3.6.2) diff --git a/sys/mac/.gitattributes b/sys/mac/.gitattributes index 8f8defc69..ffe91d74f 100644 --- a/sys/mac/.gitattributes +++ b/sys/mac/.gitattributes @@ -1 +1,2 @@ NHDeflts NHSUBST +* NH_filestag=(file%s_for_68K_Macintosh_versions) diff --git a/sys/msdos/.gitattributes b/sys/msdos/.gitattributes index 304a2432d..f24897760 100644 --- a/sys/msdos/.gitattributes +++ b/sys/msdos/.gitattributes @@ -4,3 +4,6 @@ Makefile.* NHSUBST Install.* NHSUBST moveinit.pat NH_header=no vesa.h NH_header=no +* NH_filestag=(file%s_for_MSDOS_version_-_untested_for_3.6.2) +nhico.uu NH_filestag=(file%s_for_running_MSDOS_binary_under_Windows) +nhpif.uu NH_filestag=>nhico.uu diff --git a/sys/os2/.gitattributes b/sys/os2/.gitattributes index 31e18fe84..9a0ea4eb3 100644 --- a/sys/os2/.gitattributes +++ b/sys/os2/.gitattributes @@ -1 +1,2 @@ Makefile.* NHSUBST +* NH_filestag=(file%s_for_OS/2_version_-_untested_for_3.6.2) diff --git a/sys/share/.gitattributes b/sys/share/.gitattributes index 4eede48ab..ec28e65db 100644 --- a/sys/share/.gitattributes +++ b/sys/share/.gitattributes @@ -4,3 +4,41 @@ termcap NH_header=no dgn_comp.h NH_header=no lev_comp.h NH_header=no Makefile.lib NH_header=no + +Makefile.lib NH_filestag=(file%s_for_MSDOS_and_OS/2_versions_-_untested_for_3.6.2) +#termcap.uu NH_filestag=(file%s_for_MSDOS_and_OS/2_versions_-_untested_for_3.6.2) +termcap.uu NH_filestag=>Makefile.lib + +pcmain.c NH_filestag=(file_for_MSDOS,_OS/2,_NT,_Amiga,_and_Atari_versions_-_untested_for_3.6.2) + +pcsys.c NH_filestag=(file%s_for_MSDOS,_OS/2,_NT,_and_Atari_versions_-_untested_for_3.6.2) +pcunix.c NH_filestag=>pcsys.c + +NetHack.cnf NH_filestag=(file_for_MSDOS,_OS/2,_and_Atari_versions_-_untested_for_3.6.2) +pctty.c NH_filestag=>NetHack.cnf + +ioctl.c NH_filestag=(file%s_for_UNIX_and_Be_versions) +unixtty.c NH_filestag=>ioctl.c + +nhlan.c NH_filestag=(file_for_NT_version) + +random.c NH_filestag=(Berkeley_random_number_file,_which_may_be_included_in_any_version) + +uudecode.c NH_filestag=(Berkeley_uudecode_file,_which_may_be_used_in_build_process_of_any_version) + +tclib.c NH_filestag=(file_for_VMS_version) + +termcap NH_filestag=(file_for_MSDOS,_OS/2,_and_VMS_versions) + +dgn_comp.h NH_filestag=(lex/yacc_output_for_special_level_and_dungeon_compilers) +dgn_lex.c NH_filestag=>dgn_comp.h +dgn_yacc.c NH_filestag=>dgn_comp.h +lev_comp.h NH_filestag=>dgn_comp.h +lev_lex.c NH_filestag=>dgn_comp.h +lev_yacc.c NH_filestag=>dgn_comp.h + +posixregex.c NH_filestag=60(posix_regex_for_versions_that_include_regex_in_their_C_library) + +cppregex.cpp NH_filestag=61(c++_regex_code_for_versions_that_can_build_a_C++_module_and_link_it_in) + +pmatchregex.c NH_filestag=62(pmatch_regex_for_other_versions) diff --git a/sys/share/sounds/.gitattributes b/sys/share/sounds/.gitattributes new file mode 100644 index 000000000..763caf51d --- /dev/null +++ b/sys/share/sounds/.gitattributes @@ -0,0 +1 @@ +* NH_filestag=(file%s_for_Amiga_and_Macintosh_versions) diff --git a/sys/unix/.gitattributes b/sys/unix/.gitattributes index 277998292..92805b57b 100644 --- a/sys/unix/.gitattributes +++ b/sys/unix/.gitattributes @@ -5,3 +5,6 @@ README.linux NHSUBST depend.awk NHSUBST sysconf NHSUBST *shr NH_header=no +* NH_filestag=(file%s_for_UNIX_versions) +cpp?.shr NH_filestag=(file%s_for_replacement_cpp,_only_needed_by_some_ancient_UNIX_systems) +snd86unx.shr NH_filestag=(file%s_for_sound_driver_for_386_UNIX) diff --git a/sys/unix/hints/.gitattributes b/sys/unix/hints/.gitattributes index db77844f7..411307a35 100644 --- a/sys/unix/hints/.gitattributes +++ b/sys/unix/hints/.gitattributes @@ -1 +1,2 @@ * NHSUBST +* NH_filestag=(file%s_for_configuring_UNIX_NetHack_versions) diff --git a/sys/vms/.gitattributes b/sys/vms/.gitattributes index fe31b9c25..a0fc5cfd0 100644 --- a/sys/vms/.gitattributes +++ b/sys/vms/.gitattributes @@ -2,3 +2,4 @@ Makefile.* NHSUBST *.com NHSUBST Install.vms NHSUBST sysconf NHSUBST +* NH_filestag=(file%s_for_VMS_version) diff --git a/sys/wince/.gitattributes b/sys/wince/.gitattributes index fbe75bcd4..b3d2a6646 100644 --- a/sys/wince/.gitattributes +++ b/sys/wince/.gitattributes @@ -1,3 +1,4 @@ *.ce NHSUBST *.mak NHSUBST *.bat NHSUBST +* NH_filestag=(file%s_for_Windows_CE_and_PocketPC_-_untested_for_3.6.2) diff --git a/sys/wince/ceinc/.gitattributes b/sys/wince/ceinc/.gitattributes new file mode 100644 index 000000000..1763a5005 --- /dev/null +++ b/sys/wince/ceinc/.gitattributes @@ -0,0 +1 @@ +* NH_filestag=(header_file%s_for_Windows_CE_and_PocketPC_-_untested_for_3.6.2) diff --git a/sys/wince/ceinc/sys/.gitattributes b/sys/wince/ceinc/sys/.gitattributes new file mode 100644 index 000000000..ba88adb8a --- /dev/null +++ b/sys/wince/ceinc/sys/.gitattributes @@ -0,0 +1 @@ +* NH_filestag=(sys/stat.h_for_Windows_CE_and_PocketPC_-_untested_for_3.6.2) diff --git a/sys/winnt/.gitattributes b/sys/winnt/.gitattributes index a13efc66c..d52abfcb5 100644 --- a/sys/winnt/.gitattributes +++ b/sys/winnt/.gitattributes @@ -5,3 +5,6 @@ sysconf NHSUBST *.rc NHSUBST *.bat NHSUBST *.def NH_header=no +* NH_filestag=(file%s_for_Windows_7/8.x/10_version) +..files NH_filegenerated=nethack.ico +nethack.ico NH_filesgentag=(file%s_generated_by_uudecode_at_compile_time) diff --git a/sys/winnt/win10.c b/sys/winnt/win10.c new file mode 100644 index 000000000..7eea016e9 --- /dev/null +++ b/sys/winnt/win10.c @@ -0,0 +1,42 @@ +/* NetHack 3.6 win10.c $NHDT-Date: 1432512810 2015/05/25 00:13:30 $ $NHDT-Branch: master $:$NHDT-Revision: 1.15 $ */ +/* Copyright (C) 2018 by Bart House */ +/* NetHack may be freely redistributed. See license for details. */ + +#include +#include "winMS.h" +#include "hack.h" +#include "win10.h" +#include + +Win10 gWin10 = { 0 }; + +void win10_init() +{ + if (IsWindows10OrGreater()) + { + HINSTANCE hUser32 = LoadLibraryA("user32.dll"); + + if (hUser32 == NULL) + panic("Unable to load user32.dll"); + + gWin10.GetThreadDpiAwarenessContext = (GetThreadDpiAwarenessContextProc) GetProcAddress(hUser32, "GetThreadDpiAwarenessContext"); + if (gWin10.GetThreadDpiAwarenessContext == NULL) + panic("Unable to get address of GetThreadDpiAwarenessContext()"); + + gWin10.AreDpiAwarenessContextsEqual = (AreDpiAwarenessContextsEqualProc) GetProcAddress(hUser32, "AreDpiAwarenessContextsEqual"); + if (gWin10.AreDpiAwarenessContextsEqual == NULL) + panic("Unable to get address of AreDpiAwarenessContextsEqual"); + + FreeLibrary(hUser32); + + gWin10.Valid = TRUE; + } + + if (gWin10.Valid) { + if (!gWin10.AreDpiAwarenessContextsEqual( + gWin10.GetThreadDpiAwarenessContext(), + DPI_AWARENESS_CONTEXT_UNAWARE)) + panic("Unexpected DpiAwareness state"); + } + +} diff --git a/sys/winnt/win10.h b/sys/winnt/win10.h new file mode 100644 index 000000000..22065df9f --- /dev/null +++ b/sys/winnt/win10.h @@ -0,0 +1,17 @@ +/* NetHack 3.6 win10.h $NHDT-Date: 1432512810 2015/05/25 00:13:30 $ $NHDT-Branch: master $:$NHDT-Revision: 1.15 $ */ +/* Copyright (C) 2018 by Bart House */ +/* NetHack may be freely redistributed. See license for details. */ + +typedef DPI_AWARENESS_CONTEXT(WINAPI * GetThreadDpiAwarenessContextProc)(VOID); +typedef BOOL (WINAPI *AreDpiAwarenessContextsEqualProc)(DPI_AWARENESS_CONTEXT dpiContextA, DPI_AWARENESS_CONTEXT dpiContextB); + +typedef struct { + BOOL Valid; + GetThreadDpiAwarenessContextProc GetThreadDpiAwarenessContext; + AreDpiAwarenessContextsEqualProc AreDpiAwarenessContextsEqual; +} Win10; + +extern Win10 gWin10; + +void win10_init(); + diff --git a/util/.gitattributes b/util/.gitattributes index 8b2657e61..9525258d3 100644 --- a/util/.gitattributes +++ b/util/.gitattributes @@ -1,2 +1,14 @@ *.pl NHSUBST *.[ly] NHSUBST +* NH_filestag=(file%s_for_all_versions) +*.[ly] NH_filestag=(lex/yacc_input_for_special_level_and_dungeon_compilers) + +..files NH_filegenerated=uudecode.exe,tiletxt.c,dgn_lex.c,dgn_yacc.c,lev_lex.c,lev_yacc.c +uudecode.exe NH_filesgentag=(file%s_generated_for_win32_at_compile_time) +tiletxt.c NH_filesgentag=(file%s_generated_for_unix_at_compile_time_if_various_tiles_utilities_are_built) + +dgn_lex.c NH_filesgentag=(file%s_generated_by_lex_and_yacc_(or_copied_from_sys/share)_at_compile_time) +dgn_yacc.c NH_filesgentag=>dgn_lex.c +lev_lex.c NH_filesgentag=>dgn_lex.c +lev_yacc.c NH_filesgentag=>dgn_lex.c + diff --git a/win/Qt/.gitattributes b/win/Qt/.gitattributes index 2d4096a92..7b924974c 100644 --- a/win/Qt/.gitattributes +++ b/win/Qt/.gitattributes @@ -1,3 +1,4 @@ Install.Qt NHSUBST qpe-nethack.control NH_header=no knethack.lnk NH_header=no +* NH_filestag=(file%s_for_the_Qt_3_widget_library_-_X11,_Windows,_Mac_OS_X,_or_Qtopia) diff --git a/win/Qt4/.gitattributes b/win/Qt4/.gitattributes new file mode 100644 index 000000000..68792d904 --- /dev/null +++ b/win/Qt4/.gitattributes @@ -0,0 +1 @@ +* NH_filestag=(file%s_for_the_Qt_4_widget_library_-_X11,_Windows,_Mac_OS_X) diff --git a/win/X11/.gitattributes b/win/X11/.gitattributes index eabdbfd44..c1452cec5 100644 --- a/win/X11/.gitattributes +++ b/win/X11/.gitattributes @@ -4,3 +4,4 @@ Install.X11 NHSUBST nethack.rc NHSUBST *.bdf NH_header=no *.xbm NH_header=no +* NH_filestag=(file%s_for_X_versions) diff --git a/win/chain/.gitattributes b/win/chain/.gitattributes new file mode 100644 index 000000000..9e5051cc3 --- /dev/null +++ b/win/chain/.gitattributes @@ -0,0 +1 @@ +* NH_filestag=(file%s_for_stacking_window_systems) diff --git a/win/gem/.gitattributes b/win/gem/.gitattributes new file mode 100644 index 000000000..133df44a1 --- /dev/null +++ b/win/gem/.gitattributes @@ -0,0 +1 @@ +* NH_filestag=(file%s_for_GEM_versions_-_untested_for_3.6.2) diff --git a/win/gnome/.gitattributes b/win/gnome/.gitattributes new file mode 100644 index 000000000..b1449f357 --- /dev/null +++ b/win/gnome/.gitattributes @@ -0,0 +1 @@ +* NH_filestag=(file%s_for_GNOME_versions_-_untested_for_3.6.2) diff --git a/win/macosx/.gitattributes b/win/macosx/.gitattributes index a4bf76e47..ce60e3048 100644 --- a/win/macosx/.gitattributes +++ b/win/macosx/.gitattributes @@ -1 +1,2 @@ *.applescript NHSUBST +* NH_filestag=(file%s_for_macosx_versions) diff --git a/win/share/.gitattributes b/win/share/.gitattributes index 09f9406f6..cb0ac5448 100644 --- a/win/share/.gitattributes +++ b/win/share/.gitattributes @@ -1 +1,2 @@ tile.doc NHSUBST +* NH_filestag=(file%s_for_versions_using_optional_tiles) diff --git a/win/tty/.gitattributes b/win/tty/.gitattributes new file mode 100644 index 000000000..6dcdec3b0 --- /dev/null +++ b/win/tty/.gitattributes @@ -0,0 +1 @@ +* NH_filestag=(file%s_for_tty_versions) diff --git a/win/win32/.gitattributes b/win/win32/.gitattributes index 19106e2bb..a5b91f10d 100644 --- a/win/win32/.gitattributes +++ b/win/win32/.gitattributes @@ -8,3 +8,4 @@ *.props NH_header=no resource.h NH_header=no nhresource.h NH_header=no +* NH_filestag=(file%s_for_Windows_versions_-_tested_up_to_Windows_10) diff --git a/win/win32/vs2017/.gitattributes b/win/win32/vs2017/.gitattributes new file mode 100644 index 000000000..041653ea8 --- /dev/null +++ b/win/win32/vs2017/.gitattributes @@ -0,0 +1 @@ +* NH_filestag=(file%s_for_Visual_Studio_2017_Community_Edition_builds) diff --git a/win/win32/vs2017/NetHackW.exe.manifest b/win/win32/vs2017/NetHackW.exe.manifest new file mode 100644 index 000000000..3a236519c --- /dev/null +++ b/win/win32/vs2017/NetHackW.exe.manifest @@ -0,0 +1,18 @@ + + + + + unaware + + + + + + + + + + + + + \ No newline at end of file diff --git a/win/win32/vs2017/NetHackW.vcxproj b/win/win32/vs2017/NetHackW.vcxproj index d93276e83..e563bb072 100644 --- a/win/win32/vs2017/NetHackW.vcxproj +++ b/win/win32/vs2017/NetHackW.vcxproj @@ -30,6 +30,9 @@ Windows comctl32.lib;winmm.lib;%(AdditionalDependencies) + + NethackW.exe.manifest;%(AdditionalManifestFiles) + @@ -152,6 +155,7 @@ TTYSTUB; + @@ -180,4 +184,4 @@ - + \ No newline at end of file diff --git a/win/win32/winhack.c b/win/win32/winhack.c index e9f83b1ea..2430630ef 100644 --- a/win/win32/winhack.c +++ b/win/win32/winhack.c @@ -12,6 +12,7 @@ #include "resource.h" #include "mhmain.h" #include "mhmap.h" +#include "win10.h" /* Borland and MinGW redefine "boolean" in shlwapi.h, so just use the little bit we need */ @@ -88,18 +89,18 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, UNREFERENCED_PARAMETER(lpCmdLine); UNREFERENCED_PARAMETER(nCmdShow); - // + /* We must initialize state sufficiently to support calls to panic */ // We need to support DPI awareness. // // BOOL result = SetProcessDpiAwarenessContext( // DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2); // - - /* We must initialize state sufficiently to support calls to panic */ windowprocs.win_raw_print = mswin_raw_print; windowprocs.win_raw_print_bold = mswin_raw_print_bold; windowprocs.win_wait_synch = mswin_wait_synch; + win10_init(); + sys_early_init(); /* init applicatio structure */