#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 Read( IFileHandle *pFile ) override { return NULL; }; virtual const char *ReadString( IFileHandle *pFile ) override { return NULL; }; }; EXPOSE_FILESYSTEM(CPAKFileSystem, "pakfs");