summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--known-bugs.txt9
-rw-r--r--src/rail_cmd.cpp4
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);
}