diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 03c07bb405..f428898b09 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -489,9 +489,12 @@ CommandCost CmdBuildRoad(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 } if ((existing & pieces) == pieces) { /* We only want to set the (dis)allowed road directions */ - if (toggle_drd != DRD_NONE && rt != ROADTYPE_TRAM && IsRoadOwner(tile, ROADTYPE_ROAD, _current_company)) { + if (toggle_drd != DRD_NONE && rt != ROADTYPE_TRAM) { if (crossing) return_cmd_error(STR_ERROR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION); + Owner owner = GetRoadOwner(tile, ROADTYPE_ROAD); + if (owner != OWNER_NONE && !CheckOwnership(owner)) return CMD_ERROR; + if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR; /* Ignore half built tiles */