From fff390715fff73f05639d3e5f96612a5a4fa82e8 Mon Sep 17 00:00:00 2001 From: Reiner Herrmann Date: Sun, 23 Jan 2011 19:26:59 +0100 Subject: adapt player_list receive function to data store --- src/net_client.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) (limited to 'src/net_client.c') diff --git a/src/net_client.c b/src/net_client.c index e90e583..6b5fa60 100644 --- a/src/net_client.c +++ b/src/net_client.c @@ -9,6 +9,7 @@ #include "net.h" #include "player.h" #include "game.h" +#include "global.h" /** * Client side function; Send hello to server @@ -125,33 +126,28 @@ int client_connect_server(const char* host, const char* port) return sock; } -player_list* client_recv_player_list(const uint8_t* payload, const uint8_t data_len) +void* client_recv_player_list(const uint8_t* payload, const uint8_t data_len) { assert(payload != NULL); - player_list* players; + data_store* ds = datamodel(); uint32_t pos = 0; - players = create_playerlist(); - if(players == NULL) - { - printf("client_recv_player_list: Out of memory\n"); - exit(EXIT_FAILURE); - } - - players->count = payload[pos++]; + ds->players.count = payload[pos++]; // read usernames from buffer - for(int i=0; icount; i++) + for(int i=0; iplayers.count; i++) { - /*uint8_t namelen = payload[pos++]; - players->names[i] = malloc(namelen+1); - memcpy(players->names[i], payload+pos, namelen); - players->names[i][namelen] = '\0'; - pos += namelen;*/ + uint8_t namelen; + ds->players.players[i].player_id = payload[pos++]; + namelen = payload[pos++]; + assert(namelen <= MAX_PLAYER_NAME_LENGTH); + strncpy(ds->players.players[i].player_name, payload+pos, namelen); + ds->players.players[i].player_name[namelen] = '\0'; + pos += namelen; } - return players; + return NULL; // TODO return boolean (for success indication) } hand_t *client_recv_deal_cards(const uint8_t* payload, const uint8_t payload_len) -- cgit v1.2.3