| 1503 | } |
| 1504 | |
| 1505 | ApplyTrackModsResult applyRoadModsToTrackNetwork(const World::Pos3& pos, Vehicles::TrackAndDirection::_RoadAndDirection roadAndDirection, CompanyId company, uint8_t roadType, uint8_t flags, ModSection modSelection, uint8_t roadModObjIds) |
| 1506 | { |
| 1507 | ApplyTrackModsResult result{}; |
| 1508 | result.cost = 0; |
| 1509 | result.allPlacementsFailed = true; |
| 1510 | result.networkTooComplex = false; |
| 1511 | |
| 1512 | if (modSelection == Track::ModSection::single) |
| 1513 | { |
| 1514 | LocationOfInterest interest{ pos, roadAndDirection._data, company, roadType }; |
| 1515 | applyRoadModToRoad(interest, flags, nullptr, modSelection, roadType, roadModObjIds, result.cost, company, result.allPlacementsFailed); |
| 1516 | return result; |
| 1517 | } |
| 1518 | |
| 1519 | RoutingResults routingResults{ kTrackModHashSetSize }; |
| 1520 | |
| 1521 | auto filterFunction = [flags, modSelection, roadType, roadModObjIds, &result, company, &routingResults](const LocationOfInterest& interest) { |
| 1522 | return applyRoadModToRoad(interest, flags, &routingResults, modSelection, roadType, roadModObjIds, result.cost, company, result.allPlacementsFailed); |
| 1523 | }; |
| 1524 | findAllRoadsFilterTransform(routingResults, TrackNetworkSearchFlags::none, pos, roadAndDirection, company, roadType, filterFunction, kNullTransformFunction); |
| 1525 | result.networkTooComplex = routingResults.reachableLocs.count >= routingResults.reachableLocs.maxEntries; |
| 1526 | return result; |
| 1527 | } |
| 1528 | |
| 1529 | // 0x0047A8F0 |
| 1530 | static bool removeRoadModToTrack(const LocationOfInterest& interest, const uint8_t flags, RoutingResults* results, ModSection modSelection, uint8_t roadObjectId, uint8_t roadModObjectIds, currency32_t& totalCost, CompanyId companyId) |
no test coverage detected