IffStream* DataArchiveStore::openIffFile(const String& fileName) { if (fileName.isEmpty()) return nullptr; IffStream* iffStream = nullptr; int size = 0; byte* data = getData(fileName, size); if (size == 0) return nullptr; iffStream = new IffStream(); if (iffStream != nullptr) { try { if (!iffStream->parseChunks(data, size, fileName)) { delete iffStream; iffStream = nullptr; } } catch (Exception& e) { delete iffStream; iffStream = nullptr; } } delete [] data; return iffStream; }