about summary refs log tree commit diff
path: root/src/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/client/ec_srvbrowse.c5
-rw-r--r--src/engine/e_config_variables.h1
2 files changed, 5 insertions, 1 deletions
diff --git a/src/engine/client/ec_srvbrowse.c b/src/engine/client/ec_srvbrowse.c
index e7d42cc1..c4fe3080 100644
--- a/src/engine/client/ec_srvbrowse.c
+++ b/src/engine/client/ec_srvbrowse.c
@@ -155,6 +155,8 @@ static void client_serverbrowse_filter()
 			filtered = 1;
 		else if(!(config.b_filter_gametype&(1<<serverlist[i]->info.game_type)))
 			filtered = 1;
+		else if(config.b_filter_compatversion && strncmp(serverlist[i]->info.version, modc_net_version(), 3) != 0)
+			filtered = 1;
 		else if(config.b_filter_string[0] != 0)
 		{
 			if(strstr(serverlist[i]->info.name, config.b_filter_string) == 0)
@@ -173,7 +175,8 @@ static int client_serverbrowse_sorthash()
 	i |= config.b_filter_full<<5;
 	i |= config.b_filter_pw<<6;
 	i |= config.b_sort_order<<7;
-	i |= config.b_filter_gametype<<8;
+	i |= config.b_filter_compatversion<<8;
+	i |= config.b_filter_gametype<<9;
 	i |= config.b_filter_ping<<16;
 	return i;
 }
diff --git a/src/engine/e_config_variables.h b/src/engine/e_config_variables.h
index b7b572d1..773093dc 100644
--- a/src/engine/e_config_variables.h
+++ b/src/engine/e_config_variables.h
@@ -17,6 +17,7 @@ MACRO_CONFIG_INT(b_filter_empty, 0, 0, 1)
 MACRO_CONFIG_INT(b_filter_pw, 0, 0, 1)
 MACRO_CONFIG_INT(b_filter_ping, 999, 0, 999)
 MACRO_CONFIG_INT(b_filter_gametype, 0xf, 0, 0xf)
+MACRO_CONFIG_INT(b_filter_compatversion, 1, 0, 1)
 
 MACRO_CONFIG_INT(b_sort, 0, 0, 256)
 MACRO_CONFIG_INT(b_sort_order, 0, 0, 1)