public static Game Load(byte[] data)
{
using (var stream = new MemoryStream(data))
{
var result = ProtoBuf.Serializer.Deserialize<Game>(stream);
if (String.IsNullOrEmpty(result.GameName))
result.GameName = "Game #" + result.Id;
foreach (var starSystem in result.StarSystems)
{
starSystem.Game = result;
foreach (var entity in starSystem.Entites)
{
entity.Game = result;
entity.StarSystem = starSystem;
var ship = entity as Ship;
if (ship != null)
{
if (ship.DefaultShipNumber != 0)
result.DefaultShips[ship.DefaultShipNumber] = ship;
starSystem.Ships.Add(ship);
}
}
}
foreach (var player in result.Players)
player.Game = result;
return result;
}
}