equal
deleted
inserted
replaced
102 }; |
102 }; |
103 |
103 |
104 |
104 |
105 RailType GetTileRailType(TileIndex tile, Trackdir trackdir) |
105 RailType GetTileRailType(TileIndex tile, Trackdir trackdir) |
106 { |
106 { |
|
107 DiagDirection exitdir = TrackdirToExitdir(trackdir); |
107 switch (GetTileType(tile)) { |
108 switch (GetTileType(tile)) { |
108 case MP_RAILWAY: |
109 case MP_RAILWAY: |
109 return GetRailType(tile); |
110 return GetRailType(tile); |
110 |
111 |
111 case MP_STREET: |
112 case MP_STREET: |
121 if (IsTunnel(tile)) { |
122 if (IsTunnel(tile)) { |
122 if (GetTunnelTransportType(tile) == TRANSPORT_RAIL) { |
123 if (GetTunnelTransportType(tile) == TRANSPORT_RAIL) { |
123 return GetRailType(tile); |
124 return GetRailType(tile); |
124 } |
125 } |
125 } else { |
126 } else { |
126 if (GetBridgeTransportType(tile) == TRANSPORT_RAIL) { |
127 if (IsBridgeRamp(tile)) { |
127 return GetRailType(tile); |
128 if (GetBridgeTransportType(tile) == TRANSPORT_RAIL) { |
|
129 return GetRailType(tile); |
|
130 } |
|
131 } else { |
|
132 if (GetBridgeAxis(tile) == DiagDirToAxis(exitdir)) { |
|
133 if (GetBridgeTransportType(tile) == TRANSPORT_RAIL) { |
|
134 return GetRailTypeOnBridge(tile); |
|
135 } |
|
136 } else { |
|
137 if (IsTransportUnderBridge(tile) && |
|
138 GetTransportTypeUnderBridge(tile) == TRANSPORT_RAIL) { |
|
139 return GetRailType(tile); |
|
140 } |
|
141 } |
128 } |
142 } |
129 } |
143 } |
130 break; |
144 break; |
131 |
145 |
132 default: |
146 default: |