// Vault object- Radix 1996 inherit "/std/container.c"; inherit "/global/auto_load"; mixed *auto_load; string savefile; void create() { ::create(); reset_get(); } string query_savefile() { return savefile; } set_save_file(string file) { object olist; set_prevent_insert(0); savefile = file; if(!environment() || !environment()->query_vault_room()) destruct(this_object()); // die screaming auto_load = ({ }); seteuid("Root"); restore_object(savefile); seteuid("PLAYER"); if(sizeof(auto_load)) olist = load_auto_load(auto_load,this_object()); else olist = ({ }); reset_get(); environment()->add_property("vault_using",1); } void dest_me() { int i; object *olist = all_inventory(this_object()); if(!savefile || !environment() || !environment()->query_vault_room()) { destruct(this_object()); // die screaming return; } if(sizeof(olist)) auto_load = create_auto_load(olist); else auto_load = ({ }); seteuid("Root"); save_object(savefile); seteuid("PLAYER"); environment()->remove_property("vault_using"); ::dest_me(); }