aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/gui/gui_helpers.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/gui/gui_helpers.h')
-rw-r--r--engines/sci/gui/gui_helpers.h150
1 files changed, 150 insertions, 0 deletions
diff --git a/engines/sci/gui/gui_helpers.h b/engines/sci/gui/gui_helpers.h
new file mode 100644
index 0000000000..3f80d0cd75
--- /dev/null
+++ b/engines/sci/gui/gui_helpers.h
@@ -0,0 +1,150 @@
+/* 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.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#include "common/rect.h"
+#include "sci/engine/vm_types.h"
+
+namespace Sci {
+
+typedef int sciResourceId; // is a resource-number and -1 means no parameter given
+typedef reg_t sciMemoryHandle;
+typedef uint16 SCIHANDLE;
+
+struct sciNode {
+ SCIHANDLE next; // heap handle to next node
+ SCIHANDLE prev; // heap handle to data
+ uint16 key; // maybe also a heap handle
+};
+struct sciNode1 : sciNode {
+ uint16 value;
+};
+
+// sciPort and sciWnd need to be binary identical, so if you change anything in one, you have to change it in the other one
+// as well!
+struct sciPort {
+ sciNode node; // node struct for list operations
+ int16 top, left;
+ Common::Rect rect;
+ int16 curTop, curLeft;
+ int16 fontH;
+ sciResourceId fontId;
+ int16 textFace, penClr, backClr;
+ int16 penMode;
+};
+
+struct sciWnd {
+ // begins like sciPort (needs to be binary identical!!)
+ sciNode node; // node struct for list operations
+ int16 top, left;
+ Common::Rect rect;
+ int16 curTop, curLeft;
+ int16 fontH;
+ sciResourceId fontId;
+ int16 textFace, penClr, backClr;
+ int16 penMode;
+ // window specific members
+ Common::Rect rect0; // client area of window
+ Common::Rect rect1; // total area of window including borders
+ uint16 wndStyle;
+ uint16 uSaveFlag;
+ reg_t hSaved1;
+ reg_t hSaved2;
+ SCIHANDLE hTitle;
+ bool bDrawed;
+};
+
+struct sciCast {
+ sciNode node;
+ uint16 view;
+ uint16 loop;
+ uint16 cel;
+ uint16 z;
+ uint16 pal;
+ SCIHANDLE hSaved;
+ Common::Rect rect;
+};
+
+struct sciColor {
+ byte used;
+ byte r, g, b;
+};
+
+struct sciPalette {
+ byte mapping[256];
+ uint32 timestamp;
+ sciColor colors[256];
+ byte intencity[256];
+};
+
+struct sciPalSched {
+ byte from;
+ uint32 schedule;
+};
+
+#define STUB(str) debug("STUB: '%s' at file %s line %d",str,__FILE__,__LINE__)
+
+
+// FIXME: The following feature enums and macros should be reconsidered.
+// The way they are done right now is highly error prone.
+
+enum {
+ FTR_WINDOWMGR_SCI0 = (0<<0), // SCI0 based window manager
+ FTR_WINDOWMGR_SCI1 = (1<<0), // SCI1 based window manager
+ FTR_CAN_BEHERE = (0<<1), // Kernel77 is kCanBeHere (SCI0)
+ FTR_CANT_BEHERE = (1<<1), // Kernel77 is kCantBeHere(SCI1)
+ FTR_SOUND_SCI0 = (0<<2), // SCI0 Sound functions
+ FTR_SOUND_SCI01 = (1<<2), // SCI0+ Sound functions
+ FTR_SOUND_SCI1 = (2<<2), // SCI1 Sound functions
+ FTR_SHOWPIC_SCI0 = (0<<4), // SCI0 ShowPic (44 effect codes)
+ FTR_SHOWPIC_SCI1 = (1<<4), // SCI1 ShowPic (15 effect codes)
+ FTR_GL_ANIMATE = (1<<5) // Animate can be paused by global flag
+};
+
+#define GETFTR_WINDOWMGR(x) (x & 0x00000001)
+#define GETFTR_CANBEHERE(x) (x & 0x00000002)
+#define GETFTR_SOUND(x) (x & 0x0000000C)
+#define GETFTR_SHOWPIC(x) (x & 0x00000010)
+
+enum {
+ GFX_STOPUPDATE = 0x01,
+ GFX_VIEWUPDATED = 0x02,
+ GFX_NOUPDATE = 0x04,
+ GFX_HIDDEN = 0x08,
+ GFX_FIXEDPRIO=0x10,
+ GFX_ALWAYSUPDATE = 0x20,
+ GFX_FORCEUPDATE = 0x40,
+ GFX_REMOVEVIEW = 0x80
+};
+
+enum SCILanguage{
+ kLangNone = 0,
+ kLangEnglish = 1,
+ kLangFrench = 33,
+ kLangSpanish = 34,
+ kLangItalian = 39,
+ kLangGerman = 49
+};
+
+}