diff --git a/doc/fixes37.0 b/doc/fixes37.0 index 1d1f74d7f..19f8eeb93 100644 --- a/doc/fixes37.0 +++ b/doc/fixes37.0 @@ -1,4 +1,4 @@ -NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.360 $ $NHDT-Date: 1606011660 2020/11/22 02:21:00 $ +NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.361 $ $NHDT-Date: 1606033928 2020/11/22 08:32:08 $ General Fixes and Modified Features ----------------------------------- @@ -300,9 +300,9 @@ since ki-rin look quite a bit like unicorns, make them be more like one: allow them to use their own horn to cure themselves; remove M1_ANIMAL, change MS_NEIGH to MS_SPELL, add MR_POISON, use horse body parts; they're still 'A' rather than 'u' and don't care about gems -wand or scroll of create monster that makes a new monster which can be seen - or sensed becomes discovered but was doing so even for a concealed - mimic seen as furniture or an object +wand/scroll of create monster or bag of tricks that makes a new monster which + can be seen or sensed becomes discovered, but was doing so even for a + concealed mimic seen as furniture or an object 'showscore' could be used to determine how much gold was inside a container whose contents were unknown diff --git a/src/makemon.c b/src/makemon.c index 67cc83452..11725b94c 100644 --- a/src/makemon.c +++ b/src/makemon.c @@ -1,4 +1,4 @@ -/* NetHack 3.7 makemon.c $NHDT-Date: 1605927392 2020/11/21 02:56:32 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.179 $ */ +/* NetHack 3.7 makemon.c $NHDT-Date: 1606033928 2020/11/22 08:32:08 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.180 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Robert Patrick Rankin, 2012. */ /* NetHack may be freely redistributed. See license for details. */ @@ -1502,9 +1502,12 @@ boolean neverask; if (!mptr && u.uinwater && enexto(&c, x, y, &mons[PM_GIANT_EEL])) x = c.x, y = c.y; - mon = makemon(mptr, x, y, NO_MM_FLAGS); - if (mon && canspotmon(mon) && (M_AP_TYPE(mon) == M_AP_NOTHING - || M_AP_TYPE(mon) == M_AP_MONSTER)) + if ((mon = makemon(mptr, x, y, NO_MM_FLAGS)) == 0) + continue; /* try again [should probably stop instead] */ + + if ((canseemon(mon) && (M_AP_TYPE(mon) == M_AP_NOTHING + || M_AP_TYPE(mon) == M_AP_MONSTER)) + || sensemon(mon)) known = TRUE; } return known; @@ -2360,7 +2363,9 @@ int *seencount; /* secondary output */ mtmp = makemon((struct permonst *) 0, u.ux, u.uy, NO_MM_FLAGS); if (mtmp) { ++moncount; - if (canspotmon(mtmp)) + if ((canseemon(mtmp) && (M_AP_TYPE(mtmp) == M_AP_NOTHING + || M_AP_TYPE(mtmp) == M_AP_MONSTER)) + || sensemon(mtmp)) ++seecount; } } while (--creatcnt > 0);