diff --git a/Blarg.GameFramework/Blarg.GameFramework.csproj b/Blarg.GameFramework/Blarg.GameFramework.csproj index ed44a5e..cc88476 100644 --- a/Blarg.GameFramework/Blarg.GameFramework.csproj +++ b/Blarg.GameFramework/Blarg.GameFramework.csproj @@ -218,6 +218,7 @@ + @@ -248,6 +249,7 @@ + diff --git a/Blarg.GameFramework/TileMap/TileDataSerializer.cs b/Blarg.GameFramework/TileMap/TileDataSerializer.cs new file mode 100644 index 0000000..aca76b2 --- /dev/null +++ b/Blarg.GameFramework/TileMap/TileDataSerializer.cs @@ -0,0 +1,41 @@ +using System; +using System.IO; + +namespace Blarg.GameFramework.TileMap +{ + public static class TileDataSerializer + { + public static void Serialize(Tile src, BinaryWriter writer) + { + writer.Write(src.TileIndex); + writer.Write(src.Flags); + writer.Write(src.TileLight); + writer.Write(src.SkyLight); + writer.Write(src.Rotation); + writer.Write(src.ParentTileOffsetX); + writer.Write(src.ParentTileOffsetY); + writer.Write(src.ParentTileOffsetZ); + writer.Write(src.ParentTileWidth); + writer.Write(src.ParentTileHeight); + writer.Write(src.ParentTileDepth); + writer.Write(src.Color); + } + + public static void Deserialize(BinaryReader reader, Tile dest) + { + dest.TileIndex = reader.ReadInt16(); + dest.Flags = reader.ReadInt16(); + dest.TileLight = reader.ReadByte(); + dest.SkyLight = reader.ReadByte(); + dest.Rotation = reader.ReadByte(); + dest.ParentTileOffsetX = reader.ReadByte(); + dest.ParentTileOffsetY = reader.ReadByte(); + dest.ParentTileOffsetZ = reader.ReadByte(); + dest.ParentTileWidth = reader.ReadByte(); + dest.ParentTileHeight = reader.ReadByte(); + dest.ParentTileDepth = reader.ReadByte(); + dest.Color = reader.ReadInt32(); + } + } +} +