Merge branch 'tracerestrict-sx' into jgrpp

This commit is contained in:
Jonathan G Rennison
2016-07-18 00:48:12 +01:00
3 changed files with 24 additions and 12 deletions

View File

@@ -221,10 +221,14 @@ private:
TileIndex tile = v->tile;
Trackdir trackdir = v->GetVehicleTrackdir();
CFollowTrackRail ft(v);
TileIndex candidate_tile = INVALID_TILE;
if (IsRailDepotTile(v->tile)) {
candidate_tile = v->tile;
}
CFollowTrackRail ft(v);
for (;;) {
if (IsTileType(tile, MP_RAILWAY) && HasSignalOnTrackdir(tile, trackdir)) {
if (HasPbsSignalOnTrackdir(tile, trackdir)) {

View File

@@ -423,6 +423,10 @@ Train *GetTrainForReservation(TileIndex tile, Track track)
*/
TileIndex VehiclePosTraceRestrictPreviousSignalCallback(const Train *v, const void *)
{
if (IsRailDepotTile(v->tile)) {
return v->tile;
}
// scan forwards from vehicle position, for the case that train is waiting at/approaching PBS signal
TileIndex tile = v->tile;

View File

@@ -1439,6 +1439,14 @@ public:
TraceRestrictItem item = GetSelected();
if (GetTraceRestrictTypeProperties(item).value_type != TRVT_TILE_INDEX) return;
if (!IsTileOwner(tile, _local_company)) {
ShowErrorMessage(error_message, STR_ERROR_AREA_IS_OWNED_BY_ANOTHER, WL_INFO);
return;
}
if (IsRailDepotTile(tile)) {
// OK
} else {
if (!IsPlainRailTile(tile)) {
ShowErrorMessage(error_message, STR_ERROR_THERE_IS_NO_RAILROAD_TRACK, WL_INFO);
return;
@@ -1448,10 +1456,6 @@ public:
ShowErrorMessage(error_message, STR_ERROR_THERE_ARE_NO_SIGNALS, WL_INFO);
return;
}
if (!IsTileOwner(tile, _local_company)) {
ShowErrorMessage(error_message, STR_ERROR_AREA_IS_OWNED_BY_ANOTHER, WL_INFO);
return;
}
TraceRestrictDoCommandP(this->tile, this->track, TRDCT_MODIFY_DUAL_ITEM, this->selected_instruction - 1, tile, STR_TRACE_RESTRICT_ERROR_CAN_T_MODIFY_ITEM);