Merge branch 'NetHack-3.6.2'
This commit is contained in:
@@ -345,6 +345,13 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
|
||||
argv++;
|
||||
}
|
||||
|
||||
#ifdef WIN32
|
||||
if (argcheck(argc, argv, ARG_WINDOWS) == 1) {
|
||||
argc--;
|
||||
argv++;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (argc > 1 && !strncmp(argv[1], "-d", 2) && argv[1][2] != 'e') {
|
||||
/* avoid matching "-dec" for DECgraphics; since the man page
|
||||
* says -d directory, hope nobody's using -desomething_else
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# NetHack Makefile (VMS) - data files: special levels and other data.
|
||||
# NetHack 3.6 Makefile.dat $NHDT-Date: 1524689428 2018/04/25 20:50:28 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.9 $
|
||||
# NetHack 3.6 Makefile.dat $NHDT-Date: 1542388601 2018/11/16 17:16:41 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.10 $
|
||||
# Copyright (c) 2015 by Mike Stephenson
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
@@ -26,10 +26,11 @@ UTILMARKER = $(UTL)util.timestamp;
|
||||
|
||||
# note: filespecs have enough punctuation to satisfy DELETE
|
||||
MARKERS = spec_levs.timestamp;,quest_levs.timestamp;
|
||||
VARDAT = data.;,rumors.;,quest.dat;,oracles.;,options.;
|
||||
VARDAT = data.;,rumors.;,quest.dat;,oracles.;,options.;,\
|
||||
engrave.;,epitaph.;,bogusmon.;
|
||||
DUNGEON = dungeon.;
|
||||
X11TILES= x11tiles.;
|
||||
# note: the level lists need to be space separated
|
||||
# note: the level lists need to be space separated for use as-is by $(LEVCOMP)
|
||||
QUESTLEVS = 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
|
||||
@@ -54,6 +55,12 @@ quest.dat : quest.dat;
|
||||
@ $(NOOP)
|
||||
oracles : oracles.;
|
||||
@ $(NOOP)
|
||||
engrave : engrave.;
|
||||
@ $(NOOP)
|
||||
epitaph : epitaph.;
|
||||
@ $(NOOP)
|
||||
bogusmon : bogusmon.;
|
||||
@ $(NOOP)
|
||||
options : options.;
|
||||
@ $(NOOP)
|
||||
x11tiles : $(X11TILES)
|
||||
@@ -102,6 +109,9 @@ data.; : data.base $(MAKEDEFS)
|
||||
rumors.; : rumors.tru rumors.fal $(MAKEDEFS)
|
||||
$(RUN) $(MAKEDEFS) -r
|
||||
|
||||
engrave.; epitaph.; bogusmon.; : engrave.txt epitaph.txt bogusmon.txt
|
||||
$(RUN) $(MAKEDEFS) -s
|
||||
|
||||
quest.dat; : quest.txt $(MAKEDEFS)
|
||||
$(RUN) $(MAKEDEFS) -q
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# NetHack Makefile (VMS) - for building nethack itself.
|
||||
# NetHack 3.6 Makefile.src $NHDT-Date: 1524689428 2018/04/25 20:50:28 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.29 $
|
||||
# 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 $
|
||||
# Copyright (c) 2011 by Robert Patrick Rankin
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
@@ -113,19 +113,22 @@ HACKCSRC = 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 \
|
||||
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 \
|
||||
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
|
||||
|
||||
# generated source files (tile.c is handled separately via WINxxxSRC)
|
||||
GENCSRC = monstr.c vis_tab.c #tile.c
|
||||
GENCSRC = vis_tab.c #tile.c
|
||||
|
||||
# .c files for this version (for date.h)
|
||||
VERSOURCES = $(HACKCSRC) $(SYSSRC) $(WINSRC) $(RANDSRC) $(GENCSRC)
|
||||
@@ -159,7 +162,7 @@ HOBJ2 = dog.obj,dogmove.obj,dokick.obj,dothrow.obj,drawing.obj, \
|
||||
extralev.obj,files.obj,fountain.obj,hack.obj,hacklib.obj,invent.obj
|
||||
HOBJ3 = light.obj,lock.obj,mail.obj,makemon.obj,mapglyph.obj,mcastu.obj, \
|
||||
mhitm.obj,mhitu.obj,minion.obj,mklev.obj,mkmap.obj,mkmaze.obj, \
|
||||
mkobj.obj,mkroom.obj,mon.obj,mondata.obj,monmove.obj,monstr.obj
|
||||
mkobj.obj,mkroom.obj,mon.obj,mondata.obj,monmove.obj
|
||||
HOBJ4 = mplayer.obj,mthrowu.obj,muse.obj,music.obj,o_init.obj,objnam.obj, \
|
||||
options.obj,pager.obj,pickup.obj,pline.obj,polyself.obj, \
|
||||
potion.obj,pray.obj,priest.obj,quest.obj,questpgr.obj,read.obj
|
||||
@@ -260,10 +263,6 @@ $(INC)pm.h : $(MAKEDEFS)
|
||||
$(CD) $(UTL)
|
||||
$(MAKE)$(MAKEFLAGS) $(INC)pm.h
|
||||
@ $(CD) $(SRC)
|
||||
monstr.c : $(MAKEDEFS)
|
||||
$(CD) $(UTL)
|
||||
$(MAKE)$(MAKEFLAGS) $(SRC)monstr.c
|
||||
@ $(CD) $(SRC)
|
||||
# both vis_tab.h and vis_tab.c are made at the same time by makedefs
|
||||
$(INC)vis_tab.h : vis_tab.c
|
||||
$(TOUCH) $(INC)vis_tab.h
|
||||
@@ -290,19 +289,20 @@ $(INC)date.h : $(VERSOURCES) $(HACK_H)
|
||||
$(MAKE)$(MAKEFLAGS) $(INC)date.h
|
||||
@ $(CD) $(SRC)
|
||||
|
||||
# special targets
|
||||
# special targets (monstr.c is an obsolete generated source file)
|
||||
clean :
|
||||
- if f$search("*.*;-2").nes."" then purge/Keep=2
|
||||
- if f$search("$(INC)*.*;-2").nes."" then purge/Keep=2 $(INC) /Exclude=*conf*.h
|
||||
- if f$search("*.obj").nes."" then delete *.obj;*
|
||||
- if f$search("*.h-t").nes."" then delete *.h-t;* !$(HACK_H),$(CONFIG_H)
|
||||
- if f$search("monstr.c").nes."" then delete monstr.c;*
|
||||
|
||||
spotless : clean
|
||||
- if f$search("*.*;-1).nes."" then purge
|
||||
- if f$search("$(INC)*.*;-1").nes."" then purge $(INC)
|
||||
- if f$search("$(SYSTEM)").nes."" then delete $(SYSTEM)
|
||||
- if f$search("$(GAME)").nes."" then delete $(GAME)
|
||||
- delete monstr.c;,vis_tab.c;,$(INC)vis_tab.h;,\
|
||||
- delete vis_tab.c;,$(INC)vis_tab.h;,\
|
||||
$(INC)pm.h;,$(INC)onames.h;,$(INC)date.h;
|
||||
- if f$search("tile.c").nes."" then delete tile.c;
|
||||
- if f$search("tclib.c").nes."" then delete tclib.c;
|
||||
@@ -368,7 +368,6 @@ winstat.obj : $(X11)winstat.c $(HACK_H) $(INC)winX.h
|
||||
wintext.obj : $(X11)wintext.c $(HACK_H) $(INC)winX.h $(INC)xwindow.h
|
||||
winval.obj : $(X11)winval.c $(HACK_H) $(INC)winX.h
|
||||
tile.obj : $(SRC)tile.c $(HACK_H)
|
||||
monstr.obj : monstr.c $(CONFIG_H)
|
||||
vis_tab.obj : vis_tab.c $(CONFIG_H) $(INC)vis_tab.h
|
||||
# general code
|
||||
allmain.obj : allmain.c $(HACK_H)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# NetHack Makefile (VMS) - for utility programs.
|
||||
# NetHack 3.6 Makefile.utl $NHDT-Date: 1524689428 2018/04/25 20:50:28 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.15 $
|
||||
# NetHack 3.6 Makefile.utl $NHDT-Date: 1542388602 2018/11/16 17:16:42 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.16 $
|
||||
# Copyright (c) 2011 by Robert Patrick Rankin
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
|
||||
@@ -173,8 +173,6 @@ $(INC)onames.h : $(MAKEDEFS)
|
||||
$(RUN) $(MAKEDEFS) -o
|
||||
$(INC)pm.h : $(MAKEDEFS)
|
||||
$(RUN) $(MAKEDEFS) -p
|
||||
$(SRC)monstr.c : $(MAKEDEFS)
|
||||
$(RUN) $(MAKEDEFS) -m
|
||||
# both vis_tab.h and vis_tab.c are made at the same time by makedefs -z
|
||||
$(INC)vis_tab.h : $(SRC)vis_tab.c
|
||||
$(TOUCH) $(INC)vis_tab.h
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
$ ! vms/install.com -- set up nethack 'playground'
|
||||
$! $NHDT-Date: 1524689428 2018/04/25 20:50:28 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.10 $
|
||||
$! $NHDT-Date: 1542388600 2018/11/16 17:16:40 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.11 $
|
||||
$! Copyright (c) 2016 by Robert Patrick Rankin
|
||||
$! NetHack may be freely redistributed. See license for details.
|
||||
$ !
|
||||
$ ! $NHDT-Date: 1524689428 2018/04/25 20:50:28 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.10 $
|
||||
$ ! $NHDT-Date: 1542388600 2018/11/16 17:16:40 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.11 $
|
||||
$ !
|
||||
$ ! Use vmsbuild.com to create nethack.exe, makedefs, and lev_comp *first*.
|
||||
$ !
|
||||
@@ -26,10 +26,11 @@ $ if p2.nes."" then gameuic := 'p2'
|
||||
$
|
||||
$ ! note: all filespecs contain some punctuation,
|
||||
$ ! to avoid inadvertent logical name interaction
|
||||
$ play_files = "PERM.,RECORD.,LOGFILE.,PANICLOG."
|
||||
$ play_files = "PERM.,RECORD.,LOGFILE.,XLOGFILE.,PANICLOG."
|
||||
$ help_files = "HELP.,HH.,CMDHELP.,KEYHELP.,WIZHELP.,OPTHELP.," -
|
||||
+ "HISTORY.,LICENSE."
|
||||
$ data_files = "DATA.,RUMORS.,ORACLES.,OPTIONS.,QUEST.DAT,TRIBUTE."
|
||||
$ data_files = "DATA.,RUMORS.,ORACLES.,OPTIONS.,QUEST.DAT,TRIBUTE.," -
|
||||
+ "ENGRAVE.,EPITAPH.,BOGUSMON."
|
||||
$ sysconf_file = "[.sys.vms]sysconf"
|
||||
$ guidebook = "[.doc]Guidebook.txt"
|
||||
$ invoc_proc = "[.sys.vms]nethack.com"
|
||||
@@ -88,6 +89,8 @@ $ makedefs -r !rumors.tru + rumors.fal -> rumors
|
||||
$ milestone "(oracles)"
|
||||
$ makedefs -h !oracles.txt -> oracles
|
||||
$ milestone "(dungeon preprocess)"
|
||||
$ makedefs -s
|
||||
$ milestone "(engrave, epitaph, bogusmon)"
|
||||
$ makedefs -e !dungeon.def -> dungeon.pdf
|
||||
$ milestone "(quest text)"
|
||||
$ makedefs -q !quest.txt -> quest.dat
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
$ ! vms/vmsbuild.com -- compile and link NetHack 3.6.* [pr]
|
||||
$ version_number = "3.6.2"
|
||||
$ ! $NHDT-Date: 1524689429 2018/04/25 20:50:29 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.17 $
|
||||
$ ! $NHDT-Date: 1542411224 2018/11/16 23:33:44 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.19 $
|
||||
# Copyright (c) 2018 by Robert Patrick Rankin
|
||||
# NetHack may be freely redistributed. See license for details.
|
||||
$ !
|
||||
@@ -251,7 +251,6 @@ $ makedefs -p !pm.h
|
||||
$ makedefs -o !onames.h
|
||||
$ makedefs -v !date.h
|
||||
$ milestone " (*.h)"
|
||||
$ makedefs -m !../src/monstr.c
|
||||
$ makedefs -z !../src/vis_tab.c, ../include/vis_tab.h
|
||||
$ milestone " (*.c)"
|
||||
$ set default [-.src]
|
||||
@@ -269,7 +268,7 @@ $ c_list = "allmain,apply,artifact,attrib,ball,bones,botl,cmd,dbridge,detect" -
|
||||
$ gosub compile_list
|
||||
$ c_list = "hack,hacklib,invent,light,lock,mail,makemon,mapglyph,mcastu" -
|
||||
+ ",mhitm,mhitu,minion,mklev,mkmap,mkmaze,mkobj,mkroom,mon,mondata" -
|
||||
+ ",monmove,monstr,mplayer,mthrowu,muse,music,o_init,objnam,options" -
|
||||
+ ",monmove,mplayer,mthrowu,muse,music,o_init,objnam,options" -
|
||||
+ ",pager,pickup"
|
||||
$ gosub compile_list
|
||||
$ c_list = "pline,polyself,potion,pray,priest,quest,questpgr,read" -
|
||||
|
||||
@@ -571,8 +571,6 @@ char ch;
|
||||
break;
|
||||
default:
|
||||
|
||||
// Temporary fix. Tty putstatusfield()
|
||||
|
||||
inverse = (console.current_nhattr[ATR_INVERSE] && iflags.wc_inverse);
|
||||
console.attr = (inverse) ?
|
||||
ttycolors_inv[console.current_nhcolor] :
|
||||
@@ -1666,6 +1664,12 @@ void set_cp_map()
|
||||
int count = MultiByteToWideChar(codePage, 0, &c, 1,
|
||||
&console.cpMap[i], 1);
|
||||
nhassert(count == 1);
|
||||
|
||||
// If a character was mapped to unicode control codes,
|
||||
// remap to the appropriate unicode character per our
|
||||
// code page 437 mappings.
|
||||
if (console.cpMap[i] < 32)
|
||||
console.cpMap[i] = cp437[console.cpMap[i]];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -44,3 +44,40 @@ void win10_init()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void win10_monitor_size(HWND hWnd, int * width, int * height)
|
||||
{
|
||||
HMONITOR monitor = MonitorFromWindow(hWnd, MONITOR_DEFAULTTONEAREST);
|
||||
MONITORINFO info;
|
||||
info.cbSize = sizeof(MONITORINFO);
|
||||
BOOL success = GetMonitorInfo(monitor, &info);
|
||||
nhassert(success);
|
||||
*width = info.rcMonitor.right - info.rcMonitor.left;
|
||||
*height = info.rcMonitor.bottom - info.rcMonitor.top;
|
||||
}
|
||||
|
||||
int win10_monitor_dpi(HWND hWnd)
|
||||
{
|
||||
UINT monitorDpi = 96;
|
||||
|
||||
if (gWin10.Valid) {
|
||||
monitorDpi = gWin10.GetDpiForWindow(hWnd);
|
||||
if (monitorDpi == 0)
|
||||
monitorDpi = 96;
|
||||
}
|
||||
|
||||
monitorDpi = max(96, monitorDpi);
|
||||
|
||||
return monitorDpi;
|
||||
}
|
||||
|
||||
double win10_monitor_scale(HWND hWnd)
|
||||
{
|
||||
return (double) win10_monitor_dpi(hWnd) / 96.0;
|
||||
}
|
||||
|
||||
void win10_monitor_info(HWND hWnd, MonitorInfo * monitorInfo)
|
||||
{
|
||||
monitorInfo->scale = win10_monitor_scale(hWnd);
|
||||
win10_monitor_size(hWnd, &monitorInfo->width, &monitorInfo->height);
|
||||
}
|
||||
|
||||
@@ -19,8 +19,19 @@ typedef struct {
|
||||
GetDpiForWindowProc GetDpiForWindow;
|
||||
} Win10;
|
||||
|
||||
typedef struct {
|
||||
double scale; // dpi of monitor / 96
|
||||
int width; // in pixels
|
||||
int height; // in pixels
|
||||
} MonitorInfo;
|
||||
|
||||
extern Win10 gWin10;
|
||||
|
||||
void win10_init();
|
||||
int win10_monitor_dpi(HWND hWnd);
|
||||
double win10_monitor_scale(HWND hWnd);
|
||||
void win10_monitor_size(HWND hWnd, int * width, int * height);
|
||||
void win10_monitor_info(HWND hWnd, MonitorInfo * monitorInfo);
|
||||
|
||||
#endif // WIN10_H
|
||||
|
||||
#endif // WIN10_H
|
||||
|
||||
@@ -37,9 +37,13 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/* runtime cursor display control switch */
|
||||
boolean win32_cursorblink;
|
||||
|
||||
/* globals required within here */
|
||||
HANDLE ffhandle = (HANDLE) 0;
|
||||
WIN32_FIND_DATA ffd;
|
||||
|
||||
typedef HWND(WINAPI *GETCONSOLEWINDOW)();
|
||||
static HWND GetConsoleHandle(void);
|
||||
static HWND GetConsoleHwnd(void);
|
||||
@@ -581,6 +585,25 @@ BOOL winos_font_support_cp437(HFONT hFont)
|
||||
return allFound;
|
||||
}
|
||||
|
||||
int
|
||||
windows_early_options(window_opt)
|
||||
const char *window_opt;
|
||||
{
|
||||
/*
|
||||
* If you return 2, the game will exit before it begins.
|
||||
* Return 1, to say the option parsed okay.
|
||||
* Return 0, to say the option was bad.
|
||||
*/
|
||||
|
||||
if (match_optname(window_opt, "cursorblink", 5, FALSE)) {
|
||||
win32_cursorblink = TRUE;
|
||||
return 1;
|
||||
} else {
|
||||
raw_printf(
|
||||
"-%swindows:cursorblink is the only supported option.\n");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#endif /* WIN32 */
|
||||
|
||||
/*winnt.c*/
|
||||
/*winnt.c*/
|
||||
|
||||
Reference in New Issue
Block a user