hostile-takeover/game/mempdbreader.h
2014-07-06 17:47:28 -07: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, dword *pdwCookie, word *pcb = NULL) secPackFile;
virtual void UnmapRecord(word nRec, dword dwCookie) 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__