diff options
-rw-r--r-- | src/game.cpp | 25 | ||||
-rw-r--r-- | src/sound_openal.cpp | 16 |
2 files changed, 13 insertions, 28 deletions
diff --git a/src/game.cpp b/src/game.cpp index aff1f1984..d6c9910be 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -972,31 +972,6 @@ void the_game( SoundMaker soundmaker(sound, nodedef); soundmaker.registerReceiver(&eventmgr); - // Preload sounds -#if 0 - sound->loadSound("default_grass_footstep", porting::path_share + DIR_DELIM - + "sounds" + DIR_DELIM + "default_grass_walk1.ogg"); - sound->loadSound("default_grass_footstep", porting::path_share + DIR_DELIM - + "sounds" + DIR_DELIM + "default_grass_walk2.ogg"); - sound->loadSound("default_grass_footstep", porting::path_share + DIR_DELIM - + "sounds" + DIR_DELIM + "default_grass_walk3.ogg"); - - sound->loadSound("default_dig_crumbly", porting::path_share + DIR_DELIM - + "sounds" + DIR_DELIM + "default_dig_crumbly1.ogg"); - sound->loadSound("default_dig_crumbly", porting::path_share + DIR_DELIM - + "sounds" + DIR_DELIM + "default_dig_crumbly2.ogg"); - - sound->loadSound("default_dig_cracky", porting::path_share + DIR_DELIM - + "sounds" + DIR_DELIM + "default_dig_cracky1.ogg"); - - sound->loadSound("default_place_node", porting::path_share + DIR_DELIM - + "sounds" + DIR_DELIM + "default_place_node1.ogg"); - sound->loadSound("default_place_node", porting::path_share + DIR_DELIM - + "sounds" + DIR_DELIM + "default_place_node2.ogg"); - sound->loadSound("default_place_node", porting::path_share + DIR_DELIM - + "sounds" + DIR_DELIM + "default_place_node3.ogg"); -#endif - // Add chat log output for errors to be shown in chat LogOutputBuffer chat_log_error_buf(LMT_ERROR); diff --git a/src/sound_openal.cpp b/src/sound_openal.cpp index f7bce6546..e635e0fa1 100644 --- a/src/sound_openal.cpp +++ b/src/sound_openal.cpp @@ -41,6 +41,7 @@ with this program; ifnot, write to the Free Software Foundation, Inc., #include <map> #include <vector> #include "utility.h" // myrand() +#include "filesys.h" #define BUFFER_SIZE 30000 @@ -434,9 +435,18 @@ public: bool loadSoundData(const std::string &name, const std::string &filedata) { - errorstream<<"OpenALSoundManager: Loading from filedata not" - " implemented"<<std::endl; - return false; + // The vorbis API sucks; just write it to a file and use vorbisfile + // TODO: Actually load it directly from memory + std::string basepath = porting::path_user + DIR_DELIM + "cache" + + DIR_DELIM + "tmp"; + std::string path = basepath + DIR_DELIM + "tmp.ogg"; + verbosestream<<"OpenALSoundManager::loadSoundData(): Writing " + <<"temporary file to ["<<path<<"]"<<std::endl; + fs::CreateAllDirs(basepath); + std::ofstream of(path.c_str(), std::ios::binary); + of.write(filedata.c_str(), filedata.size()); + of.close(); + return loadSoundFile(name, path); } void updateListener(v3f pos, v3f vel, v3f at, v3f up) |