diff options
author | Filippos Karapetis | 2014-12-19 13:32:51 +0200 |
---|---|---|
committer | Filippos Karapetis | 2014-12-19 13:32:51 +0200 |
commit | a4c5e140e20a9dd1f23ca19c7449395726b7ec3b (patch) | |
tree | 6cafed74e960875475ad1d4a9a8b1805636f023a /engines/zvision/scripting/sidefx/music_node.cpp | |
parent | e0cb8f52f73ba927d5bf24c9b44f6d28743509df (diff) | |
parent | 5fb33ee5e7c99f76ba9560b56177041d19fb602e (diff) | |
download | scummvm-rg350-a4c5e140e20a9dd1f23ca19c7449395726b7ec3b.tar.gz scummvm-rg350-a4c5e140e20a9dd1f23ca19c7449395726b7ec3b.tar.bz2 scummvm-rg350-a4c5e140e20a9dd1f23ca19c7449395726b7ec3b.zip |
Merge pull request #549 from Marisa-Chan/master
ZVISION: Delete unused code
Diffstat (limited to 'engines/zvision/scripting/sidefx/music_node.cpp')
-rw-r--r-- | engines/zvision/scripting/sidefx/music_node.cpp | 45 |
1 files changed, 27 insertions, 18 deletions
diff --git a/engines/zvision/scripting/sidefx/music_node.cpp b/engines/zvision/scripting/sidefx/music_node.cpp index c79dd0296d..56598189f6 100644 --- a/engines/zvision/scripting/sidefx/music_node.cpp +++ b/engines/zvision/scripting/sidefx/music_node.cpp @@ -47,6 +47,8 @@ MusicNode::MusicNode(ZVision *engine, uint32 key, Common::String &filename, bool _pantrack = false; _pantrackPosition = 0; _sub = NULL; + _stereo = false; + _loaded = false; Audio::RewindableAudioStream *audioStream = NULL; @@ -59,30 +61,35 @@ MusicNode::MusicNode(ZVision *engine, uint32 key, Common::String &filename, bool audioStream = makeRawZorkStream(filename, _engine); } - _stereo = audioStream->isStereo(); + if (audioStream) { + _stereo = audioStream->isStereo(); - if (_loop) { - Audio::LoopingAudioStream *loopingAudioStream = new Audio::LoopingAudioStream(audioStream, 0, DisposeAfterUse::YES); - _engine->_mixer->playStream(Audio::Mixer::kPlainSoundType, &_handle, loopingAudioStream, -1, _volume); - } else { - _engine->_mixer->playStream(Audio::Mixer::kPlainSoundType, &_handle, audioStream, -1, _volume); - } + if (_loop) { + Audio::LoopingAudioStream *loopingAudioStream = new Audio::LoopingAudioStream(audioStream, 0, DisposeAfterUse::YES); + _engine->_mixer->playStream(Audio::Mixer::kPlainSoundType, &_handle, loopingAudioStream, -1, _volume); + } else { + _engine->_mixer->playStream(Audio::Mixer::kPlainSoundType, &_handle, audioStream, -1, _volume); + } - if (_key != StateKey_NotSet) - _engine->getScriptManager()->setStateValue(_key, 1); + if (_key != StateKey_NotSet) + _engine->getScriptManager()->setStateValue(_key, 1); + + // Change filename.raw into filename.sub + Common::String subname = filename; + subname.setChar('s', subname.size() - 3); + subname.setChar('u', subname.size() - 2); + subname.setChar('b', subname.size() - 1); - // Change filename.raw into filename.sub - Common::String subname = filename; - subname.setChar('s', subname.size() - 3); - subname.setChar('u', subname.size() - 2); - subname.setChar('b', subname.size() - 1); + if (_engine->getSearchManager()->hasFile(subname)) + _sub = new Subtitle(_engine, subname); - if (_engine->getSearchManager()->hasFile(subname)) - _sub = new Subtitle(_engine, subname); + _loaded = true; + } } MusicNode::~MusicNode() { - _engine->_mixer->stopHandle(_handle); + if (!_loaded) + _engine->_mixer->stopHandle(_handle); if (_key != StateKey_NotSet) _engine->getScriptManager()->setStateValue(_key, 2); if (_sub) @@ -110,7 +117,7 @@ void MusicNode::setFade(int32 time, uint8 target) { } bool MusicNode::process(uint32 deltaTimeInMillis) { - if (! _engine->_mixer->isSoundHandleActive(_handle)) + if (!_loaded || ! _engine->_mixer->isSoundHandleActive(_handle)) return stop(); else { uint8 _newvol = _volume; @@ -137,6 +144,8 @@ bool MusicNode::process(uint32 deltaTimeInMillis) { } void MusicNode::setVolume(uint8 newVolume) { + if (!_loaded) + return; if (_pantrack) { int curX = _engine->getScriptManager()->getStateValue(StateKey_ViewPos); curX -= _pantrackPosition; |