diff options
Diffstat (limited to 'engines/scumm/object.h')
-rw-r--r-- | engines/scumm/object.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/engines/scumm/object.h b/engines/scumm/object.h index cdf8b09e6f..8212075e43 100644 --- a/engines/scumm/object.h +++ b/engines/scumm/object.h @@ -24,6 +24,26 @@ namespace Scumm { +static inline int OBJECT_V0(int id, byte type) { + assert(id < 256); + return (type << 8 | id); +} +#define OBJECT_V0_ID(obj) (obj & 0xFF) +#define OBJECT_V0_TYPE(obj) ((obj >> 8) & 0xFF) + +enum ObjectV0Type { + kObjectV0TypeFG = 0, // foreground object + // - with owner/state, might (but has not to) be pickupable + // -> with entry in _objectOwner/StateTable + // -> all objects in _inventory have this type + // - image can be exchanged (background overlay) + kObjectV0TypeBG = 1, // background object + // - without owner/state, not pickupable (room only) + // -> without entry in _objectOwner/StateTable + // - image cannot be exchanged (part of background image) + kObjectV0TypeActor = 2 // object is an actor +}; + enum ObjectClass { kObjectClassNeverClip = 20, kObjectClassAlwaysClip = 21, |