about summary refs log tree commit diff
path: root/src/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/shared/storage.cpp9
-rw-r--r--src/engine/storage.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/src/engine/shared/storage.cpp b/src/engine/shared/storage.cpp
index cfe64e4b..46127700 100644
--- a/src/engine/shared/storage.cpp
+++ b/src/engine/shared/storage.cpp
@@ -300,6 +300,15 @@ public:
 		return remove(GetPath(Type, pFilename, aBuffer, sizeof(aBuffer)));
 	}
 
+	virtual bool CreateFolder(const char *pFoldername, int Type)
+	{
+		if(Type < 0 || Type >= m_NumPaths)
+			return false;
+
+		char aBuffer[MAX_PATH_LENGTH];
+		return fs_makedir(GetPath(Type, pFoldername, aBuffer, sizeof(aBuffer)));
+	}
+
 	static IStorage *Create(const char *pApplicationName, int NumArgs, const char **ppArguments)
 	{
 		CStorage *p = new CStorage();
diff --git a/src/engine/storage.h b/src/engine/storage.h
index c483c52d..d01a7dd0 100644
--- a/src/engine/storage.h
+++ b/src/engine/storage.h
@@ -16,6 +16,7 @@ public:
 	virtual void ListDirectory(int Type, const char *pPath, FS_LISTDIR_CALLBACK pfnCallback, void *pUser) = 0;
 	virtual IOHANDLE OpenFile(const char *pFilename, int Flags, int Type, char *pBuffer = 0, int BufferSize = 0) = 0;
 	virtual bool RemoveFile(const char *pFilename, int Type) = 0;
+	virtual bool CreateFolder(const char *pFoldername, int Type) = 0;
 };
 
 extern IStorage *CreateStorage(const char *pApplicationName, int NumArgs, const char **ppArguments);