예제 #1
0
        public static string GetMapStringFromWad(string file)
        {
            StringBuilder sb = new StringBuilder();

            try
            {
                FileStream    fs        = File.Open(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
                WadFileReader wadReader = new WadFileReader(fs);

                if (wadReader.WadType != WadType.Unknown)
                {
                    var mapLumps = WadFileReader.GetMapMarkerLumps(wadReader.ReadLumps()).OrderBy(x => x.Name).ToArray();
                    fs.Close();

                    sb.Append(string.Join(", ", mapLumps.Select(x => x.Name)));
                }
                else
                {
                    fs.Close();
                }
            }
            catch (Exception ex)
            {
                DisplayUnexpectedException(null, ex);
            }

            return(sb.ToString());
        }
예제 #2
0
        public void TestMethod1()
        {
            string wadfile = "uroburos.wad";
            var    zip     = ZipFile.OpenRead(Path.Combine("Resources", "uroburos.zip"));

            zip.Entries.First(x => x.FullName == wadfile).ExtractToFile(wadfile, true);

            FileStream    fs     = File.OpenRead(wadfile);
            WadFileReader reader = new WadFileReader(fs);
            var           lumps  = reader.ReadLumps();

            Assert.AreEqual(WadType.PWAD, reader.WadType);
            Assert.AreEqual(15, lumps.Count);
            Assert.AreEqual("D_RUNNIN", lumps[0].Name);
            Assert.AreEqual("WOLF1", lumps[1].Name);
            Assert.AreEqual("RSKY1", lumps[2].Name);
            Assert.AreEqual("TITLEPIC", lumps[3].Name);
            Assert.AreEqual("MAP01", lumps[4].Name);
            Assert.AreEqual("THINGS", lumps[5].Name);
            Assert.AreEqual("LINEDEFS", lumps[6].Name);
            Assert.AreEqual("SIDEDEFS", lumps[7].Name);
            Assert.AreEqual("VERTEXES", lumps[8].Name);
            Assert.AreEqual("SEGS", lumps[9].Name);
            Assert.AreEqual("SSECTORS", lumps[10].Name);
            Assert.AreEqual("NODES", lumps[11].Name);
            Assert.AreEqual("SECTORS", lumps[12].Name);
            Assert.AreEqual("REJECT", lumps[13].Name);
            Assert.AreEqual("BLOCKMAP", lumps[14].Name);

            Assert.AreEqual(25257, lumps[0].ReadData(fs).Length); //D_RUNNIN
            Assert.AreEqual(66888, lumps[3].ReadData(fs).Length); //TITLEPIC
            Assert.AreEqual(0, lumps[4].ReadData(fs).Length);     //MAP01
            Assert.AreEqual(6082, lumps[14].ReadData(fs).Length); //BLOCKMAp
        }
예제 #3
0
        public static string GetMapStringFromWad(string file)
        {
            StringBuilder sb = new StringBuilder();

            try
            {
                FileStream    fs        = File.OpenRead(file);
                WadFileReader wadReader = new WadFileReader(fs);

                if (wadReader.WadType != WadType.Unknown)
                {
                    var mapLumps = WadFileReader.GetMapMarkerLumps(wadReader.ReadLumps()).OrderBy(x => x.Name).ToArray();
                    fs.Close();

                    Array.ForEach(mapLumps, x => sb.Append(x.Name + ", "));
                }
                else
                {
                    fs.Close();
                }
            }
            catch (Exception ex)
            {
                DisplayUnexpectedException(null, ex);
            }

            return(sb.ToString());
        }
예제 #4
0
        public static string GetMapStringFromWad(string file)
        {
            StringBuilder builder = new StringBuilder();

            try
            {
                FileStream    fs     = File.OpenRead(file);
                WadFileReader reader = new WadFileReader(fs);
                if (reader.WadType != WadType.Unknown)
                {
                    fs.Close();
                    foreach (FileLump lump in from lump in WadFileReader.GetMapMarkerLumps(reader.ReadLumps())
                             select lump into x
                             orderby x.Name
                             select x)
                    {
                        builder.Append(lump.Name);
                        builder.Append(", ");
                    }
                }
                else
                {
                    fs.Close();
                }
            }
            catch (Exception exception1)
            {
                string message = exception1.Message;
            }
            return(builder.ToString());
        }