]> granicus.if.org Git - nethack/commit
Schroedinger's Cat
authorPatR <rankin@nethack.org>
Wed, 21 Nov 2018 11:10:49 +0000 (03:10 -0800)
committerPatR <rankin@nethack.org>
Wed, 21 Nov 2018 11:10:49 +0000 (03:10 -0800)
commit2beb36fc61ccbfab12bb483134bcece9e2718917
treecae75bc2e8cb062370d7758d269fe4dc9e671251
parent03ef9da591bf188f020fcaf6f24863c5287ebba6
Schroedinger's Cat

If hero was carrying Schroedinger's Box at end of game, disclosing
inventory converted it into an ordinary box.  That interferred with
subsequent disclosure when writing DUMPLOG, which saw an empty box
if inventory had been shown or the special box with newly-determined
contents if not.  I tried a couple of ways to fix it and decided
that redoing it was better in the long run.

Schroedinger's box is still flagged with box->spe = 1, but instead
of having that affect the box's weight, now there is always a cat
corpse in the box.  When opened, that will already be in place for
a dead cat or be discarded for a live one, but the weight will be
standard for container+contents and when box->cknown is set it will
always be "containing 1 item" (which might turn out to be a monster).

Some temporary code fixes up old save/bones files to stay compatible.

TODO:  food detection used to skip Schroedinger's Box; now it will
always find a corpse, so some fixup like the ridiculous probing code
is needed.
doc/fixes36.2
include/extern.h
src/end.c
src/makemon.c
src/mkobj.c
src/pickup.c
src/restore.c
src/zap.c