private void loadCargo(
    Dropship ship, Inventory available, final boolean imports
  ) {
    ship.cargo.removeAllItems() ;
    I.say("Loading cargo...") ;
    //
    //  We prioritise items based on the amount of demand and the price of the
    //  goods in question-
    final Sorting <Item> sorting = new Sorting <Item> () {
      public int compare(Item a, Item b) {
        if (a == b) return 0 ;
        final float
          pA = a.amount / a.type.basePrice,
          pB = b.amount / b.type.basePrice ;
        return (imports ? 1 : -1) * (pA > pB ? 1 : -1) ;
      }
    } ;
    for (Item item : available.allItems()) sorting.add(item) ;
    float totalAmount = 0 ;
    for (Item item : sorting) {
      if (totalAmount + item.amount > ship.MAX_CAPACITY) break ;
      available.removeItem(item) ;
      ship.cargo.addItem(item) ;
      totalAmount += item.amount ;
      I.say("Loading cargo: "+item) ;
    }
  }