22 #ifndef SCI_RESOURCE_DECOMPRESSOR_H 23 #define SCI_RESOURCE_DECOMPRESSOR_H 25 #include "common/scummsys.h" 33 enum ResourceCompression {
71 virtual int unpack(
Common::ReadStream *src, byte *dest, uint32 nPacked, uint32 nUnpacked);
81 virtual void init(
Common::ReadStream *src, byte *dest, uint32 nPacked, uint32 nUnpacked);
89 uint32 getBitsMSB(
int n);
97 uint32 getBitsLSB(
int n);
113 virtual void putByte(byte b);
120 return (_dwWrote == _szUnpacked) && (_dwRead >= _szPacked);
138 int unpack(
Common::ReadStream *src, byte *dest, uint32 nPacked, uint32 nUnpacked)
override;
151 DecompressorLZW(ResourceCompression compression) : _compression(compression) {}
152 int unpack(
Common::ReadStream *src, byte *dest, uint32 nPacked, uint32 nUnpacked)
override;
158 static void unpackView(byte *src, byte *dest);
159 static void unpackPic(byte *src, byte *dest,
int unpackedSize);
160 static void decodeRLE(byte **rleData, byte **pixelData, byte *dest,
int decodedSize);
161 static void skipRLE(byte **rleData,
int decodedSize);
163 ResourceCompression _compression;
171 int unpack(
Common::ReadStream *src, byte *dest, uint32 nPacked, uint32 nUnpacked)
override;
181 int unpack(
Common::ReadStream *src, byte *dest, uint32 nPacked, uint32 nUnpacked)
override;
186 void copyComp(
int offs, uint32 clen);
193 #endif // SCI_RESOURCE_DECOMPRESSOR_H uint32 _dwRead
number of bytes read from _src
Definition: decompressor.h:127
byte _nBits
number of unread bits in _dwBits
Definition: decompressor.h:124
uint32 _dwBits
bits buffer
Definition: decompressor.h:123
uint32 _dwWrote
number of bytes written to _dest
Definition: decompressor.h:128
Definition: decompressor.h:149
Definition: algorithm.h:29
bool isFinished()
Definition: decompressor.h:119
Definition: decompressor.h:51
uint32 _szPacked
size of the compressed data
Definition: decompressor.h:125
uint32 _szUnpacked
size of the decompressed data
Definition: decompressor.h:126
Definition: decompressor.h:169
Definition: decompressor.h:136