示例#1
0
        public static GameSamples readsamples(string[] samplenames, string basename)
        {
            int i;
            GameSamples samples;
            int skipfirst = 0;

            /* if the user doesn't want to use samples, bail */
            if (!options.use_samples) return null;

            if (samplenames == null || samplenames[0] == null) return null;

            if (samplenames[0][0] == '*')
                skipfirst = 1;

            i = 0;
            while (i < samplenames.Length && samplenames[i + skipfirst] != null) i++;

            if (i == 0) return null;

            samples = new GameSamples(i);

            samples.total = i;
            for (i = 0; i < samples.total; i++)
                samples.sample[i] = null;

            for (i = 0; i < samples.total; i++)
            {
                object f;

                if (samplenames[i + skipfirst][0] != '\0')
                {
                    if ((f = osd_fopen(basename, samplenames[i + skipfirst], OSD_FILETYPE_SAMPLE, 0)) == null)
                        if (skipfirst != 0)
                            f = osd_fopen(samplenames[0] + 1, samplenames[i + skipfirst], OSD_FILETYPE_SAMPLE, 0);
                    if (f != null)
                    {
                        samples.sample[i] = read_wav_sample(f);
                        osd_fclose(f);
                    }
                }
            }

            return samples;
        }
示例#2
0
 void freesamples(ref GameSamples samples)
 {
     if (samples == null) return;
     for (int i = 0; i < samples.total; i++)
         samples.sample[i] = null;
     samples = null;
 }