aboutsummaryrefslogtreecommitdiff
path: root/gob/draw.h
diff options
context:
space:
mode:
Diffstat (limited to 'gob/draw.h')
-rw-r--r--gob/draw.h164
1 files changed, 89 insertions, 75 deletions
diff --git a/gob/draw.h b/gob/draw.h
index 6880881c51..2084aa1bf5 100644
--- a/gob/draw.h
+++ b/gob/draw.h
@@ -31,81 +31,95 @@ namespace Gob {
#define RENDERFLAG_CAPTUREPOP 8
#define RENDERFLAG_USEDELTAS 0x10
-typedef struct Draw_FontToSprite {
- int8 sprite;
- int8 base;
- int8 width;
- int8 height;
-} Draw_FontToSprite;
-
-extern int16 draw_fontIndex;
-extern int16 draw_spriteLeft;
-extern int16 draw_spriteTop;
-extern int16 draw_spriteRight;
-extern int16 draw_spriteBottom;
-extern int16 draw_destSpriteX;
-extern int16 draw_destSpriteY;
-extern int16 draw_backColor;
-extern int16 draw_frontColor;
-extern char draw_letterToPrint;
-extern Draw_FontToSprite draw_fontToSprite[4];
-extern int16 draw_destSurface;
-extern int16 draw_sourceSurface;
-extern int16 draw_renderFlags;
-extern int16 draw_backDeltaX;
-extern int16 draw_backDeltaY;
-extern FontDesc *draw_fonts[4];
-extern char *draw_textToPrint;
-extern int16 draw_transparency;
-extern SurfaceDesc *draw_spritesArray[50];
-
-extern int16 draw_invalidatedCount;
-extern int16 draw_invalidatedTops[30];
-extern int16 draw_invalidatedLefts[30];
-extern int16 draw_invalidatedRights[30];
-extern int16 draw_invalidatedBottoms[30];
-
-extern int8 draw_noInvalidated;
-extern int8 draw_doFullFlip;
-extern int8 draw_paletteCleared;
-
-extern int16 draw_cursorIndex;
-extern int16 draw_transparentCursor;
-
-extern SurfaceDesc *draw_backSurface;
-extern SurfaceDesc *draw_frontSurface;
-
-extern int16 draw_unusedPalette1[18];
-extern int16 draw_unusedPalette2[16];
-extern Color draw_vgaPalette[256];
-extern Color draw_vgaSmallPalette[16];
-
-extern int16 draw_cursorX;
-extern int16 draw_cursorY;
-extern int16 draw_cursorWidth;
-extern int16 draw_cursorHeight;
-
-extern int16 draw_cursorXDeltaVar;
-extern int16 draw_cursorYDeltaVar;
-
-extern SurfaceDesc *draw_cursorSprites;
-extern SurfaceDesc *draw_cursorBack;
-extern int16 draw_cursorAnim;
-extern int8 draw_cursorAnimLow[40];
-extern int8 draw_cursorAnimHigh[40];
-extern int8 draw_cursorAnimDelays[40];
-extern int8 draw_applyPal;
-
-void draw_invalidateRect(int16 left, int16 top, int16 right, int16 bottom);
-void draw_blitInvalidated(void);
-void draw_setPalette(void);
-void draw_clearPalette(void);
-void draw_blitCursor(void);
-
-void draw_spriteOperation(int16 operation);
-void draw_animateCursor(int16 cursor);
-void draw_interPalLoad(void);
-void draw_printText(void);
+class Draw {
+ public:
+ typedef struct FontToSprite {
+ int8 sprite;
+ int8 base;
+ int8 width;
+ int8 height;
+ FontToSprite() : sprite(0), base(0), width(0), height() {}
+ } FontToSprite;
+
+ int16 fontIndex;
+ int16 spriteLeft;
+ int16 spriteTop;
+ int16 spriteRight;
+ int16 spriteBottom;
+ int16 destSpriteX;
+ int16 destSpriteY;
+ int16 backColor;
+ int16 frontColor;
+ char letterToPrint;
+ FontToSprite fontToSprite[4];
+ int16 destSurface;
+ int16 sourceSurface;
+ int16 renderFlags;
+ int16 backDeltaX;
+ int16 backDeltaY;
+ Video::FontDesc *fonts[4];
+ char *textToPrint;
+ int16 transparency;
+ Video::SurfaceDesc *spritesArray[50];
+
+ int16 invalidatedCount;
+ int16 invalidatedTops[30];
+ int16 invalidatedLefts[30];
+ int16 invalidatedRights[30];
+ int16 invalidatedBottoms[30];
+
+ int8 noInvalidated;
+// int8 doFullFlip; // Never used?!?
+ int8 paletteCleared;
+
+ int16 gcursorIndex;
+ int16 transparentCursor;
+ uint32 cursorTimeKey;
+
+ Video::SurfaceDesc *backSurface;
+ Video::SurfaceDesc *frontSurface;
+
+ int16 unusedPalette1[18];
+ int16 unusedPalette2[16];
+ Video::Color vgaPalette[256];
+ Video::Color vgaSmallPalette[16];
+
+ int16 cursorX;
+ int16 cursorY;
+ int16 cursorWidth;
+ int16 cursorHeight;
+
+ int16 cursorXDeltaVar;
+ int16 cursorYDeltaVar;
+
+ Video::SurfaceDesc *cursorSprites;
+ Video::SurfaceDesc *cursorBack;
+ int16 cursorAnim;
+ int8 cursorAnimLow[40];
+ int8 cursorAnimHigh[40];
+ int8 cursorAnimDelays[40];
+ int8 applyPal;
+
+ int16 palLoadData1[4];
+ int16 palLoadData2[4];
+
+ void invalidateRect(int16 left, int16 top, int16 right, int16 bottom);
+ void blitInvalidated(void);
+ void setPalette(void);
+ void clearPalette(void);
+ void blitCursor(void);
+
+ void spriteOperation(int16 operation);
+ void animateCursor(int16 cursor);
+ void interPalLoad(void);
+ void printText(void);
+
+ Draw(GobEngine *vm);
+
+ protected:
+ GobEngine *_vm;
+};
+
// Draw operations
#define DRAW_BLITSURF 0