|
From: <sag...@us...> - 2009-11-21 15:41:10
|
Revision: 420
http://modplug.svn.sourceforge.net/modplug/?rev=420&view=rev
Author: saga-games
Date: 2009-11-21 15:40:57 +0000 (Sat, 21 Nov 2009)
Log Message:
-----------
[Fix] When jumping around in a module, high offest value is also memorized
[Fix] XM Saver: +++ and --- orders are preserved when not using compatibility mode for now.
Modified Paths:
--------------
trunk/OpenMPT/soundlib/Load_xm.cpp
trunk/OpenMPT/soundlib/Snd_fx.cpp
Modified: trunk/OpenMPT/soundlib/Load_xm.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_xm.cpp 2009-11-20 13:04:34 UTC (rev 419)
+++ trunk/OpenMPT/soundlib/Load_xm.cpp 2009-11-21 15:40:57 UTC (rev 420)
@@ -770,6 +770,8 @@
if(Order[nOrd] >= nPatterns) nPatterns = Order[nOrd] + 1;
}
}
+ if(!bCompatibilityExport) nMaxOrds = Order.GetLengthTailTrimmed(); // should really be removed at some point
+
xmheader.orders = LittleEndianW((WORD)nMaxOrds);
xmheader.patterns = LittleEndianW((WORD)nPatterns);
xmheader.size = LittleEndian((DWORD)(xmheader.size + nMaxOrds));
@@ -793,7 +795,7 @@
// write order list (wihout +++ and ---, explained above)
for(ORDERINDEX nOrd = 0; nOrd < Order.GetLengthTailTrimmed(); nOrd++)
{
- if(Patterns.IsValidIndex(Order[nOrd]))
+ if(Patterns.IsValidIndex(Order[nOrd]) || !bCompatibilityExport)
{
BYTE nOrdval = static_cast<BYTE>(Order[nOrd]);
fwrite(&nOrdval, 1, sizeof(BYTE), f);
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-11-20 13:04:34 UTC (rev 419)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-11-21 15:40:57 UTC (rev 420)
@@ -261,6 +261,7 @@
// Pattern Delay
case CMD_S3MCMDEX:
if ((param & 0xF0) == 0x60) { nSpeedCount = param & 0x0F; break; } else
+ if ((param & 0xF0) == 0xA0) { pChn->nOldHiOffset = param & 0x0F; break; } else
if ((param & 0xF0) == 0xB0) { param &= 0x0F; param |= 0x60; }
case CMD_MODCMDEX:
if ((param & 0xF0) == 0xE0) nSpeedCount = (param & 0x0F) * nMusicSpeed; else
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|