MCPcopy Create free account
hub / github.com/Kenix3/libultraship / SFileAddWave

Function SFileAddWave

extern/StormLib/src/SFileAddFile.cpp:1039–1080  ·  view source on GitHub ↗

Adds a WAVE file into the archive

Source from the content-addressed store, hash-verified

1037
1038// Adds a WAVE file into the archive
1039bool WINAPI SFileAddWave(HANDLE hMpq, const TCHAR * szFileName, const char * szArchivedName, DWORD dwFlags, DWORD dwQuality)
1040{
1041 DWORD dwCompression = 0;
1042
1043 //
1044 // Note to wave compression level:
1045 // The following conversion table applied:
1046 // High quality: WaveCompressionLevel = -1
1047 // Medium quality: WaveCompressionLevel = 4
1048 // Low quality: WaveCompressionLevel = 2
1049 //
1050 // Starcraft files are packed as Mono (0x41) on medium quality.
1051 // Because this compression is not used anymore, our compression functions
1052 // will default to WaveCompressionLevel = 4 when using ADPCM compression
1053 //
1054
1055 // Convert quality to data compression
1056 switch(dwQuality)
1057 {
1058 case MPQ_WAVE_QUALITY_HIGH:
1059// WaveCompressionLevel = -1;
1060 dwCompression = MPQ_COMPRESSION_PKWARE;
1061 break;
1062
1063 case MPQ_WAVE_QUALITY_MEDIUM:
1064// WaveCompressionLevel = 4;
1065 dwCompression = MPQ_COMPRESSION_ADPCM_STEREO | MPQ_COMPRESSION_HUFFMANN;
1066 break;
1067
1068 case MPQ_WAVE_QUALITY_LOW:
1069// WaveCompressionLevel = 2;
1070 dwCompression = MPQ_COMPRESSION_ADPCM_STEREO | MPQ_COMPRESSION_HUFFMANN;
1071 break;
1072 }
1073
1074 return SFileAddFileEx(hMpq,
1075 szFileName,
1076 szArchivedName,
1077 dwFlags,
1078 MPQ_COMPRESSION_PKWARE, // First sector should be compressed as data
1079 dwCompression); // Next sectors should be compressed as WAVE
1080}
1081
1082//-----------------------------------------------------------------------------
1083// bool SFileRemoveFile(HANDLE hMpq, char * szFileName)

Callers

nothing calls this directly

Calls 1

SFileAddFileExFunction · 0.85

Tested by

no test coverage detected