diff options
-rw-r--r-- | known-bugs.txt | 9 | ||||
-rw-r--r-- | src/rail_cmd.cpp | 4 |
2 files changed, 11 insertions, 2 deletions
diff --git a/known-bugs.txt b/known-bugs.txt index 2fa9d3837..f31f29e71 100644 --- a/known-bugs.txt +++ b/known-bugs.txt @@ -259,3 +259,12 @@ OpenTTD hangs when started on 32 bits Windows [FS#4083] The reason we do not use the "win32" music driver as default are described in the "Long delay between switching music/song" section of this document. + +Pre- and exit signals are not dragged [FS#4378] + Unlike all other signal types, the entry- and exit signals are not + dragged but instead normal signals are placed on subsequent track + sections. This is done on purpose as this is the usually more con- + venient solution. There are little to no occasions where more than + one entry or exit signal in a row are useful. This is different + for all other signal types where several in a row can serve one + purpose or another. diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index eed8c0bb8..bb77984d9 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -1182,8 +1182,8 @@ static CommandCost CmdSignalTrackHelper(TileIndex tile, DoCommandFlag flags, uin semaphores = GetSignalVariant(tile, track) != SIG_ELECTRIC; sigtype = GetSignalType(tile, track); - /* Don't but copy pre-signal type */ - if (sigtype < SIGTYPE_PBS) sigtype = SIGTYPE_NORMAL; + /* Don't but copy entry or exit-signal type */ + if (sigtype == SIGTYPE_ENTRY || sigtype == SIGTYPE_EXIT) sigtype = SIGTYPE_NORMAL; } else { // no signals exist, drag a two-way signal stretch signals = IsPbsSignal(sigtype) ? SignalAlongTrackdir(trackdir) : SignalOnTrack(track); } |