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; }
void freesamples(ref GameSamples samples) { if (samples == null) return; for (int i = 0; i < samples.total; i++) samples.sample[i] = null; samples = null; }