diff options
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/client/ec_srvbrowse.c | 5 | ||||
| -rw-r--r-- | src/engine/e_config_variables.h | 1 | ||||
| -rw-r--r-- | src/engine/e_if_mods.h | 3 | ||||
| -rw-r--r-- | src/engine/e_if_other.h | 7 | ||||
| -rw-r--r-- | src/engine/server/es_server.c | 6 |
5 files changed, 19 insertions, 3 deletions
diff --git a/src/engine/client/ec_srvbrowse.c b/src/engine/client/ec_srvbrowse.c index 67c788e3..9d2ed195 100644 --- a/src/engine/client/ec_srvbrowse.c +++ b/src/engine/client/ec_srvbrowse.c @@ -162,7 +162,9 @@ static void client_serverbrowse_filter() filtered = 1; else if(config.b_filter_full && serverlist[i]->info.num_players == serverlist[i]->info.max_players) filtered = 1; - else if(config.b_filter_pw && serverlist[i]->info.flags&1) + else if(config.b_filter_pw && serverlist[i]->info.flags&SRVFLAG_PASSWORD) + filtered = 1; + else if(config.b_filter_tuned && serverlist[i]->info.flags&SRVFLAG_TUNED) filtered = 1; else if(config.b_filter_ping < serverlist[i]->info.latency) filtered = 1; @@ -222,6 +224,7 @@ static int client_serverbrowse_sorthash() i |= config.b_filter_pw<<6; i |= config.b_sort_order<<7; i |= config.b_filter_compatversion<<8; + i |= config.b_filter_tuned<<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 1eef9c4e..7eca3b04 100644 --- a/src/engine/e_config_variables.h +++ b/src/engine/e_config_variables.h @@ -19,6 +19,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_STR(b_filter_gametype, 128, "") +MACRO_CONFIG_INT(b_filter_tuned, 1, 0, 1) MACRO_CONFIG_INT(b_filter_compatversion, 1, 0, 1) MACRO_CONFIG_INT(b_sort, 0, 0, 256) diff --git a/src/engine/e_if_mods.h b/src/engine/e_if_mods.h index 08d0ec37..31bf075f 100644 --- a/src/engine/e_if_mods.h +++ b/src/engine/e_if_mods.h @@ -165,4 +165,7 @@ const char *mods_version(); */ void mods_message(int msg, int client_id); + +int mods_is_tuned(); + #endif diff --git a/src/engine/e_if_other.h b/src/engine/e_if_other.h index 8fc28c54..85148d85 100644 --- a/src/engine/e_if_other.h +++ b/src/engine/e_if_other.h @@ -29,6 +29,13 @@ enum MAX_NAME_LENGTH=32 }; +enum +{ + SRVFLAG_PASSWORD = 0x1, + SRVFLAG_TUNED = 0x2, + SRVFLAG_MOD = 0x4 +}; + /* Structure: SNAP_ITEM */ diff --git a/src/engine/server/es_server.c b/src/engine/server/es_server.c index dd4fe81f..d761e81e 100644 --- a/src/engine/server/es_server.c +++ b/src/engine/server/es_server.c @@ -819,8 +819,10 @@ static void server_send_serverinfo(NETADDR *addr, int token) /* flags */ i = 0; - if(config.password[0]) - i |= 1; + if(config.password[0]) /* password set */ + i |= SRVFLAG_PASSWORD; + if (mods_is_tuned()) /* is tuned */ + i |= SRVFLAG_TUNED; str_format(buf, sizeof(buf), "%d", i); packer_add_string(&p, buf, 2); |