hostile-takeover/game/mempdbreader.h
2016-01-01 13:02:05 -08:00

40 lines
949 B
C++

#ifndef __MEMPDBREADER_H__
#define __MEMPDBREADER_H__
#include "game/ht.h"
#include "mpshared/pdbreader.h"
namespace wi {
//
// Reads pdbs from memory
//
class MemPdbReader : public PdbReader
{
public:
MemPdbReader() secPackFile;
~MemPdbReader() secPackFile;
bool Open(char *pszFn) secPackFile;
virtual void Close() secPackFile;
virtual bool GetRecordSize(word nRec, word *pcb) secPackFile;
virtual bool ReadRecord(word nRec, word n, word cb, void *pv) secPackFile;
virtual byte *MapRecord(word nRec, void **ppvCookie, word *pcb = NULL) secPackFile;
virtual void UnmapRecord(word nRec, void *pvCookie) secPackFile;
private:
bool GetRecordEntry(word nRec, int cRec, RecordEntryType *prece, dword *pcb) secPackFile;
dword GetCompressionHeader(word nRec, CompressionHeader *pcoh) secPackFile;
dword m_cb;
byte *m_pb;
word m_cRecs;
word m_cMapped;
CacheHandle *m_aphcRecordData;
};
} // namespace wi
#endif // __MEMPDBREADER_H__