diff options
author | Julien Templier | 2011-01-25 02:16:29 +0000 |
---|---|---|
committer | Julien Templier | 2011-01-25 02:16:29 +0000 |
commit | 0fd380441a87249c467bb2648744b85d244ba6c8 (patch) | |
tree | 342ee32ad20c268698e4cc453962a7a28c8bb620 /engines/lastexpress/game/sound.h | |
parent | ccb1faef7eae4325a44f636c4c13f3eabd4b8e79 (diff) | |
download | scummvm-rg350-0fd380441a87249c467bb2648744b85d244ba6c8.tar.gz scummvm-rg350-0fd380441a87249c467bb2648744b85d244ba6c8.tar.bz2 scummvm-rg350-0fd380441a87249c467bb2648744b85d244ba6c8.zip |
LASTEXPRESS: Add some subtitle support to Sound class
svn-id: r55511
Diffstat (limited to 'engines/lastexpress/game/sound.h')
-rw-r--r-- | engines/lastexpress/game/sound.h | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/engines/lastexpress/game/sound.h b/engines/lastexpress/game/sound.h index 61326962d0..4f613014e6 100644 --- a/engines/lastexpress/game/sound.h +++ b/engines/lastexpress/game/sound.h @@ -69,6 +69,8 @@ */ +#include "lastexpress/data/subtitle.h" + #include "lastexpress/shared.h" #include "lastexpress/helpers.h" @@ -206,9 +208,12 @@ private: enum SoundStatus { kSoundStatus_20 = 0x20, + kSoundStatus_40 = 0x40, kSoundStatusRemoved = 0x200, + kSoundStatus_400 = 0x400, kSoundStatus_8000 = 0x8000, + kSoundStatus_20000 = 0x20000, kSoundStatus_100000 = 0x100000, kSoundStatus_40000000 = 0x40000000, @@ -238,6 +243,8 @@ private: } }; + struct SubtitleEntry; + struct SoundEntry { SoundStatusUnion status; SoundType type; // int @@ -262,7 +269,7 @@ private: Common::String name1; //char[16]; Common::String name2; //char[16]; //int next; // offset to the next structure in the list (not used) - SubtitleManager *subtitle; + SubtitleEntry *subtitle; bool isStreamed; // TEMPORARY @@ -297,6 +304,23 @@ private: } }; + struct SubtitleEntry { + Common::String filename; + SoundStatusUnion status; + SoundEntry *sound; + SubtitleManager *data; + + SubtitleEntry() { + status.status = 0; + sound = NULL; + data = NULL; + } + + ~SubtitleEntry() { + SAFE_DELETE(data); + } + }; + // Engine LastExpressEngine *_engine; @@ -343,8 +367,15 @@ private: void removeEntry(SoundEntry *entry); // Subtitles - void showSubtitles(SoundEntry *entry, Common::String filename); - void drawSubtitles(SubtitleManager *subtitle); + int _drawSubtitles; + Common::List<SubtitleEntry *> _subtitles; + SubtitleEntry *_currentSubtitle; + void showSubtitle(SoundEntry *entry, Common::String filename); + SubtitleEntry *loadSubtitle(Common::String filename, SoundEntry *soundEntry); + void loadSubtitleData(SubtitleEntry * entry); + void setupSubtitleAndDraw(SubtitleEntry *subtitle); + void drawSubtitle(SubtitleEntry *subtitle); + void drawSubtitleOnScreen(SubtitleEntry *subtitle); // Sound filter void applyFilter(SoundEntry *entry, SoundBuffer buffer); |