diff options
-rw-r--r-- | engines/titanic/support/avi_surface.cpp | 12 | ||||
-rw-r--r-- | engines/titanic/support/avi_surface.h | 9 | ||||
-rw-r--r-- | engines/titanic/support/mouse_cursor.cpp | 10 | ||||
-rw-r--r-- | engines/titanic/support/mouse_cursor.h | 5 | ||||
-rw-r--r-- | engines/titanic/support/movie.cpp | 10 | ||||
-rw-r--r-- | engines/titanic/support/movie.h | 23 |
6 files changed, 52 insertions, 17 deletions
diff --git a/engines/titanic/support/avi_surface.cpp b/engines/titanic/support/avi_surface.cpp index 47127fe83b..a416bc3d69 100644 --- a/engines/titanic/support/avi_surface.cpp +++ b/engines/titanic/support/avi_surface.cpp @@ -214,4 +214,16 @@ bool AVISurface::addEvent(int frameNumber, CGameObject *obj) { return false; } +void AVISurface::setFrameRate(double rate) { + if (rate >= 0.0 && rate <= 100.0) { + _frameRate = rate; + warning("TODO: Frame rate set to %d yet to be implemented", (int)rate); + } +} + +void *AVISurface::duplicateFrameInfo() const { + // TODO + return nullptr; +} + } // End of namespace Titanic diff --git a/engines/titanic/support/avi_surface.h b/engines/titanic/support/avi_surface.h index 48c8169e78..fe3e972b07 100644 --- a/engines/titanic/support/avi_surface.h +++ b/engines/titanic/support/avi_surface.h @@ -127,6 +127,11 @@ public: */ bool addEvent(int frameNumber, CGameObject *obj); + /** + * Set the frame rate + */ + void setFrameRate(double rate); + const void *getFrameInfo() const { return _streamCount <= 1 ? nullptr : _frameInfo; } @@ -138,6 +143,10 @@ public: return &_movieRangeInfo; } + /** + * Duplicate the frame info + */ + void *duplicateFrameInfo() const; }; } // End of namespace Titanic diff --git a/engines/titanic/support/mouse_cursor.cpp b/engines/titanic/support/mouse_cursor.cpp index 721088f086..be607a432f 100644 --- a/engines/titanic/support/mouse_cursor.cpp +++ b/engines/titanic/support/mouse_cursor.cpp @@ -97,11 +97,11 @@ void CMouseCursor::loadCursorImages() { OSMovie movie(stream, surface); movie.setFrame(idx); - int frameNum = movie.proc21(); - _cursors[idx]._frameNumber = frameNum; - surface->setMovieFrame(frameNum); -*/ - } + void *frameInfo = movie.duplicateFrameInfo(); + _cursors[idx]._frameInfo = frameInfo; + surface->setMovieFrameInfo(frameInfo); + */ + } } void CMouseCursor::show() { diff --git a/engines/titanic/support/mouse_cursor.h b/engines/titanic/support/mouse_cursor.h index 168a7be539..f674ccd23d 100644 --- a/engines/titanic/support/mouse_cursor.h +++ b/engines/titanic/support/mouse_cursor.h @@ -54,8 +54,11 @@ class CVideoSurface; class CMouseCursor { struct CursorEntry { CVideoSurface *_videoSurface; - int _frameNumber; + void *_frameInfo; Common::Point _centroid; + + CursorEntry() : _videoSurface(nullptr), _frameInfo(nullptr) {} + ~CursorEntry() { delete _frameInfo; } }; private: CScreenManager *_screenManager; diff --git a/engines/titanic/support/movie.cpp b/engines/titanic/support/movie.cpp index 338396ff96..fc31750508 100644 --- a/engines/titanic/support/movie.cpp +++ b/engines/titanic/support/movie.cpp @@ -213,14 +213,12 @@ void OSMovie::movieStarted() { _field10 = 1; } -void OSMovie::proc20() { - // TODO +void OSMovie::setFrameRate(double rate) { + _aviSurface.setFrameRate(rate); } -int OSMovie::proc21() { - // TODO - return 0; +void *OSMovie::duplicateFrameInfo() const { + return _aviSurface.duplicateFrameInfo(); } - } // End of namespace Titanic diff --git a/engines/titanic/support/movie.h b/engines/titanic/support/movie.h index c839c882ca..8034bd4032 100644 --- a/engines/titanic/support/movie.h +++ b/engines/titanic/support/movie.h @@ -126,9 +126,16 @@ public: * Get the current movie frame */ virtual int getFrame() const = 0; - - virtual void proc20() = 0; - virtual int proc21() = 0; + + /** + * Set the frame rate for the movie + */ + virtual void setFrameRate(double rate) = 0; + + /** + * Creates a duplicate of the frame info + */ + virtual void *duplicateFrameInfo() const = 0; /** * Removes the movie from the list of currently playing movies @@ -218,9 +225,15 @@ public: */ virtual void setSoundManager(CSoundManager *soundManager); - virtual void proc20(); - virtual int proc21(); + /** + * Set the frame rate for the movie + */ + virtual void setFrameRate(double rate); + /** + * Creates a duplicate of the frame info + */ + virtual void *duplicateFrameInfo() const; }; } // End of namespace Titanic |