summaryrefslogtreecommitdiff
path: root/src/game.c
diff options
context:
space:
mode:
authorReiner Herrmann <reiner@reiner-h.de>2011-01-24 22:05:57 +0100
committerReiner Herrmann <reiner@reiner-h.de>2011-01-24 22:05:57 +0100
commitafe777a3cfa06fbdf391a338ba8506cf9cbcbb47 (patch)
tree92eef4d2fd4e90b2149e39b5b4d7523205b3476e /src/game.c
parent6f0d8cbe42c1097eb540bcd83b9be2b16c31a923 (diff)
server: send open cards to clients
client: receive open cards from clients, sort and display them
Diffstat (limited to 'src/game.c')
-rw-r--r--src/game.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/game.c b/src/game.c
index d9e7bdd..21675d9 100644
--- a/src/game.c
+++ b/src/game.c
@@ -98,15 +98,20 @@ static void main_loop_client(int sock)
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();
+ net_recv(sock, msg_type_selected_card_all);
+ pnoc_sort(data->players.players, MAX_PLAYERS); // sort in ascending order
+
+ ui_display_wnd_current_state(data->players.players, MAX_PLAYERS, 0, 0); // TODO fix parameters
+
state = STATE_CLIENT_PLAY_CARDS;
+ sleep(2);
+ return;
break;
+#if 0
case STATE_CLIENT_PLAY_CARDS:
foreach(open_card)
{
@@ -219,12 +224,10 @@ static void main_loop_server(socket_list_t* client_socks)
assert(pl != NULL);
net_recv(client_socks->sockets[i], msg_type_selected_card);
pl->open_card = data->selected_card;
- printf("[Server] received open card: %d\n", pl->open_card);
}
- //sort_open_card_list(); // in ascending order
-
- //send_open_card_list_to_clients();
+ for(int i=0; i<data->players.count; i++)
+ net_send(client_socks->sockets[i], msg_type_selected_card_all, NULL);
state = STATE_SERVER_PLAY_CARDS;
return;
@@ -323,9 +326,9 @@ void start_game(const bool servermode, const char* addr, const char* port)
for(int i=0; i<num_players; i++)
{
net_recv(client_socks.sockets[i], msg_type_hello);
- // assign ids
- client_socks.player_ids[i] = i;
- data->players.players[i].player_id = i;
+ // assign ids (starting with 1; 0 is invalid)
+ client_socks.player_ids[i] = i+1;
+ data->players.players[i].player_id = i+1;
printf("Player connected: %s\n", data->players.players[i].player_name);
}