#ifndef NALL_STREAM_GZIP_HPP #define NALL_STREAM_GZIP_HPP #include namespace nall { struct gzipstream : memorystream { using stream::read; using stream::write; gzipstream(const stream& stream) { unsigned size = stream.size(); uint8_t *data = new uint8_t[size]; stream.read(data, size); Decode::GZIP archive; bool result = archive.decompress(data, size); delete[] data; if(result == false) return; psize = archive.size; pdata = new uint8_t[psize]; memcpy(pdata, archive.data, psize); } ~gzipstream() { if(pdata) delete[] pdata; } }; } #endif