Skip to content

Commit

Permalink
Added ushort.ToBuilding() extension method.
Browse files Browse the repository at this point in the history
Redirected call of ProcessBuilding to new ushort.ToBuilding() method.
Removed ProcessBuilding method since it used a closure.
  • Loading branch information
DaEgi01 committed Nov 4, 2020
1 parent 0b7fecf commit 32ab315
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 19 deletions.
12 changes: 3 additions & 9 deletions TLM/TLM/Manager/Impl/RoutingManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ namespace TrafficManager.Manager.Impl {
using TrafficManager.API.Traffic.Enums;
using TrafficManager.State.ConfigData;
using TrafficManager.State;
using TrafficManager.Util;

public class RoutingManager
: AbstractGeometryObservingManager,
Expand Down Expand Up @@ -470,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 32ab315

Please sign in to comment.