void SetData(byte[] data, SubtileTableitem tableitem) { if (data == null || data.Length == 0) { Data = new byte[0]; } else { Data = new byte[data.Length]; data.CopyTo(Data, 0); } if (tableitem == null) { Tableitem = new SubtileTableitem(); } else { Tableitem = tableitem; } }
static void ReadBinData(string binfile, ZoomlevelData zoomleveldata) { int bin_base = int.MinValue; int bin_diff = int.MinValue; int bin_type = int.MinValue; int bin_length = int.MinValue; if (File.Exists(binfile + ".info")) { using (StreamReader sr = new StreamReader(binfile + ".info")) { string txt = null; do { txt = sr.ReadLine(); if (txt != null) { txt = txt.Trim(); if (txt.Length > 0) { if (txt[0] != '#') { if (!ReadNotNegativIntFromLine(txt, BIN_BASE, ref bin_base)) { if (!ReadNotNegativIntFromLine(txt, BIN_DIFF, ref bin_diff)) { if (!ReadNotNegativIntFromLine(txt, BIN_TYPE, ref bin_type)) { if (!ReadNotNegativIntFromLine(txt, BIN_LENGTH, ref bin_length)) { } } } } } } } } while (txt != null); } } if (bin_base < 0) { bin_base = 0; } if (bin_diff < 0) { bin_diff = 0; } if (bin_type < 0) { bin_type = 0; } if (bin_length < 0) { bin_length = 0; } SubtileTableitem tableitem = new SubtileTableitem(); tableitem.Baseheight = (ushort)bin_base; tableitem.Diff = (ushort)bin_diff; tableitem.Type = (byte)bin_type; if (binfile.Length == 0 || !File.Exists(binfile)) { tableitem.Diff = 0; zoomleveldata.Subtiles.Add(new Subtile((byte[])null, tableitem)); } else { zoomleveldata.Subtiles.Add(new Subtile(binfile, tableitem)); } }
public Subtile(string file, SubtileTableitem tableitem = null) { using (BinaryReader r = new BinaryReader(File.OpenRead(file))) { SetData(r.ReadBytes((int)r.BaseStream.Length), tableitem); } }
public Subtile(byte[] data, SubtileTableitem tableitem = null) { SetData(data, tableitem); }