ScummVM API documentation
seqplayer_lok.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 KYRA_SEQPLAYER_H
23#define KYRA_SEQPLAYER_H
24
25#include "kyra/engine/kyra_lok.h"
26
27namespace Kyra {
28
29class SeqPlayer {
30public:
31 SeqPlayer(KyraEngine_LoK *vm, OSystem *system);
32 ~SeqPlayer();
33
34 void setCopyViewOffs(bool offs) {
35 _copyViewOffs = offs;
36 }
37
38 void makeHandShapes();
39 void freeHandShapes();
40
41 bool playSequence(const uint8 *seqData, bool skipSeq);
42
43 uint8 *setPanPages(int pageNum, int shape);
44protected:
45 KyraEngine_LoK *_vm;
46 OSystem *_system;
47 Screen *_screen;
48 Sound *_sound;
49 Resource *_res;
50
51 uint8 *_handShapes[3];
52 bool _copyViewOffs;
53
54 typedef void (SeqPlayer::*SeqProc)();
55 struct SeqEntry {
56 uint8 len;
57 SeqProc proc;
58 const char *desc;
59 };
60
61 // the sequence procs
62 void s1_wsaOpen();
63 void s1_wsaClose();
64 void s1_wsaPlayFrame();
65 void s1_wsaPlayNextFrame();
66 void s1_wsaPlayPrevFrame();
67 void s1_drawShape();
68 void s1_waitTicks();
69 void s1_copyWaitTicks();
70 void s1_shuffleScreen();
71 void s1_copyView();
72 void s1_loopInit();
73 void s1_loopInc();
74 void s1_skip();
75 void s1_loadPalette();
76 void s1_loadBitmap();
77 void s1_fadeToBlack();
78 void s1_printText();
79 void s1_printTalkText();
80 void s1_restoreTalkText();
81 void s1_clearCurrentScreen();
82 void s1_break();
83 void s1_fadeFromBlack();
84 void s1_copyRegion();
85 void s1_copyRegionSpecial();
86 void s1_fillRect();
87 void s1_playEffect();
88 void s1_playTrack();
89 void s1_allocTempBuffer();
90 void s1_textDisplayEnable();
91 void s1_textDisplayDisable();
92 void s1_endOfScript();
93 void s1_loadIntroVRM();
94 void s1_playVocFile();
95 void s1_miscUnk3();
96 void s1_prefetchVocFile();
97 void s1_textDisplayWait();
98
99 struct SeqMovie {
100 Movie *movie;
101 int32 page;
102 int16 frame;
103 int16 numFrames;
104 Common::Point pos;
105
106 void clear() {
107 movie = nullptr;
108 page = 0;
109 frame = 0;
110 numFrames = 0;
111 pos.x = 0;
112 pos.y = 0;
113 }
114 };
115
116 const uint8 *_seqData;
117 uint8 _seqCode;
118 uint8 *_specialBuffer;
119 SeqMovie _seqMovies[12];
120 SeqLoop _seqLoopTable[20];
121 uint8 _seqLoopPos;
122 uint16 _seqWsaCurDecodePage;
123 uint32 _seqDisplayedTextTimer;
124 uint32 _seqVocStartTimer;
125 bool _seqDisplayTextFlag;
126 uint8 _seqDisplayedText;
127 uint8 _seqDisplayedChar;
128 uint16 _seqDisplayedTextX;
129 bool _seqTalkTextPrinted;
130 bool _seqTalkTextRestored;
131 bool _seqQuitFlag;
132 bool _seqSkipCommand;
133};
134
135} // End of namespace Kyra
136
137#endif
Definition: kyra_lok.h:97
Definition: wsamovie.h:31
Definition: resource.h:48
Definition: screen.h:587
Definition: seqplayer_lok.h:29
Definition: sound.h:91
Definition: system.h:166
Definition: detection.h:27
T y
Definition: rect.h:49
T x
Definition: rect.h:48
Definition: rect.h:144
Definition: kyra_lok.h:68
Definition: seqplayer_lok.h:55
Definition: seqplayer_lok.h:99