summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorReiner Herrmann <reiner@reiner-h.de>2011-01-24 21:16:17 +0100
committerReiner Herrmann <reiner@reiner-h.de>2011-01-24 21:16:17 +0100
commit6f0d8cbe42c1097eb540bcd83b9be2b16c31a923 (patch)
treec4ed0b179d9d6e9f07dce46750e59d792720d7f5 /src
parentc19f1efd4a27445578bbb57dc312aae023679d26 (diff)
receive and store selected (open) cards from players
Diffstat (limited to 'src')
-rw-r--r--src/game.c16
-rw-r--r--src/net/server.c9
-rw-r--r--src/net/server.h2
-rw-r--r--src/player.c3
-rw-r--r--src/player.h2
5 files changed, 19 insertions, 13 deletions
diff --git a/src/game.c b/src/game.c
index 991f206..d9e7bdd 100644
--- a/src/game.c
+++ b/src/game.c
@@ -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