lpc4/lib/
lpc4/lib/doc/efun/
lpc4/lib/doc/lfun/
lpc4/lib/doc/operators/
lpc4/lib/doc/simul_efuns/
lpc4/lib/doc/types/
lpc4/lib/etc/
lpc4/lib/include/
lpc4/lib/include/arpa/
lpc4/lib/obj/d/
lpc4/lib/save/
lpc4/lib/secure/
lpc4/lib/std/
lpc4/lib/std/living/
inherit "/inherit/property";

list items=([]);
string name,long_desc;

int id(string s) { return !!items[s]; }
string query_name() { return name; }

string query_long(string item)
{
  mixed ret;
  if(item)
  {
    ret=items[item];
    if(stringp(ret)) return ret;
  }
  return long_desc;
}

mapping query_items() { return items; }

void add_item(mixed name,mixed desc)
{
  if(listp(name)) name=indices(name);
  if(pointerp(name))
    return map_array(name,add_item,desc);
  items[name]=desc;
}

void add_name(string n){ add_item(n,1); }

void set_name(string n)
{
  name=n;
  add_name(n);
}


void set_long(string s) { long_desc=s; }
void query_long_desc() { return long_desc; }

void long(string item)
{
  string s;
  s=query_long(item);
  if(s) write(sprintf("%-=78s\n",s));
}

string short_desc;
string short() { return short_desc; }
void set_short(string s) { short_desc=s; }
int query_get() { return !query_property("no_get"); }
int query_drop() { return !query_property("no_drop"); }