89 lines
1.9 KiB
C++
89 lines
1.9 KiB
C++
#include "tier2/ifilesystem.h"
|
|
#include "tier1/interface.h"
|
|
#include "tier0/lib.h"
|
|
|
|
class CPAKFileHandle : public IFileHandle
|
|
{
|
|
public:
|
|
|
|
};
|
|
|
|
class CPAKFileSystem : public IFileSystem
|
|
{
|
|
public:
|
|
virtual void Init() override {};
|
|
virtual void Shutdown() override {};
|
|
|
|
virtual IFileHandle *Open( const char *szFileName, int eOpCode ) override
|
|
{
|
|
const char *szOperation;
|
|
switch (eOpCode)
|
|
{
|
|
case FILEMODE_READ:
|
|
szOperation = "r";
|
|
break;
|
|
default:
|
|
V_printf("Operation is not supported\n");
|
|
break;
|
|
}
|
|
return 0;
|
|
|
|
CPAKFileHandle *pHandle = new CPAKFileHandle;
|
|
return pHandle;
|
|
}
|
|
virtual size_t Write( IFileHandle *pFile, const void *pData, size_t nDataSize ) override
|
|
{
|
|
return 0;
|
|
}
|
|
virtual size_t Read( IFileHandle *pFile, void *pData, size_t nDataSize ) override
|
|
{
|
|
CPAKFileHandle *pHandle = (CPAKFileHandle*)pFile;
|
|
if (!pHandle)
|
|
return 0;
|
|
return 0;
|
|
}
|
|
|
|
virtual size_t Seek( IFileHandle *pFile, ESeekMode eSeekMode, size_t nOffset ) override
|
|
{
|
|
int eLibcSeekMode = 0;
|
|
switch (eSeekMode) {
|
|
case SEEKMODE_RELATIVE_CURRENT:
|
|
eLibcSeekMode = SEEK_CUR;
|
|
break;
|
|
case SEEKMODE_RELATIVE_END:
|
|
eLibcSeekMode = SEEK_END;
|
|
break;
|
|
case SEEKMODE_RELATIVE_START:
|
|
eLibcSeekMode = SEEK_SET;
|
|
break;
|
|
}
|
|
CPAKFileHandle *pHandle = (CPAKFileHandle*)pFile;
|
|
if (!pHandle)
|
|
return 0;
|
|
}
|
|
|
|
virtual size_t Tell( IFileHandle *pFile ) override
|
|
{
|
|
CPAKFileHandle *pHandle = (CPAKFileHandle*)pFile;
|
|
if (!pHandle)
|
|
return 0;
|
|
}
|
|
virtual size_t Size( IFileHandle *pFile ) override
|
|
{
|
|
CPAKFileHandle *pHandle = (CPAKFileHandle*)pFile;
|
|
if (!pHandle)
|
|
return 0;
|
|
}
|
|
|
|
virtual void Close( IFileHandle *pFile ) override
|
|
{
|
|
CPAKFileHandle *pHandle = (CPAKFileHandle*)pFile;
|
|
if (!pHandle)
|
|
return;
|
|
delete pHandle;
|
|
}
|
|
virtual CUtlBuffer<unsigned char> Read( IFileHandle *pFile ) override { return NULL; };
|
|
};
|
|
|
|
EXPOSE_FILESYSTEM(CPAKFileSystem, "pakfs");
|