diff options
Diffstat (limited to 'src/game.c')
| -rw-r--r-- | src/game.c | 34 |
1 files changed, 24 insertions, 10 deletions
@@ -65,6 +65,9 @@ static void main_loop_client(int sock) gamestate state = STATE_CLIENT_WAIT_FOR_HAND_CARDS; uint8_t round = 1; data_store *data = datamodel(); + uint8_t open_card_idx; + uint8_t picked_stack_idx; + while(running) { @@ -84,16 +87,21 @@ static void main_loop_client(int sock) ui_display_wnd_hand_cards(&data->hand, false, 0); state = STATE_CLIENT_SELECT_OPEN_CARD; - running = false; - sleep(2); break; -#if 0 + case STATE_CLIENT_SELECT_OPEN_CARD: - select_open_card(); - send_open_card_to_server(); + // Select open card + open_card_idx = ui_choose_card(&data->hand); + data->selected_card = data->hand.cards[open_card_idx]; + + // Send open card to server + net_send(sock, msg_type_selected_card, NULL); + state = STATE_CLIENT_WAIT_FOR_OPEN_CARDS; + sleep(2); + return; break; - +#if 0 case STATE_CLIENT_WAIT_FOR_OPEN_CARDS: receive_sorted_list_of_open_cards(); state = STATE_CLIENT_PLAY_CARDS; @@ -201,13 +209,20 @@ static void main_loop_server(socket_list_t* client_socks) } state = STATE_SERVER_WAIT_FOR_OPEN_CARDS; - running = false; + return; break; #if 0 case STATE_SERVER_WAIT_FOR_OPEN_CARDS: - receive_open_cards_from_clients(); - sort_open_card_list(); // in ascending order + // Receive open cards from clients + for(int i = 0; i < data->players.count; i++) + { + net_recv(client_socks.sockets[i], msg_selected_card); + } + + sort_open_card_list(); // in ascending order + send_open_card_list_to_clients(); + state = STATE_SERVER_PLAY_CARDS; break; @@ -338,4 +353,3 @@ void start_game(const bool servermode, const char* addr, const char* port) ui_fini(); } } - |
