22#ifndef SHERLOCK_OBJECTS_H
23#define SHERLOCK_OBJECTS_H
25#include "common/scummsys.h"
26#include "common/rect.h"
27#include "common/str-array.h"
28#include "common/str.h"
29#include "sherlock/image_file.h"
30#include "sherlock/fixed_text.h"
31#include "sherlock/saveload.h"
38 ALLOW_MOVE = 1, ALLOW_OPEN = 2, ALLOW_CLOSE = 4
53 HIDDEN_CHARACTER = 128
75 BEHIND = 0, NORMAL_BEHIND = 1, NORMAL_FORWARD = 2, FORWARD = 3
78#define MAX_HOLMES_SEQUENCE 16
80#define FIXED_INT_MULTIPLIER 1000
84#define FLIP_CODE (64 + 128)
85#define SOUND_CODE (34 + 128)
86#define HIDE_CODE (7+128)
87#define CALL_TALK_CODE (8+128)
88#define TELEPORT_CODE (9+128)
89#define MOVE_CODE (10+128)
92#define TALK_SEQ_CODE 252
93#define TALK_LISTEN_CODE 251
94#define ALLOW_TALK_CODE 250
97#define LOWER_LIMIT (IS_SERRATED_SCALPEL ? CONTROLS_Y : SHERLOCK_SCREEN_HEIGHT)
99#define RIGHT_LIMIT SHERLOCK_SCREEN_WIDTH
107 Point32(
int x1,
int y1) : x(x1), y(y1) {}
110 bool operator==(
const Point32 &p)
const {
return x == p.x && y == p.y; }
111 bool operator!=(
const Point32 &p)
const {
return x != p.x || y != p.y; }
116 void operator+=(
const Point32 &delta) { x += delta.x; y += delta.y; }
117 void operator-=(
const Point32 &delta) { x -= delta.x; y -= delta.y; }
138 const byte &operator[](
int idx) {
return _sequences[idx]; }
151enum { REVERSE_DIRECTION = 0x80 };
203 static bool _countCAnimFrames;
222 int _requiredFlag[2];
297 int _oldWalkSequence;
331 int frameWidth()
const {
return _imageFrame ? _imageFrame->_frame.
w : 0; }
336 int frameHeight()
const {
return _imageFrame ? _imageFrame->_frame.
h : 0; }
360enum { OBJ_BEHIND = 1, OBJ_FLIPPED = 2, OBJ_FORWARD = 4, TURNON_OBJ = 0x20, TURNOFF_OBJ = 0x40 };
406 int pickUpObject(FixedTextActionId fixedTextActionId = kFixedTextAction_Invalid);
411 int frameWidth()
const {
return _imageFrame ? _imageFrame->_frame.
w : 0; }
416 int frameHeight()
const {
return _imageFrame ? _imageFrame->_frame.
h : 0; }
453 byte _sequences[MAX_FRAME];
Definition: serializer.h:80
Definition: objects.h:186
bool checkEndOfSequence()
int checkNameForCodes(const Common::String &name, FixedTextActionId fixedTextActionId=kFixedTextAction_Invalid)
void setObjSequence(int seq, bool wait)
virtual void setObjTalkSequence(int seq)
Definition: objects.h:277
Definition: image_file.h:78
Definition: objects.h:363
int frameHeight() const
Definition: objects.h:416
const Common::Rect getOldBounds() const
void load(Common::SeekableReadStream &s, bool isRoseTattoo)
void setFlagsAndToggles()
const Common::Rect getNewBounds() const
const Common::Rect getNoShapeBounds() const
int frameWidth() const
Definition: objects.h:411
int pickUpObject(FixedTextActionId fixedTextActionId=kFixedTextAction_Invalid)
void setObjTalkSequence(int seq) override
Definition: objects.h:101
Definition: objects.h:120
Definition: sherlock.h:206
Definition: objects.h:280
virtual void adjustSprite()=0
void setObjTalkSequence(int seq) override
Definition: objects.h:326
virtual void gotoStand()=0
int frameWidth() const
Definition: objects.h:331
int frameHeight() const
Definition: objects.h:336
virtual void setWalking()=0
const Common::Rect getOldBounds() const
Definition: objects.h:146
int16 h
Definition: surface.h:76
int16 w
Definition: surface.h:71
Definition: objects.h:154
void load(Common::SeekableReadStream &s)
Definition: objects.h:443
void load(Common::SeekableReadStream &s, bool isRoseTattoo, uint32 dataOffset)
Definition: image_file.h:36
Definition: objects.h:466
Definition: objects.h:168
void synchronize(Serializer &s)
void load(Common::SeekableReadStream &s, bool isRoseTattoo)
Definition: objects.h:132
void load(Common::SeekableReadStream &s)