diff options
Diffstat (limited to 'src/net_multiplayer.c')
| -rw-r--r-- | src/net_multiplayer.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/net_multiplayer.c b/src/net_multiplayer.c index 9080d26..786e1b9 100644 --- a/src/net_multiplayer.c +++ b/src/net_multiplayer.c @@ -14,6 +14,8 @@ #include "screen.h" #include "screen_world.h" #include "screen_setting.h" +#include "screen_choiceArena.h" +#include "arenaFile.h" #include "net_multiplayer.h" static int netGameType; @@ -160,9 +162,13 @@ static void destroyClient(client_t *p) void proto_send_init_server(client_t *client) { char msg[STR_SIZE]; + int n; - sprintf(msg, "init %d %d %d\n", - client->tux->id, client->tux->x, client->tux->y); + getSettingCountRound(&n); + + sprintf(msg, "init %d %d %d %d %s\n", + client->tux->id, client->tux->x, client->tux->y, + n, getArenaNetName( getChoiceArenaId() )); sendClient(client, msg); } @@ -170,15 +176,22 @@ void proto_send_init_server(client_t *client) void proto_recv_init_client(char *msg) { char cmd[STR_SIZE]; + char arena_name[STR_SIZE]; tux_t *tux; + int id; + int n; - tux = newTux(); + sscanf(msg, "%s %d %d %d %d %s\n", + cmd, &id, &tux->x, &tux->y, &n, arena_name); - sscanf(msg, "%s %d %d %d\n", - cmd, &tux->id, &tux->x, &tux->y); + setWorldArena( getArenaIdFormNetName(arena_name) ); + setMaxCountRound(n); + tux = newTux(); + tux->id = id; tux->control = TUX_CONTROL_KEYBOARD_RIGHT; getSettingNameRight(tux->name); + proto_send_context_client(tux); addList(arena->listTux, tux); } |