gurba-0.40/
gurba-0.40/bin/
gurba-0.40/lib/
gurba-0.40/lib/cmds/guild/fighter/
gurba-0.40/lib/cmds/monster/
gurba-0.40/lib/cmds/race/catfolk/
gurba-0.40/lib/cmds/race/dwarf/
gurba-0.40/lib/cmds/verb/
gurba-0.40/lib/daemons/data/
gurba-0.40/lib/data/boards/
gurba-0.40/lib/data/messages/
gurba-0.40/lib/data/players/
gurba-0.40/lib/design/
gurba-0.40/lib/domains/gurba/
gurba-0.40/lib/domains/gurba/guilds/fighter/
gurba-0.40/lib/domains/gurba/monsters/
gurba-0.40/lib/domains/gurba/objects/armor/
gurba-0.40/lib/domains/gurba/objects/clothing/
gurba-0.40/lib/domains/gurba/objects/weapons/
gurba-0.40/lib/domains/gurba/vendors/
gurba-0.40/lib/kernel/cmds/admin/
gurba-0.40/lib/kernel/daemons/
gurba-0.40/lib/kernel/include/
gurba-0.40/lib/kernel/lib/
gurba-0.40/lib/kernel/net/
gurba-0.40/lib/kernel/sys/
gurba-0.40/lib/logs/
gurba-0.40/lib/pub/
gurba-0.40/lib/std/modules/languages/
gurba-0.40/lib/std/races/
gurba-0.40/lib/std/races/monsters/
gurba-0.40/lib/wiz/fudge/
gurba-0.40/lib/wiz/spud/
gurba-0.40/src/host/beos/
gurba-0.40/src/host/pc/res/
gurba-0.40/src/kfun/
gurba-0.40/src/lpc/
gurba-0.40/src/parser/
gurba-0.40/tmp/
#define ZOOM   5

#define YEAR    17
#define MONTH   20
#define DAY     24
#define WEEK    4
#define HOUR    60

static string *months;
static string *days;

int time;

void restore_me( void );

void create( void ) {

  restore_me();

  months = ({ "Calninque", "Ben'ka", "Belegaer", "Mosiana", "Amaros", 
	      "Zalbus", "Sisyana", "Rhom", "Paknos", "Alachir", "Fuindell", "Helethia", "Jaran",
	      "Bethel", "Ilkira", "Yavanna", "Mosisis" });

  /*These should be randomized or put in some order*/

  days = ({ "Fire", "Water", "Earth", "Wind", });

  call_out( "update_time", ZOOM );
}

void save_me( void ) {
  save_object( "/daemons/data/time_d.o" );
}

void restore_me( void ) {
  restore_object( "/daemons/data/time_d.o" );
}

void update_time( void ) {
  time++;
  if( !(time % 60) )
    save_me();
  call_out( "update_time", ZOOM );
}

int query_minute( void ) {
  return( time % HOUR );
}

int query_hour() {
  return((time / HOUR) % DAY);
}
 
int query_day( void ) {
  return(((time / (HOUR * DAY)) % MONTH));
}

int query_weekday( void ) {
  return(query_day() % WEEK);
}

string query_weekday_name( void ) {
  return(days[query_weekday()]);
}

int query_month( void ) {
  return((time / (HOUR * DAY * MONTH)) % YEAR);
}

string query_month_name( void ) {
  return( months[query_month()]);
}

int query_year( void ) {
  return(time / (HOUR * DAY * MONTH * YEAR));
}

string query_time( void ) {
  string str;
  string hour;
  string minute;

  hour = "00" + query_hour();
  minute = "00" + query_minute();

  hour = hour[strlen(hour)-2..];
  minute = minute[strlen(minute)-2..];

  str = query_weekday_name() + " " + query_month_name() + " " + 
    (query_day()+1) + " " + hour + ":" + minute + " " + query_year();
  return( str );
}