diff options
author | smatz <smatz@openttd.org> | 2008-01-18 21:44:20 +0000 |
---|---|---|
committer | smatz <smatz@openttd.org> | 2008-01-18 21:44:20 +0000 |
commit | 730dda867bd94cbd118fedad7d426f4b7e68d92d (patch) | |
tree | 1c7cca64b5c71e2808004a67556fb138b62c8b8f /src | |
parent | 14416791afee1ffb8bda4d28e364149b1251fa9e (diff) | |
download | openttd-730dda867bd94cbd118fedad7d426f4b7e68d92d.tar.xz |
(svn r11922) -Codechange: use MaybeBarCrossingWithSound() to bar crossing with sound
Diffstat (limited to 'src')
-rw-r--r-- | src/train_cmd.cpp | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 820b8731c..554fb65b5 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -1704,6 +1704,21 @@ void UpdateLevelCrossing(TileIndex tile, bool sound) /** + * Bars crossing and plays ding-ding sound if not barred already + * @param tile tile with crossing + * @pre tile is a rail-road crossing + */ +static inline void MaybeBarCrossingWithSound(TileIndex tile) +{ + if (!IsCrossingBarred(tile)) { + BarCrossing(tile); + SndPlayTileFx(SND_0E_LEVEL_CROSSING, tile); + MarkTileDirtyByTile(tile); + } +} + + +/** * Advances wagons for train reversing, needed for variable length wagons. * Needs to be called once before the train is reversed, and once after it. * @param v First vehicle in chain @@ -1780,7 +1795,7 @@ static void ReverseTrainDirection(Vehicle *v) /* maybe we are approaching crossing now, after reversal */ crossing = TrainApproachingCrossingTile(v); - if (crossing != INVALID_TILE) UpdateLevelCrossing(crossing); + if (crossing != INVALID_TILE) MaybeBarCrossingWithSound(crossing); } /** Reverse train. @@ -3459,11 +3474,7 @@ static bool TrainCheckIfLineEnds(Vehicle *v) if ((ts & (ts >> 16)) != 0) return TrainApproachingLineEnd(v, true); /* approaching a rail/road crossing? then make it red */ - if (IsLevelCrossingTile(tile) && !IsCrossingBarred(tile)) { - BarCrossing(tile); - SndPlayTileFx(SND_0E_LEVEL_CROSSING, tile); - MarkTileDirtyByTile(tile); - } + if (IsLevelCrossingTile(tile)) MaybeBarCrossingWithSound(tile); return true; } |