From: cohrs Date: Sun, 14 Jul 2002 20:17:45 +0000 (+0000) Subject: containers and objects in special level descriptions X-Git-Tag: MOVE2GIT~2633 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5d530348d44631a0eda5766361c7197d3aad3796;p=nethack containers and objects in special level descriptions On mazelike levels, containers had to be listed before their objects. But, for roomfilled levels, containers had to be listed _after_ the objects. All our current levels that use containers with objects are mazelike, so I changed the room behavior, updating the comment in lev_comp.y to match. Other items/monsters are still processed in reverse on roomfilled special levels, but I think this is OK. --- diff --git a/doc/fixes34.1 b/doc/fixes34.1 index c21d027b8..dee7569bc 100644 --- a/doc/fixes34.1 +++ b/doc/fixes34.1 @@ -165,6 +165,7 @@ in some situations, if hero stood still, a hostile dwarf would switch back and forth between weapon and pick-axe and never move uncontrolled teleports did not handle leashed pets minetown fountain warnings shouldn't prevent finding gems/coins in fountain +order of container and objects was different for mazelike and roomfilled levels Platform- and/or Interface-Specific Fixes diff --git a/src/sp_lev.c b/src/sp_lev.c index e86923d5b..5aa102742 100644 --- a/src/sp_lev.c +++ b/src/sp_lev.c @@ -1953,13 +1953,13 @@ dlb *fd; } else r->monsters = 0; - /* read the objects */ + /* read the objects, in same order as mazes */ Fread((genericptr_t) &r->nobject, 1, sizeof(r->nobject), fd); if ((n = r->nobject) != 0) { r->objects = NewTab(object, n); - while (n--) { - r->objects[(int)n] = New(object); - load_one_object(fd, r->objects[(int)n]); + for (j = 0; j < n; ++j) { + r->objects[j] = New(object); + load_one_object(fd, r->objects[j]); } } else r->objects = 0; diff --git a/util/lev_comp.y b/util/lev_comp.y index 2e872b80d..e4cb51000 100644 --- a/util/lev_comp.y +++ b/util/lev_comp.y @@ -877,7 +877,7 @@ object_detail : OBJECT_ID object_desc } | COBJECT_ID object_desc { - /* 1: is contents of next object with 2 */ + /* 1: is contents of preceeding object with 2 */ /* 2: is a container */ /* 0: neither */ tmpobj[nobj-1]->containment = 2;