コード例 #1
0
        private void FixSoundReference_Scale(int originalIndex, IWriter buffer)
        {
            var scale = _container.FindSoundScale(originalIndex);

            int newIndex;

            if (!_soundScales.TryGetValue(scale, out newIndex))
            {
                newIndex = _soundResources.Scales.FindIndex(c => c.Equals(scale.Source));
                if (newIndex == -1)
                {
                    newIndex = _soundResources.Scales.Count;
                    _soundResources.Scales.Add(scale.Source);
                }
                _soundScales[scale] = newIndex;
            }
            buffer.SeekTo(_soundLayout.GetFieldOffset("scale index"));
            buffer.WriteInt16((short)newIndex);
        }