aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/support
diff options
context:
space:
mode:
authorPaul Gilbert2016-07-09 12:07:12 -0400
committerPaul Gilbert2016-07-15 19:27:37 -0400
commit6c56d5aa11db1401bc0a2277776ec43128174bc2 (patch)
tree9d0cf718cb707e94fc8f0cbc02618672910176f0 /engines/titanic/support
parentcc9bf88ed56a4c5fbb14c05d30395b1688f5ebe7 (diff)
downloadscummvm-rg350-6c56d5aa11db1401bc0a2277776ec43128174bc2.tar.gz
scummvm-rg350-6c56d5aa11db1401bc0a2277776ec43128174bc2.tar.bz2
scummvm-rg350-6c56d5aa11db1401bc0a2277776ec43128174bc2.zip
TITANIC: Named two remaining OSMovie virtual methods
Diffstat (limited to 'engines/titanic/support')
-rw-r--r--engines/titanic/support/avi_surface.cpp12
-rw-r--r--engines/titanic/support/avi_surface.h9
-rw-r--r--engines/titanic/support/mouse_cursor.cpp10
-rw-r--r--engines/titanic/support/mouse_cursor.h5
-rw-r--r--engines/titanic/support/movie.cpp10
-rw-r--r--engines/titanic/support/movie.h23
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