1 /* ScummVM - Graphic Adventure Engine 2 * 3 * ScummVM is the legal property of its developers, whose names 4 * are too numerous to list here. Please refer to the COPYRIGHT 5 * file distributed with this source distribution. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * as published by the Free Software Foundation; either version 2 10 * of the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 * 21 */ 22 23 #ifndef CRUISE_CELL_H 24 #define CRUISE_CELL_H 25 26 27 #include "common/scummsys.h" 28 29 namespace Cruise { 30 31 struct gfxEntryStruct; 32 33 struct cellStruct { 34 struct cellStruct *next; 35 struct cellStruct *prev; 36 int16 idx; 37 int16 type; 38 int16 overlay; 39 int16 x; 40 int16 field_C; 41 int16 spriteIdx; 42 int16 color; 43 int16 backgroundPlane; 44 int16 freeze; 45 int16 parent; 46 int16 parentOverlay; 47 int16 parentType; 48 int16 followObjectOverlayIdx; 49 int16 followObjectIdx; 50 int16 animStart; 51 int16 animEnd; 52 int16 animWait; 53 int16 animStep; 54 int16 animChange; 55 int16 animType; 56 int16 animSignal; 57 int16 animCounter; 58 int16 animLoop; 59 gfxEntryStruct *gfxPtr; 60 }; 61 62 extern cellStruct cellHead; 63 64 void resetPtr(cellStruct * ptr); 65 cellStruct *addCell(cellStruct *pHead, int16 overlayIdx, int16 objIdx, int16 type, int16 backgroundPlane, int16 scriptOverlay, int16 scriptNumber, int16 scriptType); 66 void createTextObject(cellStruct *pObject, int overlayIdx, int messageIdx, int x, int y, int width, int16 color, int backgroundPlane, int parentOvl, int parentIdx); 67 void removeCell(cellStruct *objPtr, int ovlNumber, int objectIdx, int objType, int backgroundPlane); 68 void freezeCell(cellStruct * pObject, int overlayIdx, int objIdx, int objType, int backgroundPlane, int oldFreeze, int newFreeze); 69 void sortCells(int16 param1, int16 param2, cellStruct *objPtr); 70 void linkCell(cellStruct *pHead, int ovl, int obj, int type, int ovl2, int obj2); 71 72 73 } // End of namespace Cruise 74 75 #endif 76