don't place hero on top of monster when arriving on level which is so full
that the monster can't be moved out of the way
have to see a divine gift in order to have it become a discovery
+honor the never-in-hell flag when selecting random monster type for corpses,
+ eggs, figurines, and statues created in Gehennom
Platform- and/or Interface-Specific Fixes
-/* SCCS Id: @(#)mkobj.c 3.5 2006/07/08 */
+/* SCCS Id: @(#)mkobj.c 3.5 2006/08/23 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
{
register struct permonst *ptr;
register int i;
+ unsigned short excludeflags;
/* Plan A: get a level-appropriate common monster */
ptr = rndmonst();
if (ptr) return(monsndx(ptr));
/* Plan B: get any common monster */
+ excludeflags = G_UNIQ | G_NOGEN | (Inhell ? G_NOHELL : G_HELL);
do {
i = rn1(SPECIAL_PM - LOW_PM, LOW_PM);
ptr = &mons[i];
- } while((ptr->geno & G_NOGEN) || (!Inhell && (ptr->geno & G_HELL)));
+ } while ((ptr->geno & excludeflags) != 0);
return(i);
}
M3_INFRAVISIBLE, CLR_RED),
#ifdef CHARON
MON("Cerberus", S_DOG,
- LVL(12, 10, 2, 20, -7), (G_HELL|G_UNIQ|1),
+ LVL(12, 10, 2, 20, -7), (G_NOGEN|G_UNIQ|G_HELL),
A(ATTK(AT_BITE, AD_PHYS, 3, 6), ATTK(AT_BITE, AD_PHYS, 3, 6),
ATTK(AT_BITE, AD_PHYS, 3, 6), NO_ATTK, NO_ATTK, NO_ATTK),
SIZ(1000, 350, MS_BARK, MZ_LARGE), MR_FIRE, MR_FIRE,