ResourceManager::ChangeID ResourceManager::addResourceDir(const Common::UString &dir, const char *glob, int depth, uint32 priority) { // Find the directory Common::UString directory = Common::FilePath::findSubDirectory(_baseDir, dir, true); if (directory.empty()) throw Common::Exception("No such directory \"%s\"", dir.c_str()); // Find files Common::FileList files; files.addDirectory(directory, depth); ChangeID change = newChangeSet(); if (!glob) { // Add the files addResources(files, change, priority); return change; } // Find files matching the glob pattern Common::FileList globFiles; files.getSubList(glob, globFiles, true); // Add the files addResources(globFiles, change, priority); return change; }
void ResourceHandler::add(std::string fileRef) { if(mLoadables.count(fileRef) < 1) { switch(type(fileRef)) { case Resource_Type::TEXTURE: mLoadables.insert(std::pair<std::string, Loadable&>(fileRef, mTexStore.add(fileRef))); break; case Resource_Type::AUDIO: mLoadables.insert(std::pair<std::string, Loadable&>(fileRef, mSBufStore.add(fileRef))); break; case Resource_Type::BUNDLE: addResources(fileRef); break; case Resource_Type::UNKNOWN: SError("fileRef check failed", "fileRef was UNKNOWN with type: " + fileRef); break; default: SError("fileRef check failed", "type not in list!"); break; } } else { // TODO add warning } }
void CSMWorld::ResourcesManager::listResources() { static const char * const sMeshTypes[] = { "nif", 0 }; addResources (Resources ("meshes", UniversalId::Type_Mesh, sMeshTypes)); addResources (Resources ("icons", UniversalId::Type_Icon)); addResources (Resources ("music", UniversalId::Type_Music)); addResources (Resources ("sound", UniversalId::Type_SoundRes)); addResources (Resources ("textures", UniversalId::Type_Texture)); addResources (Resources ("videos", UniversalId::Type_Video)); }
void CSMWorld::ResourcesManager::setVFS(const VFS::Manager *vfs) { mVFS = vfs; mResources.clear(); addResources (Resources (vfs, "meshes", UniversalId::Type_Mesh, getMeshExtensions())); addResources (Resources (vfs, "icons", UniversalId::Type_Icon)); addResources (Resources (vfs, "music", UniversalId::Type_Music)); addResources (Resources (vfs, "sound", UniversalId::Type_SoundRes)); addResources (Resources (vfs, "textures", UniversalId::Type_Texture)); addResources (Resources (vfs, "video", UniversalId::Type_Video)); }