Code:
// * the counterpart to H3ObjectAttributes
struct H3ObjectDetails
{
// * +0
// * reference to H3ObjectAttributes
UINT32 setup;
// * +4
// * x position on map
UINT8 x;
// * +5
// * y position on map
UINT8 y;
// * +6
// * z position on map
UINT8 z;
protected:
h3align _f_7;
public:
// * +8
// * reference to object's DEF for drawing purposes
UINT16 num;
protected:
h3align _f_A[2];
};
struct H3ObjectAttributes
{
// * +0
// * the name of the DEF
H3String defName;
// * +10
// * the width of object, read from LoD @ 0x503ED5
UINT8 width;
// * +11
// * the height of object, read from LoD @ 0x503EE2
UINT8 height;
protected:
h3align _f_12[2];
public:
// * +14
// * a 8x6 bitfield of the object's presence
H3ObjectMask colors;
// * +1C
// * a 8x6 bitfield of the object's passability
H3ObjectMask passability;
// * +24
// * a 8x6 bitfield of the object's shadow
H3ObjectMask shadows;
// * +2C
// * a 8x6 bitfield of the object's yellow tiles
H3ObjectMask entrances;
// * +34
// * a bitfield of vaild terrains for this object
H3Bitfield maskTerrain;
// * +38
// * the type of object, 0 ~ 232
INT32 type;
// * +3C
// * the subtype of object, depends on type
INT32 subtype;
// * +40
// * is the object flat on the adventure map? e.g. cursed ground
BOOL8 flat;
protected:
h3align _f_41;
// * referenced a few places, e.g. 0x50663A
h3unk _f_42[2];
};