changeset 2534:0b0609eff29b

Fixes integrated from Schism tracker ModPlug engine.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 28 Apr 2008 16:31:05 +0300
parents 86bfc1159197
children cdccb12b19a6 66f5c17e59ad
files src/modplug/load_s3m.cxx src/modplug/load_xm.cxx
diffstat 2 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/modplug/load_s3m.cxx	Mon Apr 21 18:42:00 2008 +0300
+++ b/src/modplug/load_s3m.cxx	Mon Apr 28 16:31:05 2008 +0300
@@ -91,7 +91,7 @@
 	case 'S':	command = CMD_S3MCMDEX; break;
 	case 'T':	command = CMD_TEMPO; break;
 	case 'U':	command = CMD_FINEVIBRATO; break;
-	case 'V':	command = CMD_GLOBALVOLUME; break;
+	case 'V':	command = CMD_GLOBALVOLUME; if (!bIT) param *= 2; break;
 	case 'W':	command = CMD_GLOBALVOLSLIDE; break;
 	case 'X':	command = CMD_PANNING8; break;
 	case 'Y':	command = CMD_PANBRELLO; break;
@@ -131,7 +131,7 @@
 	case CMD_S3MCMDEX:			command = 'S'; break;
 	case CMD_TEMPO:				command = 'T'; break;
 	case CMD_FINEVIBRATO:		command = 'U'; break;
-	case CMD_GLOBALVOLUME:		command = 'V'; break;
+	case CMD_GLOBALVOLUME:		command = 'V'; if (!bIT) param >>= 1;break;
 	case CMD_GLOBALVOLSLIDE:	command = 'W'; break;
 	case CMD_PANNING8:			
 		command = 'X';
--- a/src/modplug/load_xm.cxx	Mon Apr 21 18:42:00 2008 +0300
+++ b/src/modplug/load_xm.cxx	Mon Apr 28 16:31:05 2008 +0300
@@ -391,6 +391,9 @@
 		penv->VolEnv.nNodes = xmsh.vnum;
 		if (!xmsh.vnum) penv->dwFlags &= ~ENV_VOLUME;
 		if (!xmsh.pnum) penv->dwFlags &= ~ENV_PANNING;
+		if (!(penv->dwFlags & ENV_VOLUME) && !penv->nFadeOut) {
+			penv->nFadeOut = 8192;
+		}
 		penv->PanEnv.nNodes = xmsh.pnum;
 		penv->VolEnv.nSustainStart = penv->VolEnv.nSustainEnd = xmsh.vsustain;
 		if (xmsh.vsustain >= 12) penv->dwFlags &= ~ENV_VOLSUSTAIN;