private static void WriteOtbm(string otbmFileName, string houseFileName, string spawnFileName, Version version, IEnumerable <OtMapTile> mapTiles) { OtbmMapWriter mapWriter = new OtbmMapWriter(otbmFileName); mapWriter.WriteHeader(version); mapWriter.WriteMapStart(houseFileName, spawnFileName); foreach (OtMapTile tile in mapTiles) { mapWriter.WriteNodeStart(NodeType.TileArea); mapWriter.WriteTileAreaCoords(tile.Location); mapWriter.WriteNodeStart(NodeType.Tile); mapWriter.WriteTileCoords(tile.Location); if (tile.TileId > 0) { mapWriter.WriteAttrType(AttrType.Item); mapWriter.WriteUInt16(tile.TileId); } foreach (OtMapItem item in tile.Items) { mapWriter.WriteNodeStart(NodeType.Item); mapWriter.WriteUInt16(item.ItemId); if (item.AttrType != AttrType.None) { mapWriter.WriteAttrType(item.AttrType); mapWriter.WriteByte(item.Extra); } mapWriter.WriteNodeEnd(); } mapWriter.WriteNodeEnd(); mapWriter.WriteNodeEnd(); } mapWriter.WriteNodeEnd(); // Map Data node mapWriter.WriteNodeEnd(); // Root node mapWriter.Close(); }
private void uxWrite_Click(object sender, EventArgs e) { IEnumerable <PacketCreature> creatures; if (uxTrackSpawns.Checked) { creatures = mapCreatures.Values.Where(c => c != null); } else { creatures = new List <PacketCreature>(); } if (mapTiles.Count > 0) { string file = OtbmMapWriter.WriteMapTilesToFile( mapTiles.Values, creatures, Constants.GetMapVersion(client.VersionNumber) ); Log("All map data written to " + file); } }
private static void WriteOtbm(string otbmFileName, string houseFileName, string spawnFileName, Version version, IEnumerable<OtMapTile> mapTiles) { OtbmMapWriter mapWriter = new OtbmMapWriter(otbmFileName); mapWriter.WriteHeader(version); mapWriter.WriteMapStart(houseFileName, spawnFileName); foreach (OtMapTile tile in mapTiles) { mapWriter.WriteNodeStart(NodeType.TileArea); mapWriter.WriteTileAreaCoords(tile.Location); mapWriter.WriteNodeStart(NodeType.Tile); mapWriter.WriteTileCoords(tile.Location); if (tile.TileId > 0) { mapWriter.WriteAttrType(AttrType.Item); mapWriter.WriteUInt16(tile.TileId); } foreach (OtMapItem item in tile.Items) { mapWriter.WriteNodeStart(NodeType.Item); mapWriter.WriteUInt16(item.ItemId); if (item.AttrType != AttrType.None) { mapWriter.WriteAttrType(item.AttrType); mapWriter.WriteByte(item.Extra); } mapWriter.WriteNodeEnd(); } mapWriter.WriteNodeEnd(); mapWriter.WriteNodeEnd(); } mapWriter.WriteNodeEnd(); // Map Data node mapWriter.WriteNodeEnd(); // Root node mapWriter.Close(); }