]> granicus.if.org Git - nethack/commit
fix for #H229
authornethack.allison <nethack.allison>
Mon, 11 Sep 2006 04:03:59 +0000 (04:03 +0000)
committernethack.allison <nethack.allison>
Mon, 11 Sep 2006 04:03:59 +0000 (04:03 +0000)
commit1cf4c373fc322c1139955874df26e8acaaa20ff9
treede41cc36244deaf4fe6bf53e1afd709e82fcda68
parent80a5f0d4ddcc93df40561c51186fb10afc41696a
fix for #H229

<Someone> wrote:
>>comments:
>>When you commit suicide with a potion of oil (lit), sometimes nethack
>>reports an `obj_is_local' error just after disclosing all the game
>>variables. This has been found in-game (don't ask) and reproduced in
>>wizard mode and in-game (start-scumming).
>
> 0) a neutral human wizard (the scrolls/spellbooks burning, potions boiling ;))
> 1) wish up 3 potions of oil (so that the 2 remaining will definitely kill you)
> 2) a'pply one of them
> 3) stand 1 square away from a wall, like "| @"
> 4) throw the lit potion into the wall (`h' in this case)
> 5) answer `yes' on all prompts.

The thrown potion of oil, which was extracted from any chain
during the throw, still had its timers attached when the call to
splatter_burning_oil() was made. If that killed the hero, a
panic would result during bones file creation (saving timers)
because (obj->where == OBJ_FREE) on the potion.

Remove the timer prior to splattering the oil inside.
doc/fixes34.4
src/dothrow.c