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.cpp13
-rw-r--r--src/engine/storage.h1
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);