aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/people.h
diff options
context:
space:
mode:
authorPaul Gilbert2015-05-23 16:06:29 -0400
committerPaul Gilbert2015-05-23 16:06:29 -0400
commitbcc31b2a663545ec448d886d8ed16546593f849e (patch)
treec2452b8ea70bc6adcb57c1a01e9af4610af05c79 /engines/sherlock/people.h
parentc8cfca749a5da09aead4ca0c499def9afab5317c (diff)
downloadscummvm-rg350-bcc31b2a663545ec448d886d8ed16546593f849e.tar.gz
scummvm-rg350-bcc31b2a663545ec448d886d8ed16546593f849e.tar.bz2
scummvm-rg350-bcc31b2a663545ec448d886d8ed16546593f849e.zip
SHERLOCK: Implemented Tattoo loadWalk changes
Diffstat (limited to 'engines/sherlock/people.h')
-rw-r--r--engines/sherlock/people.h22
1 files changed, 13 insertions, 9 deletions
diff --git a/engines/sherlock/people.h b/engines/sherlock/people.h
index 8244fd9b59..f3e7950400 100644
--- a/engines/sherlock/people.h
+++ b/engines/sherlock/people.h
@@ -30,13 +30,11 @@
namespace Sherlock {
-// Player definitions. The game has theoretical support for two player characters but only the first one is used.
-// Watson is, instead, handled by a different sprite in each scene, with a very simple initial movement, if any
enum PeopleId {
PLAYER = 0,
AL = 0,
PEG = 1,
- MAX_PLAYERS = 2
+ MAX_PLAYERS = 6
};
// Animation sequence identifiers for characters
@@ -63,20 +61,24 @@ struct PersonData {
_name(name), _portrait(portrait), _stillSequences(stillSequences), _talkSequences(talkSequences) {}
};
-class SherlockEngine;
-
class Person : public Sprite {
public:
- Person() : Sprite() {}
-
+ bool _walkLoaded;
Common::String _portrait;
+
+ // Rose Tattoo fields
+ Common::String _walkVGSName; // Name of walk library person is using
+ Common::Array<WalkSequence> _walkSequences;
+public:
+ Person() : Sprite(), _walkLoaded(false) {}
};
+class SherlockEngine;
+
class People {
private:
SherlockEngine *_vm;
Person _data[MAX_PLAYERS];
- bool _walkLoaded;
int _oldWalkSequence;
int _srcZone, _destZone;
public:
@@ -97,6 +99,8 @@ public:
bool _speakerFlip;
bool _holmesFlip;
int _holmesQuotient;
+ bool _forceWalkReload;
+ bool _useWalkLib;
public:
People(SherlockEngine *vm);
~People();
@@ -113,7 +117,7 @@ public:
/**
* Returns true if Sherlock is visible on the screen and enabled
*/
- bool isHolmesActive() const { return _walkLoaded && _holmesOn; }
+ bool isHolmesActive() const { return _data[0]._walkLoaded && _holmesOn; }
/**
* Reset the player data