diff --git a/src/cargomonitor.cpp b/src/cargomonitor.cpp --- a/src/cargomonitor.cpp +++ b/src/cargomonitor.cpp @@ -117,8 +117,9 @@ int32 GetPickupAmount(CargoMonitorID mon * @param src_type type of \a src. * @param src index of source. * @param st station where the cargo is delivered to. + * @param dest industry index where the cargo is delivered to. */ -void AddCargoDelivery(CargoID cargo_type, CompanyID company, uint32 amount, SourceType src_type, SourceID src, const Station *st) +void AddCargoDelivery(CargoID cargo_type, CompanyID company, uint32 amount, SourceType src_type, SourceID src, const Station *st, IndustryID dest) { if (amount == 0) return; @@ -151,6 +152,7 @@ void AddCargoDelivery(CargoID cargo_type /* Industry delivery. */ for (const Industry * const *ip = st->industries_near.Begin(); ip != st->industries_near.End(); ip++) { + if ((*ip)->index != dest) continue; CargoMonitorID num = EncodeCargoIndustryMonitor(company, cargo_type, (*ip)->index); CargoMonitorMap::iterator iter = _cargo_deliveries.find(num); if (iter != _cargo_deliveries.end()) iter->second += amount;