Beispiel #1
0
        public static PicFile Load(string path)
        {
            using (ByteArrayFileStream stream = new ByteArrayFileStream(path))
            {
                ByteArrayStreamReader reader = new ByteArrayStreamReader(stream);

                PicFile file = new PicFile();

                file.signature = reader.ReadUInt();

                ushort images = reader.ReadUShort();

                file.images = new List <Image>(images);

                for (ushort imageId = 0; imageId < images; imageId++)
                {
                    Image image = Image.Load(stream, reader);

                    image.Id = imageId;

                    file.images.Add(image);
                }

                return(file);
            }
        }
Beispiel #2
0
        public static Image Load(ByteArrayFileStream stream, ByteArrayStreamReader reader)
        {
            Image image = new Image();

            image.Width = reader.ReadByte();

            image.Height = reader.ReadByte();

            image.Red = reader.ReadByte();

            image.Green = reader.ReadByte();

            image.Blue = reader.ReadByte();

            int sprites = image.Width * image.Height;

            image.sprites = new List <Sprite>(sprites);

            for (int i = 0; i < sprites; i++)
            {
                int index = reader.ReadInt();

                if (index > 0)
                {
                    int returnIndex = stream.Position;

                    stream.Seek(Origin.Begin, index);

                    Sprite sprite = Sprite.Load(true, image.Red, image.Green, image.Blue, reader);

                    image.sprites.Add(sprite);

                    stream.Seek(Origin.Begin, returnIndex);
                }
            }

            return(image);
        }
Beispiel #3
0
        public static SprFile Load(string path)
        {
            using (ByteArrayFileStream stream = new ByteArrayFileStream(path))
            {
                ByteArrayStreamReader reader = new ByteArrayStreamReader(stream);

                SprFile file = new SprFile();

                file.signature = reader.ReadUInt();

                ushort sprites = reader.ReadUShort();

                file.sprites = new List <Sprite>(sprites);

                for (ushort spriteId = 1; spriteId <= sprites; spriteId++)
                {
                    int index = reader.ReadInt();

                    if (index > 0)
                    {
                        int returnIndex = stream.Position;

                        stream.Seek(Origin.Begin, index);

                        Sprite sprite = Sprite.Load(true, reader);

                        sprite.Id = spriteId;

                        file.sprites.Add(sprite);

                        stream.Seek(Origin.Begin, returnIndex);
                    }
                }

                return(file);
            }
        }
Beispiel #4
0
        public static DatFile Load(string path)
        {
            using (ByteArrayFileStream stream = new ByteArrayFileStream(path))
            {
                ByteArrayStreamReader reader = new ByteArrayStreamReader(stream);

                DatFile file = new DatFile();

                file.signature = reader.ReadUInt();

                ushort items = reader.ReadUShort();

                ushort outfits = reader.ReadUShort();

                ushort effects = reader.ReadUShort();

                ushort projectiles = reader.ReadUShort();

                file.items = new List <Item>(items);

                for (ushort itemId = 100; itemId <= items; itemId++)
                {
                    Item item = Item.Load(reader);

                    item.TibiaId = itemId;

                    file.items.Add(item);
                }

                file.outfits = new List <Item>(outfits);

                for (ushort outfitId = 0; outfitId < outfits; outfitId++)
                {
                    Item item = Item.Load(reader);

                    item.TibiaId = outfitId;

                    file.outfits.Add(item);
                }

                file.effects = new List <Item>(effects);

                for (ushort effectId = 0; effectId < effects; effectId++)
                {
                    Item item = Item.Load(reader);

                    item.TibiaId = effectId;

                    file.effects.Add(item);
                }

                file.projectiles = new List <Item>(projectiles);

                for (ushort projectileId = 0; projectileId < projectiles; projectileId++)
                {
                    Item item = Item.Load(reader);

                    item.TibiaId = projectileId;

                    file.projectiles.Add(item);
                }

                return(file);
            }
        }