BOOL WINAPI MpqAddWaveFromBuffer_stub(MPQHANDLE hMPQ, LPVOID lpBuffer, DWORD dwLength, LPCSTR lpFileName, DWORD dwFlags, DWORD dwQuality) { LoadSFMpqDll(); if (hSFMpq) { *(FARPROC *)&MpqAddWaveFromBuffer = GetProcAddress(hSFMpq,"MpqAddWaveFromBuffer"); if (MpqAddWaveFromBuffer) return MpqAddWaveFromBuffer(hMPQ,lpBuffer,dwLength,lpFileName,dwFlags,dwQuality); } return FALSE; }
bool WavBufferToArchive(MPQHANDLE &hMpq, const buffer &buf, const std::string &mpqFilePath, WavQuality wavQuality) { if ( hMpq == nullptr ) CHKD_ERR("NULL MPQ file specified for writing WAV buffer"); else { DWORD dwWavQuality = (DWORD)wavQuality; DWORD dataSize = (DWORD)buf.size(); LPVOID dataPointer = (LPVOID)buf.getPtr(0); if ( MpqAddWaveFromBuffer(hMpq, dataPointer, dataSize, mpqFilePath.c_str(), MAFA_COMPRESS | MAFA_REPLACE_EXISTING, dwWavQuality) == TRUE ) return true; else CHKD_ERR("Failed to add buffered file to archive"); } return false; }