From: <sag...@us...> - 2009-07-11 16:27:33
|
Revision: 289 http://modplug.svn.sourceforge.net/modplug/?rev=289&view=rev Author: saga-games Date: 2009-07-11 16:27:29 +0000 (Sat, 11 Jul 2009) Log Message: ----------- [Fix] Treeview: Deleting patterns from a module will also reset their names [Imp] Pattern editor: Echopaste switch Modified Paths: -------------- trunk/OpenMPT/mptrack/Ctrl_pat.cpp trunk/OpenMPT/mptrack/Ctrl_pat.h trunk/OpenMPT/mptrack/Ctrl_seq.cpp trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/mptrack/res/patterns.bmp trunk/OpenMPT/mptrack/resource.h trunk/OpenMPT/soundlib/Load_mod.cpp trunk/OpenMPT/soundlib/Sndfile.cpp Modified: trunk/OpenMPT/mptrack/Ctrl_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2009-07-08 22:23:42 UTC (rev 288) +++ trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2009-07-11 16:27:29 UTC (rev 289) @@ -52,6 +52,7 @@ ON_COMMAND(ID_PATTERNDETAIL_LO, OnDetailLo) ON_COMMAND(ID_PATTERNDETAIL_MED, OnDetailMed) ON_COMMAND(ID_PATTERNDETAIL_HI, OnDetailHi) + ON_COMMAND(ID_ECHOPASTE, OnToggleEchoPaste) ON_CBN_SELCHANGE(IDC_COMBO_INSTRUMENT, OnInstrumentChanged) // -> CODE#0012 // -> DESC="midi keyboard split" @@ -157,6 +158,7 @@ m_ToolBar.AddButton(ID_PATTERNDETAIL_MED, 31, TBSTYLE_CHECK, TBSTATE_ENABLED); m_ToolBar.AddButton(ID_PATTERNDETAIL_HI, 32, TBSTYLE_CHECK, TBSTATE_ENABLED|TBSTATE_CHECKED); m_ToolBar.AddButton(ID_SEPARATOR, 0, TBSTYLE_SEP); + m_ToolBar.AddButton(ID_ECHOPASTE, 38, TBSTYLE_CHECK, ((CMainFrame::m_dwPatternSetup & PATTERN_ECHOPASTE) ? TBSTATE_CHECKED : 0) | TBSTATE_ENABLED); // Special edit controls -> tab switch to view m_EditSpacing.SetParent(this); @@ -295,6 +297,7 @@ // -> CODE#0007 // -> DESC="uncheck follow song checkbox by default" CheckDlgButton(IDC_PATTERN_FOLLOWSONG, (CMainFrame::m_dwPatternSetup & PATTERN_FOLLOWSONGOFF) ? MF_UNCHECKED : MF_CHECKED); + m_ToolBar.SetState(ID_ECHOPASTE, ((CMainFrame::m_dwPatternSetup & PATTERN_ECHOPASTE) ? TBSTATE_CHECKED : 0) | TBSTATE_ENABLED); // -! BEHAVIOUR_CHANGE#0007 } if (dwHintMask & (HINT_MODTYPE|HINT_INSNAMES|HINT_SMPNAMES|HINT_PATNAMES)) @@ -1175,6 +1178,13 @@ SwitchToView(); } +void CCtrlPatterns::OnToggleEchoPaste() +//------------------------------------- +{ + CMainFrame::m_dwPatternSetup ^= PATTERN_ECHOPASTE; + UpdateView(HINT_MPTOPTIONS, NULL); + SwitchToView(); +} //rewbs.introVST void CCtrlPatterns::TogglePluginEditor() Modified: trunk/OpenMPT/mptrack/Ctrl_pat.h =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_pat.h 2009-07-08 22:23:42 UTC (rev 288) +++ trunk/OpenMPT/mptrack/Ctrl_pat.h 2009-07-11 16:27:29 UTC (rev 289) @@ -215,6 +215,8 @@ afx_msg void OnUpdateRecord(CCmdUI *pCmdUI); afx_msg void TogglePluginEditor(); //rewbs.instroVST afx_msg void ToggleSplitPluginEditor(); //rewbs.instroVST + afx_msg void OnToggleEchoPaste(); + //}}AFX_MSG DECLARE_MESSAGE_MAP() private: Modified: trunk/OpenMPT/mptrack/Ctrl_seq.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_seq.cpp 2009-07-08 22:23:42 UTC (rev 288) +++ trunk/OpenMPT/mptrack/Ctrl_seq.cpp 2009-07-11 16:27:29 UTC (rev 289) @@ -813,12 +813,11 @@ if (m_pModDoc) { CSoundFile *pSndFile = m_pModDoc->GetSoundFile(); - const int nSeqLengthMinusOne = pSndFile->Order.size()-1; - for (int i=m_nScrollPos; i<nSeqLengthMinusOne; i++) pSndFile->Order[i] = pSndFile->Order[i+1]; - pSndFile->Order[pSndFile->Order.size()-1] = pSndFile->Order.GetInvalidPatIndex(); + + m_pModDoc->RemoveOrder(m_nScrollPos); InvalidateRect(NULL, FALSE); - m_pModDoc->SetModified(); m_pModDoc->UpdateAllViews(NULL, HINT_MODSEQUENCE, this); + UINT nNewOrd = pSndFile->Order[m_nScrollPos]; if ((nNewOrd < pSndFile->Patterns.Size()) && (pSndFile->Patterns[nNewOrd]) && (m_pParent)) { Modified: trunk/OpenMPT/mptrack/mptrack.rc =================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc 2009-07-08 22:23:42 UTC (rev 288) +++ trunk/OpenMPT/mptrack/mptrack.rc 2009-07-11 16:27:29 UTC (rev 289) @@ -2579,6 +2579,7 @@ ID_PATTERNDETAIL_MED "Medium pattern detail level\nMedium pattern detail level" ID_PATTERNDETAIL_HI "High pattern detail level\nHigh pattern detail level" ID_PATTERN_AMPLIFY "Amplify selection\nAmplify" + ID_ECHOPASTE "Toggle echo paste\nToggle echo paste" END STRINGTABLE Modified: trunk/OpenMPT/mptrack/res/patterns.bmp =================================================================== (Binary files differ) Modified: trunk/OpenMPT/mptrack/resource.h =================================================================== --- trunk/OpenMPT/mptrack/resource.h 2009-07-08 22:23:42 UTC (rev 288) +++ trunk/OpenMPT/mptrack/resource.h 2009-07-11 16:27:29 UTC (rev 289) @@ -1078,13 +1078,14 @@ #define ID_CLEANUP_COMPO 59221 #define ID_SAMPLE_DRAW 59224 #define ID_SAMPLE_ADDSILENCE 59225 +#define ID_ECHOPASTE 59226 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_3D_CONTROLS 1 #define _APS_NEXT_RESOURCE_VALUE 518 -#define _APS_NEXT_COMMAND_VALUE 59226 +#define _APS_NEXT_COMMAND_VALUE 59227 #define _APS_NEXT_CONTROL_VALUE 2360 #define _APS_NEXT_SYMED_VALUE 901 #endif Modified: trunk/OpenMPT/soundlib/Load_mod.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_mod.cpp 2009-07-08 22:23:42 UTC (rev 288) +++ trunk/OpenMPT/soundlib/Load_mod.cpp 2009-07-11 16:27:29 UTC (rev 289) @@ -41,7 +41,7 @@ case 0x0D: command = CMD_PATTERNBREAK; param = ((param >> 4) * 10) + (param & 0x0F); break; case 0x0E: command = CMD_MODCMDEX; break; case 0x0F: command = (param <= (UINT)((m_nType & (MOD_TYPE_XM|MOD_TYPE_MT2)) ? 0x1F : 0x20)) ? CMD_SPEED : CMD_TEMPO; - if ((param == 0xFF) && (m_nSamples == 15)) command = 0; break; //<rewbs> what the hell is this?! :) + if ((param == 0xFF) && (m_nSamples == 15)) command = 0; break; //<rewbs> what the hell is this?! :) //<jojo> it's the "stop tune" command! :-P // Extension for XM extended effects case 'G' - 55: command = CMD_GLOBALVOLUME; break; //16 case 'H' - 55: command = CMD_GLOBALVOLSLIDE; if (param & 0xF0) param &= 0xF0; break; @@ -285,7 +285,7 @@ } if (i >= nbpbuggy2) nbpbuggy2 = i+1; } - for (UINT iend=norders; iend<MAX_ORDERS; iend++) Order[iend] = 0xFF; + for (UINT iend=norders; iend<MAX_ORDERS; iend++) Order[iend] = Order.GetInvalidPatIndex(); norders--; m_nRestartPos = pMagic->nRestartPos; if (m_nRestartPos >= 0x78) m_nRestartPos = 0; Modified: trunk/OpenMPT/soundlib/Sndfile.cpp =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.cpp 2009-07-08 22:23:42 UTC (rev 288) +++ trunk/OpenMPT/soundlib/Sndfile.cpp 2009-07-11 16:27:29 UTC (rev 289) @@ -2585,7 +2585,7 @@ if (!m_lpszPatternNames) m_nPatternNames = 0; if (nPat >= m_nPatternNames) { - if (!lpszName[0]) return TRUE; + //if (!lpszName[0]) return TRUE; UINT len = (nPat+1)*MAX_PATTERNNAME; CHAR *p = new CHAR[len]; if (!p) return FALSE; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |