inherit "/std/surface";
mapping details;
nosave string save_file;
void do_load() {
if ( save_file ) {
all_inventory( this_object() ) -> dest_me();
if ( file_size( save_file + ".o" ) > 0 ) {
unguarded((: restore_object, save_file :));
if ( sizeof( details ) ) init_dynamic_arg( details );
}
}
} /* do_load() */
void create() {
save_file = "";
details = ([ ]);
::create();
} /* create() */
int test_remove( object ob, int flag) {
if ( find_call_out( "do_save" ) == -1 )
call_out( "do_save", 0 );
return 1;
} /* test_remove() */
int test_add( object ob, int flag) {
if ( find_call_out( "do_save" ) == -1 )
call_out( "do_save", 0 );
return 1;
} /* test_add() */
void do_save() {
if ( save_file ) {
details = ([ ]);
details = query_dynamic_auto_load();
unguarded((: save_object, save_file :));
}
} /* do_save() */
void check_euid() {
if ( previous_object() )
seteuid( geteuid( previous_object() ) );
} /* check_euid() */
void set_save_file( string file ) {
save_file = file;
do_load();
} /* set_save_file() */