mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-03 09:23:37 +00:00
c01aa37caa
svn-id: r26605
218 lines
4.4 KiB
C++
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
|