コード例 #1
0
ファイル: InterpTracks.cs プロジェクト: Dybuk/ME3Explorer
 public void LoadData()
 {
     BitConverter.IsLittleEndian = true;
     List<PropertyReader.Property> props = PropertyReader.getPropList(pcc, pcc.Exports[index].Data);
     foreach (PropertyReader.Property p in props)
     {
         if (pcc.getNameEntry(p.Name) == "FloatTrack")
             FloatTrack = GetCurveFloat(p, pcc);
         if(pcc.getNameEntry(p.Name) == "CurveTension")
             CurveTension = BitConverter.ToSingle(p.raw, 24);
     }
 }
コード例 #2
0
ファイル: InterpTracks.cs プロジェクト: Dybuk/ME3Explorer
 public static InterpCurveFloat GetCurveFloat(PropertyReader.Property p, PCCObject pcc)
 {
     InterpCurveFloat CurveFloat = new InterpCurveFloat();
     CurveFloat.Points = new List<InterpCurvePointFloat>();
     int pos = 60;
     int count = BitConverter.ToInt32(p.raw, 56);
     for (int j = 0; j < count; j++)
     {
         List<PropertyReader.Property> p2 = PropertyReader.ReadProp(pcc, p.raw, pos);
         InterpCurvePointFloat point = new InterpCurvePointFloat();
         for (int i = 0; i < p2.Count(); i++)
         {
             if (pcc.getNameEntry(p2[i].Name) == "InVal")
                 point.InVal = BitConverter.ToSingle(p2[i].raw, 24);
             else if (pcc.getNameEntry(p2[i].Name) == "OutVal")
             {
                 point.OutVal = BitConverter.ToSingle(p2[i].raw, 24);
             }
             else if (pcc.getNameEntry(p2[i].Name) == "ArriveTangent")
             {
                 point.ArriveTangent = BitConverter.ToSingle(p2[i].raw, 24);
             }
             else if (pcc.getNameEntry(p2[i].Name) == "LeaveTangent")
             {
                 point.LeaveTangent = BitConverter.ToSingle(p2[i].raw, 24);
             }
             else if (pcc.getNameEntry(p2[i].Name) == "InterpMode")
                 point.InterpMode = new byteprop(p2[i].raw, "EInterpCurveMode", new string[] { "CIM_Linear", "CIM_CurveAuto", "CIM_Constant", "CIM_CurveUser", "CIM_CurveBreak", "CIM_CurveAutoClamped" });
             pos += p2[i].raw.Length;
         }
         CurveFloat.Points.Add(point);
     }
     return CurveFloat;
 }