diff options
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/object.h | 41 |
1 files changed, 36 insertions, 5 deletions
diff --git a/scumm/object.h b/scumm/object.h index 39787ca0a3..a7fd5f5209 100644 --- a/scumm/object.h +++ b/scumm/object.h @@ -28,14 +28,23 @@ struct RoomHeader { union { struct { - uint32 version; uint16 width, height; uint16 numObjects; - } GCC_PACK v7; + } GCC_PACK old; + struct { + uint32 version; uint16 width, height; uint16 numObjects; - } GCC_PACK old; + } GCC_PACK v7; + + struct { + uint32 version; + uint32 width, height; + uint32 numObjects; + uint32 unk1; + uint32 unk2; + } GCC_PACK v8; } GCC_PACK; } GCC_PACK; @@ -78,7 +87,7 @@ struct ImageHeader { /* file format */ uint16 unk[5]; uint16 width; uint16 height; - uint16 unk_2; + uint16 hotspot_num; struct { int16 x, y; } GCC_PACK hotspot[15]; @@ -92,11 +101,33 @@ struct ImageHeader { /* file format */ uint16 width, height; byte unk2[3]; byte actordir; - uint16 unk_2; + uint16 hotspot_num; struct { int16 x, y; } GCC_PACK hotspot[15]; } GCC_PACK v7; + + struct { + // Most of these seem to have length 0x58. + // But system-cursor-icon has length 0x60 ?!? --------+ + char name[32]; // | + uint32 unk_1[2]; // always 0 ? v + uint32 version; // 801; 801; 801; 801; 801; 801; 801 + uint32 unk_2; // 0; 0; 0; 0; 0: 1; 2 + uint32 x_pos; // 0; 184; 264; 336; 450; 272; 0 + uint32 y_pos; // 0; 272; 248; 216; 168; 320; 0 + uint32 width; // 64; 128; 120; 128; 80; 48; 80 + uint32 height; // 270; 80; 80; 72; 56; 56; 56 + uint32 actordir; // 225; 45; 45; 45; 45; 0; 0 + uint32 hotspot_num; // 0; 0; 0; 0; 0; 0; 1 + // -50; -84; -49; -19; 11; -16; 22 + // 456; 118; 86; 76; 53: -64; 19 + // 22 + // 19 + struct { + int32 x, y; + } GCC_PACK hotspot[15]; + } GCC_PACK v8; } GCC_PACK; } GCC_PACK; |