Mercurial > hg > dmlib
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) ||