internal void Reconstruct(sound_cache_file_gestalt_group gestalt,
                                  sound_gestalt_pitch_ranges_block gestalt_pr)
        {
            int index = gestalt_pr.Name.Value;

            if (index != -1)
            {
                this.Name.Handle = gestalt.ImportNames[index].ImportName.Handle;
            }

            index = gestalt_pr.Parameters.Value;
            if (index != -1)
            {
                Reconstruct(gestalt.PitchRangeParameters[index]);
            }

            //? = EncodedPermutationData
            //? = FirstRuntimePermutationFlagIndex

            index = gestalt_pr.FirstPermutation.Value;
            if (index != -1)
            {
                int count = gestalt_pr.PermutationCount.Value;
                for (int x = 0; x < count; x++)
                {
                    sound_permutations_block perm;
                    this.Permutations.Add(out perm);

                    perm.Reconstruct(gestalt, gestalt.Permutations[index + x]);
                }
            }
        }
示例#2
0
		internal void Reconstruct(sound_cache_file_gestalt_group gestalt,
			sound_gestalt_pitch_ranges_block gestalt_pr)
		{
			int index = gestalt_pr.Name.Value;
			if (index != -1)
				this.Name.Handle = gestalt.ImportNames[index].ImportName.Handle;

			index = gestalt_pr.Parameters.Value;
			if (index != -1)
				Reconstruct(gestalt.PitchRangeParameters[index]);

			//? = EncodedPermutationData
			//? = FirstRuntimePermutationFlagIndex

			index = gestalt_pr.FirstPermutation.Value;
			if (index != -1)
			{
				int count = gestalt_pr.PermutationCount.Value;
				for(int x = 0; x < count; x++)
				{
					sound_permutations_block perm;
					this.Permutations.Add(out perm);

					perm.Reconstruct(gestalt, gestalt.Permutations[index+x]);
				}
			}
		}