Changeset - r28372:0d96eba0f42f
[Not reviewed]
master
0 1 0
Jonathan G Rennison - 4 months ago 2023-12-31 23:31:01
j.g.rennison@gmail.com
Fix #11337: Station blocked/pylon/wire bits with CBID_STATION_TILE_LAYOUT (#11656)
1 file changed with 14 insertions and 14 deletions:
0 comments (0 inline, 0 general)
src/station_cmd.cpp
Show inline comments
 
@@ -1439,20 +1439,6 @@ CommandCost CmdBuildRailStation(DoComman
 
				SetStationTileRandomBits(tile, GB(Random(), 0, 4));
 
				SetAnimationFrame(tile, 0);
 

	
 
				/* Should be the same as layout but axis component could be wrong... */
 
				StationGfx gfx = GetStationGfx(tile);
 
				bool blocked = statspec != nullptr && HasBit(statspec->blocked, gfx);
 
				/* Default stations do not draw pylons under roofs (gfx >= 4) */
 
				bool pylons = statspec != nullptr ? HasBit(statspec->pylons, gfx) : gfx < 4;
 
				bool wires = statspec == nullptr || !HasBit(statspec->wires, gfx);
 

	
 
				SetStationTileBlocked(tile, blocked);
 
				SetStationTileHavePylons(tile, pylons);
 
				SetStationTileHaveWires(tile, wires);
 

	
 
				if (!blocked) c->infrastructure.rail[rt]++;
 
				c->infrastructure.station++;
 

	
 
				if (statspec != nullptr) {
 
					/* Use a fixed axis for GetPlatformInfo as our platforms / numtracks are always the right way around */
 
					uint32_t platinfo = GetPlatformInfo(AXIS_X, GetStationGfx(tile), plat_len, numtracks_orig, plat_len - w, numtracks_orig - numtracks, false);
 
@@ -1471,6 +1457,20 @@ CommandCost CmdBuildRailStation(DoComman
 
					TriggerStationAnimation(st, tile, SAT_BUILT);
 
				}
 

	
 
				/* Should be the same as layout but axis component could be wrong... */
 
				StationGfx gfx = GetStationGfx(tile);
 
				bool blocked = statspec != nullptr && HasBit(statspec->blocked, gfx);
 
				/* Default stations do not draw pylons under roofs (gfx >= 4) */
 
				bool pylons = statspec != nullptr ? HasBit(statspec->pylons, gfx) : gfx < 4;
 
				bool wires = statspec == nullptr || !HasBit(statspec->wires, gfx);
 

	
 
				SetStationTileBlocked(tile, blocked);
 
				SetStationTileHavePylons(tile, pylons);
 
				SetStationTileHaveWires(tile, wires);
 

	
 
				if (!blocked) c->infrastructure.rail[rt]++;
 
				c->infrastructure.station++;
 

	
 
				tile += tile_delta;
 
			} while (--w);
 
			AddTrackToSignalBuffer(tile_track, track, _current_company);
0 comments (0 inline, 0 general)