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/
static mapping users;

void create( void ) {
  users = ([ ]);
}

void add_user( string name, object user ) {
  users += ([ name : user ]);
}

void remove_user( string name, object user ) {
  users[name] = 0;
}

object *query_users( void ) {
  return( map_values( users ) );
}

string *query_user_names( void ) {
  return( map_indices( users ) );
}

object find_user( string name ) {

  string *names;
  int i;
  int found;

  found = 0;
  names = map_indices( users );
  for( i=0; i < sizeof( names ); i++ ) {
    if( name == names[i] ) {
      found = 1;
      break;
    }
  }

  if( found == 1) 
    return( users[name] );
  else 
    return( 0 );
}

object find_player( string name ) {
  object ob;
  ob = find_user( lowercase(name) );
  if( ob != 0 )
    return( ob->query_player() );
  return( ob );
}

object *query_players( void ) {
  object *usr;
  int i;
  object *players;

  usr = query_users();

  players = ({ });

  for (i=0; i < sizeof (usr); i++) {
    players += ({ usr[i]->query_player() });
  }
  return players;
}


object *query_wizards( void ) {
  object *usr;
  int i;
  object *wizards;

  usr = query_users();

  wizards = ({ });

  for (i=0; i < sizeof (usr); i++) {
    if (SECURE_D->query_wiz(usr[i]->query_player()->query_name()) > 0) {
      wizards += ({ usr[i]->query_player() });
    }
  }
  return wizards;
}