TerrainDisplay.MPQ.WMO.WMOGroupParser.ReadRequiredChunks C# (CSharp) Method

ReadRequiredChunks() private static method

private static ReadRequiredChunks ( BinaryReader br, WMOGroup currentWMOGroup ) : void
br System.IO.BinaryReader
currentWMOGroup WMOGroup
return void
        private static void ReadRequiredChunks(BinaryReader br, WMOGroup currentWMOGroup)
        {
            uint type = 0;
            uint size = 0;

            var curPos = AdvanceToNextChunk(br, br.BaseStream.Position, ref type, ref size);
            if (type == Signatures.MVER)
            {
                ReadMVER(br, currentWMOGroup);
            }
            else
            {
                Console.WriteLine("ERROR: WMO Group did not have required chunk MVER");
            }

            curPos = AdvanceToNextChunk(br, curPos, ref type, ref size);
            if (type == Signatures.MOGP)
            {
                size = 68; // MOGP is stupid and wants to use the entire rest of the file as its size
                ReadMOGP(br, currentWMOGroup);
            }
            else
            {
                Console.WriteLine("ERROR: WMO Group did not have required chunk MOGP");
            }

            curPos = AdvanceToNextChunk(br, curPos, ref type, ref size);
            if (type == Signatures.MOPY)
            {
                ReadMOPY(br, currentWMOGroup, size);
            }
            else
            {
                Console.WriteLine("ERROR: WMO Group did not have required chunk MOPY");
            }

            curPos = AdvanceToNextChunk(br, curPos, ref type, ref size);
            if (type == Signatures.MOVI)
            {
                ReadMOVI(br, currentWMOGroup);
            }
            else
            {
                Console.WriteLine("ERROR: WMO Group did not have required chunk MOVI");
            }

            curPos = AdvanceToNextChunk(br, curPos, ref type, ref size);
            if (type == Signatures.MOVT)
            {
                ReadMOVT(br, currentWMOGroup, size);
            }
            else
            {
                Console.WriteLine("ERROR: WMO Group did not have required chunk MOVT");
            }

            curPos = AdvanceToNextChunk(br, curPos, ref type, ref size);
            if (type == Signatures.MONR)
            {
                ReadMONR(br, currentWMOGroup);
            }
            else
            {
                Console.WriteLine("ERROR: WMO Group did not have required chunk MONR");
            }

            curPos = AdvanceToNextChunk(br, curPos, ref type, ref size);
            if (type == Signatures.MOTV)
            {
                ReadMOTV1(br, currentWMOGroup, size);
            }
            else
            {
                Console.WriteLine("ERROR: WMO Group did not have required chunk MOTV1");
            }

            curPos = AdvanceToNextChunk(br, curPos, ref type, ref size);
            if (type == Signatures.MOBA)
            {
                ReadMOBA(br, currentWMOGroup, size);
            }
            else
            {
                Console.WriteLine("ERROR: WMO Group did not have required chunk MOBA");
            }

            br.BaseStream.Seek(curPos + size, SeekOrigin.Begin); // seek to the end of the required fields
        }