From: nethack.rankin Date: Thu, 3 Nov 2005 06:15:59 +0000 (+0000) Subject: container status bits (trunk only) X-Git-Tag: MOVE2GIT~1213 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b9ae4361af2f2efa5c81addf07ce9ebfc19a53c8;p=nethack container status bits (trunk only) Couple of post-3.4.3 things: using ':' to view the contents when looting or applying a container wasn't setting its cknown flag (contents known); probing a container wasn't setting lknown flag (lock state known). --- diff --git a/src/end.c b/src/end.c index de1929d7f..73657647b 100644 --- a/src/end.c +++ b/src/end.c @@ -1,4 +1,4 @@ -/* SCCS Id: @(#)end.c 3.5 2005/03/11 */ +/* SCCS Id: @(#)end.c 3.5 2005/11/02 */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -972,6 +972,8 @@ boolean identified, all_containers; for (box = list; box; box = box->nobj) { if (Is_container(box) || box->otyp == STATUE) { + box->cknown = 1; /* we're looking at the contents now */ + if (identified) box->lknown = 1; cat = deadcat = FALSE; if (box->otyp == LARGE_BOX && box->spe == 1 && !Schroedingers_cat) { @@ -980,7 +982,6 @@ 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 */ diff --git a/src/pickup.c b/src/pickup.c index bcea28a95..08b131245 100644 --- a/src/pickup.c +++ b/src/pickup.c @@ -1,4 +1,4 @@ -/* SCCS Id: @(#)pickup.c 3.5 2005/06/02 */ +/* SCCS Id: @(#)pickup.c 3.5 2005/11/02 */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -219,6 +219,10 @@ ask_again: else if (sym == 'a') *everything = TRUE; else if (sym == ':') { simple_look(objs, here); /* dumb if objs==invent */ + /* if we just scanned the contents of a container + then mark it as having known contents */ + if (objs->where == OBJ_CONTAINED) + objs->ocontainer->cknown = 1; goto ask_again; } else if (sym == 'i') { (void) display_inventory((char *)0, TRUE); diff --git a/src/zap.c b/src/zap.c index 95297223c..822e7cbc8 100644 --- a/src/zap.c +++ b/src/zap.c @@ -1,4 +1,4 @@ -/* SCCS Id: @(#)zap.c 3.5 2005/09/20 */ +/* SCCS Id: @(#)zap.c 3.5 2005/11/02 */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -1527,6 +1527,7 @@ struct obj *obj, *otmp; /* target object has now been "seen (up close)" */ obj->dknown = 1; if (Is_container(obj) || obj->otyp == STATUE) { + obj->cknown = obj->lknown = 1; if (!obj->cobj) pline("%s empty.", Tobjnam(obj, "are")); else { @@ -1536,7 +1537,6 @@ struct obj *obj, *otmp; o->dknown = 1; /* "seen", even if blind */ (void) display_cinventory(obj); } - obj->cknown = 1; res = 1; } if (res) makeknown(WAN_PROBING);