public static HouseTile Load(ByteArrayFileTreeStream stream, ByteArrayStreamReader reader) { HouseTile houseTile = new HouseTile(); houseTile.OffsetX = reader.ReadByte(); houseTile.OffsetY = reader.ReadByte(); houseTile.HouseId = reader.ReadUInt(); while (true) { switch ((OtbmAttribute)reader.ReadByte()) { case OtbmAttribute.Flags: houseTile.Flags = (TileFlags)reader.ReadUInt(); break; case OtbmAttribute.ItemId: houseTile.OpenTibiaItemId = reader.ReadUShort(); break; default: stream.Seek(Origin.Current, -1); if (stream.Child()) { houseTile.items = new List <Item>(); while (true) { houseTile.items.Add(Item.Load(stream, reader)); if (!stream.Next()) { break; } } } return(houseTile); } } }
public static Area Load(ByteArrayFileTreeStream stream, ByteArrayStreamReader reader) { Area area = new Area(); area.Position = new Position(reader.ReadUShort(), reader.ReadUShort(), reader.ReadByte()); if (stream.Child()) { area.tiles = new List <Tile>(1); while (true) { Tile tile = null; switch ((OtbmType)reader.ReadByte()) { case OtbmType.Tile: tile = Tile.Load(stream, reader); break; case OtbmType.HouseTile: tile = HouseTile.Load(stream, reader); break; } area.tiles.Add(tile); if (!stream.Next()) { break; } } } return(area); }