Index: src/road_gui.cpp =================================================================== --- src/road_gui.cpp (wersja 27179) +++ src/road_gui.cpp (kopia robocza) @@ -642,13 +642,13 @@ case DDSP_REMOVE_BUSSTOP: { TileArea ta(start_tile, end_tile); - DoCommandP(ta.tile, ta.w | ta.h << 8, ROADSTOP_BUS, CMD_REMOVE_ROAD_STOP | CMD_MSG(_road_type_infos[_cur_roadtype].err_remove_station[ROADSTOP_BUS]), CcPlaySound1D); + DoCommandP(ta.tile, ta.w | ta.h << 8, (_ctrl_pressed << 1) | ROADSTOP_BUS, CMD_REMOVE_ROAD_STOP | CMD_MSG(_road_type_infos[_cur_roadtype].err_remove_station[ROADSTOP_BUS]), CcPlaySound1D); break; } case DDSP_REMOVE_TRUCKSTOP: { TileArea ta(start_tile, end_tile); - DoCommandP(ta.tile, ta.w | ta.h << 8, ROADSTOP_TRUCK, CMD_REMOVE_ROAD_STOP | CMD_MSG(_road_type_infos[_cur_roadtype].err_remove_station[ROADSTOP_TRUCK]), CcPlaySound1D); + DoCommandP(ta.tile, ta.w | ta.h << 8, (_ctrl_pressed << 1) | ROADSTOP_TRUCK, CMD_REMOVE_ROAD_STOP | CMD_MSG(_road_type_infos[_cur_roadtype].err_remove_station[ROADSTOP_TRUCK]), CcPlaySound1D); break; } } Index: src/station_cmd.cpp =================================================================== --- src/station_cmd.cpp (wersja 27179) +++ src/station_cmd.cpp (kopia robocza) @@ -2033,6 +2033,7 @@ * @param p1 bit 0..7: Width of the removal area. * bit 8..15: Height of the removal area. * @param p2 bit 0: 0 For bus stops, 1 for truck stops. + * @param p2 bit 1: 0 to keep roads of all drive-through stops, 1 to remove them. * @param text Unused. * @return The cost of this operation or an error. */ @@ -2069,7 +2070,7 @@ quantity++; /* If the stop was a drive-through stop replace the road */ - if ((flags & DC_EXEC) && is_drive_through) { + if ((flags & DC_EXEC) && is_drive_through && !HasBit(p2, 1)) { MakeRoadNormal(cur_tile, road_bits, rts, ClosestTownFromTile(cur_tile, UINT_MAX)->index, road_owner, tram_owner);