7#include <unordered_map>
18 explicit DB2Reader(
const std::string& file);
149 bool readFieldValue(
unsigned int sectionIndex,
unsigned int recordIndexInSection,
150 unsigned int fieldIndex,
unsigned int arrayIndex,
unsigned int arraySize,
151 uint32_t recordID,
unsigned int& result)
const;
153 const unsigned char*
getRecordOffset(
unsigned int sectionIndex,
unsigned int recordIndexInSection)
const;
GameFile implementation that reads from a CASC storage archive.
Unified reader for WDC2, WDC3, WDC4 and WDC5 DB2 files.
std::map< uint32_t, std::map< uint32_t, uint32_t > > m_commonData
unsigned char * m_fileData
bool readFieldValue(unsigned int sectionIndex, unsigned int recordIndexInSection, unsigned int fieldIndex, unsigned int arrayIndex, unsigned int arraySize, uint32_t recordID, unsigned int &result) const
std::vector< SectionData > m_sections
uint64_t readBitpackedValue64(const FieldStorageInfo &info, const unsigned char *recordOffset) const
std::unordered_map< uint32_t, size_t > m_idToRecordIndex
unsigned char * m_palletData
const unsigned char * getRecordOffset(unsigned int sectionIndex, unsigned int recordIndexInSection) const
std::unordered_map< uint32_t, std::vector< uint32_t > > m_relationshipLookup
std::map< uint32_t, uint32_t > m_copyTable
std::map< uint32_t, uint32_t > m_palletBlockOffsets
std::vector< FieldStorageInfo > m_fieldStorageInfo
std::map< int, int > m_fieldSizes
std::vector< RecordLocation > m_recordLocations
@ COMP_BITPACKED_INDEXED_ARRAY
Provides typed, field-name-based access to records in a WDC DB2 file.
uint32_t additional_data_size
uint16_t field_offset_bits
std::vector< OffsetMapEntry > offsetMap
unsigned char * recordDataPtr
uint32_t offsetRecordsEnd
uint32_t relationshipDataSize
uint32_t stringTableOffset
uint32_t offsetMapIdCount
std::map< uint32_t, uint32_t > relationshipMap
std::vector< uint32_t > idList
uint32_t previousStringTableSize