diff options
author | Andrei Prykhodko | 2018-06-23 09:44:56 +0300 |
---|---|---|
committer | Eugene Sandulenko | 2018-06-28 23:51:32 +0200 |
commit | 81f60be7c827c22e9ae0eab53089ef065a187898 (patch) | |
tree | eefcd7eb15e48821b39cb6cb064d841562a20bdb /engines/pink/objects | |
parent | 42a649fd808114a4d31099951457f2e4f4b593e6 (diff) | |
download | scummvm-rg350-81f60be7c827c22e9ae0eab53089ef065a187898.tar.gz scummvm-rg350-81f60be7c827c22e9ae0eab53089ef065a187898.tar.bz2 scummvm-rg350-81f60be7c827c22e9ae0eab53089ef065a187898.zip |
PINK: fixed playing last audio subsequence
Diffstat (limited to 'engines/pink/objects')
-rw-r--r-- | engines/pink/objects/sequences/sequence.cpp | 12 | ||||
-rw-r--r-- | engines/pink/objects/sequences/sequence.h | 4 |
2 files changed, 8 insertions, 8 deletions
diff --git a/engines/pink/objects/sequences/sequence.cpp b/engines/pink/objects/sequences/sequence.cpp index 7e5a3a2677..5d303fbd65 100644 --- a/engines/pink/objects/sequences/sequence.cpp +++ b/engines/pink/objects/sequences/sequence.cpp @@ -28,7 +28,6 @@ #include "pink/objects/pages/game_page.h" #include "pink/objects/sequences/sequence.h" #include "pink/objects/sequences/sequence_context.h" -#include "pink/objects/sequences/sequence_item.h" #include "pink/objects/sequences/sequencer.h" namespace Pink { @@ -144,8 +143,9 @@ void SequenceAudio::start(bool loadingSave) { Sequence::start(loadingSave); uint index = _context->getNextItemIndex(); if (index < _items.size()) { - SequenceItemLeaderAudio *leaderAudio = (SequenceItemLeaderAudio *)_items[index]; - _sample = leaderAudio->getSample(); + _leader = (SequenceItemLeaderAudio *)_items[index]; + } else { + _leader = nullptr; } } @@ -157,18 +157,18 @@ void SequenceAudio::end() { void SequenceAudio::update() { if (!_sound.isPlaying()) end(); - else if (_sample <= _sound.getCurrentSample()) + else if (_leader && _leader->getSample() <= _sound.getCurrentSample()) start(0); } void SequenceAudio::init(bool loadingSave) { - _sample = 0; + _leader = nullptr; _sound.play(_sequencer->getPage()->getResourceStream(_soundName), Audio::Mixer::kMusicSoundType); start(loadingSave); } void SequenceAudio::restart() { - _sample = 0; + _leader = nullptr; _sound.play(_sequencer->getPage()->getResourceStream(_soundName), Audio::Mixer::kMusicSoundType); Sequence::restart(); } diff --git a/engines/pink/objects/sequences/sequence.h b/engines/pink/objects/sequences/sequence.h index ae446e4e82..7ebb95ce4c 100644 --- a/engines/pink/objects/sequences/sequence.h +++ b/engines/pink/objects/sequences/sequence.h @@ -24,7 +24,7 @@ #define PINK_SEQUENCE_H #include "pink/sound.h" -#include "pink/objects/object.h" +#include "pink/objects/sequences/sequence_item.h" namespace Pink { @@ -86,9 +86,9 @@ public: void skip() override; private: + SequenceItemLeaderAudio *_leader; Common::String _soundName; Sound _sound; - uint32 _sample; }; } // End of namespace Pink |