MCPcopy Create free account
hub / github.com/OpenLoco/OpenLoco / applyTrackModsToTrackNetwork

Function applyTrackModsToTrackNetwork

src/OpenLoco/src/Vehicles/Routing.cpp:1300–1322  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1298 }
1299
1300 ApplyTrackModsResult applyTrackModsToTrackNetwork(const World::Pos3& pos, Vehicles::TrackAndDirection::_TrackAndDirection trackAndDirection, CompanyId company, uint8_t trackType, uint8_t flags, ModSection modSelection, uint8_t trackModObjIds)
1301 {
1302 ApplyTrackModsResult result{};
1303 result.cost = 0;
1304 result.allPlacementsFailed = true;
1305 result.networkTooComplex = false;
1306
1307 if (modSelection == Track::ModSection::single)
1308 {
1309 LocationOfInterest interest{ pos, trackAndDirection._data, company, trackType };
1310 applyTrackModToTrack(interest, flags, nullptr, modSelection, trackType, trackModObjIds, result.cost, company, result.allPlacementsFailed);
1311 return result;
1312 }
1313
1314 RoutingResults routingResults{ kTrackModHashSetSize };
1315
1316 auto filterFunction = [flags, modSelection, trackType, trackModObjIds, &result, company, &routingResults](const LocationOfInterest& interest) {
1317 return applyTrackModToTrack(interest, flags, &routingResults, modSelection, trackType, trackModObjIds, result.cost, company, result.allPlacementsFailed);
1318 };
1319 findAllTracksFilterTransform(routingResults, TrackNetworkSearchFlags::none, pos, trackAndDirection, company, trackType, filterFunction, kNullTransformFunction);
1320 result.networkTooComplex = routingResults.reachableLocs.count >= routingResults.reachableLocs.maxEntries;
1321 return result;
1322 }
1323
1324 currency32_t removeTrackModsToTrackNetwork(const World::Pos3& pos, Vehicles::TrackAndDirection::_TrackAndDirection trackAndDirection, CompanyId company, uint8_t trackType, uint8_t flags, ModSection modSelection, uint8_t trackModObjIds)
1325 {

Callers 1

createTrackModFunction · 0.85

Calls 2

applyTrackModToTrackFunction · 0.85

Tested by

no test coverage detected