From: <sag...@us...> - 2012-11-17 16:32:10
|
Revision: 1431 http://modplug.svn.sourceforge.net/modplug/?rev=1431&view=rev Author: saga-games Date: 2012-11-17 16:32:02 +0000 (Sat, 17 Nov 2012) Log Message: ----------- [Fix] FT2 Compatibility: lxx/rxx shouldn't set the effect memory of Pxx (test case: PanSlideMem.xm). [Mod] OpenMPT: Version is now 1.20.04.04 Modified Paths: -------------- trunk/OpenMPT/mptrack/version.h trunk/OpenMPT/soundlib/Snd_fx.cpp trunk/OpenMPT/soundlib/Sndfile.h Modified: trunk/OpenMPT/mptrack/version.h =================================================================== --- trunk/OpenMPT/mptrack/version.h 2012-11-17 16:04:12 UTC (rev 1430) +++ trunk/OpenMPT/mptrack/version.h 2012-11-17 16:32:02 UTC (rev 1431) @@ -19,7 +19,7 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 20 #define VER_MINOR 04 -#define VER_MINORMINOR 03 +#define VER_MINORMINOR 04 //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 2012-11-17 16:04:12 UTC (rev 1430) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2012-11-17 16:32:02 UTC (rev 1431) @@ -2039,11 +2039,11 @@ break; case VOLCMD_PANSLIDELEFT: - PanningSlide(pChn, vol); + PanningSlide(pChn, vol, !IsCompatibleMode(TRK_FASTTRACKER2)); break; case VOLCMD_PANSLIDERIGHT: - PanningSlide(pChn, vol << 4); + PanningSlide(pChn, vol << 4, !IsCompatibleMode(TRK_FASTTRACKER2)); break; case VOLCMD_PORTAUP: @@ -3074,13 +3074,18 @@ } -void CSoundFile::PanningSlide(ModChannel *pChn, UINT param) -//--------------------------------------------------------- +void CSoundFile::PanningSlide(ModChannel *pChn, UINT param, bool memory) +//---------------------------------------------------------------------- { - if (param) - pChn->nOldPanSlide = param; - else - param = pChn->nOldPanSlide; + if(memory) + { + // FT2 compatibility: Use effect memory (lxx and rxx in XM shouldn't use effect memory). + // Test case: PanSlideMem.xm + if(param) + pChn->nOldPanSlide = param; + else + param = pChn->nOldPanSlide; + } if((GetType() & (MOD_TYPE_XM | MOD_TYPE_MT2))) { Modified: trunk/OpenMPT/soundlib/Sndfile.h =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.h 2012-11-17 16:04:12 UTC (rev 1430) +++ trunk/OpenMPT/soundlib/Sndfile.h 2012-11-17 16:32:02 UTC (rev 1431) @@ -568,7 +568,7 @@ void Vibrato(ModChannel *pChn, UINT param); void FineVibrato(ModChannel *pChn, UINT param); void VolumeSlide(ModChannel *pChn, UINT param); - void PanningSlide(ModChannel *pChn, UINT param); + void PanningSlide(ModChannel *pChn, UINT param, bool memory = true); void ChannelVolSlide(ModChannel *pChn, UINT param); void FineVolumeUp(ModChannel *pChn, UINT param); void FineVolumeDown(ModChannel *pChn, UINT param); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |