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()); }
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()); }
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 }
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()); }
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); }
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); }
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); }
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))); }
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))); }
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); }
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); }
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))); }