diff options
Diffstat (limited to 'src/game.c')
| -rw-r--r-- | src/game.c | 17 |
1 files changed, 11 insertions, 6 deletions
@@ -184,10 +184,20 @@ static void main_loop_server(socket_list_t* client_socks) } } + int num_dealcards = num_cards_in_stack(mainstack, cards) / data->players.count; + if(num_dealcards > 10) + num_dealcards = 10; + // Deal hand cards to clients for(int i = 0; i < data->players.count; i++) { - net_send(client_socks->sockets[i], msg_type_deal_hand, &data->hand); + hand_t h; + memset(h.cards, 0, MAX_HAND_CARDS); + for(int j=0; j<num_dealcards; j++) + h.cards[j] = draw_card(mainstack, cards); + hand_sort(&h); + + net_send(client_socks->sockets[i], msg_type_deal_hand, &h); } state = STATE_SERVER_WAIT_FOR_OPEN_CARDS; @@ -287,11 +297,6 @@ void start_game(const bool servermode, const char* addr, const char* port) pnoc_sort(pnoc, 10); const uint32_t score = 10; - // Example data set for hand cards window - const hand_t h = { {22, 0, 12, 85, 27, 69, 78, 0, 77, 0} }; - data->hand = h; - hand_sort(&data->hand); - server_sock = server_start(port); server_get_players(server_sock, &client_socks, num_players); data->players.count = num_players; |
