summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorplanetmaker <planetmaker@openttd.org>2011-01-15 22:50:49 +0000
committerplanetmaker <planetmaker@openttd.org>2011-01-15 22:50:49 +0000
commit9b4beb0a5c9c3666c36380ace6b7b8e7e1903a4f (patch)
tree65f4eda1bd02d2cd80f4574f30735ab189ee321d
parent7645c5ac43b8b16611fdd169bc01fb5e9d2d43b9 (diff)
downloadopenttd-9b4beb0a5c9c3666c36380ace6b7b8e7e1903a4f.tar.xz
(svn r21816) -Fix [FS#4378] (r14012): Allow dragging of combo signals (again)
-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);
}