From: <sag...@us...> - 2009-08-19 15:20:54
|
Revision: 334 http://modplug.svn.sourceforge.net/modplug/?rev=334&view=rev Author: saga-games Date: 2009-08-19 15:20:48 +0000 (Wed, 19 Aug 2009) Log Message: ----------- [New] (Partly from last commit): Envelope points can now be added by shift-clicking somewhere in the envelope editor. Middle mouse button click removes the nearest point. [Fix] Mod Conversion: Used MAX_CHANNELS instead of MAX_BASECHANNELS (luckily, nothing could go wrong as there are more max. virtual channels than max. chanenls) [Fix] Pattern editor: Inserting a new pattern won't resize it to 32 rows anymore if the current pattern has less than 32 rows. [Mod] Note properties / Find&Replace: Show "Note Cut", "Note Fade", "Note Off" instead of "^^", "~~" and "==" for easier understanding. Maybe this should only happen in the note properties, though. Modified Paths: -------------- trunk/OpenMPT/mptrack/Ctrl_pat.cpp trunk/OpenMPT/mptrack/Modedit.cpp trunk/OpenMPT/mptrack/Mptrack.h trunk/OpenMPT/mptrack/View_ins.cpp trunk/OpenMPT/mptrack/View_ins.h trunk/OpenMPT/mptrack/dlg_misc.cpp Modified: trunk/OpenMPT/mptrack/Ctrl_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2009-08-18 23:06:08 UTC (rev 333) +++ trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2009-08-19 15:20:48 UTC (rev 334) @@ -850,10 +850,10 @@ if ((pat < pSndFile->Patterns.Size()) && (pSndFile->Patterns[pat]) && (pSndFile->m_nType & (MOD_TYPE_XM|MOD_TYPE_IT|MOD_TYPE_MPT))) { rows = pSndFile->PatternSize[pat]; - if (rows < 32) rows = 32; + rows = CLAMP(rows, pSndFile->GetModSpecifications().patternRowsMin, pSndFile->GetModSpecifications().patternRowsMax); } PATTERNINDEX nNewPat = m_pModDoc->InsertPattern(nCurOrd + 1, rows); - if ((nNewPat >= 0) && (nNewPat < pSndFile->Patterns.Size())) + if ((nNewPat != PATTERNINDEX_INVALID) && (nNewPat < pSndFile->Patterns.Size())) { m_OrderList.SetCurSel(nCurOrd + 1); m_OrderList.InvalidateRect(NULL, FALSE); @@ -889,11 +889,10 @@ if (nCurPat < pSndFile->Patterns.Size() && pReplaceIndex[nCurPat] == PATTERNINDEX_INVALID) { rows = pSndFile->PatternSize[nCurPat]; - if (rows < pSndFile->GetModSpecifications().patternRowsMin) rows = pSndFile->GetModSpecifications().patternRowsMin; - if (rows > pSndFile->GetModSpecifications().patternRowsMax) rows = pSndFile->GetModSpecifications().patternRowsMax; + rows = CLAMP(rows, pSndFile->GetModSpecifications().patternRowsMin, pSndFile->GetModSpecifications().patternRowsMax); PATTERNINDEX nNewPat = m_pModDoc->InsertPattern(nInsertWhere + i, rows); - if ((nNewPat >= 0) && (nNewPat < pSndFile->Patterns.Size()) && (pSndFile->Patterns[nCurPat] != nullptr)) + if ((nNewPat != PATTERNINDEX_INVALID) && (nNewPat < pSndFile->Patterns.Size()) && (pSndFile->Patterns[nCurPat] != nullptr)) { MODCOMMAND *pSrc = pSndFile->Patterns[nCurPat]; MODCOMMAND *pDest = pSndFile->Patterns[nNewPat]; Modified: trunk/OpenMPT/mptrack/Modedit.cpp =================================================================== --- trunk/OpenMPT/mptrack/Modedit.cpp 2009-08-18 23:06:08 UTC (rev 333) +++ trunk/OpenMPT/mptrack/Modedit.cpp 2009-08-19 15:20:48 UTC (rev 334) @@ -159,13 +159,13 @@ ///////////////////////////// // Converting pattern data - for (UINT nPat=0; nPat<m_SndFile.Patterns.Size(); nPat++) if (m_SndFile.Patterns[nPat]) + for (UINT nPat = 0; nPat < m_SndFile.Patterns.Size(); nPat++) if (m_SndFile.Patterns[nPat]) { MODCOMMAND *m = m_SndFile.Patterns[nPat]; // This is used for -> MOD/XM conversion - BYTE cEffectMemory[MAX_CHANNELS][MAX_EFFECTS]; - memset(&cEffectMemory, 0, sizeof(BYTE) * MAX_CHANNELS * MAX_EFFECTS); + BYTE cEffectMemory[MAX_BASECHANNELS][MAX_EFFECTS]; + memset(&cEffectMemory, 0, sizeof(BYTE) * MAX_BASECHANNELS * MAX_EFFECTS); UINT nChannel = m_SndFile.m_nChannels - 1; for (UINT len = m_SndFile.PatternSize[nPat] * m_SndFile.m_nChannels; len; m++, len--) @@ -1613,7 +1613,7 @@ { const int i = m_SndFile.Patterns.Insert(nRows); if(i < 0) - return -1; + return PATTERNINDEX_INVALID; //Increasing orderlist size if given order is beyond current limit, //or if the last order already has a pattern. Modified: trunk/OpenMPT/mptrack/Mptrack.h =================================================================== --- trunk/OpenMPT/mptrack/Mptrack.h 2009-08-18 23:06:08 UTC (rev 333) +++ trunk/OpenMPT/mptrack/Mptrack.h 2009-08-19 15:20:48 UTC (rev 334) @@ -405,7 +405,8 @@ extern const BYTE gEffectColors[MAX_EFFECTS]; extern const LPCSTR szNoteNames[12]; extern const LPCTSTR szDefaultNoteNames[NOTE_MAX]; -const LPCTSTR szSpecialNoteNames[NOTE_MAX_SPECIAL - NOTE_MIN_SPECIAL + 1] = {TEXT("PCs"), TEXT("PC"), TEXT("~~"), TEXT("^^"), TEXT("==")}; +//const LPCTSTR szSpecialNoteNames[NOTE_MAX_SPECIAL - NOTE_MIN_SPECIAL + 1] = {TEXT("PCs"), TEXT("PC"), TEXT("~~"), TEXT("^^"), TEXT("==")}; +const LPCTSTR szSpecialNoteNames[NOTE_MAX_SPECIAL - NOTE_MIN_SPECIAL + 1] = {TEXT("PCs"), TEXT("PC"), TEXT("Note Fade"), TEXT("Note Cut"), TEXT("Note Off")}; const LPCTSTR szSpecialNoteShortDesc[NOTE_MAX_SPECIAL - NOTE_MIN_SPECIAL + 1] = {TEXT("Param Control (Smooth)"), TEXT("Param Control"), TEXT("Note Fade"), TEXT("Note Cut"), TEXT("Note Off")}; // Make sure that special note arrays include string for every note. Modified: trunk/OpenMPT/mptrack/View_ins.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_ins.cpp 2009-08-18 23:06:08 UTC (rev 333) +++ trunk/OpenMPT/mptrack/View_ins.cpp 2009-08-19 15:20:48 UTC (rev 334) @@ -62,6 +62,7 @@ ON_WM_LBUTTONDOWN() ON_WM_LBUTTONUP() ON_WM_RBUTTONDOWN() + ON_WM_MBUTTONDOWN() ON_WM_NCLBUTTONDOWN() ON_WM_NCLBUTTONUP() ON_WM_NCLBUTTONDBLCLK() @@ -1700,6 +1701,7 @@ } else { + // Shift-Click: Insert envelope point here if(CMainFrame::GetMainFrame()->GetInputHandler()->ShiftPressed()) { m_ptMenu = pt; @@ -1756,7 +1758,18 @@ } } +void CViewInstrument::OnMButtonDown(UINT, CPoint pt) +//-------------------------------------------------- +{ + // Middle mouse button: Remove envelope point + if(EnvGetLastPoint() <= 1) return; + m_nDragItem = ScreenToPoint(pt.x, pt.y) + 1; + if(m_nDragItem == 0) return; + m_ptMenu = pt; + OnEnvRemovePoint(); +} + void CViewInstrument::OnPrevInstrument() //-------------------------------------- { Modified: trunk/OpenMPT/mptrack/View_ins.h =================================================================== --- trunk/OpenMPT/mptrack/View_ins.h 2009-08-18 23:06:08 UTC (rev 333) +++ trunk/OpenMPT/mptrack/View_ins.h 2009-08-19 15:20:48 UTC (rev 334) @@ -111,6 +111,7 @@ afx_msg void OnLButtonDown(UINT, CPoint); afx_msg void OnLButtonUp(UINT, CPoint); afx_msg void OnRButtonDown(UINT, CPoint); + afx_msg void OnMButtonDown(UINT, CPoint); afx_msg void OnNcMouseMove(UINT nHitTest, CPoint point); afx_msg void OnNcLButtonDown(UINT, CPoint); afx_msg void OnNcLButtonUp(UINT, CPoint); Modified: trunk/OpenMPT/mptrack/dlg_misc.cpp =================================================================== --- trunk/OpenMPT/mptrack/dlg_misc.cpp 2009-08-18 23:06:08 UTC (rev 333) +++ trunk/OpenMPT/mptrack/dlg_misc.cpp 2009-08-19 15:20:48 UTC (rev 334) @@ -916,9 +916,10 @@ combo->AddString(s); } combo->SetCurSel(nrows - specs.patternRowsMin); - wsprintf(s, "Pattern #%d:\x0d\x0a %d rows (%dK)", + wsprintf(s, "Pattern #%d:\x0d\x0a %d row%s (%dK)", m_nPattern, pSndFile->PatternSize[m_nPattern], + (pSndFile->PatternSize[m_nPattern] == 1) ? "" : "s", (pSndFile->PatternSize[m_nPattern] * pSndFile->m_nChannels * sizeof(MODCOMMAND))/1024); SetDlgItemText(IDC_TEXT1, s); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |