Пример #1
0
        public void Save(string mypath)
        {
            BinaryWriter binaryWriter = new BinaryWriter(File.Open(mypath, FileMode.Create));

            RoseFile.WriteFString(ref binaryWriter, this.formatCode, 4);
            binaryWriter.Write(0);
            binaryWriter.Write(this.rowCount);
            binaryWriter.Write(this.columnCount);
            binaryWriter.Write(this.RowHeight);
            for (int i = 0; i < this.columnCount + 1; i++)
            {
                binaryWriter.Write(this.column[i].width);
            }
            for (int i = 0; i < this.columnCount + 1; i++)
            {
                RoseFile.WriteSString(ref binaryWriter, this.column[i].title);
            }
            for (int i = 0; i < this.rowCount - 1; i++)
            {
                RoseFile.WriteSString(ref binaryWriter, this.cell[i, 0]);
            }
            long position = binaryWriter.BaseStream.Position;

            binaryWriter.BaseStream.Seek(4L, SeekOrigin.Begin);
            binaryWriter.Write((int)position);
            binaryWriter.Seek((int)position, SeekOrigin.Begin);
            for (int i = 0; i < this.rowCount - 1; i++)
            {
                for (int j = 0; j < this.columnCount - 1; j++)
                {
                    RoseFile.WriteSString(ref binaryWriter, this.cell[i, j + 1]);
                }
            }
            binaryWriter.Close();
        }
Пример #2
0
        public void Save(string filePath)
        {
            this.Path = filePath;
            BinaryWriter bw = new BinaryWriter(File.Open(filePath, FileMode.Create));

            bw.Write((short)this.listDDS.Count);
            int totalElementCount = 0;

            this.listDDS.ForEach(delegate(TSI.DDS dds)
            {
                RoseFile.WriteSString(ref bw, dds.Path);
                bw.Write(dds.ColourKey);
                totalElementCount += dds.ListDDS_element.Count;
            });
            bw.Write((short)totalElementCount);
            this.listDDS.ForEach(delegate(TSI.DDS dds)
            {
                bw.Write((short)dds.ListDDS_element.Count);
                dds.ListDDS_element.ForEach(delegate(TSI.DDS.DDSElement dds_element)
                {
                    bw.Write(dds_element.OwnerId);
                    bw.Write(dds_element.X);
                    bw.Write(dds_element.Y);
                    bw.Write(dds_element.Width + dds_element.X);
                    bw.Write(dds_element.Height + dds_element.Y);
                    bw.Write(dds_element.Color);
                    RoseFile.WriteFString(ref bw, dds_element.Name, 32);
                });
            });
            bw.Close();
        }
Пример #3
0
        public void Save(string path)
        {
            BinaryWriter binaryWriter = new BinaryWriter(File.Open(path, FileMode.Create));

            RoseFile.WriteFString(ref binaryWriter, "ZMO0002", 8);
            binaryWriter.Write(this.FPS);
            binaryWriter.Write(this.frameCount);
            binaryWriter.Write(this.channelCount);
            for (int i = 0; i < this.channelCount; i++)
            {
                binaryWriter.Write((int)this.listChannel[i].trackType);
                binaryWriter.Write(this.listChannel[i].trackID);
            }
            for (int i = 0; i < this.frameCount; i++)
            {
                for (int j = 0; j < this.channelCount; j++)
                {
                    if (this.listChannel[j].trackType == ZMO.TrackType.TRACK_TYPE_NORMAL)
                    {
                        RoseFile.WriteVector3(ref binaryWriter, this.listChannel[j].normal[i]);
                    }
                    else if (this.listChannel[j].trackType == ZMO.TrackType.TRACK_TYPE_ROTATION)
                    {
                        RoseFile.WriteVector4(ref binaryWriter, this.listChannel[j].rotation[i]);
                    }
                    else if (this.listChannel[j].trackType == ZMO.TrackType.TRACK_TYPE_POSITION)
                    {
                        RoseFile.WriteVector3(ref binaryWriter, this.listChannel[j].position[i]);
                    }
                    else if (this.listChannel[j].trackType == ZMO.TrackType.TRACK_TYPE_ALPHA)
                    {
                        binaryWriter.Write(this.listChannel[j].alpha[i]);
                    }
                    else if (this.listChannel[j].trackType == ZMO.TrackType.TRACK_TYPE_UV1)
                    {
                        RoseFile.WriteVector2(ref binaryWriter, this.listChannel[j].uv1[i]);
                    }
                    else if (this.listChannel[j].trackType == ZMO.TrackType.TRACK_TYPE_UV2)
                    {
                        RoseFile.WriteVector2(ref binaryWriter, this.listChannel[j].uv1[i]);
                    }
                    else if (this.listChannel[j].trackType == ZMO.TrackType.TRACK_TYPE_UV3)
                    {
                        RoseFile.WriteVector2(ref binaryWriter, this.listChannel[j].uv1[i]);
                    }
                    else if (this.listChannel[j].trackType == ZMO.TrackType.TRACK_TYPE_UV4)
                    {
                        RoseFile.WriteVector2(ref binaryWriter, this.listChannel[j].uv1[i]);
                    }
                    else if (this.listChannel[j].trackType == ZMO.TrackType.TRACK_TYPE_TEXTUREANIM)
                    {
                        binaryWriter.Write(this.listChannel[j].textureAnim[i]);
                    }
                    else if (this.listChannel[j].trackType == ZMO.TrackType.TRACK_TYPE_SCALE)
                    {
                        binaryWriter.Write(this.listChannel[j].scale[i]);
                    }
                }
            }
            binaryWriter.Write(ZMO.unknowData);
            binaryWriter.Close();
        }