33 lines
920 B
C++
33 lines
920 B
C++
#pragma once
|
|
|
|
#include "file.h"
|
|
|
|
class idFile_InZip : public idFile {
|
|
public:
|
|
idFile_InZip();
|
|
~idFile_InZip() override;
|
|
|
|
const char* GetName() const override { return name.c_str(); }
|
|
const char* GetFullPath() const override { return fullPath.c_str(); }
|
|
unsigned int Read(void* buffer, unsigned int length) override;
|
|
unsigned int Write(const void* buffer, unsigned int length) override;
|
|
std::int64_t Length() const override;
|
|
std::int64_t Tell() const override;
|
|
int Seek(std::int64_t offset, fsOrigin_t origin) override;
|
|
unsigned int Timestamp() const override { return timeStamp; }
|
|
void Flush() override;
|
|
void ForceFlush() override;
|
|
|
|
idStr name;
|
|
idStr fullPath;
|
|
int zipFilePos;
|
|
int fileSize;
|
|
void* z;
|
|
unsigned int timeStamp;
|
|
};
|
|
|
|
#if INTPTR_MAX == INT32_MAX
|
|
static_assert(sizeof(idFile_InZip) == 88,
|
|
"Recovered idFile_InZip ABI changed");
|
|
#endif
|