aboutsummaryrefslogtreecommitdiff
path: root/engines/voyeur/screen.h
diff options
context:
space:
mode:
authorPaul Gilbert2016-03-10 21:53:14 -0500
committerPaul Gilbert2016-03-14 20:56:30 -0400
commitc05a09d33717d1b2c41b258013be589fa63a7097 (patch)
tree00ad9e4dfa42e965341e27c15410d01826f7c329 /engines/voyeur/screen.h
parent077250acfb09afb67a445fad30aef6af2e2af014 (diff)
downloadscummvm-rg350-c05a09d33717d1b2c41b258013be589fa63a7097.tar.gz
scummvm-rg350-c05a09d33717d1b2c41b258013be589fa63a7097.tar.bz2
scummvm-rg350-c05a09d33717d1b2c41b258013be589fa63a7097.zip
VOYEUR: Changed engine to use Graphics::ManagedSurface
Diffstat (limited to 'engines/voyeur/screen.h')
-rw-r--r--engines/voyeur/screen.h116
1 files changed, 116 insertions, 0 deletions
diff --git a/engines/voyeur/screen.h b/engines/voyeur/screen.h
new file mode 100644
index 0000000000..aaf61747a4
--- /dev/null
+++ b/engines/voyeur/screen.h
@@ -0,0 +1,116 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef VOYEUR_GRAPHICS_H
+#define VOYEUR_GRAPHICS_H
+
+#include "common/scummsys.h"
+#include "common/array.h"
+#include "common/rect.h"
+#include "common/serializer.h"
+#include "graphics/screen.h"
+
+namespace Voyeur {
+
+#define SCREEN_WIDTH 320
+#define SCREEN_HEIGHT 200
+
+class VoyeurEngine;
+class Screen;
+class DisplayResource;
+class PictureResource;
+class ViewPortResource;
+class ViewPortListResource;
+class FontResource;
+class FontInfoResource;
+class CMapResource;
+
+class DrawInfo {
+public:
+ int _penColor;
+ Common::Point _pos;
+public:
+ DrawInfo(int penColor, const Common::Point &pos);
+};
+
+typedef void (Screen::*ScreenMethodPtr)();
+typedef void (Screen::*ViewPortSetupPtr)(ViewPortResource *);
+typedef void (Screen::*ViewPortAddPtr)(ViewPortResource *, int idx, const Common::Rect &bounds);
+typedef void (Screen::*ViewPortRestorePtr)(ViewPortResource *);
+
+class Screen: public Graphics::Screen {
+public:
+ byte _VGAColors[PALETTE_SIZE];
+ PictureResource *_backgroundPage;
+ int _SVGAMode;
+ ViewPortListResource *_viewPortListPtr;
+ ViewPortResource *_vPort;
+ bool _saveBack;
+ Common::Rect *_clipPtr;
+ uint _planeSelect;
+ CMapResource *_backColors;
+ FontInfoResource *_fontPtr;
+ PictureResource *_fontChar;
+ DrawInfo *_drawPtr;
+ DrawInfo _defaultDrawInfo;
+private:
+ VoyeurEngine *_vm;
+
+ void restoreBack(Common::Array<Common::Rect> &rectList, int rectListCount,
+ PictureResource *srcPic, PictureResource *destPic);
+public:
+ Screen(VoyeurEngine *vm);
+ virtual ~Screen();
+
+ void sInitGraphics();
+
+ void setupMCGASaveRect(ViewPortResource *viewPort);
+ void addRectOptSaveRect(ViewPortResource *viewPort, int idx, const Common::Rect &bounds);
+ void restoreMCGASaveRect(ViewPortResource *viewPort);
+ void addRectNoSaveBack(ViewPortResource *viewPort, int idx, const Common::Rect &bounds);
+
+ void sDrawPic(DisplayResource *srcDisplay, DisplayResource *destDisplay, const Common::Point &initialOffset);
+ void fillPic(DisplayResource *display, byte onOff);
+ void sDisplayPic(PictureResource *pic);
+ void drawANumber(DisplayResource *display, int num, const Common::Point &pt);
+ void flipPage();
+ void setPalette(const byte *palette, int start, int count);
+ void setPalette128(const byte *palette, int start, int count);
+ void resetPalette();
+ void setColor(int idx, byte r, byte g, byte b);
+ void setOneColor(int idx, byte r, byte g, byte b);
+ void setColors(int start, int count, const byte *pal);
+ void screenReset();
+ void fadeDownICF1(int steps);
+ void fadeUpICF1(int steps = 0);
+ void fadeDownICF(int steps);
+ void drawDot();
+
+ /**
+ * Synchronizes the game data
+ */
+ void synchronize(Common::Serializer &s);
+};
+
+} // End of namespace Voyeur
+
+#endif /* VOYEUR_GRAPHICS_H */