public override void Serialize(BSWriter writer)
        {
            base.Serialize(writer);

            writer.Write(this.SoundSet.Count);
            if (this.SoundSet.Count == 0)
            {
                return;
            }

            writer.Write(this.UnkUInt06);
            writer.Write(this.UnkUInt07);
            writer.Write(this.UnkUInt08);
            writer.Write(this.UnkFloat02);
            writer.Write(this.UnkFloat03);
            writer.Write(this.UnkUInt09);
            writer.Write(this.UnkUInt10);
            writer.Write(this.UnkUInt11);
            writer.Write(this.UnkUInt12);
            writer.Write(this.UnkUInt13);
            writer.Write(this.UnkUInt14);

            foreach (var item in this.SoundSet)
            {
                writer.Serialize(item);
            }
        }
Example #2
0
 public void Serialize(BSWriter writer)
 {
     writer.Write(this.Time);
     writer.Write(this.Type);
     writer.Write(this.Param01);
     writer.Write(this.Param02);
 }
Example #3
0
        public override void Serialize(BSWriter writer)
        {
            base.Serialize(writer);

            writer.Write(this.UnkUInt06);
            writer.Write(this.UnkUInt07);
            writer.Write(this.UnkUInt08);

            writer.Write(this.GradientKeys.Count);
            foreach (var item in this.GradientKeys)
            {
                writer.Serialize(item);
            }

            if ((this.UnkUInt07 & 4) != 0)
            {
                writer.Write(this.CurveKeys.Count);
                foreach (var item in this.CurveKeys)
                {
                    writer.Serialize(item);
                }
            }

            writer.Write(this.UnkUInt09);
            writer.Write(this.UnkUInt10);
            writer.Write(this.UnkUInt11);
            writer.Write(this.UnkUInt12);
            writer.Write(this.UnkUInt13);
            writer.Write(this.UnkUInt14);
            writer.Write(this.UnkUInt15);
            writer.Write(this.UnkUInt16);
            writer.Write(this.UnkUInt17);
        }
        public override void Serialize(BSWriter writer)
        {
            base.Serialize(writer);

            writer.Write(this.UnkFloat02);
            writer.Write(this.UnkFloat03);
            writer.Write(this.UnkFloat04);
            writer.Write(this.UnkFloat05);
            writer.Write(this.UnkFloat06);
            writer.Write(this.UnkFloat07);

            writer.Write(this.Textures.Count);
            for (int i = 0; i < this.Textures.Count; i++)
            {
                var texture = this.Textures[i];
                if (string.IsNullOrWhiteSpace(texture))
                {
                    writer.Write((byte)0);
                    continue;
                }

                writer.Write((byte)1);
                writer.Write(texture);
            }
        }
Example #5
0
 public void Serialize(BSWriter writer)
 {
     writer.Write((short)this.Type);
     writer.Write((short)this.Category);
     writer.Write(this.Name);
     writer.Write(this.Int01);
     writer.Write(this.Int02);
 }
Example #6
0
        public override void Serialize(BSWriter writer)
        {
            base.Serialize(writer);

            writer.Write(this.UnkUInt06);
            writer.Write(this.Path);
            writer.Write(this.UnkUInt07);
        }
Example #7
0
 public void Serialize(BSWriter writer)
 {
     writer.Write(this.Name);
     writer.Write(this.MeshIndices.Count);
     foreach (var item in this.MeshIndices)
     {
         writer.Write(item);
     }
 }
 public void Serialize(BSWriter writer)
 {
     writer.Write(this.Name);
     writer.Write(this.AniTypeDataList.Count);
     foreach (var item in this.AniTypeDataList)
     {
         writer.Serialize(item);
     }
 }
 public void Serialize(BSWriter writer)
 {
     writer.Write(this.Name);
     writer.Write(this.Tracks.Count);
     foreach (var track in this.Tracks)
     {
         writer.Write(1);
         writer.Serialize(track);
     }
 }
Example #10
0
        public void Serialize(BSWriter writer, params object[] param)
        {
            var flag = (int)param[0];

            writer.Write(this.Path);
            if ((flag & 1) != 0)
            {
                writer.Write(this.Int01);
            }
        }
        public override void Serialize(BSWriter writer)
        {
            base.Serialize(writer);

            writer.Write(this.Particles.Count);
            foreach (var item in this.Particles)
            {
                writer.Serialize(item);
            }
        }
        public override void Serialize(BSWriter writer)
        {
            base.Serialize(writer);

            writer.Write(this.UnkUInt06);
            writer.Write(this.UnkUInt07);
            writer.Write(this.UnkUInt08);
            writer.Write(this.UnkUInt09);
            writer.Write(this.UnkUInt10);
            writer.Write(this.Matrix);
        }
Example #13
0
        public void Serialize(BSWriter writer)
        {
            writer.Write(this.Type);
            writer.Write((int)this.AnimationType);
            writer.Write(this.Name);

            writer.Write(this.ModData.Count);
            foreach (var data in this.ModData)
            {
                writer.Write((int)data.Type);
                writer.Serialize(data);
            }
        }
Example #14
0
 public virtual void Serialize(BSWriter writer)
 {
     writer.Write(this.UnkFloat01);
     writer.Write(this.UnkUInt01);
     writer.Write(this.UnkUInt02);
     writer.Write(this.UnkUInt03);
     writer.Write(this.UnkUInt04);
     writer.Write(this.UnkUInt05);
     writer.Write(this.UnkByte01);
     writer.Write(this.UnkByte02);
     writer.Write(this.UnkByte03);
     writer.Write(this.UnkByte04);
 }
Example #15
0
 public void Save(string path)
 {
     // Override file structure
     using (var stream = new FileStream(path, FileMode.Create, FileAccess.Write))
         using (var writer = new BSWriter(stream))
         {
             writer.Write(LatestSignature, 12);
             writer.Write(Materials.Count);
             foreach (var mtrl in Materials)
             {
                 writer.Serialize(mtrl);
             }
         }
 }
Example #16
0
 public void Serialize(BSWriter writer)
 {
     writer.Write(this.IsEnabled ? 1 : 0);
     writer.Write(this.Path);
     writer.Write(this.BoneRelative);
     writer.Write(this.Position);
     writer.Write(this.BirthTime);
     writer.Write(this.UnkByte01);
     writer.Write(this.UnkByte02);
     writer.Write(this.UnkByte03);
     writer.Write(this.UnkByte04);
     if (this.UnkByte04 == 1)
     {
         writer.Write(this.UnkVector01);
     }
 }
        public void Serialize(BSWriter writer)
        {
            writer.Write((int)this.Type);
            writer.Write(this.PrimAnimationIndex);
            writer.Write(this.Events.Count);
            foreach (var item in this.Events)
            {
                writer.Serialize(item);
            }

            writer.Write(this.WalkGraph.Count);
            writer.Write(this.WalkLength);
            foreach (var item in this.WalkGraph)
            {
                writer.Write(item);
            }
        }
Example #18
0
        public void Save(string path)
        {
            // Override file structure
            using (var stream = new FileStream(path, FileMode.Create, FileAccess.Write))
                using (var writer = new BSWriter(stream))
                {
                    // Signature
                    writer.Write(LatestSignature, 12);

                    // Reserved file offsets
                    writer.Write(0); // CollisionOffset
                    writer.Write(0); // ResourceOffset

                    // Unknown
                    writer.Write(Int01);
                    writer.Write(Int02);
                    writer.Write(Int03);
                    writer.Write(Int04);
                    writer.Write(Int05);

                    // Object Info
                    writer.Serialize(this.ObjectInfo);

                    // FileOffset.Collision
                    var collisionOffset = (int)stream.Position;
                    writer.Write(CollisionResourcePath);

                    // FileOffset.Resources
                    var resourceOffset = (int)stream.Position;
                    writer.Write(ResourceSet.Count);
                    for (int i = 0; i < ResourceSet.Count; i++)
                    {
                        writer.Write(ResourceSet[i]);
                    }

                    // write offsets
                    writer.Seek(12, SeekOrigin.Begin);
                    writer.Write(collisionOffset);
                    writer.Write(resourceOffset);
                }
        }
Example #19
0
        public void Serialize(BSWriter writer)
        {
            writer.Write(this.Name);
            writer.Write(this.Diffuse);
            writer.Write(this.Ambient);
            writer.Write(this.Specular);
            writer.Write(this.Emissive);
            writer.Write(this.UnkFloat01);
            writer.Write(this.Flags);
            writer.Write(this.DiffuseMapPath);
            writer.Write(this.UnkFloat02);
            writer.Write(this.UnkByte01);
            writer.Write(this.UnkByte02);
            writer.Write(this.IsAbsolutePath);

            if ((this.Flags & (uint)PrimMtrlFlag.Bit14) != 0)
            {
                writer.Write(this.NormalMapPath);
                writer.Write(this.UnkUInt01);
            }
        }
        public void Serialize(BSWriter writer, params object[] param)
        {
            var objectInfoType = (ObjectGeneralType)param[0];

            // This could change if other file than JMXVRES use this class
            if (objectInfoType == ObjectGeneralType.Character || objectInfoType == ObjectGeneralType.Item)
            {
                writer.Write(UnkUInt01);
                writer.Write(UnkUInt02);
                writer.Write(AttachMethod);
                writer.Write(Slots.Count);
                for (int i = 0; i < Slots.Count; i++)
                {
                    writer.Write((uint)Slots[i].Type);
                    writer.Write(Slots[i].MeshSetIndex);
                }
                if (objectInfoType == ObjectGeneralType.Character)
                {
                    writer.Write(nComboNum);
                }
            }
        }
Example #21
0
        public void Save(string Path)
        {
            // Override file structure
            using (var stream = new FileStream(Path, FileMode.Create, FileAccess.Write))
                using (var writer = new BSWriter(stream))
                {
                    // Signature
                    writer.Write(LatestSignature, 12);

                    // Reserved offsets
                    writer.Write(0); // MaterialOffset
                    writer.Write(0); // MeshOffset
                    writer.Write(0); // SkeletonOffset
                    writer.Write(0); // AnimationOffset
                    writer.Write(0); // MeshGroupOffset
                    writer.Write(0); // AnimationGroupOffset
                    writer.Write(0); // ModPaletteOffset
                    writer.Write(0); // CollisionOffset

                    // Unknown Flags
                    writer.Write(Flag01);
                    writer.Write(Flag02);
                    writer.Write(Flag03);
                    writer.Write(Flag04);
                    writer.Write(Flag05);

                    // Object Info
                    writer.Serialize(this.ObjectInfo);

                    writer.Write(UnkBuffer);

                    // FileOffset.Collision
                    var collisionOffset = (int)stream.Position;
                    writer.Write(CollisionMesh);
                    writer.Write(this.CollisionBox01);
                    writer.Write(this.CollisionBox02);
                    writer.Write(UseCollisionMatrix ? 1u : 0u);
                    if (UseCollisionMatrix)
                    {
                        writer.Write(this.CollisionMatrix);
                    }

                    var materialOffset = (int)stream.Position;
                    writer.Write(MaterialSet.Count);
                    foreach (var item in MaterialSet)
                    {
                        writer.Serialize(item);
                    }

                    // FileOffset.Mesh
                    var meshOffset = (int)stream.Position;
                    writer.Write(MeshSet.Count);
                    foreach (var item in MeshSet)
                    {
                        writer.SerializeParameterized(item, this.Flag01);
                    }

                    // FileOffset.Animation
                    var animationOffset = (int)stream.Position;
                    writer.Write(AnimationTypeVersion);
                    writer.Write(AnimationTypeUserDefine);
                    writer.Write(AnimationSet.Count);
                    foreach (var item in AnimationSet)
                    {
                        writer.Serialize(item);
                    }

                    // FileOffset.Skeleton
                    var skeletonOffset = (int)stream.Position;
                    writer.Write(HasSkeleton ? 1u : 0u);
                    if (HasSkeleton)
                    {
                        writer.Write(SkeletonPath);
                        writer.Write(AttachmentBone);
                    }

                    // FileOffset.MeshGroup
                    var meshGroupOffset = (int)stream.Position;
                    writer.Write(MeshGroups.Count);
                    foreach (var group in MeshGroups)
                    {
                        writer.Serialize(group);
                    }

                    // FileOffset.AnimationGroup
                    var aniGroupOffset = (int)stream.Position;
                    writer.Write(AnimationGroups.Count);
                    foreach (var item in AnimationGroups)
                    {
                        writer.Serialize(item);
                    }

                    // FileOffset.ModPalette
                    var modPaletteOffset = (int)stream.Position;
                    writer.Write(SystemModSets.Count);
                    foreach (var set in SystemModSets)
                    {
                        writer.Serialize(set);
                    }
                    writer.Write(AniModSets.Count);
                    foreach (var set in AniModSets)
                    {
                        writer.Serialize(set);
                    }

                    // ResAttachable
                    writer.SerializeParameterized(ResourceAttachable, ObjectInfo.Type);

                    // Overwrite offsets now that we know them all
                    writer.Seek(12, SeekOrigin.Begin);
                    writer.Write(materialOffset);
                    writer.Write(meshOffset);
                    writer.Write(skeletonOffset);
                    writer.Write(animationOffset);
                    writer.Write(meshGroupOffset);
                    writer.Write(aniGroupOffset);
                    writer.Write(modPaletteOffset);
                    writer.Write(collisionOffset);
                }
        }
 public void Serialize(BSWriter writer)
 {
     writer.Write(this.Path);
 }
Example #23
0
 public void Serialize(BSWriter writer)
 {
     writer.Write(this.Time);
     writer.Write(this.Value);
 }
Example #24
0
 public void Serialize(BSWriter writer)
 {
     writer.Write(this.Path);
     writer.Write(this.Time);
     writer.Write(this.Event);
 }