diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2011-01-24 21:16:17 +0100 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2011-01-24 21:16:17 +0100 |
| commit | 6f0d8cbe42c1097eb540bcd83b9be2b16c31a923 (patch) | |
| tree | c4ed0b179d9d6e9f07dce46750e59d792720d7f5 | |
| parent | c19f1efd4a27445578bbb57dc312aae023679d26 (diff) | |
receive and store selected (open) cards from players
| -rw-r--r-- | src/game.c | 16 | ||||
| -rw-r--r-- | src/net/server.c | 9 | ||||
| -rw-r--r-- | src/net/server.h | 2 | ||||
| -rw-r--r-- | src/player.c | 3 | ||||
| -rw-r--r-- | src/player.h | 2 |
5 files changed, 19 insertions, 13 deletions
@@ -209,23 +209,27 @@ static void main_loop_server(socket_list_t* client_socks) } state = STATE_SERVER_WAIT_FOR_OPEN_CARDS; - return; break; -#if 0 + case STATE_SERVER_WAIT_FOR_OPEN_CARDS: // Receive open cards from clients for(int i = 0; i < data->players.count; i++) { - net_recv(client_socks.sockets[i], msg_selected_card); + pnoc_t* pl = get_pnoc_from_playerid(&data->players, client_socks->player_ids[i]); + 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 + //sort_open_card_list(); // in ascending order - send_open_card_list_to_clients(); + //send_open_card_list_to_clients(); state = STATE_SERVER_PLAY_CARDS; + return; break; - +#if 0 case STATE_SERVER_PLAY_CARDS: foreach(open_card) { diff --git a/src/net/server.c b/src/net/server.c index c6c4613..b0cd5e2 100644 --- a/src/net/server.c +++ b/src/net/server.c @@ -126,16 +126,15 @@ bool server_parse_hello(const msg_t *m) return true; } -card* server_parse_selected_card(const msg_t *m) +bool server_parse_selected_card(const msg_t *m) { assert(m != NULL); assert(m->hdr.payload_length == 1); - card* c = malloc(sizeof(card)); - assert(c != NULL); - *c = m->payload[0]; + data_store* ds = datamodel(); + ds->selected_card = m->payload[0]; - return c; + return true; } uint8_t* server_parse_selected_stack(const msg_t *m) diff --git a/src/net/server.h b/src/net/server.h index eb53a03..196700c 100644 --- a/src/net/server.h +++ b/src/net/server.h @@ -24,7 +24,7 @@ void server_prep_selected_stack(msg_t *m); void server_prep_initial_stacks(msg_t *m); bool server_parse_hello(const msg_t *m); -card* server_parse_selected_card(const msg_t *m); +bool server_parse_selected_card(const msg_t *m); uint8_t* server_parse_selected_stack(const msg_t *m); #endif // OXEN_SERVER_H diff --git a/src/player.c b/src/player.c index 60cd514..3e03729 100644 --- a/src/player.c +++ b/src/player.c @@ -1,6 +1,7 @@ #include "player.h" +#include <stdlib.h> -pnoc_t* get_pnoc_from_playerid(const player_list* pl, const uint8_t pid) +pnoc_t* get_pnoc_from_playerid(player_list* pl, const uint8_t pid) { for(int i=0; i<pl->count; i++) { diff --git a/src/player.h b/src/player.h index 4540702..f162cfa 100644 --- a/src/player.h +++ b/src/player.h @@ -12,4 +12,6 @@ typedef struct pnoc_t players[MAX_PLAYERS]; } player_list; +pnoc_t* get_pnoc_from_playerid(player_list* pl, const uint8_t pid); + #endif // OXEN_PLAYER_H |
