bug( "%s: fclose about to be called on fpArea", __FUNCTION__ );
fclose( fpArea );
bug( "%s: fclose called on fpArea", __FUNCTION__ );
if( fclose( fpArea ) )
bug( "%s: fclose on fpArea failed", __FUNCTION__ );
else
bug( "%s: fclose on fpArea successful", __FUNCTION__ );
log_string ( "Booting Areas" );
if ( ( fpList = fopen ( AREA_LIST, "r" ) ) == NULL )
{
perror ( AREA_LIST );
exit ( 1 );
}
for ( ;; )
{
strcpy ( filename, fread_word ( fpList ) ); /* Get $
if ( filename[0] == '$' )
break;
db_load_area ( filename ); $
}
fclose( fpList );
if ( ( pArea = ( db_load_area_header ( filename ) ) ) == NULL )
{
bugf ("No Header Found for %s!!", filename );
return;
}
db_load_area_rooms ( pArea->filename, pArea );
db_load_area_objects ( pArea->filename, pArea );
db_load_area_mobiles ( pArea->filename, pArea );
db_load_area_resets ( pArea->filename, pArea );
db_load_area_shops ( pArea->filename, pArea );
db_load_area_specials ( pArea->filename, pArea );
db_load_area_progs ( pArea->filename, pArea );
void db_load_area_specials ( char *filename, AREA_DATA *pArea )
{
SNP ( strArea, "%s%s.specials", SPEC_DIR, filename );
if ( !( fpArea = fopen ( strArea, "r" ) ) )
{
bugf ( "No %s found for %s", strArea, pArea->name );
return;
}
for ( ;; )
{
MOB_INDEX_DATA *pMobIndex;
char letter;
switch ( letter = fread_letter ( fpArea ) )
{
default:
bugf ( "Load_specials: letter '%c' not *MS.", letter );
exit ( 1 );
case 'S':
return;
case '*':
break;
case 'M':
pMobIndex = get_mob_index ( fread_number ( fpArea ) );
pMobIndex->spec_fun = spec_lookup ( fread_word ( fpArea ) );
if ( pMobIndex->spec_fun == 0 )
{
bugf ( "Load_specials: 'M': vnum %d.", pMobIndex->vnum );
exit ( 1 );
}
break;
}
fread_to_eol ( fpArea );
}
fclose ( fpArea );
return;
}
case 'E':
if (!str_cmp(word, "END"))
{
fclose (fp);
return;
}
break;
using it I get:
Is this normal? Having all these area files open? And when I do a copyover, I all of these duplicate, meaning there are two of each. I'm still trying to figure this out, any help is appreciated :) Thanks