diff options
author | Vincent Hamm | 2002-03-06 19:58:06 +0000 |
---|---|---|
committer | Vincent Hamm | 2002-03-06 19:58:06 +0000 |
commit | cf868605f6f619c339660eb3380246d92bbbbe5f (patch) | |
tree | cb471f0286ab328808c145ab542828baa766ae58 /smush.h | |
parent | 6265b84fb3b2cd07a6e079b1d12fa89a521e6898 (diff) | |
download | scummvm-rg350-cf868605f6f619c339660eb3380246d92bbbbe5f.tar.gz scummvm-rg350-cf868605f6f619c339660eb3380246d92bbbbe5f.tar.bz2 scummvm-rg350-cf868605f6f619c339660eb3380246d92bbbbe5f.zip |
Preliminary smush playback support.
svn-id: r3669
Diffstat (limited to 'smush.h')
-rw-r--r-- | smush.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/smush.h b/smush.h new file mode 100644 index 0000000000..556fd4f064 --- /dev/null +++ b/smush.h @@ -0,0 +1,77 @@ +struct PersistentCodecData37 { + byte *deltaBuf; + byte *deltaBufs[2]; + uint32 deltaSize; + uint width, height; + int curtable; + int unk2,unk3; + + uint16 flags; + + int16 *table1; + int table_last_pitch; + byte table_last_flags; +}; + +struct CodecData { + byte *out,*src; + int x,y; + int outwidth,outheight; + int w,h,pitch; + + int flags; +}; + + +struct SmushPlayer { + FILE *_in; + bool _paletteChanged; + byte * _block; + uint32 _blockTag; + uint32 _blockSize; + byte *_cur; + byte *_renderBitmap; + uint32 _frameSize; + uint32 _frmeTag, _frmeSize; + + byte *_deltaBuf; + int _deltaBufSize; + + PersistentCodecData37 pcd37; + + byte _fluPalette[768]; + uint16 _fluPalMul129[768]; + uint16 _fluPalWords[768]; + + void openFile(byte* fileName); + void nextBlock(); + + uint32 fileReadBE32(); + uint32 fileReadLE32(); + void go(); + + bool parseTag(); + + void parseAHDR(); + void parseFRME(); + + void parseNPAL(); + void parseFOBJ(); + void parsePSAD(); + void parseTRES(); + void parseXPAL(); + + void fileRead(void *mem, int len); + + uint32 nextBE32(); + void init(); + + void startVideo(short int arg, byte* videofile); + + void setPalette(); + + long fileSize; + + Scumm *sm; + +}; |