/// <summary>
/// Imports a CartridgeSavegame from metadata associated to a savegame
/// file.
/// </summary>
/// <param name="gwsFilePath">Path to the GWS savegame file.</param>
/// <param name="isf">Isostore file to use to load.</param>
/// <returns>The cartridge savegame.</returns>
///
public static CartridgeSavegame FromCache(string gwsFilePath, IsolatedStorageFile isf)
{
// Checks that the metadata file exists.
string mdFile = gwsFilePath + ".mf";
if (!(isf.FileExists(mdFile)))
{
throw new System.IO.FileNotFoundException(mdFile + " does not exist.");
}
// Creates a serializer.
DataContractSerializer serializer = new DataContractSerializer(typeof(CartridgeSavegame));
// Reads the object.
CartridgeSavegame cs;
using (IsolatedStorageFileStream fs = isf.OpenFile(mdFile, System.IO.FileMode.Open, System.IO.FileAccess.Read))
{
// Reads the object.
object o = serializer.ReadObject(fs);
// Casts it.
cs = (CartridgeSavegame)o;
}
// Adds non-serialized content.
cs.SavegameFile = gwsFilePath;
cs.MetadataFile = mdFile;
// Returns it.
return cs;
}