From: <sag...@us...> - 2010-10-15 14:52:33
|
Revision: 739 http://modplug.svn.sourceforge.net/modplug/?rev=739&view=rev Author: saga-games Date: 2010-10-15 14:52:26 +0000 (Fri, 15 Oct 2010) Log Message: ----------- [Fix] XM Compatibility: Fixed some more upside-down logic when it comes to instrument number + portamento [Mod] OpenMPT: Version is now 1.19.00.07 Modified Paths: -------------- trunk/OpenMPT/mptrack/version.h trunk/OpenMPT/soundlib/Snd_fx.cpp Modified: trunk/OpenMPT/mptrack/version.h =================================================================== --- trunk/OpenMPT/mptrack/version.h 2010-10-15 14:22:57 UTC (rev 738) +++ trunk/OpenMPT/mptrack/version.h 2010-10-15 14:52:26 UTC (rev 739) @@ -15,7 +15,7 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 19 #define VER_MINOR 00 -#define VER_MINORMINOR 07 +#define VER_MINORMINOR 08 //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 2010-10-15 14:22:57 UTC (rev 738) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2010-10-15 14:52:26 UTC (rev 739) @@ -83,7 +83,7 @@ } double CSoundFile::GetLength(bool& targetReached, BOOL bAdjust, BOOL bTotal, ORDERINDEX endOrder, ROWINDEX endRow) -//---------------------------------------------------- +//---------------------------------------------------------------------------------------------------------------- { // -> CODE#0022 // -> DESC="alternative BPM/Speed interpretation method" @@ -503,7 +503,7 @@ } else { // Original behaviour - if (pIns->NoteMap[note-1] >= NOTE_MIN_SPECIAL) return; + if(pIns->NoteMap[note-1] > NOTE_MAX) return; UINT n = pIns->Keyboard[note-1]; pSmp = ((n) && (n < MAX_SAMPLES)) ? &Samples[n] : nullptr; } @@ -539,10 +539,12 @@ } } - // XM compatibility: new instrument + portamento = forget it! + // XM compatibility: new instrument + portamento = ignore new instrument number, but reload old instrument settings (the world of XM is upside down...) if(bInstrumentChanged && bPorta && IsCompatibleMode(TRK_FASTTRACKER2)) { - return; + pIns = pChn->pModInstrument; + pSmp = pChn->pModSample; + bInstrumentChanged = false; } else { pChn->pModInstrument = pIns; @@ -4180,7 +4182,7 @@ //--------------------------------------------------------------------------------------------- { const ORDERINDEX nMaxOrd = Order.GetLengthTailTrimmed(); - if(nOrd >= nMaxOrd) + if(nOrd >= nMaxOrd || nRow > Patterns[Order[nOrd]].GetNumRows()) return; // The module might have been edited in the meantime - so we have to extend this a bit. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |