public void PopulateHistoryData() { bool isReadingBuildings = false; StateBuilding tempStateBuilding = new StateBuilding(); List tempCoresList = new(); using StreamReader sr = new(HistoryFilePath); string line; while ((line = sr.ReadLine()) != null) { string value; string key; if (line.Replace("\t", "").Contains("}") || line.IsEmptyOrWhiteSpace()) value = null; else { int index = line.IndexOf("#"); if (index >= 0) line = line.Substring(0, index); var seperatedLines = line.Replace(" ", "").Split('='); key = seperatedLines[0]; value = seperatedLines[1]; } if (isReadingBuildings == false) { switch (line) { case string when line.StartsWith("state_building"): //Problem: It is ignoring state-buildings! isReadingBuildings = true; tempStateBuilding = new(); break; case string when line.StartsWith("owner"): Owner = value; break; case string when line.StartsWith("controller"): Controller = value; break; case string when line.StartsWith("trade_goods"): TradeGoods = value; break; case string when line.StartsWith("life_rating"): LifeRating = Convert.ToInt16(value); break; case string when line.StartsWith("colonial"): Colonial = Convert.ToInt16(value); break; case string when line.StartsWith("terrain"): Terrain = value; break; case string when line.StartsWith("add_core"): tempCoresList.Add(value); break; case string when line.StartsWith("naval_base"): Naval_Base = Convert.ToInt16(value); break; case string when line.StartsWith("fort"): Fort = Convert.ToInt16(value); break; case string when line.StartsWith("railroad"): Railroad = Convert.ToInt16(value); break; default: break; } } else { switch (line) { case string when line.Contains("level"): //Problem: It is ignoring state-buildings! tempStateBuilding.Level = value; break; case string when line.Contains("building"): //Problem: It is ignoring state-buildings! tempStateBuilding.Building = value; break; case string when line.Contains("upgrade"): //Problem: It is ignoring state-buildings! tempStateBuilding.Upgrade = value; break; default: State_Buildings.Add(tempStateBuilding); isReadingBuildings = false; break; } } } Cores = tempCoresList; }