diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-11-04 00:19:41 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-11-04 00:19:41 +0000 |
| commit | daf89a01ff88c7771f0c252808de2b3eede23927 (patch) | |
| tree | 903c034b9713a61c21e4d052fd7068afda9acacf /src/engine/server | |
| parent | f724ab006c3ca882c3a66c6af0df60d666610895 (diff) | |
| download | zcatch-daf89a01ff88c7771f0c252808de2b3eede23927.tar.gz zcatch-daf89a01ff88c7771f0c252808de2b3eede23927.zip | |
added skins, tweaked prediction like hell
Diffstat (limited to 'src/engine/server')
| -rw-r--r-- | src/engine/server/server.c | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/src/engine/server/server.c b/src/engine/server/server.c index 8fa10d7b..b1bf5e4d 100644 --- a/src/engine/server/server.c +++ b/src/engine/server/server.c @@ -57,8 +57,9 @@ static int snap_id_inited = 0; enum { SRVCLIENT_STATE_EMPTY = 0, - SRVCLIENT_STATE_CONNECTING = 1, - SRVCLIENT_STATE_INGAME = 2 + SRVCLIENT_STATE_CONNECTING, + SRVCLIENT_STATE_READY, + SRVCLIENT_STATE_INGAME }; typedef struct @@ -161,6 +162,20 @@ void snap_free_id(int id) } } +const char *server_clientname(int client_id) +{ + if(client_id < 0 || client_id > MAX_CLIENTS || clients[client_id].state < SRVCLIENT_STATE_READY) + return "(invalid client)"; + return clients[client_id].name; +} + +void server_setclientname(int client_id, const char *name) +{ + if(client_id < 0 || client_id > MAX_CLIENTS || clients[client_id].state < SRVCLIENT_STATE_READY) + return; + strncpy(clients[client_id].name, name, MAX_NAME_LENGTH); +} + int server_tick() { return current_tick; @@ -404,7 +419,6 @@ static void server_process_client_packet(NETPACKET *packet) { char version[64]; const char *password; - const char *skin; strncpy(version, msg_unpack_string(), 64); if(strcmp(version, mods_net_version()) != 0) { @@ -418,9 +432,6 @@ static void server_process_client_packet(NETPACKET *packet) strncpy(clients[cid].name, msg_unpack_string(), MAX_NAME_LENGTH); strncpy(clients[cid].clan, msg_unpack_string(), MAX_CLANNAME_LENGTH); password = msg_unpack_string(); - skin = msg_unpack_string(); - (void)password; /* ignore these variables */ - (void)skin; if(config.password[0] != 0 && strcmp(config.password, password) != 0) { @@ -431,6 +442,15 @@ static void server_process_client_packet(NETPACKET *packet) server_send_map(cid); } + else if(msg == NETMSG_READY) + { + if(clients[cid].state == SRVCLIENT_STATE_CONNECTING) + { + dbg_msg("server", "player is ready. cid=%x", cid); + clients[cid].state = SRVCLIENT_STATE_READY; + mods_connected(cid); + } + } else if(msg == NETMSG_ENTERGAME) { if(clients[cid].state != SRVCLIENT_STATE_INGAME) |