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

Function findAllTracksFilterTransform

src/OpenLoco/src/Vehicles/Routing.cpp:675–687  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

673 // 0x004A2E46 & 0x004A2DE4
674 template<typename FilterFunction, typename TransformFunction>
675 static void findAllTracksFilterTransform(RoutingResults& results, TrackNetworkSearchFlags searchFlags, const World::Pos3& loc, const TrackAndDirection::_TrackAndDirection trackAndDirection, const CompanyId company, const uint8_t trackType, FilterFunction&& filterFunction, TransformFunction&& transformFunction)
676 {
677 // Note: This function and its call chain findAllUsableTrackInNetwork and findAllUsableTrackPieces have been modified
678 // to not be recursive anymore.
679 LocationOfInterestQueue trackToCheck{ LocationOfInterest{ loc, trackAndDirection._data, company, trackType } };
680 while (!trackToCheck.empty())
681 {
682 const auto interest = trackToCheck.back();
683 trackToCheck.pop_back();
684 findAllUsableTrackInNetwork(trackToCheck, searchFlags, interest, filterFunction, results);
685 }
686 transformFunction(results);
687 }
688
689 template<typename FilterFunction>
690 static void findAllUsableRoadInNetwork(LocationOfInterestQueue& additionalRoadToCheck, const TrackNetworkSearchFlags searchFlags, const LocationOfInterest& initialInterest, FilterFunction&& filterFunction, RoutingResults& results);

Callers 7

sub_4A2AD7Function · 0.85
isBlockOccupiedFunction · 0.85
sub_4A2A58Function · 0.85
sub_4A2A77Function · 0.85

Calls 2

emptyMethod · 0.45

Tested by

no test coverage detected