void CA_Startup() { CAL_SetupMapFile(); CAL_SetupGrFile(); CAL_SetupAudioFile(); mapon = -1; }
/* ----------------------------------------------------------------------------- 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; }