/* Put in db.c */
/***************/
void load_newbie( void )
{
FILE *fp;
NEWBIE_DATA *pNewbieIndex;
char letter;
if ( !( fp = fopen( NEWBIE_FILE, "r" ) ) )
return;
fpArea = fp;
strcpy(strArea, NEWBIE_FILE);
for ( ; ; )
{
char* keyword;
letter = fread_letter( fp );
if ( letter != '#' )
{
bug( "Load_newbie: # not found.", 0 );
continue;
}
keyword = fread_string( fp );
if ( !str_cmp( name, "END" ) )
break;
pNewbieIndex = alloc_perm( sizeof( *pNewbieIndex ));
pNewbieIndex->keyword = keyword;
pNewbieIndex->answer1 = fread_string( fp );
pNewbieIndex->answer2 = fread_string( fp );
newbie_sort(pNewbieIndex);
top_newbie++;
}
fclose ( fp );
return;
}
void newbie_sort( NEWBIE_DATA *pNewbie )
{
NEWBIE_DATA *fNewbie;
if ( !newbie_first )
{
newbie_first = pNewbie;
newbie_last = pNewbie;
return;
}
if ( strncmp( pNewbie->keyword, newbie_first->keyword, 256 ) > 0 )
{
pNewbie->next = newbie_first->next;
newbie_first = pNewbie;
return;
}
for ( fNewbie = newbie_first; fNewbie; fNewbie = fNewbie->next )
{
if ( ( strncmp( pNewbie->keyword, fNewbie->keyword, 256 ) < 0 ) )
{
if ( fNewbie != newbie_last )
{
pNewbie->next = fNewbie->next;
fNewbie->next = pNewbie;
return;
}
}
}
newbie_last->next = pNewbie;
newbie_last = pNewbie;
pNewbie->next = NULL;
return;
}