/// <summary>
        ///
        /// </summary>
        /// <param name="br"></param>
        /// <param name="f"></param>
        /// <param name="aPart"></param>
        /// <param name="partTitle"></param>
        /// <returns></returns>
        private bool ReadPart(BinaryReader br, FileInfo f, out BasePart aPart, out string partTitle)
        {
            Logger.LogDebug("ReadPart " + f.FullName);

            aPart     = null;
            partTitle = null;

            // マジック
            string tmpMagic = br.ReadString();

            if (tmpMagic != SceneExport.MAGIC)
            {
                Logger.Log(BepInEx.Logging.LogLevel.Message, "Error: Invalid file format:" + f.FullName);
                return(false);
            }
            // 名前
            partTitle = br.ReadString();

            // Kind
            int kind = br.ReadInt32();

            //キー
            string sb_key = br.ReadString();

            if (kind == 0)
            {
                //H パート
                aPart = new HEdit.HPart();
                aPart.Load(br, HEditData.Instance.dataVersion);
                if (this.CheckHPart((HEdit.HPart)aPart, f.Name) == false)
                {
                    //読み込めないデータ
                    return(false);
                }
            }
            else
            {
                //ADV パート
                aPart = new HEdit.ADVPart(0);
                aPart.Load(br, HEditData.Instance.dataVersion);

                if (this.CheckADVPart((HEdit.ADVPart)aPart, f.Name) == false)
                {
                    //読み込めないデータ
                    return(false);
                }
            }

            return(true);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="part"></param>
        /// <param name="partName"></param>
        /// <returns>パートに問題があるときはfalse</returns>
        private bool CheckHPart(HEdit.HPart part, string partName)
        {
            CheckMap(part);

            foreach (HEdit.HPart.Group g in part.groups)
            {
                foreach (var cs in g.infoCharas)
                {
                    if (cs.useCharaID >= HEditData.Instance.charas.Count)
                    {
                        Logger.Log(BepInEx.Logging.LogLevel.Message, "Error: Invalid charaID (" + cs.useCharaID + ") in H part." + partName);
                        return(false);
                    }
                }
            }
            return(true);
        }