src/road_cmd.cpp
changeset 7257 18c8b085008d
parent 7252 9a5ca22a83c8
child 7260 23cd58b6bf51
equal deleted inserted replaced
7256:ec4124cf48d3 7257:18c8b085008d
   425 		}
   425 		}
   426 
   426 
   427 		case MP_STATION:
   427 		case MP_STATION:
   428 			if (!IsDriveThroughStopTile(tile)) return CMD_ERROR;
   428 			if (!IsDriveThroughStopTile(tile)) return CMD_ERROR;
   429 			if (HASBIT(GetRoadTypes(tile), rt)) return_cmd_error(STR_1007_ALREADY_BUILT);
   429 			if (HASBIT(GetRoadTypes(tile), rt)) return_cmd_error(STR_1007_ALREADY_BUILT);
       
   430 			/* Don't allow "upgrading" the roadstop when vehicles are already driving on it */
       
   431 			if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
   430 			break;
   432 			break;
   431 
   433 
   432 		case MP_TUNNELBRIDGE:
   434 		case MP_TUNNELBRIDGE:
   433 			if ((IsTunnel(tile) && GetTunnelTransportType(tile) != TRANSPORT_ROAD) ||
   435 			if ((IsTunnel(tile) && GetTunnelTransportType(tile) != TRANSPORT_ROAD) ||
   434 					(IsBridge(tile) && GetBridgeTransportType(tile) != TRANSPORT_ROAD)) return CMD_ERROR;
   436 					(IsBridge(tile) && GetBridgeTransportType(tile) != TRANSPORT_ROAD)) return CMD_ERROR;
   435 			if (HASBIT(GetRoadTypes(tile), rt)) return_cmd_error(STR_1007_ALREADY_BUILT);
   437 			if (HASBIT(GetRoadTypes(tile), rt)) return_cmd_error(STR_1007_ALREADY_BUILT);
       
   438 			/* Don't allow "upgrading" the bridge/tunnel when vehicles are already driving on it */
       
   439 			if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
   436 			break;
   440 			break;
   437 
   441 
   438 		default:
   442 		default:
   439 do_clear:;
   443 do_clear:;
   440 			ret = DoCommand(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
   444 			ret = DoCommand(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR);