/* * This is all the autoloading stuff. * please don't remove again - lynscar. */ void add_preload(string file) { if (previous_object() == this_object() || query_lord(geteuid(previous_object()))) { if (!preload) { preload = ({ file }); } else if (member_array(file, preload) == -1) { preload += ({ file }); } save_object("/secure/master",1); } } /* add_preload() */ void remove_preload(string file) { int i; if (previous_object() == this_object() || query_lord(geteuid(previous_object()))) { if (preload) { i = member_array(file, preload); if (i >= 0) { preload = preload[0 .. i - 1] + preload[i + 1 .. 1000]; save_object("/secure/master",1); } } } } /* remove_preload() */ void add_call_out_preload(string file) { if (previous_object() == this_object() || query_lord(geteuid(previous_object()))) { if (!call_out_preload) { call_out_preload = ({ file }); } else if (member_array(file, call_out_preload) == -1) { call_out_preload += ({ file }); } save_object("/secure/master",1); } } /* add_call_out_preload() */ void remove_call_out_preload(string file) { int i; if (previous_object() == this_object() || query_lord(geteuid(previous_object()))) { if (call_out_preload) { i = member_array(file, call_out_preload); if (i >= 0) { call_out_preload = delete(call_out_preload, i, 1); save_object("/secure/master",1); } } } } /* remove_call_out_preload() */ void load_object() { if (!done) { done = 1; seteuid(ROOT); restore_object("/secure/master",1); //create2(); } } /* load_object() */ string *epilog() { int i; if (!preload) { load_object(); } for (i=0;i<sizeof(call_out_preload);i++) call_out("preload", 2, call_out_preload[i]); // Wonderflug 96, Making secure return ( preload ? preload + ({ }) : ({ }) ); } /* epilog() */ void preload(string file) { int e; printf("Preloading: "+file+".\n"); if ((e = catch(file->dummy()))) { printf(" "+e+"\n"); } } /* preload() */