Changeset - r19485:c24ce339357e
[Not reviewed]
master
0 4 0
frosch - 12 years ago 2012-07-15 16:17:22
frosch@openttd.org
(svn r24402) -Fix [FS#5243]: Station properties 11 and 14 were combined incorrectly.
4 files changed with 25 insertions and 11 deletions:
0 comments (0 inline, 0 general)
src/elrail.cpp
Show inline comments
 
@@ -111,7 +111,6 @@ static TrackBits GetRailTrackBitsUnivers
 
		case MP_STATION:
 
			if (!HasStationRail(t)) return TRACK_BIT_NONE;
 
			if (!HasCatenary(GetRailType(t))) return TRACK_BIT_NONE;
 
			if (!IsStationTileElectrifiable(t)) return TRACK_BIT_NONE;
 
			return TrackToTrackBits(GetRailStationTrack(t));
 

	
 
		default:
 
@@ -409,7 +408,8 @@ static void DrawCatenaryRailway(const Ti
 
			}
 
		}
 

	
 
		if (PPPallowed[i] != 0 && HasBit(PCPstatus, i) && !HasBit(OverridePCP, i)) {
 
		if (PPPallowed[i] != 0 && HasBit(PCPstatus, i) && !HasBit(OverridePCP, i) &&
 
				(!IsRailStationTile(ti->tile) || CanStationTileHavePylons(ti->tile))) {
 
			for (Direction k = DIR_BEGIN; k < DIR_END; k++) {
 
				byte temp = PPPorder[i][GetTLG(ti->tile)][k];
 

	
 
@@ -443,6 +443,9 @@ static void DrawCatenaryRailway(const Ti
 
		if (height <= GetTileMaxZ(ti->tile) + 1) return;
 
	}
 

	
 
	/* Don't draw a wire if the station tile does not want any */
 
	if (IsRailStationTile(ti->tile) && !CanStationTileHaveWires(ti->tile)) return;
 

	
 
	SpriteID wire_normal = GetWireBase(ti->tile);
 
	SpriteID wire_halftile = (halftile_corner != CORNER_INVALID) ? GetWireBase(ti->tile, TCX_UPPER_HALFTILE) : wire_normal;
 
	Track halftile_track;
src/newgrf_station.cpp
Show inline comments
 
@@ -895,18 +895,29 @@ bool IsStationTileBlocked(TileIndex tile
 
}
 

	
 
/**
 
 * Check if a rail station tile can be electrified.
 
 * Check if a rail station tile shall have pylons when electrified.
 
 * @param tile %Tile to test.
 
 * @return Tile can be electrified.
 
 * @return Tile shall have pylons.
 
 * @note This could be cached (during build) in the map array to save on all the dereferencing.
 
 */
 
bool IsStationTileElectrifiable(TileIndex tile)
 
bool CanStationTileHavePylons(TileIndex tile)
 
{
 
	const StationSpec *statspec = GetStationSpec(tile);
 
	uint gfx = GetStationGfx(tile);
 
	/* Default stations do not draw pylons under roofs (gfx >= 4) */
 
	return statspec != NULL ? HasBit(statspec->pylons, gfx) : gfx < 4;
 
}
 

	
 
	return statspec == NULL ||
 
			HasBit(statspec->pylons, GetStationGfx(tile)) ||
 
			!HasBit(statspec->wires, GetStationGfx(tile));
 
/**
 
 * Check if a rail station tile shall have wires when electrified.
 
 * @param tile %Tile to test.
 
 * @return Tile shall have wires.
 
 * @note This could be cached (during build) in the map array to save on all the dereferencing.
 
 */
 
bool CanStationTileHaveWires(TileIndex tile)
 
{
 
	const StationSpec *statspec = GetStationSpec(tile);
 
	return statspec == NULL || !HasBit(statspec->wires, GetStationGfx(tile));
 
}
 

	
 
/** Wrapper for animation control, see #GetStationCallback. */
src/station_cmd.cpp
Show inline comments
 
@@ -2774,7 +2774,7 @@ draw_default_foundation:
 
		}
 
	}
 

	
 
	if (HasStationRail(ti->tile) && HasCatenaryDrawn(GetRailType(ti->tile)) && IsStationTileElectrifiable(ti->tile)) DrawCatenary(ti);
 
	if (HasStationRail(ti->tile) && HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti);
 

	
 
	if (HasBit(roadtypes, ROADTYPE_TRAM)) {
 
		Axis axis = GetRoadStopDir(ti->tile) == DIAGDIR_NE ? AXIS_X : AXIS_Y;
src/station_func.h
Show inline comments
 
@@ -39,8 +39,8 @@ void DeleteOilRig(TileIndex t);
 
/* Check if a rail station tile is traversable. */
 
bool IsStationTileBlocked(TileIndex tile);
 

	
 
/* Check if a rail station tile is electrifiable. */
 
bool IsStationTileElectrifiable(TileIndex tile);
 
bool CanStationTileHavePylons(TileIndex tile);
 
bool CanStationTileHaveWires(TileIndex tile);
 

	
 
void UpdateAirportsNoise();
 

	
0 comments (0 inline, 0 general)