diff options
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/shared/storage.cpp | 9 | ||||
| -rw-r--r-- | src/engine/storage.h | 1 |
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); |