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

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>

View File

@ -142,7 +142,14 @@ namespace AirBomber
map = new WallMap();
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));
return true;
}
@ -158,33 +165,30 @@ namespace AirBomber
{
return false;
}
List<string> strs = new List<string>();
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)
{
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();
}
}
}