From: <sag...@us...> - 2012-12-23 20:08:54
|
Revision: 1477 http://sourceforge.net/p/modplug/code/1477 Author: saga-games Date: 2012-12-23 20:08:46 +0000 (Sun, 23 Dec 2012) Log Message: ----------- [Imp] Find instrument does also search previous patterns now. [Mod] Updated DE_jojo.mkb Modified Paths: -------------- trunk/OpenMPT/mptrack/View_pat.cpp trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb Modified: trunk/OpenMPT/mptrack/View_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_pat.cpp 2012-12-23 19:32:07 UTC (rev 1476) +++ trunk/OpenMPT/mptrack/View_pat.cpp 2012-12-23 20:08:46 UTC (rev 1477) @@ -6619,20 +6619,40 @@ //--------------------------------- { CSoundFile *sndFile = GetSoundFile(); - if(sndFile == nullptr || !sndFile->Patterns.IsValidPat(m_nPattern)) + if(sndFile == nullptr) { return; } + ORDERINDEX ord = SendCtrlMessage(CTRLMSG_GETCURRENTORDER); + PATTERNINDEX pat = m_nPattern; ROWINDEX row = m_Cursor.GetRow(); - do + + while(sndFile->Patterns.IsValidPat(pat) && sndFile->Patterns[pat].GetNumRows() != 0) { - ModCommand &m = *sndFile->Patterns[m_nPattern].GetpModCommand(row, m_Cursor.GetChannel()); - if(!m.IsPcNote() && m.instr != 0) + // Seek upwards + do { - SendCtrlMessage(CTRLMSG_SETCURRENTINSTRUMENT, m.instr); + ModCommand &m = *sndFile->Patterns[pat].GetpModCommand(row, m_Cursor.GetChannel()); + if(!m.IsPcNote() && m.instr != 0) + { + SendCtrlMessage(CTRLMSG_SETCURRENTINSTRUMENT, m.instr); + break; + } + } while(row-- != 0); + + // Try previous pattern + if(ord == 0) + { break; } - } while(row-- != 0); + ord = sndFile->Order.GetPreviousOrderIgnoringSkips(ord); + pat = sndFile->Order[ord]; + if(!sndFile->Patterns.IsValidPat(pat)) + { + break; + } + row = sndFile->Patterns[pat].GetNumRows() - 1; + } } Modified: trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb =================================================================== --- trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb 2012-12-23 19:32:07 UTC (rev 1476) +++ trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb 2012-12-23 20:08:46 UTC (rev 1477) @@ -84,6 +84,7 @@ 2:1663:2:3:1 //Toggle follow song: Ctrl+ROLLEN-FESTSTELL (KeyDown) 2:1003:0:13:1 //Quick Copy: EINGABE (KeyDown) 2:1004:0:32:5 //Quick Paste: LEER (KeyDown|KeyHold) +2:1897:1:32:1 //Pick up nearest instrument number: Shift+LEER (KeyDown) 2:1001:2:32:1 //Enable Recording: Ctrl+LEER (KeyDown) 2:1002:2:13:5 //Play Row: Ctrl+EINGABE (KeyDown|KeyHold) 2:1317:4:18:1 //Set row spacing on note entry: Alt (KeyDown) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |