diff --git a/server/NetPacksLobbyServer.cpp b/server/NetPacksLobbyServer.cpp index 33cc714ff..9e81db3b2 100644 --- a/server/NetPacksLobbyServer.cpp +++ b/server/NetPacksLobbyServer.cpp @@ -170,8 +170,10 @@ void ApplyOnServerNetPackVisitor::visitLobbySetCampaign(LobbySetCampaign & pack) bool isCurrentMapConquerable = pack.ourCampaign->currentScenario() && pack.ourCampaign->isAvailable(*pack.ourCampaign->currentScenario()); - for(auto scenarioID : pack.ourCampaign->allScenarios()) + auto scenarios = pack.ourCampaign->allScenarios(); + for(std::set::reverse_iterator itr = scenarios.rbegin(); itr != scenarios.rend(); itr++) // reverse -> on multiple scenario selection set lowest id at the end { + auto scenarioID = *itr; if(pack.ourCampaign->isAvailable(scenarioID)) { if(!isCurrentMapConquerable || (isCurrentMapConquerable && scenarioID == *pack.ourCampaign->currentScenario()))