diff options
Diffstat (limited to 'engines/dreamweb/structs.h')
-rw-r--r-- | engines/dreamweb/structs.h | 220 |
1 files changed, 220 insertions, 0 deletions
diff --git a/engines/dreamweb/structs.h b/engines/dreamweb/structs.h new file mode 100644 index 0000000000..7e77bdf0e9 --- /dev/null +++ b/engines/dreamweb/structs.h @@ -0,0 +1,220 @@ +/* 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. + * + */ + +#include "common/endian.h" + +struct Sprite { + uint16 _updateCallback; + uint16 updateCallback() const { return READ_LE_UINT16(&_updateCallback); } + void setUpdateCallback(uint16 v) { WRITE_LE_UINT16(&_updateCallback, v); } + uint16 w2; + uint16 w4; + uint16 _frameData; + uint16 frameData() const { return READ_LE_UINT16(&_frameData); } + void setFrameData(uint16 v) { WRITE_LE_UINT16(&_frameData, v); } + uint16 w8; + uint8 x; + uint8 y; + uint16 w12; + uint8 b14; + uint8 b15; + uint8 b16; + uint8 b17; + uint8 delay; + uint8 frame; + uint16 _objData; + uint16 objData() const { return READ_LE_UINT16(&_objData); } + void setObjData(uint16 v) { WRITE_LE_UINT16(&_objData, v); } + uint8 b22; + uint8 priority; + uint16 w24; + uint16 w26; + uint8 b28; + uint8 b29; + uint8 type; + uint8 hidden; +}; + +struct ObjData { + uint8 b0; + uint8 b1; + uint8 b2; + uint8 b3; + uint8 b4; + uint8 priority; + uint8 b6; + uint8 delay; + uint8 type; + uint8 b9; + uint8 b10; + uint8 b11; + uint8 name[4]; + uint8 b16; + uint8 b17; + uint8 b18[13]; // NB: Don't know the size yet + uint8 b31; + uint8 b32; + uint8 b33; + uint8 b34; + uint8 b35; + uint8 b36; + uint8 b37; + uint8 b38; + uint8 b39; + uint8 b40; + uint8 b41; + uint8 b42; + uint8 b43; + uint8 b44; + uint8 b45; + uint8 b46; + uint8 b47; + uint8 b48; + uint8 b49; + uint8 b50; + uint8 b51; + uint8 b52; + uint8 b53; + uint8 b54; + uint8 b55; + uint8 b56; + uint8 b57; + uint8 b58[5]; + uint8 b63; +}; + +struct FreeObject { + uint8 b0; + uint8 b1; + uint8 b2; + uint8 b3; + uint8 b4; + uint8 b5; + uint8 b6; + uint8 b7; + uint8 b8; + uint8 b9; + uint8 b10; + uint8 b11; + uint8 b12; + uint8 b13; + uint8 b14; + uint8 b15; +}; + +struct ObjPos { + uint8 xMin; + uint8 yMin; + uint8 xMax; + uint8 yMax; + uint8 index; +}; + +struct Frame { + uint8 width; + uint8 height; + uint16 _ptr; + uint16 ptr() const { return READ_LE_UINT16(&_ptr); } + void setPtr(uint16 v) { WRITE_LE_UINT16(&_ptr, v); } + uint8 x; + uint8 y; +}; + +struct Reel { + uint8 frame_lo; + uint8 frame_hi; + uint16 frame() const { return READ_LE_UINT16(&frame_lo); } + void setFrame(uint16 v) { WRITE_LE_UINT16(&frame_lo, v); } + uint8 x; + uint8 y; + uint8 b4; +}; + +struct ReelRoutine { + uint8 reallocation; + uint8 mapX; + uint8 mapY; + uint8 b3; + uint8 b4; + uint8 b5; + uint8 b6; + uint8 b7; +}; + +struct People { + uint8 b0; + uint8 b1; + uint16 w0() const { return READ_LE_UINT16(&b0); } + void setW0(uint16 v) { WRITE_LE_UINT16(&b0, v); } + uint8 b2; + uint8 b3; + uint16 w2() const { return READ_LE_UINT16(&b2); } + void setW2(uint16 v) { WRITE_LE_UINT16(&b2, v); } + uint8 b4; + +}; + +struct Room { + uint8 name[10]; + uint8 b10; + uint8 b11; + uint8 b12; + uint8 roomsSample; + uint8 b14; + uint8 mapX; + uint8 mapY; + uint8 b17; + uint8 b18; + uint8 b19; + uint8 liftFlag; + uint8 b21; + uint8 b22; + uint8 countToOpen; + uint8 liftPath; + uint8 doorPath; + uint8 b26; + uint8 b27; + uint8 b28; + uint8 b29; + uint8 b30; + uint8 b31; +}; + +struct Rain { + uint8 x; + uint8 y; + uint8 size; + uint8 w3_lo; + uint8 w3_hi; + uint16 w3() const { return READ_LE_UINT16(&w3_lo); } + void setW3(uint16 v) { WRITE_LE_UINT16(&w3_lo, v); } + uint8 b5; +}; + +struct Change { + uint8 index; + uint8 location; + uint8 value; + uint8 type; +}; + + |