From 8e6ed8d5e9b5feddade48405c47563b20206b44b Mon Sep 17 00:00:00 2001 From: Michael Lutz Date: Sun, 16 Oct 2022 18:01:43 +0200 Subject: [PATCH] Fix db98cedb: Swap the tile parameter validation around as only the first TileIndex is automatically validated. --- src/rail_cmd.cpp | 2 +- src/road_cmd.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index 894e99a80b..f61a2860f9 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -880,7 +880,7 @@ static CommandCost CmdRailTrackHelper(DoCommandFlag flags, TileIndex tile, TileI CommandCost total_cost(EXPENSES_CONSTRUCTION); if ((!remove && !ValParamRailtype(railtype)) || !ValParamTrackOrientation(track)) return CMD_ERROR; - if (end_tile >= MapSize()) return CMD_ERROR; + if (end_tile >= MapSize() || tile >= MapSize()) return CMD_ERROR; Trackdir trackdir = TrackToTrackdir(track); diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index f5dc54332b..8d2461c48f 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -976,7 +976,7 @@ static bool CanConnectToRoad(TileIndex tile, RoadType rt, DiagDirection dir) */ CommandCost CmdBuildLongRoad(DoCommandFlag flags, TileIndex end_tile, TileIndex start_tile, RoadType rt, Axis axis, DisallowedRoadDirections drd, bool start_half, bool end_half, bool is_ai) { - if (end_tile >= MapSize()) return CMD_ERROR; + if (start_tile >= MapSize()) return CMD_ERROR; if (!ValParamRoadType(rt) || !IsValidAxis(axis) || !IsValidDisallowedRoadDirections(drd)) return CMD_ERROR; @@ -1074,7 +1074,7 @@ std::tuple CmdRemoveLongRoad(DoCommandFlag flags, TileIndex { CommandCost cost(EXPENSES_CONSTRUCTION); - if (end_tile >= MapSize()) return { CMD_ERROR, 0 }; + if (start_tile >= MapSize()) return { CMD_ERROR, 0 }; if (!ValParamRoadType(rt) || !IsValidAxis(axis)) return { CMD_ERROR, 0 }; /* Only drag in X or Y direction dictated by the direction variable */