src/yapf/yapf_costrail.hpp
changeset 9801 a6564ba05558
parent 9800 a8cbb9206502
child 9802 6589c004f0d9
equal deleted inserted replaced
9800:a8cbb9206502 9801:a6564ba05558
   143 	FORCEINLINE int ReservationCost(Node& n, TileIndex& tile, Trackdir trackdir, int skipped)
   143 	FORCEINLINE int ReservationCost(Node& n, TileIndex& tile, Trackdir trackdir, int skipped)
   144 	{
   144 	{
   145 		if (n.m_num_signals_passed >= m_sig_look_ahead_costs.Size() / 2) return 0;
   145 		if (n.m_num_signals_passed >= m_sig_look_ahead_costs.Size() / 2) return 0;
   146 
   146 
   147 		if (TrackOverlapsTracks(GetReservedTrackbits(tile), TrackdirToTrack(trackdir))) {
   147 		if (TrackOverlapsTracks(GetReservedTrackbits(tile), TrackdirToTrack(trackdir))) {
   148 			int cost = Yapf().PfGetSettings().rail_pbs_cross_penalty;
   148 			int cost = IsRailwayStationTile(tile) ? Yapf().PfGetSettings().rail_pbs_station_penalty : Yapf().PfGetSettings().rail_pbs_cross_penalty;
   149 			if (!IsDiagonalTrackdir(trackdir)) cost = (cost * YAPF_TILE_CORNER_LENGTH) / YAPF_TILE_LENGTH;
   149 			if (!IsDiagonalTrackdir(trackdir)) cost = (cost * YAPF_TILE_CORNER_LENGTH) / YAPF_TILE_LENGTH;
   150 			return cost * (skipped + 1);
   150 			return cost * (skipped + 1);
   151 		}
   151 		}
   152 		return 0;
   152 		return 0;
   153 	}
   153 	}