about summary refs log tree commit diff
path: root/src/engine
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2010-09-24 13:38:03 +0200
committeroy <Tom_Adams@web.de>2010-09-24 13:38:03 +0200
commit7e0b37e06c71dc96d68f3352ecd2c799caaaf8ec (patch)
treeb76100af28ae1fecb480ff02ae42f24507e92d06 /src/engine
parent1cbf731fc0c3cbc5a1d2be6f1af51cb93d9739e2 (diff)
downloadzcatch-7e0b37e06c71dc96d68f3352ecd2c799caaaf8ec.tar.gz
zcatch-7e0b37e06c71dc96d68f3352ecd2c799caaaf8ec.zip
fixed that it checks the current dir for demos too
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/shared/storage.cpp16
-rw-r--r--src/engine/storage.h1
2 files changed, 14 insertions, 3 deletions
diff --git a/src/engine/shared/storage.cpp b/src/engine/shared/storage.cpp
index 74f7cd3f..8785a5bf 100644
--- a/src/engine/shared/storage.cpp
+++ b/src/engine/shared/storage.cpp
@@ -137,23 +137,33 @@ public:
 		// list current directory
 		if(Types&TYPE_CURRENT)
 		{
-			fs_listdir(pPath, pfnCallback, pUser);
+			fs_listdir(pPath, pfnCallback, TYPE_CURRENT, pUser);
 		}
 		
 		// list users directory
 		if(Types&TYPE_SAVE)
 		{
 			str_format(aBuffer, sizeof(aBuffer), "%s/%s", m_aApplicationSavePath, pPath);
-			fs_listdir(aBuffer, pfnCallback, pUser);
+			fs_listdir(aBuffer, pfnCallback, TYPE_SAVE, pUser);
 		}
 		
 		// list datadir directory
 		if(Types&TYPE_DATA)
 		{
 			str_format(aBuffer, sizeof(aBuffer), "%s/%s", m_aDatadir, pPath);
-			fs_listdir(aBuffer, pfnCallback, pUser);
+			fs_listdir(aBuffer, pfnCallback, TYPE_DATA, pUser);
 		}		
 	}
+
+	virtual const char *GetDirectory(int Type) const
+	{
+		switch(Type)
+		{
+		case TYPE_SAVE: return m_aApplicationSavePath;
+		case TYPE_DATA: return m_aDatadir;
+		default: return "";
+		}
+	}
 	
 	virtual IOHANDLE OpenFile(const char *pFilename, int Flags, char *pBuffer = 0, int BufferSize = 0)
 	{
diff --git a/src/engine/storage.h b/src/engine/storage.h
index c79f16a8..b9b02239 100644
--- a/src/engine/storage.h
+++ b/src/engine/storage.h
@@ -16,6 +16,7 @@ public:
 	};
 	
 	virtual void ListDirectory(int Types, const char *pPath, FS_LISTDIR_CALLBACK pfnCallback, void *pUser) = 0;
+	virtual const char *GetDirectory(int Type) const = 0;
 	virtual IOHANDLE OpenFile(const char *pFilename, int Flags, char *pBuffer = 0, int BufferSize = 0) = 0;
 	virtual bool RemoveFile(const char *pFilename) = 0;
 };