mirror of https://github.com/OpenTTD/OpenTTD
(svn r21268) -Fix (r21266): crash (or rather a triggered assertion) in some cases
parent
9d899b3758
commit
3f1de4926e
|
@ -1413,6 +1413,12 @@ CommandCost RemoveFromRailBaseStation(TileArea ta, SmallVector<T *, 4> &affected
|
||||||
/* If we reached here, the tile is valid so increase the quantity of tiles we will remove */
|
/* If we reached here, the tile is valid so increase the quantity of tiles we will remove */
|
||||||
quantity++;
|
quantity++;
|
||||||
|
|
||||||
|
if (keep_rail || IsStationTileBlocked(tile)) {
|
||||||
|
/* Don't refund the 'steel' of the track when we keep the
|
||||||
|
* rail, or when the tile didn't have any rail at all. */
|
||||||
|
total_cost.AddCost(-_price[PR_CLEAR_RAIL]);
|
||||||
|
}
|
||||||
|
|
||||||
if (flags & DC_EXEC) {
|
if (flags & DC_EXEC) {
|
||||||
/* read variables before the station tile is removed */
|
/* read variables before the station tile is removed */
|
||||||
uint specindex = GetCustomStationSpecIndex(tile);
|
uint specindex = GetCustomStationSpecIndex(tile);
|
||||||
|
@ -1455,11 +1461,6 @@ CommandCost RemoveFromRailBaseStation(TileArea ta, SmallVector<T *, 4> &affected
|
||||||
if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(ReverseTrackdir(v->GetVehicleTrackdir())), true);
|
if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(ReverseTrackdir(v->GetVehicleTrackdir())), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (keep_rail || IsStationTileBlocked(tile)) {
|
|
||||||
/* Don't refund the 'steel' of the track when we keep the
|
|
||||||
* rail, or when the tile didn't have any rail at all. */
|
|
||||||
total_cost.AddCost(-_price[PR_CLEAR_RAIL]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (quantity == 0) return_cmd_error(STR_ERROR_THERE_IS_NO_STATION);
|
if (quantity == 0) return_cmd_error(STR_ERROR_THERE_IS_NO_STATION);
|
||||||
|
|
Loading…
Reference in New Issue