From: <sag...@us...> - 2015-06-27 00:06:25
|
Revision: 5363 http://sourceforge.net/p/modplug/code/5363 Author: saga-games Date: 2015-06-27 00:06:19 +0000 (Sat, 27 Jun 2015) Log Message: ----------- [Fix] Playing patterns not present in the order list was broken since OpenMPT 1.24.03.00 (http://forum.openmpt.org/index.php?topic=5495.0) Modified Paths: -------------- trunk/OpenMPT/mptrack/Moddoc.cpp Modified: trunk/OpenMPT/mptrack/Moddoc.cpp =================================================================== --- trunk/OpenMPT/mptrack/Moddoc.cpp 2015-06-26 22:37:08 UTC (rev 5362) +++ trunk/OpenMPT/mptrack/Moddoc.cpp 2015-06-27 00:06:19 UTC (rev 5363) @@ -2369,6 +2369,8 @@ return nullptr; } + +// Get the currently edited pattern position. Note that ord might be ORDERINDEX_INVALID when editing a pattern that is not present in the order list. HWND CModDoc::GetEditPosition(ROWINDEX &row, PATTERNINDEX &pat, ORDERINDEX &ord) //------------------------------------------------------------------------------ { @@ -2412,11 +2414,7 @@ //ensure order correlates with pattern. if(m_SndFile.Order[ord] != pat) { - ORDERINDEX tentativeOrder = m_SndFile.Order.FindOrder(pat); - if (tentativeOrder != ORDERINDEX_INVALID) //ensure a valid order exists. - { - ord = tentativeOrder; - } + ord = m_SndFile.Order.FindOrder(pat); } return followSonghWnd; @@ -2819,12 +2817,12 @@ void CModDoc::SetElapsedTime(ORDERINDEX nOrd, ROWINDEX nRow, bool setSamplePos) //----------------------------------------------------------------------------- { + if(nOrd == ORDERINDEX_INVALID) return; + double t = m_SndFile.GetPlaybackTimeAt(nOrd, nRow, true, setSamplePos && (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_SYNCSAMPLEPOS) != 0); + CMainFrame *pMainFrm = CMainFrame::GetMainFrame(); - if(pMainFrm != nullptr) - { - pMainFrm->SetElapsedTime(std::max(0.0, t)); - } + if(pMainFrm != nullptr) pMainFrm->SetElapsedTime(std::max(0.0, t)); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |