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/
mixed *did;

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

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

void create( void ) {
  did = ({ });
  restore_me();
}

void add_entry( string str ) {
  object *usr;
  int i;

  if( !file_exists( wiz_dir( this_user() ) ) ) {
    write( "Sorry, only true wizards may add to the did log.\n" );
    return;
  }
  str = capitalize( this_user()->query_name() ) + " " + str;
  did += ({ ({ time(), str }) });
  save_me();

  usr = USER_D->query_users();
  for( i = 0; i < sizeof( usr ); i++ ) {
    if( SECURE_D->query_wiz( usr[i]->query_player()->query_name() ) > 0 && usr[i] != this_user() ) {
      usr[i]->query_player()->message( "** " + str );
    }
  }
  write( "Reported. Thank you!\n" );
}

int start_index( int after ) {
  int index;

  index = sizeof( did );

  while( index > 0 && did[index-1][0] > after )
    index--;

  return index;
}

string *get_entries(int after)
{
    int index;
    string *output;

    index = start_index(after);

    if ( index >= sizeof(did) )
      return 0;

    output = ({ "Change Log\n",
		"**********\n" });

    for ( ; index < sizeof(did); index++ ) {
      output += ({ ctime(did[index][0]) + ": " +did[index][1] + "\n" });
      output += ({ "" });
    }
    return output;
}