aboutsummaryrefslogtreecommitdiff
path: root/engines/illusions/thread.h
diff options
context:
space:
mode:
authorjohndoe1232014-03-13 16:59:16 +0100
committerEugene Sandulenko2018-07-20 06:43:33 +0000
commit9696eb9a546891bf7ff601d94f7a8a2ff6730349 (patch)
treefd34a52adad30e0080bc399ff49b71f46fe3d3df /engines/illusions/thread.h
parentfc47ac41ae0b5a7fab6a7dfa29b3e33e1e5df2ac (diff)
downloadscummvm-rg350-9696eb9a546891bf7ff601d94f7a8a2ff6730349.tar.gz
scummvm-rg350-9696eb9a546891bf7ff601d94f7a8a2ff6730349.tar.bz2
scummvm-rg350-9696eb9a546891bf7ff601d94f7a8a2ff6730349.zip
ILLUSIONS: More work on the script system
Diffstat (limited to 'engines/illusions/thread.h')
-rw-r--r--engines/illusions/thread.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/engines/illusions/thread.h b/engines/illusions/thread.h
index 27d4c41657..2a2c0f10d2 100644
--- a/engines/illusions/thread.h
+++ b/engines/illusions/thread.h
@@ -29,6 +29,13 @@ namespace Illusions {
class IllusionsEngine;
+enum ThreadType {
+ kTTScriptThread = 1,
+ kTTTimerThread = 2,
+ kTTTalkThread = 3,
+ kTTSpecialThread = 5
+};
+
class Thread {
public:
Thread(IllusionsEngine *vm);
@@ -63,6 +70,18 @@ public:
ThreadList(IllusionsEngine *vm);
void startThread(Thread *thread);
void updateThreads();
+ Thread *findThread(uint32 threadId);
+ void suspendId(uint32 threadId);
+ void notifyId(uint32 threadId);
+ void notifyTimerThreads(uint32 callingThreadId);
+ void suspendTimerThreads(uint32 callingThreadId);
+ void terminateThreads(uint32 threadId);
+ void terminateThreadsByTag(uint32 tag, uint32 threadId);
+ void suspendThreadsByTag(uint32 tag, uint32 threadId);
+ void notifyThreadsByTag(uint32 tag, uint32 threadId);
+ void pauseThreads(uint32 threadId);
+ void resumeThreads(uint32 threadId);
+ void killThread(uint32 threadId);
protected:
typedef Common::List<Thread*> List;
typedef List::iterator Iterator;