Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }