Merge branch 'NetHack-3.6.2'
This commit is contained in:
82
dat/history
82
dat/history
@@ -229,44 +229,44 @@ particularly intriguing modification to help out with the game. The gods
|
||||
of the dungeon sometimes make note of the names of the worst of these
|
||||
miscreants in this, the list of Dungeoneers:
|
||||
|
||||
Adam Aronow J. Ali Harlow Mikko Juola
|
||||
Alex Kompel Janet Walz Nathan Eady
|
||||
Alex Smith Janne Salmijarvi Norm Meluch
|
||||
Andreas Dorn Jean-Christophe Collet Olaf Seibert
|
||||
Andy Church Jeff Bailey Pasi Kallinen
|
||||
Andy Swanson Jochen Erwied Pat Rankin
|
||||
Ari Huttunen John Kallen Patric Mueller
|
||||
Barton House John Rupley Paul Winner
|
||||
Benson I. Margulies John S. Bien Pierre Martineau
|
||||
Bill Dyer Johnny Lee Ralf Brown
|
||||
Boudewijn Waijers Jon W{tte Ray Chason
|
||||
Bruce Cox Jonathan Handler Richard Addison
|
||||
Bruce Holloway Joshua Delahunty Richard Beigel
|
||||
Bruce Mewborne Keizo Yamamoto Richard P. Hughey
|
||||
Carl Schelin Ken Arnold Rob Menke
|
||||
Chris Russo Ken Arromdee Robin Bandy
|
||||
David Cohrs Ken Lorber Robin Johnson
|
||||
David Damerell Ken Washikita Roderick Schertler
|
||||
David Gentzel Kevin Darcy Roland McGrath
|
||||
David Hairston Kevin Hugo Ron Van Iwaarden
|
||||
Dean Luick Kevin Sitze Ronnen Miller
|
||||
Del Lamb Kevin Smolkowski Ross Brown
|
||||
Derek S. Ray Kevin Sweet Sascha Wostmann
|
||||
Deron Meranda Lars Huttar Scott Bigham
|
||||
Dion Nicolaas Leon Arnott Scott R. Turner
|
||||
Dylan O'Donnell M. Drew Streib Sean Hunt
|
||||
Eric Backus Malcolm Ryan Stephen Spackman
|
||||
Eric Hendrickson Mark Gooderum Stefan Thielscher
|
||||
Eric R. Smith Mark Modrall Stephen White
|
||||
Eric S. Raymond Marvin Bressler Steve Creps
|
||||
Erik Andersen Matthew Day Steve Linhart
|
||||
Frederick Roeber Merlyn LeRoy Steve VanDevender
|
||||
Gil Neiger Michael Allison Teemu Suikki
|
||||
Greg Laskin Michael Feir Tim Lennan
|
||||
Greg Olson Michael Hamel Timo Hakulinen
|
||||
Gregg Wonderly Michael Sokolov Tom Almy
|
||||
Hao-yang Wang Mike Engber Tom West
|
||||
Helge Hafting Mike Gallop Warren Cheung
|
||||
Irina Rempt-Drijfhout Mike Passaretti Warwick Allison
|
||||
Izchak Miller Mike Stephenson Yitzhak Sapir
|
||||
|
||||
Adam Aronow Janet Walz Nathan Eady
|
||||
Alex Kompel Janne Salmijarvi Norm Meluch
|
||||
Alex Smith Jean-Christophe Collet Olaf Seibert
|
||||
Andreas Dorn Jeff Bailey Pasi Kallinen
|
||||
Andy Church Jochen Erwied Pat Rankin
|
||||
Andy Swanson John Kallen Patric Mueller
|
||||
Ari Huttunen John Rupley Paul Winner
|
||||
Barton House John S. Bien Pierre Martineau
|
||||
Benson I. Margulies Johnny Lee Ralf Brown
|
||||
Bill Dyer Jon W{tte Ray Chason
|
||||
Boudewijn Waijers Jonathan Handler Richard Addison
|
||||
Bruce Cox Joshua Delahunty Richard Beigel
|
||||
Bruce Holloway Karl Garrison Richard P. Hughey
|
||||
Bruce Mewborne Keizo Yamamoto Rob Menke
|
||||
Carl Schelin Ken Arnold Robin Bandy
|
||||
Chris Russo Ken Arromdee Robin Johnson
|
||||
David Cohrs Ken Lorber Roderick Schertler
|
||||
David Damerell Ken Washikita Roland McGrath
|
||||
David Gentzel Kevin Darcy Ron Van Iwaarden
|
||||
David Hairston Kevin Hugo Ronnen Miller
|
||||
Dean Luick Kevin Sitze Ross Brown
|
||||
Del Lamb Kevin Smolkowski Sascha Wostmann
|
||||
Derek S. Ray Kevin Sweet Scott Bigham
|
||||
Deron Meranda Lars Huttar Scott R. Turner
|
||||
Dion Nicolaas Leon Arnott Sean Hunt
|
||||
Dylan O'Donnell M. Drew Streib Stephen Spackman
|
||||
Eric Backus Malcolm Ryan Stefan Thielscher
|
||||
Eric Hendrickson Mark Gooderum Stephen White
|
||||
Eric R. Smith Mark Modrall Steve Creps
|
||||
Eric S. Raymond Marvin Bressler Steve Linhart
|
||||
Erik Andersen Matthew Day Steve VanDevender
|
||||
Frederick Roeber Merlyn LeRoy Teemu Suikki
|
||||
Gil Neiger Michael Allison Tim Lennan
|
||||
Greg Laskin Michael Feir Timo Hakulinen
|
||||
Greg Olson Michael Hamel Tom Almy
|
||||
Gregg Wonderly Michael Sokolov Tom West
|
||||
Hao-yang Wang Mike Engber Warren Cheung
|
||||
Helge Hafting Mike Gallop Warwick Allison
|
||||
Irina Rempt-Drijfhout Mike Passaretti Yitzhak Sapir
|
||||
Izchak Miller Mike Stephenson
|
||||
J. Ali Harlow Mikko Juola
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
.ds vr "NetHack 3.6
|
||||
.ds f0 "\*(vr
|
||||
.ds f1
|
||||
.ds f2 "November 27, 2018
|
||||
.ds f2 "November 29, 2018
|
||||
.
|
||||
.\" A note on some special characters:
|
||||
.\" \(lq = left double quote
|
||||
@@ -4950,46 +4950,47 @@ in this, the list of Dungeoneers:
|
||||
center;
|
||||
c c c.
|
||||
.\"TABLE_START
|
||||
Adam Aronow J. Ali Harlow Mikko Juola
|
||||
Alex Kompel Janet Walz Nathan Eady
|
||||
Alex Smith Janne Salmijarvi Norm Meluch
|
||||
Andreas Dorn Jean-Christophe Collet Olaf Seibert
|
||||
Andy Church Jeff Bailey Pasi Kallinen
|
||||
Andy Swanson Jochen Erwied Pat Rankin
|
||||
Ari Huttunen John Kallen Patric Mueller
|
||||
Barton House John Rupley Paul Winner
|
||||
Benson I. Margulies John S. Bien Pierre Martineau
|
||||
Bill Dyer Johnny Lee Ralf Brown
|
||||
Boudewijn Waijers Jon W{tte Ray Chason
|
||||
Bruce Cox Jonathan Handler Richard Addison
|
||||
Bruce Holloway Joshua Delahunty Richard Beigel
|
||||
Bruce Mewborne Keizo Yamamoto Richard P. Hughey
|
||||
Carl Schelin Ken Arnold Rob Menke
|
||||
Chris Russo Ken Arromdee Robin Bandy
|
||||
David Cohrs Ken Lorber Robin Johnson
|
||||
David Damerell Ken Washikita Roderick Schertler
|
||||
David Gentzel Kevin Darcy Roland McGrath
|
||||
David Hairston Kevin Hugo Ron Van Iwaarden
|
||||
Dean Luick Kevin Sitze Ronnen Miller
|
||||
Del Lamb Kevin Smolkowski Ross Brown
|
||||
Derek S. Ray Kevin Sweet Sascha Wostmann
|
||||
Deron Meranda Lars Huttar Scott Bigham
|
||||
Dion Nicolaas Leon Arnott Scott R. Turner
|
||||
Dylan O'Donnell M. Drew Streib Sean Hunt
|
||||
Eric Backus Malcolm Ryan Stephen Spackman
|
||||
Eric Hendrickson Mark Gooderum Stefan Thielscher
|
||||
Eric R. Smith Mark Modrall Stephen White
|
||||
Eric S. Raymond Marvin Bressler Steve Creps
|
||||
Erik Andersen Matthew Day Steve Linhart
|
||||
Frederick Roeber Merlyn LeRoy Steve VanDevender
|
||||
Gil Neiger Michael Allison Teemu Suikki
|
||||
Greg Laskin Michael Feir Tim Lennan
|
||||
Greg Olson Michael Hamel Timo Hakulinen
|
||||
Gregg Wonderly Michael Sokolov Tom Almy
|
||||
Hao-yang Wang Mike Engber Tom West
|
||||
Helge Hafting Mike Gallop Warren Cheung
|
||||
Irina Rempt-Drijfhout Mike Passaretti Warwick Allison
|
||||
Izchak Miller Mike Stephenson Yitzhak Sapir
|
||||
Adam Aronow Janet Walz Nathan Eady
|
||||
Alex Kompel Janne Salmijarvi Norm Meluch
|
||||
Alex Smith Jean-Christophe Collet Olaf Seibert
|
||||
Andreas Dorn Jeff Bailey Pasi Kallinen
|
||||
Andy Church Jochen Erwied Pat Rankin
|
||||
Andy Swanson John Kallen Patric Mueller
|
||||
Ari Huttunen John Rupley Paul Winner
|
||||
Barton House John S. Bien Pierre Martineau
|
||||
Benson I. Margulies Johnny Lee Ralf Brown
|
||||
Bill Dyer Jon W{tte Ray Chason
|
||||
Boudewijn Waijers Jonathan Handler Richard Addison
|
||||
Bruce Cox Joshua Delahunty Richard Beigel
|
||||
Bruce Holloway Karl Garrison Richard P. Hughey
|
||||
Bruce Mewborne Keizo Yamamoto Rob Menke
|
||||
Carl Schelin Ken Arnold Robin Bandy
|
||||
Chris Russo Ken Arromdee Robin Johnson
|
||||
David Cohrs Ken Lorber Roderick Schertler
|
||||
David Damerell Ken Washikita Roland McGrath
|
||||
David Gentzel Kevin Darcy Ron Van Iwaarden
|
||||
David Hairston Kevin Hugo Ronnen Miller
|
||||
Dean Luick Kevin Sitze Ross Brown
|
||||
Del Lamb Kevin Smolkowski Sascha Wostmann
|
||||
Derek S. Ray Kevin Sweet Scott Bigham
|
||||
Deron Meranda Lars Huttar Scott R. Turner
|
||||
Dion Nicolaas Leon Arnott Sean Hunt
|
||||
Dylan O'Donnell M. Drew Streib Stephen Spackman
|
||||
Eric Backus Malcolm Ryan Stefan Thielscher
|
||||
Eric Hendrickson Mark Gooderum Stephen White
|
||||
Eric R. Smith Mark Modrall Steve Creps
|
||||
Eric S. Raymond Marvin Bressler Steve Linhart
|
||||
Erik Andersen Matthew Day Steve VanDevender
|
||||
Frederick Roeber Merlyn LeRoy Teemu Suikki
|
||||
Gil Neiger Michael Allison Tim Lennan
|
||||
Greg Laskin Michael Feir Timo Hakulinen
|
||||
Greg Olson Michael Hamel Tom Almy
|
||||
Gregg Wonderly Michael Sokolov Tom West
|
||||
Hao-yang Wang Mike Engber Warren Cheung
|
||||
Helge Hafting Mike Gallop Warwick Allison
|
||||
Irina Rempt-Drijfhout Mike Passaretti Yitzhak Sapir
|
||||
Izchak Miller Mike Stephenson
|
||||
J. Ali Harlow Mikko Juola
|
||||
.\"TABLE_END Do not delete this line.
|
||||
.TE
|
||||
.pg
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
%.au
|
||||
\author{Original version - Eric S. Raymond\\
|
||||
(Edited and expanded for 3.6 by Mike Stephenson and others)}
|
||||
\date{November 27, 2018}
|
||||
\date{November 29, 2018}
|
||||
|
||||
\maketitle
|
||||
|
||||
@@ -5523,46 +5523,47 @@ in this, the list of Dungeoneers:
|
||||
\begin{center}
|
||||
\begin{tabular}{llll}
|
||||
%TABLE_START
|
||||
Adam Aronow & J. Ali Harlow & Mikko Juola\\
|
||||
Alex Kompel & Janet Walz & Nathan Eady\\
|
||||
Alex Smith & Janne Salmij\"{a}rvi & Norm Meluch\\
|
||||
Andreas Dorn & Jean-Christophe Collet & Olaf Seibert\\
|
||||
Andy Church & Jeff Bailey & Pasi Kallinen\\
|
||||
Andy Swanson & Jochen Erwied & Pat Rankin\\
|
||||
Ari Huttunen & John Kallen & Patric Mueller\\
|
||||
Barton House & John Rupley & Paul Winner\\
|
||||
Benson I. Margulies & John S. Bien & Pierre Martineau\\
|
||||
Bill Dyer & Johnny Lee & Ralf Brown\\
|
||||
Boudewijn Waijers & Jon W\{tte & Ray Chason\\
|
||||
Bruce Cox & Jonathan Handler & Richard Addison\\
|
||||
Bruce Holloway & Joshua Delahunty & Richard Beigel\\
|
||||
Bruce Mewborne & Keizo Yamamoto & Richard P. Hughey\\
|
||||
Carl Schelin & Ken Arnold & Rob Menke\\
|
||||
Chris Russo & Ken Arromdee & Robin Bandy\\
|
||||
David Cohrs & Ken Lorber & Robin Johnson\\
|
||||
David Damerell & Ken Washikita & Roderick Schertler\\
|
||||
David Gentzel & Kevin Darcy & Roland McGrath\\
|
||||
David Hairston & Kevin Hugo & Ron Van Iwaarden\\
|
||||
Dean Luick & Kevin Sitze & Ronnen Miller\\
|
||||
Del Lamb & Kevin Smolkowski & Ross Brown\\
|
||||
Derek S. Ray & Kevin Sweet & Sascha Wostmann\\
|
||||
Deron Meranda & Lars Huttar & Scott Bigham\\
|
||||
Dion Nicolaas & Leon Arnott & Scott R. Turner\\
|
||||
Dylan O'Donnell & M. Drew Streib & Sean Hunt\\
|
||||
Eric Backus & Malcolm Ryan & Stephen Spackman\\
|
||||
Eric Hendrickson & Mark Gooderum & Stefan Thielscher\\
|
||||
Eric R. Smith & Mark Modrall & Stephen White\\
|
||||
Eric S. Raymond & Marvin Bressler & Steve Creps\\
|
||||
Erik Andersen & Matthew Day & Steve Linhart\\
|
||||
Frederick Roeber & Merlyn LeRoy & Steve VanDevender\\
|
||||
Gil Neiger & Michael Allison & Teemu Suikki\\
|
||||
Greg Laskin & Michael Feir & Tim Lennan\\
|
||||
Greg Olson & Michael Hamel & Timo Hakulinen\\
|
||||
Gregg Wonderly & Michael Sokolov & Tom Almy\\
|
||||
Hao-yang Wang & Mike Engber & Tom West\\
|
||||
Helge Hafting & Mike Gallop & Warren Cheung\\
|
||||
Irina Rempt-Drijfhout & Mike Passaretti & Warwick Allison\\
|
||||
Izchak Miller & Mike Stephenson & Yitzhak Sapir
|
||||
Adam Aronow & Janet Walz & Nathan Eady\\
|
||||
Alex Kompel & Janne Salmij\"{a}rvi & Norm Meluch\\
|
||||
Alex Smith & Jean-Christophe Collet & Olaf Seibert\\
|
||||
Andreas Dorn & Jeff Bailey & Pasi Kallinen\\
|
||||
Andy Church & Jochen Erwied & Pat Rankin\\
|
||||
Andy Swanson & John Kallen & Patric Mueller\\
|
||||
Ari Huttunen & John Rupley & Paul Winner\\
|
||||
Barton House & John S. Bien & Pierre Martineau\\
|
||||
Benson I. Margulies & Johnny Lee & Ralf Brown\\
|
||||
Bill Dyer & Jon W\{tte & Ray Chason\\
|
||||
Boudewijn Waijers & Jonathan Handler & Richard Addison\\
|
||||
Bruce Cox & Joshua Delahunty & Richard Beigel\\
|
||||
Bruce Holloway & Karl Garrison & Richard P. Hughey\\
|
||||
Bruce Mewborne & Keizo Yamamoto & Rob Menke\\
|
||||
Carl Schelin & Ken Arnold & Robin Bandy\\
|
||||
Chris Russo & Ken Arromdee & Robin Johnson\\
|
||||
David Cohrs & Ken Lorber & Roderick Schertler\\
|
||||
David Damerell & Ken Washikita & Roland McGrath\\
|
||||
David Gentzel & Kevin Darcy & Ron Van Iwaarden\\
|
||||
David Hairston & Kevin Hugo & Ronnen Miller\\
|
||||
Dean Luick & Kevin Sitze & Ross Brown\\
|
||||
Del Lamb & Kevin Smolkowski & Sascha Wostmann\\
|
||||
Derek S. Ray & Kevin Sweet & Scott Bigham\\
|
||||
Deron Meranda & Lars Huttar & Scott R. Turner\\
|
||||
Dion Nicolaas & Leon Arnott & Sean Hunt\\
|
||||
Dylan O'Donnell & M. Drew Streib & Stephen Spackman\\
|
||||
Eric Backus & Malcolm Ryan & Stefan Thielscher\\
|
||||
Eric Hendrickson & Mark Gooderum & Stephen White\\
|
||||
Eric R. Smith & Mark Modrall & Steve Creps\\
|
||||
Eric S. Raymond & Marvin Bressler & Steve Linhart\\
|
||||
Erik Andersen & Matthew Day & Steve VanDevender\\
|
||||
Frederick Roeber & Merlyn LeRoy & Teemu Suikki\\
|
||||
Gil Neiger & Michael Allison & Tim Lennan\\
|
||||
Greg Laskin & Michael Feir & Timo Hakulinen\\
|
||||
Greg Olson & Michael Hamel & Tom Almy\\
|
||||
Gregg Wonderly & Michael Sokolov & Tom West\\
|
||||
Hao-yang Wang & Mike Engber & Warren Cheung\\
|
||||
Helge Hafting & Mike Gallop & Warwick Allison\\
|
||||
Irina Rempt-Drijfhout & Mike Passaretti & Yitzhak Sapir\\
|
||||
Izchak Miller & Mike Stephenson\\
|
||||
J. Ali Harlow & Mikko Juola
|
||||
%TABLE_END Do not delete this line.
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
|
||||
@@ -225,6 +225,15 @@ scattering of objects might leave source location with wrong thing displayed
|
||||
for configurations with 'long int' larger than 'int', lev_comp wrote some
|
||||
garbage into the *.lev files, but nethack seemed unaffected by that
|
||||
(at least on little-endian hardare) and loaded the levels successfully
|
||||
stinking cloud placed near water could kill underwater creatures
|
||||
applying--rather than wielding--a cursed polearm or weapon-tool didn't report
|
||||
that it had become welded to hero's hand(s)
|
||||
the message when riding a steed into a pit was composed but not shown
|
||||
dismount that kills steed because there is no room to put it on map blamed the
|
||||
hero; change that to only blame hero if dismount was voluntary
|
||||
to emphasize that it's not a light source, change description of wielded Sting
|
||||
from "(glowing light blue)" to "(light blue aura)" when sighted and
|
||||
from "(glowing)" to nothing (not warm enough to feel) when blind
|
||||
|
||||
|
||||
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
|
||||
@@ -242,6 +251,8 @@ ensure tmp_at() structures are initialized for all code paths when swallowed
|
||||
trapped-vs-levitation/flying change broke Sting releasing hero from web
|
||||
life-saving while poly'd and Unchanging wasn't restoring u.mh (HP as monster)
|
||||
change in searching stopped finding unseen monsters except hiders and eels
|
||||
buliding with EXTRA_SANITY_CHECKS enabled would issue "no monster to remove"
|
||||
warning if steed was killed out from under the hero
|
||||
tty: turn off an optimization that is the suspected cause of Windows reported
|
||||
partial status lines following level changes
|
||||
tty: ensure that current status fields are always copied to prior status
|
||||
@@ -263,6 +274,8 @@ windows-gui: In nethackw, there could be conflicts between menu accelerators
|
||||
and an extra choice accelerator to fix H7132.
|
||||
windows-gui: recognize new BL_RESET in status_update; no change in behavior yet
|
||||
windows-gui: align hpbar behavior at zero hit points with tty behavior
|
||||
windows-gui: add support for status_hilites for the player condition field
|
||||
such as stone, slime, strngl, blind, deaf, stun, conf, etc.
|
||||
windows-tty: Specify both width and height when creating font for width testing
|
||||
windows-tty: To counter lag problems that were occuring with the Win32 console
|
||||
port, implement a console back buffer to reduce the number of calls
|
||||
@@ -281,9 +294,14 @@ windows-tty: augment codepage850-to-Unicode mappings that are not displayable
|
||||
with codepage437-to-Unicode mappings that are, to help ensure
|
||||
that rogue-level characters in the status line match their appearance
|
||||
on the map
|
||||
windows-tty: add support for mouse_support:0 (disabled), mouse_support:1
|
||||
(fully-functional including disabling QuickEdit on Windows console
|
||||
because QuickEdit intercepts the mouse clicks so NetHack never sees
|
||||
them), or mouse_support:2 (NetHack support on but QuickEdit left as is)
|
||||
windows: Added ntassert() mechanism for Windows based port use
|
||||
windows: heed OPTIONS=symset:default in config file if it is present
|
||||
windows: add curses window port
|
||||
windows: add curses window port which can co-exist with tty in exe and be
|
||||
selectable in user config file via OPTIONS=windowtype:curses
|
||||
tty: significant optimizations for performance and per field rendering
|
||||
tty: use WC2_FLUSH_STATUS to buffer changes until BL_FLUSH is received
|
||||
tty: support BL_RESET in status_update to force an update to all status fields
|
||||
@@ -315,6 +333,9 @@ X11: don't reuse perm_invent window for picking an object
|
||||
X11: obey mouse_support and allow toggling it in game
|
||||
X11: obey menu movement keys
|
||||
X11: enable menu [cancel] button for PICK_NONE menus
|
||||
X11: text popups on OSX wouldn't accept keyboard input unless the 'autofocus'
|
||||
resource was enabled; most noticeable when trying to dismiss 'things
|
||||
that are here' while walking over object piles
|
||||
|
||||
|
||||
General New Features
|
||||
|
||||
@@ -94,6 +94,15 @@ extern void FDECL(interject, (int));
|
||||
*===============================================
|
||||
*/
|
||||
|
||||
#ifdef __MINGW32__
|
||||
#ifdef strncasecmp
|
||||
#undef strncasecmp
|
||||
#endif
|
||||
#ifdef strcasecmp
|
||||
#undef strcasecmp
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#if (_MSC_VER > 1000)
|
||||
/* Visual C 8 warning elimination */
|
||||
|
||||
@@ -165,6 +165,7 @@ struct menu_info_t {
|
||||
boolean cancelled; /* Menu has been explicitly cancelled. */
|
||||
boolean counting; /* true when menu_count has a valid value */
|
||||
boolean permi;
|
||||
boolean disable_mcolors; /* disable menucolors */
|
||||
|
||||
int permi_x, permi_y; /* perm_invent window x,y */
|
||||
int permi_w, permi_h; /* perm_invent window wid, hei */
|
||||
|
||||
@@ -7,16 +7,11 @@
|
||||
|
||||
/* Global declarations for curses interface */
|
||||
|
||||
int term_rows, term_cols; /* size of underlying terminal */
|
||||
|
||||
WINDOW *base_term; /* underlying terminal window */
|
||||
|
||||
WINDOW *mapwin, *statuswin, *messagewin; /* Main windows */
|
||||
|
||||
int orig_cursor; /* Preserve initial cursor state */
|
||||
|
||||
boolean counting; /* Count window is active */
|
||||
|
||||
extern int term_rows, term_cols; /* size of underlying terminal */
|
||||
extern int orig_cursor; /* Preserve initial cursor state */
|
||||
extern WINDOW *base_term; /* underlying terminal window */
|
||||
extern boolean counting; /* Count window is active */
|
||||
extern WINDOW *mapwin, *statuswin, *messagewin; /* Main windows */
|
||||
|
||||
#define TEXTCOLOR /* Allow color */
|
||||
#define NHW_END 19
|
||||
|
||||
13
src/mon.c
13
src/mon.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 mon.c $NHDT-Date: 1543100460 2018/11/24 23:01:00 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.271 $ */
|
||||
/* NetHack 3.6 mon.c $NHDT-Date: 1543455827 2018/11/29 01:43:47 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.272 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Derek S. Ray, 2015. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -483,13 +483,18 @@ register struct monst *mtmp;
|
||||
|
||||
/* [what about ceiling clingers?] */
|
||||
inpool = (is_pool(mtmp->mx, mtmp->my)
|
||||
&& !(is_flyer(mtmp->data) || is_floater(mtmp->data)));
|
||||
&& (!(is_flyer(mtmp->data) || is_floater(mtmp->data))
|
||||
/* there's no "above the surface" on the plane of water */
|
||||
|| Is_waterlevel(&u.uz)));
|
||||
inlava = (is_lava(mtmp->mx, mtmp->my)
|
||||
&& !(is_flyer(mtmp->data) || is_floater(mtmp->data)));
|
||||
infountain = IS_FOUNTAIN(levl[mtmp->mx][mtmp->my].typ);
|
||||
|
||||
/* Flying and levitation keeps our steed out of the liquid */
|
||||
/* (but not water-walking or swimming) */
|
||||
/* Flying and levitation keeps our steed out of the liquid
|
||||
(but not water-walking or swimming; note: if hero is in a
|
||||
water location on the Plane of Water, flight and levitating
|
||||
are blocked so this (Flying || Levitation) test fails there
|
||||
and steed will be subject to water effects, as intended) */
|
||||
if (mtmp == u.usteed && (Flying || Levitation))
|
||||
return 0;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 mondata.c $NHDT-Date: 1539938825 2018/10/19 08:47:05 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.67 $ */
|
||||
/* NetHack 3.6 mondata.c $NHDT-Date: 1543545188 2018/11/30 02:33:08 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.69 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Robert Patrick Rankin, 2011. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -739,6 +739,10 @@ const char *in_str;
|
||||
/* Outdated names */
|
||||
{ "invisible stalker", PM_STALKER },
|
||||
{ "high-elf", PM_ELVENKING }, /* PM_HIGH_ELF is obsolete */
|
||||
/* other misspellings or incorrect words */
|
||||
{ "wood-elf", PM_WOODLAND_ELF },
|
||||
{ "wood elf", PM_WOODLAND_ELF },
|
||||
{ "woodland nymph", PM_WOOD_NYMPH },
|
||||
{ "halfling", PM_HOBBIT }, /* potential guess for polyself */
|
||||
{ "genie", PM_DJINNI }, /* potential guess for ^G/#wizgenesis */
|
||||
/* Hyphenated names -- it would be nice to handle these via
|
||||
|
||||
10
src/objnam.c
10
src/objnam.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 objnam.c $NHDT-Date: 1539938837 2018/10/19 08:47:17 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.214 $ */
|
||||
/* NetHack 3.6 objnam.c $NHDT-Date: 1543544340 2018/11/30 02:19:00 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.226 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Robert Patrick Rankin, 2011. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -1154,11 +1154,11 @@ unsigned doname_flags;
|
||||
(obj->otyp == AKLYS) ? "tethered " : "", hand_s);
|
||||
|
||||
if (warn_obj_cnt && obj == uwep && (EWarn_of_mon & W_WEP) != 0L) {
|
||||
/* presumably can be felt when blind */
|
||||
Strcat(bp, " (glowing");
|
||||
/* this used to be "(glowing <color>)" when sighted or
|
||||
"(glowing)" when blind (via feeling warmth), but it
|
||||
isn't a light source so describe something fainter */
|
||||
if (!Blind)
|
||||
Sprintf(eos(bp), " %s", glow_color(obj->oartifact));
|
||||
Strcat(bp, ")");
|
||||
Sprintf(eos(bp), " (%s aura)", glow_color(obj->oartifact));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
15
src/region.c
15
src/region.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 region.c $NHDT-Date: 1542765361 2018/11/21 01:56:01 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.42 $ */
|
||||
/* NetHack 3.6 region.c $NHDT-Date: 1543455828 2018/11/29 01:43:48 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.43 $ */
|
||||
/* Copyright (c) 1996 by Jean-Christophe Collet */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -947,10 +947,16 @@ genericptr_t p2;
|
||||
struct monst *mtmp;
|
||||
int dam;
|
||||
|
||||
/*
|
||||
* Gas clouds can't be targetted at water locations, but they can
|
||||
* start next to water and spread over it.
|
||||
*/
|
||||
|
||||
reg = (NhRegion *) p1;
|
||||
dam = reg->arg.a_int;
|
||||
if (p2 == (genericptr_t) 0) { /* This means *YOU* Bozo! */
|
||||
if (u.uinvulnerable || nonliving(youmonst.data) || Breathless)
|
||||
if (u.uinvulnerable || nonliving(youmonst.data) || Breathless
|
||||
|| Underwater)
|
||||
return FALSE;
|
||||
if (!Blind) {
|
||||
Your("%s sting.", makeplural(body_part(EYE)));
|
||||
@@ -973,6 +979,11 @@ genericptr_t p2;
|
||||
adult green dragon is not affected by gas cloud, baby one is */
|
||||
if (!(nonliving(mtmp->data) || is_vampshifter(mtmp))
|
||||
&& !breathless(mtmp->data)
|
||||
/* not is_swimmer(); assume that non-fish are swimming on
|
||||
the surface and breathing the air above it periodically
|
||||
unless located at water spot on plane of water */
|
||||
&& !((mtmp->data->mlet == S_EEL || Is_waterlevel(&u.uz))
|
||||
&& is_pool(mtmp->mx, mtmp->my))
|
||||
/* exclude monsters with poison gas breath attack:
|
||||
adult green dragon and Chromatic Dragon (and iron golem,
|
||||
but nonliving() and breathless() tests also catch that) */
|
||||
|
||||
89
src/steed.c
89
src/steed.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 steed.c $NHDT-Date: 1542765364 2018/11/21 01:56:04 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.57 $ */
|
||||
/* NetHack 3.6 steed.c $NHDT-Date: 1543543362 2018/11/30 02:02:42 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.59 $ */
|
||||
/* Copyright (c) Kevin Hugo, 1998-1999. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -481,7 +481,7 @@ int reason; /* Player was thrown off etc. */
|
||||
{
|
||||
struct monst *mtmp;
|
||||
struct obj *otmp;
|
||||
coord cc;
|
||||
coord cc, steedcc;
|
||||
const char *verb = "fall";
|
||||
boolean repair_leg_damage = (Wounded_legs != 0L);
|
||||
unsigned save_utrap = u.utrap;
|
||||
@@ -548,19 +548,55 @@ int reason; /* Player was thrown off etc. */
|
||||
/* Release the steed and saddle */
|
||||
u.usteed = 0;
|
||||
u.ugallop = 0L;
|
||||
|
||||
/* Set player and steed's position. Try moving the player first
|
||||
unless we're in the midst of creating a bones file. */
|
||||
if (reason == DISMOUNT_BONES) {
|
||||
/* move the steed to an adjacent square */
|
||||
if (enexto(&cc, u.ux, u.uy, mtmp->data))
|
||||
rloc_to(mtmp, cc.x, cc.y);
|
||||
else /* evidently no room nearby; move steed elsewhere */
|
||||
(void) rloc(mtmp, FALSE);
|
||||
return;
|
||||
/*
|
||||
* rloc(), rloc_to(), and monkilled()->mondead()->m_detach() all
|
||||
* expect mtmp to be on the map or else have mtmp->mx be 0, but
|
||||
* setting the latter to 0 here would interfere with dropping
|
||||
* the saddle. Prior to 3.6.2, being off the map didn't matter.
|
||||
*
|
||||
* place_monster() expects mtmp to be alive and not be u.usteed.
|
||||
*
|
||||
* Unfortunately, <u.ux,u.uy> (former steed's implicit location)
|
||||
* might now be occupied by an engulfer, so we can't just put mtmp
|
||||
* at that spot. An engulfer's previous spot will be unoccupied
|
||||
* but we don't know where that was and even if we did, it might
|
||||
* be hostile terrain.
|
||||
*/
|
||||
steedcc.x = u.ux, steedcc.y = u.uy;
|
||||
if (m_at(u.ux, u.uy)) {
|
||||
/* hero's spot has a monster in it; hero must have been plucked
|
||||
from saddle as engulfer moved into his spot--other dismounts
|
||||
shouldn't run into this situation; find nearest viable spot */
|
||||
if (!enexto(&steedcc, u.ux, u.uy, mtmp->data)
|
||||
/* no spot? must have been engulfed by a lurker-above over
|
||||
water or lava; try requesting a location for a flyer */
|
||||
&& !enexto(&steedcc, u.ux, u.uy, &mons[PM_BAT]))
|
||||
/* still no spot; last resort is any spot within bounds */
|
||||
(void) enexto(&steedcc, u.ux, u.uy, &mons[PM_GHOST]);
|
||||
}
|
||||
if (!m_at(steedcc.x, steedcc.y)) {
|
||||
if (mtmp->mhp < 1)
|
||||
mtmp->mhp = 0; /* make sure it isn't negative */
|
||||
mtmp->mhp++; /* force at least one hit point, possibly resurrecting */
|
||||
place_monster(mtmp, steedcc.x, steedcc.y);
|
||||
mtmp->mhp--; /* take the extra hit point away: cancel resurrection */
|
||||
} else {
|
||||
impossible("Dismounting: can't place former steed on map.");
|
||||
}
|
||||
|
||||
if (!DEADMONSTER(mtmp)) {
|
||||
place_monster(mtmp, u.ux, u.uy);
|
||||
/* if for bones, there's no reason to place the hero;
|
||||
we want to make room for potential ghost, so move steed */
|
||||
if (reason == DISMOUNT_BONES) {
|
||||
/* move the steed to an adjacent square */
|
||||
if (enexto(&cc, u.ux, u.uy, mtmp->data))
|
||||
rloc_to(mtmp, cc.x, cc.y);
|
||||
else /* evidently no room nearby; move steed elsewhere */
|
||||
(void) rloc(mtmp, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Set hero's and/or steed's positions. Try moving the hero first. */
|
||||
if (!u.uswallow && !u.ustuck && have_spot) {
|
||||
struct permonst *mdat = mtmp->data;
|
||||
|
||||
@@ -614,20 +650,29 @@ int reason; /* Player was thrown off etc. */
|
||||
if (save_utrap)
|
||||
(void) mintrap(mtmp);
|
||||
}
|
||||
/* Couldn't... try placing the steed */
|
||||
|
||||
/* Couldn't move hero... try moving the steed. */
|
||||
} else if (enexto(&cc, u.ux, u.uy, mtmp->data)) {
|
||||
/* Keep player here, move the steed to cc */
|
||||
rloc_to(mtmp, cc.x, cc.y);
|
||||
/* Player stays put */
|
||||
/* Otherwise, kill the steed */
|
||||
} else {
|
||||
killed(mtmp);
|
||||
adjalign(-1);
|
||||
}
|
||||
}
|
||||
|
||||
/* Return the player to the floor */
|
||||
if (reason != DISMOUNT_ENGULFED) {
|
||||
/* Otherwise, kill the steed. */
|
||||
} else {
|
||||
if (reason == DISMOUNT_BYCHOICE) {
|
||||
/* [un]#ride: hero gets credit/blame for killing steed */
|
||||
killed(mtmp);
|
||||
adjalign(-1);
|
||||
} else {
|
||||
/* other dismount: kill former steed with no penalty;
|
||||
damage type is just "neither AD_DGST nor -AD_RBRE" */
|
||||
monkilled(mtmp, "", -AD_PHYS);
|
||||
}
|
||||
}
|
||||
} /* !DEADMONST(mtmp) */
|
||||
|
||||
/* usually return the hero to the surface */
|
||||
if (reason != DISMOUNT_ENGULFED && reason != DISMOUNT_BONES) {
|
||||
in_steed_dismounting = TRUE;
|
||||
(void) float_down(0L, W_SADDLE);
|
||||
in_steed_dismounting = FALSE;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 trap.c $NHDT-Date: 1543100476 2018/11/24 23:01:16 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.311 $ */
|
||||
/* NetHack 3.6 trap.c $NHDT-Date: 1543515862 2018/11/29 18:24:22 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.312 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Robert Patrick Rankin, 2013. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -1185,6 +1185,7 @@ unsigned trflags;
|
||||
if (!Sokoban) {
|
||||
char verbbuf[BUFSZ];
|
||||
|
||||
*verbbuf = '\0';
|
||||
if (u.usteed) {
|
||||
if ((trflags & RECURSIVETRAP) != 0)
|
||||
Sprintf(verbbuf, "and %s fall",
|
||||
@@ -1202,8 +1203,9 @@ unsigned trflags;
|
||||
} else {
|
||||
Strcpy(verbbuf,
|
||||
!plunged ? "fall" : (Flying ? "dive" : "plunge"));
|
||||
You("%s into %s pit!", verbbuf, a_your[trap->madeby_u]);
|
||||
}
|
||||
if (*verbbuf)
|
||||
You("%s into %s pit!", verbbuf, a_your[trap->madeby_u]);
|
||||
}
|
||||
/* wumpus reference */
|
||||
if (Role_if(PM_RANGER) && !trap->madeby_u && !trap->once
|
||||
|
||||
11
src/wield.c
11
src/wield.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 wield.c $NHDT-Date: 1525012623 2018/04/29 14:37:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.56 $ */
|
||||
/* NetHack 3.6 wield.c $NHDT-Date: 1543492132 2018/11/29 11:48:52 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.58 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Robert Patrick Rankin, 2009. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -575,8 +575,13 @@ const char *verb; /* "rub",&c */
|
||||
} else {
|
||||
struct obj *oldwep = uwep;
|
||||
|
||||
You("now wield %s.", doname(obj));
|
||||
setuwep(obj);
|
||||
if (will_weld(obj)) {
|
||||
/* hope none of ready_weapon()'s early returns apply here... */
|
||||
(void) ready_weapon(obj);
|
||||
} else {
|
||||
You("now wield %s.", doname(obj));
|
||||
setuwep(obj);
|
||||
}
|
||||
if (flags.pushweapon && oldwep && uwep != oldwep)
|
||||
setuswapwep(oldwep);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 pcmain.c $NHDT-Date: 1524413707 2018/04/22 16:15:07 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.74 $ */
|
||||
/* NetHack 3.6 pcmain.c $NHDT-Date: 1543465755 2018/11/29 04:29:15 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.101 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Derek S. Ray, 2015. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -87,9 +87,12 @@ unsigned _stklen = STKSIZ;
|
||||
* to help MinGW decide which entry point to choose. If both main and
|
||||
* WinMain exist, the resulting executable won't work correctly.
|
||||
*/
|
||||
#ifndef __MINGW32__
|
||||
int
|
||||
#ifndef __MINGW32__
|
||||
main(argc, argv)
|
||||
#else
|
||||
mingw_main(argc, argv)
|
||||
#endif
|
||||
int argc;
|
||||
char *argv[];
|
||||
{
|
||||
@@ -115,7 +118,6 @@ char *argv[];
|
||||
/*NOTREACHED*/
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
boolean
|
||||
pcmain(argc, argv)
|
||||
@@ -177,7 +179,7 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
|
||||
choose_windows(DEFAULT_WINDOW_SYS);
|
||||
#else
|
||||
choose_windows(default_window_sys);
|
||||
if (argc > 1
|
||||
if (argc >= 1
|
||||
&& !strcmpi(default_window_sys, "mswin")
|
||||
&& strstri(argv[0], "nethackw.exe"))
|
||||
iflags.windowtype_locked = TRUE;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# NetHack Makefile (VMS) - for building nethack itself.
|
||||
# NetHack 3.6 Makefile.src $NHDT-Date: 1542388601 2018/11/16 17:16:41 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.31 $
|
||||
# NetHack 3.6 Makefile.src $NHDT-Date: 1543545915 2018/11/30 02:45:15 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.32 $
|
||||
# Copyright (c) 2011 by Robert Patrick Rankin
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
@@ -140,9 +140,9 @@ VERSOURCES = $(HACKCSRC) $(SYSSRC) $(WINSRC) $(RANDSRC) $(GENCSRC)
|
||||
HACKINCL = align.h amiconf.h artifact.h artilist.h attrib.h beconf.h color.h \
|
||||
config.h config1.h context.h coord.h decl.h def_os2.h display.h \
|
||||
dlb.h dungeon.h engrave.h extern.h flag.h func_tab.h global.h \
|
||||
hack.h lev.h macconf.h mextra.h mfndpos.h micro.h \
|
||||
mkroom.h monattk.h mondata.h monflag.h monst.h monsym.h obj.h \
|
||||
objclass.h os2conf.h patchlevel.h pcconf.h permonst.h prop.h rect.h \
|
||||
hack.h lev.h macconf.h mextra.h mfndpos.h micro.h mkroom.h \
|
||||
monattk.h mondata.h monflag.h monst.h monsym.h obj.h objclass.h \
|
||||
os2conf.h patchlevel.h pcconf.h permonst.h prop.h rect.h \
|
||||
region.h rm.h sp_lev.h spell.h sys.h system.h tcap.h timeout.h \
|
||||
tosconf.h tradstdc.h trampoli.h trap.h unixconf.h vision.h \
|
||||
vmsconf.h wintty.h winX.h winprocs.h wintype.h you.h youprop.h
|
||||
@@ -206,8 +206,8 @@ nethack.opt : $(MAKEFILE) # this file
|
||||
@ write f f$edit("$(HOBJ5)","COLLAPSE")
|
||||
@ write f f$edit("$(HOBJ6)","COLLAPSE")
|
||||
@ write f "sys$library:starlet.olb/Include=(lib$initialize)
|
||||
@ write f \
|
||||
"psect_attr=lib$initialize, Con,Usr,noPic,Rel,Gbl,noShr,noExe,Rd,noWrt,Long"
|
||||
@ write f "! psect_attributes Usr, noPic, and Long removed"
|
||||
@ write f "psect_attr=lib$initialize, Con,Rel,Gbl,noShr,noExe,Rd,noWrt"
|
||||
@ write f "iosegment=128"
|
||||
close f
|
||||
|
||||
@@ -378,7 +378,7 @@ attrib.obj : attrib.c $(HACK_H)
|
||||
ball.obj : ball.c $(HACK_H)
|
||||
bones.obj : bones.c $(HACK_H) $(INC)lev.h
|
||||
botl.obj : botl.c $(HACK_H)
|
||||
cmd.obj : cmd.c $(HACK_H) $(INC)func_tab.h
|
||||
cmd.obj : cmd.c $(HACK_H) $(INC)lev.h $(INC)func_tab.h
|
||||
dbridge.obj : dbridge.c $(HACK_H)
|
||||
decl.obj : decl.c $(HACK_H)
|
||||
detect.obj : detect.c $(HACK_H) $(INC)artifact.h
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -71,8 +71,7 @@ DEBUGINFO = Y
|
||||
#
|
||||
# You'll have to set PDCURSES_H to the correct location of the
|
||||
# PDCurses header (.h) files and PDCURSES_C to the location
|
||||
# of your PDCurses C files which must already be resident on
|
||||
# your machine.
|
||||
# of your PDCurses C files.
|
||||
#
|
||||
ADD_CURSES=Y
|
||||
PDCURSES_TOP=..\..\pdcurses
|
||||
@@ -90,9 +89,13 @@ PDCURSES_TOP=..\..\pdcurses
|
||||
# Nothing below here should have to be changed.#
|
||||
# #
|
||||
################################################
|
||||
|
||||
#
|
||||
#==============================================================================
|
||||
|
||||
# Set the gamedir according to your preference.
|
||||
# If not present prior to compilation it gets created.
|
||||
|
||||
#
|
||||
# Source directories. Makedefs hardcodes these, don't change them.
|
||||
#
|
||||
@@ -115,10 +118,11 @@ WSHR = ..\win\share # Tile support files
|
||||
|
||||
OBJ = o
|
||||
|
||||
cc=cl
|
||||
link=link
|
||||
rc=Rc
|
||||
|
||||
#
|
||||
#==========================================
|
||||
# Exe File Info.
|
||||
#==========================================
|
||||
|
||||
#
|
||||
#
|
||||
# Optional high-quality BSD random number generation routines
|
||||
@@ -151,93 +155,6 @@ DLBFLG =
|
||||
|
||||
#ZLIB = zlib.lib
|
||||
|
||||
#==========================================
|
||||
#==========================================
|
||||
# Setting up the compiler and linker
|
||||
#==========================================
|
||||
#==========================================
|
||||
|
||||
# Before we get started, this section is used to determine the version of
|
||||
# Visual Studio we are using. We set VSVER to 0000 to flag any version that
|
||||
# is too old or untested.
|
||||
#
|
||||
#NMAKE version 1414264330 is distributed with VS 15.7.5
|
||||
|
||||
#!MESSAGE $(MAKEFLAGS)
|
||||
#!MESSAGE $(MAKEDIR)
|
||||
#!MESSAGE $(MAKE)
|
||||
|
||||
MAKEVERSION=$(_NMAKE_VER:.= )
|
||||
MAKEVERSION=$(MAKEVERSION: =)
|
||||
#!MESSAGE $(_NMAKE_VER)
|
||||
#!MESSAGE $(MAKEVERSION)
|
||||
|
||||
VSNEWEST=2017
|
||||
!IF ($(MAKEVERSION) < 1000000000)
|
||||
VSVER=0000 #untested ancient version
|
||||
!ELSEIF ($(MAKEVERSION) > 1000000000) && ($(MAKEVERSION) < 1100000000)
|
||||
VSVER=2010
|
||||
!ELSEIF ($(MAKEVERSION) > 1100000000) && ($(MAKEVERSION) < 1200000000)
|
||||
VSVER=2012
|
||||
!ELSEIF ($(MAKEVERSION) > 1200000000) && ($(MAKEVERSION) < 1400000000)
|
||||
VSVER=2013
|
||||
!ELSEIF ($(MAKEVERSION) > 1400000000) && ($(MAKEVERSION) < 1411000000)
|
||||
VSVER=2015
|
||||
!ELSEIF ($(MAKEVERSION) > 1411000000) && ($(MAKEVERSION) < 1414264331)
|
||||
VSVER=$(VSNEWEST)
|
||||
!ELSEIF ($(MAKEVERSION) > 1414264330)
|
||||
VSVER=2999 #untested future version
|
||||
!ENDIF
|
||||
|
||||
!IF ($(VSVER) >= 2012)
|
||||
!MESSAGE Autodetected Visual Studio $(VSVER)
|
||||
!ELSEIF ($(VSVER) == 2999
|
||||
!MESSAGE The version of Visual Studio is newer than the most recent at
|
||||
!MESSAGE the time this Makefile was crafted (Visual Studio $(VSNEWEST)).
|
||||
!MESSAGE Because it is newer we'll proceed expecting that the
|
||||
!MESSAGE VS$(VSNEWEST) processing will still work.
|
||||
!ELSEIF ($(VSVER) == 0000)
|
||||
!MESSAGE The version of Visual Studio appears to be quite old, older
|
||||
!MESSAGE than VS2010 which is the oldest supported version by this
|
||||
!MESSAGE Makefile, so we'll stop now.
|
||||
!ERROR Untested old Visual Studio version with NMAKE $(_NMAKE_VER).
|
||||
!ENDIF
|
||||
|
||||
!IF ($(VSVER) == 2010)
|
||||
# For VS2010 use "setenv /x86" or "setenv /x64" before invoking make process
|
||||
# DO NOT DELETE THE FOLLOWING LINE
|
||||
!include <win32.mak>
|
||||
! ENDIF
|
||||
|
||||
#These will be in the environment variables with one of the VS2017
|
||||
#developer command prompts.
|
||||
#VSCMD_ARG_HOST_ARCH=x64
|
||||
#VSCMD_ARG_TGT_ARCH=x86
|
||||
|
||||
!IFDEF VSCMD_ARG_HOST_ARCH
|
||||
!MESSAGE Host architecture is $(VSCMD_ARG_HOST_ARCH)
|
||||
!MESSAGE Target architecture is $(VSCMD_ARG_TGT_ARCH)
|
||||
! IFNDEF TARGET_CPU
|
||||
! IF "$(VSCMD_ARG_TGT_ARCH)"=="x64"
|
||||
TARGET_CPU=x64
|
||||
! ELSE
|
||||
TARGET_CPU=x86
|
||||
! ENDIF
|
||||
! ENDIF
|
||||
!ENDIF
|
||||
|
||||
!IF "$(TARGET_CPU)" == ""
|
||||
TARGET_CPU=x86
|
||||
!ENDIF
|
||||
|
||||
!IF ($(VSVER) == 2010)
|
||||
CL_RECENT=
|
||||
!ELSE
|
||||
! IF ($(VSVER) > 2010)
|
||||
CL_RECENT=-sdl
|
||||
! ENDIF
|
||||
!ENDIF
|
||||
|
||||
|
||||
#==========================================
|
||||
#================ MACROS ==================
|
||||
@@ -272,7 +189,7 @@ RECOVOBJS = $(O)recover.o
|
||||
TILEFILES = $(WSHR)\monsters.txt $(WSHR)\objects.txt $(WSHR)\other.txt
|
||||
|
||||
#
|
||||
# These are not invoked during a normal game build in 3.4+
|
||||
# These are not invoked during a normal game build in 3.4
|
||||
#
|
||||
TEXT_IO = $(O)tiletext.o $(O)tiletxt.o $(O)drawing.o \
|
||||
$(O)decl.o $(O)monst.o $(O)objects.o
|
||||
@@ -298,19 +215,19 @@ VOBJ06 = $(O)dothrow.o $(O)drawing.o $(O)dungeon.o $(O)eat.o
|
||||
VOBJ07 = $(O)end.o $(O)engrave.o $(O)exper.o $(O)explode.o
|
||||
VOBJ08 = $(O)extralev.o $(O)files.o $(O)fountain.o $(O)hack.o
|
||||
VOBJ09 = $(O)hacklib.o $(O)invent.o $(O)light.o $(O)lock.o
|
||||
VOBJ10 = $(O)mail.o $(O)pcmain.o $(O)makemon.o $(O)mapglyph.o
|
||||
VOBJ11 = $(O)mcastu.o $(O)mhitm.o $(O)mhitu.o $(O)minion.o
|
||||
VOBJ12 = $(O)mklev.o $(O)mkmap.o $(O)mkmaze.o $(O)mkobj.o
|
||||
VOBJ13 = $(O)mkroom.o $(O)mon.o $(O)mondata.o $(O)monmove.o
|
||||
VOBJ14 = $(O)monst.o $(O)mplayer.o $(O)mthrowu.o $(O)muse.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
|
||||
VOBJ17 = $(O)polyself.o $(O)potion.o $(O)pray.o $(O)priest.o
|
||||
VOBJ18 = $(O)quest.o $(O)questpgr.o $(RANDOM) $(O)read.o
|
||||
VOBJ19 = $(O)rect.o $(O)region.o $(O)restore.o $(O)rip.o
|
||||
VOBJ20 = $(O)rnd.o $(O)role.o $(O)rumors.o $(O)save.o
|
||||
VOBJ21 = $(O)shk.o $(O)shknam.o $(O)sit.o $(O)sounds.o
|
||||
VOBJ22 = $(O)sp_lev.o $(O)spell.o $(O)steal.o $(O)steed.o
|
||||
VOBJ10 = $(O)mail.o $(O)pcmain.o $(O)makemon.o $(O)mapglyph.o $(O)mcastu.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
|
||||
VOBJ13 = $(O)mon.o $(O)mondata.o $(O)monmove.o $(O)monst.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
|
||||
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
|
||||
VOBJ18 = $(O)quest.o $(O)questpgr.o $(RANDOM) $(O)read.o
|
||||
VOBJ19 = $(O)rect.o $(O)region.o $(O)restore.o $(O)rip.o
|
||||
VOBJ20 = $(O)rnd.o $(O)role.o $(O)rumors.o $(O)save.o
|
||||
VOBJ21 = $(O)shk.o $(O)shknam.o $(O)sit.o $(O)sounds.o
|
||||
VOBJ22 = $(O)sp_lev.o $(O)spell.o $(O)steal.o $(O)steed.o
|
||||
VOBJ23 = $(O)sys.o $(O)teleport.o $(O)timeout.o $(O)topten.o
|
||||
VOBJ24 = $(O)track.o $(O)trap.o $(O)u_init.o $(O)uhitm.o
|
||||
VOBJ25 = $(O)vault.o $(O)vis_tab.o $(O)vision.o $(O)weapon.o
|
||||
@@ -354,8 +271,7 @@ GUIHDR = $(MSWIN)\mhaskyn.h $(MSWIN)\mhdlg.h $(MSWIN)\mhfont.h \
|
||||
|
||||
COMCTRL = comctl32.lib
|
||||
|
||||
KEYDLLS = $(GAMEDIR)\nhdefkey.dll $(GAMEDIR)\nh340key.dll \
|
||||
$(GAMEDIR)\nhraykey.dll
|
||||
KEYDLLS = $(GAMEDIR)\nhdefkey.dll $(GAMEDIR)\nh340key.dll $(GAMEDIR)\nhraykey.dll
|
||||
|
||||
TILEUTIL16 = $(UTIL)\tile2bmp.exe
|
||||
TILEBMP16 = $(SRC)\tiles.bmp
|
||||
@@ -437,31 +353,109 @@ TILE_H = ..\win\share\tile.h
|
||||
|
||||
DATABASE = $(DAT)\data.base
|
||||
|
||||
#==========================================
|
||||
#==========================================
|
||||
# Setting up the compiler and linker
|
||||
#==========================================
|
||||
#==========================================
|
||||
|
||||
cc=cl
|
||||
link=link
|
||||
rc=Rc
|
||||
|
||||
# Before we get started, this section is used to determine the version of
|
||||
# Visual Studio we are using. We set VSVER to 0000 to flag any version that
|
||||
# is too old or untested.
|
||||
#
|
||||
#NMAKE version 1414264330 is distributed with VS 15.7.5
|
||||
|
||||
#!MESSAGE $(MAKEFLAGS)
|
||||
#!MESSAGE $(MAKEDIR)
|
||||
#!MESSAGE $(MAKE)
|
||||
|
||||
MAKEVERSION=$(_NMAKE_VER:.= )
|
||||
MAKEVERSION=$(MAKEVERSION: =)
|
||||
#!MESSAGE $(_NMAKE_VER)
|
||||
#!MESSAGE $(MAKEVERSION)
|
||||
|
||||
VSNEWEST=2017
|
||||
!IF ($(MAKEVERSION) < 1000000000)
|
||||
VSVER=0000 #untested ancient version
|
||||
!ELSEIF ($(MAKEVERSION) > 1000000000) && ($(MAKEVERSION) < 1100000000)
|
||||
VSVER=2010
|
||||
!ELSEIF ($(MAKEVERSION) > 1100000000) && ($(MAKEVERSION) < 1200000000)
|
||||
VSVER=2012
|
||||
!ELSEIF ($(MAKEVERSION) > 1200000000) && ($(MAKEVERSION) < 1400000000)
|
||||
VSVER=2013
|
||||
!ELSEIF ($(MAKEVERSION) > 1400000000) && ($(MAKEVERSION) < 1411000000)
|
||||
VSVER=2015
|
||||
!ELSEIF ($(MAKEVERSION) > 1411000000) && ($(MAKEVERSION) < 1414264331)
|
||||
VSVER=$(VSNEWEST)
|
||||
!ELSEIF ($(MAKEVERSION) > 1414264330)
|
||||
VSVER=2999 #untested future version
|
||||
!ENDIF
|
||||
|
||||
!IF ($(VSVER) >= 2012)
|
||||
!MESSAGE Autodetected Visual Studio $(VSVER)
|
||||
!ELSEIF ($(VSVER) == 2999
|
||||
!MESSAGE The version of Visual Studio is newer than the most recent at
|
||||
!MESSAGE the time this Makefile was crafted (Visual Studio $(VSNEWEST)).
|
||||
!MESSAGE Because it is newer we'll proceed expecting that the
|
||||
!MESSAGE VS$(VSNEWEST) processing will still work.
|
||||
!ELSEIF ($(VSVER) == 0000)
|
||||
!MESSAGE The version of Visual Studio appears to be quite old, older
|
||||
!MESSAGE than VS2010 which is the oldest supported version by this
|
||||
!MESSAGE Makefile, so we'll stop now.
|
||||
!ERROR Untested old Visual Studio version with NMAKE $(_NMAKE_VER).
|
||||
!ENDIF
|
||||
|
||||
!IF ($(VSVER) == 2010)
|
||||
# For VS2010 use "setenv /x86" or "setenv /x64" before invoking make process
|
||||
# DO NOT DELETE THE FOLLOWING LINE
|
||||
!include <win32.mak>
|
||||
! ENDIF
|
||||
|
||||
#These will be in the environment variables with one of the VS2017
|
||||
#developer command prompts.
|
||||
#VSCMD_ARG_HOST_ARCH=x64
|
||||
#VSCMD_ARG_TGT_ARCH=x86
|
||||
|
||||
!IFDEF VSCMD_ARG_HOST_ARCH
|
||||
!MESSAGE Host architecture is $(VSCMD_ARG_HOST_ARCH)
|
||||
!MESSAGE Target architecture is $(VSCMD_ARG_TGT_ARCH)
|
||||
! IFNDEF TARGET_CPU
|
||||
! IF "$(VSCMD_ARG_TGT_ARCH)"=="x64"
|
||||
TARGET_CPU=x64
|
||||
! ELSE
|
||||
TARGET_CPU=x86
|
||||
! ENDIF
|
||||
! ENDIF
|
||||
!ENDIF
|
||||
|
||||
!IF "$(TARGET_CPU)" == ""
|
||||
TARGET_CPU=x86
|
||||
!ENDIF
|
||||
|
||||
!IF ($(VSVER) == 2010)
|
||||
CL_RECENT=
|
||||
!ELSE
|
||||
! IF ($(VSVER) > 2010)
|
||||
CL_RECENT=-sdl
|
||||
! ENDIF
|
||||
!ENDIF
|
||||
|
||||
#==========================================
|
||||
# More compiler setup post-macros
|
||||
#==========================================
|
||||
#----------------------------------------------------------------
|
||||
|
||||
!IF "$(ADD_CURSES)" == "Y"
|
||||
#CURSESDEF=-D"PDC_DLL_BUILD" -D"CURSES_GRAPHICS" -D"CURSES_BRIEF_INCLUDE"
|
||||
CURSESDEF=-D"CURSES_GRAPHICS" -D"CURSES_BRIEF_INCLUDE"
|
||||
CURSESINCL=..\win\curses
|
||||
!ELSE
|
||||
CURSDEF=
|
||||
CURSESLIB=
|
||||
CURSESINCL=
|
||||
!ENDIF
|
||||
|
||||
!IFNDEF ADD_CURSES
|
||||
INCLDIR= /I..\include /I..\sys\winnt
|
||||
!ELSE
|
||||
INCLDIR= /I..\include /I..\sys\winnt /I$(CURSESINCL)
|
||||
!ENDIF
|
||||
|
||||
#===========================================
|
||||
#---- start of Visual Studio Specific macros
|
||||
#===========================================
|
||||
|
||||
ccommon= -c -nologo -D"_CONSOLE" -D"_CRT_NONSTDC_NO_DEPRECATE" -D"_CRT_SECURE_NO_DEPRECATE" \
|
||||
-D"_LIB" -D"_SCL_SECURE_NO_DEPRECATE" -D"_VC80_UPGRADE=0x0600" -D"DLB" -D"_MBCS" \
|
||||
-DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -D"NDEBUG" -D"YY_NO_UNISTD_H" $(CURSESDEF) \
|
||||
@@ -531,6 +525,12 @@ conlibs = $(baselibs)
|
||||
guilibs = $(winlibs)
|
||||
#
|
||||
|
||||
!IFNDEF ADD_CURSES
|
||||
INCLDIR= /I..\include /I..\sys\winnt
|
||||
!ELSE
|
||||
INCLDIR= /I..\include /I..\sys\winnt
|
||||
!ENDIF
|
||||
|
||||
#==========================================
|
||||
# Util builds
|
||||
#==========================================
|
||||
@@ -550,10 +550,6 @@ DLB = nhdat
|
||||
DLB =
|
||||
! ENDIF
|
||||
|
||||
#==========================================
|
||||
#---- end of Visual Studio Specific macros
|
||||
#==========================================
|
||||
|
||||
#==========================================
|
||||
#================ RULES ==================
|
||||
#==========================================
|
||||
@@ -632,6 +628,9 @@ DLB =
|
||||
{$(WCURSES)}.c{$(OBJ)}.o:
|
||||
@$(cc) $(PDCINCL) $(cflagsBuild) -Fo$@ $<
|
||||
|
||||
#{$(WCURSES)}.txt{$(DAT)}.txt:
|
||||
# @copy $< $@
|
||||
|
||||
#==========================================
|
||||
# Rules for files in PDCurses
|
||||
#==========================================
|
||||
@@ -683,12 +682,10 @@ $(O)install.tag: $(DAT)\data $(DAT)\rumors $(DAT)\dungeon \
|
||||
if exist $(DAT)\symbols copy $(DAT)\symbols $(GAMEDIR)
|
||||
if exist $(DOC)\guidebook.txt copy $(DOC)\guidebook.txt $(GAMEDIR)\Guidebook.txt
|
||||
if exist $(DOC)\nethack.txt copy $(DOC)\nethack.txt $(GAMEDIR)\NetHack.txt
|
||||
$(U)makedefs -c
|
||||
-if not exist $(GAMEDIR)\defaults.nh copy fixed_defaults.nh $(GAMEDIR)\defaults.nh
|
||||
-if not exist $(GAMEDIR)\defaults.nh copy $(MSWSYS)\defaults.nh $(GAMEDIR)\defaults.nh
|
||||
-if not exist $(GAMEDIR)\record. goto>$(GAMEDIR)\record.
|
||||
@if exist $(GAMEDIR)\NetHack.PDB echo NOTE: You may want to remove $(GAMEDIR:\=/)/NetHack.PDB to conserve space
|
||||
@if exist $(GAMEDIR)\NetHackW.PDB echo NOTE: You may want to remove $(GAMEDIR:\=/)/NetHackW.PDB to conserve space
|
||||
-if not exist $(GAMEDIR)\defaults.nh copy $(MSWSYS)\defaults.nh $(GAMEDIR)\defaults.nh
|
||||
-if not exist $(GAMEDIR)\record. goto>$(GAMEDIR)\record.
|
||||
echo install done > $@
|
||||
|
||||
# copy $(MSWSYS)\winnt.hlp $(GAMEDIR)
|
||||
@@ -753,10 +750,10 @@ $(O)console.res: $(MSWSYS)\console.rc $(MSWSYS)\NetHack.ico
|
||||
@$(rc) -r -fo$@ -i$(MSWSYS) -dNDEBUG $(MSWSYS)\console.rc
|
||||
|
||||
|
||||
#==========================================================================
|
||||
#==========================================
|
||||
# The game targets.
|
||||
#==========================================================================
|
||||
#[VS-start] Visual C
|
||||
#==========================================
|
||||
|
||||
# The section for linking the NetHack image looks a little strange at
|
||||
# first, especially if you are used to UNIX makes, or NDMAKE. It is
|
||||
# Microsoft nmake specific, and it gets around the problem of the
|
||||
@@ -778,8 +775,6 @@ $(O)console.res: $(MSWSYS)\console.rc $(MSWSYS)\NetHack.ico
|
||||
# with ^ as we have done below. Every occurence
|
||||
# of a <tab> in $(ALLOBJ) is replaced by
|
||||
# <+><return><tab>.
|
||||
#[VS-end]
|
||||
#==========================================================================
|
||||
|
||||
GAMEOBJ=$(ALLOBJ:^ =^
|
||||
)
|
||||
@@ -898,14 +893,20 @@ $(GAMEDIR)\nhraykey.dll : $(O)$(@B).o $(O)gamedir.tag $(O)$(@B).def
|
||||
/PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).map" /DEF:$(O)$(@B).def \
|
||||
/IMPLIB:$(O)$(@B).lib -out:$@ $(O)$(@B).o
|
||||
|
||||
|
||||
#==========================================
|
||||
#=========== SECONDARY TARGETS ============
|
||||
#==========================================
|
||||
#
|
||||
# Secondary Targets.
|
||||
#
|
||||
|
||||
#==========================================
|
||||
# Makedefs Stuff
|
||||
#==========================================
|
||||
$(U)nhsizes.exe: $(O)nhsizes.o
|
||||
@echo Linking $(@:\=/)
|
||||
$(link) $(lflagsBuild) -out:$@ $(O)nhsizes.o $(O)panic.o $(O)alloc.o
|
||||
|
||||
$(O)nhsizes.o: $(CONFIG_H) nhsizes.c
|
||||
@$(cc) $(cflagsBuild) -Fo$@ nhsizes.c
|
||||
|
||||
$(U)makedefs.exe: $(MAKEOBJS)
|
||||
@echo Linking $(@:\=/)
|
||||
@$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(MAKEOBJS)
|
||||
@@ -1057,24 +1058,6 @@ $(U)dgncomp.exe: $(DGNCOMPOBJS)
|
||||
)
|
||||
<<
|
||||
|
||||
#=================================================
|
||||
# For a couple of devteam utilities
|
||||
#=================================================
|
||||
|
||||
$(U)nhsizes.exe: $(O)nhsizes.o
|
||||
@echo Linking $(@:\=/)
|
||||
$(link) $(lflagsBuild) -out:$@ $(O)nhsizes.o $(O)panic.o $(O)alloc.o
|
||||
|
||||
$(U)nhsizes2.exe: $(O)nhsizes2.o
|
||||
@echo Linking $(@:\=/)
|
||||
$(link) $(lflagsBuild) -out:$@ $(O)nhsizes2.o $(O)panic.o $(O)alloc.o
|
||||
|
||||
$(O)nhsizes.o: $(CONFIG_H) nhsizes.c
|
||||
@$(cc) $(cflagsBuild) -Fo$@ nhsizes.c
|
||||
|
||||
$(O)nhsizes2.o: $(CONFIG_H) nhsizes2.c
|
||||
@$(cc) $(cflagsBuild) -Fo$@ nhsizes2.c
|
||||
|
||||
#=================================================
|
||||
# Create directory for holding object files
|
||||
#=================================================
|
||||
@@ -1084,6 +1067,34 @@ $(O)obj.tag:
|
||||
@if not exist $(OBJ)\*.* mkdir $(OBJ)
|
||||
@echo directory created >$@
|
||||
|
||||
#==========================================
|
||||
# Notify of any CL environment variables
|
||||
# in effect since they change the compiler
|
||||
# options.
|
||||
#==========================================
|
||||
|
||||
$(O)envchk.tag: $(O)obj.tag
|
||||
! IF "$(TARGET_CPU)"=="x64"
|
||||
@echo Windows x64 64-bit target build
|
||||
! ELSE
|
||||
@echo Windows x86 32-bit target build
|
||||
! ENDIF
|
||||
!IFDEF TTYOBJ
|
||||
@echo tty window support included
|
||||
! IF "$(ADD_CURSES)"=="Y"
|
||||
@echo curses window support also included
|
||||
! ENDIF
|
||||
!ENDIF
|
||||
! IF "$(CL)"!=""
|
||||
# @echo Warning, the CL Environment variable is defined:
|
||||
# @echo CL=$(CL)
|
||||
! ENDIF
|
||||
echo envchk >$@
|
||||
|
||||
#==========================================
|
||||
#=========== SECONDARY TARGETS ============
|
||||
#==========================================
|
||||
|
||||
#==========================================
|
||||
# DLB utility and nhdat file creation
|
||||
#==========================================
|
||||
@@ -1244,40 +1255,19 @@ $(O)tile2bmp.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(MSWSYS)\win32api.h
|
||||
$(O)til2bm32.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(MSWSYS)\win32api.h
|
||||
@$(cc) $(cflagsBuild) -I$(WSHR) /DPACKED_FILE /DTILE_X=32 /DTILE_Y=32 /Fo$@ $(WSHR)\tile2bmp.c
|
||||
|
||||
#==========================================
|
||||
# PDCurses Library
|
||||
#==========================================
|
||||
#===============================================================================
|
||||
# PDCurses
|
||||
#===============================================================================
|
||||
|
||||
$(O)pdcurses.lib : $(PDCLIBOBJS) $(PDCOBJS)
|
||||
lib -nologo /out:$@ $(PDCLIBOBJS) $(PDCOBJS)
|
||||
|
||||
#==========================================
|
||||
# Notify of any CL environment variables
|
||||
# in effect since they change the compiler
|
||||
# options.
|
||||
#==========================================
|
||||
$(O)pdcscrn.o : $(PDCURSES_HEADERS) $(PDCWINCON)\pdcscrn.c $(MSWSYS)\stub-pdcscrn.c
|
||||
$(cc) $(PDCINCL) $(cflagsBuild) -Fo$@ $(MSWSYS)\stub-pdcscrn.c
|
||||
|
||||
$(O)envchk.tag: $(O)obj.tag
|
||||
! IF "$(TARGET_CPU)"=="x64"
|
||||
@echo Windows x64 64-bit target build
|
||||
! ELSE
|
||||
@echo Windows x86 32-bit target build
|
||||
! ENDIF
|
||||
!IFDEF TTYOBJ
|
||||
@echo tty window support included
|
||||
! IF "$(ADD_CURSES)"=="Y"
|
||||
@echo curses window support also included
|
||||
! ENDIF
|
||||
!ENDIF
|
||||
! IF "$(CL)"!=""
|
||||
# @echo Warning, the CL Environment variable is defined:
|
||||
# @echo CL=$(CL)
|
||||
! ENDIF
|
||||
echo envchk >$@
|
||||
|
||||
#==========================================
|
||||
#===============================================================================
|
||||
# Housekeeping
|
||||
#==========================================
|
||||
#===============================================================================
|
||||
|
||||
spotless: clean
|
||||
! IF ("$(OBJ)"!="")
|
||||
@@ -1370,7 +1360,6 @@ clean:
|
||||
if exist $(U)dgncomp.exe del $(U)dgncomp.exe
|
||||
if exist $(SRC)\*.lnk del $(SRC)\*.lnk
|
||||
if exist $(SRC)\*.map del $(SRC)\*.map
|
||||
if exist $(SRC)\fixed_defaults.nh del $(SRC)\fixed_defaults.nh
|
||||
if exist $(O)install.tag del $(O)install.tag
|
||||
if exist $(O)console.res del $(O)console.res
|
||||
if exist $(O)dgncomp.MAP del $(O)dgncomp.MAP
|
||||
@@ -1480,8 +1469,6 @@ $(O)winhack.o: $(HACK_H) $(MSWIN)\winhack.c
|
||||
$(O)ttystub.o: $(HACK_H) $(MSWSYS)\stubs.c
|
||||
@$(cc) $(cflagsBuild) -DTTYSTUB -Fo$@ $(MSWSYS)\stubs.c
|
||||
|
||||
$(O)tile.o: $(SRC)\tile.c $(HACK_H)
|
||||
|
||||
#
|
||||
# util dependencies
|
||||
#
|
||||
@@ -1495,21 +1482,18 @@ $(O)panic.o: $(U)panic.c $(CONFIG_H)
|
||||
|
||||
(O)cppregex.o: $(O)cppregex.cpp $(HACK_H)
|
||||
@$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\cppregex.cpp
|
||||
#
|
||||
# Other dependencies needed by some ports
|
||||
|
||||
#
|
||||
|
||||
# curses window port dependencies
|
||||
|
||||
$(O)cursdial.o: $(WCURSES)\cursdial.c $(WCURSES)\cursdial.h $(INCL)\wincurs.h
|
||||
$(O)cursinit.c: $(WCURSES)\cursinit.c $(WCURSES)\cursinit.h $(INCL)\wincurs.h
|
||||
$(O)cursinvt.c: $(WCURSES)\cursinvt.c $(WCURSES)\cursinvt.h $(INCL)\wincurs.h
|
||||
$(O)cursmain.c: $(WCURSES)\cursmain.c $(WCURSES)\cursmain.h $(INCL)\wincurs.h
|
||||
$(O)cursmesg.c: $(WCURSES)\cursmesg.c $(WCURSES)\cursmesg.h $(INCL)\wincurs.h
|
||||
$(O)cursmisc.c: $(WCURSES)\cursmisc.c $(WCURSES)\cursmisc.h $(INCL)\wincurs.h
|
||||
$(O)cursstat.c: $(WCURSES)\cursstat.c $(WCURSES)\cursstat.h $(INCL)\wincurs.h
|
||||
$(O)curswins.c: $(WCURSES)\curswins.c $(WCURSES)\curswins.h $(INCL)\wincurs.h
|
||||
|
||||
#
|
||||
$(O)\cursdial.o: $(WCURSES)\cursdial.c $(WCURSES)\cursdial.h $(INCL)\wincurs.h
|
||||
$(O)\cursinit.c: $(WCURSES)\cursinit.c $(WCURSES)\cursinit.h $(INCL)\wincurs.h
|
||||
$(O)\cursinvt.c: $(WCURSES)\cursinvt.c $(WCURSES)\cursinvt.h $(INCL)\wincurs.h
|
||||
$(O)\cursmain.c: $(WCURSES)\cursmain.c $(WCURSES)\cursmain.h $(INCL)\wincurs.h
|
||||
$(O)\cursmesg.c: $(WCURSES)\cursmesg.c $(WCURSES)\cursmesg.h $(INCL)\wincurs.h
|
||||
$(O)\cursmisc.c: $(WCURSES)\cursmisc.c $(WCURSES)\cursmisc.h $(INCL)\wincurs.h
|
||||
$(O)\cursstat.c: $(WCURSES)\cursstat.c $(WCURSES)\cursstat.h $(INCL)\wincurs.h
|
||||
$(O)\curswins.c: $(WCURSES)\curswins.c $(WCURSES)\curswins.h $(INCL)\wincurs.h
|
||||
#
|
||||
# The rest are stolen from sys/unix/Makefile.src,
|
||||
# with the following changes:
|
||||
@@ -1582,6 +1566,7 @@ $(O)wintext.o: ..\win\X11\wintext.c $(HACK_H) $(INCL)\winX.h $(INCL)\xwindow.h
|
||||
@$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\wintext.c
|
||||
$(O)winval.o: ..\win\X11\winval.c $(HACK_H) $(INCL)\winX.h
|
||||
@$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winval.c
|
||||
$(O)tile.o: $(SRC)\tile.c $(HACK_H)
|
||||
$(O)gnaskstr.o: ..\win\gnome\gnaskstr.c ..\win\gnome\gnaskstr.h \
|
||||
..\win\gnome\gnmain.h
|
||||
@$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnaskstr.c
|
||||
|
||||
@@ -1889,7 +1889,7 @@ void nethack_enter_nttty()
|
||||
error("Unable to load nhraykey.dll");
|
||||
}
|
||||
}
|
||||
#endif TTY_GRAPHICS
|
||||
#endif /* TTY_GRAPHICS */
|
||||
|
||||
/* this is used as a printf() replacement when the window
|
||||
* system isn't initialized yet
|
||||
|
||||
15
sys/winnt/stub-pdcscrn.c
Normal file
15
sys/winnt/stub-pdcscrn.c
Normal file
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Use this stub to insert a needed pragma prior
|
||||
* to compiling $(PDCWINCON)\pdcscrn.c in the
|
||||
* PDCurses distribution.
|
||||
*
|
||||
* We don't want to ask NetHack builders to
|
||||
* modify the PDCurses distribution in any way,
|
||||
* we only ask that they have the original intact
|
||||
* PDCurses source tree available during the build.
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma warning(disable : 4996)
|
||||
#include "pdcscrn.c"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
#ifdef GUISTUB
|
||||
#ifdef TTYSTUB
|
||||
#error You can't compile this with both GUISTUB and TTYSTUB defined.
|
||||
#error You cannot compile this with both GUISTUB and TTYSTUB defined.
|
||||
#endif
|
||||
|
||||
int GUILaunched;
|
||||
@@ -29,6 +29,7 @@ mswin_destroy_reg()
|
||||
*/
|
||||
#ifdef __MINGW32__
|
||||
extern char default_window_sys[];
|
||||
extern int mingw_main(int argc, char **argv);
|
||||
|
||||
int
|
||||
main(argc, argv)
|
||||
@@ -37,10 +38,7 @@ char *argv[];
|
||||
{
|
||||
boolean resuming;
|
||||
|
||||
sys_early_init();
|
||||
Strcpy(default_window_sys, "tty");
|
||||
resuming = pcmain(argc, argv);
|
||||
moveloop(resuming);
|
||||
resuming = mingw_main(argc, argv);
|
||||
nethack_exit(EXIT_SUCCESS);
|
||||
/*NOTREACHED*/
|
||||
return 0;
|
||||
|
||||
@@ -1962,6 +1962,7 @@ boolean complain;
|
||||
wp->title = dupstr(str);
|
||||
|
||||
wp->menu_information->permi = FALSE;
|
||||
wp->menu_information->disable_mcolors = TRUE;
|
||||
(void) X11_select_menu(newwin, PICK_NONE, &menu_list);
|
||||
X11_destroy_nhwindow(newwin);
|
||||
}
|
||||
|
||||
@@ -1162,7 +1162,7 @@ struct menu *curr_menu;
|
||||
XtSetArg(args[num_args], nhStr(XtNborderWidth), 0); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNvertDistance), 0); num_args++;
|
||||
|
||||
if (!iflags.use_menu_color
|
||||
if (!iflags.use_menu_color || wp->menu_information->disable_mcolors
|
||||
|| !get_menu_coloring(curr->str, &color, &attr))
|
||||
attr = curr->attr;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 wintext.c $NHDT-Date: 1450453309 2015/12/18 15:41:49 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.15 $ */
|
||||
/* NetHack 3.6 wintext.c $NHDT-Date: 1543622533 2018/12/01 00:02:13 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.16 $ */
|
||||
/* Copyright (c) Dean Luick, 1992 */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -281,11 +281,9 @@ struct xwindow *wp;
|
||||
#endif
|
||||
|
||||
num_args = 0;
|
||||
XtSetArg(args[num_args], XtNallowShellResize, True);
|
||||
num_args++;
|
||||
XtSetArg(args[num_args], XtNallowShellResize, True), num_args++;
|
||||
XtSetArg(args[num_args], XtNtranslations,
|
||||
XtParseTranslationTable(text_translations));
|
||||
num_args++;
|
||||
XtParseTranslationTable(text_translations)), num_args++;
|
||||
|
||||
#ifdef TRANSIENT_TEXT
|
||||
wp->popup = XtCreatePopupShell("text", transientShellWidgetClass,
|
||||
@@ -299,8 +297,9 @@ struct xwindow *wp;
|
||||
XtParseTranslationTable("<Message>WM_PROTOCOLS: delete_text()"));
|
||||
|
||||
num_args = 0;
|
||||
XtSetArg(args[num_args], XtNallowShellResize, True);
|
||||
num_args++;
|
||||
XtSetArg(args[num_args], XtNallowShellResize, True), num_args++;
|
||||
XtSetArg(args[num_args], XtNtranslations,
|
||||
XtParseTranslationTable(text_translations)), num_args++;
|
||||
form = XtCreateManagedWidget("form", formWidgetClass, wp->popup, args,
|
||||
num_args);
|
||||
|
||||
|
||||
@@ -80,6 +80,16 @@ struct window_procs curses_procs = {
|
||||
genl_can_suspend_yes,
|
||||
};
|
||||
|
||||
/*
|
||||
* Global variables for curses interface
|
||||
*/
|
||||
|
||||
int term_rows, term_cols; /* size of underlying terminal */
|
||||
int orig_cursor; /* Preserve initial cursor state */
|
||||
WINDOW *base_term; /* underlying terminal window */
|
||||
boolean counting; /* Count window is active */
|
||||
WINDOW *mapwin, *statuswin, *messagewin; /* Main windows */
|
||||
|
||||
/* Track if we're performing an update to the permanent window.
|
||||
Needed since we aren't using the normal menu functions to handle
|
||||
the inventory window. */
|
||||
|
||||
@@ -371,12 +371,12 @@ curses_message_win_getline(const char *prompt, char *answer, int buffer)
|
||||
char *tmpstr; /* for free() */
|
||||
int maxy, maxx; /* linewrap / scroll */
|
||||
int ch;
|
||||
|
||||
WINDOW *win = curses_get_nhwin(MESSAGE_WIN);
|
||||
int border_space = 0;
|
||||
int len = 0; /* of answer string */
|
||||
boolean border = curses_window_has_border(MESSAGE_WIN);
|
||||
int orig_cursor = curs_set(0);
|
||||
|
||||
orig_cursor = curs_set(0);
|
||||
|
||||
curses_get_window_size(MESSAGE_WIN, &height, &width);
|
||||
if (border) {
|
||||
|
||||
93
win/win32/dgnstuff-mingw32.mak
Normal file
93
win/win32/dgnstuff-mingw32.mak
Normal file
@@ -0,0 +1,93 @@
|
||||
# $NHDT-Date: 1524689255 2018/04/25 20:47:35 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.12 $
|
||||
# Copyright (c) 2018 by Michael Allison
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
# Set all of these or none of them.
|
||||
#
|
||||
# bison and flex are the ones found in GnuWin32, which
|
||||
# is probably the easiest set of these tools to find
|
||||
# on Windows.
|
||||
#
|
||||
#YACC = bison.exe -y
|
||||
#LEX = flex.exe
|
||||
#YTABC = y.tab.c
|
||||
#YTABH = y.tab.h
|
||||
#LEXYYC = lex.yy.c
|
||||
SHELL=cmd.exe
|
||||
|
||||
default: all
|
||||
|
||||
all: tools ../util/dgn_yacc.c ../util/dgn_lex.c
|
||||
|
||||
rebuild: clean all
|
||||
|
||||
clean:
|
||||
-del ..\util\dgn_lex.c
|
||||
-del ..\util\dgn_yacc.c
|
||||
-del ..\include\dgn_comp.h
|
||||
|
||||
tools:
|
||||
ifneq "$(YACC)" ""
|
||||
@echo Yacc-alike set to $(YACC)
|
||||
@echo YTABC set to $(YTABC)
|
||||
@echo YTABH set to $(YTABH)
|
||||
endif
|
||||
|
||||
ifneq "$(LEX)" ""
|
||||
@echo Lex-alike set to $(LEX)
|
||||
@echo LEXYYC set to $(LEXYYC)
|
||||
endif
|
||||
|
||||
#==========================================
|
||||
# Dungeon Compiler Stuff
|
||||
#==========================================
|
||||
|
||||
../include/dgn_comp.h : ../util/dgn_comp.y
|
||||
ifeq "$(YACC)" ""
|
||||
@echo Using pre-built dgn_comp.h
|
||||
chdir ..\include
|
||||
copy /y ..\sys\share\dgn_comp.h
|
||||
copy /b dgn_comp.h+,,
|
||||
chdir ..\src
|
||||
else
|
||||
chdir ..\util
|
||||
$(YACC) -d dgn_comp.y
|
||||
copy $(YTABC) $@
|
||||
copy $(YTABH) ..\include\dgn_comp.h
|
||||
@del $(YTABC)
|
||||
@del $(YTABH)
|
||||
chdir ..\build
|
||||
endif
|
||||
|
||||
../util/dgn_yacc.c : ../util/dgn_comp.y
|
||||
ifeq "$(YACC)" ""
|
||||
@echo Using pre-built dgn_yacc.c
|
||||
chdir ..\util
|
||||
copy /y ..\sys\share\dgn_yacc.c
|
||||
copy /b dgn_yacc.c+,,
|
||||
chdir ..\src
|
||||
else
|
||||
chdir ..\util
|
||||
$(YACC) -d dgn_comp.y
|
||||
copy $(YTABC) $@
|
||||
copy $(YTABH) ..\include\dgn_comp.h
|
||||
@del $(YTABC)
|
||||
@del $(YTABH)
|
||||
chdir ..\build
|
||||
endif
|
||||
|
||||
../util/dgn_lex.c: ../util/dgn_comp.l
|
||||
ifeq "$(LEX)" ""
|
||||
@echo Using pre-built dgn_lex.c
|
||||
chdir ..\util
|
||||
copy /y ..\sys\share\dgn_lex.c
|
||||
copy /b dgn_lex.c+,,
|
||||
chdir ..\src
|
||||
else
|
||||
chdir ..\util
|
||||
$(LEX) dgn_comp.l
|
||||
copy $(LEXYYC) $@
|
||||
@del $(LEXYYC)
|
||||
chdir ..\build
|
||||
endif
|
||||
|
||||
100
win/win32/levstuff-mingw32.mak
Normal file
100
win/win32/levstuff-mingw32.mak
Normal file
@@ -0,0 +1,100 @@
|
||||
# $NHDT-Date: 1524689255 2018/04/25 20:47:35 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.12 $
|
||||
# Copyright (c) 2018 by Michael Allison
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
# Set all of these or none of them.
|
||||
#
|
||||
# bison and flex are the ones found in GnuWin32, which
|
||||
# is probably the easiest set of these tools to find
|
||||
# on Windows.
|
||||
#
|
||||
#YACC = bison.exe -y
|
||||
#LEX = flex.exe
|
||||
#YTABC = y.tab.c
|
||||
#YTABH = y.tab.h
|
||||
#LEXYYC = lex.yy.c
|
||||
SHELL = cmd.exe
|
||||
|
||||
default: all
|
||||
|
||||
all: tools ../util/lev_yacc.c ../util/lev_lex.c
|
||||
|
||||
rebuild: clean all
|
||||
|
||||
clean:
|
||||
-del ..\util\lev_lex.c
|
||||
-del ..\util\lev_yacc.c
|
||||
-del ..\include\lev_comp.h
|
||||
|
||||
tools:
|
||||
ifneq "$(YACC)" ""
|
||||
@echo Yacc-alike set to "$(YACC)"
|
||||
@echo YTABC set to $(YTABC)
|
||||
@echo YTABH set to $(YTABH)
|
||||
endif
|
||||
|
||||
ifneq "$(LEX)" ""
|
||||
@echo Lex-alike set to "$(LEX)"
|
||||
@echo LEXYYC set to $(LEXYYC)
|
||||
endif
|
||||
|
||||
#==========================================
|
||||
# Level Compiler Stuff
|
||||
#==========================================
|
||||
|
||||
../include/lev_comp.h: ../util/lev_comp.y
|
||||
@echo Yacc-alike set to "$(YACC)"
|
||||
ifeq "$(YACC)" ""
|
||||
@echo Using pre-built lev_comp.h
|
||||
chdir ..\include
|
||||
copy /y ..\sys\share\lev_comp.h
|
||||
copy /b lev_comp.h+,,
|
||||
chdir ..\src
|
||||
else
|
||||
@echo Generating lev_yacc.c and lev_comp.h
|
||||
chdir ..\util
|
||||
$(YACC) -d lev_comp.y
|
||||
copy $(YTABC) $@
|
||||
copy $(YTABH) ..\include\lev_comp.h
|
||||
@del $(YTABC)
|
||||
@del $(YTABH)
|
||||
chdir ..\src
|
||||
endif
|
||||
|
||||
../util/lev_yacc.c: ../util/lev_comp.y
|
||||
@echo Yacc-alike set to "$(YACC)"
|
||||
ifeq "$(YACC)" ""
|
||||
@echo Using pre-built lev_yacc.c
|
||||
chdir ..\util
|
||||
copy /y ..\sys\share\lev_yacc.c
|
||||
copy /b lev_yacc.c+,,
|
||||
chdir ..\src
|
||||
else
|
||||
@echo Generating lev_yacc.c and lev_comp.h
|
||||
chdir ..\util
|
||||
$(YACC) -d lev_comp.y
|
||||
copy $(YTABC) $@
|
||||
copy $(YTABH) ..\include\lev_comp.h
|
||||
@del $(YTABC)
|
||||
@del $(YTABH)
|
||||
chdir ..\src
|
||||
endif
|
||||
|
||||
../util/lev_lex.c: ../util/lev_comp.l
|
||||
@echo Lex-alike set to "$(LEX)"
|
||||
ifeq "$(LEX)" ""
|
||||
@echo Using pre-built lev_lex.c
|
||||
chdir ..\util
|
||||
copy /y ..\sys\share\lev_lex.c
|
||||
copy /b lev_lex.c+,,
|
||||
chdir ..\src
|
||||
else
|
||||
@echo Generating lev_lex.c
|
||||
chdir ..\util
|
||||
$(LEX) lev_comp.l
|
||||
copy $(LEXYYC) $@
|
||||
@del $(LEXYYC)
|
||||
chdir ..\src
|
||||
endif
|
||||
|
||||
|
||||
27
win/win32/tiles-mingw32.mak
Normal file
27
win/win32/tiles-mingw32.mak
Normal file
@@ -0,0 +1,27 @@
|
||||
#$NHDT-Date: 1524689255 2018/04/25 20:47:35 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.4 $
|
||||
# Copyright (c) 2002 by Michael Allison
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
SHELL=cmd.exe
|
||||
|
||||
default: all
|
||||
|
||||
all: ../win/win32/tiles.bmp
|
||||
|
||||
clean:
|
||||
-del ..\src\win\win32\tiles.bmp
|
||||
-del ..\win\win32\tiles.bmp
|
||||
|
||||
#==========================================
|
||||
# Building the tiles file tile.bmp
|
||||
#==========================================
|
||||
|
||||
../src/tiles.bmp : ../win/share/monsters.txt ../win/share/objects.txt \
|
||||
../win/share/other.txt
|
||||
chdir ..\src
|
||||
..\util\tile2bmp.exe tiles.bmp
|
||||
chdir ..\build
|
||||
|
||||
..\win\win32\tiles.bmp: ..\src\tiles.bmp
|
||||
@copy ..\src\tiles.bmp ..\win\win32\tiles.bmp
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
<AdditionalDependencies>comctl32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<AdditionalManifestFiles>NethackW.exe.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
|
||||
<AdditionalManifestFiles>$(WinWin32Dir)NethackW.exe.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
|
||||
</Manifest>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
@@ -184,4 +184,4 @@
|
||||
<Target Name="AfterRebuild">
|
||||
<MSBuild Projects="afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
|
||||
</Target>
|
||||
</Project>
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user