From: <sag...@us...> - 2014-09-30 00:10:24
|
Revision: 4331 http://sourceforge.net/p/modplug/code/4331 Author: saga-games Date: 2014-09-30 00:10:18 +0000 (Tue, 30 Sep 2014) Log Message: ----------- [Fix] Frequency slide down broke in previous revision. Modified Paths: -------------- trunk/OpenMPT/soundlib/Snd_fx.cpp Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp =================================================================== --- trunk/OpenMPT/soundlib/Snd_fx.cpp 2014-09-29 23:59:15 UTC (rev 4330) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2014-09-30 00:10:18 UTC (rev 4331) @@ -3152,8 +3152,8 @@ } else { pChn->nPeriod -= (int)(param * 4); + if (pChn->nPeriod < 1) pChn->nPeriod = 1; } - if (pChn->nPeriod < 1) pChn->nPeriod = 1; } } } @@ -3182,13 +3182,13 @@ pChn->nPeriod = Util::muldivr(pChn->nPeriod, LinearSlideDownTable[param & 0x0F], 65536); if(oldPeriod == pChn->nPeriod) { - pChn->nPeriod++; + pChn->nPeriod--; } } else { pChn->nPeriod += (int)(param * 4); + if (pChn->nPeriod > 0xFFFF) pChn->nPeriod = 0xFFFF; } - if (pChn->nPeriod > 0xFFFF) pChn->nPeriod = 0xFFFF; } } } @@ -3217,13 +3217,13 @@ pChn->nPeriod = Util::muldivr(pChn->nPeriod, FineLinearSlideUpTable[param & 0x0F], 65536); if(oldPeriod == pChn->nPeriod) { - pChn->nPeriod--; + pChn->nPeriod++; } } else { pChn->nPeriod -= (int)(param); + if (pChn->nPeriod < 1) pChn->nPeriod = 1; } - if (pChn->nPeriod < 1) pChn->nPeriod = 1; } } } @@ -3252,13 +3252,13 @@ pChn->nPeriod = Util::muldivr(pChn->nPeriod, FineLinearSlideDownTable[param & 0x0F], 65536); if(oldPeriod == pChn->nPeriod) { - pChn->nPeriod++; + pChn->nPeriod--; } } else { pChn->nPeriod += (int)(param); + if (pChn->nPeriod > 0xFFFF) pChn->nPeriod = 0xFFFF; } - if (pChn->nPeriod > 0xFFFF) pChn->nPeriod = 0xFFFF; } } } @@ -4645,7 +4645,7 @@ int32 nOldPeriod = pChn->nPeriod; if (nFreqSlide < 0) { - UINT n = (- nFreqSlide) >> 2; + UINT n = (-nFreqSlide) / 4; if (n) { if (n > 255) n = 255; @@ -4654,7 +4654,7 @@ } } else { - UINT n = (nFreqSlide) >> 2; + UINT n = (nFreqSlide) / 4; if (n) { if (n > 255) n = 255; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |