diff options
Diffstat (limited to 'engines/sword2/animation.cpp')
-rw-r--r-- | engines/sword2/animation.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/engines/sword2/animation.cpp b/engines/sword2/animation.cpp index 9f134621ec..bf60623f92 100644 --- a/engines/sword2/animation.cpp +++ b/engines/sword2/animation.cpp @@ -75,6 +75,7 @@ MoviePlayer::MoviePlayer(Sword2Engine *vm) { _vm = vm; _mixer = _vm->_mixer; _system = _vm->_system; + _name = NULL; _textSurface = NULL; _bgSoundStream = NULL; _ticks = 0; @@ -96,6 +97,7 @@ MoviePlayer::MoviePlayer(Sword2Engine *vm) { } MoviePlayer::~MoviePlayer() { + free(_name); } void MoviePlayer::updatePalette(byte *pal, bool packed) { @@ -278,6 +280,8 @@ bool MoviePlayer::load(const char *name, MovieTextObject *text[]) { _currentText = 0; _currentFrame = 0; + _name = strdup(name); + for (int i = 0; i < ARRAYSIZE(_movies); i++) { if (scumm_stricmp(name, _movies[i].name) == 0) { _seamless = _movies[i].seamless; @@ -335,8 +339,8 @@ void MoviePlayer::play(int32 leadIn, int32 leadOut) { #endif _framesSkipped = 0; - _ticks = _system->getMillis(); + _bgSoundStream = Audio::AudioStream::openStreamFile(_name); if (_bgSoundStream) { _mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_bgSoundHandle, _bgSoundStream); @@ -504,8 +508,6 @@ bool MoviePlayerDXA::load(const char *name, MovieTextObject *text[]) { _frameX = (_vm->_screen->getScreenWide() - _frameWidth) / 2; _frameY = (_vm->_screen->getScreenDeep() - _frameHeight) / 2; - _bgSoundStream = Audio::AudioStream::openStreamFile(name); - return true; } @@ -566,11 +568,8 @@ bool MoviePlayerMPEG::decodeFrame() { return result; } -void MoviePlayerMPEG::syncFrame() { -} - AnimationState::AnimationState(Sword2Engine *vm, MoviePlayer *player) - : BaseAnimationState(vm->_mixer, vm->_system, 640, 480) { + : BaseAnimationState(vm->_system, 640, 480) { _vm = vm; _player = player; } |