aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/messages.h
diff options
context:
space:
mode:
authorPaul Gilbert2014-05-16 23:02:35 -0400
committerPaul Gilbert2014-05-16 23:02:35 -0400
commit622f97244df3f6bf80c86c4452f064bee8871e3d (patch)
tree498d584292fdba2c9783aac116c65a6146a2426e /engines/mads/messages.h
parent5d62f6bb296ffd7dd62b0e75ccaa5df776bdc13b (diff)
downloadscummvm-rg350-622f97244df3f6bf80c86c4452f064bee8871e3d.tar.gz
scummvm-rg350-622f97244df3f6bf80c86c4452f064bee8871e3d.tar.bz2
scummvm-rg350-622f97244df3f6bf80c86c4452f064bee8871e3d.zip
MADS: In progress framework for on-screen random messages
Diffstat (limited to 'engines/mads/messages.h')
-rw-r--r--engines/mads/messages.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/engines/mads/messages.h b/engines/mads/messages.h
index 8aa8cd54da..7211598dff 100644
--- a/engines/mads/messages.h
+++ b/engines/mads/messages.h
@@ -34,6 +34,7 @@ namespace MADS {
#define KERNEL_MESSAGES_SIZE 10
#define INDEFINITE_TIMEOUT 9999999
#define TEXT_DISPLAY_SIZE 40
+#define RANDOM_MESSAGE_SIZE 4
enum KernelMessageFlags {
KMSG_QUOTED = 1, KMSG_PLAYER_TIMEOUT = 2, KMSG_SEQ_ENTRY = 4, KMSG_SCROLL = 8,
@@ -67,9 +68,19 @@ public:
class KernelMessages {
private:
MADSEngine *_vm;
+
+ struct RandomEntry {
+ int _handle;
+ int _quote;
+ };
+ RandomEntry _randomMessages[RANDOM_MESSAGE_SIZE];
+ int _randomMaxMessages;
+
+ void resetRandomMessages();
public:
Common::Array<KernelMessage> _entries;
Font *_talkFont;
+public:
KernelMessages(MADSEngine *vm);
~KernelMessages();
@@ -85,6 +96,25 @@ public:
void processText(int msgIndex);
void delay(uint32 priorFrameTime, uint32 currentTime);
void setQuoted(int msgIndex, int numTicks, bool quoted);
+
+ void initRandomMessages(int maxSimultaneousMessages,
+ const Common::Rect &bounds, int minYSpacing, int scrollRate,
+ int color, int duration, int quoteId, ...);
+
+ /**
+ * Handles expiring any active random messages as necessary
+ */
+ void randomServer();
+
+ /**
+ * Return the number of currently active random messages
+ */
+ int checkRandom();
+
+ /**
+ * Handles generating new random messages
+ */
+ bool generateRandom(int major, int minor);
};
class TextDisplay {