public static void Serialize(BinaryWriter s, RTSRace race) { s.Write(race.FriendlyName); s.Write(race.ActiveUnits.Length); foreach (var d in race.ActiveUnits) { s.Write(d.Index); RTSUnitData.Serialize(s, d); } s.Write(race.ActiveBuildings.Length); foreach (var d in race.ActiveBuildings) { s.Write(d.Index); RTSBuildingData.Serialize(s, d); } s.Write(race.SCAction.TypeName); s.Write(race.SCMovement.TypeName); s.Write(race.SCTargeting.TypeName); }