diff --git a/client/CMusicHandler.cpp b/client/CMusicHandler.cpp index 11325e0ac..9f699012c 100644 --- a/client/CMusicHandler.cpp +++ b/client/CMusicHandler.cpp @@ -183,7 +183,7 @@ void CSoundHandler::ambientStopSound(const AudioPath & soundId) setChannelVolume(ambientChannels[soundId], volume); } -double CSoundHandler::getSoundDuration(const AudioPath & sound) +uint32_t CSoundHandler::getSoundDurationMilliseconds(const AudioPath & sound) { if (!initialized || sound.empty()) return 0.0; diff --git a/client/mainmenu/CPrologEpilogVideo.cpp b/client/mainmenu/CPrologEpilogVideo.cpp index 45fc00f87..0cf8d0f99 100644 --- a/client/mainmenu/CPrologEpilogVideo.cpp +++ b/client/mainmenu/CPrologEpilogVideo.cpp @@ -49,13 +49,6 @@ CPrologEpilogVideo::CPrologEpilogVideo(CampaignScenarioPrologEpilog _spe, std::f void CPrologEpilogVideo::tick(uint32_t msPassed) { elapsedTimeMilliseconds += msPassed; -} - -void CPrologEpilogVideo::show(Canvas & to) -{ - to.drawColor(pos, Colors::BLACK); - //some videos are 800x600 in size while some are 800x400 - CCS->videoh->update(pos.x, pos.y + (CCS->videoh->size().y == 400 ? 100 : 0), to.getInternalSurface(), true, false); const uint32_t speed = (voiceDurationMilliseconds == 0) ? 100 : (voiceDurationMilliseconds / (text->textSize.y)); @@ -65,13 +58,17 @@ void CPrologEpilogVideo::show(Canvas & to) elapsedTimeMilliseconds -= speed; ++positionCounter; } - else - { - text->showAll(to); // blit text over video, if needed + else if(elapsedTimeMilliseconds > (voiceDurationMilliseconds == 0.0 ? 6000 : 3000) && voiceStopped) // pause after completed scrolling (longer for intros missing voice) + clickPressed(GH.getCursorPosition()); +} - if(elapsedTimeMilliseconds > (voiceDurationMilliseconds == 0.0 ? 6000 : 3000) && voiceStopped) // pause after completed scrolling (longer for intros missing voice) - clickPressed(GH.getCursorPosition()); - } +void CPrologEpilogVideo::show(Canvas & to) +{ + to.drawColor(pos, Colors::BLACK); + //some videos are 800x600 in size while some are 800x400 + CCS->videoh->update(pos.x, pos.y + (CCS->videoh->size().y == 400 ? 100 : 0), to.getInternalSurface(), true, false); + + text->showAll(to); // blit text over video, if needed } void CPrologEpilogVideo::clickPressed(const Point & cursorPosition)