aboutsummaryrefslogtreecommitdiff
path: root/engines/sword1/animation.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sword1/animation.h')
-rw-r--r--engines/sword1/animation.h35
1 files changed, 27 insertions, 8 deletions
diff --git a/engines/sword1/animation.h b/engines/sword1/animation.h
index 34f05d0a11..4e76c200c5 100644
--- a/engines/sword1/animation.h
+++ b/engines/sword1/animation.h
@@ -58,9 +58,24 @@ enum {
#define INTRO_LOGO_OVLS 12
#define INTRO_TEXT_OVLS 8
+class MovieText {
+public:
+ uint16 _startFrame;
+ uint16 _endFrame;
+ char *_text;
+ MovieText(int startFrame, int endFrame, char *text) {
+ _startFrame = startFrame;
+ _endFrame = endFrame;
+ _text = strdup(text);
+ }
+ ~MovieText() {
+ free(_text);
+ }
+};
+
class MoviePlayer {
public:
- MoviePlayer(Screen *scr, Audio::Mixer *snd, OSystem *sys);
+ MoviePlayer(Screen *screen, Text *textMan, Audio::Mixer *snd, OSystem *system);
virtual ~MoviePlayer(void);
virtual bool load(uint32 id);
void play(void);
@@ -68,13 +83,17 @@ public:
private:
bool checkSkipFrame(void);
protected:
- Screen *_scr;
+ Screen *_screen;
+ Text *_textMan;
Audio::Mixer *_snd;
OSystem *_system;
+ Common::Array<MovieText *> _movieTexts;
+ byte *_textSpriteBuf;
+ int _textX, _textY, _textWidth, _textHeight;
+ byte _black, _white;
uint32 _id;
- byte *_frameBuffer;
uint _currentFrame;
int _framesSkipped;
bool _forceFrame;
@@ -100,7 +119,7 @@ class MoviePlayerDXA : public MoviePlayer, ::Graphics::DXAPlayer {
protected:
virtual void setPalette(byte *pal);
public:
- MoviePlayerDXA(Screen *scr, Audio::Mixer *snd, OSystem *sys);
+ MoviePlayerDXA(Screen *screen, Text *textMan, Audio::Mixer *snd, OSystem *system);
virtual ~MoviePlayerDXA(void);
bool load(uint32 id);
protected:
@@ -117,10 +136,10 @@ protected:
class AnimationState : public Graphics::BaseAnimationState {
private:
MoviePlayer *_player;
- Screen *_scr;
+ Screen *_screen;
public:
- AnimationState(MoviePlayer *player, Screen *scr, OSystem *sys);
+ AnimationState(MoviePlayer *player, Screen *screen, OSystem *system);
~AnimationState(void);
OverlayColor *giveRgbBuffer(void);
@@ -137,7 +156,7 @@ protected:
class MoviePlayerMPEG : public MoviePlayer {
public:
- MoviePlayerMPEG(Screen *scr, Audio::Mixer *snd, OSystem *sys);
+ MoviePlayerMPEG(Screen *screen, Text *textMan, Audio::Mixer *snd, OSystem *system);
virtual ~MoviePlayerMPEG(void);
bool load(uint32 id);
protected:
@@ -173,7 +192,7 @@ private:
FileQueue *_queue;
};
-MoviePlayer *makeMoviePlayer(uint32 id, Screen *scr, Audio::Mixer *snd, OSystem *sys);
+MoviePlayer *makeMoviePlayer(uint32 id, Screen *screen, Text *textMan, Audio::Mixer *snd, OSystem *system);
} // End of namespace Sword1