From: <sag...@us...> - 2011-10-05 18:52:14
|
Revision: 1087 http://modplug.svn.sourceforge.net/modplug/?rev=1087&view=rev Author: saga-games Date: 2011-10-05 18:52:07 +0000 (Wed, 05 Oct 2011) Log Message: ----------- [Fix] IT Compatibility: Channel and global volume slides with both nibbles set were not ignored. Modified Paths: -------------- trunk/OpenMPT/soundlib/Snd_fx.cpp Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp =================================================================== --- trunk/OpenMPT/soundlib/Snd_fx.cpp 2011-10-05 17:32:06 UTC (rev 1086) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2011-10-05 18:52:07 UTC (rev 1087) @@ -2603,8 +2603,7 @@ } else { - if(!IsCompatibleMode(TRK_IMPULSETRACKER) || (param & 0x0F) == 0) - newvolume += (int)((param & 0xF0) >> 2); + newvolume += (int)((param & 0xF0) >> 2); } if (m_nType == MOD_TYPE_MOD) pChn->dwFlags |= CHN_FASTVOLRAMP; } @@ -2649,9 +2648,7 @@ nPanSlide = (int)((param & 0x0F) << 2); } else { - // IT compatibility: Ignore slide commands with both nibbles set. - if(!IsCompatibleMode(TRK_IMPULSETRACKER) || (param & 0x0F) == 0) - nPanSlide = -(int)((param & 0xF0) >> 2); + nPanSlide = -(int)((param & 0xF0) >> 2); } } } @@ -2732,8 +2729,14 @@ { if (!(m_dwSongFlags & SONG_FIRSTTICK)) { - if (param & 0x0F) nChnSlide = -(int)(param & 0x0F); - else nChnSlide = (int)((param & 0xF0) >> 4); + if (param & 0x0F) + { + if(!IsCompatibleMode(TRK_IMPULSETRACKER) || (param & 0xF0) == 0) + nChnSlide = -(int)(param & 0x0F); + } else + { + nChnSlide = (int)((param & 0xF0) >> 4); + } } } if (nChnSlide) @@ -3876,8 +3879,15 @@ { if (!(m_dwSongFlags & SONG_FIRSTTICK)) { - if (param & 0xF0) nGlbSlide = (int)((param & 0xF0) >> 4) * 2; - else nGlbSlide = -(int)((param & 0x0F) * 2); + if (param & 0xF0) + { + // IT compatibility: Ignore slide commands with both nibbles set. + if(!IsCompatibleMode(TRK_IMPULSETRACKER) || (param & 0x0F) == 0) + nGlbSlide = (int)((param & 0xF0) >> 4) * 2; + } else + { + nGlbSlide = -(int)((param & 0x0F) * 2); + } } } if (nGlbSlide) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |