From: <sag...@us...> - 2011-10-20 00:11:38
|
Revision: 1109 http://modplug.svn.sourceforge.net/modplug/?rev=1109&view=rev Author: saga-games Date: 2011-10-20 00:11:31 +0000 (Thu, 20 Oct 2011) Log Message: ----------- [Fix] IT Compatibility: Fixed SCx behaviour for resuming notes (fixed scx.it) Modified Paths: -------------- trunk/OpenMPT/soundlib/Snd_fx.cpp Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp =================================================================== --- trunk/OpenMPT/soundlib/Snd_fx.cpp 2011-10-19 15:41:03 UTC (rev 1108) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2011-10-20 00:11:31 UTC (rev 1109) @@ -662,6 +662,10 @@ return; } + pChn->nLength = pSmp->nLength; + pChn->nLoopStart = pSmp->nLoopStart; + pChn->nLoopEnd = pSmp->nLoopEnd; + // Tone-Portamento doesn't reset the pingpong direction flag if ((bPorta) && (pSmp == pChn->pModSample)) { @@ -697,9 +701,6 @@ pChn->nResSwing = pChn->nCutSwing = 0; } pChn->pModSample = pSmp; - pChn->nLength = pSmp->nLength; - pChn->nLoopStart = pSmp->nLoopStart; - pChn->nLoopEnd = pSmp->nLoopEnd; // IT Compatibility: Autovibrato reset if(IsCompatibleMode(TRK_IMPULSETRACKER)) @@ -1456,7 +1457,7 @@ // Apparently, any note number in a pattern causes instruments to recall their original volume settings - no matter if there's a Note Off next to it or whatever. // Test cases: keyoff+instr.xm, delay.xm bool reloadSampleSettings = (IsCompatibleMode(TRK_FASTTRACKER2) && instr != 0); - bool keepInstr = (GetType() & (MOD_TYPE_IT|MOD_TYPE_MPT)); + bool keepInstr = (GetType() & (MOD_TYPE_IT|MOD_TYPE_MPT)) != 0; // Now it's time for some FT2 crap... if (GetType() & (MOD_TYPE_XM | MOD_TYPE_MT2)) @@ -3731,9 +3732,11 @@ // if (m_nInstruments) KeyOff(pChn); ? pChn->nVolume = 0; // S3M/IT compatibility: Note Cut really cuts notes and does not just mute them (so that following volume commands could restore the sample) + // Test case: scx.it if(IsCompatibleMode(TRK_IMPULSETRACKER|TRK_SCREAMTRACKER)) { - pChn->nPeriod = 0; + pChn->nLength = 0; + pChn->nPos = pChn->nPosLo = 0; } pChn->dwFlags |= CHN_FASTVOLRAMP; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |