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