mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-20 00:41:12 +00:00
ffce26ebfe
svn-id: r26631
207 lines
4.3 KiB
C++
207 lines
4.3 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 CRUISE_OVERLAY_H
|
|
#define CRUISE_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
|