]> granicus.if.org Git - nethack/commitdiff
undead turning of ghost on bones level
authornethack.allison <nethack.allison>
Wed, 19 Feb 2003 04:31:46 +0000 (04:31 +0000)
committernethack.allison <nethack.allison>
Wed, 19 Feb 2003 04:31:46 +0000 (04:31 +0000)
<email deleted>
Newsgroups: rec.games.roguelike.nethack
Subject: Re: Other ways to destroy the Amulet

<Someone> wrote:
>>> Zapped undead turning at his _corpse_, which brought the corpse
>>> back to life and also destroyed the ghost. The revived
>>> character was not carrying anything.
>>
>> Hmm, didn't the Amulet fall to the floor like when you genocide
>> something that's carrying something?
>
> Nope.
>
> That's because undead turning does mongone(ghost). The mongone
> function destroys the inventory of the monster:
> discard_minvent(mdef); /* release monster's inventory */
>
> Whereas genocided monsters are removed with mondead, which calls
> m_detach, which calls relobj, which drops the monster's inventory
> on the floor.

doc/fixes34.1
src/zap.c

index dfcb17e09963b339d6a5b3171a783acb5c825b2a..4b84dc4e4b304646a602627a38d09007b19d7835 100644 (file)
@@ -391,6 +391,8 @@ wielding Werebane prevents catching lycanthropy via monster attack (but not
 character inflicted with lycanthropy is vulnerable to Werebane when in
        human/elf/&c form as well as when in beast form
 shopkeeper could get angry without remembering the customer name
+any object held by ghost during recorporealization would cease to exist
+       including the Amulet of Yendor
 
 
 Platform- and/or Interface-Specific Fixes
index 00ee4cba1cb29c0cab43f0abaff29dbc3b4d33eb..5522a6ad62c85594af4d0ccdc2b1ec89676d1275 100644 (file)
--- a/src/zap.c
+++ b/src/zap.c
@@ -651,7 +651,7 @@ register struct obj *obj;
                                    if (canseemon(ghost))
                                        pline("%s is suddenly drawn into its former body!",
                                                Monnam(ghost));
-                                   mongone(ghost);
+                                   mondead(ghost);
                                    recorporealization = TRUE;
                                    newsym(x2, y2);
                            }