Merge branch 'master' into win32-x64-working

This commit is contained in:
nhmall
2015-05-03 09:01:46 -04:00
10 changed files with 117 additions and 75 deletions

4
Files
View File

@@ -322,6 +322,8 @@ include:
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
(file for tiles support copied from win/share at compile time)
tile.h
(files for win32 that are moved into include at compile time)
win32api.h
@@ -342,6 +344,8 @@ 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
(file generated for unix at compile time if various tiles utilities are built)
tiletxt.c
(files generated for win32 at compile time)
uudecode.exe

View File

@@ -35,6 +35,15 @@ MAP
....................................PP...PP.................................
....................................PP....PP................................
ENDMAP
# the forest beyond the river
REPLACE_TERRAIN:(37,0,59,19),'.','T', 5%
REPLACE_TERRAIN:(60,0,64,19),'.','T', 10%
REPLACE_TERRAIN:(65,0,75,19),'.','T', 20%
# guarantee a path and free spot for the portal
TERRAIN:(randline (37,7),(62,02),7), '.'
TERRAIN:(62,02),'.'
# Dungeon Description
REGION:(00,00,75,19),lit,"ordinary"
REGION:(09,05,11,05),unlit,"ordinary"

View File

@@ -115,25 +115,25 @@ FLAGS: hardfloor
GEOMETRY:center,center
MAP
............. .......................................................
.............. .............}}}}}}}.}}}}}}}}}}}}}}}}}}}.}}}}}}}.......
.............. .............}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}.......
.............. ..............}.................................}.......
.............. ..............}.---------S---------------------.}.......
.............. ..............}.-------------------------------.}.......
............... .........C....}.|.............................|.}.......
............... ..........C....}.|.---------------------------.|.}.......
............... .........CCC.....|.|.........................|.|.........
................ ....C....CCC...}.|.|.---S-------------------.|.|.}.......
............... .........CCC...}.|.|.........................|.|.}.......
................ ....C....CCC...}.|.|.-----------------------.|.|.}.......
.......C..C..... .....C....CCC...}.|.|.|......+.......+......|.|.|.}.......
.............C..CC.....C....CCC...}.|.|.|......|-------|......|.|.|.}.......
................ ....C....CCC...}.|.|.|......|.......S......|.|.|.}.......
................ ....C....CCC...}.|.|.|......|.......|......|.|.|.}.......
......C..C..... ....C....CCC...}.|.|.|......|-------|......|.|.|.}.......
............C.. ...C....CCC...}.|.|.|......+.......+......|.|.|.}.......
........C...... ....C....CCC...}.|.|.-----------------------.|.|.}.......
....C......C... ........CCC.....|.|.........................|.|.........
......C..C.... .........C....}.|.--------------------S------.|.}.......
....C......C... ........CCC...}.|.|.........................|.|.}.......
......C..C.... .........C....}.|.---------------------------.|.}.......
.............. .........C....}.|.............................|.}.......
............. ..............}.-------------------------------.}.......
............. .............}.................................}.......
............. .............}}}}}}}.}}}}}}}}}}}}}}}}}}}.}}}}}}}.......
............. .............}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}.......
............. .......................................................
ENDMAP
@@ -143,18 +143,26 @@ REPLACE_TERRAIN:(34,1,68,19), '}', '.', 2%
# Dungeon Description
REGION:(00,00,75,20),lit,"ordinary"
REGION:(37,04,65,16),unlit,"ordinary"
REGION:(41,08,46,12),lit,"ordinary"
REGION:(56,08,61,12),lit,"ordinary"
REGION:(37,04,65,16),unlit,"ordinary",filled,irregular {
ROOMDOOR:true,closed,north|south|west|east,random
}
REGION:(39,06,63,14),unlit,"ordinary",filled,irregular {
ROOMDOOR:true,closed,north|south|west|east,random
}
REGION:(41,08,46,12),lit,"ordinary",filled,irregular {
ROOMDOOR:true,closed,north|south|west,random
}
REGION:(56,08,61,12),lit,"ordinary",filled,irregular {
ROOMDOOR:true,closed,north|south|east,random
}
REGION:(48,08,54,08),unlit,"ordinary"
REGION:(48,12,54,12),unlit,"ordinary"
REGION:(48,10,54,10),unlit,"ordinary"
REGION:(48,10,54,10),unlit,"ordinary",filled,irregular {
ROOMDOOR:true,closed,north|south|west|east,random
}
# Doors
DOOR:locked,(45,03)
DOOR:locked,(43,07)
DOOR:locked,(58,15)
DOOR:locked,(55,10)
DOOR:locked,(55,08)
DOOR:locked,(55,12)
DOOR:locked,(47,08)

View File

@@ -162,7 +162,7 @@ MAP
|..---|.}--.--}.|..|.......|.
|.....|.}}---}}.|..|.......|.
|.....S.}}}}}}}.|..|.......|.
|.....|.........|..S.......|.
|.....|.........|..|.......|.
----------------------------.
ENDMAP
STAIR:levregion(01,00,79,20),(0,0,28,12),up
@@ -175,9 +175,10 @@ REGION:(07,03,15,11),unlit,"morgue",unfilled
REGION:(17,06,18,11),unlit,"beehive"
# make the entry chamber a real room; it affects monster arrival;
# `unfilled' is a kludge to force an ordinary room to remain a room
REGION:(20,06,26,11),unlit,"ordinary",unfilled
REGION:(20,06,26,11),unlit,"ordinary",unfilled {
ROOMDOOR:true, closed, north|west, random
}
DOOR:closed,(18,05)
DOOR:closed,(19,11)
LADDER:(11,07),up
# Non diggable walls
# Walls inside the moat stay diggable

View File

@@ -1111,7 +1111,30 @@ register const char *let,*word;
}
return(allownone ? &zeroobj : (struct obj *) 0);
}
if(ilet == def_oc_syms[COIN_CLASS].sym) {
/* since gold is now kept in inventory, we need to do processing for
select-from-invent before checking whether gold has been picked */
if (ilet == '?' || ilet == '*') {
char *allowed_choices = (ilet == '?') ? lets : (char *)0;
long ctmp = 0;
if (ilet == '?' && !*lets && *altlets)
allowed_choices = altlets;
ilet = display_pickinv(allowed_choices, TRUE,
allowcnt ? &ctmp : (long *)0);
if (!ilet) continue;
if (allowcnt && ctmp >= 0) {
cnt = ctmp;
if (!cnt) prezero = TRUE;
allowcnt = 2;
}
if (ilet == '\033') {
if (flags.verbose)
pline1(Never_mind);
return (struct obj *)0;
}
/* they typed a letter (not a space) at the prompt */
}
if (ilet == def_oc_syms[COIN_CLASS].sym) {
if (!usegold) {
You("cannot %s gold.", word);
return(struct obj *)0;
@@ -1124,43 +1147,21 @@ register const char *let,*word;
*/
if (allowcnt == 2 && cnt <= 0) {
if (cnt < 0 || !prezero)
pline_The(
"LRS would be very interested to know you have that much.");
pline_The(
"LRS would be very interested to know you have that much.");
return (struct obj *)0;
}
}
if(ilet == '?' || ilet == '*') {
char *allowed_choices = (ilet == '?') ? lets : (char *)0;
long ctmp = 0;
if (ilet == '?' && !*lets && *altlets)
allowed_choices = altlets;
ilet = display_pickinv(allowed_choices, TRUE,
allowcnt ? &ctmp : (long *)0);
if(!ilet) continue;
if (allowcnt && ctmp >= 0) {
cnt = ctmp;
if (!cnt) prezero = TRUE;
allowcnt = 2;
}
if(ilet == '\033') {
if(flags.verbose)
pline1(Never_mind);
return((struct obj *)0);
}
/* they typed a letter (not a space) at the prompt */
}
if(allowcnt == 2 && !strcmp(word,"throw")) {
if (allowcnt == 2 && !strcmp(word,"throw")) {
/* permit counts for throwing gold, but don't accept
* counts for other things since the throw code will
* split off a single item anyway */
if (ilet != def_oc_syms[COIN_CLASS].sym)
allowcnt = 1;
if(cnt == 0 && prezero) return((struct obj *)0);
if(cnt > 1) {
You("can only throw one item at a time.");
continue;
allowcnt = 1;
if (cnt == 0 && prezero) return (struct obj *)0;
if (cnt > 1) {
You("can only throw one item at a time.");
continue;
}
}
context.botl = 1; /* May have changed the amount of money */

View File

@@ -1,5 +1,5 @@
# Makefile for NetHack's utility programs.
# NetHack 3.5 Makefile.utl $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$
# NetHack 3.5 Makefile.utl $NHDT-Date: 1430639195 2015/05/03 07:46:35 $ $NHDT-Branch: master $:$NHDT-Revision: 1.19 $
# NetHack 3.5 Makefile.utl $Date: 2012/01/10 17:47:30 $ $Revision: 1.18 $
# Root of source tree:
@@ -325,8 +325,13 @@ xpm2img.ttp: xpm2img.o bitmfile.o
tile2beos: tile2beos.o $(TEXT_IO)
$(CC) $(LFLAGS) -o tile2beos tile2beos.o $(TEXT_IO) -lbe
tilemap: ../win/share/tilemap.c $(HACK_H)
$(CC) $(CFLAGS) $(LFLAGS) -o tilemap ../win/share/tilemap.c $(LIBS)
#--compiling and linking in one step leaves extra debugging files (in their
# own subdirectories!) on OSX; compile and link separately to suppress
# that without mucking about with extra OS-specific CFLAGS and/or LFLAGS
#tilemap: ../win/share/tilemap.c $(HACK_H)
# $(CC) $(CFLAGS) $(LFLAGS) -o tilemap ../win/share/tilemap.c $(LIBS)
tilemap: tilemap.o
$(CC) $(LFLAGS) -o tilemap tilemap.o $(LIBS)
../src/tile.c: tilemap
./tilemap
@@ -334,9 +339,17 @@ tilemap: ../win/share/tilemap.c $(HACK_H)
cp ../win/share/tile.h ../include/tile.h
tiletext.o: ../win/share/tiletext.c $(CONFIG_H) ../include/tile.h
$(CC) $(CFLAGS) -c ../win/share/tiletext.c
tiletxt.o: ../win/share/tilemap.c $(HACK_H)
$(CC) $(CFLAGS) -c -DTILETEXT ../win/share/tilemap.c
mv tilemap.o tiletxt.o
tiletxt.c: ./Makefile
echo '/* alternate compilation for tilemap.c to create tiletxt.o' > tiletxt.c
echo ' that does not rely on "cc -c -o tiletxt.o tilemap.c"' >> tiletxt.c
echo ' since many pre-POSIX compilers did not support that */' >> tiletxt.c
echo '#define TILETEXT' >> tiletxt.c
echo '#include "../win/share/tilemap.c"' >> tiletxt.c
echo '/*tiletxt.c*/' >> tiletxt.c
tiletxt.o: tiletxt.c ../win/share/tilemap.c $(HACK_H)
$(CC) $(CFLAGS) -c tiletxt.c
tilemap.o: ../win/share/tilemap.c $(HACK_H)
$(CC) $(CFLAGS) -c ../win/share/tilemap.c
gifread.o: ../win/share/gifread.c $(CONFIG_H) ../include/tile.h
$(CC) $(CFLAGS) -c ../win/share/gifread.c
@@ -402,7 +415,7 @@ clean:
spotless: clean
-rm -f lev_lex.c lev_yacc.c dgn_lex.c dgn_yacc.c
-rm -f ../include/lev_comp.h ../include/dgn_comp.h
-rm -f ../include/tile.h
-rm -f ../include/tile.h tiletxt.c
-rm -f makedefs lev_comp dgn_comp recover dlb
-rm -f gif2txt txt2ppm tile2x11 tile2img.ttp xpm2img.ttp tilemap

20
util/.gitignore vendored
View File

@@ -1,13 +1,19 @@
dgn_yacc.c
dgn_lex.c
makedefs
tilemap
dgn_comp
dgn_yacc.c
lev_lex.c
lev_yacc.c
tile2x11
tiletxt.c
makedefs
dgn_comp
lev_comp
tileedit
tile2bmp
dlb
recover
tilemap
tileedit
tile2x11
tile2bmp
tile2beos
gif2txt
txt2ppm
tile2img.ttp
xpm2ppm.ttp

View File

@@ -1,10 +1,10 @@
/* $NHDT-Date: 1430640199 2015/05/03 08:03:19 $ $NHDT-Branch: master $:$NHDT-Revision: 1.3 $ */
/* $Date: 2002/03/17 20:02:47 $ $Revision: 1.2 $ */
/*
* Convert the given input files into an output file that is expected
* by nethack.
*
* $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$
* $Date: 2002/03/17 20:02:47 $ $Revision: 1.2 $
*
* Assumptions:
* + Two dimensional byte arrays are in row order and are not padded
* between rows (x11_colormap[][]).
@@ -28,7 +28,7 @@ static unsigned char
pix_to_colormap(pix)
pixel pix;
{
int i;
unsigned i;
for (i = 0; i < header.ncolors; i++) {
if (pix.r == ColorMap[CM_RED][i] &&
@@ -80,9 +80,9 @@ convert_tiles(tb_ptr, total)
static void
merge_text_colormap()
{
int i, j;
unsigned i, j;
for (i = 0; i < colorsinmap; i++) {
for (i = 0; i < (unsigned)colorsinmap; i++) {
for (j = 0; j < header.ncolors; j++)
if (x11_colormap[j][CM_RED] == ColorMap[CM_RED][i] &&
x11_colormap[j][CM_GREEN] == ColorMap[CM_GREEN][i] &&

View File

@@ -1,4 +1,4 @@
/* NetHack 3.5 tilemap.c $NHDT-Date: 1429464668 2015/04/19 17:31:08 $ $NHDT-Branch: master $:$NHDT-Revision: 1.18 $ */
/* NetHack 3.5 tilemap.c $NHDT-Date: 1430621065 2015/05/03 02:44:25 $ $NHDT-Branch: master $:$NHDT-Revision: 1.19 $ */
/* SCCS Id: @(#)tilemap.c 3.5 2000/06/04 */
/* NetHack may be freely redistributed. See license for details. */
@@ -177,7 +177,7 @@ int set, entry;
i = entry - tilenum;
if (i < (MAXEXPCHARS * EXPL_MAX)) {
if (set == OTH_GLYPH) {
static char *explosion_types[] = { /* hack.h */
static const char *explosion_types[] = { /* hack.h */
"dark", "noxious", "muddy", "wet",
"magical", "fiery", "frosty"
};

View File

@@ -1,4 +1,4 @@
/* NetHack 3.5 tiletext.c $NHDT-Date: 1429484196 2015/04/19 22:56:36 $ $NHDT-Branch: master $:$NHDT-Revision: 1.6 $ */
/* NetHack 3.5 tiletext.c $NHDT-Date: 1430640200 2015/05/03 08:03:20 $ $NHDT-Branch: master $:$NHDT-Revision: 1.7 $ */
/* NetHack 3.5 tiletext.c $Date: 2009/05/06 10:59:03 $ $Revision: 1.4 $ */
/* SCCS Id: @(#)tiletext.c 3.5 1999/10/24 */
/* NetHack may be freely redistributed. See license for details. */
@@ -286,8 +286,8 @@ const char *type;
/* Fill placeholder with noise */
if ( !placeholder_init ) {
placeholder_init++;
for ( i=0; i<sizeof(placeholder); i++ )
((char*)placeholder)[i]=i%256;
for (i = 0; i < (int)sizeof placeholder; i++)
((char *)placeholder)[i] = i % 256;
}
read_text_colormap(tile_file);