]> granicus.if.org Git - nethack/commitdiff
more follow-up for container flags
authornethack.allison <nethack.allison>
Fri, 17 Dec 2004 13:18:04 +0000 (13:18 +0000)
committernethack.allison <nethack.allison>
Fri, 17 Dec 2004 13:18:04 +0000 (13:18 +0000)
Set cknown and lknown when identifying possessions at game end.
Clear cknown and lknown when creating bones.

src/bones.c
src/end.c

index f64a383ce2ad113401a9a2badad39a9088e1d487..fd8557b9fb3e3f8cbaad16c864cb5fb17bb597e0 100644 (file)
@@ -1,4 +1,4 @@
-/*     SCCS Id: @(#)bones.c    3.4     2003/11/29      */
+/*     SCCS Id: @(#)bones.c    3.4     2004/12/17      */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985,1993. */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -84,6 +84,8 @@ boolean restore;
                        if(objects[otmp->otyp].oc_uses_known) otmp->known = 0;
                        otmp->dknown = otmp->bknown = 0;
                        otmp->rknown = 0;
+                       otmp->lknown = 0;
+                       otmp->cknown = 0;
                        otmp->invlet = 0;
                        otmp->no_charge = 0;
 
index 4a3744a837190e3f99fd4aac23a24c4099814463..c88e14c723a55f4401c7658e6838b3f6aa7734f9 100644 (file)
--- a/src/end.c
+++ b/src/end.c
@@ -1,4 +1,4 @@
-/*     SCCS Id: @(#)end.c      3.4     2004/08/23      */
+/*     SCCS Id: @(#)end.c      3.4     2004/12/17      */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -379,6 +379,8 @@ boolean taken;
                        for (obj = invent; obj; obj = obj->nobj) {
                            makeknown(obj->otyp);
                            obj->known = obj->bknown = obj->dknown = obj->rknown = 1;
+                           if (Is_container(obj))
+                               obj->cknown = obj->lknown = 1;
                        }
                        (void) display_inventory((char *)0, TRUE);
                        container_contents(invent, TRUE, TRUE);
@@ -975,6 +977,7 @@ boolean identified, all_containers;
                        if (cat) Schroedingers_cat = TRUE;
                        else deadcat = TRUE;
                        box->spe = 0;
+                       box->cknown = box->lknown = 1;
                }
                if (box->otyp == BAG_OF_TRICKS) {
                    continue;   /* wrong type of container */
@@ -988,6 +991,8 @@ boolean identified, all_containers;
                            makeknown(obj->otyp);
                            obj->known = obj->bknown =
                            obj->dknown = obj->rknown = 1;
+                           if (Is_container(obj))
+                               obj->cknown = obj->lknown = 1;
                        }
                        putstr(tmpwin, 0, doname(obj));
                    }
@@ -998,14 +1003,13 @@ boolean identified, all_containers;
                    if (all_containers)
                        container_contents(box->cobj, identified, TRUE);
                } else {
-                   if (cat || deadcat)
+                   if (cat || deadcat) {
                        pline("%s%s contains Schroedinger's %scat!",
                              (box->quan > 1) ? "One of the " : "",
                              (box->quan > 1) ? xname(box) : upstart(xname(box)),
                              (deadcat) ? "dead " : "");
-                   else
-                       pline("%s empty.", Tobjnam(box, "are"));
-                   display_nhwindow(WIN_MESSAGE, FALSE);
+                       display_nhwindow(WIN_MESSAGE, FALSE);
+                   }
                }
            }
            if (!all_containers)