public static TileLoadResult Load(System.IO.Stream fromStream, out TileMap map) { map = null; try { var xml = new XmlSerializer(typeof(TileMap)); var streams = FastBlubbZip.ExtractBlubbZip(fromStream, ""); if (streams.Count == 0) { return(TileLoadResult.NoEntryInArchiv); } foreach (string key in streams.Keys.Where(key => streams[key] != null && streams[key].Length != 0 && streams[key].CanSeek && streams[key].CanRead)) { streams[key].Seek(0, System.IO.SeekOrigin.Begin); map = xml.Deserialize(streams[key]) as TileMap; streams[key].Dispose(); } if (map.VersionMajor < VersionMajorMin || map.VersionMinor < VersionMinorMin) { return(TileLoadResult.OldType); } map.FixxMap(); } catch (Exception e) { map = null; System.Diagnostics.Debug.WriteLine(e); return(TileLoadResult.UnkownError); } return(TileLoadResult.Success); }
public void Save(System.IO.Stream stream, string filename) { try { var xml = new XmlSerializer(typeof(TileMap)); using (System.IO.Stream xmlStream = new System.IO.MemoryStream()) { xml.Serialize(xmlStream, this); using (System.IO.MemoryStream ms = FastBlubbZip.CreateBlubbZip("", filename, xmlStream)) { ms.WriteTo(stream); } } } catch (Exception e) { System.Diagnostics.Debug.WriteLine(e); } }