aboutsummaryrefslogtreecommitdiff
path: root/engines/cruise/vars.h
diff options
context:
space:
mode:
authorVincent Hamm2007-04-27 12:58:35 +0000
committerVincent Hamm2007-04-27 12:58:35 +0000
commitc01aa37caaadb2e65667b1156a907e92e859fee8 (patch)
tree5c55328c78f6f1664f4f46baadee583fcff977ef /engines/cruise/vars.h
parentedd9b31a483c07066537663a01c265d99d69ada7 (diff)
downloadscummvm-rg350-c01aa37caaadb2e65667b1156a907e92e859fee8.tar.gz
scummvm-rg350-c01aa37caaadb2e65667b1156a907e92e859fee8.tar.bz2
scummvm-rg350-c01aa37caaadb2e65667b1156a907e92e859fee8.zip
Add cruise source code for scummvm
svn-id: r26605
Diffstat (limited to 'engines/cruise/vars.h')
-rw-r--r--engines/cruise/vars.h340
1 files changed, 340 insertions, 0 deletions
diff --git a/engines/cruise/vars.h b/engines/cruise/vars.h
new file mode 100644
index 0000000000..11e36fe6ff
--- /dev/null
+++ b/engines/cruise/vars.h
@@ -0,0 +1,340 @@
+/* ScummVM - Scumm Interpreter
+ * Copyright (C) 2006 The ScummVM project
+ *
+ * cinE Engine is (C) 2004-2005 by CinE Team
+ *
+ * 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$
+ *
+ */
+
+#ifndef _VARS_H_
+#define _VARS_H_
+
+#include "common/file.h"
+
+namespace Cruise {
+
+struct menuElementSubStruct
+{
+ struct menuElementSubStruct* pNext;
+ int16 var2;
+ int16 var4;
+};
+
+typedef struct menuElementSubStruct menuElementSubStruct;
+
+struct menuElementStruct
+{
+ struct menuElementStruct* next;
+ char* string;
+ int x;
+ int y;
+ int varA;
+ int varC;
+ unsigned char color;
+ gfxEntryStruct* gfx;
+ menuElementSubStruct* ptrSub;
+};
+
+typedef struct menuElementStruct menuElementStruct;
+
+typedef int32(*opcodeTypeFunction)(void);
+typedef int16(*opcodeFunction)(void);
+
+
+extern uint8* _systemFNT;
+extern int16 fontFileIndex;
+
+extern uint8 video2;
+extern uint8 video3;
+extern uint8 video4;
+extern uint8 colorOfSelectedSaveDrive;
+
+extern int16 initVar1;
+extern int16 initVar2;
+extern int16 initVar3;
+extern uint8 initVar4[90];
+
+extern int16 currentActiveBackgroundPlane;
+extern int16 main5;
+extern int16 var22;
+
+
+struct mediumVarStruct
+{
+ uint8 name[16];
+ int16 field_10;
+ int16 field_12;
+ int16 field_14;
+ int16 field_16;
+ uint8* ptr;
+ int16 field_1C;
+ int16 field_1E;
+ int16 field_20;
+};
+
+typedef struct mediumVarStruct mediumVarStruct;
+
+struct filesDataStruct
+{
+ uint8* field_0;
+ uint8* field_4;
+};
+
+typedef struct filesDataStruct filesDataStruct;
+
+struct filesData2Struct
+{
+ int16 field_0;
+ int16 field_2;
+};
+
+typedef struct filesData2Struct filesData2Struct;
+
+struct fileName
+{
+ uint8 name[13];
+};
+
+typedef struct fileName fileName;
+
+struct setHeaderEntry
+{
+ int16 field_0; // offset ptr part 1
+ int16 field_2; // offset ptr part 2
+ int16 width;
+ int16 height;
+ int16 type; // resource type, ie. sprites 0,1,4,5 and 8
+ int16 transparency;
+ int16 field_C;
+ int16 field_E;
+};
+
+typedef struct setHeaderEntry setHeaderEntry;
+
+struct volumeDataStruct
+{
+ char ident[10];
+ fileName* ptr;
+ int16 diskNumber;
+ int32 size;
+};
+
+typedef struct volumeDataStruct volumeDataStruct;
+
+struct fileEntry
+{
+ uint8 name[14];
+ int32 offset;
+ int32 size;
+ int32 extSize;
+ int32 unk3; // unused
+};
+
+typedef struct fileEntry fileEntry;
+
+struct dataFileEntrySub
+{
+ uint8* ptr;
+ int16 index; // sprite index
+ char name[14];
+ int16 transparency; // sprite transparency
+ uint8* ptr2;
+ uint8 resourceType; // sprite and image type 2,4,8 , fnt = 7, spl = 6
+ uint8 field_1B;
+ int16 field_1C;
+};
+
+typedef struct dataFileEntrySub dataFileEntrySub;
+
+struct dataFileEntry
+{
+ int16 widthInColumn;
+ int16 width;
+ int16 resType;
+ int16 height;
+ dataFileEntrySub subData;
+};
+
+typedef struct dataFileEntry dataFileEntry;
+
+struct systemStringsStruct
+{
+ int8 param;
+ uint8 string[12];
+ uint8 bootScriptName[8];
+};
+
+typedef struct systemStringsStruct systemStringsStruct;
+
+extern filesDataStruct filesData[90];
+extern filesData2Struct filesData2[90];
+
+extern mediumVarStruct mediumVar[64];
+
+extern volumeDataStruct volumeData[20];
+
+extern int32 volumeDataLoaded;
+
+extern int16 numOfDisks;
+
+extern uint8 scriptNameBuffer[15];
+extern int16 currentActiveMenu;
+extern int16 main14;
+extern int16 mouseVar1;
+extern int16 main21;
+extern int16 main22;
+extern int16 main7;
+extern int16 main8;
+
+
+extern int16 currentDiskNumber;
+
+extern Common::File currentVolumeFile;
+
+extern int16 currentCursor;
+
+extern int16 volumeNumEntry;
+extern fileEntry* volumePtrToFileDescriptor;
+
+extern uint32 volumeFileDescriptorSize;
+extern int16 volumeSizeOfEntry;
+extern int16 volumeNumberOfEntry;
+
+extern int16 affichePasMenuJoueur;
+
+extern int16 globalVars[2000];
+extern dataFileEntry filesDatabase[257];
+
+extern int16 bootOverlayNumber;
+
+extern int16 initVar5[12];
+
+extern objectStruct objectHead;
+
+extern opcodeTypeFunction opcodeTypeTable[64];
+
+extern int16 positionInStack;
+extern actorStruct actorHead;
+
+extern int16 setup1;
+
+extern uint8* currentData3DataPtr;
+extern uint8* scriptDataPtrTable[7];
+
+extern int16 currentScriptOpcodeType;
+
+extern int16 saveOpcodeVar;
+
+extern int16 var30;
+extern int16 var31;
+
+extern int16 var1;
+extern int16 var2;
+extern int16 var3;
+extern int16 var4;
+extern int16 userEnabled;
+extern int16 var5;
+extern int16 var6;
+extern int16 var7;
+extern int16 var8;
+extern int16 userDelay;
+extern int16 sysKey;
+extern int16 var11;
+extern int16 var12;
+extern int16 var13;
+extern int16 var14;
+extern int16 var20;
+extern int16 var23;
+extern int16 var24;
+extern int16 automaticMode;
+extern int16 var34;
+extern int16 var35;
+extern int16 animationStart;
+
+extern int16 main17;
+extern int16 var39;
+extern int16 entrerMenuJoueur;
+extern int16 var39;
+extern int16 var41;
+extern int16 var42;
+extern int16 var45;
+extern int16 var46;
+extern int16 var47;
+extern int16 var48;
+extern int16 flagCt;
+
+extern int8 var50[64];
+extern int16 palette[256*3];
+
+extern systemStringsStruct systemStrings;
+
+extern uint8 currentCtpName[40];
+
+extern int16 saveVar1;
+extern uint8 saveVar2[97]; // recheck size
+
+extern int16 numberOfWalkboxes; // saveVar3
+extern int16 walkboxType[15]; // saveVar4 // Type: 0x00 - non walkable, 0x01 - walkable, 0x02 - exit zone
+extern int16 walkboxChange[15]; // saveVar5 // walkbox can change its type: 0x00 - not changeable, 0x01 - changeable
+ // Assumption: To change the type: walkboxType[i] -= walkboxChane[i] and vice versa
+extern uint8 saveVar6[16];
+
+extern int32 loadFileVar1;
+
+extern int16 ctpVar1;
+extern int16 ctp_routeCoordCount; // ctpVar2 // number of path-finding coordinates
+extern int16 ctp_routeCoords[20][2]; // ctpVar3 // path-finding coordinates array
+
+/* ctp_routeCoords:
+
+ correct size would be: ctp_routes[routeCoordCount * 4]
+ coordinate information with x (2 bytes) and y (2 bytes)
+*/
+
+extern int16 ctp_routes[20][10]; // path-finding line information
+
+/* ctp_routes:
+
+ correct size would be: ctp_routes[routeCoordCount * 20 * 2]
+ array is seperate in 20 * 2 bytes slices.
+ first 2 bytes of the slice indicate how many coordinates/lines are following (lineCount)
+ after that there are lineCount * 2 bytes following with indexes pointing on the routeCoords table
+ the root x,y for the lines is the coordinate in the routeCoords array, which fits to the current slice
+ for the 20 * i slice the root x,y is routeCoords[i], routeCoords[i+2]
+ the unused rest of the slice if filled up with 0xFF
+*/
+extern uint16 ctp_walkboxTable[15 * 40]; // ctpVar5 // walkboxes coordinates and lines
+extern int8 ctpVar6[32];
+extern int16 ctp_scale[15]; // ctpVar7 // scaling information for walkboxes
+extern int16 ctpVar8[200];
+
+extern int16 ctpVar14;
+
+extern int16 bgVar1;
+extern int16 bgVar2;
+extern int16 bgVar3;
+
+extern uint8 globalScreen[320*200];
+extern uint8 scaledScreen[640*400];
+
+//extern OSystem *osystem;
+
+} // End of namespace Cruise
+
+#endif \ No newline at end of file