xoreos  0.0.5
Classes | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
Aurora::ERFFile Class Reference

Class to hold resource data of an ERF archive file. More...

#include <erffile.h>

Inheritance diagram for Aurora::ERFFile:
Inheritance graph
[legend]
Collaboration diagram for Aurora::ERFFile:
Collaboration graph
[legend]

Classes

struct  ERFHeader
 The header of an ERF file. More...
 
struct  IResource
 Internal resource information. More...
 

Public Member Functions

 ERFFile (Common::SeekableReadStream *erf, const std::vector< byte > &password=std::vector< byte >())
 Take over this stream and read an ERF file out of it. More...
 
 ~ERFFile ()
 
const ResourceListgetResources () const
 Return the list of resources. More...
 
uint32 getResourceSize (uint32 index) const
 Return the size of a resource. More...
 
Common::SeekableReadStreamgetResource (uint32 index, bool tryNoCopy=false) const
 Return a stream of the resource's contents. More...
 
uint32 getBuildYear () const
 Return the year the ERF was built. More...
 
uint32 getBuildDay () const
 Return the day of year the ERF was built. More...
 
const LocStringgetDescription () const
 Return the description. More...
 
Common::HashAlgo getNameHashAlgo () const
 Return with which algorithm the name is hashed. More...
 
- Public Member Functions inherited from Aurora::Archive
 Archive ()
 
virtual ~Archive ()
 
uint32 findResource (uint64 hash) const
 Return the index of the resource matching the hash, or 0xFFFFFFFF if not found. More...
 
uint32 findResource (const Common::UString &name, FileType type) const
 Return the index of the resource matching the name and type, or 0xFFFFFFFF if not found. More...
 
- Public Member Functions inherited from Aurora::AuroraFile
 AuroraFile ()
 
void clear ()
 
uint32 getID () const
 Return the file's ID. More...
 
uint32 getVersion () const
 Return the file's version. More...
 
bool isUTF16LE () const
 Were the ID and version encoded in little-endian UTF-16 in the file? More...
 

Static Public Member Functions

static LocString getDescription (Common::SeekableReadStream &erf)
 
static LocString getDescription (const Common::UString &fileName)
 
- Static Public Member Functions inherited from Aurora::AuroraFile
static void readHeader (Common::ReadStream &stream, uint32 &id, uint32 &version, bool &utf16le)
 Read the header out of a stream. More...
 
static void readHeader (Common::ReadStream &stream, uint32 &id, uint32 &version)
 Read the ID and version out of a stream. More...
 
static uint32 readHeaderID (Common::ReadStream &stream)
 Read the ID out of a stream. More...
 

Private Types

enum  Encryption {
  kEncryptionNone = 0, kEncryptionXOR = 1, kEncryptionBlowfishDAO = 2, kEncryptionBlowfishDA2 = 3,
  kEncryptionBlowfishNWN = 16
}
 
enum  Compression { kCompressionNone = 0, kCompressionBioWareZlib = 1, kCompressionHeaderlessZlib = 7, kCompressionStandardZlib = 8 }
 
typedef std::vector< IResourceIResourceList
 

Private Member Functions

void load ()
 
void readResources (Common::SeekableReadStream &erf, const ERFHeader &header)
 
void readV10ResList (Common::SeekableReadStream &erf, const ERFHeader &header)
 
void readV10KeyList (Common::SeekableReadStream &erf, const ERFHeader &header)
 
void readV11KeyList (Common::SeekableReadStream &erf, const ERFHeader &header)
 
void readV20ResList (Common::SeekableReadStream &erf, const ERFHeader &header)
 
void readV21ResList (Common::SeekableReadStream &erf, const ERFHeader &header)
 
void readV22ResList (Common::SeekableReadStream &erf, const ERFHeader &header)
 
void readV30ResList (Common::SeekableReadStream &erf, const ERFHeader &header)
 
void verifyPasswordDigest ()
 
void decryptNWNPremium ()
 
Common::SeekableReadStreamdecompress (Common::MemoryReadStream *packedStream, uint32 unpackedSize) const
 
Common::SeekableReadStreamdecompressBiowareZlib (Common::MemoryReadStream *packedStream, uint32 unpackedSize) const
 
Common::SeekableReadStreamdecompressHeaderlessZlib (Common::MemoryReadStream *packedStream, uint32 unpackedSize) const
 
Common::SeekableReadStreamdecompressStandardZlib (Common::MemoryReadStream *packedStream, uint32 unpackedSize) const
 
Common::SeekableReadStreamdecompressZlib (const byte *compressedData, uint32 packedSize, uint32 unpackedSize, int windowBits) const
 
const IResourcegetIResource (uint32 index) const
 

Static Private Member Functions

static void verifyVersion (uint32 id, uint32 version, bool utf16le)
 
static void readERFHeader (Common::SeekableReadStream &erf, ERFHeader &header, uint32 version, std::vector< byte > &password)
 
static void readDescription (LocString &description, Common::SeekableReadStream &erf, const ERFHeader &header)
 
static void readV10Header (Common::SeekableReadStream &erf, ERFHeader &header)
 
static void readV11Header (Common::SeekableReadStream &erf, ERFHeader &header)
 
static void readV20Header (Common::SeekableReadStream &erf, ERFHeader &header)
 
static void readV21Header (Common::SeekableReadStream &erf, ERFHeader &header)
 
static void readV22Header (Common::SeekableReadStream &erf, ERFHeader &header, uint32 &flags)
 
static void readV30Header (Common::SeekableReadStream &erf, ERFHeader &header, uint32 &flags)
 
static Common::MemoryReadStreamdecrypt (Common::SeekableReadStream &cryptStream, Encryption encryption, const std::vector< byte > &password)
 
static Common::MemoryReadStreamdecrypt (Common::SeekableReadStream *cryptStream, Encryption encryption, const std::vector< byte > &password)
 
static Common::SeekableReadStreamdecrypt (Common::SeekableReadStream &erf, size_t pos, size_t size, Encryption encryption, const std::vector< byte > &password)
 
static Common::SeekableReadStreamdecrypt (Common::SeekableReadStream &erf, size_t size, Encryption encryption, const std::vector< byte > &password)
 
static bool decryptNWNPremiumHeader (Common::SeekableReadStream &erf, ERFHeader &header, const std::vector< byte > &password)
 
static bool findNWNPremiumKey (Common::SeekableReadStream &erf, ERFHeader &header, const std::vector< byte > &md5, std::vector< byte > &password)
 
static void readNWNPremiumHeader (Common::SeekableReadStream &erf, ERFHeader &header, std::vector< byte > &password)
 

Private Attributes

Common::ScopedPtr< Common::SeekableReadStream_erf
 
ERFHeader _header
 
LocString _description
 The ERF's description. More...
 
ResourceList _resources
 External list of resource names and types. More...
 
IResourceList _iResources
 Internal list of resource offsets and sizes. More...
 
std::vector< byte_password
 The password we were given, if any. More...
 

Additional Inherited Members

- Public Types inherited from Aurora::Archive
typedef std::list< ResourceResourceList
 
- Protected Member Functions inherited from Aurora::AuroraFile
void readHeader (Common::ReadStream &stream)
 
- Static Protected Member Functions inherited from Aurora::AuroraFile
static uint32 convertUTF16LE (uint32 x1, uint32 x2)
 
- Protected Attributes inherited from Aurora::AuroraFile
uint32 _id
 The file's ID. More...
 
uint32 _version
 The file's version. More...
 
bool _utf16le
 The file's ID and version are in little-endian UTF-16. More...
 

Detailed Description

Class to hold resource data of an ERF archive file.

The ERF file is, together with KEY and BIF files, the most basic and widespread archive archive format used in Aurora engine games. There are several versions with different features.

Supported versions:

Known unsupported features:

ERF files can have several different file extensions:

Definition at line 105 of file erffile.h.

Member Typedef Documentation

◆ IResourceList

typedef std::vector<IResource> Aurora::ERFFile::IResourceList
private

Definition at line 207 of file erffile.h.

Member Enumeration Documentation

◆ Compression

Enumerator
kCompressionNone 

No compression as all.

kCompressionBioWareZlib 

Compression using DEFLATE with an extra header byte.

kCompressionHeaderlessZlib 

Compression using DEFLATE with default parameters.

kCompressionStandardZlib 

Compression using DEFLATE, standard zlib chunk.

Definition at line 155 of file erffile.h.

◆ Encryption

Enumerator
kEncryptionNone 

No encryption at all.

kEncryptionXOR 

XOR encryption as used by V2.2 and V3.0 (UNSUPPORTED!)

kEncryptionBlowfishDAO 

Blowfish encryption as used by Dragon Age: Origins (V2.2).

kEncryptionBlowfishDA2 

Blowfish encryption as used by Dragon Age II (V3.0).

kEncryptionBlowfishNWN 

Blowfish encryption as used by Neverwinter Nights (V1.1).

Definition at line 147 of file erffile.h.

Constructor & Destructor Documentation

◆ ERFFile()

Aurora::ERFFile::ERFFile ( Common::SeekableReadStream erf,
const std::vector< byte > &  password = std::vector<byte>() 
)

Take over this stream and read an ERF file out of it.

When the ERF is encrypted, use this password to decrypt it.

In Dragon Age: Origins and Dragon Age II, each DLC can have a unique password with which many of the DLC's ERF archive are encrypted. This password is used to directly decrypt the archive.

In Neverwinter Nights, each premium module consists of an unencrypted .nwm file and an encrypted .hak file, both of which are ERF archives. In this case, the password is the MD5 of the .nwm file. It is then used to calculate the key to decrypt the .hak file.

Definition at line 150 of file erffile.cpp.

References _erf, and load().

Here is the call graph for this function:

◆ ~ERFFile()

Aurora::ERFFile::~ERFFile ( )

Definition at line 158 of file erffile.cpp.

Member Function Documentation

◆ decompress()

Common::SeekableReadStream * Aurora::ERFFile::decompress ( Common::MemoryReadStream packedStream,
uint32  unpackedSize 
) const
private

◆ decompressBiowareZlib()

Common::SeekableReadStream * Aurora::ERFFile::decompressBiowareZlib ( Common::MemoryReadStream packedStream,
uint32  unpackedSize 
) const
private

Definition at line 794 of file erffile.cpp.

References decompressZlib(), Common::MemoryReadStream::getData(), and Common::MemoryReadStream::size().

Referenced by decompress().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decompressHeaderlessZlib()

Common::SeekableReadStream * Aurora::ERFFile::decompressHeaderlessZlib ( Common::MemoryReadStream packedStream,
uint32  unpackedSize 
) const
private

Definition at line 809 of file erffile.cpp.

References decompressZlib(), Common::MemoryReadStream::getData(), Common::kWindowBitsMax, and Common::MemoryReadStream::size().

Referenced by decompress().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decompressStandardZlib()

Common::SeekableReadStream * Aurora::ERFFile::decompressStandardZlib ( Common::MemoryReadStream packedStream,
uint32  unpackedSize 
) const
private

Definition at line 824 of file erffile.cpp.

References decompressZlib(), Common::MemoryReadStream::getData(), Common::kWindowBitsMax, and Common::MemoryReadStream::size().

Referenced by decompress().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decompressZlib()

Common::SeekableReadStream * Aurora::ERFFile::decompressZlib ( const byte compressedData,
uint32  packedSize,
uint32  unpackedSize,
int  windowBits 
) const
private

Definition at line 839 of file erffile.cpp.

References Common::decompressDeflate().

Referenced by decompressBiowareZlib(), decompressHeaderlessZlib(), and decompressStandardZlib().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decrypt() [1/4]

Common::MemoryReadStream * Aurora::ERFFile::decrypt ( Common::SeekableReadStream cryptStream,
Encryption  encryption,
const std::vector< byte > &  password 
)
staticprivate

Definition at line 731 of file erffile.cpp.

References Common::decryptBlowfishEBC(), kEncryptionBlowfishDA2, kEncryptionBlowfishDAO, and kEncryptionBlowfishNWN.

Referenced by decrypt(), decryptNWNPremium(), decryptNWNPremiumHeader(), and getResource().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decrypt() [2/4]

Common::MemoryReadStream * Aurora::ERFFile::decrypt ( Common::SeekableReadStream cryptStream,
Encryption  encryption,
const std::vector< byte > &  password 
)
staticprivate

Definition at line 744 of file erffile.cpp.

References decrypt().

Here is the call graph for this function:

◆ decrypt() [3/4]

Common::SeekableReadStream * Aurora::ERFFile::decrypt ( Common::SeekableReadStream erf,
size_t  pos,
size_t  size,
Encryption  encryption,
const std::vector< byte > &  password 
)
staticprivate

Definition at line 754 of file erffile.cpp.

References decrypt().

Here is the call graph for this function:

◆ decrypt() [4/4]

Common::SeekableReadStream * Aurora::ERFFile::decrypt ( Common::SeekableReadStream erf,
size_t  size,
Encryption  encryption,
const std::vector< byte > &  password 
)
staticprivate

Definition at line 760 of file erffile.cpp.

References decrypt(), and Common::SeekableReadStream::pos().

Here is the call graph for this function:

◆ decryptNWNPremium()

void Aurora::ERFFile::decryptNWNPremium ( )
private

Definition at line 302 of file erffile.cpp.

References _erf, _header, _password, decrypt(), Aurora::ERFFile::ERFHeader::encryption, kEncryptionBlowfishNWN, kEncryptionNone, and Common::ScopedPtrBase< T, Deallocator >::reset().

Referenced by load().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decryptNWNPremiumHeader()

bool Aurora::ERFFile::decryptNWNPremiumHeader ( Common::SeekableReadStream erf,
ERFHeader header,
const std::vector< byte > &  password 
)
staticprivate

Definition at line 225 of file erffile.cpp.

References decrypt(), Aurora::ERFFile::ERFHeader::isSensible(), kEncryptionBlowfishNWN, Common::SeekableReadStream::pos(), readV11Header(), and Common::SeekableReadStream::size().

Referenced by findNWNPremiumKey().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ findNWNPremiumKey()

bool Aurora::ERFFile::findNWNPremiumKey ( Common::SeekableReadStream erf,
ERFHeader header,
const std::vector< byte > &  md5,
std::vector< byte > &  password 
)
staticprivate

Definition at line 236 of file erffile.cpp.

References ARRAYSIZE, decryptNWNPremiumHeader(), Common::kMD5Length, Aurora::kNWNPremiumKeyLength, Aurora::kNWNPremiumKeys, Common::SeekableReadStream::pos(), and Common::SeekableReadStream::seek().

Referenced by readNWNPremiumHeader().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getBuildDay()

uint32 Aurora::ERFFile::getBuildDay ( ) const

Return the day of year the ERF was built.

Definition at line 689 of file erffile.cpp.

References _header, and Aurora::ERFFile::ERFHeader::buildDay.

◆ getBuildYear()

uint32 Aurora::ERFFile::getBuildYear ( ) const

Return the year the ERF was built.

Definition at line 685 of file erffile.cpp.

References _header, and Aurora::ERFFile::ERFHeader::buildYear.

◆ getDescription() [1/3]

const LocString & Aurora::ERFFile::getDescription ( ) const

Return the description.

Definition at line 693 of file erffile.cpp.

References _description.

Referenced by getDescription(), Engines::NWN::Module::getDescriptionCampaign(), and Engines::NWN::Module::getDescriptionExtra().

Here is the caller graph for this function:

◆ getDescription() [2/3]

LocString Aurora::ERFFile::getDescription ( Common::SeekableReadStream erf)
static

Definition at line 853 of file erffile.cpp.

References readDescription(), readERFHeader(), Aurora::AuroraFile::readHeader(), and verifyVersion().

Here is the call graph for this function:

◆ getDescription() [3/3]

LocString Aurora::ERFFile::getDescription ( const Common::UString fileName)
static

Definition at line 875 of file erffile.cpp.

References getDescription().

Here is the call graph for this function:

◆ getIResource()

const ERFFile::IResource & Aurora::ERFFile::getIResource ( uint32  index) const
private

Definition at line 701 of file erffile.cpp.

References _iResources.

Referenced by getResource(), and getResourceSize().

Here is the caller graph for this function:

◆ getNameHashAlgo()

Common::HashAlgo Aurora::ERFFile::getNameHashAlgo ( ) const
virtual

Return with which algorithm the name is hashed.

Reimplemented from Aurora::Archive.

Definition at line 848 of file erffile.cpp.

References Aurora::AuroraFile::_version, Common::kHashFNV64, Common::kHashNone, and kVersion30.

◆ getResource()

Common::SeekableReadStream * Aurora::ERFFile::getResource ( uint32  index,
bool  tryNoCopy = false 
) const
virtual

◆ getResources()

const Archive::ResourceList & Aurora::ERFFile::getResources ( ) const
virtual

Return the list of resources.

Implements Aurora::Archive.

Definition at line 697 of file erffile.cpp.

References _resources.

Referenced by Engines::KotOR::SavedGame::fillFromModuleSAV(), and Engines::KotOR::SavedGame::fillFromSAV().

Here is the caller graph for this function:

◆ getResourceSize()

uint32 Aurora::ERFFile::getResourceSize ( uint32  index) const
virtual

Return the size of a resource.

Reimplemented from Aurora::Archive.

Definition at line 708 of file erffile.cpp.

References getIResource(), and Aurora::ERFFile::IResource::unpackedSize.

Here is the call graph for this function:

◆ load()

void Aurora::ERFFile::load ( )
private

◆ readDescription()

void Aurora::ERFFile::readDescription ( LocString description,
Common::SeekableReadStream erf,
const ERFHeader header 
)
staticprivate

◆ readERFHeader()

void Aurora::ERFFile::readERFHeader ( Common::SeekableReadStream erf,
ERFHeader header,
uint32  version,
std::vector< byte > &  password 
)
staticprivate

◆ readNWNPremiumHeader()

void Aurora::ERFFile::readNWNPremiumHeader ( Common::SeekableReadStream erf,
ERFHeader header,
std::vector< byte > &  password 
)
staticprivate

Definition at line 257 of file erffile.cpp.

References Aurora::ERFFile::ERFHeader::encryption, findNWNPremiumKey(), Aurora::ERFFile::ERFHeader::isNWNPremium, kEncryptionBlowfishNWN, and Common::kMD5Length.

Referenced by readERFHeader().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readResources()

void Aurora::ERFFile::readResources ( Common::SeekableReadStream erf,
const ERFHeader header 
)
private

◆ readV10Header()

void Aurora::ERFFile::readV10Header ( Common::SeekableReadStream erf,
ERFHeader header 
)
staticprivate

◆ readV10KeyList()

void Aurora::ERFFile::readV10KeyList ( Common::SeekableReadStream erf,
const ERFHeader header 
)
private

Definition at line 556 of file erffile.cpp.

References _resources, Common::kEncodingASCII, Aurora::ERFFile::ERFHeader::offKeyList, Common::readStringFixed(), Common::ReadStream::readUint16LE(), Common::SeekableReadStream::seek(), and Common::SeekableReadStream::skip().

Referenced by readResources().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readV10ResList()

void Aurora::ERFFile::readV10ResList ( Common::SeekableReadStream erf,
const ERFHeader header 
)
private

Definition at line 582 of file erffile.cpp.

References _iResources, Aurora::ERFFile::ERFHeader::offResList, Common::ReadStream::readUint32LE(), and Common::SeekableReadStream::seek().

Referenced by readResources().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readV11Header()

void Aurora::ERFFile::readV11Header ( Common::SeekableReadStream erf,
ERFHeader header 
)
staticprivate

◆ readV11KeyList()

void Aurora::ERFFile::readV11KeyList ( Common::SeekableReadStream erf,
const ERFHeader header 
)
private

Definition at line 569 of file erffile.cpp.

References _resources, Common::kEncodingASCII, Aurora::ERFFile::ERFHeader::offKeyList, Common::readStringFixed(), Common::ReadStream::readUint16LE(), Common::SeekableReadStream::seek(), and Common::SeekableReadStream::skip().

Referenced by readResources().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readV20Header()

void Aurora::ERFFile::readV20Header ( Common::SeekableReadStream erf,
ERFHeader header 
)
staticprivate

◆ readV20ResList()

void Aurora::ERFFile::readV20ResList ( Common::SeekableReadStream erf,
const ERFHeader header 
)
private

Definition at line 591 of file erffile.cpp.

References _iResources, _resources, Common::kEncodingUTF16LE, Aurora::kFileTypeNone, Aurora::ERFFile::ERFHeader::offResList, Common::readStringFixed(), Common::ReadStream::readUint32LE(), Common::SeekableReadStream::seek(), and TypeMan.

Referenced by readResources().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readV21Header()

void Aurora::ERFFile::readV21Header ( Common::SeekableReadStream erf,
ERFHeader header 
)
staticprivate

◆ readV21ResList()

void Aurora::ERFFile::readV21ResList ( Common::SeekableReadStream erf,
const ERFHeader header 
)
private

Definition at line 610 of file erffile.cpp.

References _iResources, _resources, Common::kEncodingASCII, Aurora::kFileTypeNone, Aurora::ERFFile::ERFHeader::offResList, Common::readStringFixed(), Common::ReadStream::readUint32LE(), Common::SeekableReadStream::seek(), and TypeMan.

Referenced by readResources().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readV22Header()

void Aurora::ERFFile::readV22Header ( Common::SeekableReadStream erf,
ERFHeader header,
uint32 flags 
)
staticprivate

◆ readV22ResList()

void Aurora::ERFFile::readV22ResList ( Common::SeekableReadStream erf,
const ERFHeader header 
)
private

Definition at line 630 of file erffile.cpp.

References _iResources, _resources, Common::kEncodingUTF16LE, Aurora::kFileTypeNone, Aurora::ERFFile::ERFHeader::offResList, Common::readStringFixed(), Common::ReadStream::readUint32LE(), Common::SeekableReadStream::seek(), and TypeMan.

Referenced by readResources().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readV30Header()

void Aurora::ERFFile::readV30Header ( Common::SeekableReadStream erf,
ERFHeader header,
uint32 flags 
)
staticprivate

◆ readV30ResList()

void Aurora::ERFFile::readV30ResList ( Common::SeekableReadStream erf,
const ERFHeader header 
)
private

◆ verifyPasswordDigest()

void Aurora::ERFFile::verifyPasswordDigest ( )
private

◆ verifyVersion()

void Aurora::ERFFile::verifyVersion ( uint32  id,
uint32  version,
bool  utf16le 
)
staticprivate

Definition at line 161 of file erffile.cpp.

References Common::debugTag(), kERFID, kHAKID, kMODID, kSAVID, Aurora::kVersion10, kVersion11, kVersion20, kVersion21, kVersion22, and kVersion30.

Referenced by getDescription(), and load().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ _description

LocString Aurora::ERFFile::_description
private

The ERF's description.

Definition at line 214 of file erffile.h.

Referenced by getDescription(), and load().

◆ _erf

Common::ScopedPtr<Common::SeekableReadStream> Aurora::ERFFile::_erf
private

Definition at line 209 of file erffile.h.

Referenced by decryptNWNPremium(), ERFFile(), getResource(), and load().

◆ _header

ERFHeader Aurora::ERFFile::_header
private

◆ _iResources

IResourceList Aurora::ERFFile::_iResources
private

Internal list of resource offsets and sizes.

Definition at line 220 of file erffile.h.

Referenced by getIResource(), readResources(), readV10ResList(), readV20ResList(), readV21ResList(), readV22ResList(), and readV30ResList().

◆ _password

std::vector<byte> Aurora::ERFFile::_password
private

The password we were given, if any.

Definition at line 223 of file erffile.h.

Referenced by decryptNWNPremium(), getResource(), load(), and verifyPasswordDigest().

◆ _resources

ResourceList Aurora::ERFFile::_resources
private

External list of resource names and types.

Definition at line 217 of file erffile.h.

Referenced by getResources(), readResources(), readV10KeyList(), readV11KeyList(), readV20ResList(), readV21ResList(), readV22ResList(), and readV30ResList().


The documentation for this class was generated from the following files: