diff options
author | krzys-h <krzys_h@interia.pl> | 2014-05-18 12:12:47 +0200 |
---|---|---|
committer | krzys-h <krzys_h@interia.pl> | 2014-05-18 12:12:47 +0200 |
commit | f0d97bfdb91a2c0a17d1697b145d4df930280dbb (patch) | |
tree | 2d529428006e145b624108cce636b07867f566af /src/sound/oalsound/alsound.cpp | |
parent | f71658e38dbcfc5635a6b2a9c6c4168582728bb5 (diff) | |
download | colobot-f0d97bfdb91a2c0a17d1697b145d4df930280dbb.tar.gz colobot-f0d97bfdb91a2c0a17d1697b145d4df930280dbb.tar.bz2 colobot-f0d97bfdb91a2c0a17d1697b145d4df930280dbb.zip |
Better datadir mod support
Diffstat (limited to 'src/sound/oalsound/alsound.cpp')
-rw-r--r-- | src/sound/oalsound/alsound.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/sound/oalsound/alsound.cpp b/src/sound/oalsound/alsound.cpp index 23476d4..8afbdd2 100644 --- a/src/sound/oalsound/alsound.cpp +++ b/src/sound/oalsound/alsound.cpp @@ -18,6 +18,8 @@ #include "sound/oalsound/alsound.h" +#include "app/gamedata.h" + #include <algorithm> #include <iomanip> @@ -163,7 +165,7 @@ int ALSound::GetMusicVolume() bool ALSound::Cache(Sound sound, const std::string &filename) { Buffer *buffer = new Buffer(); - if (buffer->LoadFromFile(filename, sound)) + if (buffer->LoadFromFile(CGameData::GetInstancePointer()->GetFilePath(DIR_SOUND, filename), sound)) { m_sounds[sound] = buffer; return true; @@ -176,9 +178,7 @@ bool ALSound::CacheMusic(const std::string &filename) if (m_music.find(filename) == m_music.end()) { Buffer *buffer = new Buffer(); - std::stringstream file; - file << m_soundPath << "/" << filename; - if (buffer->LoadFromFile(file.str(), static_cast<Sound>(-1))) + if (buffer->LoadFromFile(CGameData::GetInstancePointer()->GetFilePath(DIR_MUSIC, filename), static_cast<Sound>(-1))) { m_music[filename] = buffer; return true; @@ -635,22 +635,21 @@ bool ALSound::PlayMusic(const std::string &filename, bool bRepeat, float fadeTim return false; } - std::stringstream file; - file << m_soundPath << "/" << filename; + std::string file = CGameData::GetInstancePointer()->GetFilePath(DIR_MUSIC, filename); Buffer *buffer; // check if we have music in cache if (m_music.find(filename) == m_music.end()) { GetLogger()->Debug("Music %s was not cached!\n", filename.c_str()); - if (!boost::filesystem::exists(file.str())) + if (!boost::filesystem::exists(file)) { GetLogger()->Debug("Requested music %s was not found.\n", filename.c_str()); return false; } buffer = new Buffer(); - if (!buffer->LoadFromFile(file.str(), static_cast<Sound>(-1))) + if (!buffer->LoadFromFile(file, static_cast<Sound>(-1))) { return false; } |