diff options
Diffstat (limited to 'engines/cruise/overlay.h')
-rw-r--r-- | engines/cruise/overlay.h | 217 |
1 files changed, 217 insertions, 0 deletions
diff --git a/engines/cruise/overlay.h b/engines/cruise/overlay.h new file mode 100644 index 0000000000..f5e3ec4fdc --- /dev/null +++ b/engines/cruise/overlay.h @@ -0,0 +1,217 @@ +/* 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 _OVERLAY_H_ +#define _OVERLAY_H_ + +namespace Cruise { + +struct importScriptStruct +{ + uint16 var0; + uint16 var1; + uint16 type; + uint16 offset; + uint16 offsetToName; +}; + +typedef struct importScriptStruct importScriptStruct; + +struct exportEntryStruct +{ + uint16 var0; + uint16 var2; + uint16 var4; + uint16 idx; + uint16 offsetToName; +}; + +typedef struct exportEntryStruct exportEntryStruct; + +struct ovlData3Struct +{ + uint8* dataPtr; //0 + short int sizeOfData; //4 + short int offsetToSubData3; //6 + short int offsetToImportData; //8 + short int offsetToSubData2; + short int offsetToImportName; + short int offsetToSubData5; + short int sysKey; + short int var12; + short int numImport; + short int subData2Size; + short int var18; + short int var1A; +}; + +typedef struct ovlData3Struct ovlData3Struct; + +struct stringEntryStruct +{ + char* string; + short int length; + short int idx; +}; + +typedef struct stringEntryStruct stringEntryStruct; + +struct linkDataStruct +{ + uint16 field_0; + uint16 field_2; + uint16 field_4; + uint16 varIdx; + uint16 varNameOffset; + uint16 stringIdx; + uint16 stringNameOffset; + uint16 procIdx; + uint16 procNameOffset; + + int16 field_12; + int16 field_14; + int16 field_16; + int16 field_18; + int16 field_1A; + int16 field_1C; + int16 field_1E; + int16 field_20; +}; + +typedef struct linkDataStruct linkDataStruct; + +struct importDataStruct +{ + uint16 var0; // 0 + uint16 var1; // 2 + uint16 linkType; // 4 + uint16 linkIdx; // 6 + uint16 nameOffset; +}; + +typedef struct importDataStruct importDataStruct; + +struct objDataStruct +{ + int16 var0; + int16 var1; + int16 var2; + int16 var3; + int16 var4; + int16 var5; + int16 var6; +}; + +typedef struct objDataStruct objDataStruct; + +struct objectParams +{ + int16 X; + int16 Y; + int16 baseFileIdx; + int16 var3; + int16 scale; + int16 var5; +}; + +typedef struct objectParams objectParams; + +struct ovlDataStruct +{ + ovlData3Struct* data3Table; + uint8* ptr1; + objDataStruct* objDataTable; + objectParams* objData2SourceTable; + objectParams* objData2WorkTable; + stringEntryStruct* stringTable; + exportEntryStruct* exportDataPtr; + importDataStruct* importDataPtr; + linkDataStruct* linkDataPtr; + uint8* specialString1; + uint8* specialString2; + uint8* importNamePtr; + uint8* exportNamesPtr; + uint8* data4Ptr; + uint8* ptr8; + unsigned short int numScripts1; + unsigned short int numScripts2; + unsigned short int numExport; + unsigned short int numImport; + unsigned short int numLinkData; + unsigned short int numObjData; + unsigned short int numStrings; + unsigned short int size8; + unsigned short int size9; + unsigned short int nameExportSize; + unsigned short int exportNamesSize; + unsigned short int specialString2Length; + unsigned short int sizeOfData4; + unsigned short int size12; + unsigned short int specialString1Length; + unsigned short int scriptNumber; +}; + +typedef struct ovlDataStruct ovlDataStruct; + +struct overlayStruct +{ + char overlayName[14]; + ovlDataStruct* ovlData; + short int alreadyLoaded; + char field_14; + char field_15; + char field_16; + char field_17; + char field_18; + char field_19; + char field_1A; + char field_1B; + char field_1C; + char field_1D; + char field_1E; + char field_1F; + char field_20; + char field_21; + char field_22; + char field_23; + char field_24; + char field_25; + short int executeScripts; +}; + +typedef struct overlayStruct overlayStruct; + +extern overlayStruct overlayTable[90]; +extern int numOfLoadedOverlay; + +void initOverlayTable(void); +int loadOverlay(uint8* scriptName); +int32 findOverlayByName2(uint8* name); +int findOverlayByName(const char* overlayName); +int releaseOverlay(const char* name); + + +} // End of namespace Cruise + +#endif |