Exemple #1
0
void CA_Startup()
{
	CAL_SetupMapFile();
	CAL_SetupGrFile();
	CAL_SetupAudioFile();

	mapon = -1;
}
Exemple #2
0
/*
-----------------------------------------------------------------------------
 Function: AudioRipper() -Interface to audio decoder.
 
 Parameters: fextension -[in] file extension string.
			 start -[in] Chunk number for start of audio data.
			 end -[in] Chunk number for end of audio data.
 
 Returns: Nothing.
 
 Notes: 
-----------------------------------------------------------------------------
*/
PUBLIC _boolean AudioRipper( const char *fextension, 
						W32 start, W32 end, W16 version )
{
    W32 i, j;
	char filename[ 64 ];
	W8 *buffChunk;
	W8 *buffWav;
	W32 startofmusic = WL6_STARTMUSIC - 1;
	W32 endofmusic = LASTMUSIC;

//
// Setup
//

	if( version == SOD_PAK || version == SDM_PAK )
	{
		if( 0 == FS_Mkdir( SODLSFXDIR ) )
		{
			printf( "[%s] Could not create directory (%s)!\n", "wolf_aud.c", SODLSFXDIR );
			
			return false;
		}

		startofmusic = SOD_STARTMUSIC;
		endofmusic = SOD_LASTMUSIC;
	}
	else
	{
		if( 0 == FS_Mkdir( LSFXDIR ) )
		{
			printf( "[%s] Could not create directory (%s)!\n", "wolf_aud.c", LSFXDIR );
			
			return false;
		}
	}
	

	if( 0 == FS_Mkdir( MUSICDIR ) )
	{
		printf( "[%s] Could not create directory (%s)!\n", "wolf_aud.c", LSFXDIR );
		
		return false;
	}




	
    if( ! CAL_SetupAudioFile( fextension ) )
    {
		CAL_ShutdownAudioFile();
        
		return false;
    }		

    if( ! ADLIB_Init( 22050 ) )
	{
		CAL_ShutdownAudioFile();
		
		return false;
	}

//
// Allocate buffers
//

	buffChunk = MM_MALLOC( MAX_CHUNK_SIZE );
	if( buffChunk == NULL )
	{
		ADLIB_Shutdown();
		CAL_ShutdownAudioFile();
		
		return false;
	}

	buffWav = MM_MALLOC( MAX_WAV_SIZE );
	if( buffWav == NULL )
	{
		ADLIB_Shutdown();
		CAL_ShutdownAudioFile();
		MM_FREE( buffChunk );
		
		return false;
	} 

//
// Decode Audio data
//
   
	printf( "Decoding Audio Data...\n" );
    
	for( i = start, j = 0; i < end; ++i, ++j )
    {        
		if( version == SOD_PAK || version == SDM_PAK )
		{
			cs_snprintf( filename, sizeof( filename ), "%s/%.3d.wav", SODLSFXDIR, j );
		}
		else
		{
			cs_snprintf( filename, sizeof( filename ), "%s/%.3d.wav", LSFXDIR, j );
		}

		CA_SaveAudioChunk( i, filename, buffChunk, buffWav );
    }

	ADLIB_Shutdown();

	MM_FREE( buffWav );
	MM_FREE( buffChunk );


//
//	Decode Music data
//

	if( ! ADLIB_Init( 44100 ) )
	{
		CAL_ShutdownAudioFile();
		
		return false;
	}

	printf( "Decoding Music Data...\n" );

	for( i = 0 ; i < endofmusic ; ++i )
	{
		if( version == SOD_PAK || version == SDM_PAK )
		{
			cs_snprintf( filename, sizeof( filename ), "%s/%s.ogg", MUSICDIR, GetMusicFileName_SOD( i ) );
		}
		else
		{
			cs_snprintf( filename, sizeof( filename ), "%s/%s.ogg", MUSICDIR, GetMusicFileName_WL6( i ) );
		}

		CA_SaveMusicChunk( startofmusic + i, filename );
	}

	ADLIB_Shutdown();

//
// Shutdown
//	
    
    
    CAL_ShutdownAudioFile();
    
    
    
    return true;
}