From bc44158f9a3667e5398f6a4c45780a6a9fe948be Mon Sep 17 00:00:00 2001 From: Tyler Trahan Date: Sun, 16 Apr 2023 03:05:04 -0400 Subject: [PATCH] Change: Allow overbuilding station and waypoint tiles (#10618) --- src/station_cmd.cpp | 12 ------------ src/waypoint_cmd.cpp | 9 +-------- 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index ce5fb8cb1e..478b08a0fe 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -1263,7 +1263,6 @@ static void RestoreTrainReservation(Train *v) static CommandCost CalculateRailStationCost(TileArea tile_area, DoCommandFlag flags, Axis axis, StationID *station, RailType rt, std::vector &affected_vehicles, StationClassID spec_class, byte spec_index, byte plat_len, byte numtracks) { CommandCost cost(EXPENSES_CONSTRUCTION); - bool success = false; bool length_price_ready = true; byte tracknum = 0; for (TileIndex cur_tile : tile_area) { @@ -1290,12 +1289,9 @@ static CommandCost CalculateRailStationCost(TileArea tile_area, DoCommandFlag fl cost.AddCost(_price[PR_BUILD_STATION_RAIL_LENGTH]); length_price_ready = false; } - success = true; } } - if (!success) return_cmd_error(STR_ERROR_ALREADY_BUILT); - return cost; } @@ -1879,7 +1875,6 @@ static CommandCost FindJoiningRoadStop(StationID existing_stop, StationID statio static CommandCost CalculateRoadStopCost(TileArea tile_area, DoCommandFlag flags, bool is_drive_through, bool is_truck_stop, Axis axis, DiagDirection ddir, StationID *est, RoadType rt, Money unit_cost) { CommandCost cost(EXPENSES_CONSTRUCTION); - bool success = false; /* Check every tile in the area. */ for (TileIndex cur_tile : tile_area) { uint invalid_dirs = 0; @@ -1898,16 +1893,9 @@ static CommandCost CalculateRoadStopCost(TileArea tile_area, DoCommandFlag flags if (!is_preexisting_roadstop) { cost.AddCost(ret); cost.AddCost(unit_cost); - success = true; - } else if (is_preexisting_roadstop && !is_drive_through) { - /* Allow rotating non-drive through stops for free */ - success = true; } - } - if (!success) return_cmd_error(STR_ERROR_ALREADY_BUILT); - return cost; } diff --git a/src/waypoint_cmd.cpp b/src/waypoint_cmd.cpp index 9793d63681..40402ef86b 100644 --- a/src/waypoint_cmd.cpp +++ b/src/waypoint_cmd.cpp @@ -195,15 +195,8 @@ CommandCost CmdBuildRailWaypoint(DoCommandFlag flags, TileIndex start_tile, Axis /* only AddCost for non-existing waypoints */ CommandCost cost(EXPENSES_CONSTRUCTION); - bool success = false; for (TileIndex cur_tile : new_location) { - if (!IsRailWaypointTile(cur_tile)) { - cost.AddCost(_price[PR_BUILD_WAYPOINT_RAIL]); - success = true; - } - } - if (!success) { - return_cmd_error(STR_ERROR_ALREADY_BUILT); + if (!IsRailWaypointTile(cur_tile)) cost.AddCost(_price[PR_BUILD_WAYPOINT_RAIL]); } /* Make sure the area below consists of clear tiles. (OR tiles belonging to a certain rail station) */