diff options
author | Paul Gilbert | 2010-05-24 12:12:27 +0000 |
---|---|---|
committer | Paul Gilbert | 2010-05-24 12:12:27 +0000 |
commit | 6bda3e15db6baaa3af3d479e86dad2dd4f95084f (patch) | |
tree | 030bffb63865244c80e6a900ce734bebf146555a /engines/m4/mads_views.h | |
parent | 55e29af78a52a13269d9905c6410e70f56b5920d (diff) | |
download | scummvm-rg350-6bda3e15db6baaa3af3d479e86dad2dd4f95084f.tar.gz scummvm-rg350-6bda3e15db6baaa3af3d479e86dad2dd4f95084f.tar.bz2 scummvm-rg350-6bda3e15db6baaa3af3d479e86dad2dd4f95084f.zip |
Implemented the bulk of the logic for displaying timed on-screen messages
svn-id: r49180
Diffstat (limited to 'engines/m4/mads_views.h')
-rw-r--r-- | engines/m4/mads_views.h | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/engines/m4/mads_views.h b/engines/m4/mads_views.h index 3b64cc77f2..52388a99e0 100644 --- a/engines/m4/mads_views.h +++ b/engines/m4/mads_views.h @@ -139,9 +139,10 @@ public: #define TIMED_TEXT_SIZE 10 #define TEXT_4A_SIZE 30 -enum KernelMessageFlags {KMSG_1 = 1, KMSG_2 = 2, KMSG_4 = 4, KMSG_8 = 8, KMSG_20 = 0x20, KMSG_40 = 0x40, KMSG_ACTIVE = 0x80}; +enum KernelMessageFlags {KMSG_1 = 1, KMSG_2 = 2, KMSG_4 = 4, KMSG_8 = 8, KMSG_20 = 0x20, KMSG_30 = 0x30, + KMSG_40 = 0x40, KMSG_ACTIVE = 0x80}; -class MadsKernelMessageListEntry { +class MadsKernelMessageEntry { public: uint8 flags; int sequenceIndex; @@ -152,22 +153,24 @@ public: Common::Point position; int textDisplayIndex; int msgOffset; - int field_E; + int numTicks; uint32 frameTimer2; uint32 frameTimer; uint32 timeout; bool field_1C; AbortTimerMode abortMode; uint16 actionNouns[3]; - const char *msg; + char msg[100]; }; class MadsKernelMessageList { private: MadsView &_owner; - Common::Array<MadsKernelMessageListEntry> _entries; + Common::Array<MadsKernelMessageEntry> _entries; Font *_talkFont; public: + int word_8469E; +public: MadsKernelMessageList(MadsView &owner); void clear(); @@ -177,6 +180,8 @@ public: void setSeqIndex(int msgIndex, int seqIndex); void remove(int msgIndex); void reset(); + void update(); + void processText(int msgIndex); }; class ScreenObjectEntry { @@ -311,9 +316,7 @@ struct MadsSequenceEntry { int field_12; int field_13; - int width; - int height; - + Common::Point msgPos; int triggerCountdown; bool doneFlag; MadsSequenceSubEntries entries; @@ -338,7 +341,7 @@ public: void clear(); bool addSubEntry(int index, SequenceSubEntryMode mode, int frameIndex, int abortVal); int add(int spriteListIndex, int v0, int v1, int triggerCountdown, int delayTicks, int extraTicks, int numTicks, - int height, int width, char field_12, char scale, uint8 depth, int frameInc, SpriteAnimType animType, + int msgX, int msgY, char field_12, char scale, uint8 depth, int frameInc, SpriteAnimType animType, int numSprites, int frameStart); void remove(int timerIndex); void setSpriteSlot(int timerIndex, MadsSpriteSlot &spriteSlot); |