Пример #1
0
        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);
            }
        }
Пример #2
0
        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));
                }
        }