diff options
Diffstat (limited to 'src/player.c')
| -rw-r--r-- | src/player.c | 19 |
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); } |
