aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/pegasus/movie.cpp9
-rw-r--r--engines/pegasus/movie.h2
2 files changed, 10 insertions, 1 deletions
diff --git a/engines/pegasus/movie.cpp b/engines/pegasus/movie.cpp
index 6187d87a2d..fcceee149a 100644
--- a/engines/pegasus/movie.cpp
+++ b/engines/pegasus/movie.cpp
@@ -80,7 +80,7 @@ void Movie::initFromMovieFile(const Common::String &fileName, bool transparent)
if (!isSurfaceValid())
allocateSurface(bounds);
- setStart(0, getScale());
+ TimeBase::setStart(0, getScale());
TimeBase::setStop(_video->getDuration().convertToFramerate(getScale()).totalNumberOfFrames(), getScale());
}
@@ -132,6 +132,13 @@ void Movie::moveMovieBoxTo(const CoordType h, const CoordType v) {
_movieBox.moveTo(h, v);
}
+void Movie::setStart(const TimeValue startTime, const TimeScale scale) {
+ TimeBase::setStart(startTime, scale);
+
+ if (_video)
+ _video->seek(Audio::Timestamp(0, _startTime, _startScale));
+}
+
void Movie::setStop(const TimeValue stopTime, const TimeScale scale) {
TimeBase::setStop(stopTime, scale);
diff --git a/engines/pegasus/movie.h b/engines/pegasus/movie.h
index 9b9cc2bdbe..275deecca8 100644
--- a/engines/pegasus/movie.h
+++ b/engines/pegasus/movie.h
@@ -62,6 +62,8 @@ public:
virtual void moveMovieBoxTo(const CoordType, const CoordType);
+ virtual void setStart(const TimeValue, const TimeScale = 0);
+
virtual void setStop(const TimeValue, const TimeScale = 0);
virtual TimeValue getDuration(const TimeScale = 0) const;