diff options
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/shared/storage.cpp | 13 | ||||
| -rw-r--r-- | src/engine/storage.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/engine/shared/storage.cpp b/src/engine/shared/storage.cpp index e8b0f8bb..74f7cd3f 100644 --- a/src/engine/shared/storage.cpp +++ b/src/engine/shared/storage.cpp @@ -1,4 +1,5 @@ // copyright (c) 2007 magnus auvinen, see licence.txt for more info +#include <stdio.h> //remove() #include <base/system.h> #include <engine/storage.h> #include "engine.h" @@ -193,6 +194,18 @@ public: pBuffer[0] = 0; return 0; } + + virtual bool RemoveFile(const char *pFilename) + { + char aBuffer[1024]; + str_format(aBuffer, sizeof(aBuffer), "%s/%s", m_aApplicationSavePath, pFilename); + bool Fail = remove(aBuffer); + + if(Fail) + Fail = remove(pFilename); + + return !Fail; + } static IStorage *Create(const char *pApplicationName, int NumArgs, const char **ppArguments) { diff --git a/src/engine/storage.h b/src/engine/storage.h index 4c80446e..c79f16a8 100644 --- a/src/engine/storage.h +++ b/src/engine/storage.h @@ -17,6 +17,7 @@ public: virtual void ListDirectory(int Types, const char *pPath, FS_LISTDIR_CALLBACK pfnCallback, void *pUser) = 0; virtual IOHANDLE OpenFile(const char *pFilename, int Flags, char *pBuffer = 0, int BufferSize = 0) = 0; + virtual bool RemoveFile(const char *pFilename) = 0; }; extern IStorage *CreateStorage(const char *pApplicationName, int NumArgs, const char **ppArguments); |