]> granicus.if.org Git - nethack/commitdiff
high priest extinction
authorPatR <rankin@nethack.org>
Fri, 19 May 2017 23:51:05 +0000 (16:51 -0700)
committerPatR <rankin@nethack.org>
Fri, 19 May 2017 23:51:05 +0000 (16:51 -0700)
This issue has been around for a while but wasn't noticable to players
until some post-3.6.0 tweaking of end of game disclosure.  When testing
the DUMPLOG artifact_score fix, I level teleported to the Astral Plane
and performed a cheat ascension.  Final disclosure listed high priests
as extinct.  Same thing would happen after visiting Moloch's Sanctum
instead.  (The latter didn't interfere with creating the Astral high
priests if you got that far, just as creation of the first one there
didn't prevent the other two.)

I forget why high priests are flagged as unique (something I think
I'm responisble for...), but they shouldn't share unique's setting of
extinct during monster creation.  (They could be set that way after 4
are created, but this fix doesn't do that.  It just treats them like
ordinary monsters so you'd need 127 or 255 or some such to make them
become extinct.  Unlike other creatures with a special creation limit,
high priests can be produced when aligned priests gain experience--an
event that I don't recall ever noticing happen.)

doc/fixes36.1
src/makemon.c

index 456defcf85428dd44957aa3175b18bf6c1329924..0c8a42b91ee310f2407c50efb43b32a7c13b9988 100644 (file)
@@ -424,6 +424,9 @@ minor ^X/enlightenment bugs: grammar when poly'd into '1 hit dice' critter,
        missing punctuation for "You entered the dungeon N turns ago"
 when configured with DUMPLOG enabled, artifacts were counted twice towards
        final score
+once Moloch's Sanctum (or Astral Plane via wizard mode level teleport direct
+       to end-game) was entered, end of game disclosure would reveal that
+       high priests had been incorrectly flagged as extinct
 
 
 Platform- and/or Interface-Specific Fixes
index c60adfa1f9b8ce99aaf250584019899d6de2208e..232e9d9a9b171b9c58b36f138d336ade6688838b 100644 (file)
@@ -1,4 +1,4 @@
-/* NetHack 3.6 makemon.c       $NHDT-Date: 1450451931 2015/12/18 15:18:51 $  $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.106 $ */
+/* NetHack 3.6 makemon.c       $NHDT-Date: 1495237801 2017/05/19 23:50:01 $  $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.116 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -903,7 +903,7 @@ boolean ghostly;
     result = (((int) mvitals[mndx].born < lim) && !gone) ? TRUE : FALSE;
 
     /* if it's unique, don't ever make it again */
-    if (mons[mndx].geno & G_UNIQ)
+    if ((mons[mndx].geno & G_UNIQ) && mndx != PM_HIGH_PRIEST)
         mvitals[mndx].mvflags |= G_EXTINCT;
 
     if (mvitals[mndx].born < 255 && tally