コード例 #1
0
 /// <summary>
 /// Tries to get an <see cref="SAV3GCMemoryCard"/> object from the input parameters.
 /// </summary>
 /// <param name="data">Binary data</param>
 /// <param name="memcard">Output result</param>
 /// <returns>True if file object reference is valid, false if none found.</returns>
 public static bool TryGetMemoryCard(byte[] data, out SAV3GCMemoryCard?memcard)
 {
     if (!SAV3GCMemoryCard.IsMemoryCardSize(data))
     {
         memcard = null;
         return(false);
     }
     memcard = new SAV3GCMemoryCard(data);
     return(true);
 }
コード例 #2
0
 /// <summary>
 /// Checks if the length is too big to be a detectable file.
 /// </summary>
 /// <param name="length">File size</param>
 public static bool IsFileTooBig(long length)
 {
     if (length <= 0x100000)
     {
         return(false);
     }
     if (length == SaveUtil.SIZE_G4BR)
     {
         return(false);
     }
     if (SAV3GCMemoryCard.IsMemoryCardSize(length))
     {
         return(false); // pbr/GC have size > 1MB
     }
     return(true);
 }
コード例 #3
0
 /// <summary>
 /// Checks if the length is too big to be a detectable file.
 /// </summary>
 /// <param name="length">File size</param>
 public static bool IsFileTooBig(long length)
 {
     if (length <= 0x10_0000) // 1 MB
     {
         return(false);
     }
     if (length > int.MaxValue)
     {
         return(true);
     }
     if (SaveUtil.IsSizeValid((int)length))
     {
         return(false);
     }
     if (SAV3GCMemoryCard.IsMemoryCardSize(length))
     {
         return(false); // pbr/GC have size > 1MB
     }
     return(true);
 }
コード例 #4
0
ファイル: SaveUtil.cs プロジェクト: solleo1989/PKHeX
        public static SaveFile? GetVariantSAV(SAV3GCMemoryCard MC)
        {
            // Pre-check for header/footer signatures
            SaveFile sav;
            byte[] data = MC.SelectedSaveData;
            CheckHeaderFooter(ref data, out var header, out var footer);

            switch (MC.SelectedGameVersion)
            {
                // Side Games
                case COLO: sav = new SAV3Colosseum(data, MC); break;
                case XD: sav = new SAV3XD(data, MC); break;
                case RSBOX: sav = new SAV3RSBox(data, MC); break;

                // No pattern matched
                default: return null;
            }
            sav.Header = header;
            sav.Footer = footer;
            return sav;
        }
コード例 #5
0
 public SAV3Colosseum(byte[] data, SAV3GCMemoryCard MC) : this(data, MC.Data)
 {
     this.MC = MC;
 }
コード例 #6
0
 public SAV3XD(byte[] data, SAV3GCMemoryCard MC) : this(data) { this.MC = MC; BAK = MC.Data; }
コード例 #7
0
 public SAV3XD(byte[] data, SAV3GCMemoryCard memCard) : this(data, memCard.Data) => MemoryCard = memCard;
コード例 #8
0
        public readonly bool Japanese = false; // todo?

        public SAV3RSBox(byte[] data, SAV3GCMemoryCard MC) : this(data, MC.Data)
        {
            this.MC = MC;
        }