Changeset - r6130:441db4eef51a
[Not reviewed]
master
0 2 0
KUDr - 18 years ago 2007-02-23 21:36:43
kudr@openttd.org
(svn r8867) -Fix(r8866): revert yapf_costrail.hpp commited by mistake, helpers.hpp had wrong line ending
1 file changed with 3 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/yapf/yapf_costrail.hpp
Show inline comments
 
@@ -57,40 +57,40 @@ public:
 
		if (TrackFollower::Allow90degTurns()
 
				&& ((TrackdirToTrackdirBits(td2) & (TrackdirBits)TrackdirCrossesTrackdirs(td1)) != 0)) {
 
			// 90-deg curve penalty
 
			cost += Yapf().PfGetSettings().rail_curve90_penalty;
 
		} else if (td2 != NextTrackdir(td1)) {
 
			// 45-deg curve penalty
 
			cost += Yapf().PfGetSettings().rail_curve45_penalty;
 
		}
 
		return cost;
 
	}
 

	
 
	/** return one tile cost. If tile is a tunnel entry, it is moved to the end of tunnel */
 
	FORCEINLINE int OneTileCost(TileIndex prev_tile, TileIndex& tile, Trackdir trackdir)
 
	FORCEINLINE int OneTileCost(TileIndex& tile, Trackdir trackdir)
 
	{
 
		int cost = 0;
 
		// set base cost
 
		if (IsDiagonalTrackdir(trackdir)) {
 
			cost += YAPF_TILE_LENGTH;
 
			switch (GetTileType(tile)) {
 
				case MP_STREET:
 
					/* Increase the cost for level crossings */
 
					if (IsLevelCrossing(tile))
 
						cost += Yapf().PfGetSettings().rail_crossing_penalty;
 
					break;
 

	
 
				case MP_STATION:
 
					// penalty for passing station tiles
 
					cost += Yapf().PfGetSettings().rail_station_penalty * DistanceManhattan(prev_tile, tile);
 
					cost += Yapf().PfGetSettings().rail_station_penalty;
 
					break;
 

	
 
				default:
 
					break;
 
			}
 
		} else {
 
			// non-diagonal trackdir
 
			cost = YAPF_TILE_CORNER_LENGTH;
 
		}
 
		return cost;
 
	}
 

	
 
@@ -193,25 +193,25 @@ public:
 
		Trackdir  prev_trackdir  = (n.m_parent != NULL) ? n.m_parent->GetLastTrackdir() : INVALID_TRACKDIR;
 
		TileType  prev_tile_type = (n.m_parent != NULL) ? GetTileType(n.m_parent->GetLastTile()) : MP_VOID;
 

	
 
		TileIndex tile = n.m_key.m_tile;
 
		Trackdir trackdir = n.m_key.m_td;
 
		TileType tile_type = GetTileType(tile);
 

	
 
		RailType rail_type = GetTileRailType(tile, TrackdirToTrack(trackdir));
 

	
 
		bool target_seen = Yapf().PfDetectDestination(tile, trackdir);
 

	
 
		while (true) {
 
			segment_cost += Yapf().OneTileCost(prev_tile, tile, trackdir);
 
			segment_cost += Yapf().OneTileCost(tile, trackdir);
 
			segment_cost += Yapf().CurveCost(prev_trackdir, trackdir);
 
			segment_cost += Yapf().SlopeCost(tile, trackdir);
 
			segment_cost += Yapf().SignalCost(n, tile, trackdir);
 
			if (n.m_segment->flags_u.flags_s.m_end_of_line) {
 
				break;
 
			}
 

	
 
			// finish if we have reached the destination
 
			if (target_seen) {
 
				break;
 
			}
 

	
0 comments (0 inline, 0 general)