31 #include "common/stack.h" 32 #include "gob/video.h" 44 #define RENDERFLAG_NOINVALIDATE 0x0001 45 #define RENDERFLAG_CAPTUREPUSH 0x0002 46 #define RENDERFLAG_COLLISIONS 0x0004 47 #define RENDERFLAG_CAPTUREPOP 0x0008 48 #define RENDERFLAG_USEDELTAS 0x0010 49 #define RENDERFLAG_BORDERHOTSPOTS 0x0040 50 #define RENDERFLAG_HASWINDOWS 0x0080 51 #define RENDERFLAG_NOBLITINVALIDATED 0x0200 52 #define RENDERFLAG_NOSUBTITLES 0x0400 53 #define RENDERFLAG_FROMSPLIT 0x0800 54 #define RENDERFLAG_DOUBLECOORDS 0x1000 55 #define RENDERFLAG_DOUBLEVIDEO 0x2000 59 static const int kSpriteCount = 100;
60 static const int kFontCount = 16;
61 static const int kFrontSurface = 20;
62 static const int kBackSurface = 21;
63 static const int kAnimSurface = 22;
64 static const int kCursorSurface = 23;
65 static const int kCaptureSurface = 30;
72 FontToSprite() : sprite(0), base(0), width(0), height(0) {}
102 const char *_textToPrint;
109 int16 _subtitleColor;
112 Font *_fonts[kFontCount];
116 int16 _invalidatedCount;
117 int16 _invalidatedLefts[30];
118 int16 _invalidatedTops[30];
119 int16 _invalidatedRights[30];
120 int16 _invalidatedBottoms[30];
124 bool _noInvalidated57;
125 bool _paletteCleared;
131 int16 _unusedPalette1[18];
132 int16 _unusedPalette2[16];
143 int16 _transparentCursor;
144 uint32 _cursorTimeKey;
151 int32 _cursorHotspotXVar;
152 int32 _cursorHotspotYVar;
154 int32 _cursorHotspotX;
155 int32 _cursorHotspotY;
162 int8 _cursorAnimLow[40];
163 int8 _cursorAnimHigh[40];
164 int8 _cursorAnimDelays[40];
167 bool _cursorDrawnFromScripts;
171 int16 _palLoadData1[4];
172 int16 _palLoadData2[4];
180 int16 _scrollOffsetY;
181 int16 _scrollOffsetX;
189 int16 _winVarArrayLeft;
190 int16 _winVarArrayTop;
191 int16 _winVarArrayWidth;
192 int16 _winVarArrayHeight;
193 int16 _winVarArrayStatus;
194 int16 _winVarArrayLimitsX;
195 int16 _winVarArrayLimitsY;
198 void invalidateRect(int16 left, int16 top, int16 right, int16 bottom);
199 void blitInvalidated();
203 void dirtiedRect(int16 surface, int16 left, int16 top, int16 right, int16 bottom);
204 void dirtiedRect(
SurfacePtr surface, int16 left, int16 top, int16 right, int16 bottom);
206 void initSpriteSurf(int16 index, int16 width, int16 height, int16 flags, byte bpp = 0);
207 void freeSprite(int16 index);
208 void adjustCoords(
char adjust, int16 *coord1, int16 *coord2);
209 void adjustCoords(
char adjust, uint16 *coord1, uint16 *coord2) {
210 adjustCoords(adjust, (int16 *)coord1, (int16 *)coord2);
212 void resizeCursors(int16 width, int16 height, int16 count,
bool transparency);
213 int stringLength(
const char *str, uint16 fontIndex);
214 void printTextCentered(int16
id, int16 left, int16 top, int16 right,
215 int16 bottom,
const char *str, int16 fontIndex, int16 color);
216 void drawButton( uint16
id, int16 left, int16 top, int16 right, int16 bottom,
char *paramStr, int16 var3, int16 var4, int16 shortId);
218 int32 getSpriteRectSize(int16 index);
219 void forceBlit(
bool backwards =
false);
221 static const int16 _wobbleTable[360];
222 void wobble(
Surface &surfDesc);
224 Font *loadFont(
const char *path)
const;
225 bool loadFont(uint16 fontIndex,
const char *path);
227 virtual void initScreen() = 0;
228 virtual void closeScreen() = 0;
229 virtual void blitCursor() = 0;
231 virtual void animateCursor(int16 cursor) = 0;
232 virtual void updateAnimatedCursor() {}
233 virtual void printTotText(int16
id) = 0;
234 virtual void spriteOperation(int16 operation,
bool ttsAddHotspotText =
true) = 0;
236 virtual int16 openWin(int16
id) {
return 0; }
237 virtual void closeWin(int16
id) {}
238 virtual int16 handleCurWin() {
return 0; }
239 virtual int16 getWinFromCoord(int16 &dx, int16 &dy) {
return -1; }
240 virtual void moveWin(int16
id) {}
241 virtual bool overlapWin(int16 idWin1, int16 idWin2) {
return false; }
242 virtual void closeAllWin() {}
243 virtual void activeWin(int16
id) {}
257 void initScreen()
override;
258 void closeScreen()
override;
259 void blitCursor()
override;
260 void animateCursor(int16 cursor)
override;
261 void printTotText(int16
id)
override;
262 void spriteOperation(int16 operation,
bool ttsAddHotspotText =
true)
override;
270 void initScreen()
override;
271 void closeScreen()
override;
272 void blitCursor()
override;
273 void animateCursor(int16 cursor)
override;
274 void printTotText(int16
id)
override;
275 void spriteOperation(int16 operation,
bool ttsAddHotspotText =
true)
override;
281 uint8 _mayorWorkaroundStatus;
283 void fixLittleRedStrings();
288 void initScreen()
override;
298 void spriteOperation(int16 operation,
bool ttsAddHotspotText =
true)
override;
300 void decompWin(int16 x, int16 y,
SurfacePtr destPtr);
301 void drawWin(int16 fct);
302 void saveWin(int16
id);
303 void restoreWin(int16
id);
304 void handleWinBorder(int16
id);
305 void drawWinTrace(int16 left, int16 top, int16 width, int16 height);
307 int16 openWin(int16
id)
override;
308 void closeWin(int16
id)
override;
309 int16 getWinFromCoord(int16 &dx, int16 &dy)
override;
310 int16 handleCurWin()
override;
311 void activeWin(int16
id)
override;
312 void moveWin(int16
id)
override;
313 bool overlapWin(int16 idWin1, int16 idWin2)
override;
314 void closeAllWin()
override;
325 int16 rectBottom = 0;
334 void printTotText(int16
id)
override;
335 void spriteOperation(int16 operation,
bool ttsAddHotspotText =
true)
override;
344 void initScreen()
override;
345 void animateCursor(int16 cursor)
override;
346 void updateAnimatedCursor()
override;
354 uint16 _aniCurrentFrame;
355 uint32 _aniLastFrameTime;
357 void clearAniCursor();
359 bool updateAniCursorFrame();
361 bool loadCursorFile();
367 #define DRAW_BLITSURF 0 368 #define DRAW_PUTPIXEL 1 369 #define DRAW_FILLRECT 2 370 #define DRAW_DRAWLINE 3 371 #define DRAW_INVALIDATE 4 372 #define DRAW_LOADSPRITE 5 373 #define DRAW_PRINTTEXT 6 374 #define DRAW_DRAWBAR 7 375 #define DRAW_CLEARRECT 8 376 #define DRAW_FILLRECTABS 9 377 #define DRAW_DRAWLETTER 10
Definition: algorithm.h:29
Definition: surface.h:106
Definition: movie_decoder.h:32