Exemple #1
0
        static void BuildFlag()
        {
            bool[,] flags = new bool[36, 14];

            for (int x = 1, i = 0; x < 72; x += 2, i++)
            {
                for (int y = 5, j = 0; y < 33; y += 2, j++)
                {
                    string file = @"E:\Documents\ic10gd\Source\Code2015\bin\x86\Debug\terrain.lpk\tile_" + x.ToString("D2") + "_" + y.ToString("D2") + "_0.tdmp";

                    flags[i, j] = File.Exists(file);
                }
            }

            ContentBinaryWriter bw = new ContentBinaryWriter(File.Open(@"E:\Desktop\flags.dat", FileMode.OpenOrCreate));

            for (int i = 0; i < 36; i++)
            {
                for (int j = 0; j < 14; j++)
                {
                    bw.Write(flags[i, j]);
                }
            }

            bw.Close();
        }
Exemple #2
0
        static void BuildLandAreaHeight()
        {
            FileLocation        fl = new FileLocation(@"E:\Documents\ic10gd\Source\Code2015\bin\x86\Debug\terrain\terrain_l0.tdmp");
            ContentBinaryReader br = new ContentBinaryReader(fl);

            const int DW = 36 * 513;
            const int DH = 14 * 513;

            ushort[,] data = new ushort[DH, DW];

            for (int i = 0; i < DH; i++)
            {
                for (int j = 0; j < DW; j++)
                {
                    ushort v = br.ReadUInt16();
                    data[i, j] = (v > (ushort)(1600 * 7)) ? v : (ushort)0;
                }
            }
            ContentBinaryWriter bw = new ContentBinaryWriter(File.Open(@"E:\Desktop\land513.raw", FileMode.OpenOrCreate));

            for (int i = 0; i < DH; i++)
            {
                for (int j = 0; j < DW; j++)
                {
                    bw.Write(data[i, j]);
                }
            }
            bw.Close();
        }
        public override void Convert(ResourceLocation source, ResourceLocation dest)
        {
            ContentBinaryReader br = new ContentBinaryReader(source);

            BinaryDataReader data      = br.ReadBinaryData();
            float            xllcorner = data.GetDataSingle("xllcorner");
            float            yllcorner = data.GetDataSingle("yllcorner");

            int width  = data.GetDataInt32("width");
            int height = data.GetDataInt32("height");

            float[] demData = new float[height * width];


            int bits = data.GetDataInt32("bits", 32);

            ContentBinaryReader br2 = data.GetData("data");

            for (int i = 0; i < height; i++)
            {
                for (int j = 0; j < width; j++)
                {
                    demData[i * width + j] = br2.ReadSingle();
                }
            }

            br2.Close();

            data.Close();


            Half[] demData16 = Half.ConvertToHalf(demData);

            // =========================================================


            BinaryDataWriter result = new BinaryDataWriter();

            result.AddEntry("xllcorner", xllcorner);
            result.AddEntry("yllcorner", yllcorner);
            result.AddEntry("width", width);
            result.AddEntry("height", height);

            result.AddEntry("bits", 16);

            Stream dataStream = result.AddEntryStream("data");

            ContentBinaryWriter bw = new ContentBinaryWriter(dataStream);

            for (int i = 0; i < demData.Length; i++)
            {
                bw.Write(demData16[i].InternalValue);
            }

            bw.Close();

            bw = new ContentBinaryWriter(dest);
            bw.Write(result);
            bw.Close();
        }
Exemple #4
0
        public unsafe override void Convert(ResourceLocation source, ResourceLocation dest)
        {
            const int origWidth  = 64;
            const int origHeight = 64;
            const int Id         = 'S' << 24 | 'F' << 16 | 'N' << 8 | 'T';

            Font font = new Font(currentFont, FontSize);

            ContentBinaryWriter bw = new ContentBinaryWriter(dest);

            bw.Write(Id);
            bw.Write((int)0);
            bw.Write((int)byte.MaxValue);
            bw.Write((int)origWidth);
            bw.Write((int)origHeight);
            bw.Write(FontSize);

            for (char c = '\0'; c < 256; c++)
            {
                Bitmap bmp = new Bitmap(origWidth, origHeight);
                System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp);
                g.Clear(Color.Black);

                Size size = TextRenderer.MeasureText(c.ToString(), font);
                TextRenderer.DrawText(g, c.ToString(), font,
                                      new Rectangle(0, 0, origWidth, origHeight)
                                      , Color.White, Color.Black, TextFormatFlags.VerticalCenter | TextFormatFlags.HorizontalCenter);

                g.Dispose();

                BitmapData data = bmp.LockBits(new Rectangle(0, 0, origWidth, origHeight), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);

                byte *src = (byte *)data.Scan0;

                bw.Write((ushort)c);
                bw.Write(size.Width);
                bw.Write(size.Height);


                for (int i = 0; i < origHeight; i++)
                {
                    for (int j = 0; j < origWidth; j++)
                    {
                        byte red = *src++;
                        byte gr  = *src++;
                        byte bl  = *src++;
                        src++;

                        float lum = (red * 0.3f + gr * 0.59f + bl * 0.11f);
                        bw.Write((byte)lum);
                    }
                }

                bmp.UnlockBits(data);
                //bmp.Save(@"E:\Desktop\out\" + ((ushort)c).ToString() + ".png", ImageFormat.Png);
                bmp.Dispose();
            }
            bw.Close();
        }
Exemple #5
0
        public unsafe override void Convert(ResourceLocation source, ResourceLocation dest)
        {
            const int origWidth = 64;
            const int origHeight = 64;
            const int Id = 'S' << 24 | 'F' << 16 | 'N' << 8 | 'T';

            Font font = new Font(currentFont, FontSize);

            ContentBinaryWriter bw = new ContentBinaryWriter(dest);
            bw.Write(Id);
            bw.Write((int)0);
            bw.Write((int)byte.MaxValue);
            bw.Write((int)origWidth);
            bw.Write((int)origHeight);
            bw.Write(FontSize);
            
            for (char c = '\0'; c < 256; c++)
            {
                Bitmap bmp = new Bitmap(origWidth, origHeight);
                System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp);
                g.Clear(Color.Black);

                Size size = TextRenderer.MeasureText(c.ToString(), font);
                TextRenderer.DrawText(g, c.ToString(), font,
                    new Rectangle(0, 0, origWidth, origHeight)
                    , Color.White, Color.Black, TextFormatFlags.VerticalCenter | TextFormatFlags.HorizontalCenter);

                g.Dispose();

                BitmapData data = bmp.LockBits(new Rectangle(0, 0, origWidth, origHeight), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);

                byte* src = (byte*)data.Scan0;

                bw.Write((ushort)c);
                bw.Write(size.Width);
                bw.Write(size.Height);


                for (int i = 0; i < origHeight; i++)
                {
                    for (int j = 0; j < origWidth; j++)
                    {
                        byte red = *src++;
                        byte gr = *src++;
                        byte bl = *src++;
                        src++;

                        float lum = (red * 0.3f + gr * 0.59f + bl * 0.11f);
                        bw.Write((byte)lum);
                    }
                }
               
                bmp.UnlockBits(data);
                //bmp.Save(@"E:\Desktop\out\" + ((ushort)c).ToString() + ".png", ImageFormat.Png);
                bmp.Dispose();
            }
            bw.Close();
        }
        public override void Convert(ResourceLocation source, ResourceLocation dest)
        {
            ContentBinaryReader br = new ContentBinaryReader(source);

            BinaryDataReader data = br.ReadBinaryData();
            float xllcorner = data.GetDataSingle("xllcorner");
            float yllcorner = data.GetDataSingle("yllcorner");

            int width = data.GetDataInt32("width");
            int height = data.GetDataInt32("height");

            float[] demData = new float[height * width];


            int bits = data.GetDataInt32("bits", 32);

            ContentBinaryReader br2 = data.GetData("data");

            for (int i = 0; i < height; i++) 
            {
                for (int j = 0; j < width; j++) 
                {
                    demData[i * width + j] = br2.ReadSingle();
                }
            }

            br2.Close();

            data.Close();

            
            // =========================================================


            BinaryDataWriter result = new BinaryDataWriter();

            result.AddEntry("xllcorner", xllcorner);
            result.AddEntry("yllcorner", yllcorner);
            result.AddEntry("width", width);
            result.AddEntry("height", height);

            result.AddEntry("bits", 8);

            Stream dataStream = result.AddEntryStream("data");

            ContentBinaryWriter bw = new ContentBinaryWriter(dataStream);
            for (int i = 0; i < demData.Length; i++)
            {
                bw.Write((byte)(demData[i] * 255));
            }

            bw.Close();

            bw = new ContentBinaryWriter(dest);
            bw.Write(result);
            bw.Close();
        }
Exemple #7
0
        static void BuildBitMap()
        {
            FileLocation        fl = new FileLocation(@"E:\Desktop\terrain_l2副本.raw");
            ContentBinaryReader br = new ContentBinaryReader(fl);

            const int DW = 36 * 32;
            const int DH = 14 * 32;

            ushort[,] data = new ushort[DH, DW];

            for (int i = 0; i < DH; i++)
            {
                for (int j = 0; j < DW; j++)
                {
                    ushort v = br.ReadUInt16();
                    data[i, j] = Math.Max(v, (ushort)(1640 * 7));// br.ReadUInt16();
                }
            }

            br.Close();

            int[,] dir = new int[DH, DW];

            for (int i = 0; i < DH - 1; i++)
            {
                for (int j = 0; j < DW - 1; j++)
                {
                    int dx = data[i + 1, j] - data[i, j];
                    int dy = data[i, j + 1] - data[i, j];
                    dir[i, j] = Math.Abs(dx) + Math.Abs(dy);
                }
            }
            for (int i = 0; i < DH - 1; i++)
            {
                int j  = DW - 1;
                int dx = data[i + 1, j] - data[i, j];
                int dy = data[i, 0] - data[i, j];
                dir[i, j] = Math.Abs(dx) + Math.Abs(dy);
            }

            ContentBinaryWriter bw = new ContentBinaryWriter(File.Open(@"E:\Desktop\grad.raw", FileMode.OpenOrCreate));

            for (int i = 0; i < DH; i++)
            {
                for (int j = 0; j < DW; j++)
                {
                    if (dir[i, j] > ushort.MaxValue)
                    {
                        dir[i, j] = ushort.MaxValue;
                    }

                    bw.Write((ushort)dir[i, j]);
                }
            }
            bw.Close();
        }
Exemple #8
0
        private void button4_Click(object sender, EventArgs e)
        {
            button1.Enabled = false;
            button2.Enabled = false;
            button3.Enabled = false;
            button4.Enabled = false;
            
            DevFileLocation fl = new DevFileLocation(textBox1.Text);

            ContentBinaryWriter bw = new ContentBinaryWriter(fl);

            bw.Write(LpkArchive.FileId);

            int count = listView1.Items.Count;
            bw.Write(count);
            progressBar1.Value = 0; 
            progressBar1.Maximum = count;

            int oldPos = (int)bw.BaseStream.Position;

            ListView.ListViewItemCollection coll = listView1.Items;

           
            LpkArchiveEntry[] entries = new LpkArchiveEntry[count];


            for (int i = 0; i < count; i++)
            {   
                entries[i].Name = Path.GetFileName(coll[i].Text);

                bw.WriteStringUnicode(entries[i].Name);
                bw.Write(entries[i].CompressedSize);
                bw.Write(entries[i].Offset);
                bw.Write(entries[i].Size);
                bw.Write(entries[i].Flag);
            }


            #region 打包文件

            for (int i = 0; i < count; i++)
            {
                FileStream fs = new FileStream(coll[i].Text, FileMode.Open, FileAccess.Read);
                BinaryReader br = new BinaryReader(fs);

                entries[i].Offset = (int)bw.BaseStream.Position;
                entries[i].Size = (int)br.BaseStream.Length;
                entries[i].CompressedSize = entries[i].Size;
                entries[i].Flag = 0;

                bw.Write(br.ReadBytes(entries[i].Size));

                br.Close();

                fs.Close();

                Application.DoEvents(); 
                progressBar1.Value = i + 1;
            }


            CoderPropID[] propIDs = 
            { 
                CoderPropID.DictionarySize,
                CoderPropID.Algorithm
            };
            object[] properties = 
            {
                1048576*8,
                2
            };
            SevenZip.Compression.LZMA.Encoder encoder = new SevenZip.Compression.LZMA.Encoder();

            encoder.SetCoderProperties(propIDs, properties);

            System.IO.MemoryStream propms = new System.IO.MemoryStream();
            encoder.WriteCoderProperties(propms);
            bw.Write((int)propms.Length);
            propms.Close();
            bw.Write(propms.ToArray());

            for (int i = 0; i < count; i++)
            {
                entries[i].Offset = (int)bw.BaseStream.Position;

                FileStream fs = new FileStream(coll[i].Text, FileMode.Open, FileAccess.Read);
                System.IO.MemoryStream ms = new System.IO.MemoryStream((int)fs.Length / 2);

                encoder.Code(fs, ms, -1, -1, null);

                entries[i].Size = (int)fs.Length;

                fs.Close();
                ms.Close();

                byte[] buffer = ms.ToArray();
                bw.Write(buffer);
                entries[i].CompressedSize = buffer.Length;
                entries[i].Flag = 0;

                Application.DoEvents();
                progressBar1.Value = i + 1;
            }
            #endregion


            bw.Seek(oldPos, SeekOrigin.Begin);

            for (int i = 0; i < count; i++)
            {
                bw.WriteStringUnicode(entries[i].Name);
                bw.Write(entries[i].CompressedSize);
                bw.Write(entries[i].Offset);
                bw.Write(entries[i].Size);
                bw.Write(entries[i].Flag);
            }

            bw.Close();

            button1.Enabled = true;
            button2.Enabled = true;
            button3.Enabled = true;
            button4.Enabled = true;
        }
Exemple #9
0
        static unsafe void Grid()
        {
            //const int CellSpan = 3;
            const string SrcDir = @"E:\Documents\ic10gd\Source\Code2015\bin\x86\Debug\terrain\terrain_l2.tdmp";

            ContentBinaryReader br = new ContentBinaryReader(new FileLocation(SrcDir));
            const int           DW = 33 * 36;
            const int           DH = 33 * 14;

            byte[] hgtData = new byte[DW * DH];
            for (int i = 0; i < DW * DH; i++)
            {
                float h = br.ReadUInt16() / (float)ushort.MaxValue;
                hgtData[i] = (byte)((byte)(h * 8) * 31);
            }
            br.Close();

            //ushort[] result = new ushort[DW * DH];
            //bool[] setFlag = new bool[DW * DH];
            //for (int i = 0; i < DH-2; i ++)
            //{
            //    int rem = i % 2;

            //    int st = rem == 0 ? 0 : 1;
            //    for (int j = st; j < DW - 2; j += 2)
            //    {
            //        int top = i * DW + j + 1;
            //        int left = (i + 1) * DW + j;
            //        int right = (i + 1) * DW + j + 2;
            //        int bottom = (i + 2) * DW + j + 1;

            //        ushort vtop = setFlag[top] ? result[top] : hgtData[top];
            //        ushort vleft = setFlag[left] ? result[left] : hgtData[left];
            //        ushort vright = setFlag[right] ? result[right] : hgtData[right];
            //        ushort vbottom = setFlag[bottom] ? result[bottom] : hgtData[bottom];

            //        ushort vcenter = (ushort)((vtop + vleft + vright + vbottom) / 4);

            //        int v = vcenter + vcenter - vtop;

            //        if (v < 0) v = 0;
            //        else if (v > ushort.MaxValue) v = ushort.MaxValue;
            //        vbottom = (ushort)v;

            //        //if (!setFlag[top])
            //        {
            //            result[top] = vcenter;// vtop;
            //            setFlag[top] = true;
            //        }

            //        //if (!setFlag[left])
            //        {
            //            result[left] = vcenter;//vleft;
            //            setFlag[left] = true;
            //        }

            //        //if (!setFlag[right])
            //        {
            //            result[right] = vcenter;//vright;
            //            setFlag[right] = true;
            //        }

            //        //if (!setFlag[bottom])
            //        {
            //            result[bottom] = vcenter;// vbottom;
            //            setFlag[bottom] = true;
            //        }

            //        int center = (i + 1) * DW + j + 1;
            //        result[center] = vcenter;
            //        setFlag[center] = true;



            //    }
            //}


            ContentBinaryWriter bw = new ContentBinaryWriter(File.Open(@"E:\Desktop\res.raw", FileMode.OpenOrCreate));

            for (int i = 0; i < DW * DH; i++)
            {
                bw.Write(hgtData[i]);
            }

            bw.Close();
        }
Exemple #10
0
        private void button4_Click(object sender, EventArgs e)
        {
            button1.Enabled = false;
            button2.Enabled = false;
            button3.Enabled = false;
            button4.Enabled = false;

            DevFileLocation fl = new DevFileLocation(textBox1.Text);

            ContentBinaryWriter bw = new ContentBinaryWriter(fl);

            bw.Write(PakArchive.FileId);

            int count = listView1.Items.Count;

            bw.Write(count);
            progressBar1.Value   = 0;
            progressBar1.Maximum = count;

            int oldPos = (int)bw.BaseStream.Position;

            ListView.ListViewItemCollection coll = listView1.Items;


            PakArchiveEntry[] entries = new PakArchiveEntry[count];


            for (int i = 0; i < count; i++)
            {
                entries[i].Name = Path.GetFileName(coll[i].Text);

                bw.WriteStringUnicode(entries[i].Name);
                bw.Write(entries[i].Offset);
                bw.Write(entries[i].Size);
                bw.Write(entries[i].Flag);
            }


            #region 打包文件

            for (int i = 0; i < count; i++)
            {
                FileStream   fs = new FileStream(coll[i].Text, FileMode.Open, FileAccess.Read);
                BinaryReader br = new BinaryReader(fs);

                entries[i].Offset = (int)bw.BaseStream.Position;
                entries[i].Size   = (int)br.BaseStream.Length;
                entries[i].Flag   = 0;

                bw.Write(br.ReadBytes(entries[i].Size));

                br.Close();

                fs.Close();

                Application.DoEvents();
                progressBar1.Value = i + 1;
            }


            //CoderPropID[] propIDs =
            //{
            //    CoderPropID.DictionarySize,
            //    CoderPropID.Algorithm
            //};
            //object[] properties =
            //{
            //    1048576*8,
            //    2
            //};
            //SevenZip.Compression.LZMA.Encoder encoder = new SevenZip.Compression.LZMA.Encoder();

            //encoder.SetCoderProperties(propIDs, properties);

            //System.IO.MemoryStream propms = new System.IO.MemoryStream();
            //encoder.WriteCoderProperties (propms);
            //bw.Write((int)propms.Length);
            //propms.Close();
            //bw.Write(propms.ToArray());

            //for (int i = 0; i < count; i++)
            //{
            //    entries[i].Offset = (int)bw.BaseStream.Position;

            //    FileStream fs = new FileStream(coll[i].Text, FileMode.Open, FileAccess.Read);
            //    System.IO.MemoryStream ms = new System.IO.MemoryStream((int)fs.Length / 2);

            //    encoder.Code(fs, ms, -1, -1, null);

            //    entries[i].Size = (int)fs.Length;

            //    fs.Close();
            //    ms.Close();

            //    byte[] buffer = ms.ToArray();
            //    bw.Write(buffer);
            //    entries[i].CompressedSize = buffer.Length;
            //    entries[i].Flag = 0;

            //    Application.DoEvents();
            //    progressBar1.Value = i + 1;
            //}
            #endregion


            bw.Seek(oldPos, SeekOrigin.Begin);

            for (int i = 0; i < count; i++)
            {
                bw.WriteStringUnicode(entries[i].Name);
                bw.Write(entries[i].Offset);
                bw.Write(entries[i].Size);
                bw.Write(entries[i].Flag);
            }

            bw.Close();

            button1.Enabled = true;
            button2.Enabled = true;
            button3.Enabled = true;
            button4.Enabled = true;
        }
Exemple #11
0
        static unsafe void Grid()
        {
            //const int CellSpan = 3;
            const string SrcDir = @"E:\Documents\ic10gd\Source\Code2015\bin\x86\Debug\terrain\terrain_l2.tdmp";

            ContentBinaryReader br = new ContentBinaryReader(new FileLocation(SrcDir));
            const int DW = 33 * 36;
            const int DH = 33 * 14;

            byte[] hgtData = new byte[DW * DH];
            for (int i = 0; i < DW * DH; i++)
            {
                float h = br.ReadUInt16() / (float)ushort.MaxValue;
                hgtData[i] = (byte)((byte)(h * 8) * 31);

            }
            br.Close();

            //ushort[] result = new ushort[DW * DH];
            //bool[] setFlag = new bool[DW * DH];
            //for (int i = 0; i < DH-2; i ++)
            //{
            //    int rem = i % 2;

            //    int st = rem == 0 ? 0 : 1;
            //    for (int j = st; j < DW - 2; j += 2)
            //    {
            //        int top = i * DW + j + 1;
            //        int left = (i + 1) * DW + j;
            //        int right = (i + 1) * DW + j + 2;
            //        int bottom = (i + 2) * DW + j + 1;

            //        ushort vtop = setFlag[top] ? result[top] : hgtData[top];
            //        ushort vleft = setFlag[left] ? result[left] : hgtData[left];
            //        ushort vright = setFlag[right] ? result[right] : hgtData[right];
            //        ushort vbottom = setFlag[bottom] ? result[bottom] : hgtData[bottom];

            //        ushort vcenter = (ushort)((vtop + vleft + vright + vbottom) / 4);

            //        int v = vcenter + vcenter - vtop;

            //        if (v < 0) v = 0;
            //        else if (v > ushort.MaxValue) v = ushort.MaxValue;
            //        vbottom = (ushort)v;

            //        //if (!setFlag[top])
            //        {
            //            result[top] = vcenter;// vtop;
            //            setFlag[top] = true;
            //        }

            //        //if (!setFlag[left])
            //        {
            //            result[left] = vcenter;//vleft;
            //            setFlag[left] = true;
            //        }

            //        //if (!setFlag[right])
            //        {
            //            result[right] = vcenter;//vright;
            //            setFlag[right] = true;
            //        }

            //        //if (!setFlag[bottom])
            //        {
            //            result[bottom] = vcenter;// vbottom;
            //            setFlag[bottom] = true;
            //        }

            //        int center = (i + 1) * DW + j + 1;
            //        result[center] = vcenter;
            //        setFlag[center] = true;



            //    }
            //}


            ContentBinaryWriter bw = new ContentBinaryWriter(File.Open(@"E:\Desktop\res.raw", FileMode.OpenOrCreate));
            for (int i = 0; i < DW * DH; i++)
            {
                bw.Write(hgtData[i]);
            }

            bw.Close();
        }
Exemple #12
0
        static void BuildBitMap()
        {
            FileLocation fl = new FileLocation(@"E:\Desktop\terrain_l2副本.raw");
            ContentBinaryReader br = new ContentBinaryReader(fl);

            const int DW = 36 * 32;
            const int DH = 14 * 32;

            ushort[,] data = new ushort[DH, DW];

            for (int i = 0; i < DH; i++)
            {
                for (int j = 0; j < DW; j++)
                {
                    ushort v = br.ReadUInt16();
                    data[i, j] = Math.Max(v, (ushort)(1640*7));// br.ReadUInt16();
                }
            }

            br.Close();

            int[,] dir = new int[DH, DW];

            for (int i = 0; i < DH - 1; i++) 
            {
                for (int j = 0; j < DW - 1; j++) 
                {
                    int dx = data[i + 1, j] - data[i, j];
                    int dy = data[i, j + 1] - data[i, j];
                    dir[i, j] = Math.Abs(dx) + Math.Abs(dy);
                }
            }
            for (int i = 0; i < DH - 1; i++)
            {
                int j = DW - 1;
                int dx = data[i + 1, j] - data[i, j];
                int dy = data[i, 0] - data[i, j];
                dir[i, j] = Math.Abs(dx) + Math.Abs(dy);
            }

            ContentBinaryWriter bw = new ContentBinaryWriter(File.Open(@"E:\Desktop\grad.raw", FileMode.OpenOrCreate));
            for (int i = 0; i < DH; i++)
            {
                for (int j = 0; j < DW; j++)
                {
                    if (dir[i, j] > ushort.MaxValue)
                        dir[i, j] = ushort.MaxValue;

                    bw.Write((ushort)dir[i, j]);
                }
            }
            bw.Close();
        }
Exemple #13
0
        static void BuildLandAreaHeight()
        {
            FileLocation fl = new FileLocation(@"E:\Documents\ic10gd\Source\Code2015\bin\x86\Debug\terrain\terrain_l0.tdmp");
            ContentBinaryReader br = new ContentBinaryReader(fl);

            const int DW = 36 * 513;
            const int DH = 14 * 513;

            ushort[,] data = new ushort[DH, DW];

            for (int i = 0; i < DH; i++)
            {
                for (int j = 0; j < DW; j++)
                {
                    ushort v = br.ReadUInt16();
                    data[i, j] = (v > (ushort)(1600 * 7)) ? v : (ushort)0;
                }
            }
            ContentBinaryWriter bw = new ContentBinaryWriter(File.Open(@"E:\Desktop\land513.raw", FileMode.OpenOrCreate));
            for (int i = 0; i < DH; i++)
            {
                for (int j = 0; j < DW; j++)
                {
                    bw.Write(data[i, j]);
                }
            }
            bw.Close();

        }
Exemple #14
0
        static void BuildFlag()
        {
            bool[,] flags = new bool[36, 14];

            for (int x = 1, i = 0; x < 72; x += 2, i++)
            {
                for (int y = 5, j = 0; y < 33; y += 2, j++)
                {
                    string file = @"E:\Documents\ic10gd\Source\Code2015\bin\x86\Debug\terrain.lpk\tile_" + x.ToString("D2") + "_" + y.ToString("D2") + "_0.tdmp";

                    flags[i, j] = File.Exists(file);
                }
            }

            ContentBinaryWriter bw = new ContentBinaryWriter(File.Open(@"E:\Desktop\flags.dat", FileMode.OpenOrCreate));

            for (int i = 0; i < 36; i++)
            {
                for (int j = 0; j < 14; j++)
                {
                    bw.Write(flags[i, j]);
                }
            }

            bw.Close();
        }