Ejemplo n.º 1
0
 /// <summary>
 /// DialogファイルをStreamに書き出す。
 /// </summary>
 /// <param name="dialogFile">Dialogファイル</param>
 /// <param name="bw">Stream</param>
 private static void WriteEntries(UapDialogFile dialogFile, BinaryWriter bw)
 {
     bw.Write(dialogFile.Items.Count);
     foreach (var entry in dialogFile.Items.Values)
     {
         WriteEntry(entry, bw);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// StreamからDialogエントリー読み込み、Dialogファイルに追加する。
        /// </summary>
        /// <param name="dialogFile">Dialogファイル</param>
        /// <param name="br">Stream</param>
        private static void ReadEntries(
            UapDialogFile dialogFile, BinaryReader br)
        {
            var entries = br.ReadInt32();

            for (int i = 0; i < entries; i++)
            {
                var entry = ReadEntry(br);
                dialogFile.AddEntry(entry);
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Dialogファイルを追加する。
 /// </summary>
 /// <param name="dialogFile">Dialogファイル</param>
 public void AddFile(UapDialogFile dialogFile)
 {
     if (this.Items.ContainsKey(dialogFile.FileID))
     {
         throw new Exception($"Duplicate file id({dialogFile.FileID}).");
     }
     else
     {
         this.Items.Add(dialogFile.FileID, dialogFile);
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// 自分自身のクローンを返す。
        /// </summary>
        /// <returns>Dialogファイル</returns>
        public UapDialogFile Clone()
        {
            var uapDialogFile = new UapDialogFile(this.FileID);

            foreach (var entry in this.Items.Values)
            {
                uapDialogFile.AddEntry(entry.Clone());
            }

            return(uapDialogFile);
        }
Ejemplo n.º 5
0
 /// <summary>
 /// 指定したパスのMB(Dialog)を読み込み、Dialog情報に追加する。
 /// </summary>
 /// <param name="dialogInfo">Dialog情報</param>
 /// <param name="path">MB(Dialog)のパス</param>
 private static void LoadFromFile(UapDialogInfo dialogInfo, string path)
 {
     using (var sr = new StreamReader(path))
     {
         using (var br = new BinaryReader(sr.BaseStream, Encoding.UTF8))
         {
             var fileID     = Path.GetFileNameWithoutExtension(path);
             var dialogFile = new UapDialogFile(fileID);
             ReadEntries(dialogFile, br);
             dialogInfo.AddFile(dialogFile);
         }
     }
 }