aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rwxr-xr-xengines/pegasus/movie.cpp25
-rwxr-xr-xengines/pegasus/movie.h1
2 files changed, 11 insertions, 15 deletions
diff --git a/engines/pegasus/movie.cpp b/engines/pegasus/movie.cpp
index 9ddc091c0e..9d9c18994f 100755
--- a/engines/pegasus/movie.cpp
+++ b/engines/pegasus/movie.cpp
@@ -116,20 +116,10 @@ void Movie::setVolume(uint16 volume) {
}
void Movie::setTime(const TimeValue time, const TimeScale scale) {
- if (_video)
- _video->seekToTime(Audio::Timestamp(0, time, ((scale == 0) ? getScale() : scale)));
-}
-
-TimeValue Movie::getTime(const TimeScale scale) {
if (_video) {
- TimeScale actualScale = ((scale == 0) ? getScale() : scale);
-
- uint32 startTime = _startTime * actualScale / _startScale;
- uint32 stopTime = _stopTime * actualScale / _stopScale;
- return CLIP<int>(_video->getElapsedTime() * actualScale / 1000, startTime, stopTime);
+ _video->seekToTime(Audio::Timestamp(0, time, ((scale == 0) ? getScale() : scale)));
+ _time = Common::Rational(time, ((scale == 0) ? getScale() : scale));
}
-
- return 0;
}
void Movie::setRate(const Common::Rational rate) {
@@ -165,8 +155,15 @@ void Movie::checkCallBacks() {
// The reason why we overrode TimeBase's checkCallBacks():
// Again, avoiding timers and handling it here
- if (!_video->isPaused() && _video->needsUpdate())
- redrawMovieWorld();
+ if (!_video->isPaused()) {
+ if (_video->needsUpdate())
+ redrawMovieWorld();
+
+ uint32 startTime = _startTime * getScale() / _startScale;
+ uint32 stopTime = _stopTime * getScale() / _stopScale;
+ uint32 actualTime = CLIP<int>(_video->getElapsedTime() * getScale() / 1000, startTime, stopTime);
+ _time = Common::Rational(actualTime, getScale());
+ }
}
} // End of namespace Pegasus
diff --git a/engines/pegasus/movie.h b/engines/pegasus/movie.h
index 98d84b6163..54e57aeb30 100755
--- a/engines/pegasus/movie.h
+++ b/engines/pegasus/movie.h
@@ -54,7 +54,6 @@ public:
void setDirectDraw(const bool);
virtual void setTime(const TimeValue, const TimeScale = 0);
- virtual TimeValue getTime(const TimeScale = 0);
virtual void setRate(const Common::Rational);