aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/support/movie.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/support/movie.h')
-rw-r--r--engines/titanic/support/movie.h25
1 files changed, 21 insertions, 4 deletions
diff --git a/engines/titanic/support/movie.h b/engines/titanic/support/movie.h
index b5ae70de13..dfb0ca108a 100644
--- a/engines/titanic/support/movie.h
+++ b/engines/titanic/support/movie.h
@@ -29,11 +29,20 @@
namespace Titanic {
+enum MovieState {
+ MOVIE_STOPPED = -1, MOVIE_NONE = 0, MOVIE_FINISHED = 1, MOVIE_FRAME = 2
+};
+
class CVideoSurface;
+class CMovie;
+
+class CMovieList : public List<CMovie> {
+public:
+};
class CMovie : public ListItem {
protected:
- int _state;
+ MovieState _state;
int _field10;
public:
CMovie();
@@ -57,12 +66,20 @@ public:
bool isActive() const;
bool get10();
+
+ virtual MovieState getState() = 0;
+ virtual void update() = 0;
};
class OSMovie : public CMovie {
private:
Video::VideoDecoder *_video;
CVideoSurface *_videoSurface;
+
+ /**
+ * Decodes the next frame
+ */
+ void decodeFrame();
public:
OSMovie(const CResourceKey &name, CVideoSurface *surface);
virtual ~OSMovie();
@@ -86,10 +103,10 @@ public:
virtual int proc19();
virtual void proc20();
virtual void *proc21();
-};
-class CGlobalMovies : public List<CMovie> {
-public:
+
+ virtual MovieState getState();
+ virtual void update();
};
} // End of namespace Titanic