(svn r3851) Rail depots only have an entrance at one side, therefore use UpdateSignalsOnSegment() instead of SetSignalsOnBothDir()
This commit is contained in:
		@@ -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);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user