From: <sag...@us...> - 2009-08-30 14:30:04
|
Revision: 349 http://modplug.svn.sourceforge.net/modplug/?rev=349&view=rev Author: saga-games Date: 2009-08-30 14:29:58 +0000 (Sun, 30 Aug 2009) Log Message: ----------- [Fix] XM Compatibility: Compatible Arpeggio was done wrong [Fix] XM Compatibility: More compatible "Note Off + Something" [Fix] IT COmpatibility: Removed a "fix" again that was causing to completely destroy panbrello [Imp] Comments tab: Only switch only to instrument list in XM modules if there are actually instruments Modified Paths: -------------- trunk/OpenMPT/mptrack/view_com.cpp trunk/OpenMPT/soundlib/Snd_fx.cpp trunk/OpenMPT/soundlib/Sndmix.cpp Modified: trunk/OpenMPT/mptrack/view_com.cpp =================================================================== --- trunk/OpenMPT/mptrack/view_com.cpp 2009-08-30 00:07:19 UTC (rev 348) +++ trunk/OpenMPT/mptrack/view_com.cpp 2009-08-30 14:29:58 UTC (rev 349) @@ -114,7 +114,7 @@ if(pModDoc) { pSndFile= pModDoc->GetSoundFile(); - if(pSndFile && (pSndFile->m_nType & MOD_TYPE_XM)) + if(pSndFile && (pSndFile->m_nType & MOD_TYPE_XM) && pSndFile->m_nInstruments > 0) { m_nListId = IDC_LIST_INSTRUMENTS; } Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp =================================================================== --- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-08-30 00:07:19 UTC (rev 348) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-08-30 14:29:58 UTC (rev 349) @@ -1233,8 +1233,8 @@ note = instr = 0; } - // XM: Key-Off + Sample == Note Cut (BUT: Only if no instr number is present!) - if ((note == NOTE_KEYOFF) && (!pChn->pModInstrument || !IsCompatibleMode(TRK_FASTTRACKER2)) && ((!pChn->pModInstrument) || (!(pChn->pModInstrument->dwFlags & ENV_VOLUME)))) + // XM: Key-Off + Sample == Note Cut (BUT: Only if no instr number or volume effect is present!) + if ((note == NOTE_KEYOFF) && ((!instr && !vol && cmd != CMD_VOLUME) || !IsCompatibleMode(TRK_FASTTRACKER2)) && ((!pChn->pModInstrument) || (!(pChn->pModInstrument->dwFlags & ENV_VOLUME)))) { pChn->dwFlags |= CHN_FASTVOLRAMP; pChn->nVolume = 0; Modified: trunk/OpenMPT/soundlib/Sndmix.cpp =================================================================== --- trunk/OpenMPT/soundlib/Sndmix.cpp 2009-08-30 00:07:19 UTC (rev 348) +++ trunk/OpenMPT/soundlib/Sndmix.cpp 2009-08-30 14:29:58 UTC (rev 349) @@ -951,8 +951,7 @@ pChn->nRealPan = pChn->nPan; } - if (pChn->nRealPan < 0) pChn->nRealPan = 0; - if (pChn->nRealPan > 256) pChn->nRealPan = 256; + pChn->nRealPan = CLAMP(pChn->nRealPan, 0, 256); pChn->nRampLength = 0; //Aux variables @@ -1231,7 +1230,7 @@ if (!(m_dwSongFlags & SONG_FIRSTTICK)) { - arpPos = (m_nTickCount - m_nMusicSpeed) % 3; + arpPos = ((int)m_nTickCount - (int)m_nMusicSpeed) % 3; if(arpPos < 0) arpPos += 3; switch(arpPos) { @@ -1445,7 +1444,7 @@ pdelta += pChn->nRealPan; pChn->nRealPan = CLAMP(pdelta, 0, 256); - if(IsCompatibleMode(TRK_IMPULSETRACKER)) pChn->nPan = pChn->nRealPan; + //if(IsCompatibleMode(TRK_IMPULSETRACKER)) pChn->nPan = pChn->nRealPan; // TODO } int nPeriodFrac = 0; // Instrument Auto-Vibrato This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |