/* /lib/daemon.c
* From Dead Souls Object Library
* Standard inheritable for daemon objects
* created by Descartes of Borg 940211
* Version: @(#) daemon.c 1.4@(#)
* Last modified: 96/12/16
*/
#include <lib.h>
#include <privs.h>
inherit LIB_CLEAN;
static private string SaveFile = 0;
/* ******************** daemon.c attributes ********************** */
string GetSaveFile(){
return SaveFile;
}
static string SetSaveFile(string str){
return (SaveFile = str);
}
/* ********************* daemon.c events ************************* */
int eventDestruct(){
//tc(identify(this_object())+" eventDestruct() stack: \n"+get_stack(),"red");
if( !master()->valid_apply(({ PRIV_ASSIST })) ){
return 0;
}
return clean::eventDestruct();
}
varargs int eventRestore(int do_not_zero_out){
if( !SaveFile ){
return 0;
}
if( unguarded((: file_exists(SaveFile + __SAVE_EXTENSION__) :)) ){
return unguarded((: restore_object, SaveFile, do_not_zero_out :));
}
else {
return 1;
}
}
varargs int eventSave(int save_zero_values){
if( !SaveFile ){
return 0;
}
return unguarded((: save_object, SaveFile, save_zero_values :));
}
/* ******************* daemon.c driver applies ********************* */
static void create(){
eventRestore(1);
}