public static void Serialize(BinaryWriter s, GameState state) { s.Write(state.CurrentFrame); s.Write(state.TotalGameTime); s.Write(UUIDGenerator.GetUUID()); s.Write(state.activeTeams.Length); foreach (var at in state.activeTeams) { s.Write(at.Index); RTSTeam.Serialize(s, at.Team); } s.Write(state.tbMemBuildings.TotalTasks); foreach (var task in state.tbMemBuildings.Tasks) { var ebu = task as EnemyBuildingUpdater; EnemyBuildingUpdater.Serialize(s, ebu); } LevelGrid.Serialize(s, state); }