fix .wav sounds support
This commit is contained in:
parent
0232e9fb23
commit
2395e05a01
@ -161,18 +161,26 @@ assetload::postfunc assetload::sound(
|
|||||||
auto cfg = std::dynamic_pointer_cast<SoundCfg>(config);
|
auto cfg = std::dynamic_pointer_cast<SoundCfg>(config);
|
||||||
bool keepPCM = cfg ? cfg->keepPCM : false;
|
bool keepPCM = cfg ? cfg->keepPCM : false;
|
||||||
|
|
||||||
std::string extension = ".ogg";
|
|
||||||
std::unique_ptr<audio::Sound> baseSound = nullptr;
|
std::unique_ptr<audio::Sound> baseSound = nullptr;
|
||||||
|
static std::vector<std::string> extensions {".ogg", ".wav"};
|
||||||
|
std::string extension;
|
||||||
|
for (size_t i = 0; i < extensions.size(); i++) {
|
||||||
|
extension = extensions[i];
|
||||||
// looking for 'sound_name' as base sound
|
// looking for 'sound_name' as base sound
|
||||||
auto soundFile = paths->find(file+extension);
|
auto soundFile = paths->find(file+extension);
|
||||||
if (fs::exists(soundFile)) {
|
if (fs::exists(soundFile)) {
|
||||||
baseSound = audio::load_sound(soundFile, keepPCM);
|
baseSound = audio::load_sound(soundFile, keepPCM);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
// looking for 'sound_name_0' as base sound
|
// looking for 'sound_name_0' as base sound
|
||||||
auto variantFile = paths->find(file+"_0"+extension);
|
auto variantFile = paths->find(file+"_0"+extension);
|
||||||
if (fs::exists(variantFile)) {
|
if (fs::exists(variantFile)) {
|
||||||
baseSound = audio::load_sound(variantFile, keepPCM);
|
baseSound = audio::load_sound(variantFile, keepPCM);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (baseSound == nullptr) {
|
||||||
|
throw std::runtime_error("could not to find sound: " + file);
|
||||||
}
|
}
|
||||||
|
|
||||||
// loading sound variants
|
// loading sound variants
|
||||||
@ -184,9 +192,6 @@ assetload::postfunc assetload::sound(
|
|||||||
baseSound->variants.emplace_back(audio::load_sound(variantFile, keepPCM));
|
baseSound->variants.emplace_back(audio::load_sound(variantFile, keepPCM));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (baseSound == nullptr) {
|
|
||||||
throw std::runtime_error("could not to find sound: " + file);
|
|
||||||
}
|
|
||||||
auto sound = baseSound.release();
|
auto sound = baseSound.release();
|
||||||
return [=](auto assets) {
|
return [=](auto assets) {
|
||||||
assets->store(std::unique_ptr<audio::Sound>(sound), name);
|
assets->store(std::unique_ptr<audio::Sound>(sound), name);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user