Esempio n. 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());
        }
Esempio n. 2
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());
        }
Esempio n. 3
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
        }
Esempio n. 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());
        }
Esempio n. 5
0
        public void TestMap()
        {
            List <FileLump> lumps    = CreateMapSetLumps("MAP01");
            List <FileLump> mapLumps = WadFileReader.GetMapMarkerLumps(lumps);

            Assert.AreEqual(1, mapLumps.Count);
            Assert.AreEqual("MAP01", mapLumps.First().Name);
        }
Esempio n. 6
0
        public void TestBadMapLumpNoMap()
        {
            List <FileLump> lumps = CreateMapSetLumps("MAP01");

            lumps.Insert(4, new FileLump("BADLUMP"));
            List <FileLump> mapLumps = WadFileReader.GetMapMarkerLumps(lumps);

            //requires at least 5 valid map lumps to pass, inserting BADLUMP in the middle will fail both
            Assert.AreEqual(0, mapLumps.Count);
        }
Esempio n. 7
0
        public void TestBadMapLump()
        {
            List <FileLump> lumps = CreateMapSetLumps("MAP01");

            lumps.Insert(2, new FileLump("BADLUMP"));
            List <FileLump> mapLumps = WadFileReader.GetMapMarkerLumps(lumps);

            //MAP01 should not pass, but BADLUMP will because it has at least 5 valid map lumps
            Assert.AreEqual(1, mapLumps.Count);
            Assert.AreEqual("BADLUMP", mapLumps.First().Name);
        }
Esempio n. 8
0
        public void TestNonStandardMapNames()
        {
            string[]        maps  = new string[] { "MYMAP", "ZMAP1", "XMAP2", "ANOTHERMAP", "WHOCARES", "LOOKATME" };
            List <FileLump> lumps = new List <FileLump>();

            Array.ForEach(maps, x => lumps.AddRange(CreateMapSetLumps(x)));

            List <FileLump> mapLumps = WadFileReader.GetMapMarkerLumps(lumps);

            Assert.AreEqual(maps.Length, mapLumps.Count);
            Assert.AreEqual(maps.Length, mapLumps.Count(x => maps.Contains(x.Name)));
        }
Esempio n. 9
0
        public void TestMultipleMaps()
        {
            string[]        maps  = new string[] { "MAP01", "MAP02", "MAP03", "MAP04", "MAP05", "MAP06" };
            List <FileLump> lumps = new List <FileLump>();

            Array.ForEach(maps, x => lumps.AddRange(CreateMapSetLumps(x)));

            List <FileLump> mapLumps = WadFileReader.GetMapMarkerLumps(lumps);

            Assert.AreEqual(maps.Length, mapLumps.Count);
            Assert.AreEqual(maps.Length, mapLumps.Count(x => maps.Contains(x.Name)));
        }
Esempio n. 10
0
        public void TestMapWithExtra()
        {
            List <FileLump> lumps = CreateMapSetLumps("MAP01");

            lumps.Insert(0, new FileLump("JUNK"));
            for (int i = 0; i < 10; i++)
            {
                lumps.Add(new FileLump("LUMP" + i.ToString()));
            }

            List <FileLump> mapLumps = WadFileReader.GetMapMarkerLumps(lumps);

            Assert.AreEqual(1, mapLumps.Count);
            Assert.AreEqual("MAP01", mapLumps.First().Name);
        }
Esempio n. 11
0
        public void TestUdmf()
        {
            List <FileLump> lumps    = CreateLumps(new string[] { "MAP01", "TEXTMAP", "ZNODES", "ENDMAP" });
            List <FileLump> mapLumps = WadFileReader.GetMapMarkerLumps(lumps);

            Assert.AreEqual(1, mapLumps.Count);
            Assert.AreEqual("MAP01", mapLumps.First().Name);

            lumps.AddRange(CreateLumps(new string[] { "WHOCARES", "MAP02", "TEXTMAP", "ZNODES", "REJECT", "DIALOGUE", "ENDMAP", "JUNK" }));
            mapLumps = WadFileReader.GetMapMarkerLumps(lumps);

            Assert.AreEqual(2, mapLumps.Count);
            Assert.AreEqual("MAP01", mapLumps[0].Name);
            Assert.AreEqual("MAP02", mapLumps[1].Name);
        }
Esempio n. 12
0
        public void TestMultipleMapsWithExtra()
        {
            string[]        maps  = new string[] { "MAP01", "MAP02", "MAP03", "MAP04", "MAP05", "MAP06" };
            List <FileLump> lumps = new List <FileLump>();

            foreach (var map in maps)
            {
                lumps.AddRange(CreateMapSetLumps(map));
                for (int i = 0; i < 10; i++)
                {
                    lumps.Add(new FileLump("LUMP" + i.ToString()));
                }
            }

            for (int i = 0; i < 10; i++)
            {
                lumps.Add(new FileLump("LUMP" + i.ToString()));
            }

            List <FileLump> mapLumps = WadFileReader.GetMapMarkerLumps(lumps);

            Assert.AreEqual(maps.Length, mapLumps.Count);
            Assert.AreEqual(maps.Length, mapLumps.Count(x => maps.Contains(x.Name)));
        }