Changeset - r9824:94c591de0a6f
[Not reviewed]
master
0 2 0
rubidium - 16 years ago 2008-08-02 22:57:18
rubidium@openttd.org
(svn r13966) -Codechange [YAPP]: Bar level crossings upon path reservation. (michi_cc)
2 files changed with 12 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/pbs.cpp
Show inline comments
 
@@ -101,6 +101,8 @@ bool TryReserveRailTrack(TileIndex tile,
 
		case MP_ROAD:
 
			if (IsLevelCrossing(tile) && !GetCrossingReservation(tile)) {
 
				SetCrossingReservation(tile, true);
 
				BarCrossing(tile);
 
				MarkTileDirtyByTile(tile);
 
				return true;
 
			}
 
			break;
 
@@ -149,7 +151,10 @@ bool TryReserveRailTrack(TileIndex tile,
 
			break;
 

	
 
		case MP_ROAD:
 
			if (IsLevelCrossing(tile)) SetCrossingReservation(tile, false);
 
			if (IsLevelCrossing(tile)) {
 
				SetCrossingReservation(tile, false);
 
				UpdateLevelCrossing(tile);
 
			}
 
			break;
 

	
 
		case MP_STATION:
src/train_cmd.cpp
Show inline comments
 
@@ -1773,8 +1773,8 @@ void UpdateLevelCrossing(TileIndex tile,
 
{
 
	assert(IsLevelCrossingTile(tile));
 

	
 
	/* train on crossing || train approaching crossing */
 
	bool new_state = VehicleFromPos(tile, NULL, &TrainOnTileEnum) != NULL || TrainApproachingCrossing(tile);
 
	/* train on crossing || train approaching crossing || reserved */
 
	bool new_state = VehicleFromPos(tile, NULL, &TrainOnTileEnum) != NULL || TrainApproachingCrossing(tile) || GetCrossingReservation(tile);
 

	
 
	if (new_state != IsCrossingBarred(tile)) {
 
		if (new_state && sound) {
 
@@ -3734,6 +3734,10 @@ static void TrainController(Vehicle *v, 
 
				if (IsFrontEngine(v)) {
 
					v->load_unload_time_rem = 0;
 

	
 
					/* If we are approching a crossing that is reserved, play the sound now. */
 
					TileIndex crossing = TrainApproachingCrossingTile(v);
 
					if (crossing != INVALID_TILE && GetCrossingReservation(crossing)) SndPlayTileFx(SND_0E_LEVEL_CROSSING, crossing);
 

	
 
					/* Always try to extend the reservation when entering a tile. */
 
					CheckNextTrainTile(v);
 
				}
0 comments (0 inline, 0 general)