initial commit

This commit is contained in:
2025-09-01 20:47:58 +08:00
commit 12c51b5ddb
843 changed files with 475321 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
#pragma once
#include "libNPK.h"
#include "libNPK_NPKFile.h"
namespace NPK
{
class CFileStream : public IFileStream
{
public:
virtual const char* name(void) const {
return m_fileName.c_str();
}
virtual uint32_t size(void) const {
return m_fileSize;
}
virtual uint32_t read(void* buffer, uint32_t size);
virtual bool seek(uint32_t offset);
virtual uint32_t tell(void) const {
return m_currentOffset;
}
virtual uint32_t crc32(void);
virtual bool isEOF(void) const {
return m_currentOffset >= m_fileSize;
}
protected:
//Pack file
CNPKFile* m_pNPKFile;
// windows file handle
HANDLE m_hFileandle;
std::string m_fileName;
//offset of the file in the pak file
uint32_t m_fileOffset = 0;
//size of the file
uint32_t m_fileSize = 0;
//current read offset in the file
uint32_t m_currentOffset = 0;
//CRC32 checksum of the file
uint32_t m_crc32 = 0;
//Flag to indicate if CRC32 has been calculated
bool m_crc32Calculated = false;
private:
CFileStream(CNPKFile* pNPKFile, HANDLE hFile, const INPKFile::FileNode& fileNode);
virtual ~CFileStream();
friend IFileStream* CNPKFile::openFileStream(const char* szFileName);
friend void CNPKFile::closeFileStream(IFileStream* fileStream);
};
}