/
LIB3/
LIB3/D/ADMIN/
LIB3/D/ADMIN/OBJ/
LIB3/D/ADMIN/ROOM/W/
LIB3/D/HOME/
LIB3/D/HOME/CITY/ARENA/
LIB3/D/HOME/CITY/ITEMS/
LIB3/D/HOME/CITY/POSTOFFI/
LIB3/DOC/
LIB3/GLOBAL/SPECIAL/
LIB3/GLOBAL/VIRTUAL/
LIB3/NET/
LIB3/NET/CONFIG/
LIB3/NET/DAEMON/CHARS/
LIB3/NET/GOPHER/
LIB3/NET/INHERIT/
LIB3/NET/OBJ/
LIB3/NET/SAVE/
LIB3/NET/VIRTUAL/
LIB3/OBJ/B_DAY/
LIB3/OBJ/HANDLERS/TERM_TYP/
LIB3/PLAYERS/B/
LIB3/PLAYERS/N/
LIB3/ROOM/
LIB3/SAVE/
LIB3/SAVE/BOARDS/
LIB3/SAVE/ENVIRON/
LIB3/SAVE/POST/
LIB3/STD/COMMANDS/SHADOWS/
LIB3/STD/CREATOR/
LIB3/STD/DOM/
LIB3/STD/EFFECTS/
LIB3/STD/EFFECTS/HEALING/
LIB3/STD/EFFECTS/OTHER/
LIB3/STD/EFFECTS/POISONS/
LIB3/STD/ENVIRON/
LIB3/STD/GUILDS/
LIB3/STD/LIQUIDS/
LIB3/STD/ROOM/
LIB3/STD/TRIGGER/SHADOW/
LIB3/W/
LIB3/W/BANNOR/
LIB3/W/NEWSTYLE/
/* this is the file you use to preload things...
 * It will be added to the preload list on the maste object automaticly
 */

string *pre_load;

void    create()
{
    int     i;

    seteuid( (string)"/secure/master"->creator_file( file_name() ) );
    restore_object( file_name( this_object() ) );
    if( !pre_load )
	pre_load = ({ });
    for( i = 0; i < sizeof( pre_load ); i++ )
    {
	printf( DOMAIN + " pre_loading " + pre_load[ i ] + ".\n" );
	if( catch( call_other( pre_load[ i ], "??" ) ) )
	    call_out( "do_load", 0, pre_load[ i ] );
    }
}

/* this is so the errors get done... ;) */
void    do_load( string str )
{
    call_other( str, "??" );
}

int     add_pre_load( string str )
{
    if( member_array( str, pre_load ) == -1 )
	pre_load += ({ str });
    save_object( file_name( this_object() ) );
    return 1;
}

int     remove_pre_load( string str )
{
    int     i;

    if( (i = member_array( str, pre_load )) == -1 )
	return 0;
    pre_load = delete( pre_load, i, 1 );
    save_object( file_name( this_object() ) );
}

string *query_pre_load()
{
    return pre_load;
}