public override void PopulateStringTable(FxArchive Owner) { base.PopulateStringTable(Owner); foreach (FxMasterBoneListEntry Entry in MasterBoneList) { Entry.PopulateStringTable(Owner); } foreach (FxCompiledFaceGraphNode GraphNode in FaceGraphNodes) { GraphNode.PopulateStringTable(Owner); } // NB: // Unk03s is empty foreach (FxPhonToNameMap Entry in PhoneToNameMap) { Entry.PopulateStringTable(Owner); } // Seems to be standard? Owner.AddToStringTable("Default"); }
public override void Deserialize(FxArchive Owner, BinaryReader reader) { base.Deserialize(Owner, reader); Unk10 = reader.ReadUInt32(); // Unknown; could be data about published or not. // Read FxMasterBoneListEntries uint NumMasterBoneEntries = reader.ReadUInt32(); MasterBoneList = new FxMasterBoneListEntry[NumMasterBoneEntries]; for (int i = 0; i < MasterBoneList.Length; i++) { FxMasterBoneListEntry DataObject = new FxMasterBoneListEntry(); DataObject.ReadFromFile(Owner, reader); MasterBoneList[i] = DataObject; } // Read FxCompiledFaceGraphNodes uint NumFaceGraphNodes = reader.ReadUInt32(); FaceGraphNodes = new FxCompiledFaceGraphNode[NumFaceGraphNodes]; for (int i = 0; i < FaceGraphNodes.Length; i++) { FxCompiledFaceGraphNode DataObject = new FxCompiledFaceGraphNode(); DataObject.ReadFromFile(Owner, reader); FaceGraphNodes[i] = DataObject; } uint NumUnk2s = reader.ReadUInt32(); Unk03s = new FxUnk3[NumUnk2s]; for (int i = 0; i < Unk03s.Length; i++) { FxUnk3 ClassObject = new FxUnk3(); ClassObject.ReadFromFile(reader); Unk03s[i] = ClassObject; } Unk04 = reader.ReadUInt32(); Unk05 = reader.ReadUInt32(); Unk06 = reader.ReadUInt32(); uint PhonToNameMapCount = reader.ReadUInt32(); PhoneToNameMap = new FxPhonToNameMap[PhonToNameMapCount]; for (int i = 0; i < PhoneToNameMap.Length; i++) { FxPhonToNameMap PhonToName = new FxPhonToNameMap(); PhonToName.Deserialize(Owner, reader); PhoneToNameMap[i] = PhonToName; } uint NumUnk3 = reader.ReadUInt32(); Unk3s = new uint[NumUnk3]; for (int i = 0; i < Unk3s.Length; i++) { Unk3s[i] = reader.ReadUInt32(); } }
public override void Deserialize(FxArchive Owner, BinaryReader Reader) { base.Deserialize(Owner, Reader); Phoneme = (FxPhoneme)Reader.ReadUInt32(); Name.ReadFromFile(Owner, Reader); Amount = Reader.ReadSingle(); }
public override void Serialize(FxArchive Owner, BinaryWriter Writer) { base.Serialize(Owner, Writer); Writer.Write((uint)Phoneme); Name.WriteToFile(Owner, Writer); Writer.Write(Amount); }
public override void PopulateStringTable(FxArchive Owner) { base.PopulateStringTable(Owner); foreach (FxAnimCurve Curve in Curves) { Curve.PopulateStringTable(Owner); } }
public override void PopulateStringTable(FxArchive Owner) { base.PopulateStringTable(Owner); foreach (FxAnim Animation in Animations) { Animation.PopulateStringTable(Owner); } }
public override void PopulateStringTable(FxArchive Owner) { base.PopulateStringTable(Owner); ActorName.AddToStringTable(Owner); foreach (FxAnimGroup Group in AnimGroups) { Group.PopulateStringTable(Owner); } }
public override void Serialize(FxArchive Owner, BinaryWriter Writer) { base.Serialize(Owner, Writer); // Write animations Writer.Write(Animations.Length); foreach (FxAnim Animation in Animations) { Animation.Serialize(Owner, Writer); } }
public void WriteToFile(FxArchive Owner, BinaryWriter writer) { writer.Write(NodeIndex); writer.Write((uint)LinkFnType); // Write parameters writer.Write(Parameters.Length); foreach (float Parameter in Parameters) { writer.Write(Parameter); } }
public override void Serialize(FxArchive Owner, BinaryWriter Writer) { base.Serialize(Owner, Writer); Writer.Write(AnimSet_Unk04); // Write Groups Writer.Write(AnimGroups.Length); foreach (FxAnimGroup Group in AnimGroups) { Group.Serialize(Owner, Writer); } }
public void ReadFromFile(FxArchive Owner, BinaryReader reader) { NodeIndex = reader.ReadUInt32(); LinkFnType = (FxLinkFnType)reader.ReadUInt32(); // Read parameters uint NumParameters = reader.ReadUInt32(); Parameters = new float[NumParameters]; for (int i = 0; i < NumParameters; i++) { Parameters[i] = reader.ReadSingle(); } }
public void ReadFromFile(BinaryReader reader) { uint NumArchives = reader.ReadUInt32(); Archives = new List <FxArchive>(); for (int i = 0; i < NumArchives; i++) { uint ArchiveSize = reader.ReadUInt32(); FxArchive AnimSetObject = new FxArchive(); AnimSetObject.ReadFromFile <T>(reader); Archives.Add(AnimSetObject); } }
public void WriteToFile(FxArchive Owner, BinaryWriter writer) { BoneName.WriteToFile(Owner, writer); Transform.WriteToFile(writer); writer.Write(UnkQuaternion); writer.Write(PossibleIdx2); writer.Write(Unk0); writer.Write(Links.Length); foreach (FxBoneLink Link in Links) { Link.WriteToFile(writer); } }
public override void Deserialize(FxArchive Owner, BinaryReader Reader) { base.Deserialize(Owner, Reader); // Read animations uint NumAnims = Reader.ReadUInt32(); Animations = new FxAnim[NumAnims]; for (int x = 0; x < NumAnims; x++) { FxAnim AnimObject = new FxAnim(); AnimObject.Deserialize(Owner, Reader); Animations[x] = AnimObject; } }
public override void Deserialize(FxArchive Owner, BinaryReader Reader) { base.Deserialize(Owner, Reader); uint NumCurves = Reader.ReadUInt32(); // Read animation curves Curves = new FxAnimCurve[NumCurves]; for (int i = 0; i < NumCurves; i++) { FxAnimCurve AnimCurve = new FxAnimCurve(); AnimCurve.Deserialize(Owner, Reader); Curves[i] = AnimCurve; } // FxAnimKeys Storage. This contains all curve AnimKeys. uint NumAnimKeys = Reader.ReadUInt32(); FxAnimKey[] AnimKeyStorage = new FxAnimKey[NumAnimKeys]; for (int i = 0; i < NumAnimKeys; i++) { FxAnimKey NewKey = new FxAnimKey(); NewKey.ReadFromFile(Reader); AnimKeyStorage[i] = NewKey; } // FxAnimCurves - Find out how many Keys for each curve uint NumCurves2 = Reader.ReadUInt32(); uint CurrentUsedKeys = 0; for (int i = 0; i < NumCurves2; i++) { uint KeysPerCurve = Reader.ReadUInt32(); Curves[i].AnimKeys = new FxAnimKey[KeysPerCurve]; Array.Copy(AnimKeyStorage, CurrentUsedKeys, Curves[i].AnimKeys, 0, KeysPerCurve); CurrentUsedKeys += KeysPerCurve; } // Ending data - not sure what all this is.. Unk0 = Reader.ReadSingle(); // usually 0.16 Unk1 = Reader.ReadSingle(); // usually 0.22 Unk2 = Reader.ReadUInt32(); // Next three are zero Unk3 = Reader.ReadUInt32(); Unk4 = Reader.ReadUInt32(); Unk5 = Reader.ReadUInt32(); // Bottom is usually -1 }
public override void Serialize(FxArchive Owner, BinaryWriter writer) { base.Serialize(Owner, writer); writer.Write(Unk10); // Write FxMasterBoneList writer.Write(MasterBoneList.Length); foreach (FxMasterBoneListEntry Entry in MasterBoneList) { Entry.WriteToFile(Owner, writer); } // Write FxCompiledFaceGraphNodes writer.Write(FaceGraphNodes.Length); foreach (FxCompiledFaceGraphNode GraphNode in FaceGraphNodes) { GraphNode.WriteToFile(Owner, writer); } // Write Unk03 writer.Write(Unk03s.Length); foreach (FxUnk3 MapNode in Unk03s) { MapNode.WriteToFile(writer); } writer.Write(Unk04); writer.Write(Unk05); writer.Write(Unk06); // Write PhonemeMapToNode writer.Write(PhoneToNameMap.Length); foreach (FxPhonToNameMap Entry in PhoneToNameMap) { Entry.Serialize(Owner, writer); } // Write Unk3s writer.Write(Unk3s.Length); foreach (uint Value in Unk3s) { writer.Write(Value); } }
public void ReadFromFile(FxArchive Owner, BinaryReader reader) { BoneName.ReadFromFile(Owner, reader); Transform = new FxBoneTransform(); Transform.ReadFromFile(reader); UnkQuaternion = reader.ReadBytes(16); PossibleIdx2 = reader.ReadUInt32(); Unk0 = reader.ReadSingle(); uint NumLinks = reader.ReadUInt32(); Links = new FxBoneLink[NumLinks]; for (int i = 0; i < NumLinks; i++) { FxBoneLink LinkObject = new FxBoneLink(); LinkObject.ReadFromFile(reader); Links[i] = LinkObject; } }
public void WriteToFile(FxArchive OwningArchive, BinaryWriter writer) { writer.Write((uint)NodeType); Name.WriteToFile(OwningArchive, writer); writer.Write(NodeMin); writer.Write(OneOverNodeMin); writer.Write(NodeMax); writer.Write(OneOverNodeMax); writer.Write((uint)InputOperation); // Write Links writer.Write(InputLinks.Length); foreach (FxCompiledFaceGraphLink GraphLink in InputLinks) { GraphLink.WriteToFile(OwningArchive, writer); } writer.Write(ArrayUnk1); }
public override void Serialize(FxArchive Owner, BinaryWriter Writer) { base.Serialize(Owner, Writer); // Cache off number of animation keys int NumAnimKeys = 0; // Write AnimCurves Writer.Write(Curves.Length); foreach (FxAnimCurve Curve in Curves) { Curve.Serialize(Owner, Writer); NumAnimKeys += Curve.AnimKeys.Length; } // Write FxAnimKeys storage Writer.Write(NumAnimKeys); foreach (FxAnimCurve Curve in Curves) { foreach (FxAnimKey Key in Curve.AnimKeys) { Key.WriteToFile(Writer); } } // Write Curves number of animations Writer.Write(Curves.Length); foreach (FxAnimCurve Curve in Curves) { Writer.Write(Curve.AnimKeys.Length); } // Write footer Writer.Write(Unk0); Writer.Write(Unk1); Writer.Write(Unk2); Writer.Write(Unk3); Writer.Write(Unk4); Writer.Write(Unk5); }
public override void Deserialize(FxArchive Owner, BinaryReader Reader) { base.Deserialize(Owner, Reader); AnimSet_Unk04 = Reader.ReadUInt32(); // Unknown; could be data about published or not. // This is not stored in the file ActorName.SetIndex(Owner, 1); // Read groups. uint NumAnimGroups = Reader.ReadUInt32(); AnimGroups = new FxAnimGroup[NumAnimGroups]; for (int i = 0; i < NumAnimGroups; i++) { FxAnimGroup GroupObject = new FxAnimGroup(); GroupObject.Deserialize(Owner, Reader); AnimGroups[i] = GroupObject; } }
public void ReadFromFile(FxArchive OwningArchive, BinaryReader reader) { NodeType = (FxCompiledFaceGraphNodeType)reader.ReadUInt32(); Name.ReadFromFile(OwningArchive, reader); NodeMin = reader.ReadSingle(); OneOverNodeMin = reader.ReadSingle(); NodeMax = reader.ReadSingle(); OneOverNodeMax = reader.ReadSingle(); InputOperation = (FxInputOp)reader.ReadUInt32(); // Read Links uint ArrayUnk0 = reader.ReadUInt32(); InputLinks = new FxCompiledFaceGraphLink[ArrayUnk0]; for (int i = 0; i < ArrayUnk0; i++) { FxCompiledFaceGraphLink LinkObject = new FxCompiledFaceGraphLink(); LinkObject.ReadFromFile(OwningArchive, reader); InputLinks[i] = LinkObject; } ArrayUnk1 = reader.ReadUInt32(); }
public void SetIndex(FxArchive OwningArchive, uint Index) { Text = OwningArchive.GetFromStringTable(Index); }
public override void PopulateStringTable(FxArchive Owner) { base.PopulateStringTable(Owner); Name.AddToStringTable(Owner); }
public override void Serialize(FxArchive Owner, BinaryWriter Writer) { base.Serialize(Owner, Writer); Name.WriteToFile(Owner, Writer); }
public override void Deserialize(FxArchive Owner, BinaryReader Reader) { base.Deserialize(Owner, Reader); Name.ReadFromFile(Owner, Reader); }
public override void Serialize(FxArchive Owner, BinaryWriter Writer) { base.Serialize(Owner, Writer); Writer.Write(Unk0); }
public override void Deserialize(FxArchive Owner, BinaryReader Reader) { base.Deserialize(Owner, Reader); Unk0 = Reader.ReadUInt32(); }
public virtual void PopulateStringTable(FxArchive Owner) { }
// Save the object public virtual void Serialize(FxArchive Owner, BinaryWriter Writer) { }
// Load the object public virtual void Deserialize(FxArchive Owner, BinaryReader Reader) { }