mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r3851) Rail depots only have an entrance at one side, therefore use UpdateSignalsOnSegment() instead of SetSignalsOnBothDir()
This commit is contained in:
parent
b812bbeda3
commit
5d939d9c10
|
@ -665,7 +665,7 @@ int32 CmdBuildTrainDepot(int x, int y, uint32 flags, uint32 p1, uint32 p2)
|
||||||
d->xy = tile;
|
d->xy = tile;
|
||||||
d->town_index = ClosestTownFromTile(tile, (uint)-1)->index;
|
d->town_index = ClosestTownFromTile(tile, (uint)-1)->index;
|
||||||
|
|
||||||
SetSignalsOnBothDir(tile, (p2 & 1) ? 2 : 1);
|
UpdateSignalsOnSegment(tile, p2);
|
||||||
}
|
}
|
||||||
|
|
||||||
return cost + _price.build_train_depot;
|
return cost + _price.build_train_depot;
|
||||||
|
@ -1023,10 +1023,10 @@ static int32 RemoveTrainDepot(TileIndex tile, uint32 flags)
|
||||||
return CMD_ERROR;
|
return CMD_ERROR;
|
||||||
|
|
||||||
if (flags & DC_EXEC) {
|
if (flags & DC_EXEC) {
|
||||||
Track track = TrackdirToTrack(DiagdirToDiagTrackdir(GetRailDepotDirection(tile)));
|
DiagDirection dir = GetRailDepotDirection(tile);
|
||||||
|
|
||||||
DoDeleteDepot(tile);
|
DoDeleteDepot(tile);
|
||||||
SetSignalsOnBothDir(tile, track);
|
UpdateSignalsOnSegment(tile, dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
return _price.remove_train_depot;
|
return _price.remove_train_depot;
|
||||||
|
|
|
@ -3282,12 +3282,9 @@ void Train_Tick(Vehicle *v)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static const byte _depot_track_ind[4] = {0,1,0,1};
|
|
||||||
|
|
||||||
|
|
||||||
void TrainEnterDepot(Vehicle *v, TileIndex tile)
|
void TrainEnterDepot(Vehicle *v, TileIndex tile)
|
||||||
{
|
{
|
||||||
SetSignalsOnBothDir(tile, _depot_track_ind[GetRailDepotDirection(tile)]);
|
UpdateSignalsOnSegment(tile, GetRailDepotDirection(tile));
|
||||||
|
|
||||||
if (!IsFrontEngine(v)) v = GetFirstVehicleInChain(v);
|
if (!IsFrontEngine(v)) v = GetFirstVehicleInChain(v);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue