From 6d86b16beda65180daab238a19beece66b104d33 Mon Sep 17 00:00:00 2001 From: Reiner Herrmann Date: Tue, 25 Jan 2011 18:17:28 +0100 Subject: fix bug where server is sending message to wrong clients --- src/client_game_states.c | 8 +------- src/game.c | 3 ++- src/player.c | 2 +- src/server_game_states.c | 8 +------- 4 files changed, 5 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/client_game_states.c b/src/client_game_states.c index 62867e5..86be2a5 100644 --- a/src/client_game_states.c +++ b/src/client_game_states.c @@ -52,15 +52,8 @@ game_state_t state_client_wait_for_open_cards(const int sock) ui_display_wnd_messages("Waiting for the other players to pick their cards"); net_recv(sock, msg_type_selected_card_all); - -for(int i=0; iplayer_list.count; i++) - fprintf(stderr, "Before sort: %d\n", d->player_list.players[i].open_card); - player_list_sort_by_open_card(&d->player_list, d->player_list.count); // sort in ascending order -for(int i=0; iplayer_list.count; i++) - fprintf(stderr, "After sort: %d\n", d->player_list.players[i].open_card); - ui_display_wnd_current_state(&d->player_list, d->player_list.count, true, 0, 0); // TODO fix parameters return STATE_CLIENT_PLAY_CARDS; @@ -84,6 +77,7 @@ game_state_t state_client_play_cards(const int sock) net_send(sock, msg_type_selected_stack_c, NULL); } + ui_display_wnd_messages("Waiting for chosen stack"); net_recv(sock, msg_type_selected_stack_s); ds->player_list.players[i].score += card_stack_get_points(&ds->table_stacks.stacks[ds->stack_index]); card_stack_replace(&ds->table_stacks.stacks[ds->stack_index], c); diff --git a/src/game.c b/src/game.c index c6341a8..9810e9f 100644 --- a/src/game.c +++ b/src/game.c @@ -108,7 +108,8 @@ void start_game(const bool servermode, const char* addr, const char* port) socket_list_t client_socks; uint8_t num_players = 2; - srand(time(0)); // Initialize RNG + //srand(time(0)); // Initialize RNG + srand(1337); data_store_t *data = data_store(); diff --git a/src/player.c b/src/player.c index b264922..235add8 100644 --- a/src/player.c +++ b/src/player.c @@ -28,5 +28,5 @@ void player_list_sort_by_open_card(player_list_t *pl, const uint8_t num_entries) { assert(pl != NULL); - qsort(pl, num_entries, sizeof(player_list_entry_t), ple_comparator); + qsort(pl->players, num_entries, sizeof(player_list_entry_t), ple_comparator); } diff --git a/src/server_game_states.c b/src/server_game_states.c index d30ab17..686fe8a 100644 --- a/src/server_game_states.c +++ b/src/server_game_states.c @@ -73,14 +73,8 @@ game_state_t state_server_wait_for_open_cards(const socket_list_t *client_socks) break; } } -for(int i=0; iplayer_list.count; i++) - fprintf(stderr, "Before sort: %d\n", d->player_list.players[i].open_card); - player_list_sort_by_open_card(&d->player_list, d->player_list.count); // sort in ascending order -for(int i=0; iplayer_list.count; i++) - fprintf(stderr, "After sort: %d\n", d->player_list.players[i].open_card); - return STATE_SERVER_PLAY_CARDS; } @@ -98,7 +92,7 @@ game_state_t state_server_play_cards(const socket_list_t *client_socks, const ma int cur_sock = socket_for_player_id(client_socks, d->player_list.players[i].player_id); net_recv(cur_sock, msg_type_selected_stack_c); for(int j=0; jcount; j++) // send received stack to all clients (including the one who sent it) - net_send(client_socks->sockets[i], msg_type_selected_stack_s, NULL); + net_send(client_socks->sockets[j], msg_type_selected_stack_s, NULL); d->player_list.players[i].score += card_stack_get_points(&d->table_stacks.stacks[d->stack_index]); card_stack_replace(&d->table_stacks.stacks[d->stack_index], c); -- cgit v1.2.3