Commit Graph

291 Commits (3fa92f5d8e0a716ddba43a8557a1712843b6b993)

Author SHA1 Message Date
Jonathan G Rennison cd0211095b Merge branch 'tracerestrict-sx' into jgrpp 8 years ago
Jonathan G Rennison 58817c26e0 Fix reservation through multiple reserve-through signals after a junction. 8 years ago
Jonathan G Rennison 655b329142 Merge branch 'master' into jgrpp
# Conflicts:
#	config.lib
8 years ago
frosch 05a91106b8 (svn r27586) -Fix [FS#6410]: Automatic servicing of road vehicles compared path finder costs with tile distances, thus vehicles went to depots which were factor 100 too far away. (juanjo) 8 years ago
frosch d90686f021 (svn r27586) -Fix [FS#6410]: Automatic servicing of road vehicles compared path finder costs with tile distances, thus vehicles went to depots which were factor 100 too far away. (juanjo) 8 years ago
Jonathan G Rennison 330a7327d6 Minor changes to avoid undefined behaviour warnings.
Avoid creating a reference from a nullptr.
Avoid trying a malloc and memcpy into a 0 length buffer.
Virtual trains should never be drawn.
8 years ago
Jonathan G Rennison 5d42d07988 Merge branch 'tracerestrict-sx' into jgrpp 8 years ago
Jonathan G Rennison 1bb3024534 Fix unreserving through a green PBS signal not setting the state to red.
This also had the side effect of failed reservation attempts through
a reserve-through signal leaving the signal erroneously set to green.
8 years ago
Jonathan G Rennison d08b162119 Merge branch 'signal_tunnels_bridges-sx' into jgrpp
# Conflicts:
#	src/saveload/afterload.cpp
#	src/saveload/extended_ver_sl.cpp
#	src/signal.cpp
#	src/train_cmd.cpp
8 years ago
Jonathan G Rennison a25ac7a161 Enable signals on bridges/tunnels to work with PBS. 8 years ago
Jonathan G Rennison ffe17bc986 Fix false positive in FindNearestSafeTile desync check when path not reservable. 9 years ago
Jonathan G Rennison 6eebd31e5d Save YAPF state dumps to new files on Unix platforms. 9 years ago
Jonathan G Rennison defd5dcc50 Add debug category "yapfdesync" to enable desync checks for YAPF only. 9 years ago
Jonathan G Rennison 26d0eb041d Increase thoroughness of vehicle and YAPF cache desync debug checks. 9 years ago
Jonathan G Rennison f312301276 Merge branch 'extra_large_maps-sx' into jgrpp 9 years ago
Jonathan G Rennison 736bfcf7eb Fix RV pathfinder performance regression caused by map size increase.
The YAPF road vehicle pathfinder previously limited the path length
to the map size (previously 2048).
The extra large maps path increases this to 1M, nearly 3 orders of
magnitude, and this can result in a major performance penalty due
to excessively long pathfinder paths.
Instead limit the RV pathfinder length to a hard-coded 2048.
9 years ago
Jonathan G Rennison 3dec3242cc Merge branch 'tracerestrict-sx' into jgrpp
Conflicts:
	src/saveload/extended_ver_sl.cpp
9 years ago
Jonathan G Rennison e2435c7169 Only run trace restrict programs if they contain relevant actions.
Only run in pathfinder case if deny or penalty are present.
Only run in is safe waiting tile case is reserve through is present.
Presence is determined at program validation time and cached in the
program structure.
Validator now checks for unknown non-conditional instructions.
9 years ago
Jonathan G Rennison 06a1d7c5c9 Add reserve through action to trace restrict programs.
This only changes the behaviour of PBS reservations which
would otherwise terminate at a PBS signal.
If the signal restriction sets the reserve through state,
the reservation continues through the signal, and the signal
is set to green.
9 years ago
Jonathan G Rennison 29c4f244f3 Merge branch 'master' into tracerestrict
Conflicts:
	src/pathfinder/yapf/yapf_costrail.hpp
9 years ago
Jonathan G Rennison e0bc6e0cf6 Merge branch 'tracerestrict-sx' into jgrpp 9 years ago
Jonathan G Rennison a48652ac6f Merge branch 'save_ext' into tracerestrict-sx
Conflicts:
	src/pathfinder/yapf/yapf_costrail.hpp
9 years ago
alberth 894f69e1fd (svn r27363) -Codechange: Fix codestyle of one-line methods and header codestyle of derived structs. 9 years ago
alberth 1105b4d2c9 (svn r27363) -Codechange: Fix codestyle of one-line methods and header codestyle of derived structs. 9 years ago
alberth 48485a6a5a (svn r27362) -Codechange: Codestyle fixes for reference var declarations, static cast type, operator methods. 9 years ago
alberth b885d79f50 (svn r27362) -Codechange: Codestyle fixes for reference var declarations, static cast type, operator methods. 9 years ago
Jonathan G Rennison 7ed93f9211 Merge branch 'enhanced_viewport_overlay-sx' into jgrpp
town_gui.cpp updated due to struct CommandContainer change.

Conflicts:
	src/command.cpp
	src/command_type.h
	src/gfxinit.cpp
	src/openttd.cpp
	src/pbs.cpp
	src/saveload/extended_ver_sl.cpp
	src/saveload/extended_ver_sl.h
	src/saveload/saveload.cpp
	src/stdafx.h
	src/train_cmd.cpp
	src/viewport_type.h
	src/window_type.h
9 years ago
Jonathan G Rennison e24839ed65 Merge branch 'master' into enhanced_viewport_overlay
Notes on conflict resolution:
* MarkTileDirtyByTile gained an extra param on both sides of the merge
  Move bridge level offset to be after zoom level param, as it's used less.
* Add zoom level params to MarkBridgeDirty functions
* Fix undefined behaviour in colour_index cycling in ViewportMapDraw

Conflicts:
	src/clear_cmd.cpp
	src/pbs.cpp
	src/rail_cmd.cpp
	src/toolbar_gui.cpp
	src/train_cmd.cpp
	src/vehicle.cpp
	src/viewport.cpp
	src/viewport_func.h
9 years ago
patch-import 536a95dfd0 Import combined Enhanced viewport: zoom out, overlays & tooltips (r53_27127) patch
https://www.tt-forums.net/viewtopic.php?f=33&t=53394
9 years ago
Jonathan G Rennison 675993805b Merge branch 'tracerestrict-sx' into jgrpp 9 years ago
Jonathan G Rennison a0520b8937 Initial implementation of PBS entry signal condition variable.
TODO: see how the efficiency of this can be improved.
9 years ago
Jonathan G Rennison 2bcbeea011 Merge branch 'progsig-sx' into jgrpp
Conflicts:
	src/command.cpp
	src/command_type.h
	src/lang/english.txt
	src/rail_cmd.cpp
	src/rail_gui.cpp
	src/saveload/extended_ver_sl.cpp
	src/saveload/extended_ver_sl.h
	src/saveload/saveload.cpp
	src/widgets/rail_widget.h
	src/window_type.h
9 years ago
patch-import fc0efe599e Port of the programmable signals patch to recent trunk
Also add some additional changes from the SpringPP patch,
and make some other minor changes/fixes.
9 years ago
Jonathan G Rennison 5474ee3e40 Add entry direction condition variable. 9 years ago
Jonathan G Rennison 5f1b148cf9 Initial minimal working tracerestrict implementation.
This is a port of the tracerestrict/routing restrictions feature
from TTDPatch.
At present this implements if tests (train length only),
and pathfinder deny and penalty actions.
This requires the use of YAPF. Note that restrictions are only evaluated
within the YAPF lookahead distance.
9 years ago
frosch 86825a745c (svn r27332) -Change: Enable YAPF cache debugging with desync debug level 2. 9 years ago
frosch 59a94f8ccf (svn r27332) -Change: Enable YAPF cache debugging with desync debug level 2. 9 years ago
rubidium 2be4215f43 (svn r26482) -Codechange: add an include that allows us to undefine/redefine "unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values 10 years ago
rubidium 0463dbdc9e (svn r26482) -Codechange: add an include that allows us to undefine/redefine "unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values 10 years ago
rubidium fff7216d04 (svn r26117) -Cleanup: unneeded NULL check 11 years ago
rubidium f669101560 (svn r26117) -Cleanup: unneeded NULL check 11 years ago
rubidium a6fae2c608 (svn r26058) -Fix: handle the return value of a number of functions better 11 years ago
rubidium 0e9c992104 (svn r26058) -Fix: handle the return value of a number of functions better 11 years ago
rubidium d89e93ff9a (svn r25609) -Fix [FS#5216]: under certain circumstances a track type change would make the end-of-line-is-red setting ineffective 11 years ago
rubidium f178899609 (svn r25609) -Fix [FS#5216]: under certain circumstances a track type change would make the end-of-line-is-red setting ineffective 11 years ago
rubidium f84b92a95d (svn r25608) -Codechange: make EndSegmentReasonBits available in yapf_base.hpp 11 years ago
rubidium 740643f2b2 (svn r25608) -Codechange: make EndSegmentReasonBits available in yapf_base.hpp 11 years ago
rubidium ddfddffce9 (svn r24964) -Fix [FS#5416]: With YAPF the docking behaviour differed per direction; now favour docking in the direction you approached 12 years ago
rubidium eb538da228 (svn r24964) -Fix [FS#5416]: With YAPF the docking behaviour differed per direction; now favour docking in the direction you approached 12 years ago
peter1138 1e10e91fde (svn r24905) -Feature(ish): Implement station randomisation triggers. 12 years ago
peter1138 c00a400cc7 (svn r24905) -Feature(ish): Implement station randomisation triggers. 12 years ago
planetmaker f00d9976f9 (svn r24900) -Fix [FS#5389]: Comments with typos (most fixes supplied by Eagle_rainbow) 12 years ago
planetmaker c24374f99c (svn r24900) -Fix [FS#5389]: Comments with typos (most fixes supplied by Eagle_rainbow) 12 years ago
frosch 5386558459 (svn r24481) -Feature [FS#5127]: Make the pathfinder decide whether ships shall leave depots towards north or south. 12 years ago
frosch d17ec934f5 (svn r24481) -Feature [FS#5127]: Make the pathfinder decide whether ships shall leave depots towards north or south. 12 years ago
truebrain aa1a0053b0 (svn r23640) -Fix: stop using FORCEINLINE (1/3rd of the instances were, the others were still regular inline), but make sure inline is always a 'forced' inline (I am looking at you MSVC) 13 years ago
truebrain 1c9bec1999 (svn r23640) -Fix: stop using FORCEINLINE (1/3rd of the instances were, the others were still regular inline), but make sure inline is always a 'forced' inline (I am looking at you MSVC) 13 years ago
michi_cc 0e96bd02c8 (svn r23564) -Fix [FS#4888]: Extending a path reservation starting at a partially reserved rail station could fail. 13 years ago
michi_cc 24b7be856b (svn r23564) -Fix [FS#4888]: Extending a path reservation starting at a partially reserved rail station could fail. 13 years ago
rubidium bcb93b3b75 (svn r23093) -Codechange: add a default NULL for the Z of GetTileSlope and use it 13 years ago
rubidium 2ed0f93bfb (svn r23093) -Codechange: add a default NULL for the Z of GetTileSlope and use it 13 years ago
rubidium de980ef0f9 (svn r23091) -Codechange: rename some Get*Z functions to Get*PixelZ functions if they return the Z in pixels (like TilePixelHeight) 13 years ago
rubidium 7757a2ed40 (svn r23091) -Codechange: rename some Get*Z functions to Get*PixelZ functions if they return the Z in pixels (like TilePixelHeight) 13 years ago
michi_cc 214e7bc51d (svn r22801) -Feature: [YAPF] Take canal/ocean speed fraction of ships into account. 13 years ago
michi_cc 45b95ed629 (svn r22801) -Feature: [YAPF] Take canal/ocean speed fraction of ships into account. 13 years ago
rubidium eb2197f4c8 (svn r22410) -Document: some more bits ;) 13 years ago
rubidium 4d5dbf5170 (svn r22410) -Document: some more bits ;) 13 years ago
smatz 57c2ca34d3 (svn r22350) -Change: make YAPF hash tables much smaller, it should improve performance significantly (about 15%) 13 years ago
smatz 0c55cbfa73 (svn r22350) -Change: make YAPF hash tables much smaller, it should improve performance significantly (about 15%) 13 years ago
smatz 5852b66c71 (svn r22348) -Codechange: split ship-specific part of yapf_node.hpp to yapf_node_ship.hpp 13 years ago
smatz 6e011e9e68 (svn r22348) -Codechange: split ship-specific part of yapf_node.hpp to yapf_node_ship.hpp 13 years ago
alberth a14f4eb271 (svn r22144) -Codechange: Unify 'while (true)' to 'for (;;)' 14 years ago
alberth 1dbc0a20be (svn r22144) -Codechange: Unify 'while (true)' to 'for (;;)' 14 years ago
rubidium 701bd8848a (svn r22017) -Codechange: move MarkTileDirtyByTile to viewport_func.h 14 years ago
rubidium faf5d899f7 (svn r22017) -Codechange: move MarkTileDirtyByTile to viewport_func.h 14 years ago
rubidium bd921ed983 (svn r21996) -Fix [FS#4472]: [YAPF] Under some circumstances vehicles could be lost 14 years ago
rubidium fd94ed3009 (svn r21996) -Fix [FS#4472]: [YAPF] Under some circumstances vehicles could be lost 14 years ago
rubidium 9759d57087 (svn r21815) -Fix [FS#3908]: [YAPF] Apply a pathfinder penalty for back of one-way path signals so those aren't preferred over other possibilities 14 years ago
rubidium 7645c5ac43 (svn r21815) -Fix [FS#3908]: [YAPF] Apply a pathfinder penalty for back of one-way path signals so those aren't preferred over other possibilities 14 years ago
terkhen b6148914b0 (svn r21803) -Cleanup: Remove unnecessary semicolons. 14 years ago
terkhen 679cd3c21b (svn r21803) -Cleanup: Remove unnecessary semicolons. 14 years ago
smatz 61ad6990b9 (svn r21652) -Cleanup: one semicolon is enough 14 years ago
smatz aa4f269f3e (svn r21652) -Cleanup: one semicolon is enough 14 years ago
rubidium 6fd71624ef (svn r21651) -Fix [FS#4338] (r21229): infinite loop in the road pathfinder due to bouncing around in an "one way" trap; two one ways pointing towards eachother making it impossible to leave 14 years ago
rubidium ade19e5242 (svn r21651) -Fix [FS#4338] (r21229): infinite loop in the road pathfinder due to bouncing around in an "one way" trap; two one ways pointing towards eachother making it impossible to leave 14 years ago
alberth 84c9201e0c (svn r21594) -Codechange: Whitespace fixes in ifndef/define lines. 14 years ago
alberth 67cd2cd6be (svn r21594) -Codechange: Whitespace fixes in ifndef/define lines. 14 years ago
michi_cc 789dd1470f (svn r21524) -Fix [FS#4302]: Do not apply the last signal red pathfinder penalty when the signal is a path signal. 14 years ago
michi_cc e744b97ec8 (svn r21524) -Fix [FS#4302]: Do not apply the last signal red pathfinder penalty when the signal is a path signal. 14 years ago
terkhen f69d280f14 (svn r21521) -Codechange: Unify some cached values that were present in both road vehicles and trains. 14 years ago
terkhen 48b7916458 (svn r21521) -Codechange: Unify some cached values that were present in both road vehicles and trains. 14 years ago
rubidium facaef9e33 (svn r21511) -Feature: vehicle lost message for ships 14 years ago
rubidium 4045429df6 (svn r21511) -Feature: vehicle lost message for ships 14 years ago
rubidium acf7613433 (svn r21510) -Feature [FS#1956]: vehicle lost message for road vehicles 14 years ago
rubidium 6bc002ad74 (svn r21510) -Feature [FS#1956]: vehicle lost message for road vehicles 14 years ago
rubidium 3390b98958 (svn r21509) -Codechange: rename the rail pathfinders "path_not_found" parameter to "path_found" and remove the ! where the variables are set / read 14 years ago
rubidium b05d2675fc (svn r21509) -Codechange: rename the rail pathfinders "path_not_found" parameter to "path_found" and remove the ! where the variables are set / read 14 years ago
alberth 9f3845227e (svn r21273) -Codechange: Return values should start at the same line. 14 years ago
alberth ab50f74d7f (svn r21273) -Codechange: Return values should start at the same line. 14 years ago
rubidium 5a0865b294 (svn r21271) -Change: use the last red instead of last red exit penalty for making sure other waypoint entries are evaluated as well when they are occupied, e.g. when there are no signals before the waypoint but a train just beyond the waypoint is stopped (like for stations) 14 years ago
rubidium 3ca5951478 (svn r21271) -Change: use the last red instead of last red exit penalty for making sure other waypoint entries are evaluated as well when they are occupied, e.g. when there are no signals before the waypoint but a train just beyond the waypoint is stopped (like for stations) 14 years ago
terkhen 53d59b2882 (svn r21121) -Fix (r21100): Use the cached max speed when calculating YAPF penalties for road vehicles. 14 years ago
terkhen e08aa7e8e6 (svn r21121) -Fix (r21100): Use the cached max speed when calculating YAPF penalties for road vehicles. 14 years ago
michi_cc be4dfdd709 (svn r21107) -Fix: Don't use the maximum track speed where the maximum vehicle speed is meant. 14 years ago
michi_cc b26b8b5b2a (svn r21107) -Fix: Don't use the maximum track speed where the maximum vehicle speed is meant. 14 years ago
alberth 063931d435 (svn r21060) -Doc: Improved wording of comments (mostly by __ln__) 14 years ago
alberth 7e48d85104 (svn r21060) -Doc: Improved wording of comments (mostly by __ln__) 14 years ago
rubidium 360d6daf34 (svn r20632) -Cleanup: remove "a few" unneeded includes, and add them to some headers 14 years ago
rubidium 30f2afac9b (svn r20632) -Cleanup: remove "a few" unneeded includes, and add them to some headers 14 years ago
yexo 8baf3c7b53 (svn r20475) -Fix (r20474): also remove the include of crc32.hpp 14 years ago
yexo 53811d79c5 (svn r20475) -Fix (r20474): also remove the include of crc32.hpp 14 years ago
frosch c18839704b (svn r20286) -Codechange: Unify end of doxygen comments. 14 years ago
frosch 4bd32799f1 (svn r20286) -Codechange: Unify end of doxygen comments. 14 years ago
frosch 5b86c79fce (svn r20283) -Codechange: Unify start of doygen comments. 14 years ago
frosch ed4f806f1d (svn r20283) -Codechange: Unify start of doygen comments. 14 years ago
rubidium 8c85b4ce3d (svn r20281) -Codechange: unify case scope closure + break coding style 14 years ago
rubidium e356cb9405 (svn r20281) -Codechange: unify case scope closure + break coding style 14 years ago
alberth 137e2b64c9 (svn r20211) -Codechange: Indented code should have curly braces around it. 14 years ago
alberth be6c058424 (svn r20211) -Codechange: Indented code should have curly braces around it. 14 years ago
michi_cc 1a85f15b0b (svn r19896) -Fix [FS#3803] (r18648): [YAPP] Inform the pathfinder as well about the fact that the backside of an one-way path signal can be a safe waiting point. 14 years ago
michi_cc f3b56340c2 (svn r19896) -Fix [FS#3803] (r18648): [YAPP] Inform the pathfinder as well about the fact that the backside of an one-way path signal can be a safe waiting point. 14 years ago
rubidium aefe28bd1c (svn r19873) -Fix [FS#3817]: if the (guessed initial) destination tile of a road stop wasn't a road stop but was a T-junction or turn, the road vehicles would jump around in circles 14 years ago
rubidium d8d37466af (svn r19873) -Fix [FS#3817]: if the (guessed initial) destination tile of a road stop wasn't a road stop but was a T-junction or turn, the road vehicles would jump around in circles 14 years ago
rubidium a4bc80417b (svn r19810) -Fix: [YAPF] Improperly formatted (global) constant 14 years ago
rubidium dc149021be (svn r19810) -Fix: [YAPF] Improperly formatted (global) constant 14 years ago
frosch a4413f4cf6 (svn r19670) -Codechange: Add CeilDiv() and RoundDiv() to simplify integer divisions with rounding. 14 years ago
frosch 2e90f7f8b9 (svn r19670) -Codechange: Add CeilDiv() and RoundDiv() to simplify integer divisions with rounding. 14 years ago
smatz d2e99657fa (svn r19507) -Codechange: remove semicolon after DECLARE_POSTFIX_INCREMENT and DECLARE_ENUM_AS_BIT_SET 14 years ago
smatz 53aaabe6e9 (svn r19507) -Codechange: remove semicolon after DECLARE_POSTFIX_INCREMENT and DECLARE_ENUM_AS_BIT_SET 14 years ago
yexo 5e48066824 (svn r19247) -Codechange: Rename methods to fit better to common style (skidd13) 15 years ago
yexo 1a89a5fc92 (svn r19247) -Codechange: Rename methods to fit better to common style (skidd13) 15 years ago
yexo 4b6c04585e (svn r19242) -Codechange: Perfer pointer instead of reference (skidd13)
-Cleanup: merge PopHead() and RemoveHead() into Shift()
15 years ago
yexo dd03cd54ee (svn r19242) -Codechange: Perfer pointer instead of reference (skidd13)
-Cleanup: merge PopHead() and RemoveHead() into Shift()
15 years ago
yexo d06407b06c (svn r19161) -Codechange: make the default size of the open list used for yapf a lot lower to reduce memory usage 15 years ago
yexo 3a36964734 (svn r19161) -Codechange: make the default size of the open list used for yapf a lot lower to reduce memory usage 15 years ago
yexo 0f6e4a5cce (svn r19160) -Codechange: Enlarge a CBinaryHeapT if the heap is full instead of dropping the added item
-Fix: CBinaryHeapT::CheckConsistency compared pointers instead of the actual items (skidd13)
15 years ago
yexo 1abc0db336 (svn r19160) -Codechange: Enlarge a CBinaryHeapT if the heap is full instead of dropping the added item
-Fix: CBinaryHeapT::CheckConsistency compared pointers instead of the actual items (skidd13)
15 years ago
rubidium 5750163213 (svn r19141) -Fix [FS#3619] (r18421): look-ahead for multitile waypoints 'made up' data that shouldn't go into the cache, causing desyncs in MP 15 years ago
rubidium 3626eb340e (svn r19141) -Fix [FS#3619] (r18421): look-ahead for multitile waypoints 'made up' data that shouldn't go into the cache, causing desyncs in MP 15 years ago
frosch 556f449f0b (svn r18826) -Codechange: Unifiy return value of (SmallArray|FixedSizeArray)::(Append|AppendC) with other containers. (skidd13) 15 years ago
frosch 6465f02fba (svn r18826) -Codechange: Unifiy return value of (SmallArray|FixedSizeArray)::(Append|AppendC) with other containers. (skidd13) 15 years ago
frosch 75b7bb4231 (svn r18822) -Codechange: Rename YAPF-related container classes and their members to better fit other container classes. (skidd13) 15 years ago
frosch c7dafb9a26 (svn r18822) -Codechange: Rename YAPF-related container classes and their members to better fit other container classes. (skidd13) 15 years ago
rubidium 9467b7c6d6 (svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header 15 years ago
rubidium 82fc28f77f (svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header 15 years ago
rubidium 43a5dd8f86 (svn r18535) -Fix [FS#2722]: don't account for path reservation costs when entering a signal block via a 'block' signal. This way you won't get double penalties, both red signals and reservation costs, for the block signalled tracks 15 years ago
rubidium c5159055e3 (svn r18535) -Fix [FS#2722]: don't account for path reservation costs when entering a signal block via a 'block' signal. This way you won't get double penalties, both red signals and reservation costs, for the block signalled tracks 15 years ago
rubidium 899b3db66b (svn r18481) -Codechange: unify the curve pathfinder penalty defaults; 0.01 tile won't make a dent, 3 tiles might be a bit too much
-Feature-ish: make maximum pathfinder penalties for finding depots customisable, also increase it slightly to 20 tiles worth of penalties.
15 years ago
rubidium 472e5501fa (svn r18481) -Codechange: unify the curve pathfinder penalty defaults; 0.01 tile won't make a dent, 3 tiles might be a bit too much
-Feature-ish: make maximum pathfinder penalties for finding depots customisable, also increase it slightly to 20 tiles worth of penalties.
15 years ago
rubidium c616b8cc0c (svn r18421) -Fix [FS#3244]: pathfinders wouldn't consider the 'other' reachable waypoint tile if the closest one is free but there is no safe waiting point directly after it. Now check for a free safe waiting point beyond the waypoint unless there are junctions before the first safe waiting point. 15 years ago