mimics as doors on rogue level
From a bug report.5 years ago? and again today: mimics appear on the rogue level even though they're lowercase letter monsters. <Someone> notes that during level generation, mimics pretending to be closed doors are sometimes substituted for trapped actual doors. That should be avoided on the rogue level both because its doorways are always empty (enforced after the fact in extralev.c code rather than in the door making code) and because mimics aren't uppercase letter monsters (so should only ever appear there if they've travelled from another level).
This commit is contained in:
@@ -156,6 +156,7 @@ some messages which referred to "mirror" ought to have used "looking glass"
|
||||
incubi react to mirrors
|
||||
alignment of Angels was handled inconsistently
|
||||
pets capable of digging could pass through walls and stone on the Rogue level
|
||||
don't generate mimics pretending to be closed doors when making Rogue level
|
||||
avoid inappropriate "the corridor disappears" when vault guard gets killed
|
||||
avoid inappropriate "the guard calms down" if vault guard's magic corridor
|
||||
reaches a spot where gold is embedded in the rock
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* SCCS Id: @(#)mklev.c 3.5 2006/05/29 */
|
||||
/* SCCS Id: @(#)mklev.c 3.5 2009/02/21 */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -400,6 +400,13 @@ register int type;
|
||||
#else
|
||||
levl[x][y].doormask = (shdoor ? D_ISOPEN : D_NODOOR);
|
||||
#endif
|
||||
|
||||
#ifdef REINCARNATION
|
||||
/* also done in roguecorr(); doing it here first prevents
|
||||
making mimics in place of trapped doors on rogue level */
|
||||
if (Is_rogue_level(&u.uz)) levl[x][y].doormask = D_NODOOR;
|
||||
#endif
|
||||
|
||||
if(levl[x][y].doormask & D_TRAPPED) {
|
||||
struct monst *mtmp;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user