mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-30 14:14:43 +00:00
190 lines
3.9 KiB
C++
190 lines
3.9 KiB
C++
/* ScummVM - Graphic Adventure Engine
|
|
*
|
|
* ScummVM is the legal property of its developers, whose names
|
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
* file distributed with this source distribution.
|
|
*
|
|
* 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.
|
|
*
|
|
*/
|
|
|
|
#ifndef CRUISE_OVERLAY_H
|
|
#define CRUISE_OVERLAY_H
|
|
|
|
namespace Cruise {
|
|
|
|
struct importScriptStruct {
|
|
uint16 var0;
|
|
uint16 var1;
|
|
uint16 type;
|
|
uint16 offset;
|
|
uint16 offsetToName;
|
|
};
|
|
|
|
struct exportEntryStruct {
|
|
uint16 var0;
|
|
uint16 var2;
|
|
uint16 var4;
|
|
uint16 idx;
|
|
uint16 offsetToName;
|
|
};
|
|
|
|
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 numRelocGlob;
|
|
short int subData2Size;
|
|
short int var18;
|
|
short int var1A;
|
|
};
|
|
|
|
struct stringEntryStruct {
|
|
char *string;
|
|
short int length;
|
|
short int idx;
|
|
};
|
|
|
|
struct linkDataStruct {
|
|
int16 type;
|
|
int16 id;
|
|
int16 offsetVerbeName;
|
|
int16 verbOverlay;
|
|
int16 verbNumber;
|
|
|
|
int16 obj1Overlay;
|
|
int16 obj1Number;
|
|
int16 obj2Overlay;
|
|
int16 obj2Number;
|
|
|
|
int16 trackX;
|
|
int16 trackY;
|
|
|
|
int16 obj1NewState;
|
|
int16 obj2NewState;
|
|
|
|
int16 obj1OldState;
|
|
int16 obj2OldState;
|
|
|
|
int16 trackDirection;
|
|
int16 dialog;
|
|
};
|
|
|
|
struct importDataStruct {
|
|
uint16 var0; // 0
|
|
uint16 var1; // 2
|
|
uint16 linkType; // 4
|
|
uint16 linkIdx; // 6
|
|
uint16 nameOffset;
|
|
};
|
|
|
|
enum eClass {
|
|
MULTIPLE = 0,
|
|
VARIABLE = 1,
|
|
UNIQUE = 2,
|
|
THEME = 3
|
|
};
|
|
|
|
struct objDataStruct {
|
|
int16 _type;
|
|
eClass _class;
|
|
int16 _nameOffset;
|
|
int16 _numStates;
|
|
int16 _varTableIdx;
|
|
int16 _firstStateIdx;
|
|
int16 _stateTableIdx;
|
|
};
|
|
|
|
struct objectParams {
|
|
int16 X;
|
|
int16 Y;
|
|
int16 Z;
|
|
int16 frame;
|
|
int16 scale;
|
|
int16 state;
|
|
};
|
|
|
|
struct ovlDataStruct {
|
|
|
|
ovlData3Struct *arrayProc;
|
|
ovlData3Struct *ptr1;
|
|
objDataStruct *arrayObject;
|
|
objectParams *arrayStates;
|
|
objectParams *arrayObjVar;
|
|
stringEntryStruct *stringTable;
|
|
exportEntryStruct *arraySymbGlob;
|
|
importDataStruct *arrayRelocGlob;
|
|
linkDataStruct *arrayMsgRelHeader;
|
|
|
|
char *nameVerbGlob;
|
|
char *arrayNameObj;
|
|
char *arrayNameRelocGlob;
|
|
char *arrayNameSymbGlob;
|
|
|
|
uint8 *data4Ptr;
|
|
uint8 *ptr8;
|
|
|
|
unsigned short int numProc;
|
|
unsigned short int numRel;
|
|
unsigned short int numSymbGlob;
|
|
unsigned short int numRelocGlob;
|
|
unsigned short int numMsgRelHeader;
|
|
unsigned short int numObj;
|
|
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;
|
|
};
|
|
|
|
struct overlayStruct {
|
|
char overlayName[13];
|
|
ovlDataStruct *ovlData;
|
|
short int alreadyLoaded;
|
|
short int state;
|
|
char* pDebug;
|
|
long int debugSize;
|
|
char* pSource;
|
|
long int sourceSize;
|
|
short int executeScripts;
|
|
};
|
|
|
|
extern overlayStruct overlayTable[90];
|
|
extern int numOfLoadedOverlay;
|
|
|
|
void initOverlayTable();
|
|
int loadOverlay(const char * scriptName);
|
|
int32 findOverlayByName2(const char * name);
|
|
int findOverlayByName(const char *overlayName);
|
|
int releaseOverlay(const char *name);
|
|
int freeOverlay(int overlayIdx);
|
|
void freeOverlayTable();
|
|
|
|
} // End of namespace Cruise
|
|
|
|
#endif
|