From: <sag...@us...> - 2011-09-25 22:10:24
|
Revision: 1057 http://modplug.svn.sourceforge.net/modplug/?rev=1057&view=rev Author: saga-games Date: 2011-09-25 22:10:17 +0000 (Sun, 25 Sep 2011) Log Message: ----------- [Imp] Order list: Inserting a +++ pattern behaves more logical if the selected pattern is a stop index. [Ref] Removed some irrelevant compatibility checks. [Mod] OpenMPT: Version is now 1.20.00.30 Modified Paths: -------------- trunk/OpenMPT/mptrack/Ctrl_seq.cpp trunk/OpenMPT/mptrack/version.h trunk/OpenMPT/soundlib/Snd_fx.cpp Modified: trunk/OpenMPT/mptrack/Ctrl_seq.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_seq.cpp 2011-09-25 00:38:55 UTC (rev 1056) +++ trunk/OpenMPT/mptrack/Ctrl_seq.cpp 2011-09-25 22:10:17 UTC (rev 1057) @@ -1243,17 +1243,25 @@ { CSoundFile *pSndFile = m_pModDoc->GetSoundFile(); - const ORD_SELECTION selection = GetCurSel(true); - // Checking whether there is some pattern at the end of orderlist. - if (pSndFile->Order.GetLength() < 1 || pSndFile->Order.Last() < pSndFile->Patterns.Size()) + const ORD_SELECTION selection = GetCurSel(true); + ORDERINDEX insertPos = selection.nOrdLo; + + if(pSndFile->Order[selection.nOrdLo] != pSndFile->Order.GetInvalidPatIndex()) { - if(pSndFile->Order.GetLength() < pSndFile->GetModSpecifications().ordersMax) - pSndFile->Order.Append(); + // If we're not inserting on a stop (---) index, we move on by one position. + insertPos++; + // Checking whether there is some pattern at the end of orderlist. + if (pSndFile->Order.GetLength() < 1 || pSndFile->Order.Last() < pSndFile->Patterns.Size()) + { + if(pSndFile->Order.GetLength() < pSndFile->GetModSpecifications().ordersMax) + pSndFile->Order.Append(); + } + for(int j = pSndFile->Order.GetLastIndex(); j > selection.nOrdLo; j--) + pSndFile->Order[j] = pSndFile->Order[j - 1]; + } - for(int j = pSndFile->Order.GetLastIndex(); j > selection.nOrdHi; j--) - pSndFile->Order[j] = pSndFile->Order[j - 1]; - pSndFile->Order[selection.nOrdHi + 1] = pSndFile->Order.GetIgnoreIndex(); + pSndFile->Order[insertPos] = pSndFile->Order.GetIgnoreIndex(); InvalidateRect(NULL, FALSE); m_pModDoc->SetModified(); Modified: trunk/OpenMPT/mptrack/version.h =================================================================== --- trunk/OpenMPT/mptrack/version.h 2011-09-25 00:38:55 UTC (rev 1056) +++ trunk/OpenMPT/mptrack/version.h 2011-09-25 22:10:17 UTC (rev 1057) @@ -15,7 +15,7 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 20 #define VER_MINOR 00 -#define VER_MINORMINOR 29 +#define VER_MINORMINOR 30 //Creates version number from version parts that appears in version string. //For example MAKE_VERSION_NUMERIC(1,17,02,28) gives version number of Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp =================================================================== --- trunk/OpenMPT/soundlib/Snd_fx.cpp 2011-09-25 00:38:55 UTC (rev 1056) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2011-09-25 22:10:17 UTC (rev 1057) @@ -932,13 +932,7 @@ pChn->nLeftVU = pChn->nRightVU = 0xFF; pChn->dwFlags &= ~CHN_FILTER; pChn->dwFlags |= CHN_FASTVOLRAMP; - // IT Compatibility: Autovibrato reset - if(bResetEnv && IsCompatibleMode(TRK_IMPULSETRACKER)) - { - pChn->nAutoVibDepth = 0; - pChn->nAutoVibPos = 0; - pChn->nVibratoPos = 0; - } + //IT compatibility 15. Retrigger will not be reset (Tremor doesn't store anything here, so we just don't reset this as well) if(!IsCompatibleMode(TRK_IMPULSETRACKER)) { @@ -991,11 +985,14 @@ } } } - // IT Compatibility: Autovibrato reset - if(!IsCompatibleMode(TRK_IMPULSETRACKER)) + pChn->nAutoVibDepth = 0; + pChn->nAutoVibPos = 0; + // IT Compatibility: Vibrato reset + if(IsCompatibleMode(TRK_IMPULSETRACKER)) { - pChn->nAutoVibDepth = 0; - pChn->nAutoVibPos = 0; + // I think this is not necessary, so let's check if it is actually called. + ASSERT(pChn->nVibratoPos == 0); + pChn->nVibratoPos = 0; } } pChn->nLeftVol = pChn->nRightVol = 0; @@ -1514,12 +1511,8 @@ { pChn->dwFlags |= CHN_FASTVOLRAMP; ResetChannelEnvelopes(pChn); - // IT Compatibility: Autovibrato reset - if(!IsCompatibleMode(TRK_IMPULSETRACKER)) - { - pChn->nAutoVibDepth = 0; - pChn->nAutoVibPos = 0; - } + pChn->nAutoVibDepth = 0; + pChn->nAutoVibPos = 0; pChn->dwFlags &= ~CHN_NOTEFADE; pChn->nFadeOutVol = 65536; } @@ -1650,7 +1643,7 @@ TonePortamento(pChn, vol * 16); } else { - // XM Compatibility: FT2 ignores some voluem commands with parameter = 0. + // XM Compatibility: FT2 ignores some volume commands with parameter = 0. if(IsCompatibleMode(TRK_FASTTRACKER2) && vol == 0) { switch(volcmd) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |