コード例 #1
0
ファイル: SCBlockUtil.cs プロジェクト: wowjinxy/PKHeX
        private static void ExportBlock(SCBlock block, BinaryWriter bw, int blockIndex, SCBlockExportOption option)
        {
            if (option.HasFlagFast(SCBlockExportOption.DataOnly) && block.Data.Length == 0)
            {
                return;
            }

            if (option.HasFlagFast(SCBlockExportOption.FakeHeader))
            {
                bw.Write($"BLOCK{blockIndex:0000} {block.Key:X8}");
            }

            if (option.HasFlagFast(SCBlockExportOption.Key))
            {
                bw.Write(block.Key);
            }

            if (option.HasFlagFast(SCBlockExportOption.TypeInfo))
            {
                bw.Write((byte)block.Type);
                bw.Write((byte)block.SubType);
            }

            bw.Write(block.Data);
        }
コード例 #2
0
ファイル: Zukan8.cs プロジェクト: Abyzab/PKHeX
 public Zukan8(SAV8SWSH sav, SCBlock galar, SCBlock rigel1, SCBlock rigel2) : base(sav, 0)
 {
     Galar = galar;
     Rigel1 = rigel1;
     Rigel2 = rigel2;
     var revision = GetRevision();
     DexLookup = GetDexLookup(PersonalTable.SWSH, revision);
 }
コード例 #3
0
ファイル: SCBlockUtil.cs プロジェクト: tf139941/PKHeX
        public static string GetBlockFileNameWithoutExtension(SCBlock block)
        {
            var key  = block.Key;
            var name = $"{key:X8}";

            if (block.HasValue())
            {
                name += $" {block.GetValue()}";
            }
            return(name);
        }
コード例 #4
0
ファイル: SwishCrypto.cs プロジェクト: yanisdreemurr/PKHeX
        private const int BlockDataRatioEstimate2 = 555; // bytes per block, on average (stingy)

        private static IReadOnlyList <SCBlock> ReadBlocks(byte[] data)
        {
            var result = new List <SCBlock>(data.Length / BlockDataRatioEstimate2);
            int offset = 0;

            while (offset < data.Length - SIZE_HASH)
            {
                var block = SCBlock.ReadFromOffset(data, ref offset);
                result.Add(block);
            }

            return(result);
        }
コード例 #5
0
        /// <summary>
        /// Create a blank block array using the provided <see cref="arr"/> definition.
        /// </summary>
        /// <param name="arr">Block specification tuples (key, size)</param>
        /// <returns>List of blocks</returns>
        private static SCBlock[] GetBlankBlockArray(IReadOnlyList <uint> arr)
        {
            var blocks = new SCBlock[arr.Count / 2];

            for (int i = 0; i < blocks.Length; i++)
            {
                int index  = i * 2;
                var key    = arr[index];
                var length = (int)arr[index + 1];
                var dummy  = new byte[length];
                blocks[i] = new SCBlock(key, SCTypeCode.None, dummy);
            }
            return(blocks);
        }
コード例 #6
0
ファイル: Meta8.cs プロジェクト: aronson/PKHeX
        private static SCBlock[] GetBlankBlockArray(IReadOnlyList <uint> arr)
        {
            var blocks = new SCBlock[arr.Count / 2];

            for (int i = 0; i < blocks.Length; i++)
            {
                int index = i * 2;
                blocks[i] = new SCBlock {
                    Key = arr[index], Data = new byte[(int)arr[index + 1]]
                };
            }

            return(blocks);
        }
コード例 #7
0
ファイル: Meta8.cs プロジェクト: vvcln/PKHeX
        private static SCBlock[] GetBlankBlockArray(IReadOnlyList <int> arr, int totalBlocks)
        {
            var blocks = new SCBlock[totalBlocks];

            for (int i = 0; i < blocks.Length; i++)
            {
                blocks[i] = new SCBlock {
                    Data = Array.Empty <byte>()
                }
            }
            ;

            for (int i = 0; i < arr.Count; i += 2)
            {
                int index  = arr[i];
                int length = arr[i + 1];
                blocks[index].Data = new byte[length];
            }

            return(blocks);
        }
コード例 #8
0
ファイル: SCBlockUtil.cs プロジェクト: tf139941/PKHeX
        public static string GetBlockSummary(SCBlock b)
        {
            var sb = new StringBuilder();

            sb.Append("Key: ").AppendFormat("{0:X8}", b.Key).AppendLine();
            sb.Append("Type: ").Append(b.Type).AppendLine();
            if (b.Data.Length != 0)
            {
                sb.Append("Length: ").AppendFormat("{0:X8}", b.Data.Length).AppendLine();
            }

            if (b.SubType != 0)
            {
                sb.Append("SubType: ").Append(b.SubType).AppendLine();
            }
            else if (b.HasValue())
            {
                sb.Append("Value: ").Append(b.GetValue()).AppendLine();
            }

            return(sb.ToString());
        }
コード例 #9
0
ファイル: Record8.cs プロジェクト: Lusamine/PKHeX
 public Record8(SAV8SWSH sav, SCBlock block, IReadOnlyList <byte> maxes) : base(sav, block.Data) =>
コード例 #10
0
ファイル: BoxLayout8.cs プロジェクト: Lusamine/PKHeX
 public BoxLayout8(SAV8SWSH sav, SCBlock block) : base(sav, block.Data)
 {
 }
コード例 #11
0
ファイル: HallOfFameTime8.cs プロジェクト: Lusamine/PKHeX
 public HallOfFameTime8(SAV8SWSH sav, SCBlock block) : base(sav, block.Data)
 {
     Debug.Assert(Data.Length == 8);
 }
コード例 #12
0
ファイル: MyStatus8.cs プロジェクト: alnidu/PKHeX
 public MyStatus8(SAV8SWSH sav, SCBlock block) : base(sav, block.Data)
 {
 }
コード例 #13
0
 public PlayTime8(SaveFile sav, SCBlock block) : base(sav, block.Data)
 {
 }
コード例 #14
0
 public Daycare8(SaveFile sav, SCBlock block) : base(sav, block.Data)
 {
 }
コード例 #15
0
 public RaidSpawnList8(SaveFile sav, SCBlock block) : base(sav, block.Data)
 {
 }
コード例 #16
0
 public Misc8(SAV8SWSH sav, SCBlock block) : base(sav, block.Data)
 {
 }
コード例 #17
0
ファイル: EventWork8.cs プロジェクト: Orionsilver/PK8toPK7
 public EventWork8(SAV8SWSH sav, SCBlock block) : base(sav, block.Data)
 {
 }
コード例 #18
0
 public FieldMoveModelSave8(SAV8SWSH sav, SCBlock block) : base(sav, block.Data)
 {
 }
コード例 #19
0
 public Record8(SaveFile sav, SCBlock block, IReadOnlyList <byte> maxes) : base(sav, block.Data) =>
コード例 #20
0
ファイル: RaidSpawnList8.cs プロジェクト: jan2705/PKHeX
 public RaidSpawnList8(SaveFile sav, SCBlock block, int legal) : base(sav, block.Data)
 {
     CountAll  = block.Data.Length / RaidSpawnDetail.SIZE;
     CountUsed = legal;
 }
コード例 #21
0
 public Situation8(SAV8SWSH sav, SCBlock block) : base(sav, block.Data)
 {
 }
コード例 #22
0
ファイル: FashionUnlock8.cs プロジェクト: Lusamine/PKHeX
 public FashionUnlock8(SAV8SWSH sav, SCBlock block) : base(sav, block.Data)
 {
 }
コード例 #23
0
ファイル: MyItem8.cs プロジェクト: yanisdreemurr/PKHeX
 public MyItem8(SaveFile SAV, SCBlock block) : base(SAV, block.Data)
 {
 }
コード例 #24
0
 public Daycare8(SAV8SWSH sav, SCBlock block) : base(sav, block.Data)
 {
 }
コード例 #25
0
 public Zukan8(SAV8SWSH sav, SCBlock block) : base(sav, 0) => Block = block;
コード例 #26
0
 public FashionUnlock8(SaveFile sav, SCBlock block) : base(sav, block.Data)
 {
 }
コード例 #27
0
 public TrainerCard8(SAV8SWSH sav, SCBlock block) : base(sav, block.Data)
 {
 }
コード例 #28
0
ファイル: TitleScreen8.cs プロジェクト: nixhex/PKHeX
 public TitleScreen8(SAV8SWSH sav, SCBlock block) : base(sav, block.Data)
 {
 }
コード例 #29
0
 public TeamIndexes8(SAV8SWSH sav, SCBlock block) : base(sav, block.Data)
 {
 }
コード例 #30
0
ファイル: PlayTime8.cs プロジェクト: Lusamine/PKHeX
 public PlayTime8(SAV8SWSH sav, SCBlock block) : base(sav, block.Data)
 {
 }