scummvm/engines/cruise/overlay.h
Vincent Hamm c01aa37caa Add cruise source code for scummvm
svn-id: r26605
2007-04-27 12:58:35 +00:00

218 lines
4.4 KiB
C++

/* 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