/* /lib/items.c * from the Foundation II LPC Library * allows player to create dummy items for the room * created by Descartes of Borg 930616 * modified for the new inheritance and object structure 950208 */ #include <config.h> #include "items.h" private mapping Items; static void create() { Items = ([]); } int id(string str) { return (str && Items[str]); } /********* /lib/exits.c data manipulation functions **********/ string *GetId() { return keys(Items); } mapping SetItems(mapping items) { mixed *cles; int i; i = sizeof(cles = keys(items)); while(i--) { if(pointerp(cles[i])) { int j; j = sizeof(cles[i]); while(j--) items[cles[i][j]] = items[cles[i]]; map_delete(items, cles[i]); } } return (Items = items); } mixed AddItem(string item, mixed val) { if( functionp(val) || stringp(val) ) Items[item] = val; else error("Bad argument 2 to AddItem().\n"); return (Items[item]); } mapping RemoveItem(string item) { map_delete(Items, item); return Items; } mixed GetItemDescription(string item) { if( functionp(Items[item]) ) return evaluate(Items[item], item); else return Items[item]; } varargs string GetLong(string item) { int x; if( functionp(Items[item]) ) { string tmp; if( !(tmp = (string)evaluate(Items[item], item)) ) return DEFAULT_ITEM_MESSAGE; else return tmp; } else if( stringp(Items[item]) ) return Items[item]; else return DEFAULT_ITEM_MESSAGE; }