diff options
author | David Athay <ko2fan@gmail.com> | 2008-01-13 16:28:50 +0000 |
---|---|---|
committer | David Athay <ko2fan@gmail.com> | 2008-01-13 16:28:50 +0000 |
commit | 3bf3c05f1b999914875d5fb0797c4c9ca098ede0 (patch) | |
tree | 8bb49e7960cd27e0343c65ae43d646e52f566f71 /src/resources | |
parent | 2928c5444892538f0153b5dd6e39d9a4bff5585d (diff) | |
download | mana-3bf3c05f1b999914875d5fb0797c4c9ca098ede0.tar.gz mana-3bf3c05f1b999914875d5fb0797c4c9ca098ede0.tar.bz2 mana-3bf3c05f1b999914875d5fb0797c4c9ca098ede0.tar.xz mana-3bf3c05f1b999914875d5fb0797c4c9ca098ede0.zip |
Fixed non-default location music loading
Diffstat (limited to 'src/resources')
-rw-r--r-- | src/resources/resourcemanager.cpp | 21 | ||||
-rw-r--r-- | src/resources/resourcemanager.h | 8 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/resources/resourcemanager.cpp b/src/resources/resourcemanager.cpp index fb9da9d7..59202ad8 100644 --- a/src/resources/resourcemanager.cpp +++ b/src/resources/resourcemanager.cpp @@ -200,6 +200,27 @@ ResourceManager::isDirectory(const std::string &path) return PHYSFS_isDirectory(path.c_str()); } +std::string +ResourceManager::getPath(const std::string &file) +{ + // get the real path to the file + const char* tmp = PHYSFS_getRealDir(file.c_str()); + std::string path; + + // if the file is not in the search path, then its NULL + if (tmp) + { + path = std::string(tmp) + "/" + file; + } + else + { + // if not found in search path return the default path + path = std::string(TMW_DATADIR) + std::string("data") + "/" + file; + } + + return path; +} + Resource *ResourceManager::get(std::string const &idPath, generator fun, void *data) { // Check if the id exists, and return the value if it does. diff --git a/src/resources/resourcemanager.h b/src/resources/resourcemanager.h index abfd629a..da85e2f9 100644 --- a/src/resources/resourcemanager.h +++ b/src/resources/resourcemanager.h @@ -104,6 +104,14 @@ class ResourceManager */ bool isDirectory(const std::string &path); + + /** + * Returns the real path to a file + * + * @param file The file to get the real path to. + * @return The real path. + */ + std::string getPath(const std::string &file); /** * Creates a resource and adds it to the resource map. |