WebGame.Game.Load C# (CSharp) Method

Load() public static method

public static Load ( byte data ) : Game
data byte
return Game
        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;
            }
        }