summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMario Kilies <MarioKilies@GMX.net>2011-01-24 21:02:10 +0100
committerMario Kilies <MarioKilies@GMX.net>2011-01-24 21:02:10 +0100
commit87e0869db9d37edcde11dcda4ee864623d83e6ae (patch)
tree481d506710a408cca4907d2a9061939b18cc2ae6 /src
parentba45c5f939e5e31061237388d42e01739f9f561f (diff)
Implemented STATE_CLIENT_SELECT_OPEN_CARD.
Diffstat (limited to 'src')
-rw-r--r--src/game.c34
1 files changed, 24 insertions, 10 deletions
diff --git a/src/game.c b/src/game.c
index e42e662..2abf725 100644
--- a/src/game.c
+++ b/src/game.c
@@ -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();
}
}
-