]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - plugins/vfspk3/vfs.cpp
vfs: support .pk3dir like in darkplaces engine - directories auto-added to the search...
[xonotic/netradiant.git] / plugins / vfspk3 / vfs.cpp
index 688374830ea7727ab8adf9eca47a8ac72ffa6bbb..6220f773982757ca5262498c7bb3ce3986cc6c91 100644 (file)
@@ -353,6 +353,26 @@ void InitDirectory(const char* directory, ArchiveModules& archiveModules)
           break;
 
         const char *ext = strrchr (name, '.');
+
+       if(ext && !string_compare_nocase_upper(ext, ".pk3dir"))
+       {
+         if (g_numDirs == (VFS_MAXDIRS-1))
+           continue;
+         snprintf(g_strDirs[g_numDirs], PATH_MAX, "%s%s/", path, name);
+         g_strDirs[g_numDirs][PATH_MAX] = '\0';
+         FixDOSName (g_strDirs[g_numDirs]);
+         AddSlash (g_strDirs[g_numDirs]);
+         g_numDirs++;
+
+         {
+           archive_entry_t entry;
+           entry.name = g_strDirs[g_numDirs-1];
+           entry.archive = OpenArchive(g_strDirs[g_numDirs-1]);
+           entry.is_pakfile = false;
+           g_archives.push_back(entry);
+         }
+       }
+
         if ((ext == 0) || *(++ext) == '\0' || GetArchiveTable(archiveModules, ext) == 0)
           continue;