// This loads the textures public override ICollection <ImageData> LoadTextures(PatchNames pnames) { List <ImageData> images = new List <ImageData>(); //string rangestart, rangeend; int lumpindex; Lump lump; // Error when suspended if (issuspended) { throw new Exception("Data reader is suspended"); } // Load two sets of textures, if available lump = file.FindLump("TEXTURE1"); if (lump != null) { LoadTextureSet("TEXTURE1", lump.Stream, ref images, pnames); } lump = file.FindLump("TEXTURE2"); if (lump != null) { LoadTextureSet("TEXTURE2", lump.Stream, ref images, pnames); } // Read ranges from configuration foreach (LumpRange range in textureranges) { // Load texture range LoadTexturesRange(range.start, range.end, ref images, pnames); } // Load TEXTURES lump file lumpindex = file.FindLumpIndex("TEXTURES"); while (lumpindex > -1) { MemoryStream filedata = new MemoryStream(file.Lumps[lumpindex].Stream.ReadAllBytes()); WADReader.LoadHighresTextures(filedata, "TEXTURES", ref images, null, null); filedata.Dispose(); // Find next lumpindex = file.FindLumpIndex("TEXTURES", lumpindex + 1); } // Add images to the container-specific texture set foreach (ImageData img in images) { textureset.AddTexture(img); } // Return result return(images); }
// This loads the textures public override ICollection <ImageData> LoadTextures(PatchNames pnames) { Dictionary <long, ImageData> images = new Dictionary <long, ImageData>(); ICollection <ImageData> collection; List <ImageData> imgset = new List <ImageData>(); // Error when suspended if (issuspended) { throw new Exception("Data reader is suspended"); } subtexturesets = new Dictionary <string, ResourceTextureSet>(); // Load from wad files (NOTE: backward order, because the last wad's images have priority) for (int i = wads.Count - 1; i >= 0; i--) { collection = wads[i].LoadTextures(pnames); ResourceTextureSet wadTextureSet = new ResourceTextureSet(wads[i].GetTitle(), location); // ano - moved this loop out from AddImagesToList // because we need to add the images to a // wad-specific list foreach (ImageData src in collection) { // Check if exists in target list if (!images.ContainsKey(src.LongName)) { images.Add(src.LongName, src); wadTextureSet.AddTexture(src); } } // foreach subtexturesets.Add(wadTextureSet.Name, wadTextureSet); } // for(wads) // Should we load the images in this directory as textures? if (roottextures) { collection = LoadDirectoryImages("", ImageDataFormat.DOOMPICTURE, false); AddImagesToList(images, collection); } // Add images from texture directory collection = LoadDirectoryImagesAndCategorize(TEXTURES_DIR, ImageDataFormat.DOOMPICTURE, images, false); // Load TEXTURE1 lump file imgset.Clear(); string texture1file = FindFirstFile("TEXTURE1", false); if ((texture1file != null) && FileExists(texture1file)) { MemoryStream filedata = LoadFile(texture1file); WADReader.LoadTextureSet("TEXTURE1", filedata, ref imgset, pnames); filedata.Dispose(); } // Load TEXTURE2 lump file string texture2file = FindFirstFile("TEXTURE2", false); if ((texture2file != null) && FileExists(texture2file)) { MemoryStream filedata = LoadFile(texture2file); WADReader.LoadTextureSet("TEXTURE2", filedata, ref imgset, pnames); filedata.Dispose(); } // Add images from TEXTURE1 and TEXTURE2 lump files AddImagesToList(images, imgset); // Load TEXTURES lump file imgset.Clear(); string[] alltexturefiles = GetAllFilesWithTitle("", "TEXTURES", false); foreach (string texturesfile in alltexturefiles) { MemoryStream filedata = LoadFile(texturesfile); WADReader.LoadHighresTextures(filedata, texturesfile, ref imgset, images, null); filedata.Dispose(); } // Add images from TEXTURES lump file AddImagesToList(images, imgset); // Add images to the container-specific texture set foreach (ImageData img in images.Values) { textureset.AddTexture(img); } return(new List <ImageData>(images.Values)); }
// This loads the textures public override ICollection <ImageData> LoadTextures(PatchNames pnames) { Dictionary <long, ImageData> images = new Dictionary <long, ImageData>(); ICollection <ImageData> collection; List <ImageData> imgset = new List <ImageData>(); // Error when suspended if (issuspended) { throw new Exception("Data reader is suspended"); } // Load from wad files (NOTE: backward order, because the last wad's images have priority) for (int i = wads.Count - 1; i >= 0; i--) { collection = wads[i].LoadTextures(pnames); AddImagesToList(images, collection); } // Should we load the images in this directory as textures? if (roottextures) { collection = LoadDirectoryImages("", ImageDataFormat.DOOMPICTURE, false); AddImagesToList(images, collection); } // Add images from texture directory collection = LoadDirectoryImages(TEXTURES_DIR, ImageDataFormat.DOOMPICTURE, true); AddImagesToList(images, collection); // Load TEXTURE1 lump file imgset.Clear(); string texture1file = FindFirstFile("TEXTURE1", false); if ((texture1file != null) && FileExists(texture1file)) { MemoryStream filedata = LoadFile(texture1file); WADReader.LoadTextureSet("TEXTURE1", filedata, ref imgset, pnames); filedata.Dispose(); } // Load TEXTURE2 lump file string texture2file = FindFirstFile("TEXTURE2", false); if ((texture2file != null) && FileExists(texture2file)) { MemoryStream filedata = LoadFile(texture2file); WADReader.LoadTextureSet("TEXTURE2", filedata, ref imgset, pnames); filedata.Dispose(); } // Add images from TEXTURE1 and TEXTURE2 lump files AddImagesToList(images, imgset); // Load TEXTURES lump file imgset.Clear(); string[] alltexturefiles = GetAllFilesWithTitle("", "TEXTURES", false); foreach (string texturesfile in alltexturefiles) { MemoryStream filedata = LoadFile(texturesfile); WADReader.LoadHighresTextures(filedata, texturesfile, ref imgset, images, null); filedata.Dispose(); } // Add images from TEXTURES lump file AddImagesToList(images, imgset); // Add images to the container-specific texture set foreach (ImageData img in images.Values) { textureset.AddTexture(img); } return(new List <ImageData>(images.Values)); }
// This loads the textures public override ICollection <ImageData> LoadTextures(PatchNames pnames) { List <ImageData> images = new List <ImageData>(); string rangestart, rangeend; int lumpindex; Lump lump; // Error when suspended if (issuspended) { throw new Exception("Data reader is suspended"); } // Load two sets of textures, if available lump = file.FindLump("TEXTURE1"); if (lump != null) { LoadTextureSet("TEXTURE1", lump.Stream, ref images, pnames); } lump = file.FindLump("TEXTURE2"); if (lump != null) { LoadTextureSet("TEXTURE2", lump.Stream, ref images, pnames); } // Read ranges from configuration foreach (LumpRange range in textureranges) { // Load texture range LoadTexturesRange(range.start, range.end, ref images, pnames); } foreach (Sector s in General.Map.Map.Sectors) { for (int j = 0; j < General.Map.TextureHashKey.Count; j++) { if (s.HashFloor == General.Map.TextureHashKey[j]) { s.SetFloorTexture(General.Map.TextureHashName[j]); break; } } for (int j = 0; j < General.Map.TextureHashKey.Count; j++) { if (s.HashCeiling == General.Map.TextureHashKey[j]) { s.SetCeilTexture(General.Map.TextureHashName[j]); break; } } } foreach (Sidedef sd in General.Map.Map.Sidedefs) { for (int j = 0; j < General.Map.TextureHashKey.Count; j++) { if (sd.HashTexHigh == General.Map.TextureHashKey[j]) { if (j == 0) { sd.SetTextureHigh("-"); break; } sd.SetTextureHigh(General.Map.TextureHashName[j]); break; } } for (int j = 0; j < General.Map.TextureHashKey.Count; j++) { if (sd.HashTexMid == General.Map.TextureHashKey[j]) { if (j == 0) { sd.SetTextureMid("-"); break; } sd.SetTextureMid(General.Map.TextureHashName[j]); break; } } for (int j = 0; j < General.Map.TextureHashKey.Count; j++) { if (sd.HashTexLow == General.Map.TextureHashKey[j]) { if (j == 0) { sd.SetTextureLow("-"); break; } sd.SetTextureLow(General.Map.TextureHashName[j]); break; } } } // Load TEXTURES lump file lumpindex = file.FindLumpIndex("TEXTURES"); while (lumpindex > -1) { MemoryStream filedata = new MemoryStream(file.Lumps[lumpindex].Stream.ReadAllBytes()); WADReader.LoadHighresTextures(filedata, "TEXTURES", ref images, null, null); filedata.Dispose(); // Find next lumpindex = file.FindLumpIndex("TEXTURES", lumpindex + 1); } // Add images to the container-specific texture set foreach (ImageData img in images) { textureset.AddTexture(img); } // Return result return(images); }