public static bool InitMenuItemScript(SceneEdit.SMenuItem mi, string f_strMenuFileName, bool f_bMan, out string IconTex)
        {
            var fetchedField = AccessTools.DeclaredField(typeof(SceneEdit), "m_byItemFileBuffer");
            var fetchedVal   = fetchedField.GetValue(@this) as byte[];

            IconTex = null;

            if (f_strMenuFileName.IndexOf("mod_") == 0)
            {
                string modPathFileName = Menu.GetModPathFileName(f_strMenuFileName);
                return(!string.IsNullOrEmpty(modPathFileName) && SceneEdit.InitModMenuItemScript(mi, modPathFileName));
            }
            try
            {
                using (AFileBase afileBase = GameUty.FileOpen(f_strMenuFileName, null))
                {
                    NDebug.Assert(afileBase.IsValid(), "メニューファイルが存在しません。 :" + f_strMenuFileName);
                    if (fetchedVal == null)
                    {
                        fetchedVal = new byte[System.Math.Max(500000, afileBase.GetSize())];
                    }
                    else if (fetchedVal.Length < afileBase.GetSize())
                    {
                        fetchedVal = new byte[afileBase.GetSize()];
                    }
                    afileBase.Read(ref fetchedVal, afileBase.GetSize());
                }
            }
            catch (Exception ex)
            {
                Main.logger.LogError(string.Concat(new string[]
                {
                    "メニューファイルがが読み込めませんでした。 : ",
                    f_strMenuFileName,
                    " : ",
                    ex.Message,
                    " : StackTrace :\n",
                    ex.StackTrace
                }));
                throw ex;
            }
            BinaryReader binaryReader = new BinaryReader(new MemoryStream(fetchedVal), Encoding.UTF8);
            string       text         = binaryReader.ReadString();

            NDebug.Assert(text == "CM3D2_MENU", "ProcScriptBin 例外 : ヘッダーファイルが不正です。" + text);
            int    num   = binaryReader.ReadInt32();
            string path  = binaryReader.ReadString();
            string text2 = binaryReader.ReadString();
            string text3 = binaryReader.ReadString();
            string text4 = binaryReader.ReadString();
            long   num2  = (long)binaryReader.ReadInt32();
            int    num3  = 0;
            string text5 = null;
            string text6 = string.Empty;
            string text7 = string.Empty;

            try
            {
                for (; ;)
                {
                    int num4 = (int)binaryReader.ReadByte();
                    text7 = text6;
                    text6 = string.Empty;
                    if (num4 == 0)
                    {
                        break;
                    }
                    for (int i = 0; i < num4; i++)
                    {
                        text6 = text6 + "\"" + binaryReader.ReadString() + "\" ";
                    }
                    if (!(text6 == string.Empty))
                    {
                        string   stringCom  = UTY.GetStringCom(text6);
                        string[] stringList = UTY.GetStringList(text6);
                        if (stringCom == "name")
                        {
                            string text8 = stringList[1];
                            string text9 = string.Empty;
                            string arg   = string.Empty;
                            int    j     = 0;
                            while (j < text8.Length && text8[j] != '\u3000' && text8[j] != ' ')
                            {
                                text9 += text8[j];
                                j++;
                            }
                            while (j < text8.Length)
                            {
                                arg += text8[j];
                                j++;
                            }
                            mi.m_strMenuName = text9;
                        }
                        else if (stringCom == "setumei")
                        {
                            mi.m_strInfo = stringList[1];
                            mi.m_strInfo = mi.m_strInfo.Replace("《改行》", "\n");
                        }
                        else if (stringCom == "category")
                        {
                            string strCateName = stringList[1].ToLower();
                            mi.m_strCateName = strCateName;
                            try
                            {
                                mi.m_mpn = (MPN)Enum.Parse(typeof(MPN), mi.m_strCateName);
                            }
                            catch
                            {
                                Main.logger.LogWarning("カテゴリがありません。" + mi.m_strCateName);
                                mi.m_mpn = MPN.null_mpn;
                            }
                        }
                        else if (stringCom == "color_set")
                        {
                            try
                            {
                                mi.m_eColorSetMPN = (MPN)Enum.Parse(typeof(MPN), stringList[1].ToLower());
                            }
                            catch
                            {
                                Main.logger.LogWarning("カテゴリがありません。" + mi.m_strCateName);
                            }
                            if (stringList.Length >= 3)
                            {
                                mi.m_strMenuNameInColorSet = stringList[2].ToLower();
                            }
                        }
                        else if (stringCom == "tex" || stringCom == "テクスチャ変更")
                        {
                            MaidParts.PARTS_COLOR pcMultiColorID = MaidParts.PARTS_COLOR.NONE;
                            if (stringList.Length == 6)
                            {
                                string text10 = stringList[5];
                                try
                                {
                                    pcMultiColorID = (MaidParts.PARTS_COLOR)Enum.Parse(typeof(MaidParts.PARTS_COLOR), text10.ToUpper());
                                }
                                catch
                                {
                                    NDebug.Assert("無限色IDがありません。" + text10, false);
                                }
                                mi.m_pcMultiColorID = pcMultiColorID;
                            }
                        }
                        else if (stringCom == "icon" || stringCom == "icons")
                        {
                            text5 = stringList[1];
                        }
                        else if (!(stringCom == "iconl"))
                        {
                            if (!(stringCom == "setstr"))
                            {
                                if (!(stringCom == "アイテムパラメータ"))
                                {
                                    if (stringCom == "saveitem")
                                    {
                                        string text11 = stringList[1];
                                        if (text11 == string.Empty)
                                        {
                                            Main.logger.LogError("err SaveItem \"" + text11);
                                        }
                                        if (text11 == null)
                                        {
                                            Main.logger.LogError("err SaveItem null=\"" + text11);
                                        }
                                        if (text11 != string.Empty)
                                        {
                                        }
                                    }
                                    else if (!(stringCom == "catno"))
                                    {
                                        if (stringCom == "additem")
                                        {
                                            num3++;
                                        }
                                        else if (stringCom == "unsetitem")
                                        {
                                            mi.m_boDelOnly = true;
                                        }
                                        else if (stringCom == "priority")
                                        {
                                            mi.m_fPriority = float.Parse(stringList[1]);
                                        }
                                        else if (stringCom == "メニューフォルダ" && stringList[1].ToLower() == "man")
                                        {
                                            mi.m_bMan = true;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex2)
            {
                Main.logger.LogError(string.Concat(new string[]
                {
                    "Exception ",
                    Path.GetFileName(path),
                    " 現在処理中だった行 = ",
                    text6,
                    " 以前の行 = ",
                    text7,
                    "   ",
                    ex2.Message,
                    "StackTrace:\n",
                    ex2.StackTrace
                }));
                throw ex2;
            }
            if (text5 != null && text5 != string.Empty)
            {
                try
                {
                    IconTex = text5;
                    //mi.m_texIcon = ImportCM.CreateTexture(text5);
                }
                catch (Exception)
                {
                    Main.logger.LogError("Error:");
                }
            }
            binaryReader.Close();
            return(true);
        }
示例#2
0
        public static bool InitMenuItemScript(SceneEdit.SMenuItem mi, string f_strMenuFileName, out string IconTex)
        {
            IconTex = null;

            if (f_strMenuFileName.IndexOf("mod_") == 0)
            {
                string modPathFileName = Menu.GetModPathFileName(f_strMenuFileName);
                return(!string.IsNullOrEmpty(modPathFileName) && SceneEdit.InitModMenuItemScript(mi, modPathFileName));
            }

            if (MenuCache.ContainsKey(f_strMenuFileName))
            {
                try
                {
                    MenuStub tempStub = MenuCache[f_strMenuFileName];
                    if (tempStub.DateModified == File.GetLastWriteTimeUtc(FilesDictionary[f_strMenuFileName]))
                    {
                        if (tempStub.Name != null)
                        {
                            mi.m_strMenuName = tempStub.Name;
                        }

                        if (tempStub.Description != null)
                        {
                            mi.m_strInfo = tempStub.Description;
                        }

                        if (tempStub.Category != null)
                        {
                            mi.m_strCateName = tempStub.Category;
                            mi.m_mpn         = (MPN)Enum.Parse(typeof(MPN), tempStub.Category);
                        }
                        else
                        {
                            mi.m_mpn = MPN.null_mpn;
                        }

                        if (tempStub.ColorSetMPN != null)
                        {
                            mi.m_eColorSetMPN = (MPN)Enum.Parse(typeof(MPN), tempStub.ColorSetMPN);
                        }

                        if (tempStub.ColorSetMenu != null)
                        {
                            mi.m_strMenuNameInColorSet = tempStub.ColorSetMenu;
                        }

                        if (tempStub.MultiColorID == null)
                        {
                            mi.m_pcMultiColorID = MaidParts.PARTS_COLOR.NONE;
                        }
                        else if (tempStub.MultiColorID != null)
                        {
                            mi.m_pcMultiColorID = (MaidParts.PARTS_COLOR)Enum.Parse(typeof(MaidParts.PARTS_COLOR), tempStub.MultiColorID);
                        }

                        mi.m_boDelOnly = tempStub.DelMenu;

                        mi.m_fPriority = tempStub.Priority;

                        mi.m_bMan = tempStub.ManMenu;

                        IconTex = tempStub.Icon;

                        return(true);
                    }
                    else
                    {
                        Main.logger.LogWarning($"A cache entry was found outdated. This should be automatically fixed and the cache reloaded.");
                    }
                }
                catch (Exception ex)
                {
                    Main.logger.LogError(string.Concat(new string[]
                    {
                        $"Encountered an issue while trying to load menu {f_strMenuFileName} from cache. This should be automatically fixed and the cache reloaded.",
                        "\n\n",
                        ex.Message,
                        "\n",
                        ex.StackTrace
                    }));
                }
            }

            try
            {
                if (FilesToRead[f_strMenuFileName] == null)
                {
                    FilesToRead[f_strMenuFileName] = new MemoryStream(File.ReadAllBytes(FilesDictionary[f_strMenuFileName]));
                }
            }
            catch (Exception ex)
            {
                Main.logger.LogError(string.Concat(new string[]
                {
                    "The following menu file could not be read! (メニューファイルがが読み込めませんでした。): ",
                    f_strMenuFileName,
                    "\n\n",
                    ex.Message,
                    "\n",
                    ex.StackTrace
                }));

                return(false);
            }

            string text6 = string.Empty;
            string text7 = string.Empty;
            string path  = "";

            MenuStub cacheEntry = new MenuStub();

            try
            {
                cacheEntry.DateModified = File.GetLastWriteTimeUtc(FilesDictionary[f_strMenuFileName]);

                BinaryReader binaryReader = new BinaryReader(FilesToRead[f_strMenuFileName], Encoding.UTF8);
                string       text         = binaryReader.ReadString();

                if (text != "CM3D2_MENU")
                {
                    Main.logger.LogError("ProcScriptBin (例外 : ヘッダーファイルが不正です。) The header indicates a file type that is not a menu file!" + text + " @ " + f_strMenuFileName);

                    return(false);
                }

                binaryReader.ReadInt32();
                path = binaryReader.ReadString();
                binaryReader.ReadString();
                binaryReader.ReadString();
                binaryReader.ReadString();
                binaryReader.ReadInt32();
                string text5 = null;

                while (true)
                {
                    int num4 = binaryReader.ReadByte();
                    text7 = text6;
                    text6 = string.Empty;
                    if (num4 == 0)
                    {
                        break;
                    }
                    for (int i = 0; i < num4; i++)
                    {
                        text6 = text6 + "\"" + binaryReader.ReadString() + "\" ";
                    }
                    if (!(text6 == string.Empty))
                    {
                        string   stringCom  = UTY.GetStringCom(text6);
                        string[] stringList = UTY.GetStringList(text6);
                        if (stringCom == "name")
                        {
                            if (stringList.Length > 1)
                            {
                                string text8 = stringList[1];
                                string text9 = string.Empty;
                                string arg   = string.Empty;
                                int    j     = 0;
                                while (j < text8.Length && text8[j] != '\u3000' && text8[j] != ' ')
                                {
                                    text9 += text8[j];
                                    j++;
                                }
                                while (j < text8.Length)
                                {
                                    arg += text8[j];
                                    j++;
                                }
                                mi.m_strMenuName = text9;
                                cacheEntry.Name  = mi.m_strMenuName;
                            }
                            else
                            {
                                Main.logger.LogWarning("Menu file has no name and an empty description will be used instead." + " @ " + f_strMenuFileName);

                                mi.m_strMenuName = "";
                                cacheEntry.Name  = mi.m_strMenuName;
                            }
                        }
                        else if (stringCom == "setumei")
                        {
                            if (stringList.Length > 1)
                            {
                                mi.m_strInfo           = stringList[1];
                                mi.m_strInfo           = mi.m_strInfo.Replace("《改行》", "\n");
                                cacheEntry.Description = mi.m_strInfo;
                            }
                            else
                            {
                                Main.logger.LogWarning("Menu file has no description (setumei) and an empty description will be used instead." + " @ " + f_strMenuFileName);

                                mi.m_strInfo           = "";
                                cacheEntry.Description = mi.m_strInfo;
                            }
                        }
                        else if (stringCom == "category")
                        {
                            if (stringList.Length > 1)
                            {
                                string strCateName = stringList[1].ToLower();
                                mi.m_strCateName    = strCateName;
                                cacheEntry.Category = mi.m_strCateName;
                                try
                                {
                                    mi.m_mpn            = (MPN)Enum.Parse(typeof(MPN), mi.m_strCateName);
                                    cacheEntry.Category = mi.m_mpn.ToString();
                                }
                                catch
                                {
                                    Main.logger.LogWarning("There is no category called (カテゴリがありません。): " + mi.m_strCateName + " @ " + f_strMenuFileName);
                                    return(false);
                                }
                            }
                            else
                            {
                                Main.logger.LogWarning("The following menu file has a category parent with no category: " + f_strMenuFileName);
                                return(false);
                            }
                        }
                        else if (stringCom == "color_set")
                        {
                            if (stringList.Length > 1)
                            {
                                try
                                {
                                    mi.m_eColorSetMPN      = (MPN)Enum.Parse(typeof(MPN), stringList[1].ToLower());
                                    cacheEntry.ColorSetMPN = mi.m_eColorSetMPN.ToString();
                                }
                                catch
                                {
                                    Main.logger.LogWarning("There is no category called(カテゴリがありません。): " + mi.m_strCateName + " @ " + f_strMenuFileName);

                                    return(false);
                                }
                                if (stringList.Length >= 3)
                                {
                                    mi.m_strMenuNameInColorSet = stringList[2].ToLower();
                                    cacheEntry.ColorSetMenu    = mi.m_strMenuNameInColorSet;
                                }
                            }
                            else
                            {
                                Main.logger.LogWarning("A color_set entry exists but is otherwise empty" + " @ " + f_strMenuFileName);
                            }
                        }
                        else if (stringCom == "tex" || stringCom == "テクスチャ変更")
                        {
                            MaidParts.PARTS_COLOR pcMultiColorID = MaidParts.PARTS_COLOR.NONE;
                            if (stringList.Length == 6)
                            {
                                string text10 = stringList[5];
                                try
                                {
                                    pcMultiColorID = (MaidParts.PARTS_COLOR)Enum.Parse(typeof(MaidParts.PARTS_COLOR), text10.ToUpper());
                                }
                                catch
                                {
                                    Main.logger.LogError("無限色IDがありません。(The following free color ID does not exist: )" + text10 + " @ " + f_strMenuFileName);

                                    return(false);
                                }
                                mi.m_pcMultiColorID     = pcMultiColorID;
                                cacheEntry.MultiColorID = mi.m_pcMultiColorID.ToString();
                            }
                        }
                        else if (stringCom == "icon" || stringCom == "icons")
                        {
                            if (stringList.Length > 1)
                            {
                                text5 = stringList[1];
                            }
                            else
                            {
                                Main.logger.LogError("The following menu file has an icon entry but no field set: " + f_strMenuFileName);

                                return(false);
                            }
                        }
                        else if (stringCom == "saveitem")
                        {
                            if (stringList.Length > 1)
                            {
                                string text11 = stringList[1];
                                if (String.IsNullOrEmpty(text11))
                                {
                                    Main.logger.LogWarning("SaveItem is either null or empty." + " @ " + f_strMenuFileName);
                                }
                            }
                            else
                            {
                                Main.logger.LogWarning("A saveitem entry exists with nothing set in the field @ " + f_strMenuFileName);
                            }
                        }
                        else if (stringCom == "unsetitem")
                        {
                            mi.m_boDelOnly     = true;
                            cacheEntry.DelMenu = mi.m_boDelOnly;
                        }
                        else if (stringCom == "priority")
                        {
                            if (stringList.Length > 1)
                            {
                                mi.m_fPriority      = float.Parse(stringList[1]);
                                cacheEntry.Priority = mi.m_fPriority;
                            }
                            else
                            {
                                Main.logger.LogError("The following menu file has a priority entry but no field set. A default value of 10000 will be used: " + f_strMenuFileName);

                                mi.m_fPriority      = 10000f;
                                cacheEntry.Priority = mi.m_fPriority;
                            }
                        }
                        else if (stringCom == "メニューフォルダ")
                        {
                            if (stringList.Length > 1)
                            {
                                if (stringList[1].ToLower() == "man")
                                {
                                    mi.m_bMan          = true;
                                    cacheEntry.ManMenu = mi.m_bMan;
                                }
                            }
                            else
                            {
                                Main.logger.LogError("A a menu with a menu folder setting (メニューフォルダ) has an entry but no field set: " + f_strMenuFileName);

                                return(false);
                            }
                        }
                    }
                }

                if (!String.IsNullOrEmpty(text5))
                {
                    try
                    {
                        IconTex         = text5;
                        cacheEntry.Icon = text5;
                        //mi.m_texIcon = ImportCM.CreateTexture(text5);
                    }
                    catch (Exception)
                    {
                        Main.logger.LogError("Error setting some icon tex from a normal mod." + " @ " + f_strMenuFileName);

                        return(false);
                    }
                }
                binaryReader.Close();
            }
            catch (Exception ex2)
            {
                Main.logger.LogError(string.Concat(new string[]
                {
                    "Exception when reading: ",
                    f_strMenuFileName,
                    "\nThe line currently being processed, likely the issue (現在処理中だった行): ",
                    text6,
                    "\nPrevious line (以前の行): ",
                    text7,
                    "\n\n",
                    ex2.Message,
                    "\n",
                    ex2.StackTrace
                }));

                return(false);
            }
            MenuCache[f_strMenuFileName] = cacheEntry;
            return(true);
        }
示例#3
0
        public static bool InitMenuItemScript(SceneEdit.SMenuItem mi, string f_strMenuFileName, out string IconTex)
        {
            IconTex = null;

            if (f_strMenuFileName.IndexOf("mod_") == 0)
            {
                string modPathFileName = Menu.GetModPathFileName(f_strMenuFileName);
                return(!string.IsNullOrEmpty(modPathFileName) && SceneEdit.InitModMenuItemScript(mi, modPathFileName));
            }
            try
            {
                if (MenuCache.ContainsKey(f_strMenuFileName))
                {
                    MenuStub tempStub = MenuCache[f_strMenuFileName];
                    if (tempStub.DateModified == File.GetLastWriteTimeUtc(FilesDictionary[f_strMenuFileName]))
                    {
                        if (tempStub.Name != null)
                        {
                            mi.m_strMenuName = tempStub.Name;
                        }

                        if (tempStub.Description != null)
                        {
                            mi.m_strInfo = tempStub.Description;
                        }

                        if (tempStub.Category != null)
                        {
                            mi.m_strCateName = tempStub.Category;
                            mi.m_mpn         = (MPN)Enum.Parse(typeof(MPN), tempStub.Category);
                        }
                        else
                        {
                            mi.m_mpn = MPN.null_mpn;
                        }

                        if (tempStub.ColorSetMPN != null)
                        {
                            mi.m_eColorSetMPN = (MPN)Enum.Parse(typeof(MPN), tempStub.ColorSetMPN);
                        }

                        if (tempStub.ColorSetMenu != null)
                        {
                            mi.m_strMenuNameInColorSet = tempStub.ColorSetMenu;
                        }

                        if (tempStub.MultiColorID == "null")
                        {
                            mi.m_pcMultiColorID = MaidParts.PARTS_COLOR.NONE;
                        }
                        else if (tempStub.MultiColorID != null)
                        {
                            mi.m_pcMultiColorID = (MaidParts.PARTS_COLOR)Enum.Parse(typeof(MaidParts.PARTS_COLOR), tempStub.MultiColorID);
                        }

                        mi.m_boDelOnly = tempStub.DelMenu;

                        mi.m_fPriority = tempStub.Priority;

                        mi.m_bMan = tempStub.ManMenu;

                        IconTex = tempStub.Icon;

                        return(true);
                    }
                    else
                    {
                        Debug.Log($"A cache entry was found outdated. This should be automatically fixed and the cache reloaded.");
                    }
                }

                if (FilesToRead[f_strMenuFileName] == null)
                {
                    FilesToRead[f_strMenuFileName] = new MemoryStream(File.ReadAllBytes(FilesDictionary[f_strMenuFileName]));
                }
            }
            catch (Exception ex)
            {
                Debug.LogError(string.Concat(new string[]
                {
                    "メニューファイルがが読み込めませんでした。 : ",
                    f_strMenuFileName,
                    " : ",
                    ex.Message,
                    " : StackTrace :\n",
                    ex.StackTrace
                }));
                throw ex;
            }

            string text6 = string.Empty;
            string text7 = string.Empty;
            string path  = "";

            MenuStub cacheEntry = new MenuStub();

            try
            {
                cacheEntry.DateModified = File.GetLastWriteTimeUtc(FilesDictionary[f_strMenuFileName]);

                BinaryReader binaryReader = new BinaryReader(FilesToRead[f_strMenuFileName], Encoding.UTF8);
                string       text         = binaryReader.ReadString();
                NDebug.Assert(text == "CM3D2_MENU", "ProcScriptBin 例外 : ヘッダーファイルが不正です。" + text);
                binaryReader.ReadInt32();
                path = binaryReader.ReadString();
                binaryReader.ReadString();
                binaryReader.ReadString();
                binaryReader.ReadString();
                binaryReader.ReadInt32();
                string text5 = null;

                while (true)
                {
                    int num4 = binaryReader.ReadByte();
                    text7 = text6;
                    text6 = string.Empty;
                    if (num4 == 0)
                    {
                        break;
                    }
                    for (int i = 0; i < num4; i++)
                    {
                        text6 = text6 + "\"" + binaryReader.ReadString() + "\" ";
                    }
                    if (!(text6 == string.Empty))
                    {
                        string   stringCom  = UTY.GetStringCom(text6);
                        string[] stringList = UTY.GetStringList(text6);
                        if (stringCom == "name")
                        {
                            string text8 = stringList[1];
                            string text9 = string.Empty;
                            string arg   = string.Empty;
                            int    j     = 0;
                            while (j < text8.Length && text8[j] != '\u3000' && text8[j] != ' ')
                            {
                                text9 += text8[j];
                                j++;
                            }
                            while (j < text8.Length)
                            {
                                arg += text8[j];
                                j++;
                            }
                            mi.m_strMenuName = text9;
                            cacheEntry.Name  = mi.m_strMenuName;
                        }
                        else if (stringCom == "setumei")
                        {
                            mi.m_strInfo           = stringList[1];
                            mi.m_strInfo           = mi.m_strInfo.Replace("《改行》", "\n");
                            cacheEntry.Description = mi.m_strInfo;
                        }
                        else if (stringCom == "category")
                        {
                            string strCateName = stringList[1].ToLower();
                            mi.m_strCateName    = strCateName;
                            cacheEntry.Category = mi.m_strCateName;
                            try
                            {
                                mi.m_mpn            = (MPN)Enum.Parse(typeof(MPN), mi.m_strCateName);
                                cacheEntry.Category = mi.m_mpn.ToString();
                            }
                            catch
                            {
                                Debug.LogWarning("カテゴリがありません。" + mi.m_strCateName);
                                mi.m_mpn = MPN.null_mpn;
                            }
                        }
                        else if (stringCom == "color_set")
                        {
                            try
                            {
                                mi.m_eColorSetMPN      = (MPN)Enum.Parse(typeof(MPN), stringList[1].ToLower());
                                cacheEntry.ColorSetMPN = mi.m_eColorSetMPN.ToString();
                            }
                            catch
                            {
                                Debug.LogWarning("カテゴリがありません。" + mi.m_strCateName);
                            }
                            if (stringList.Length >= 3)
                            {
                                mi.m_strMenuNameInColorSet = stringList[2].ToLower();
                                cacheEntry.ColorSetMenu    = mi.m_strMenuNameInColorSet;
                            }
                        }
                        else if (stringCom == "tex" || stringCom == "テクスチャ変更")
                        {
                            MaidParts.PARTS_COLOR pcMultiColorID = MaidParts.PARTS_COLOR.NONE;
                            cacheEntry.MultiColorID = "null";
                            if (stringList.Length == 6)
                            {
                                string text10 = stringList[5];
                                try
                                {
                                    pcMultiColorID = (MaidParts.PARTS_COLOR)Enum.Parse(typeof(MaidParts.PARTS_COLOR), text10.ToUpper());
                                }
                                catch
                                {
                                    NDebug.Assert("無限色IDがありません。" + text10, false);
                                }
                                mi.m_pcMultiColorID     = pcMultiColorID;
                                cacheEntry.MultiColorID = mi.m_pcMultiColorID.ToString();
                            }
                        }
                        else if (stringCom == "icon" || stringCom == "icons")
                        {
                            text5 = stringList[1];
                        }
                        else if (!(stringCom == "iconl"))
                        {
                            if (!(stringCom == "setstr"))
                            {
                                if (!(stringCom == "アイテムパラメータ"))
                                {
                                    if (stringCom == "saveitem")
                                    {
                                        string text11 = stringList[1];
                                        if (text11 == string.Empty)
                                        {
                                            Debug.LogError("err SaveItem \"" + text11);
                                        }
                                        if (text11 == null)
                                        {
                                            Debug.LogError("err SaveItem null=\"" + text11);
                                        }
                                    }
                                    else if (!(stringCom == "catno"))
                                    {
                                        if (stringCom == "unsetitem")
                                        {
                                            mi.m_boDelOnly     = true;
                                            cacheEntry.DelMenu = mi.m_boDelOnly;
                                        }
                                        else if (stringCom == "priority")
                                        {
                                            mi.m_fPriority      = float.Parse(stringList[1]);
                                            cacheEntry.Priority = mi.m_fPriority;
                                        }
                                        else if (stringCom == "メニューフォルダ" && stringList[1].ToLower() == "man")
                                        {
                                            mi.m_bMan          = true;
                                            cacheEntry.ManMenu = mi.m_bMan;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                if (text5 != null && text5 != string.Empty)
                {
                    try
                    {
                        IconTex         = text5;
                        cacheEntry.Icon = text5;
                        //mi.m_texIcon = ImportCM.CreateTexture(text5);
                    }
                    catch (Exception)
                    {
                        Debug.LogError("Error:");
                    }
                }
                binaryReader.Close();
            }
            catch (Exception ex2)
            {
                Debug.LogError(string.Concat(new string[]
                {
                    "Exception ",
                    Path.GetFileName(path),
                    " 現在処理中だった行 = ",
                    text6,
                    " 以前の行 = ",
                    text7,
                    "   ",
                    ex2.Message,
                    "StackTrace:\n",
                    ex2.StackTrace
                }));
                throw ex2;
            }
            MenuCache[f_strMenuFileName] = cacheEntry;
            return(true);
        }