summaryrefslogtreecommitdiff
path: root/src/player.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/player.c')
-rw-r--r--src/player.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/player.c b/src/player.c
index 235add8..cf587fc 100644
--- a/src/player.c
+++ b/src/player.c
@@ -16,7 +16,7 @@ player_list_entry_t *get_player_list_entry_by_player_id(player_list_t *pl, const
return NULL;
}
-static int ple_comparator(const void *a, const void *b)
+static int ple_open_card_comparator(const void *a, const void *b)
{
player_list_entry_t ple1 = *(player_list_entry_t *)a;
player_list_entry_t ple2 = *(player_list_entry_t *)b;
@@ -24,9 +24,24 @@ static int ple_comparator(const void *a, const void *b)
return ple1.open_card - ple2.open_card;
}
+static int ple_score_comparator(const void *a, const void *b)
+{
+ player_list_entry_t ple1 = *(player_list_entry_t *)a;
+ player_list_entry_t ple2 = *(player_list_entry_t *)b;
+
+ return ple1.score - ple2.score;
+}
+
void player_list_sort_by_open_card(player_list_t *pl, const uint8_t num_entries)
{
assert(pl != NULL);
- qsort(pl->players, num_entries, sizeof(player_list_entry_t), ple_comparator);
+ qsort(pl->players, num_entries, sizeof(player_list_entry_t), ple_open_card_comparator);
+}
+
+void player_list_sort_by_score(player_list_t *pl, const uint8_t num_entries)
+{
+ assert(pl != NULL);
+
+ qsort(pl->players, num_entries, sizeof(player_list_entry_t), ple_score_comparator);
}