From: <sag...@us...> - 2011-09-01 17:57:39
|
Revision: 1004 http://modplug.svn.sourceforge.net/modplug/?rev=1004&view=rev Author: saga-games Date: 2011-09-01 17:57:33 +0000 (Thu, 01 Sep 2011) Log Message: ----------- [Fix] IT Compatibility: Multiple fine pattern delays on the same row weren't added up. [Fix] IT Compatibility: A high offset effect next to a note should not apply the offset automatically. Modified Paths: -------------- trunk/OpenMPT/soundlib/Snd_fx.cpp Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp =================================================================== --- trunk/OpenMPT/soundlib/Snd_fx.cpp 2011-08-31 18:00:14 UTC (rev 1003) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2011-09-01 17:57:33 UTC (rev 1004) @@ -2881,7 +2881,17 @@ pChn->nPanbrelloType = param & 0x07; break; // S6x: Pattern Delay for x frames - case 0x60: m_nFrameDelay = param; break; + case 0x60: + if(IsCompatibleMode(TRK_IMPULSETRACKER)) + { + if(!(m_dwSongFlags & SONG_FIRSTTICK) || m_nTickCount > 0) break; + m_nFrameDelay += param; + } + else + { + m_nFrameDelay = param; + } + break; // S7x: Envelope Control / Instrument Control case 0x70: if(!(m_dwSongFlags & SONG_FIRSTTICK)) break; switch(param) @@ -2957,7 +2967,7 @@ case 0xA0: if(m_dwSongFlags & SONG_FIRSTTICK) { pChn->nOldHiOffset = param; - if ((pChn->nRowNote) && (pChn->nRowNote < 0x80)) + if (!IsCompatibleMode(TRK_IMPULSETRACKER) && (pChn->nRowNote != NOTE_NONE) && NOTE_IS_VALID(pChn->nRowNote)) { DWORD pos = param << 16; if (pos < pChn->nLength) pChn->nPos = pos; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |