-# SCCS Id: @(#)Valkyrie.des 3.5 2002/05/02
+# SCCS Id: @(#)Valkyrie.des 3.5 2007/08/01
# Copyright (c) 1989 by Jean-Christophe Collet
# Copyright (c) 1991-2 by M. Stephenson
# NetHack may be freely redistributed. See license for details.
#
MAZE: "Val-strt",' '
FLAGS: noteleport,hardfloor
+INIT_MAP: '.', 'I', true, true, lit, false, true
GEOMETRY:center,center
MAP
IIIIIIPPPIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
MAZE: "Val-loca",' '
FLAGS: hardfloor
-INIT_MAP: '.' , 'I' , true , true , lit , false
+INIT_MAP: '.', 'I', true, true, lit, false, true
GEOMETRY:center,center
MAP
PPPP.... ....PPPPP.
#
MAZE: "Val-goal", 'L'
-INIT_MAP: '.' , 'L' , true , true , lit , false
+INIT_MAP: '.', 'L', true, true, lit, false, true
GEOMETRY:center,center
MAP
.L............................LLLLL
# Non diggable walls
NON_DIGGABLE:(00,00,34,16)
# Drawbridges
-DRAWBRIDGE:(17,02),south,open
+DRAWBRIDGE:(17,02),south,random
DRAWBRIDGE:(17,14),north,open
# Objects
OBJECT:'(',"crystal ball",(17,08),blessed,5,"The Orb of Fate"
#
MAZE: "Val-fila" , 'I'
-INIT_MAP: '.' , 'I' , true , true , lit, false
+INIT_MAP: '.', 'I', true, true, lit, false, true
NOMAP
#
STAIR: random, up
TRAP: random, random
MAZE: "Val-filb" , 'L'
-INIT_MAP: '.' , 'L' , true , true , lit, false
+INIT_MAP: '.', 'L', true, true, lit, false, true
NOMAP
#
STAIR: random, up
violation of illiteracy conduct
using F to force an attack towards a boulder gave "you attack thin air"
random "treasure drop" upon monster's death bypassed dropping side-effects
+melted ice on Valkyrie quest should be pool, not moat
Platform- and/or Interface-Specific Fixes
-/* SCCS Id: @(#)sp_lev.h 3.5 1996/05/08 */
+/* SCCS Id: @(#)sp_lev.h 3.5 2007/08/01 */
/* Copyright (c) 1989 by Jean-Christophe Collet */
/* NetHack may be freely redistributed. See license for details. */
char fg, bg;
boolean smoothed, joined;
xchar lit, walled;
+ boolean icedpools; /* for ice locations: ICED_POOL vs ICED_MOAT */
} lev_init;
typedef struct {
-/* SCCS Id: @(#)mkmap.c 3.5 2007/02/09 */
+/* SCCS Id: @(#)mkmap.c 3.5 2007/08/01 */
/* Copyright (c) J. C. Collet, M. Stephenson and D. Cohrs, 1992 */
/* NetHack may be freely redistributed. See license for details. */
STATIC_DCL void FDECL(pass_three,(SCHAR_P,SCHAR_P));
STATIC_DCL void NDECL(wallify_map);
STATIC_DCL void FDECL(join_map,(SCHAR_P,SCHAR_P));
-STATIC_DCL void FDECL(finish_map,(SCHAR_P,SCHAR_P,BOOLEAN_P,BOOLEAN_P));
+STATIC_DCL void FDECL(finish_map,(SCHAR_P,SCHAR_P,BOOLEAN_P,BOOLEAN_P,BOOLEAN_P));
STATIC_DCL void FDECL(remove_room,(unsigned));
void FDECL(mkmap, (lev_init *));
}
STATIC_OVL void
-finish_map(fg_typ, bg_typ, lit, walled)
+finish_map(fg_typ, bg_typ, lit, walled, icedpools)
schar fg_typ, bg_typ;
- boolean lit, walled;
+ boolean lit, walled, icedpools;
{
int i, j;
for(i = 0; i < nroom; i++)
rooms[i].rlit = 1;
}
- /* light lava even if everything's otherwise unlit */
+ /* light lava even if everything's otherwise unlit;
+ ice might be frozen pool rather than frozen moat */
for(i=1; i<COLNO; i++)
- for(j=0; j<ROWNO; j++)
+ for(j=0; j<ROWNO; j++) {
if (levl[i][j].typ == LAVAPOOL)
levl[i][j].lit = TRUE;
+ else if (levl[i][j].typ == ICE)
+ levl[i][j].icedpool = icedpools ? ICED_POOL : ICED_MOAT;
+ }
}
/*
if(join)
join_map(bg_typ, fg_typ);
- finish_map(fg_typ, bg_typ, (boolean)lit, (boolean)walled);
+ finish_map(fg_typ, bg_typ, (boolean)lit, (boolean)walled,
+ init_lev->icedpools);
/* a walled, joined level is cavernous, not mazelike -dlc */
if (walled && join) {
level.flags.is_maze_lev = FALSE;
-/* SCCS Id: @(#)sp_lev.c 3.5 2007/04/20 */
+/* SCCS Id: @(#)sp_lev.c 3.5 2007/08/01 */
/* Copyright (c) 1989 by Jean-Christophe Collet */
/* NetHack may be freely redistributed. See license for details. */
levl[x][y].horizontal = 1;
else if(levl[x][y].typ == LAVAPOOL)
levl[x][y].lit = 1;
+ else if (init_lev.init_present && levl[x][y].typ == ICE)
+ levl[x][y].icedpool = init_lev.icedpools ? ICED_POOL :
+ ICED_MOAT;
else if(levl[x][y].typ == CROSSWALL)
has_bounds = TRUE;
Map[x][y] = 1;
%{
-/* SCCS Id: @(#)lev_yacc.c 3.5 2007/04/20 */
+/* SCCS Id: @(#)lev_yacc.c 3.5 2007/08/01 */
/* Copyright (c) 1989 by Jean-Christophe Collet */
/* NetHack may be freely redistributed. See license for details. */
yyerror("Invalid foreground type for joined map.");
init_lev.lit = $11;
init_lev.walled = $13;
+ init_lev.icedpools = FALSE;
+ $$ = 1;
+ }
+ | LEV_INIT_ID ':' CHAR ',' CHAR ',' BOOLEAN ',' BOOLEAN ',' light_state ',' walled ',' BOOLEAN
+ {
+ init_lev.init_present = TRUE;
+ init_lev.fg = what_map_char((char) $3);
+ if (init_lev.fg == INVALID_TYPE)
+ yyerror("Invalid foreground type.");
+ init_lev.bg = what_map_char((char) $5);
+ if (init_lev.bg == INVALID_TYPE)
+ yyerror("Invalid background type.");
+ init_lev.smoothed = $7;
+ init_lev.joined = $9;
+ if (init_lev.joined &&
+ init_lev.fg != CORR && init_lev.fg != ROOM)
+ yyerror("Invalid foreground type for joined map.");
+ init_lev.lit = $11;
+ init_lev.walled = $13;
+ init_lev.icedpools = $15;
$$ = 1;
}
;