summaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
authorkrzys-h <krzys_h@interia.pl>2014-08-06 12:59:27 +0200
committerPiotr Dziwinski <piotrdz@gmail.com>2014-09-21 12:29:01 +0200
commitf0b38721e05dbda1d3562abc06fec535d1aa5a07 (patch)
tree5ced0570d2d814ba9201977c09877a9e896199e1 /src/common
parent0b2f25a6e3fda014b0f5a4282283fb90b0958d42 (diff)
downloadcolobot-f0b38721e05dbda1d3562abc06fec535d1aa5a07.tar.gz
colobot-f0b38721e05dbda1d3562abc06fec535d1aa5a07.tar.bz2
colobot-f0b38721e05dbda1d3562abc06fec535d1aa5a07.zip
Loading all mods found in "mods" directory
Diffstat (limited to 'src/common')
-rw-r--r--src/common/resources/resourcemanager.cpp15
-rw-r--r--src/common/resources/resourcemanager.h2
2 files changed, 17 insertions, 0 deletions
diff --git a/src/common/resources/resourcemanager.cpp b/src/common/resources/resourcemanager.cpp
index 8119a6b..0741c70 100644
--- a/src/common/resources/resourcemanager.cpp
+++ b/src/common/resources/resourcemanager.cpp
@@ -130,6 +130,21 @@ bool CResourceManager::Exists(const std::string &filename)
return PHYSFS_exists(filename.c_str());
}
+std::vector<std::string> CResourceManager::ListFiles(const std::string &directory)
+{
+ std::vector<std::string> result;
+
+ char **files = PHYSFS_enumerateFiles(directory.c_str());
+
+ for (char **i = files; *i != nullptr; i++) {
+ result.push_back(*i);
+ }
+
+ PHYSFS_freeList(files);
+
+ return result;
+}
+
int CResourceManager::SDLClose(SDL_RWops *context)
{
diff --git a/src/common/resources/resourcemanager.h b/src/common/resources/resourcemanager.h
index 4052047..b222048 100644
--- a/src/common/resources/resourcemanager.h
+++ b/src/common/resources/resourcemanager.h
@@ -16,6 +16,7 @@
#pragma once
+#include <vector>
#include <string>
#include <SDL.h>
@@ -33,6 +34,7 @@ public:
static SDL_RWops* GetSDLFileHandler(const std::string &filename);
static CSNDFile* GetSNDFileHandler(const std::string &filename);
static bool Exists(const std::string &filename);
+ static std::vector<std::string> ListFiles(const std::string &directory);
private:
static int SDLSeek(SDL_RWops *context, int offset, int whence);