public UndoableMapModel CreateFromSct(string filename) { MapTile t; using (var s = new SctReader(filename)) { t = this.sectionFactory.TileFromSct(s); } return(new UndoableMapModel(new MapModel(t), filename, true)); }
protected override void LoadFile(HpiArchive archive, HpiArchive.FileInfo file) { var fileBuffer = new byte[file.Size]; archive.Extract(file, fileBuffer); using (var s = new SctReader(new MemoryStream(fileBuffer))) { var section = new Section(archive.FileName, file.FullPath); section.Name = HpiPath.GetFileNameWithoutExtension(file.Name); section.Minimap = SectionFactory.MinimapFromSct(s); section.DataWidth = s.DataWidth; section.DataHeight = s.DataHeight; var directoryString = HpiPath.GetDirectoryName(file.FullPath); Debug.Assert(directoryString != null, "Null directory for section in HPI."); var directories = directoryString.Split('\\'); section.World = directories[1]; section.Category = directories[2]; this.Records.Add(section); } }
private MapTile LoadSectionFromDisk(string hpiFileName, string sctFileName) { var outpath = Path.GetTempFileName(); try { byte[] fileBuffer; using (var h = new HpiArchive(hpiFileName)) { var fileInfo = h.FindFile(sctFileName); fileBuffer = new byte[fileInfo.Size]; h.Extract(fileInfo, fileBuffer); } using (var s = new SctReader(new MemoryStream(fileBuffer))) { return(this.sectionFactory.TileFromSct(s)); } } finally { File.Delete(outpath); } }