'Iu' vs unknown container contents
An inventory of unpaid items where more than one was present would show |> bag's contents N zorkmids if any of the items were inside a container whose contents aren't known. But if there was only one item (so container must be owned by hero) the 'Iu' output menu was skipped for pline and yielded |> scroll of magic mapping 133 zorkmids Force the menu display if the lone unpaid item is inside a container whose contents are unknown. I'm not sure whether a hero-owned container can have both unknown contents and an unpaid item in normal play. I managed it while trying to fix a reported problem--except I can no longer find the relevant report--where itemized shop billing also revealed unseen container contents (for any number of items, not just 1). That isn't fixed yet, but I want to get the simpler 'Iu' part out of the way.
This commit is contained in:
19
src/mkobj.c
19
src/mkobj.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 mkobj.c $NHDT-Date: 1513298759 2017/12/15 00:45:59 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.129 $ */
|
||||
/* NetHack 3.6 mkobj.c $NHDT-Date: 1518053380 2018/02/08 01:29:40 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.130 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -579,6 +579,23 @@ struct obj *otmp;
|
||||
}
|
||||
}
|
||||
|
||||
/* is 'obj' inside a container whose contents aren't known?
|
||||
if so, return the outermost container meeting that criterium */
|
||||
struct obj *
|
||||
unknwn_contnr_contents(obj)
|
||||
struct obj *obj;
|
||||
{
|
||||
struct obj *result = 0, *parent;
|
||||
|
||||
while (obj->where == OBJ_CONTAINED) {
|
||||
parent = obj->ocontainer;
|
||||
if (!parent->cknown)
|
||||
result = parent;
|
||||
obj = parent;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* Create a dummy duplicate to put on shop bill. The duplicate exists
|
||||
* only in the billobjs chain. This function is used when a shop object
|
||||
|
||||
Reference in New Issue
Block a user