fix #M63: Problem with magic lamp changing

Fix the problem From a bug report, so finding it in a bones file yielded a fully functional magic
lamp.  Fix as user suggested:  convert the lamp first.

     It also left the djinni who would normally have disappeared right after
the wish.  Water demons from fountains have that problem too.  Unfortunately
my fix is a bit buggy:  when removing the monster before granting the wish,
the player can notice.  Is there a straightforward way to display a monster
where none is present on the map?  Or do we need something comparable to the
obj->in_use flag for monsters, so that the bones code can discard particular
ones?
This commit is contained in:
nethack.rankin
2005-04-24 03:43:42 +00:00
parent e88f7cce05
commit a7da903561
4 changed files with 22 additions and 10 deletions

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)potion.c 3.5 2005/03/26 */
/* SCCS Id: @(#)potion.c 3.5 2005/04/23 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -2070,8 +2070,10 @@ register struct obj *obj;
switch (chance) {
case 0 : verbalize("I am in your debt. I will grant one wish!");
makewish();
/* bones prep: remove djinni first in case the wish
turns out to be fatal (artifact blast) */
mongone(mtmp);
makewish();
break;
case 1 : verbalize("Thank you for freeing me!");
(void) tamedog(mtmp, (struct obj *)0);