Skip to content

Commit

Permalink
Merge pull request #1027 from CitiesSkylinesMods/ClosureKiller_Proces…
Browse files Browse the repository at this point in the history
…sBuilding

Removed ProcessBuilding method that used a closure.
  • Loading branch information
DaEgi01 committed Nov 4, 2020
2 parents 3c6f7f1 + 32ab315 commit a579986
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 19 deletions.
11 changes: 2 additions & 9 deletions TLM/TLM/Manager/Impl/RoutingManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -471,15 +471,8 @@ protected void RecalculateLaneEndRoutingData(ushort segmentId,
return true;
});

bool isTollBooth = false;
if (buildingId != 0) {
Constants.ServiceFactory.BuildingService.ProcessBuilding(
buildingId,
(ushort bId, ref Building building) => {
isTollBooth = building.Info.m_buildingAI is TollBoothAI;
return true;
});
}
bool isTollBooth = buildingId != 0
&& buildingId.ToBuilding().Info.m_buildingAI is TollBoothAI;

bool nextIsSimpleJunction = false;
bool nextIsSplitJunction = false;
Expand Down
4 changes: 4 additions & 0 deletions TLM/TLM/Util/Shortcuts.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ internal static void Swap<T>(this List<T> list, int index1, int index2) {

private static NetLane[] _laneBuffer = Singleton<NetManager>.instance.m_lanes.m_buffer;

private static Building[] _buildingBuffer = Singleton<BuildingManager>.instance.m_buildings.m_buffer;

private static ExtSegmentEnd[] _segEndBuff => segEndMan.ExtSegmentEnds;

internal static IExtSegmentEndManager segEndMan => Constants.ManagerFactory.ExtSegmentEndManager;
Expand All @@ -66,6 +68,8 @@ internal static void Swap<T>(this List<T> list, int index1, int index2) {

internal static ref NetSegment ToSegment(this ushort segmentId) => ref _segBuffer[segmentId];

internal static ref Building ToBuilding(this ushort buildingId) => ref _buildingBuffer[buildingId];

internal static NetInfo.Lane GetLaneInfo(ushort segmentId, int laneIndex) =>
segmentId.ToSegment().Info.m_lanes[laneIndex];

Expand Down
6 changes: 0 additions & 6 deletions TLM/TMPE.CitiesGameBridge/Service/BuildingService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,5 @@ public bool CheckBuildingFlags(ushort buildingId,

return expectedResult == null ? result != 0 : result == expectedResult;
}

public void ProcessBuilding(ushort buildingId, BuildingHandler handler) {
handler(
buildingId,
ref Singleton<BuildingManager>.instance.m_buildings.m_buffer[buildingId]);
}
}
}
4 changes: 0 additions & 4 deletions TLM/TMPE.GenericGameBridge/Service/IBuildingService.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
namespace GenericGameBridge.Service {
public delegate bool BuildingHandler(ushort buildingId, ref Building building);

public interface IBuildingService {
bool CheckBuildingFlags(ushort buildingId,
Building.Flags flagMask,
Building.Flags? expectedResult = default);

bool IsBuildingValid(ushort buildingId);

void ProcessBuilding(ushort buildingId, BuildingHandler handler);
}
}

0 comments on commit a579986

Please sign in to comment.