diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-11-27 19:51:48 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-11-27 19:51:48 +0000 |
| commit | 59f0a07555c124e14185dd29078b3b5e99ea09d8 (patch) | |
| tree | 723f4ba020ac3ed5919485656e00637d32610b2a /src/engine/server/server.c | |
| parent | 8fa8485a3a207565a610dac981cb2da2a6a6d040 (diff) | |
| download | zcatch-59f0a07555c124e14185dd29078b3b5e99ea09d8.tar.gz zcatch-59f0a07555c124e14185dd29078b3b5e99ea09d8.zip | |
fixed so that the server reports gametype, progression and password protection correctly
Diffstat (limited to 'src/engine/server/server.c')
| -rw-r--r-- | src/engine/server/server.c | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/src/engine/server/server.c b/src/engine/server/server.c index 08c4ad3c..f26a51c5 100644 --- a/src/engine/server/server.c +++ b/src/engine/server/server.c @@ -25,6 +25,9 @@ static SNAPBUILD builder; static int64 game_start_time; static int current_tick = 0; +static int browseinfo_gametype = -1; +static int browseinfo_progression = -1; + static int64 lastheartbeat; static NETADDR4 master_server; @@ -176,6 +179,12 @@ void server_setclientname(int client_id, const char *name) strncpy(clients[client_id].name, name, MAX_NAME_LENGTH); } +void server_setbrowseinfo(int game_type, int progression) +{ + browseinfo_gametype = game_type; + browseinfo_progression = progression; +} + int server_tick() { return current_tick; @@ -534,9 +543,21 @@ static void server_send_serverinfo(NETADDR4 *addr) packer_add_string(&p, mods_net_version(), 32); packer_add_string(&p, config.sv_name, 64); packer_add_string(&p, config.sv_map, 32); - packer_add_string(&p, "0", 2); /* gametype */ - packer_add_string(&p, "0", 2); /* flags */ - packer_add_string(&p, "0", 4); /* progression */ + + /* gametype */ + sprintf(buf, "%d", browseinfo_gametype); + packer_add_string(&p, buf, 2); + + /* flags */ + i = 0; + if(strlen(config.password)) + i |= 1; + sprintf(buf, "%d", i); + packer_add_string(&p, buf, 2); + + /* progression */ + sprintf(buf, "%d", browseinfo_progression); + packer_add_string(&p, buf, 4); sprintf(buf, "%d", c); packer_add_string(&p, buf, 3); /* num players */ sprintf(buf, "%d", netserver_max_clients(net)); packer_add_string(&p, buf, 3); /* max players */ |