diff --git a/source/Engine.cpp b/source/Engine.cpp index ad1c5fc90b6e..6c5e2dcd93b5 100644 --- a/source/Engine.cpp +++ b/source/Engine.cpp @@ -2434,12 +2434,21 @@ void Engine::DoCollection(Flotsam &flotsam) } // Unless something went wrong while forming the message, display it. - if(!message.empty()) - { - int free = collector->Cargo().Free(); - message += " (" + Format::CargoString(free, "free space") + " remaining.)"; - Messages::Add(message, Messages::Importance::High); - } + if(message.empty()) + return; + + int free = collector->Cargo().Free(); + int total = 0; + for(const shared_ptr &ship : player.Ships()) + if(!ship->IsParked() && ship->GetSystem() == player.GetSystem()) + total += ship->Cargo().Free(); + + message += " (" + Format::CargoString(free, "free space") + " remaining"; + if(free == total) + message += ".)"; + else + message += ", " + Format::MassString(total) + " in fleet.)"; + Messages::Add(message, Messages::Importance::High); }