-/* SCCS Id: @(#)sp_lev.c 3.5 2006/05/09 */
+/* SCCS Id: @(#)sp_lev.c 3.5 2007/04/20 */
/* Copyright (c) 1989 by Jean-Christophe Collet */
/* NetHack may be freely redistributed. See license for details. */
x = tmpdb.x; y = tmpdb.y;
get_location(&x, &y, DRY|WET);
- if (!create_drawbridge(x, y, tmpdb.dir, tmpdb.db_open))
+ typ = tmpdb.db_open;
+ if (typ == 127) typ = rn2(2); /* 0 => closed, 1 => open */
+ if (!create_drawbridge(x, y, tmpdb.dir, typ))
impossible("Cannot create drawbridge.");
}
#define yyerrok (yyerrflag=0)
#define YYRECOVERING (yyerrflag!=0)
#define YYPREFIX "yy"
-/* SCCS Id: @(#)lev_yacc.c 3.5 2000/01/17 */
+/* SCCS Id: @(#)lev_yacc.c 3.5 2007/04/20 */
/* Copyright (c) 1989 by Jean-Christophe Collet */
/* NetHack may be freely redistributed. See license for details. */
tmpdb[ndb]->db_open = 1;
else if ( yyvsp[0].i == D_CLOSED )
tmpdb[ndb]->db_open = 0;
+ else if (yyvsp[0].i == -1) /* RANDOM_TYPE */
+ tmpdb[ndb]->db_open = 127; /* random */
else
- yyerror("A drawbridge can only be open or closed!");
+ yyerror("A drawbridge can only be open, closed, or random!");
ndb++;
if (ndb >= MAX_OF_TYPE) {
yyerror("Too many drawbridges in mazepart!");
%{
-/* SCCS Id: @(#)lev_yacc.c 3.5 2000/01/17 */
+/* SCCS Id: @(#)lev_yacc.c 3.5 2007/04/20 */
/* Copyright (c) 1989 by Jean-Christophe Collet */
/* NetHack may be freely redistributed. See license for details. */
tmpdb[ndb]->db_open = 1;
else if ( $<i>7 == D_CLOSED )
tmpdb[ndb]->db_open = 0;
+ else if ($<i>7 == -1) /* RANDOM_TYPE */
+ tmpdb[ndb]->db_open = 127; /* random */
else
- yyerror("A drawbridge can only be open or closed!");
+ yyerror("A drawbridge can only be open, closed, or random!");
ndb++;
if (ndb >= MAX_OF_TYPE) {
yyerror("Too many drawbridges in mazepart!");