Merge pull request #728 from tobiatesan/fix_ogg

WINTERMUTE: Correctly find .ogg version of .wav files
This commit is contained in:
Einar Johan Trøan Sømåen 2016-04-23 11:42:33 +02:00
commit 7af4a1a05f

View File

@ -100,15 +100,14 @@ BaseSoundBuffer *BaseSoundMgr::addSound(const Common::String &filename, Audio::M
BaseSoundBuffer *sound;
Common::String useFilename = filename;
useFilename.toLowercase();
// try to switch WAV to OGG file (if available)
AnsiString ext = PathUtil::getExtension(filename);
if (StringUtil::compareNoCase(ext, "wav")) {
AnsiString path = PathUtil::getDirectoryName(filename);
AnsiString name = PathUtil::getFileNameWithoutExtension(filename);
AnsiString newFile = PathUtil::combine(path, name + "ogg");
if (BaseFileManager::getEngineInstance()->hasFile(newFile)) {
useFilename = newFile;
if (useFilename.hasSuffix(".wav")) {
Common::String oggFilename = useFilename;
oggFilename.erase(oggFilename.size() - 4);
oggFilename = oggFilename + ".ogg";
if (BaseFileManager::getEngineInstance()->hasFile(oggFilename)) {
useFilename = oggFilename;
}
}