Example #1
0
        public void Write()
        {
            // Get bytes from regions
            var userBytes        = UserRegion.Raw;
            var presBytes        = PERSRegion.Raw;
            var lk08Bytes        = LK08Region.Raw;
            var battlefieldBytes = BattlefieldRegion.Raw;
            var shopBytes        = ShopRegion.Raw;
            var unitBytes        = UnitRegion.Raw;
            var weaponNameBytes  = WeaponNameRegion.Raw;
            var convoyBytes      = ConvoyRegion.Raw;
            var myCastleBytes    = MyCastleRegion.Raw;
            var mapBytes         = MapRegion.Raw;

            // Update offsets, in case regions changed size
            var offset = CompressionRegion.UserOffset; // First region, offset is always the same

            offset += userBytes.Length;
            CompressionRegion.PERSOffset = offset;
            offset += presBytes.Length;
            CompressionRegion.LK08Offset = offset;
            offset += lk08Bytes.Length;
            CompressionRegion.BattlefieldOffset = offset;
            offset += battlefieldBytes.Length;
            CompressionRegion.ShopOffset = offset;
            offset += shopBytes.Length;
            CompressionRegion.UnitOffset = offset;
            offset += unitBytes.Length;
            CompressionRegion.WeaponNameOffset = offset;
            offset += weaponNameBytes.Length;
            CompressionRegion.ConvoyOffset = offset;
            offset += convoyBytes.Length;
            CompressionRegion.MyCastleOffset = offset;
            offset += myCastleBytes.Length;
            CompressionRegion.MapOffset = offset;

            // Combine regions and write to file
            _file.DecompressedBytes = Header.Raw
                                      .Concat(CompressionRegion.Raw)
                                      .Concat(userBytes)
                                      .Concat(presBytes)
                                      .Concat(lk08Bytes)
                                      .Concat(battlefieldBytes)
                                      .Concat(shopBytes)
                                      .Concat(unitBytes)
                                      .Concat(weaponNameBytes)
                                      .Concat(convoyBytes)
                                      .Concat(myCastleBytes)
                                      .Concat(mapBytes)
                                      .ToArray();

            _file.Write();
        }
Example #2
0
        public void Write()
        {
            using (var ms = new MemoryStream(_file.DecompressedBytes))
                using (var bw = new BinaryWriter(ms))
                {
                    WriteFileData(bw);
                    WriteCharacters(bw);
                    WriteMyCastle(bw);
                }

            _file.Write();
        }
Example #3
0
        public void Write()
        {
            // Get bytes from regions
            var region1Bytes       = Region1.Raw;
            var logbookRegionBytes = LogbookRegion.Raw;

            // Update offsets, in case regions changed size
            var offset = CompressionRegion.Region1Offset; // First region, offset is always the same

            offset += region1Bytes.Length;
            CompressionRegion.LogbookRegionOffset = offset;

            // Combine regions and write to file
            _file.DecompressedBytes = CompressionRegion.Raw
                                      .Concat(region1Bytes)
                                      .Concat(logbookRegionBytes)
                                      .ToArray();

            _file.Write();
        }