#if 0 // contents.c // Buddha@tmi-2 (9-27-92) // Renamed by Mobydick 11-14-92 to prevent confusion with the inheritable for // bags and other containers. // Changed ob to ({ob}) Leto, 11-94 // And thus i think i fixed it....maybe ? static mapping contents; int receive_object(object ob) { string short; short = (string)ob->query("short"); if (!contents) { contents = ([ short : ({ ob }) ]); return 1; } if (!contents[short]) { contents[short] = ({ ob }); return 1; } contents[short] += ({ ob }); return 1; } int release_object(object ob) { int i; string short, *shorts; short = (string)ob->query("short"); if (!contents) return 1; // huh? oh well, whatever. if (contents[short]) { if (sizeof(contents[short]) > 1) contents[short] -= ({ ob }); else map_delete(contents, short); return 1; } // uh oh... the object's short has changed. // but the object should still be found and removed. shorts = keys(contents); for (i=0;i<sizeof(shorts);i++) { if (member_array(ob, contents[shorts[i]]) == -1) continue; if (sizeof(contents[shorts[i]]) > 1) contents[shorts[i]] -= ({ ob }); else map_delete(contents, shorts[i]); return 1; } log_file("release_object", "object " + file_name(ob) + " not released" + " from " + file_name(this_object()) + "!\n"); return 1; } mapping query_contents() { return contents; } #endif