/
clans/
councils/
deity/
doc/mudprogs/
exchange/
guilds/
player/a/
src/dmalloc/
src/dmalloc/bin/
src/dmalloc/include/
src/dmalloc/lib/
src/utils/
watch/
web/public_html/
/*
 *	Makes a wizlist for showing on the Telnet Interface WWW Site -- KCAH
 */

void make_webwiz( )
{
  DIR *dp;
  struct dirent *dentry;
  FILE *gfp;
  char *word;
  int ilevel, iflags;
  WIZENT *wiz, *wiznext;
  char buf[MAX_STRING_LENGTH];

  first_wiz = NULL;
  last_wiz  = NULL;

  dp = opendir( GOD_DIR );

  ilevel = 0;
  dentry = readdir( dp );
  while ( dentry )
  {
      if ( dentry->d_name[0] != '.' )
      {
	sprintf( buf, "%s%s", GOD_DIR, dentry->d_name );
	gfp = fopen( buf, "r" );
	if ( gfp )
	{
	  word = feof( gfp ) ? "End" : fread_word( gfp );
	  ilevel = fread_number( gfp );
          fread_to_eol( gfp );
	  word = feof( gfp ) ? "End" : fread_word( gfp );
          if ( !str_cmp( word, "Pcflags" ) )
	    iflags = fread_number( gfp );
          else
	    iflags = 0;
	  fclose( gfp );
          if ( IS_SET( iflags, PCFLAG_RETIRED ) )
            ilevel = MAX_LEVEL - 15;
          if ( IS_SET( iflags, PCFLAG_GUEST ) )
            ilevel = MAX_LEVEL - 16;
	  add_to_wizlist( dentry->d_name, ilevel );
	}
      }
      dentry = readdir( dp );
  }
  closedir( dp );

  unlink( WEBWIZ_FILE );

  sprintf(buf, "<BR>&wof %s!", sysdata.mud_name);
  towebwiz(buf);
  buf[0] = '\0';
  ilevel = 65535;
  for ( wiz = first_wiz; wiz; wiz = wiz->next )
  {
    if ( wiz->level < ilevel )
    {
      if ( buf[0] )
      {
	towebwiz( buf );
	buf[0] = '\0';
      }
      towebwiz( "" );
      ilevel = wiz->level;
      switch(ilevel)
      {
case MAX_LEVEL -  0: towebwiz( "<P>&rOwner<BR>&w" );				break;
case MAX_LEVEL -  1: towebwiz( "<P>&RAdministration<BR>&w" );			break;
case MAX_LEVEL -  2: towebwiz( "<P>&wHead Coders / Head Builders<BR>&w" );	break;
case MAX_LEVEL -  3: towebwiz( "<P>&WCoders / Builders<BR>&w" );		break;
case MAX_LEVEL -  4: towebwiz( "<P>&bNew Coders / New Builders<BR>&w" );	break;
case MAX_LEVEL -  5: towebwiz( "<P>&BGuest / Citizen Administration<BR>&w" );	break;
case MAX_LEVEL -  6: towebwiz( "<P>---<BR>" );	break;
case MAX_LEVEL -  7: towebwiz( "<P>---<BR>" );	break;
case MAX_LEVEL -  8: towebwiz( "<P>---<BR>" );	break;
case MAX_LEVEL -  9: towebwiz( "<P>---<BR>" );	break;
case MAX_LEVEL - 10: towebwiz( "<P>---<BR>" );	break;
case MAX_LEVEL - 11: towebwiz( "<P>---<BR>" );	break;
case MAX_LEVEL - 12: towebwiz( "<P>---<BR>" );	break;
case MAX_LEVEL - 13: towebwiz( "<P>---<BR>" );	break;
case MAX_LEVEL - 14: towebwiz( "<P>&BPeople<BR>&w" );	break;
case MAX_LEVEL - 15: towebwiz( "<P>&BRetired<BR>&w" );	break;
case MAX_LEVEL - 16: towebwiz( "<P>&BGuests<BR>&w" );	break;
default:	     towebwiz( "<P>&BServants<BR>&w" );	break;
      }
    }

    if ( strlen( buf ) + strlen( wiz->name ) > 999 )
    {
	towebwiz( buf );
	buf[0] = '\0';
    }

    strcat( buf, " " );
    strcat( buf, wiz->name );

    if ( strlen( buf ) > 999 )
    {
      towebwiz( buf );
      buf[0] = '\0';
    }

  }

  if ( buf[0] )
    towebwiz( buf );

  for ( wiz = first_wiz; wiz; wiz = wiznext )
  {
    wiznext = wiz->next;
    DISPOSE(wiz->name);
    DISPOSE(wiz);
  }
  first_wiz = NULL;
  last_wiz = NULL;
}