public bool CheckForSave()
{
IAsyncResult result;
try
{
if (!DeviceSelected && !Guide.IsVisible)
{
StorageDevice.BeginShowSelector(((ControllerControl)_mControls).ControllerIndex, SelectDevice, null);
DeviceSelected = true;
}
}
catch (Exception e)
{
var errTemp = e.ToString();
DeviceSelected = false;
return false;
}
if (_device == null || !_device.IsConnected)
{
//mDeviceSelected = false;
return false;
}
try
{
result = _device.BeginOpenContainer("Mr Gravity", null, null);
result.AsyncWaitHandle.WaitOne();
_container = _device.EndOpenContainer(result);
result.AsyncWaitHandle.Close();
}
catch (Exception e)
{
var execTemp = e.ToString();
_device = null;
if (_container != null)
{
_container.Dispose();
}
_container = null;
DeviceSelected = false;
return false;
}
try
{
if (_container.FileExists("LevelList.xml"))
{
var stream = _container.OpenFile("LevelList.xml", FileMode.Open);
var serializer = new XmlSerializer(typeof(SaveGameData));
var data = (SaveGameData)serializer.Deserialize(stream);
stream.Close();
var i = 0;
foreach (var xLevels in data.SaveData.Elements())
{
foreach (var xLevelData in xLevels.Elements())
{
foreach (var xLevel in xLevelData.Elements())
{
if (xLevel.Name == XmlKeys.Unlocked && xLevel.Value == XmlKeys.True)
_mLevels[i].Unlock();
if (xLevel.Name == XmlKeys.Timerstar)
_mLevels[i].SetStar(LevelInfo.StarTypes.Time, Convert.ToInt32(xLevel.Value));
if (xLevel.Name == XmlKeys.Collectionstar)
_mLevels[i].SetStar(LevelInfo.StarTypes.Collection, Convert.ToInt32(xLevel.Value));
if (xLevel.Name == XmlKeys.Deathstar)
_mLevels[i].SetStar(LevelInfo.StarTypes.Death, Convert.ToInt32(xLevel.Value));
}
i++;
}
}
}
}
catch (Exception e)
{
var exceTemp = e.ToString();
if (_container != null)
{
_container.Dispose();
}
_container = null;
_device = null;
DeviceSelected = false;
return false;
}
if (_device.IsConnected)
{
_container.Dispose();
}
else
{
_device = null;
_container = null;
DeviceSelected = false;
}
UpdateStarCount();
return true;
}