diff options
Diffstat (limited to 'engines/sherlock/objects.h')
-rw-r--r-- | engines/sherlock/objects.h | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/engines/sherlock/objects.h b/engines/sherlock/objects.h index bbd068eef7..b61e7e24fe 100644 --- a/engines/sherlock/objects.h +++ b/engines/sherlock/objects.h @@ -179,13 +179,14 @@ struct UseType { Common::String _names[NAMES_COUNT]; int _useFlag; // Which flag USE will set (if any) Common::String _target; + Common::String _verb; UseType(); /** * Load the data for the UseType */ - void load(Common::SeekableReadStream &s); + void load(Common::SeekableReadStream &s, bool isRoseTattoo); }; enum { OBJ_BEHIND = 1, OBJ_FLIPPED = 2, OBJ_FORWARD = 4, TURNON_OBJ = 0x20, TURNOFF_OBJ = 0x40 }; @@ -233,35 +234,45 @@ public: int _pickup; int _defaultCommand; // Default right-click command int _lookFlag; // Which flag LOOK will set (if any) - int _pickupFlag; // Which flag PICKUP will set (if any) int _requiredFlag; // Object will be hidden if not set Common::Point _noShapeSize; // Size of a NO_SHAPE int _status; // Status (open/closed, moved/not) int8 _misc; // Misc field -- use varies with type int _maxFrames; // Number of frames int _flags; // Tells if object can be walked behind - ActionType _aOpen; // Holds data for moving object AType _aType; // Tells if this is an object, person, talk, etc. int _lookFrames; // How many frames to play of the look anim before pausing int _seqCounter; // How many times this sequence has been executed Common::Point _lookPosition; // Where to walk when examining object int _lookFacing; // Direction to face when examining object int _lookcAnim; - ActionType _aClose; int _seqStack; // Allows gosubs to return to calling frame int _seqTo; // Allows 1-5, 8-3 type sequences encoded in 2 bytes uint _descOffset; // Tells where description starts in DescText int _seqCounter2; // Counter of calling frame sequence uint _seqSize; // Tells where description starts + UseType _use[6]; // Serrated Scalpel uses 4, Rose Tattoo 6 + + // Serrated Scalpel fields + int _pickupFlag; // Which flag PICKUP will set (if any) + ActionType _aOpen; // Holds data for moving object + ActionType _aClose; ActionType _aMove; - UseType _use[USE_COUNT]; + + // Rose Tattoo fields + int _quickDraw; + int _scaleVal; + int _requiredFlag1; + int _gotoSeq; + int _talkSeq; + int _restoreSlot; Object(); /** * Load the data for the object */ - void load(Common::SeekableReadStream &s); + void load(Common::SeekableReadStream &s, bool isRoseTattoo); /** * Toggle the type of an object between hidden and active @@ -326,20 +337,25 @@ public: struct CAnim { Common::String _name; // Name - byte _sequences[MAX_FRAME]; // Animation sequences Common::Point _position; // Position int _size; // Size of uncompressed animation - SpriteType _type; int _flags; // Tells if can be walked behind Common::Point _goto; // coords holmes should walk to before starting canim int _gotoDir; Common::Point _teleportPos; // Location Holmes shoul teleport to after int _teleportDir; // playing canim + // Scalpel specific + byte _sequences[MAX_FRAME]; // Animation sequences + SpriteType _type; + + // Rose Tattoo specific + int _scaleVal; // How much the canim is scaled + /** * Load the data for the animation */ - void load(Common::SeekableReadStream &s); + void load(Common::SeekableReadStream &s, bool isRoseTattoo); }; struct SceneImage { |