diff --git a/xqf/src/game.c b/xqf/src/game.c index e87e55a..46e3ead 100644 --- a/xqf/src/game.c +++ b/xqf/src/game.c @@ -161,6 +161,7 @@ static struct quake_private cod_private; static struct quake_private jk3_private; static struct quake_private doom3_private; static struct quake_private quake4_private; +static struct quake_private etqw_private; static struct quake_private warsow_private; static struct quake_private tremulous_private; diff --git a/xqf/src/games.c b/xqf/src/games.c index 97ee018..e6b741a 100644 --- a/xqf/src/games.c +++ b/xqf/src/games.c @@ -17,33 +17,36 @@ static char* stringlist014[] = { "et", NULL }; static char* stringlist015[] = { "base", NULL }; static char* stringlist016[] = { "doom3", NULL }; static char* stringlist017[] = { "+rconpassword", "+net_clientRemoteConsolePassword", NULL }; -static char* stringlist018[] = { "BaseEF", NULL }; -static char* stringlist019[] = { "sof", NULL }; -static char* stringlist020[] = { "main", NULL }; -static char* stringlist021[] = { "tribes2", NULL }; -static char* stringlist022[] = { "ut", NULL }; -static char* stringlist023[] = { "ut2003", "ut2003_demo", NULL }; -static char* stringlist024[] = { "ut2004", "ut2004demo", NULL }; -static char* stringlist025[] = { "rune", NULL }; -static char* stringlist026[] = { "postal2mp", "postal2mpdemo", NULL }; -static char* stringlist027[] = { "armyops", NULL }; -static char* stringlist028[] = { "descent3", NULL }; -static char* stringlist029[] = { "ssamtfe", NULL }; -static char* stringlist030[] = { "ssamtse", NULL }; -static char* stringlist031[] = { "main", NULL }; -static char* stringlist032[] = { "mohaa", NULL }; -static char* stringlist033[] = { "main", NULL }; -static char* stringlist034[] = { "codmp", NULL }; -static char* stringlist035[] = { "savage", NULL }; -static char* stringlist036[] = { "base", NULL }; -static char* stringlist037[] = { "jamp", NULL }; -static char* stringlist038[] = { "netpanzer", NULL }; -static char* stringlist039[] = { "data", NULL }; -static char* stringlist040[] = { "nexuiz", NULL }; -static char* stringlist041[] = { "basewsw", NULL }; -static char* stringlist042[] = { "warsow", NULL }; -static char* stringlist043[] = { "base", NULL }; -static char* stringlist044[] = { "tremulous", NULL }; +static char* stringlist018[] = { "q4base", NULL }; +static char* stringlist019[] = { "etqw", NULL }; +static char* stringlist020[] = { "+rconpassword", "+net_clientRemoteConsolePassword", NULL }; +static char* stringlist021[] = { "BaseEF", NULL }; +static char* stringlist022[] = { "sof", NULL }; +static char* stringlist023[] = { "main", NULL }; +static char* stringlist024[] = { "tribes2", NULL }; +static char* stringlist025[] = { "ut", NULL }; +static char* stringlist026[] = { "ut2003", "ut2003_demo", NULL }; +static char* stringlist027[] = { "ut2004", "ut2004demo", NULL }; +static char* stringlist028[] = { "rune", NULL }; +static char* stringlist029[] = { "postal2mp", "postal2mpdemo", NULL }; +static char* stringlist030[] = { "armyops", NULL }; +static char* stringlist031[] = { "descent3", NULL }; +static char* stringlist032[] = { "ssamtfe", NULL }; +static char* stringlist033[] = { "ssamtse", NULL }; +static char* stringlist034[] = { "main", NULL }; +static char* stringlist035[] = { "mohaa", NULL }; +static char* stringlist036[] = { "main", NULL }; +static char* stringlist037[] = { "codmp", NULL }; +static char* stringlist038[] = { "savage", NULL }; +static char* stringlist039[] = { "base", NULL }; +static char* stringlist040[] = { "jamp", NULL }; +static char* stringlist041[] = { "netpanzer", NULL }; +static char* stringlist042[] = { "data", NULL }; +static char* stringlist043[] = { "nexuiz", NULL }; +static char* stringlist044[] = { "basewsw", NULL }; +static char* stringlist045[] = { "warsow", NULL }; +static char* stringlist046[] = { "base", NULL }; +static char* stringlist047[] = { "tremulous", NULL }; struct game games[] = { { type : Q1_SERVER, @@ -289,6 +292,39 @@ struct game games[] = { command : stringlist016, attributes : stringlist017, }, + { + type : ETQW_SERVER, + flags : GAME_CONNECT | GAME_PASSWORD | GAME_RCON | GAME_QUAKE3_MASTERPROTOCOL | GAME_Q3COLORS, + name : "ET: Quake Wars", + default_port : 27733, + default_master_port : 27950, + id : "ETQWS", + qstat_str : "ETQWS", + qstat_option : "-etqws", + qstat_master_option : "-q3m", + icon : "error.xpm", + parse_player : q3_parse_player, + parse_server : quake_parse_server, + analyze_serverinfo : doom3_analyze_serverinfo, + config_is_valid : config_is_valid_generic, + exec_client : q3_exec, + custom_cfgs : quake_custom_cfgs, + save_info : quake_save_info, + init_maps : quake4_init_maps, + has_map : quake4_has_map, + get_mapshot : quake4_get_mapshot, + arch_identifier : "si_version", + identify_cpu : identify_cpu, + identify_os : identify_os, + cmd_or_dir_changed : doom3_cmd_or_dir_changed, + prefs_load : q3_prefs_load_common, + update_prefs : quake4_update_prefs, + default_home : "~/.etqw", + pd : &etqw_private, + main_mod : stringlist018, + command : stringlist019, + attributes : stringlist020, + }, { type : EF_SERVER, flags : GAME_CONNECT | GAME_PASSWORD | GAME_RCON | GAME_QUAKE3_MASTERPROTOCOL | GAME_Q3COLORS, @@ -312,7 +348,7 @@ struct game games[] = { identify_os : identify_os, prefs_load : q3_prefs_load_common, update_prefs : q3_update_prefs_common, - main_mod : stringlist018, + main_mod : stringlist021, }, { type : H2_SERVER, @@ -463,7 +499,7 @@ struct game games[] = { config_is_valid : config_is_valid_generic, exec_client : q2_exec_generic, save_info : quake_save_info, - command : stringlist019, + command : stringlist022, }, { type : SOF2S_SERVER, @@ -488,7 +524,7 @@ struct game games[] = { identify_os : identify_os, prefs_load : q3_prefs_load_common, update_prefs : q3_update_prefs_common, - main_mod : stringlist020, + main_mod : stringlist023, }, { type : T2_SERVER, @@ -511,7 +547,7 @@ struct game games[] = { identify_os : t2_identify_os, prefs_load : tribes2_prefs_load, update_prefs : tribes2_update_prefs, - command : stringlist021, + command : stringlist024, }, { type : HR_SERVER, @@ -547,7 +583,7 @@ struct game games[] = { init_maps : unreal_init_maps, has_map : unreal_has_map, pd : &ut_private, - command : stringlist022, + command : stringlist025, }, { type : UT2_SERVER, @@ -568,7 +604,7 @@ struct game games[] = { has_map : unreal_has_map, default_home : "~/.ut2003", pd : &ut2_private, - command : stringlist023, + command : stringlist026, }, { type : UT2004_SERVER, @@ -593,7 +629,7 @@ struct game games[] = { update_prefs : ut2004_update_prefs, default_home : "~/.ut2004", pd : &ut2004_private, - command : stringlist024, + command : stringlist027, }, { type : RUNE_SERVER, @@ -613,7 +649,7 @@ struct game games[] = { init_maps : unreal_init_maps, has_map : unreal_has_map, pd : &rune_private, - command : stringlist025, + command : stringlist028, }, { type : POSTAL2_SERVER, @@ -633,7 +669,7 @@ struct game games[] = { init_maps : unreal_init_maps, has_map : unreal_has_map, pd : &postal2_private, - command : stringlist026, + command : stringlist029, }, { type : AAO_SERVER, @@ -653,7 +689,7 @@ struct game games[] = { init_maps : unreal_init_maps, has_map : unreal_has_map, pd : &aao_private, - command : stringlist027, + command : stringlist030, }, { type : DESCENT3_SERVER, @@ -670,7 +706,7 @@ struct game games[] = { config_is_valid : config_is_valid_generic, exec_client : descent3_exec, save_info : quake_save_info, - command : stringlist028, + command : stringlist031, }, { type : SSAM_SERVER, @@ -687,7 +723,7 @@ struct game games[] = { config_is_valid : config_is_valid_generic, exec_client : ssam_exec, save_info : quake_save_info, - command : stringlist029, + command : stringlist032, }, { type : SSAMSE_SERVER, @@ -704,7 +740,7 @@ struct game games[] = { config_is_valid : config_is_valid_generic, exec_client : ssam_exec, save_info : quake_save_info, - command : stringlist030, + command : stringlist033, }, { type : MOHAA_SERVER, @@ -732,8 +768,8 @@ struct game games[] = { identify_os : identify_os, default_home : "~/.mohaa", pd : &mohaa_private, - main_mod : stringlist031, - command : stringlist032, + main_mod : stringlist034, + command : stringlist035, }, { type : COD_SERVER, @@ -761,8 +797,8 @@ struct game games[] = { prefs_load : q3_prefs_load_common, update_prefs : q3_update_prefs_common, pd : &cod_private, - main_mod : stringlist033, - command : stringlist034, + main_mod : stringlist036, + command : stringlist037, }, { type : SAS_SERVER, @@ -779,7 +815,7 @@ struct game games[] = { config_is_valid : config_is_valid_generic, exec_client : savage_exec, save_info : quake_save_info, - command : stringlist035, + command : stringlist038, }, { type : BF1942_SERVER, @@ -823,8 +859,8 @@ struct game games[] = { prefs_load : q3_prefs_load_common, update_prefs : q3_update_prefs_common, pd : &jk3_private, - main_mod : stringlist036, - command : stringlist037, + main_mod : stringlist039, + command : stringlist040, }, { type : NETP_SERVER, @@ -843,7 +879,7 @@ struct game games[] = { config_is_valid : config_is_valid_generic, exec_client : netpanzer_exec, save_info : quake_save_info, - command : stringlist038, + command : stringlist041, }, { type : NEXUIZ_SERVER, @@ -869,8 +905,8 @@ struct game games[] = { prefs_load : q3_prefs_load_common, update_prefs : q3_update_prefs_common, default_home : "~/.nexuiz", - main_mod : stringlist039, - command : stringlist040, + main_mod : stringlist042, + command : stringlist043, }, { type : WARSOW_SERVER, @@ -900,8 +936,8 @@ struct game games[] = { update_prefs : q3_update_prefs_common, default_home : "~/.warsow", pd : &warsow_private, - main_mod : stringlist041, - command : stringlist042, + main_mod : stringlist044, + command : stringlist045, }, { type : TREMULOUS_SERVER, @@ -932,8 +968,8 @@ struct game games[] = { update_prefs : tremulous_update_prefs, default_home : "~/.tremulous", pd : &tremulous_private, - main_mod : stringlist043, - command : stringlist044, + main_mod : stringlist046, + command : stringlist047, }, { type : GPS_SERVER, diff --git a/xqf/src/games.xml b/xqf/src/games.xml index d56dcbd..018da89 100644 --- a/xqf/src/games.xml +++ b/xqf/src/games.xml @@ -246,6 +246,33 @@ doom3_private + + Q3_SERVER + ETQW_SERVER + ET: Quake Wars + 27733 + ETQWS + ETQWS + -etqws + error.xpm + doom3_analyze_serverinfo + config_is_valid_generic + quake4_init_maps + quake4_has_map + quake4_get_mapshot + si_version + etqw + doom3_cmd_or_dir_changed + q3_prefs_load_common + quake4_update_prefs + ~/.etqw + q4base + +net_clientRemoteConsolePassword + +rconpassword + etqw_private + + + Q3_SERVER EF_SERVER diff --git a/xqf/src/pref.c b/xqf/src/pref.c index dbda88d..cda8341 100644 --- a/xqf/src/pref.c +++ b/xqf/src/pref.c @@ -423,6 +423,20 @@ static struct q3_common_prefs_s q4_prefs = flags : Q3_PREF_PB | Q3_PREF_CONSOLE, }; +static const char* etqw_masterprotocols[] = { + "auto", + "0 - any", + "10.16 - retail", + NULL +}; + +static struct q3_common_prefs_s etqw_prefs = +{ + protocols: etqw_masterprotocols, + defproto : "auto", + flags : Q3_PREF_PB | Q3_PREF_CONSOLE, +}; + static const char* nexuiz_masterprotocols[] = { "3", NULL @@ -3085,6 +3099,7 @@ static struct q3_common_prefs_s* get_pref_widgets_for_game(enum server_type type case WO_SERVER: return &wo_prefs; case WOET_SERVER: return &woet_prefs; case DOOM3_SERVER: return &doom3_prefs; + case ETQW_SERVER: return &etqw_prefs; case EF_SERVER: return &ef_prefs; case SOF2S_SERVER: return &sof2_prefs; case COD_SERVER: return &cod_prefs; @@ -3092,7 +3107,7 @@ static struct q3_common_prefs_s* get_pref_widgets_for_game(enum server_type type case NEXUIZ_SERVER: return &nexuiz_prefs; case WARSOW_SERVER: return &warsow_prefs; case TREMULOUS_SERVER: return &tremulous_prefs; - default: return NULL; + default: xqf_error("need to define preferences"); return NULL; } } diff --git a/xqf/src/source.c b/xqf/src/source.c index a927ae2..370beb5 100644 --- a/xqf/src/source.c +++ b/xqf/src/source.c @@ -1106,6 +1106,8 @@ static char *builtin_masters_update_info[] = { "ADD DM3S master://idnet.ua-corp.com:27650 id", + "ADD ETQWS http://etqw-ipgetter.demonware.net/ipgetter/ demonware", + "ADD EFS http://www.gameaholic.com/servers/qspy-startrekeliteforce Gameaholic.com", "ADD EFS master://master.stef1.ravensoft.com:27953 Ravensoft", diff --git a/xqf/src/xqf.h b/xqf/src/xqf.h index 0b88625..7010b83 100644 --- a/xqf/src/xqf.h +++ b/xqf/src/xqf.h @@ -105,6 +105,7 @@ enum server_type { WO_SERVER, WOET_SERVER, DOOM3_SERVER, + ETQW_SERVER, EF_SERVER, H2_SERVER, HW_SERVER,