From: <sag...@us...> - 2012-02-19 01:37:50
|
Revision: 1185 http://modplug.svn.sourceforge.net/modplug/?rev=1185&view=rev Author: saga-games Date: 2012-02-19 01:37:43 +0000 (Sun, 19 Feb 2012) Log Message: ----------- [Fix] Pattern Editor: Resizing a pattern didn't create an undo point. [Ref] Smaller changes. Modified Paths: -------------- trunk/OpenMPT/mptrack/PatternEditorDialogs.cpp trunk/OpenMPT/mptrack/View_pat.cpp trunk/OpenMPT/mptrack/View_smp.cpp Modified: trunk/OpenMPT/mptrack/PatternEditorDialogs.cpp =================================================================== --- trunk/OpenMPT/mptrack/PatternEditorDialogs.cpp 2012-02-18 12:51:50 UTC (rev 1184) +++ trunk/OpenMPT/mptrack/PatternEditorDialogs.cpp 2012-02-19 01:37:43 UTC (rev 1185) @@ -577,8 +577,9 @@ } } - UINT n = GetDlgItemInt(IDC_COMBO1, NULL, FALSE); - pSndFile->Patterns[m_nPattern].Resize(n); + const ROWINDEX newSize = (ROWINDEX)GetDlgItemInt(IDC_COMBO1, NULL, FALSE); + m_pModDoc->GetPatternUndo().PrepareUndo(m_nPattern, 0, newSize, pSndFile->Patterns[m_nPattern].GetNumChannels(), pSndFile->Patterns[m_nPattern].GetNumRows() - newSize); + pSndFile->Patterns[m_nPattern].Resize(newSize); } CDialog::OnOK(); } Modified: trunk/OpenMPT/mptrack/View_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_pat.cpp 2012-02-18 12:51:50 UTC (rev 1184) +++ trunk/OpenMPT/mptrack/View_pat.cpp 2012-02-19 01:37:43 UTC (rev 1185) @@ -28,14 +28,14 @@ FindReplaceStruct CViewPattern::m_findReplace = { - {0,0,0,0,0,0}, {0,0,0,0,0,0}, + MODCOMMAND::Empty(), MODCOMMAND::Empty(), PATSEARCH_FULLSEARCH, PATSEARCH_REPLACEALL, 0, 0, 0, 0, 0, }; -MODCOMMAND CViewPattern::m_cmdOld = {0,0,0,0,0,0}; +MODCOMMAND CViewPattern::m_cmdOld = MODCOMMAND::Empty(); IMPLEMENT_SERIAL(CViewPattern, CModScrollView, 0) @@ -1942,7 +1942,7 @@ } for (UINT nPat=nPatStart; nPat<nPatEnd; nPat++) { - LPMODCOMMAND m = pSndFile->Patterns[nPat]; + MODCOMMAND *m = pSndFile->Patterns[nPat]; DWORD len = pSndFile->GetNumChannels() * pSndFile->Patterns[nPat].GetNumRows(); if ((!m) || (!len)) continue; UINT n = 0; Modified: trunk/OpenMPT/mptrack/View_smp.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_smp.cpp 2012-02-18 12:51:50 UTC (rev 1184) +++ trunk/OpenMPT/mptrack/View_smp.cpp 2012-02-19 01:37:43 UTC (rev 1185) @@ -327,7 +327,7 @@ //-------------------------------------------- { CModDoc *pModDoc = GetDocument(); - if ((pModDoc) && (m_nSample < MAX_SAMPLES)) + if ((pModDoc) && (m_nSample <= pModDoc->GetNumSamples())) { CSoundFile *pSndFile = pModDoc->GetSoundFile(); UINT nLen = pSndFile->GetSample(m_nSample).nLength; @@ -350,7 +350,7 @@ CModDoc *pModDoc = GetDocument(); LONG n = 0; - if ((pModDoc) && (m_nSample < MAX_SAMPLES)) + if ((pModDoc) && (m_nSample <= pModDoc->GetNumSamples())) { CSoundFile *pSndFile = pModDoc->GetSoundFile(); UINT nLen = pSndFile->GetSample(m_nSample).nLength; @@ -775,7 +775,7 @@ rect = rcClient; if ((rcClient.bottom > rcClient.top) && (rcClient.right > rcClient.left)) { - const MODSAMPLE &sample = pSndFile->GetSample((m_nSample < MAX_SAMPLES) ? m_nSample : 0); + const MODSAMPLE &sample = pSndFile->GetSample((m_nSample <= pSndFile->GetNumSamples()) ? m_nSample : 0); int ymed = (rect.top + rect.bottom) / 2; int yrange = (rect.bottom - rect.top) / 2; @@ -1289,7 +1289,7 @@ if (pMainFrm && m_dwEndSel <= m_dwBeginSel) { - if(m_nSample > 0 && m_nSample < MAX_SAMPLES && x < pSndFile->GetSample(m_nSample).nLength) + if(m_nSample > 0 && m_nSample <= pSndFile->GetNumSamples() && x < pSndFile->GetSample(m_nSample).nLength) { const DWORD xLow = (x / 0x100) % 0x100; const DWORD xHigh = x / 0x10000; @@ -2032,7 +2032,7 @@ { CModDoc *pModDoc = GetDocument(); BeginWaitCursor(); - if ((pModDoc) && (m_nSample < MAX_SAMPLES)) + if ((pModDoc) && (m_nSample <= pModDoc->GetNumSamples())) { CSoundFile *pSndFile = pModDoc->GetSoundFile(); MODSAMPLE &sample = pSndFile->GetSample(m_nSample); @@ -2070,7 +2070,7 @@ { CModDoc *pModDoc = GetDocument(); BeginWaitCursor(); - if ((pModDoc) && (m_nSample < MAX_SAMPLES)) + if ((pModDoc) && (m_nSample <= pModDoc->GetNumSamples())) { CSoundFile *pSndFile = pModDoc->GetSoundFile(); MODSAMPLE &sample = pSndFile->GetSample(m_nSample); @@ -2096,7 +2096,7 @@ { CModDoc *pModDoc = GetDocument(); //nothing loaded or invalid sample slot. - if(!pModDoc || m_nSample >= MAX_SAMPLES) return; + if(!pModDoc || m_nSample > pModDoc->GetNumSamples()) return; CSoundFile *pSndFile = pModDoc->GetSoundFile(); MODSAMPLE &sample = pSndFile->GetSample(m_nSample); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |