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

Function isBlockOccupied

src/OpenLoco/src/Vehicles/Routing.cpp:883–902  ·  view source on GitHub ↗

0x004A2A39

Source from the content-addressed store, hash-verified

881
882 // 0x004A2A39
883 bool isBlockOccupied(const World::Pos3& loc, const TrackAndDirection::_TrackAndDirection trackAndDirection, const CompanyId company, const uint8_t trackType)
884 {
885 // 0x001135F88
886 uint16_t routingTransformData = 0;
887
888 auto filterFunction = [&routingTransformData](const LocationOfInterest& interest) { return findOccupationByBlock(interest, routingTransformData); };
889
890 RoutingResults interestMap{ kSignalHashSetSize };
891
892 findAllTracksFilterTransform(
893 interestMap,
894 TrackNetworkSearchFlags::unk2,
895 loc,
896 trackAndDirection,
897 company,
898 trackType,
899 filterFunction,
900 [](RoutingResults&) {});
901 return routingTransformData & 1;
902 }
903
904 // 0x004AC217
905 // Passes occupied state via _routingTransformData

Callers 2

sub_4ACEF1Function · 0.85
placeDownVehicleFunction · 0.85

Calls 2

findOccupationByBlockFunction · 0.85

Tested by

no test coverage detected