summaryrefslogtreecommitdiff
path: root/src/resources/resourcemanager.cpp
diff options
context:
space:
mode:
authorDavid Athay <ko2fan@gmail.com>2008-01-13 16:28:50 +0000
committerDavid Athay <ko2fan@gmail.com>2008-01-13 16:28:50 +0000
commit3bf3c05f1b999914875d5fb0797c4c9ca098ede0 (patch)
tree8bb49e7960cd27e0343c65ae43d646e52f566f71 /src/resources/resourcemanager.cpp
parent2928c5444892538f0153b5dd6e39d9a4bff5585d (diff)
downloadmana-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/resourcemanager.cpp')
-rw-r--r--src/resources/resourcemanager.cpp21
1 files changed, 21 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.