コード例 #1
0
        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();
            }
        }
コード例 #2
0
 public SaveWriter(Stream output, GameConfig save)
     : base(output)
 {
     Save = save;
 }