- Mirror copies: EterPack (EterPack, EterPackManager, EterPackCursor, CSHybridCrypt policy, Inline.h) and EterBase logic units tea/lzo/Timer/Stl/Random, with PORT-tagged width fixes (LONG index fields, static_assert(sizeof(TEterPackIndex) == 192), tea_word = Win32 unsigned long). - TEA pack keys are extracted from the reference EterPack.cpp at configure time into build/.../EterPackKeys.generated.h; nothing key-bearing is tracked. - Platform EterBase: FileBase (stdio, case-insensitive fallback), MappedFile (mmap / MapViewOfFile), CRC32, Debug, Utils StringPath/StringLowers. - Win32Crt: CreateDirectory/DeleteFile/_access/MAKEFOURCC; Win32MinMax.h min/max (force-included on MinGW, whose windows.h omits them in C++). - tests/port_eterpack_test: registers pack/Index like PackInitialize and checks 119 registrations / 103 packs + root / 54891 entries / 52609 paths / 2282 overrides with first-registered-wins, and that exactly the 4 short-layout SECURITY files fail to load. - 2R count corrected (136 -> 119 registrations, 103 distinct packs + root). Not runtime-reachable yet (asset_io pack backend is step 5b), so port-map statuses stay TODO. port_gate: macos/android/ios/windows PASS. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
26 lines
425 B
C++
26 lines
425 B
C++
#ifndef __INC_ETERPACKCURSOR_H__
|
|
#define __INC_ETERPACKCURSOR_H__
|
|
|
|
#include "EterPack.h"
|
|
|
|
class CEterPackCursor
|
|
{
|
|
public:
|
|
CEterPackCursor(CEterPack * pack);
|
|
~CEterPackCursor();
|
|
|
|
bool Open(const char* filename);
|
|
void Close();
|
|
void Seek(long offset);
|
|
bool Read(LPVOID data, long size);
|
|
long Size();
|
|
|
|
private:
|
|
CEterPack * m_pPack;
|
|
CMappedFile m_file;
|
|
LPCVOID m_pData;
|
|
long m_ReadPoint;
|
|
};
|
|
|
|
#endif
|