summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhilipp Sehmisch <crush@themanaworld.org>2009-04-16 21:22:46 +0200
committerPhilipp Sehmisch <crush@themanaworld.org>2009-04-16 21:24:41 +0200
commitc6b4edf8cc635ddcb2a8b3c0cef38dd88fa73768 (patch)
treee27d5070ac8631f965e52787be2777ac06c4d516 /src
parent3fb7414240a4dd48e39f840dc766e2bb29fad41d (diff)
downloadmana-c6b4edf8cc635ddcb2a8b3c0cef38dd88fa73768.tar.gz
mana-c6b4edf8cc635ddcb2a8b3c0cef38dd88fa73768.tar.bz2
mana-c6b4edf8cc635ddcb2a8b3c0cef38dd88fa73768.tar.xz
mana-c6b4edf8cc635ddcb2a8b3c0cef38dd88fa73768.zip
Renamed ResourceManager::moveFile to ResourceManager::copyFile and catched error when it fails.
Diffstat (limited to 'src')
-rw-r--r--src/resources/resourcemanager.cpp2
-rw-r--r--src/resources/resourcemanager.h2
-rw-r--r--src/sound.cpp9
3 files changed, 9 insertions, 4 deletions
diff --git a/src/resources/resourcemanager.cpp b/src/resources/resourcemanager.cpp
index e24ebafb..f7a2586e 100644
--- a/src/resources/resourcemanager.cpp
+++ b/src/resources/resourcemanager.cpp
@@ -419,7 +419,7 @@ void *ResourceManager::loadFile(const std::string &fileName, int &fileSize)
return buffer;
}
-bool ResourceManager::moveFile(const std::string &src, const std::string &dst)
+bool ResourceManager::copyFile(const std::string &src, const std::string &dst)
{
PHYSFS_file *srcFile = PHYSFS_openRead(src.c_str());
if (!srcFile)
diff --git a/src/resources/resourcemanager.h b/src/resources/resourcemanager.h
index 19c0cb61..b2ad3069 100644
--- a/src/resources/resourcemanager.h
+++ b/src/resources/resourcemanager.h
@@ -133,7 +133,7 @@ class ResourceManager
* @return true on success, false on failure. An error message should be
* in the log file.
*/
- bool moveFile(const std::string &src, const std::string &dst);
+ bool copyFile(const std::string &src, const std::string &dst);
/**
* Convenience wrapper around ResourceManager::get for loading
diff --git a/src/sound.cpp b/src/sound.cpp
index 39651045..e2663fa8 100644
--- a/src/sound.cpp
+++ b/src/sound.cpp
@@ -149,8 +149,13 @@ static Mix_Music *loadMusic(const std::string &filename)
// it to a temporary physical file so that SDL_mixer can stream it.
logger->log("Loading music \"%s\" from temporary file tempMusic.ogg",
path.c_str());
- resman->moveFile("music/" + filename, "tempMusic.ogg");
- path = resman->getPath("tempMusic.ogg");
+ bool success = resman->copyFile("music/" + filename, "tempMusic.ogg");
+ if (success)
+ {
+ path = resman->getPath("tempMusic.ogg");
+ } else {
+ return NULL;
+ }
} else {
logger->log("Loading music \"%s\"", path.c_str());
}