aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/messages.h
diff options
context:
space:
mode:
authorEugene Sandulenko2013-08-10 23:41:38 +0300
committerEugene Sandulenko2013-09-06 14:51:12 +0300
commit1ca1a5dfa041179d980676c6aa8fa135f7b69a0e (patch)
tree93e2f10d60f4d526eacf613e06ace883fdc1892e /engines/fullpipe/messages.h
parentd866e2aabf5e69481b0feb797a075b469eaa1bb9 (diff)
downloadscummvm-rg350-1ca1a5dfa041179d980676c6aa8fa135f7b69a0e.tar.gz
scummvm-rg350-1ca1a5dfa041179d980676c6aa8fa135f7b69a0e.tar.bz2
scummvm-rg350-1ca1a5dfa041179d980676c6aa8fa135f7b69a0e.zip
FULLPIPE: Implement MessageQueue::chain()
Diffstat (limited to 'engines/fullpipe/messages.h')
-rw-r--r--engines/fullpipe/messages.h22
1 files changed, 15 insertions, 7 deletions
diff --git a/engines/fullpipe/messages.h b/engines/fullpipe/messages.h
index e2e27b5025..746765f462 100644
--- a/engines/fullpipe/messages.h
+++ b/engines/fullpipe/messages.h
@@ -50,6 +50,8 @@ class Message : public CObject {
public:
Message();
Message(Message *src);
+ virtual ~Message() {}
+
Message(int16 parentId, int messageKind, int x, int y, int a6, int a7, int sceneClickX, int sceneClickY, int a10);
};
@@ -84,18 +86,14 @@ class CObjstateCommand : public CObject {
};
class MessageQueue : public CObject {
- friend class GlobalMessageQueueList;
- friend class CGameLoader;
- friend class Scene;
-
- protected:
+ public:
int _id;
int _flags;
char *_queueName;
int16 _dataId;
int16 _field_12;
- int _field_14;
- CPtrList _exCommands;
+ CObject *_field_14;
+ Common::List<ExCommand *> _exCommands;
int _counter;
int _field_38;
int _isFinished;
@@ -105,23 +103,33 @@ class MessageQueue : public CObject {
public:
MessageQueue();
MessageQueue(MessageQueue *src, int parId, int field_38);
+ virtual ~MessageQueue();
+
virtual bool load(MfcArchive &file);
int getFlags() { return _flags; }
void setFlags(int flags) { _flags = flags; }
+ uint getCount() { return _exCommands.size(); }
+
+ ExCommand *getExCommandByIndex(uint idx);
+
bool chain(StaticANIObject *ani);
void update();
void sendNextCommand();
void finish();
void messageQueueCallback1(int par);
+
+ bool checkGlobalExCommandList1();
+ bool checkGlobalExCommandList2();
};
class GlobalMessageQueueList : public CPtrList {
public:
MessageQueue *getMessageQueueById(int id);
void deleteQueueById(int id);
+ void removeQueueById(int id);
void disableQueueById(int id);
void addMessageQueue(MessageQueue *msg);