# HG changeset patch # User Michael Lutz # Date 2022-10-16 16:01:43 # Node ID bfdeddc5c3d430afa434a3111b023b8150ccd3cf # Parent bf09759390de7b9b81bfa36397aadd483cac2d28 Fix db98cedb: Swap the tile parameter validation around as only the first TileIndex is automatically validated. diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -880,7 +880,7 @@ static CommandCost CmdRailTrackHelper(Do 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 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -976,7 +976,7 @@ static bool CanConnectToRoad(TileIndex t */ 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 CmdRemove { 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 */