@ -1139,9 +1139,9 @@ CommandCost CmdBuildSingleSignal(TileIndex tile, DoCommandFlag flags, uint32 p1,
DirtyCompanyInfrastructureWindows ( GetTileOwner ( tile ) ) ;
if ( IsPbsSignal ( sigtype ) ) {
/* PBS signals should show red unless they are on a reservatio n. */
/* PBS signals should show red unless they are on reserved tiles without a tra in. */
uint mask = GetPresentSignals ( tile ) & SignalOnTrack ( track ) ;
SetSignalStates ( tile , ( GetSignalStates ( tile ) & ~ mask ) | ( ( HasBit ( GetRailReservationTrackBits ( tile ) , track ) ? UINT_MAX : 0 ) & mask ) ) ;
SetSignalStates ( tile , ( GetSignalStates ( tile ) & ~ mask ) | ( ( HasBit ( GetRailReservationTrackBits ( tile ) , track ) && EnsureNoVehicleOnGround ( tile ) . Succeeded ( ) ? UINT_MAX : 0 ) & mask ) ) ;
}
MarkTileDirtyByTile ( tile ) ;
AddTrackToSignalBuffer ( tile , track , _current_company ) ;