Example #1
0
        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");
        }
Example #2
0
        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();
            }
        }
Example #3
0
        public override void Deserialize(FxArchive Owner, BinaryReader Reader)
        {
            base.Deserialize(Owner, Reader);

            Phoneme = (FxPhoneme)Reader.ReadUInt32();
            Name.ReadFromFile(Owner, Reader);
            Amount = Reader.ReadSingle();
        }
Example #4
0
        public override void Serialize(FxArchive Owner, BinaryWriter Writer)
        {
            base.Serialize(Owner, Writer);

            Writer.Write((uint)Phoneme);
            Name.WriteToFile(Owner, Writer);
            Writer.Write(Amount);
        }
Example #5
0
        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);
            }
        }
Example #7
0
        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);
            }
        }
Example #9
0
        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);
            }
        }
Example #10
0
        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);
            }
        }
Example #11
0
        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();
            }
        }
Example #12
0
        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);
            }
        }
Example #14
0
        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;
            }
        }
Example #15
0
        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
        }
Example #16
0
        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;
            }
        }
Example #18
0
        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);
        }
Example #19
0
        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);
        }
Example #20
0
        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;
            }
        }
Example #21
0
        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();
        }
Example #22
0
 public void SetIndex(FxArchive OwningArchive, uint Index)
 {
     Text = OwningArchive.GetFromStringTable(Index);
 }
Example #23
0
        public override void PopulateStringTable(FxArchive Owner)
        {
            base.PopulateStringTable(Owner);

            Name.AddToStringTable(Owner);
        }
Example #24
0
        public override void Serialize(FxArchive Owner, BinaryWriter Writer)
        {
            base.Serialize(Owner, Writer);

            Name.WriteToFile(Owner, Writer);
        }
Example #25
0
        public override void Deserialize(FxArchive Owner, BinaryReader Reader)
        {
            base.Deserialize(Owner, Reader);

            Name.ReadFromFile(Owner, Reader);
        }
Example #26
0
        public override void Serialize(FxArchive Owner, BinaryWriter Writer)
        {
            base.Serialize(Owner, Writer);

            Writer.Write(Unk0);
        }
Example #27
0
        public override void Deserialize(FxArchive Owner, BinaryReader Reader)
        {
            base.Deserialize(Owner, Reader);

            Unk0 = Reader.ReadUInt32();
        }
Example #28
0
 public virtual void PopulateStringTable(FxArchive Owner)
 {
 }
Example #29
0
 // Save the object
 public virtual void Serialize(FxArchive Owner, BinaryWriter Writer)
 {
 }
Example #30
0
 // Load the object
 public virtual void Deserialize(FxArchive Owner, BinaryReader Reader)
 {
 }