From d657bd8e20356e891c1fb4540103e359b6736645 Mon Sep 17 00:00:00 2001 From: Laserlicht <13953785+Laserlicht@users.noreply.github.com> Date: Fri, 27 Dec 2024 17:59:54 +0100 Subject: [PATCH] fix campaign scenario order #3601 --- server/NetPacksLobbyServer.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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()))