internal static byte[] GetExpectedCrazyMapSizeBytes(GameConfig gameSave) { MapSize mapSize = gameSave.Map.Size.Value; bool GodsAndKings = gameSave.Expansions.Contains(Expansion.Expansion.GodsAndKings); bool BraveNewWorld = gameSave.Expansions.Contains(Expansion.Expansion.BraveNewWorld); using(var stream = new MemoryStream()) using (var writer = new BinaryWriter(stream)) { var crazyMapSizeBytes = CrazyMapSizeBytes[mapSize]; writer.Write(crazyMapSizeBytes, 0, 44); if (GodsAndKings || BraveNewWorld) writer.Write(crazyMapSizeBytes, 44, 4); writer.Write(crazyMapSizeBytes, 48, 20); if (BraveNewWorld) writer.Write(crazyMapSizeBytes, 68, 8); else writer.Write(new byte[] { 0x0F, 0x00, 0x00, 0x00 }); writer.Write(crazyMapSizeBytes, crazyMapSizeBytes.Length - 4, 4); return stream.ToArray(); } }
public SaveWriter(Stream output, GameConfig save) : base(output) { Save = save; }