/***************************************************************************** Name: do_alist Purpose: Normal command to list areas and display area information. Called by: interpreter(interp.c) Note: I've modified this alist to sort by vnum. I thought it would be useful for builders who need to know what vnums are/are not in use. - Galen ****************************************************************************/ void do_alist( CHAR_DATA *ch, char *argument ) { char buf [ MAX_STRING_LENGTH ]; AREA_DATA *pArea; BUFFER *output; int i,x,y; output = new_buf(); x = 32768; /* If you have vnums higher than this, make this number bigger */ y = 0; sprintf( buf, "[%3s] [%-27s] (%-5s-%5s) [%-10s] %3s [%-10s]\n\r", "Num", "Area Name", "lvnum", "uvnum", "Filename", "Sec", "Builders" ); send_to_char(buf,ch); for ( i = area_first->vnum; i <= area_last->vnum; i++ ) { for ( pArea = area_first; pArea; pArea = pArea->next ) if ( pArea->min_vnum < x && pArea->min_vnum > y ) x = pArea->min_vnum; y = x; x = 32768; /* If you have vnums higher than this, make this number bigger */ for ( pArea = area_first; pArea; pArea = pArea->next ) if ( y == pArea->min_vnum ) { sprintf( buf, "[%3d] %-29.29s (%-5d-%5d) %-12.12s [%d] [%-10.10s]\n\r", pArea->vnum, pArea->name, pArea->min_vnum, pArea->max_vnum, pArea->file_name, pArea->security, pArea->builders ); add_buf(output,buf); } } page_to_char(buf_string(output),ch); return; }