ScummVM API documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
doodle.h
1 #ifndef IMAGE_DOODLE_DECODER_H
2 #define IMAGE_DOODLE_DECODER_H
3 
4 #include "image/image_decoder.h"
5 #include "common/stream.h"
6 #include "graphics/surface.h"
7 
8 namespace Image {
9 
10 class DoodleDecoder : public ImageDecoder {
11 public:
16  DoodleDecoder(const byte *palette);
17  ~DoodleDecoder() override;
18 
19  // ImageDecoder interface
20  bool loadStream(Common::SeekableReadStream &stream) override;
21  void destroy() override;
22  const Graphics::Surface *getSurface() const override { return _surface; }
23  const byte *getPalette() const override { return _palette; }
24  uint16 getPaletteColorCount() const override { return 16; }
25 
33  bool loadStreams(Common::SeekableReadStream &highresStream,
34  Common::SeekableReadStream &colorStream1,
35  Common::SeekableReadStream &colorStream2);
36 
37 private:
38  static const int kWidth = 320;
39  static const int kHeight = 200;
40  static const int kHeaderSize = 192;
41  static const int kColorDataSize = 1000; // 40x25 color cells
42 
43  Graphics::Surface *_surface;
44  const byte *_palette;
45 
53  void processDoodleCell(int cellIdx, const byte *highresData,
54  const byte *colorData1, const byte *colorData2);
55 };
56 
57 } // End of namespace Image
58 
59 #endif
const byte * getPalette() const override
Definition: doodle.h:23
Definition: image_decoder.h:52
Definition: surface.h:67
DoodleDecoder(const byte *palette)
uint16 getPaletteColorCount() const override
Definition: doodle.h:24
bool loadStream(Common::SeekableReadStream &stream) override
Definition: stream.h:745
Definition: doodle.h:10
const Graphics::Surface * getSurface() const override
Definition: doodle.h:22
bool loadStreams(Common::SeekableReadStream &highresStream, Common::SeekableReadStream &colorStream1, Common::SeekableReadStream &colorStream2)
void destroy() override
Definition: movie_decoder.h:32