Исправлена загрузка карты

This commit is contained in:
d.agil 2022-11-02 13:02:42 +04:00 committed by Данияр Аглиуллов
parent 0d29e1742b
commit 00c78f3e32
3 changed files with 36 additions and 22 deletions

View File

@ -180,6 +180,11 @@ namespace AirBomber
} }
} }
public void Clear()
{
SetAirplanes.Clear();
}
/// <summary> /// <summary>
/// Получение данных в виде строки /// Получение данных в виде строки
/// </summary> /// </summary>

View File

@ -142,7 +142,14 @@ namespace AirBomber
map = new WallMap(); map = new WallMap();
break; break;
} }
_mapStorages[nameMapStorage] = new(_pictureWidth, _pictureHeight, map); if (_mapStorages.ContainsKey(nameMapStorage))
{
_mapStorages[nameMapStorage].Clear();
}
else
{
_mapStorages[nameMapStorage] = new(_pictureWidth, _pictureHeight, map);
}
_mapStorages[nameMapStorage].LoadData(lineData.Split(separatorData, StringSplitOptions.RemoveEmptyEntries)); _mapStorages[nameMapStorage].LoadData(lineData.Split(separatorData, StringSplitOptions.RemoveEmptyEntries));
return true; return true;
} }
@ -158,33 +165,30 @@ namespace AirBomber
{ {
return false; return false;
} }
List<string> strs = new List<string>();
using (StreamReader fs = new(filename)) using (StreamReader fs = new(filename))
{ {
var formatData = fs.ReadLine() ?? string.Empty;
bool isNotMapsCollection = !formatData.Contains("MapsCollection");
if (formatData.Contains("Map") && isNotMapsCollection)
{
var nameMap = fs.ReadLine().Replace("Name: ", "");
var elem = fs.ReadLine().Split(separatorDict);
return LoadMap(nameMap, elem[0], elem[1]);
}
if (isNotMapsCollection)
{
//если нет такой записи, то это не те данные
return false;
}
//очищаем записи
_mapStorages.Clear();
while (!fs.EndOfStream) while (!fs.EndOfStream)
{ {
strs.Add(fs.ReadLine()); var elem = fs.ReadLine().Split(separatorDict);
LoadMap(elem[0], elem[1], elem[2]);
} }
return true;
} }
bool isNotMapsCollection = !strs[0].Contains("MapsCollection");
if (strs[0].Contains("Map") && isNotMapsCollection)
{
var elem = strs[2].Split(separatorDict);
return LoadMap(strs[1].Replace("Name: ", ""), elem[0], elem[1]);
}
else if (isNotMapsCollection)
{
//если нет такой записи, то это не те данные
return false;
}
//очищаем записи
_mapStorages.Clear();
for (int i = 1; i < strs.Count; ++i)
{
var elem = strs[i].Split(separatorDict);
LoadMap(elem[0], elem[1], elem[2]);
}
return true;
} }
} }
} }

View File

@ -109,5 +109,10 @@ namespace AirBomber
} }
} }
public void Clear()
{
_places.Clear();
}
} }
} }