raze/source/common/filesystem/file_zip.h

49 lines
1 KiB
C
Raw Normal View History

#ifndef __FILE_ZIP_H
#define __FILE_ZIP_H
#include "resourcefile.h"
//==========================================================================
//
// Zip Lump
//
//==========================================================================
struct FZipLump : public FResourceLump
{
uint16_t GPFlags;
uint8_t Method;
2020-04-11 21:54:33 +00:00
bool NeedFileStart;
int CompressedSize;
int64_t Position;
unsigned CRC32;
2020-04-11 21:54:33 +00:00
virtual FileReader *GetReader();
virtual int FillCache();
private:
void SetLumpAddress();
2020-04-11 21:54:33 +00:00
virtual int GetFileOffset();
FCompressedBuffer GetRawData();
};
//==========================================================================
//
// Zip file
//
//==========================================================================
class FZipFile : public FResourceFile
{
FZipLump *Lumps;
public:
FZipFile(const char * filename, FileReader &file);
virtual ~FZipFile();
2020-04-11 21:54:33 +00:00
bool Open(bool quiet, LumpFilterInfo* filter);
virtual FResourceLump *GetLump(int no) { return ((unsigned)no < NumLumps)? &Lumps[no] : NULL; }
};
2020-04-11 21:54:33 +00:00
#endif