public void Save(PlayerIndex player)
{
_playerIndex = player;
var xLevels = new XElement(XmlKeys.Levels);
foreach (var l in _mLevels)
{
xLevels.Add(l.Export());
}
var xDoc = new XDocument();
xDoc.Add(xLevels);
//Debug.WriteLine(xDoc.ToString());
#if XBOX360
IAsyncResult result;
if (!mDeviceSelected)
{
result = StorageDevice.BeginShowSelector(player, null, null);
result.AsyncWaitHandle.WaitOne();
device = StorageDevice.EndShowSelector(result);
result.AsyncWaitHandle.Close();
mDeviceSelected = true;
}
result = device.BeginOpenContainer("GravityShift", null, null);
result.AsyncWaitHandle.WaitOne();
container = device.EndOpenContainer(result);
result.AsyncWaitHandle.Close();
//container.DeleteFile("TrialLevelList.xml");
//container.DeleteFile("LevelList.xml");
Stream stream;
if (container.FileExists("LevelList.xml"))
{
container.DeleteFile("LevelList.xml");
}
stream = container.CreateFile("LevelList.xml");
XmlSerializer serializer = new XmlSerializer(typeof(SaveGameData));
SaveGameData data = new SaveGameData();
data.savedata = xLevels;
serializer.Serialize(stream, data);
stream.Close();
container.Dispose();
#else
xDoc.Save(LevelList);
#endif
}