MCPcopy Create free account
hub / github.com/OpenTTD/OpenTTD / UnreserveRailTrack

Function UnreserveRailTrack

src/pbs.cpp:144–187  ·  view source on GitHub ↗

* Lift the reservation of a specific track on a tile * @param tile the tile * @param t the track */

Source from the content-addressed store, hash-verified

142 * @param t the track
143 */
144void UnreserveRailTrack(TileIndex tile, Track t)
145{
146 assert(HasTrack(TrackStatusToTrackBits(GetTileTrackStatus(tile, TRANSPORT_RAIL, 0)), t));
147
148 if (_settings_client.gui.show_track_reservation) {
149 if (IsBridgeTile(tile)) {
150 MarkBridgeDirty(tile);
151 } else {
152 MarkTileDirtyByTile(tile);
153 }
154 }
155
156 switch (GetTileType(tile)) {
157 case MP_RAILWAY:
158 if (IsRailDepot(tile)) {
159 SetDepotReservation(tile, false);
160 MarkTileDirtyByTile(tile);
161 break;
162 }
163 if (IsPlainRail(tile)) UnreserveTrack(tile, t);
164 break;
165
166 case MP_ROAD:
167 if (IsLevelCrossing(tile)) {
168 SetCrossingReservation(tile, false);
169 UpdateLevelCrossing(tile);
170 }
171 break;
172
173 case MP_STATION:
174 if (HasStationRail(tile)) {
175 SetRailStationReservation(tile, false);
176 MarkTileDirtyByTile(tile);
177 }
178 break;
179
180 case MP_TUNNELBRIDGE:
181 if (GetTunnelBridgeTransportType(tile) == TRANSPORT_RAIL) SetTunnelBridgeReservation(tile, false);
182 break;
183
184 default:
185 break;
186 }
187}
188
189
190/** Follow a reservation starting from a specific tile to the end. */

Callers 5

ClearPathReservationFunction · 0.85
ExtendTrainReservationFunction · 0.85
DeleteLastWagonFunction · 0.85
UnreserveSingleTrackMethod · 0.85

Calls 15

TrackStatusToTrackBitsFunction · 0.85
GetTileTrackStatusFunction · 0.85
IsBridgeTileFunction · 0.85
MarkBridgeDirtyFunction · 0.85
GetTileTypeFunction · 0.85
IsRailDepotFunction · 0.85
SetDepotReservationFunction · 0.85
IsPlainRailFunction · 0.85
UnreserveTrackFunction · 0.85
IsLevelCrossingFunction · 0.85
SetCrossingReservationFunction · 0.85
UpdateLevelCrossingFunction · 0.85

Tested by

no test coverage detected