aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorJoseph-Eugene Winzer2018-03-24 17:19:31 +0100
committerThierry Crozat2018-04-15 18:23:12 +0100
commitac438cc918150a7549eee9cc45f60ca04a13f7da (patch)
tree53071760f5045f2763b0e6e14f630fc9389726f3 /engines
parentf525efa1d44d34e4462ffbefd7187e0ce5d988f9 (diff)
downloadscummvm-rg350-ac438cc918150a7549eee9cc45f60ca04a13f7da.tar.gz
scummvm-rg350-ac438cc918150a7549eee9cc45f60ca04a13f7da.tar.bz2
scummvm-rg350-ac438cc918150a7549eee9cc45f60ca04a13f7da.zip
SUPERNOVA: Adds skeleton for screen abstraction
Diffstat (limited to 'engines')
-rw-r--r--engines/supernova/module.mk5
-rw-r--r--engines/supernova/screen.cpp33
-rw-r--r--engines/supernova/screen.h76
3 files changed, 112 insertions, 2 deletions
diff --git a/engines/supernova/module.mk b/engines/supernova/module.mk
index 8be8e72509..722a230cde 100644
--- a/engines/supernova/module.mk
+++ b/engines/supernova/module.mk
@@ -4,11 +4,12 @@ MODULE_OBJS := \
console.o \
detection.o \
graphics.o \
- supernova.o \
resman.o \
rooms.o \
+ screen.o \
sound.o \
- state.o
+ state.o \
+ supernova.o
MODULE_DIRS += \
engines/supernova
diff --git a/engines/supernova/screen.cpp b/engines/supernova/screen.cpp
new file mode 100644
index 0000000000..a5285aafb6
--- /dev/null
+++ b/engines/supernova/screen.cpp
@@ -0,0 +1,33 @@
+/* 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.
+*
+*/
+
+#include "supernova/screen.h"
+
+#include "supernova/screenstatic.cpp"
+
+namespace Supernova {
+
+Screen::Screen(SupernovaEngine *vm, ResourceManager *resMan) {
+
+}
+
+}
diff --git a/engines/supernova/screen.h b/engines/supernova/screen.h
new file mode 100644
index 0000000000..df1b97bec3
--- /dev/null
+++ b/engines/supernova/screen.h
@@ -0,0 +1,76 @@
+/* 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 SUPERNOVA_SCREEN_H
+#define SUPERNOVA_SCREEN_H
+
+#include "common/scummsys.h"
+
+#include "supernova/imageid.h"
+#include "supernova/msn_def.h"
+
+namespace Supernova {
+
+class SupernovaEngine;
+class ResourceManager;
+class GuiElement;
+class Room;
+
+class Screen {
+public:
+ struct ImageInfo {
+ int filenumber;
+ int section;
+ };
+
+public:
+ Screen(SupernovaEngine *vm, ResourceManager *resMan);
+
+ void paletteFadeIn();
+ void paletteFadeOut();
+ void paletteBrightness();
+ void renderImage(int section);
+ void renderImageSection(int section);
+ bool setCurrentImage(int filenumber);
+ void saveScreen(int x, int y, int width, int height);
+ void saveScreen(const GuiElement &guiElement);
+ void restoreScreen();
+ void renderRoom(Room &room);
+ void renderMessage(const char *text, MessagePosition position = kMessageNormal);
+ void removeMessage();
+ void renderText(const char *text, int x, int y, byte color);
+ void renderText(const uint16 character, int x, int y, byte color);
+ void renderText(const char *text);
+ void renderText(const uint16 character);
+ void renderText(const GuiElement &guiElement);
+ void renderBox(int x, int y, int width, int height, byte color);
+ void renderBox(const GuiElement &guiElement);
+ void setColor63(byte value);
+ void update();
+
+private:
+
+};
+
+}
+
+#endif