aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/tattoo/tattoo_people.h
diff options
context:
space:
mode:
authorPaul Gilbert2015-06-17 21:41:05 -0400
committerPaul Gilbert2015-06-17 21:41:05 -0400
commit65b794a7505aeb5ab1667e8fd9ac5de687478757 (patch)
tree4ccb2e954a5086c10f52d01a89e34d411d5b425c /engines/sherlock/tattoo/tattoo_people.h
parent8abce6b025b1b4d8f50605875967f234b4b58312 (diff)
downloadscummvm-rg350-65b794a7505aeb5ab1667e8fd9ac5de687478757.tar.gz
scummvm-rg350-65b794a7505aeb5ab1667e8fd9ac5de687478757.tar.bz2
scummvm-rg350-65b794a7505aeb5ab1667e8fd9ac5de687478757.zip
SHERLOCK: RT: Implement updateNPC
Diffstat (limited to 'engines/sherlock/tattoo/tattoo_people.h')
-rw-r--r--engines/sherlock/tattoo/tattoo_people.h25
1 files changed, 22 insertions, 3 deletions
diff --git a/engines/sherlock/tattoo/tattoo_people.h b/engines/sherlock/tattoo/tattoo_people.h
index 4c739f12f6..36027fd9cb 100644
--- a/engines/sherlock/tattoo/tattoo_people.h
+++ b/engines/sherlock/tattoo/tattoo_people.h
@@ -71,6 +71,18 @@ enum TattooSequences {
LISTEN_UPLEFT = 27
};
+enum NpcPath {
+ NPCPATH_SET_DEST = 1,
+ NPCPATH_PAUSE = 2,
+ NPCPATH_SET_TALK_FILE = 3,
+ NPCPATH_CALL_TALK_FILE = 4,
+ NPCPATH_TAKE_NOTES = 5,
+ NPCPATH_FACE_HOLMES = 6,
+ NPCPATH_PATH_LABEL = 7,
+ NPCPATH_GOTO_LABEL = 8,
+ NPCPATH_IFFLAG_GOTO_LABEL = 9
+};
+
class TattooPerson: public Person {
private:
Point32 _nextDest;
@@ -89,7 +101,7 @@ protected:
public:
int _npcIndex;
int _npcStack;
- bool _npcPause;
+ int _npcPause;
byte _npcPath[MAX_NPC_PATH];
Common::String _npcName;
bool _npcMoved;
@@ -100,6 +112,7 @@ public:
int _tempX;
int _tempScaleVal;
bool _updateNPCPath;
+ bool _lookHolmes;
public:
TattooPerson();
virtual ~TattooPerson() {}
@@ -110,12 +123,18 @@ public:
void clearNPC();
/**
- * Update the NPC
+ * Called from doBgAnim to move NPCs along any set paths. If an NPC is paused in his path,
+ * he will remain paused until his pause timer runs out. If he is walking somewhere,
+ * he will continue walking there until he reaches the dest position. When an NPC stops moving,
+ * the next element of his path is processed.
+ *
+ * The path is an array of bytes with control codes followed by their parameters as needed.
*/
void updateNPC();
/**
- * Push the NPC's path
+ * Push the NPC's path data onto the path stack for when a talk file moves the NPC that
+ * has some control codes.
*/
void pushNPCPath();