mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-09 23:50:25 +00:00
Change: Autorail / autoroad tools can start dragging from invalid tiles
This commit is contained in:
parent
a8a4737c5b
commit
381fa36450
@ -875,8 +875,8 @@ static CommandCost ValidateAutoDrag(Trackdir *trackdir, TileIndex start, TileInd
|
|||||||
* @param railtype railroad type normal/maglev (0 = normal, 1 = mono, 2 = maglev), only used for building
|
* @param railtype railroad type normal/maglev (0 = normal, 1 = mono, 2 = maglev), only used for building
|
||||||
* @param track track-orientation
|
* @param track track-orientation
|
||||||
* @param remove remove tracks?
|
* @param remove remove tracks?
|
||||||
* @param auto_remove_signals false = build up to an obstacle, true = fail if an obstacle is found (used for AIs), only used for building
|
* @param auto_remove_signals false = error on signal in the way, true = auto remove signals when in the way, only used for building
|
||||||
* @param fail_on_obstacle false = error on signal in the way, true = auto remove signals when in the way, only used for building
|
* @param fail_on_obstacle false = build starting from and up to an obstacle, true = fail if an obstacle is found (used for AIs)
|
||||||
* @return the cost of this operation or an error
|
* @return the cost of this operation or an error
|
||||||
*/
|
*/
|
||||||
static CommandCost CmdRailTrackHelper(DoCommandFlag flags, TileIndex tile, TileIndex end_tile, RailType railtype, Track track, bool remove, bool auto_remove_signals, bool fail_on_obstacle)
|
static CommandCost CmdRailTrackHelper(DoCommandFlag flags, TileIndex tile, TileIndex end_tile, RailType railtype, Track track, bool remove, bool auto_remove_signals, bool fail_on_obstacle)
|
||||||
@ -900,7 +900,7 @@ static CommandCost CmdRailTrackHelper(DoCommandFlag flags, TileIndex tile, TileI
|
|||||||
last_error = ret;
|
last_error = ret;
|
||||||
if (last_error.GetErrorMessage() != STR_ERROR_ALREADY_BUILT && !remove) {
|
if (last_error.GetErrorMessage() != STR_ERROR_ALREADY_BUILT && !remove) {
|
||||||
if (fail_on_obstacle) return last_error;
|
if (fail_on_obstacle) return last_error;
|
||||||
break;
|
if (had_success) break; // Keep going if we haven't constructed any rail yet, skipping the start of the drag
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Ownership errors are more important. */
|
/* Ownership errors are more important. */
|
||||||
|
@ -1034,7 +1034,7 @@ CommandCost CmdBuildLongRoad(DoCommandFlag flags, TileIndex end_tile, TileIndex
|
|||||||
last_error = ret;
|
last_error = ret;
|
||||||
if (last_error.GetErrorMessage() != STR_ERROR_ALREADY_BUILT) {
|
if (last_error.GetErrorMessage() != STR_ERROR_ALREADY_BUILT) {
|
||||||
if (is_ai) return last_error;
|
if (is_ai) return last_error;
|
||||||
break;
|
if (had_success) break; // Keep going if we haven't constructed any road yet, skipping the start of the drag
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
had_success = true;
|
had_success = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user