(svn r3851) Rail depots only have an entrance at one side, therefore use UpdateSignalsOnSegment() instead of SetSignalsOnBothDir()
--- a/rail_cmd.c Mon Mar 13 15:38:52 2006 +0000
+++ b/rail_cmd.c Mon Mar 13 20:12:35 2006 +0000
@@ -665,7 +665,7 @@
d->xy = tile;
d->town_index = ClosestTownFromTile(tile, (uint)-1)->index;
- SetSignalsOnBothDir(tile, (p2 & 1) ? 2 : 1);
+ UpdateSignalsOnSegment(tile, p2);
}
return cost + _price.build_train_depot;
@@ -1023,10 +1023,10 @@
return CMD_ERROR;
if (flags & DC_EXEC) {
- Track track = TrackdirToTrack(DiagdirToDiagTrackdir(GetRailDepotDirection(tile)));
+ DiagDirection dir = GetRailDepotDirection(tile);
DoDeleteDepot(tile);
- SetSignalsOnBothDir(tile, track);
+ UpdateSignalsOnSegment(tile, dir);
}
return _price.remove_train_depot;
--- a/train_cmd.c Mon Mar 13 15:38:52 2006 +0000
+++ b/train_cmd.c Mon Mar 13 20:12:35 2006 +0000
@@ -3282,12 +3282,9 @@
}
-static const byte _depot_track_ind[4] = {0,1,0,1};
-
-
void TrainEnterDepot(Vehicle *v, TileIndex tile)
{
- SetSignalsOnBothDir(tile, _depot_track_ind[GetRailDepotDirection(tile)]);
+ UpdateSignalsOnSegment(tile, GetRailDepotDirection(tile));
if (!IsFrontEngine(v)) v = GetFirstVehicleInChain(v);