Changeset - r8865:3272b869c552
[Not reviewed]
master
0 1 0
smatz - 16 years ago 2008-04-08 21:28:47
smatz@openttd.org
(svn r12632) -Fix (r12547): with invisible catenary, trams were be drawn over a bridge
1 file changed with 13 insertions and 5 deletions:
0 comments (0 inline, 0 general)
src/tunnelbridge_cmd.cpp
Show inline comments
 
@@ -791,20 +791,28 @@ static void DrawBridgeTramBits(int x, in
 
	/* The sprites under the vehicles are drawn as SpriteCombine. StartSpriteCombine() has already been called
 
	 * The bounding boxes here are the same as for bridge front/roof */
 
	if (head || !IsInvisibilitySet(TO_BRIDGES)) {
 
		AddSortableSpriteToDraw(SPR_TRAMWAY_BASE + tram_offsets[overlay][offset], PAL_NONE, x, y, size_x[offset], size_y[offset], 0x28, z, !head && IsTransparencySet(TO_BRIDGES));
 
		AddSortableSpriteToDraw(SPR_TRAMWAY_BASE + tram_offsets[overlay][offset], PAL_NONE,
 
			x, y, size_x[offset], size_y[offset], 0x28, z,
 
			!head && IsTransparencySet(TO_BRIDGES));
 
	}
 

	
 
	/* Do not draw catenary if it is set invisible */
 
	if (IsInvisibilitySet(TO_CATENARY)) return;
 

	
 
	AddSortableSpriteToDraw(SPR_TRAMWAY_BASE + back_offsets[offset],  PAL_NONE, x, y, size_x[offset], size_y[offset], 0x28, z, IsTransparencySet(TO_CATENARY));
 
	if (!IsInvisibilitySet(TO_CATENARY)) {
 
		AddSortableSpriteToDraw(SPR_TRAMWAY_BASE + back_offsets[offset], PAL_NONE,
 
			x, y, size_x[offset], size_y[offset], 0x28, z,
 
			IsTransparencySet(TO_CATENARY));
 
	}
 

	
 
	/* Start a new SpriteCombine for the front part */
 
	EndSpriteCombine();
 
	StartSpriteCombine();
 

	
 
	/* For sloped sprites the bounding box needs to be higher, as the pylons stop on a higher point */
 
	AddSortableSpriteToDraw(SPR_TRAMWAY_BASE + front_offsets[offset], PAL_NONE, x, y, size_x[offset] + front_bb_offset_x[offset], size_y[offset] + front_bb_offset_y[offset], 0x28, z, IsTransparencySet(TO_CATENARY), front_bb_offset_x[offset], front_bb_offset_y[offset]);
 
	if (!IsInvisibilitySet(TO_CATENARY)) {
 
		AddSortableSpriteToDraw(SPR_TRAMWAY_BASE + front_offsets[offset], PAL_NONE,
 
			x, y, size_x[offset] + front_bb_offset_x[offset], size_y[offset] + front_bb_offset_y[offset], 0x28, z,
 
			IsTransparencySet(TO_CATENARY), front_bb_offset_x[offset], front_bb_offset_y[offset]);
 
	}
 
}
 

	
 
/**
0 comments (0 inline, 0 general)