public Train CopyTrain(Train orig, int offsetMin, string name, bool copyAll) { var t = new Train(orig.Direction, orig._parent) { TName = name, Comment = orig.Comment, Days = orig.Days, Last = orig.Last, Locomotive = orig.Locomotive, Mbr = orig.Mbr, }; if (copyAll) { foreach (var attr in orig.Attributes) { if (t.GetAttribute <string>(attr.Key) == null) { t.SetAttribute(attr.Key, attr.Value); } } } var path = orig.GetPath(); if (orig._parent.Type == TimetableType.Network) { t.AddAllArrDeps(path); } else { foreach (var sta in orig._parent.Stations) { t.AddArrDep(sta, Timetable.LINEAR_ROUTE_ID); } } InternalCopyArrDeps(orig, t, offsetMin); return(t); }