diff options
author | Paul Gilbert | 2014-05-16 23:02:35 -0400 |
---|---|---|
committer | Paul Gilbert | 2014-05-16 23:02:35 -0400 |
commit | 622f97244df3f6bf80c86c4452f064bee8871e3d (patch) | |
tree | 498d584292fdba2c9783aac116c65a6146a2426e /engines/mads/messages.h | |
parent | 5d62f6bb296ffd7dd62b0e75ccaa5df776bdc13b (diff) | |
download | scummvm-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.h | 30 |
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 { |