ScummVM API documentation
animseq.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #ifndef LURE_ANIMSEQ_H
23 #define LURE_ANIMSEQ_H
24 
25 #include "lure/screen.h"
26 
27 namespace Lure {
28 
29 enum AnimAbortType {ABORT_NONE, ABORT_END_INTRO, ABORT_NEXT_SCENE};
30 
32  uint16 numFrames;
33  uint8 adlibSoundId;
34  uint8 rolandSoundId;
35  uint8 channelNum;
36  bool music;
37 };
38 
40 private:
41  bool _isEGA;
42  uint16 _screenId;
43  Palette &_palette;
44  MemoryBlock *_decodedData;
45  MemoryBlock *_lineRefs;
46  byte *_pPixels, *_pLines;
47  byte *_pPixelsStart, *_pLinesStart;
48  byte *_pPixelsEnd, *_pLinesEnd;
49  const AnimSoundSequence *_soundList;
50  int _frameDelay;
51  uint8 _loops;
52 
53  AnimAbortType delay(uint32 milliseconds);
54  void egaDecodeFrame(byte *&pPixels);
55  void vgaDecodeFrame(byte *&pPixels, byte *&pLines);
56 public:
57  AnimationSequence(uint16 screenId, Palette &palette, bool fadeIn, int frameDelay = 7,
58  const AnimSoundSequence *soundList = NULL, uint8 loops = 1);
60 
61  AnimAbortType show();
62  bool step();
63  byte *showInitialScreen(byte *pSrc = 0);
64 };
65 
66 } // End of namespace Lure
67 
68 #endif
Definition: palette.h:33
Definition: animseq.h:39
Definition: animseq.h:27
Definition: memory.h:31
Definition: animseq.h:31