#include <lib.h>
#include <objects.h>
string *ExemptArray = ({ OBJ_SNOOPER, LIB_DOOR, LIB_ROOM, LIB_SERVER, LIB_FTP_DATA_CONN});
void reap_dummies(){
//
// destroys any dummy objects that do not
// have an environment
//
object *objects;
object *dummies;
objects = objects();
dummies = ({});
foreach(object ob in objects){
if(base_name(ob) == "/lib/std/dummy"){
dummies += ({ ob });
}
}
foreach(object dummy in dummies){
if(!environment(dummy)) dummy->eventDestruct();
}
}
varargs void reap_other(string s1){
//
// destroys any cloned objects that
// do not have an environment
//
string s2;
object *objects;
object *others;
objects = objects();
others = ({});
foreach(object ob in objects){
if(sscanf(file_name(ob),"%s#%s",s1,s2) > 0) {
if(base_name(ob) != LIB_CONNECT) others += ({ ob });
}
}
foreach(object thingy in others){
if(!userp(thingy) && !environment(thingy) &&
!inherits(LIB_SHADOW, thingy) &&
member_array(base_name(thingy), ExemptArray) == -1 ) {
thingy->eventDestruct();
}
}
}
mixed reap_list(){
//
// returns a list of cloned objects without an environment
//
string s1,s2,list;
object *objects;
object *clones;
objects = objects();
clones = ({});
list = "";
foreach(object thing in objects){
if(sscanf(file_name(thing),"%s#%s",s1,s2) > 0) {
if(!environment(thing)) clones += ({ thing });
}
}
rm("/tmp/lost_object_list.txt");
foreach(object clone in clones){
write_file("/tmp/lost_object_list.txt", file_name(clone)+"\n");
}
//write("Total size of list: "+sizeof(clones)+" lost objects.");
return this_player()->eventPage("/tmp/lost_object_list.txt");
}