Skip to content

Commit 51c0715

Browse files
authored
Merge pull request #1156 from CitiesSkylinesMods/refactoring/ForEachLane
Removed weird nested ForEachLane method.
2 parents 6d4330c + 6334c9a commit 51c0715

File tree

1 file changed

+34
-41
lines changed

1 file changed

+34
-41
lines changed

TLM/TLM/State/Flags.cs

+34-41
Original file line numberDiff line numberDiff line change
@@ -880,51 +880,44 @@ internal static IDictionary<uint, ExtVehicleType> GetAllLaneAllowedVehicleTypes(
880880
IDictionary<uint, ExtVehicleType> ret = new Dictionary<uint, ExtVehicleType>();
881881

882882
for (ushort segmentId = 0; segmentId < NetManager.MAX_SEGMENT_COUNT; ++segmentId) {
883-
// Begin local function
884-
bool ForEachLane(ushort segId, ref NetSegment segment) {
885-
if ((segment.m_flags & (NetSegment.Flags.Created | NetSegment.Flags.Deleted)) !=
886-
NetSegment.Flags.Created) {
887-
return true;
888-
}
883+
ref NetSegment segment = ref segmentId.ToSegment();
884+
if ((segment.m_flags & (NetSegment.Flags.Created | NetSegment.Flags.Deleted)) !=
885+
NetSegment.Flags.Created) {
886+
continue;
887+
}
889888

890-
ExtVehicleType?[] allowedTypes = laneAllowedVehicleTypesArray[segId];
891-
if (allowedTypes == null) {
892-
return true;
893-
}
889+
ExtVehicleType?[] allowedTypes = laneAllowedVehicleTypesArray[segmentId];
890+
if (allowedTypes == null) {
891+
continue;
892+
}
894893

895-
Constants.ServiceFactory.NetService.IterateSegmentLanes(
896-
segId,
897-
ref segment,
898-
(uint laneId,
899-
ref NetLane lane,
900-
NetInfo.Lane laneInfo,
901-
ushort sId,
902-
ref NetSegment seg,
903-
byte laneIndex) =>
904-
{
905-
if (laneInfo.m_vehicleType == VehicleInfo.VehicleType.None) {
906-
return true;
907-
}
908-
909-
if (laneIndex >= allowedTypes.Length) {
910-
return true;
911-
}
912-
913-
ExtVehicleType? allowedType = allowedTypes[laneIndex];
914-
915-
if (allowedType == null) {
916-
return true;
917-
}
918-
919-
ret.Add(laneId, (ExtVehicleType)allowedType);
894+
Constants.ServiceFactory.NetService.IterateSegmentLanes(
895+
segmentId,
896+
ref segment,
897+
(uint laneId,
898+
ref NetLane lane,
899+
NetInfo.Lane laneInfo,
900+
ushort sId,
901+
ref NetSegment seg,
902+
byte laneIndex) =>
903+
{
904+
if (laneInfo.m_vehicleType == VehicleInfo.VehicleType.None) {
920905
return true;
921-
});
922-
return true;
923-
}
906+
}
907+
908+
if (laneIndex >= allowedTypes.Length) {
909+
return true;
910+
}
911+
912+
ExtVehicleType? allowedType = allowedTypes[laneIndex];
924913

925-
// ↑↑↑
926-
// end local function
927-
ForEachLane(segmentId, ref segmentId.ToSegment());
914+
if (allowedType == null) {
915+
return true;
916+
}
917+
918+
ret.Add(laneId, (ExtVehicleType)allowedType);
919+
return true;
920+
});
928921
}
929922

930923
return ret;

0 commit comments

Comments
 (0)