diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2011-01-23 22:46:29 +0100 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2011-01-23 22:46:29 +0100 |
| commit | 2bd0e560986c66406bae90ff44f2dd6d3fec17be (patch) | |
| tree | 29aa4b7cb1831d7781a1a75f1db8ee2850a2a7ac /src/game.c | |
| parent | fff390715fff73f05639d3e5f96612a5a4fa82e8 (diff) | |
added generic net_send function and adapted functions it is using
Diffstat (limited to 'src/game.c')
| -rw-r--r-- | src/game.c | 32 |
1 files changed, 24 insertions, 8 deletions
@@ -3,6 +3,7 @@ #include "hand.h" #include <stdlib.h> #include <stdbool.h> +#include <string.h> #include <time.h> #include <unistd.h> #include <assert.h> @@ -31,7 +32,7 @@ static void init_mainstack(card *stack, const uint32_t size) } } -static void main_loop_client() +static void main_loop_client(int sock) { bool running = true; gamestate state = STATE_CLIENT_WAIT_CARDS; @@ -113,7 +114,7 @@ static void main_loop_client() } -static void main_loop_server() +static void main_loop_server(socket_list_t* sock) { bool running = true; gamestate state = STATE_SERVER_DEAL_CARDS; @@ -242,13 +243,25 @@ void start_game(const bool servermode, const char* addr, const char* port) if(server_process) // Start server and connect to localhost { - int ssock; + int server_sock; + socket_list_t client_socks; uint8_t num_opponents = 1; - ssock = server_start(port); - server_get_players(ssock, num_opponents); + server_sock = server_start(port); + server_get_players(server_sock, &client_socks, num_opponents); - main_loop_server(); + for(int i=0; i<num_opponents; i++) + { + net_recv(client_socks.sockets[i], msg_type_hello); + printf("Player connected: %s\n", data->players.players[i].player_name); + } + + for(int i=0; i<num_opponents; i++) + { + net_send(client_socks.sockets[i], msg_type_start_game, NULL); + } + + main_loop_server(&client_socks); } else // Connect to server { @@ -256,7 +269,10 @@ void start_game(const bool servermode, const char* addr, const char* port) sleep(1); // TODO make sure server process is listening sock = client_connect_server(addr, port); - client_hello(sock, "nickname1"); + + strncpy(data->nickname, "nickname", 10); + //client_hello(sock, "nickname1"); + //net_send() net_recv(sock, msg_type_start_game); net_recv(sock, msg_type_deal_cards); net_recv(sock, msg_type_init_stacks); @@ -269,7 +285,7 @@ void start_game(const bool servermode, const char* addr, const char* port) ui_display_wnd_current_state(pnoc, num_players, 2, score); ui_display_wnd_hand_cards(&data->hand, false, 0); - main_loop_client(); + main_loop_client(sock); ui_fini(); } |
