예제 #1
0
 private void button3_Click(object sender, EventArgs e)
 {
     MyLog.Log("처리 시작");
     PresetUtill.GetUniqueProcSub(Preset.PresetListLoad(), PresetType.All);
     MyLog.Log("처리 완료");
 }
예제 #2
0
        // Token: 0x06001C6B RID: 7275 RVA: 0x000D1DB0 File Offset: 0x000D01B0
        public bool Deserialize(BinaryReader f_brRead)
        {
            //NDebug.Assert(f_brRead.ReadString() == "CM3D2_MPROP", "メイドプロパティのヘッダーが不正です。");
            if (f_brRead.ReadString() != "CM3D2_MPROP")
            {
                MyLog.Log("メイドプロパティのヘッダーが不正です");
                return(false);
            }
            int num = f_brRead.ReadInt32();

            this.idx = f_brRead.ReadInt32();
            if (num <= 110 && 10 <= this.idx)
            {
                this.idx += 2;
            }
            this.name          = f_brRead.ReadString();
            this.idx           = (int)Enum.Parse(typeof(MPN), this.name, true);
            this.type          = f_brRead.ReadInt32();
            this.value_Default = f_brRead.ReadInt32();
            this.value         = f_brRead.ReadInt32();
            if (101 <= num)
            {
                this.temp_value = f_brRead.ReadInt32();
            }
            this.value_LinkMAX = f_brRead.ReadInt32();
            this.strFileName   = f_brRead.ReadString();
            this.nFileNameRID  = f_brRead.ReadInt32();
            this.boDut         = f_brRead.ReadBoolean();
            this.max           = f_brRead.ReadInt32();
            this.min           = f_brRead.ReadInt32();
            if (this.listSubProp != null && this.listSubProp.Count != 0)
            {
                this.listSubProp = null;
            }
            if (200 <= num)
            {
                int num2 = f_brRead.ReadInt32();
                if (num2 != 0)
                {
                    this.listSubProp = new List <SubProp>();
                }
                for (int i = 0; i < num2; i++)
                {
                    bool flag = f_brRead.ReadBoolean();
                    if (flag)
                    {
                        SubProp subProp = new SubProp();
                        subProp.bDut         = f_brRead.ReadBoolean();
                        subProp.strFileName  = f_brRead.ReadString();
                        subProp.nFileNameRID = f_brRead.ReadInt32();
                        if (211 <= num)
                        {
                            subProp.fTexMulAlpha = f_brRead.ReadSingle();
                        }
                        subProp.bDut = true;
                        this.listSubProp.Add(subProp);
                    }
                    else
                    {
                        this.listSubProp.Add(null);
                    }
                }
            }
            else if (this.type == 3 && (this.name == "acctatoo" || this.name == "hokuro") && !string.IsNullOrEmpty(this.strFileName) && !this.strFileName.Contains("_del"))
            {
                this.listSubProp = new List <SubProp>();
                SubProp subProp2 = new SubProp();
                subProp2.bDut         = true;
                subProp2.strFileName  = this.strFileName;
                subProp2.nFileNameRID = this.nFileNameRID;
                this.listSubProp.Add(subProp2);
                this.strFileName  = CM3.dicDelItem[(MPN)Enum.Parse(typeof(MPN), this.name, true)];
                this.nFileNameRID = this.strFileName.ToLower().GetHashCode();
            }
            if (this.name == "eye_hi" && string.IsNullOrEmpty(this.strFileName))
            {
                this.strFileName  = "_I_SkinHi.menu";
                this.nFileNameRID = this.strFileName.ToLower().GetHashCode();
            }
            else if (this.name == "mayu" && string.IsNullOrEmpty(this.strFileName))
            {
                this.strFileName  = "_I_mayu_001_mugen.menu";
                this.nFileNameRID = this.strFileName.ToLower().GetHashCode();
            }
            if (num <= 208 && this.idx == 65 && this.strFileName.ToLower() == "_I_acctatoo_del.menu".ToLower())
            {
                this.strFileName  = CM3.dicDelItem[MPN.accnail];
                this.nFileNameRID = this.strFileName.ToLower().GetHashCode();
            }
            this.m_dicTBodySkinPos.Clear();
            this.m_dicTBodyAttachPos.Clear();
            this.m_dicMaterialProp.Clear();
            this.m_dicBoneLength.Clear();
            if (200 <= num)
            {
                int num3 = f_brRead.ReadInt32();
                for (int j = 0; j < num3; j++)
                {
                    TBody.SlotID  key           = (TBody.SlotID)f_brRead.ReadInt32();
                    int           key2          = f_brRead.ReadInt32();
                    BoneAttachPos boneAttachPos = new BoneAttachPos();
                    boneAttachPos.bEnable        = f_brRead.ReadBoolean();
                    boneAttachPos.pss.position.x = f_brRead.ReadSingle();
                    boneAttachPos.pss.position.y = f_brRead.ReadSingle();
                    boneAttachPos.pss.position.z = f_brRead.ReadSingle();
                    boneAttachPos.pss.rotation.x = f_brRead.ReadSingle();
                    boneAttachPos.pss.rotation.y = f_brRead.ReadSingle();
                    boneAttachPos.pss.rotation.z = f_brRead.ReadSingle();
                    boneAttachPos.pss.rotation.w = f_brRead.ReadSingle();
                    boneAttachPos.pss.scale.x    = f_brRead.ReadSingle();
                    boneAttachPos.pss.scale.y    = f_brRead.ReadSingle();
                    boneAttachPos.pss.scale.z    = f_brRead.ReadSingle();
                    KeyValuePair <int, BoneAttachPos> keyValuePair = new KeyValuePair <int, BoneAttachPos>(key2, boneAttachPos);
                    this.m_dicTBodySkinPos[key] = keyValuePair;
                }
                int num4 = f_brRead.ReadInt32();
                for (int k = 0; k < num4; k++)
                {
                    TBody.SlotID key3 = (TBody.SlotID)f_brRead.ReadInt32();
                    int          num5 = f_brRead.ReadInt32();
                    Dictionary <string, KeyValuePair <int, VtxAttachPos> > dictionary = new Dictionary <string, KeyValuePair <int, VtxAttachPos> >();
                    for (int l = 0; l < num5; l++)
                    {
                        string       key4         = f_brRead.ReadString();
                        int          key5         = f_brRead.ReadInt32();
                        VtxAttachPos vtxAttachPos = new VtxAttachPos();
                        vtxAttachPos.bEnable        = f_brRead.ReadBoolean();
                        vtxAttachPos.vtxcount       = f_brRead.ReadInt32();
                        vtxAttachPos.vidx           = f_brRead.ReadInt32();
                        vtxAttachPos.prs.position.x = f_brRead.ReadSingle();
                        vtxAttachPos.prs.position.y = f_brRead.ReadSingle();
                        vtxAttachPos.prs.position.z = f_brRead.ReadSingle();
                        vtxAttachPos.prs.rotation.x = f_brRead.ReadSingle();
                        vtxAttachPos.prs.rotation.y = f_brRead.ReadSingle();
                        vtxAttachPos.prs.rotation.z = f_brRead.ReadSingle();
                        vtxAttachPos.prs.rotation.w = f_brRead.ReadSingle();
                        vtxAttachPos.prs.scale.x    = f_brRead.ReadSingle();
                        vtxAttachPos.prs.scale.y    = f_brRead.ReadSingle();
                        vtxAttachPos.prs.scale.z    = f_brRead.ReadSingle();
                        dictionary.Add(key4, new KeyValuePair <int, VtxAttachPos>(key5, vtxAttachPos));
                    }
                    this.m_dicTBodyAttachPos.Add(key3, dictionary);
                }
                int num6 = f_brRead.ReadInt32();
                for (int m = 0; m < num6; m++)
                {
                    TBody.SlotID slotID      = (TBody.SlotID)f_brRead.ReadInt32();
                    int          key6        = f_brRead.ReadInt32();
                    MatPropSave  matPropSave = new MatPropSave();
                    matPropSave.nMatNo      = f_brRead.ReadInt32();
                    matPropSave.strPropName = f_brRead.ReadString();
                    matPropSave.strTypeName = f_brRead.ReadString();
                    matPropSave.strValue    = f_brRead.ReadString();
                    if (num < 204 && slotID == TBody.SlotID.head && matPropSave.nMatNo == 3 && (matPropSave.strPropName == "_ZTest" || matPropSave.strPropName == "ZTest"))
                    {
                        matPropSave.strPropName = "_ZTest2";
                        matPropSave.strValue    = ((!(matPropSave.strValue == "8")) ? "1" : "7");
                    }
                    this.m_dicMaterialProp.Add(slotID, new KeyValuePair <int, MatPropSave>(key6, matPropSave));
                }
                if (213 <= num)
                {
                    int num7 = f_brRead.ReadInt32();
                    for (int n = 0; n < num7; n++)
                    {
                        TBody.SlotID key7 = (TBody.SlotID)f_brRead.ReadInt32();
                        int          key8 = f_brRead.ReadInt32();
                        int          num8 = f_brRead.ReadInt32();
                        Dictionary <string, float> dictionary2 = new Dictionary <string, float>();
                        for (int num9 = 0; num9 < num8; num9++)
                        {
                            string key9  = f_brRead.ReadString();
                            float  num10 = f_brRead.ReadSingle();
                            dictionary2.Add(key9, num10);
                        }
                        this.m_dicBoneLength[key7] = new KeyValuePair <int, Dictionary <string, float> >(key8, dictionary2);
                    }
                }
            }
            if (num < 200 && this.idx == 58 && Path.GetFileNameWithoutExtension(this.strFileName.ToLower()) == "hair_r095_i_")
            {
                this.strFileName  = "hair_r110_i_.menu";
                this.nFileNameRID = this.strFileName.ToLower().GetHashCode();
            }
            this.boDut            = true;
            this.boTempDut        = false;
            this.strTempFileName  = string.Empty;
            this.nTempFileNameRID = 0;
            return(true);
        }
        public static List <MaidProp> DeserializePropPre(BinaryReader f_brRead)
        {
            List <MaidProp> list = new List <MaidProp>();
            string          a    = f_brRead.ReadString();

            if (a != "CM3D2_MPROP_LIST")
            {
                MyLog.Log("메이드 속성 목록의 헤더가 잘못되었습니다。");
                return(null);
            }
            //NDebug.Assert(a == "CM3D2_MPROP_LIST", "메이드 속성 목록의 헤더가 잘못되었습니다。");
            int           num     = f_brRead.ReadInt32();
            int           num2    = f_brRead.ReadInt32();
            HashSet <MPN> hashSet = new HashSet <MPN>();

            for (int i = 0; i < num2; i++)
            {
                if (4 <= num)
                {
                    string text = f_brRead.ReadString();
                }
                MaidProp maidProp = new MaidProp();
                maidProp.Deserialize(f_brRead);
                hashSet.Add((MPN)maidProp.idx);
                list.Add(maidProp);
                if (num <= 110 && maidProp.idx == 10)
                {
                    list.Add(new MaidProp
                    {
                        type  = maidProp.type,
                        idx   = 11,
                        name  = MPN.EyeSclX.ToString(),
                        value = maidProp.value,
                        min   = maidProp.min,
                        max   = maidProp.max,
                        boDut = true
                    });
                    list.Add(new MaidProp
                    {
                        type  = maidProp.type,
                        idx   = 12,
                        name  = MPN.EyeSclY.ToString(),
                        value = maidProp.value,
                        min   = maidProp.min,
                        max   = maidProp.max,
                        boDut = true
                    });
                }
            }
            if (num < 200)
            {
                list.Add(Maid.CreateProp(0, 100, 0, MPN.EyeClose, 2));
                list.Add(Maid.CreateProp(0, 100, 0, MPN.FaceShape, 2));
                list.Add(Maid.CreateProp(0, 100, 50, MPN.MayuX, 2));
                list.Add(Maid.CreateProp(0, 100, 50, MPN.MayuY, 2));
            }
            if (num < 210)
            {
                list.Add(Maid.CreateProp(0, 100, 50, MPN.EyeBallPosX, 2));
                list.Add(Maid.CreateProp(0, 100, 50, MPN.EyeBallPosY, 2));
                list.Add(Maid.CreateProp(0, 100, 50, MPN.EyeBallSclX, 2));
                list.Add(Maid.CreateProp(0, 100, 50, MPN.EyeBallSclY, 2));
            }
            if (!hashSet.Contains(MPN.FaceShapeSlim))
            {
                list.Add(Maid.CreateProp(0, 100, 0, MPN.FaceShapeSlim, 2));
            }
            if (!hashSet.Contains(MPN.EarNone))
            {
                list.Add(Maid.CreateProp(0, 1, 0, MPN.EarNone, 2));
            }
            if (!hashSet.Contains(MPN.EarElf))
            {
                list.Add(Maid.CreateProp(0, 100, 0, MPN.EarElf, 2));
            }
            if (!hashSet.Contains(MPN.EarRot))
            {
                list.Add(Maid.CreateProp(0, 100, 50, MPN.EarRot, 2));
            }
            if (!hashSet.Contains(MPN.EarScl))
            {
                list.Add(Maid.CreateProp(0, 100, 50, MPN.EarScl, 2));
            }
            if (!hashSet.Contains(MPN.NosePos))
            {
                list.Add(Maid.CreateProp(0, 100, 50, MPN.NosePos, 2));
            }
            if (!hashSet.Contains(MPN.NoseScl))
            {
                list.Add(Maid.CreateProp(0, 100, 50, MPN.NoseScl, 2));
            }
            if (!hashSet.Contains(MPN.MayuShapeIn))
            {
                list.Add(Maid.CreateProp(0, 100, 50, MPN.MayuShapeIn, 2));
            }
            if (!hashSet.Contains(MPN.MayuShapeOut))
            {
                list.Add(Maid.CreateProp(0, 100, 50, MPN.MayuShapeOut, 2));
            }
            if (!hashSet.Contains(MPN.MayuRot))
            {
                list.Add(Maid.CreateProp(0, 100, 50, MPN.MayuRot, 2));
            }
            return(list);
        }
예제 #4
0
        public unsafe static MaidParts.PartsColor[] DeserializePre(BinaryReader f_brRead)
        {
            MaidParts.PartsColor[] array = new MaidParts.PartsColor[13];
            for (int i = 0; i < 13; i++)
            {
                array[i] = MaidParts.m_aryPartsColorDefault[i];
            }
            string a = f_brRead.ReadString();

            if (a != "CM3D2_MULTI_COL")
            {
                MyLog.Log("無限色のヘッダーが不正です。");
                return(null);
            }
            //NDebug.Assert(a == "CM3D2_MULTI_COL", "無限色のヘッダーが不正です。");
            int num  = f_brRead.ReadInt32();
            int num2 = f_brRead.ReadInt32();

            if (num <= 1200 && ((200 > num) ? (7 != num2) : (9 != num2)))
            {
                //NDebug.Assert("無限色数が異なります。セーブデータが破損しています。", false);
                return(null);
            }
            if (num <= 1200)
            {
                string[] array2 = new string[]
                {
                    "EYE_L",
                    "EYE_R",
                    "HAIR",
                    "EYE_BROW",
                    "UNDER_HAIR",
                    "SKIN",
                    "NIPPLE",
                    "HAIR_OUTLINE",
                    "SKIN_OUTLINE"
                };
                for (int j = 0; j < num2; j++)
                {
                    MaidParts.PartsColor partsColor = default(MaidParts.PartsColor);
                    partsColor.m_bUse              = f_brRead.ReadBoolean();
                    partsColor.m_nMainHue          = f_brRead.ReadInt32();
                    partsColor.m_nMainChroma       = f_brRead.ReadInt32();
                    partsColor.m_nMainBrightness   = f_brRead.ReadInt32();
                    partsColor.m_nMainContrast     = f_brRead.ReadInt32();
                    partsColor.m_nShadowRate       = f_brRead.ReadInt32();
                    partsColor.m_nShadowHue        = f_brRead.ReadInt32();
                    partsColor.m_nShadowChroma     = f_brRead.ReadInt32();
                    partsColor.m_nShadowBrightness = f_brRead.ReadInt32();
                    partsColor.m_nShadowContrast   = f_brRead.ReadInt32();
                    MaidParts.PARTS_COLOR parts_COLOR = (MaidParts.PARTS_COLOR)Enum.Parse(typeof(MaidParts.PARTS_COLOR), array2[j], true);
                    array[(int)parts_COLOR] = partsColor;
                }
            }
            else
            {
                string value;
                while ((value = f_brRead.ReadString()) != MaidParts.PARTS_COLOR.MAX.ToString())
                {
                    PARTS_COLOR parts_COLOR2 = (PARTS_COLOR)Enum.Parse(typeof(PARTS_COLOR), value, true);
                    fixed(MaidParts.PartsColor *ptr = &array[(int)parts_COLOR2])
                    {
                        ptr->m_bUse              = f_brRead.ReadBoolean();
                        ptr->m_nMainHue          = f_brRead.ReadInt32();
                        ptr->m_nMainChroma       = f_brRead.ReadInt32();
                        ptr->m_nMainBrightness   = f_brRead.ReadInt32();
                        ptr->m_nMainContrast     = f_brRead.ReadInt32();
                        ptr->m_nShadowRate       = f_brRead.ReadInt32();
                        ptr->m_nShadowHue        = f_brRead.ReadInt32();
                        ptr->m_nShadowChroma     = f_brRead.ReadInt32();
                        ptr->m_nShadowBrightness = f_brRead.ReadInt32();
                        ptr->m_nShadowContrast   = f_brRead.ReadInt32();
                    }
                }
            }
            return(array);
        }