aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/object.h41
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;