Exemplo n.º 1
0
 public static int WriteString(IEString stringInfo, TlkFile tlkFile)
 {
     var strref = stringInfo.Strref;
     if (tlkFile != null)
     {
         if ((stringInfo.Strref != Common.NewString) && (stringInfo.Strref <= tlkFile.Strings.Count))
         {
             tlkFile.Strings[stringInfo.Strref].Flags = stringInfo.Flags;
             tlkFile.Strings[stringInfo.Strref].PitchVariance = stringInfo.PitchVariance;
             tlkFile.Strings[stringInfo.Strref].Sound = stringInfo.Sound;
             tlkFile.Strings[stringInfo.Strref].Text = stringInfo.Text;
             tlkFile.Strings[stringInfo.Strref].VolumeVariance = stringInfo.VolumeVariance;
         }
         else
         {
             // Re-use an existing strref if possible (based only on the text)
             var existingEntry = tlkFile.Strings.Where(a => a.Text == stringInfo.Text).SingleOrDefault();
             if (existingEntry != null)
             {
                 strref = existingEntry.Strref;
             }
             else
             {
                 strref = tlkFile.Strings.Count + 1;
                 var stringEntry = new StringEntry();
                 stringEntry.Flags = stringInfo.Flags;
                 stringEntry.PitchVariance = stringInfo.PitchVariance;
                 stringEntry.Sound = stringInfo.Sound;
                 stringEntry.Strref = strref;
                 stringEntry.Text = stringInfo.Text;
                 stringEntry.VolumeVariance = stringInfo.VolumeVariance;
                 tlkFile.Strings.Add(stringEntry);
             }
         }
     }
     return strref;
 }
Exemplo n.º 2
0
        public static IEString ReadString(Int32 strref, TlkFile tlkFile)
        {
            var stringInfo = new IEString();
            stringInfo.Strref = strref;

            if (tlkFile != null)
            {
                if ((strref <= tlkFile.Strings.Count) && (strref > -1))
                {
                    stringInfo.Flags = tlkFile.Strings[strref].Flags;
                    stringInfo.PitchVariance = tlkFile.Strings[strref].PitchVariance;
                    stringInfo.Sound = tlkFile.Strings[strref].Sound;
                    stringInfo.Text = tlkFile.Strings[strref].Text;
                    stringInfo.VolumeVariance = tlkFile.Strings[strref].VolumeVariance;
                }
            }
            return stringInfo;
        }