Changeset - r22047:cfe6e2f6daab
[Not reviewed]
master
0 1 0
frosch - 9 years ago 2015-03-28 14:03:26
frosch@openttd.org
(svn r27208) -Fix: Draw correct overlay sprites for path reservations on bridges and tunnels.
1 file changed with 19 insertions and 5 deletions:
0 comments (0 inline, 0 general)
src/tunnelbridge_cmd.cpp
Show inline comments
 
@@ -1207,13 +1207,18 @@ static void DrawTile_TunnelBridge(TileIn
 
				SpriteID surface = GetCustomRailSprite(rti, ti->tile, RTSG_TUNNEL);
 
				if (surface != 0) DrawGroundSprite(surface + tunnelbridge_direction, PAL_NONE);
 
			}
 

	
 
			/* PBS debugging, draw reserved tracks darker */
 
			if (_game_mode != GM_MENU && _settings_client.gui.show_track_reservation && HasTunnelBridgeReservation(ti->tile)) {
 
				DrawGroundSprite(DiagDirToAxis(tunnelbridge_direction) == AXIS_X ? rti->base_sprites.single_x : rti->base_sprites.single_y, PALETTE_CRASH);
 
				if (rti->UsesOverlay()) {
 
					SpriteID overlay = GetCustomRailSprite(rti, ti->tile, RTSG_OVERLAY);
 
					DrawGroundSprite(overlay + RTO_X + DiagDirToAxis(tunnelbridge_direction), PALETTE_CRASH);
 
				} else {
 
					DrawGroundSprite(DiagDirToAxis(tunnelbridge_direction) == AXIS_X ? rti->base_sprites.single_x : rti->base_sprites.single_y, PALETTE_CRASH);
 
				}
 
			}
 

	
 
			if (HasCatenaryDrawn(GetRailType(ti->tile))) {
 
				/* Maybe draw pylons on the entry side */
 
				DrawCatenary(ti);
 

	
 
@@ -1317,17 +1322,26 @@ static void DrawTile_TunnelBridge(TileIn
 
				/* Don't fallback to non-overlay sprite -- the spec states that
 
				 * if an overlay is present then the bridge surface must be
 
				 * present. */
 
			}
 

	
 
			/* PBS debugging, draw reserved tracks darker */
 
			if (_game_mode != GM_MENU &&_settings_client.gui.show_track_reservation && HasTunnelBridgeReservation(ti->tile)) {
 
				if (HasBridgeFlatRamp(ti->tileh, DiagDirToAxis(tunnelbridge_direction))) {
 
					AddSortableSpriteToDraw(DiagDirToAxis(tunnelbridge_direction) == AXIS_X ? rti->base_sprites.single_x : rti->base_sprites.single_y, PALETTE_CRASH, ti->x, ti->y, 16, 16, 0, ti->z + 8);
 
			if (_game_mode != GM_MENU && _settings_client.gui.show_track_reservation && HasTunnelBridgeReservation(ti->tile)) {
 
				if (rti->UsesOverlay()) {
 
					SpriteID overlay = GetCustomRailSprite(rti, ti->tile, RTSG_OVERLAY);
 
					if (HasBridgeFlatRamp(ti->tileh, DiagDirToAxis(tunnelbridge_direction))) {
 
						AddSortableSpriteToDraw(overlay + RTO_X + DiagDirToAxis(tunnelbridge_direction), PALETTE_CRASH, ti->x, ti->y, 16, 16, 0, ti->z + 8);
 
					} else {
 
						AddSortableSpriteToDraw(overlay + RTO_SLOPE_NE + tunnelbridge_direction, PALETTE_CRASH, ti->x, ti->y, 16, 16, 8, ti->z);
 
					}
 
				} else {
 
					AddSortableSpriteToDraw(rti->base_sprites.single_sloped + tunnelbridge_direction, PALETTE_CRASH, ti->x, ti->y, 16, 16, 8, ti->z);
 
					if (HasBridgeFlatRamp(ti->tileh, DiagDirToAxis(tunnelbridge_direction))) {
 
						AddSortableSpriteToDraw(DiagDirToAxis(tunnelbridge_direction) == AXIS_X ? rti->base_sprites.single_x : rti->base_sprites.single_y, PALETTE_CRASH, ti->x, ti->y, 16, 16, 0, ti->z + 8);
 
					} else {
 
						AddSortableSpriteToDraw(rti->base_sprites.single_sloped + tunnelbridge_direction, PALETTE_CRASH, ti->x, ti->y, 16, 16, 8, ti->z);
 
					}
 
				}
 
			}
 

	
 
			EndSpriteCombine();
 
			if (HasCatenaryDrawn(GetRailType(ti->tile))) {
 
				DrawCatenary(ti);
0 comments (0 inline, 0 general)