From 147fa18fdfbf9af8247222ea00f5f736282379a0 Mon Sep 17 00:00:00 2001 From: Kp Date: Tue, 3 Feb 2015 00:37:08 +0000 Subject: [PATCH] Use std::sort in multi_sort_kill_list --- similar/main/multi.cpp | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/similar/main/multi.cpp b/similar/main/multi.cpp index 41f0703b1..08e1468c4 100644 --- a/similar/main/multi.cpp +++ b/similar/main/multi.cpp @@ -141,7 +141,7 @@ int Net_create_loc = 0; // pointer into previous array int Network_status = 0; ntstring Network_message; int Network_message_reciever=-1; -int sorted_kills[MAX_PLAYERS]; +static array sorted_kills; int multi_goto_secret = 0; array, MAX_PLAYERS> kill_matrix; array team_kills; @@ -515,10 +515,7 @@ void multi_sort_kill_list(void) { // Sort the kills list each time a new kill is added - int kills[MAX_PLAYERS]; - int changed = 1; - for (uint_fast32_t i = 0; i < MAX_PLAYERS; i++) { if (Game_mode & GM_MULTI_COOP) @@ -537,20 +534,11 @@ multi_sort_kill_list(void) kills[i] = Players[i].net_kills_total; } - while (changed) - { - changed = 0; - for (uint_fast32_t i = 0; i < N_players-1; i++) - { - if (kills[sorted_kills[i]] < kills[sorted_kills[i+1]]) - { - changed = sorted_kills[i]; - sorted_kills[i] = sorted_kills[i+1]; - sorted_kills[i+1] = changed; - changed = 1; - } - } - } + const auto predicate = [&](unsigned a, unsigned b) { + return kills[a] < kills[b]; + }; + const auto &range = partial_range(sorted_kills, N_players); + std::sort(range.begin(), range.end(), predicate); } char Multi_killed_yourself=0;