From 81f60be7c827c22e9ae0eab53089ef065a187898 Mon Sep 17 00:00:00 2001 From: Andrei Prykhodko Date: Sat, 23 Jun 2018 09:44:56 +0300 Subject: PINK: fixed playing last audio subsequence --- engines/pink/objects/sequences/sequence.cpp | 12 ++++++------ engines/pink/objects/sequences/sequence.h | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'engines/pink/objects') 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 -- cgit v1.2.3