示例#1
0
            public static Type00Block FromReader(BinaryReader br)
            {
                Type00Block t0b = new Type00Block();

                t0b.Read(br);
                return(t0b);
            }
示例#2
0
 // Recursive
 private bool ReadBlocks(BinaryReader br, int?address, int amount, List <Type00Block> t00blocks)
 {
     if (amount > 0 && address != null)
     {
         List <Type00Block> t00NextBlocks = new List <Type00Block>();
         br.BaseStream.Seek(address.Value, SeekOrigin.Begin);
         for (int i = 0; i < amount; i++)
         {
             Type00Block t0b = Type00Block.FromReader(br);
             t00NextBlocks.Add(t0b);
         }
         for (int i = 0; i < t00NextBlocks.Count; i++)
         {
             if (!ReadBlocks(br, t00NextBlocks[i].nextAddress, t00NextBlocks[i].nextAmount, t00NextBlocks))
             {
                 return(false);
             }
         }
         t00blocks.AddRange(t00NextBlocks);
     }
     return(true);
 }