changeset 1131:b349646f19a0

Split envelope reading to tiny helper function.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 04 Mar 2015 06:37:04 +0200
parents 725e7caa43a0
children d4512925b4f9
files minijss/jloadxm.c
diffstat 1 files changed, 16 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/minijss/jloadxm.c	Wed Mar 04 06:32:19 2015 +0200
+++ b/minijss/jloadxm.c	Wed Mar 04 06:37:04 2015 +0200
@@ -452,6 +452,19 @@
 }
 
 
+static BOOL jssXMLoadEnvelope(DMResource *inFile, XMEnvelope *env)
+{
+    int i;
+    for (i = 0; i < XM_MaxEnvPoints; i++)
+    {
+        if (!dmf_read_le16(inFile, &(env->points[i].frame)) ||
+            !dmf_read_le16(inFile, &(env->points[i].value)))
+            return FALSE;
+    }
+    return TRUE;
+}
+
+
 /* Load XM-format extended instrument from file-stream into JSS module's given inst
  */
 static int jssXMLoadExtInstrument(DMResource *inFile, int ninst, JSSModule *module)
@@ -500,19 +513,10 @@
         "Could not read secondary instrument header #1 for #%d.\n", ninst);
     }
 
-    for (i = 0; i < XM_MaxEnvPoints; i++)
-    {
-        dmf_read_le16(inFile, &xmI2.volumeEnv.points[i].frame);
-        dmf_read_le16(inFile, &xmI2.volumeEnv.points[i].value);
-    }
+    if (!jssXMLoadEnvelope(inFile, &xmI2.volumeEnv) ||
+        !jssXMLoadEnvelope(inFile, &xmI2.panningEnv) ||
 
-    for (i = 0; i < XM_MaxEnvPoints; i++)
-    {
-        dmf_read_le16(inFile, &xmI2.panningEnv.points[i].frame);
-        dmf_read_le16(inFile, &xmI2.panningEnv.points[i].value);
-    }
-
-    if (!dmf_read_byte(inFile, &xmI2.volumeEnv.npoints) ||
+        !dmf_read_byte(inFile, &xmI2.volumeEnv.npoints) ||
         !dmf_read_byte(inFile, &xmI2.panningEnv.npoints) ||
 
         !dmf_read_byte(inFile, &xmI2.volumeEnv.sustain) ||