diff options
Diffstat (limited to 'src/engine/client/ec_srvbrowse.c')
| -rw-r--r-- | src/engine/client/ec_srvbrowse.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/engine/client/ec_srvbrowse.c b/src/engine/client/ec_srvbrowse.c index 81712cb4..4a85e778 100644 --- a/src/engine/client/ec_srvbrowse.c +++ b/src/engine/client/ec_srvbrowse.c @@ -166,6 +166,22 @@ static void client_serverbrowse_filter() filtered = 1; else if(config.b_filter_pure && (strcmp(serverlist[i]->info.gametype, "DM") != 0 && strcmp(serverlist[i]->info.gametype, "TDM") != 0 && strcmp(serverlist[i]->info.gametype, "CTF") != 0)) filtered = 1; + else if(config.b_filter_pure_map && + !(strcmp(serverlist[i]->info.map, "dm1") == 0 || + strcmp(serverlist[i]->info.map, "dm2") == 0 || + strcmp(serverlist[i]->info.map, "dm6") == 0 || + strcmp(serverlist[i]->info.map, "dm7") == 0 || + strcmp(serverlist[i]->info.map, "dm8") == 0 || + strcmp(serverlist[i]->info.map, "dm9") == 0 || + strcmp(serverlist[i]->info.map, "ctf1") == 0 || + strcmp(serverlist[i]->info.map, "ctf2") == 0 || + strcmp(serverlist[i]->info.map, "ctf3") == 0 || + strcmp(serverlist[i]->info.map, "ctf4") == 0 || + strcmp(serverlist[i]->info.map, "ctf5") == 0) + ) + { + filtered = 1; + } else if(config.b_filter_ping < serverlist[i]->info.latency) filtered = 1; else if(config.b_filter_compatversion && strncmp(serverlist[i]->info.version, modc_net_version(), 3) != 0) @@ -229,6 +245,7 @@ static int client_serverbrowse_sorthash() i |= config.b_sort_order<<7; i |= config.b_filter_compatversion<<8; i |= config.b_filter_pure<<9; + i |= config.b_filter_pure_map<<10; i |= config.b_filter_ping<<16; return i; } |