public virtual void Load(XmlReader xmlReader) { while (xmlReader.Name != "PatternID") { xmlReader.Read(); if (xmlReader.EOF == true) { return; } } xmlReader.Read(); nPatternID = int.Parse(xmlReader.Value); bool bBreak = false; for ( ;;) { xmlReader.Read(); switch (xmlReader.NodeType) { case XmlNodeType.Element: { switch (xmlReader.Name) { case "BasicGamePiece": { BasicGamePiece temp = new BasicGamePiece(); temp.Load(xmlReader); arrayGamePieces.Add(temp); break; } case "NumberOfTimesSeen": bBreak = true; break; } } break; } if (bBreak == true) { break; } } /// should be on Number of times seen but doesn't hurt to check if (xmlReader.Name != "NumberOfTimesSeen") { return; } xmlReader.Read(); nNumberOfTimesSeen = int.Parse(xmlReader.Value); while (xmlReader.Name != "NumberOfTimesSeenInWinningGame") { xmlReader.Read(); if (xmlReader.EOF == true) { return; } } xmlReader.Read(); nNumberOfTimesSeenInWinningGame = int.Parse(xmlReader.Value); while (xmlReader.Name != "NumberOfTimesSeenInLosingGame") { xmlReader.Read(); if (xmlReader.EOF == true) { return; } } xmlReader.Read(); nNumberOfTimesSeenInLosingGame = int.Parse(xmlReader.Value); while (xmlReader.Name != "EndingPattern") { xmlReader.Read(); if (xmlReader.EOF == true) { return; } } xmlReader.Read(); if (xmlReader.Value == "True") { bIsEndingPattern = true; } else { bIsEndingPattern = false; } while (xmlReader.Name != "Weighting") { xmlReader.Read(); if (xmlReader.EOF == true) { return; } } xmlReader.Read(); nWeighting = int.Parse(xmlReader.Value); while (xmlReader.Name != "Response") { xmlReader.Read(); if (xmlReader.EOF == true) { return; } } while (xmlReader.Name != "ResponsePresent") { xmlReader.Read(); if (xmlReader.EOF == true) { return; } } xmlReader.Read(); int nResponse = int.Parse(xmlReader.Value); if (nResponse != 0) { bResponsePresent = true; bgpResponse = new BasicGamePiece(); bgpResponse.Load(xmlReader); } }