Files
funnygame/public/filesystem.h
2025-05-31 00:42:41 +03:00

45 lines
1.1 KiB
C++

#ifndef FILESYSTEM_H
#define FILESYSTEM_H
#include "tier0/platform.h"
#include "tier1/utlbuffer.h"
#include "tier1/utlstring.h"
#include "engine.h"
enum EFileOptions
{
IFILE_READ,
IFILE_WRITE,
IFILE_APPEND
};
typedef struct FileHandle_s
{
FILE *file;
FILE *parent;
EFileOptions options;
size_t nSize;
size_t nOffset;
size_t nPtr;
} *FileHandle_t;
interface IFileSystem
{
public:
static void InitFilesystem( void );
static void AddGameDirectory( const char *psz );
static bool LoadPackFile( const char *szFilename );
static void CreatePath( const char *szPath );
static FileHandle_t Open( const char *szFilename, EFileOptions options );
static void Close( FileHandle_t file );
static size_t Size( FileHandle_t file );
static size_t Read( FileHandle_t file, void *pOutput, size_t nSize);
static size_t ReadLine( FileHandle_t file, void *pOutput, size_t nSize);
static size_t Write( FileHandle_t file, void *pInput, size_t nSize);
static size_t Seek( FileHandle_t file, size_t nSize);
static size_t Tell( FileHandle_t file, size_t nSize);
static size_t fprintf( FileHandle_t file, const char *szFormat, ...);
};
#endif