inherit "/obj/baggage";
mapping details;
nosave string save_file;
varargs void do_load( object thing ) {
if ( save_file ) {
all_inventory( this_object() ) -> dest_me();
if ( file_size( save_file + ".o" ) > 0 ) {
unguarded((: restore_object, save_file :));
if ( thing )
set_player( thing );
if ( sizeof( details ) )
init_dynamic_arg( details, 0 );
}
}
} /* do_load() */
void create() {
save_file = "";
details = ([ ]);
::create();
} /* create() */
int test_remove( object thing, int flag, mixed dest ) {
remove_call_out( "do_save" );
if ( find_call_out( "do_save" ) == -1 )
call_out( "do_save", 1 );
return ::test_remove( thing, flag, dest );
} /* test_remove() */
int test_add( object ob, int flag) {
remove_call_out( "do_save" );
if ( find_call_out( "do_save" ) == -1 )
call_out( "do_save", 1 );
return 1;
} /* test_add() */
void do_save() {
if ( save_file && 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() */
varargs void set_save_file( string file, object thing ) {
save_file = file;
call_out( "do_load", 0, thing );
} /* set_save_file() */
/**
* This method returns the current save file for the object.
* @return the current save file
*/
string query_save_file() {
return save_file;
} /* query_save_file() */