public static GameImage FromTim(TimFileReader reader) { using (DisposableStack insurance = new DisposableStack(3)) { TimImage timImage = insurance.Add(reader.ReadImage()); short x = timImage.ImageHeader.X; short y = timImage.ImageHeader.Y; GLTexture layer = timImage.Layer; GLTexture palettes = insurance.Add(GLTextureFactory.FromBitmapPalettes(reader.Palettes == null ? null : reader.Palettes.Palettes)); GameImage result = new GameImage(x, y, layer, palettes); insurance.Clear(); return(result); } }
public static GameFont FromGameData(ArchiveDirectoryEntry directory, string name) { ArchiveFileEntry tdwEntry = (ArchiveFileEntry)directory.Childs.TryGetValue(name + ".tdw"); if (tdwEntry == null) { return(null); } using (TdwFileReader tdwReader = new TdwFileReader(tdwEntry.OpenReadableContentStream())) using (TimFileReader timReader = tdwReader.TimReader) { if (timReader == null) { return(null); } GameImage image = GameImageReader.FromTim(timReader); return(new GameFont(image, tdwReader.Table)); } }