Example #1
0
        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);
        }
Example #2
0
 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);
     }
 }