aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorMatthew Hoops2011-06-15 12:50:36 -0400
committerMatthew Hoops2011-06-15 12:50:36 -0400
commita93a7717533045b1dfc7e81eeb5b54b947b3f9ed (patch)
tree9bb040d6e775a62fe092e28511dcb84eaf94bb2e /engines
parent4926c41e01a46735747930b09cc924ecd826a215 (diff)
downloadscummvm-rg350-a93a7717533045b1dfc7e81eeb5b54b947b3f9ed.tar.gz
scummvm-rg350-a93a7717533045b1dfc7e81eeb5b54b947b3f9ed.tar.bz2
scummvm-rg350-a93a7717533045b1dfc7e81eeb5b54b947b3f9ed.zip
PEGASUS: Begin porting over base MMShell classes
Diffstat (limited to 'engines')
-rwxr-xr-xengines/pegasus/MMShell/MMConstants.h64
-rwxr-xr-xengines/pegasus/MMShell/MMTypes.h98
-rwxr-xr-xengines/pegasus/MMShell/Utilities/MMIDObject.h68
3 files changed, 230 insertions, 0 deletions
diff --git a/engines/pegasus/MMShell/MMConstants.h b/engines/pegasus/MMShell/MMConstants.h
new file mode 100755
index 0000000000..e96eb15828
--- /dev/null
+++ b/engines/pegasus/MMShell/MMConstants.h
@@ -0,0 +1,64 @@
+/* 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.
+ *
+ * Additional copyright for this file:
+ * Copyright (C) 1995-1997 Presto Studios
+ *
+ * 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 PEGASUS_MMSHELL_MMTYPES_H
+#define PEGASUS_MMSHELL_MMTYPES_H
+
+#include "pegasus/MMShell/MMTypes.h"
+
+namespace Pegasus {
+
+const tDisplayElementID kNoDisplayElement = -1;
+const tDisplayElementID kHighestReservedElementID = -2;
+
+const tDisplayElementID kCursorID = kHighestReservedElementID;
+const tDisplayElementID kLoadScreenID = kCursorID - 1;
+
+const tDisplayOrder kMinAvailableOrder = 0;
+const tDisplayOrder kMaxAvailableOrder = 999998;
+const tDisplayOrder kLoadScreenOrder = 900000;
+const tDisplayOrder kCursorOrder = 1000000;
+
+const tHotSpotID kNoHotSpotID = -1;
+const tHotSpotFlags kNoHotSpotFlags = 0;
+const tHotSpotFlags kAllHotSpotFlags = ~kNoHotSpotFlags;
+
+const tNotificationFlags kNoNotificationFlags = 0;
+
+const tDisplayElementID kCurrentDragSpriteID = 1000;
+
+// TODO
+//const Fixed kFixed1 = 1 << 16;
+//const Fixed kFixedMinus1 = -1 << 16;
+
+// Originally "TimeScale" instead of int
+const int kDefaultTimeScale = 600;
+
+// TODO
+//const RGBColor kWhiteRGB = {0xFFFF, 0xFFFF, 0xFFFF};
+
+} // End of namespace Pegasus
+
+#endif
diff --git a/engines/pegasus/MMShell/MMTypes.h b/engines/pegasus/MMShell/MMTypes.h
new file mode 100755
index 0000000000..ae5f0d0a4f
--- /dev/null
+++ b/engines/pegasus/MMShell/MMTypes.h
@@ -0,0 +1,98 @@
+/* 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.
+ *
+ * Additional copyright for this file:
+ * Copyright (C) 1995-1997 Presto Studios
+ *
+ * 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 PEGASUS_MMSHELL_MMTYPES_H
+#define PEGASUS_MMSHELL_MMTYPES_H
+
+#include "common/scummsys.h"
+
+namespace Pegasus {
+
+// TODO: All of the "tMM"-prefixed defines should be replaced eventually
+// TODO: Probably all of these don't really need to be typedef'd...
+typedef int8 tMM8BitS;
+typedef uint8 tMM8BitU;
+
+typedef int16 tMM16BitS;
+typedef uint16 tMM16BitU;
+
+typedef int32 tMM32BitS;
+typedef uint32 tMM32BitU;
+
+typedef tMM8BitS tMM8BitID;
+typedef tMM16BitS tMM16BitID;
+typedef tMM32BitS tMM32BitID;
+
+typedef tMM8BitU tMM8BitFlags;
+typedef tMM16BitU tMM16BitFlags;
+typedef tMM32BitU tMM32BitFlags;
+
+typedef tMM32BitID tDisplayElementID;
+typedef tMM32BitS tDisplayOrder;
+
+typedef tMM16BitID tHotSpotID;
+typedef tMM32BitFlags tHotSpotFlags;
+
+typedef tMM8BitFlags tButtonState;
+typedef tMM32BitFlags tInputBits;
+
+typedef tMM8BitU tKeyMapType[16];
+typedef tMM8BitU tKeyType;
+typedef tMM8BitU tKeyMapIndexType;
+typedef tMM8BitU tKeyMapBitType;
+
+typedef tMM32BitID tNotificationID;
+typedef tMM32BitFlags tNotificationFlags;
+
+// Mac types.
+typedef tMM16BitS tResIDType;
+typedef tMM16BitS tCoordType;
+typedef tMM16BitS tQDCopyMode;
+typedef tMM16BitS tResItemCountType;
+
+enum tCopyMode {
+ kNoMask,
+ kUseClipArea,
+ kUseTransparency
+};
+
+enum tSlideDirection {
+ kSlideLeftMask = 1,
+ kSlideRightMask = kSlideLeftMask << 1,
+ kSlideUpMask = kSlideRightMask << 1 << 1,
+ kSlideDownMask = kSlideUpMask << 1,
+
+ kSlideHorizMask = kSlideLeftMask | kSlideRightMask,
+ kSlideVertMask = kSlideUpMask | kSlideDownMask,
+
+ kSlideUpLeftMask = kSlideLeftMask | kSlideUpMask,
+ kSlideUpRightMask = kSlideRightMask | kSlideUpMask,
+ kSlideDownLeftMask = kSlideLeftMask | kSlideDownMask,
+ kSlideDownRightMask = kSlideRightMask | kSlideDownMask
+};
+
+} // End of namespace Pegasus
+
+#endif
diff --git a/engines/pegasus/MMShell/Utilities/MMIDObject.h b/engines/pegasus/MMShell/Utilities/MMIDObject.h
new file mode 100755
index 0000000000..e0ca29b983
--- /dev/null
+++ b/engines/pegasus/MMShell/Utilities/MMIDObject.h
@@ -0,0 +1,68 @@
+/* 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.
+ *
+ * Additional copyright for this file:
+ * Copyright (C) 1995-1997 Presto Studios
+ *
+ * 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 PEGASUS_MMSHELL_MMIDOBJECT_H
+#define PEGASUS_MMSHELL_MMIDOBJECT_H
+
+#include "pegasus/MMShell/MMTypes.h"
+
+namespace Pegasus {
+
+class MMIDObject {
+friend inline int operator==(const MMIDObject &arg1, const MMIDObject &arg1);
+friend inline int operator!=(const MMIDObject &arg2, const MMIDObject &arg2);
+
+public:
+ MMIDObject(const tMM32BitID id);
+ ~MMIDObject();
+
+ tMM32BitID GetObjectID() const;
+
+private:
+ tMM32BitID fObjectID;
+};
+
+inline MMIDObject::MMIDObject(const tMM32BitID id) {
+ fObjectID = id;
+}
+
+inline MMIDObject::~MMIDObject() {
+}
+
+inline tMM32BitID MMIDObject::GetObjectID() const {
+ return fObjectID;
+}
+
+inline int operator==(const MMIDObject &arg1, const MMIDObject &arg2) {
+ return arg1.fObjectID == arg2.fObjectID;
+}
+
+inline int operator!=(const MMIDObject &arg1, const MMIDObject &arg2) {
+ return arg1.fObjectID != arg2.fObjectID;
+}
+
+} // End of namespace Pegasus
+
+#endif