Jedi Knight 2 support by victorbe [sf.net patch 13](http://sourceforge.net/p/xqf/patches/13/)

This commit is contained in:
VictorBE 2014-10-02 02:59:38 +02:00 committed by Thomas Debesse
parent c27abd9de6
commit 0b22235580
9 changed files with 208 additions and 59 deletions

View File

@ -164,6 +164,7 @@ static struct quake_private wolfet_private;
static struct quake_private etl_private;
static struct quake_private mohaa_private;
static struct quake_private cod_private;
static struct quake_private jk2_private;
static struct quake_private jk3_private;
static struct quake_private doom3_private;
static struct quake_private quake4_private;
@ -1243,6 +1244,19 @@ static char *wolfet_tcetest_gametypes[MAX_WOLFET_TCETEST_TYPES] = {
"Bodycount" // 7 - Bodycount
};
#define MAX_JK2_TYPES 9
static char *jk2_gametypes[MAX_JK2_TYPES] = {
"FFA", // 0 - Free For All
"Holocron", // 1 - Holocron
"Jedi Master", // 2 - Jedi Master
"Duell", // 3 - Duell
"FFA", // 4 - Free For All
"TFFA", // 5 - Team Free For All
NULL, // 6 - Unknown
"CTF", // 7 - Capture the Flag
"Capture the Ysalimari" // 8 - Capture the Ysalimari
};
#define MAX_JK3_TYPES 9
static char *jk3_gametypes[MAX_JK3_TYPES] = {
"FFA", // 0 - Free For All
@ -1474,6 +1488,20 @@ struct q3a_gametype_s wolfet_gametype_map[] =
}
};
struct q3a_gametype_s jk2_gametype_map[] =
{
{
"basejk",
jk2_gametypes,
MAX_JK2_TYPES
},
{
"base",
jk2_gametypes,
MAX_JK2_TYPES
}
};
struct q3a_gametype_s jk3_gametype_map[] =
{
{
@ -1779,6 +1807,10 @@ static void q3_analyze_serverinfo (struct server *s) {
{
q3_decode_gametype( s, wolfet_gametype_map );
}
else if ( s->type == JK2_SERVER)
{
q3_decode_gametype( s, jk2_gametype_map );
}
else if ( s->type == JK3_SERVER)
{
q3_decode_gametype( s, jk3_gametype_map );

View File

@ -42,36 +42,38 @@ static char* stringlist039[] = { "codmp", NULL };
static char* stringlist040[] = { "savage", NULL };
static char* stringlist041[] = { "base", NULL };
static char* stringlist042[] = { "jamp", NULL };
static char* stringlist043[] = { "netpanzer", NULL };
static char* stringlist044[] = { "data", NULL };
static char* stringlist045[] = { "nexuiz", NULL };
static char* stringlist043[] = { "base", NULL };
static char* stringlist044[] = { "jamp", NULL };
static char* stringlist045[] = { "netpanzer", NULL };
static char* stringlist046[] = { "data", NULL };
static char* stringlist047[] = { "xonotic", NULL };
static char* stringlist048[] = { "basewsw", NULL };
static char* stringlist049[] = { "warsow", NULL };
static char* stringlist050[] = { "base", NULL };
static char* stringlist051[] = { "tremulous", NULL };
static char* stringlist047[] = { "nexuiz", NULL };
static char* stringlist048[] = { "data", NULL };
static char* stringlist049[] = { "xonotic", NULL };
static char* stringlist050[] = { "basewsw", NULL };
static char* stringlist051[] = { "warsow", NULL };
static char* stringlist052[] = { "base", NULL };
static char* stringlist053[] = { "tremulous-gpp", NULL };
static char* stringlist053[] = { "tremulous", NULL };
static char* stringlist054[] = { "base", NULL };
static char* stringlist055[] = { "tremfusion", NULL };
static char* stringlist056[] = { "main", NULL };
static char* stringlist057[] = { "unvanquished", NULL };
static char* stringlist058[] = { "baseq3", NULL };
static char* stringlist059[] = { "openarena", NULL };
static char* stringlist060[] = { "openttd", NULL };
static char* stringlist061[] = { "baseq3", NULL };
static char* stringlist062[] = { "q3rally", NULL };
static char* stringlist063[] = { "wop", NULL };
static char* stringlist064[] = { "worldofpadman", NULL };
static char* stringlist065[] = { "q3ut4", NULL };
static char* stringlist066[] = { "Urban Terror", "Quake3-UrT", "urbanterror", NULL };
static char* stringlist067[] = { "rq3", NULL };
static char* stringlist068[] = { "Reaction", NULL };
static char* stringlist069[] = { "smokinguns", NULL };
static char* stringlist070[] = { "smokinguns", NULL };
static char* stringlist071[] = { "arena", NULL };
static char* stringlist072[] = { "alienarena", NULL };
static char* stringlist055[] = { "tremulous-gpp", NULL };
static char* stringlist056[] = { "base", NULL };
static char* stringlist057[] = { "tremfusion", NULL };
static char* stringlist058[] = { "main", NULL };
static char* stringlist059[] = { "unvanquished", NULL };
static char* stringlist060[] = { "baseq3", NULL };
static char* stringlist061[] = { "openarena", NULL };
static char* stringlist062[] = { "openttd", NULL };
static char* stringlist063[] = { "baseq3", NULL };
static char* stringlist064[] = { "q3rally", NULL };
static char* stringlist065[] = { "wop", NULL };
static char* stringlist066[] = { "worldofpadman", NULL };
static char* stringlist067[] = { "q3ut4", NULL };
static char* stringlist068[] = { "Urban Terror", "Quake3-UrT", "urbanterror", NULL };
static char* stringlist069[] = { "rq3", NULL };
static char* stringlist070[] = { "Reaction", NULL };
static char* stringlist071[] = { "smokinguns", NULL };
static char* stringlist072[] = { "smokinguns", NULL };
static char* stringlist073[] = { "arena", NULL };
static char* stringlist074[] = { "alienarena", NULL };
struct game games[] = {
{
type : Q1_SERVER,
@ -889,6 +891,35 @@ struct game games[] = {
exec_client : bf1942_exec,
save_info : quake_save_info,
},
{
type : JK2_SERVER,
flags : GAME_CONNECT | GAME_PASSWORD | GAME_RCON | GAME_QUAKE3_MASTERPROTOCOL | GAME_Q3COLORS,
name : "Jedi Outcast",
default_port : 28070,
default_master_port : 28060,
id : "JK2S",
qstat_str : "JK2S",
qstat_option : "-jk2s",
qstat_master_option : "-jk2m",
icon : "jk2.xpm",
parse_player : q3_parse_player,
parse_server : quake_parse_server,
analyze_serverinfo : q3_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 : q3_init_maps,
has_map : quake_has_map,
get_mapshot : q3_get_mapshot,
identify_cpu : identify_cpu,
identify_os : identify_os,
prefs_load : q3_prefs_load_common,
update_prefs : q3_update_prefs_common,
pd : &jk2_private,
main_mod : stringlist041,
command : stringlist042,
},
{
type : JK3_SERVER,
flags : GAME_CONNECT | GAME_PASSWORD | GAME_RCON | GAME_QUAKE3_MASTERPROTOCOL | GAME_Q3COLORS,
@ -915,8 +946,8 @@ struct game games[] = {
prefs_load : q3_prefs_load_common,
update_prefs : q3_update_prefs_common,
pd : &jk3_private,
main_mod : stringlist041,
command : stringlist042,
main_mod : stringlist043,
command : stringlist044,
},
{
type : NETP_SERVER,
@ -935,7 +966,7 @@ struct game games[] = {
config_is_valid : config_is_valid_generic,
exec_client : netpanzer_exec,
save_info : quake_save_info,
command : stringlist043,
command : stringlist045,
},
{
type : NEXUIZ_SERVER,
@ -961,8 +992,8 @@ struct game games[] = {
prefs_load : q3_prefs_load_common,
update_prefs : q3_update_prefs_common,
default_home : "~/.nexuiz",
main_mod : stringlist044,
command : stringlist045,
main_mod : stringlist046,
command : stringlist047,
},
{
type : XONOTIC_SERVER,
@ -988,8 +1019,8 @@ struct game games[] = {
prefs_load : q3_prefs_load_common,
update_prefs : q3_update_prefs_common,
default_home : "~/.xonotic",
main_mod : stringlist046,
command : stringlist047,
main_mod : stringlist048,
command : stringlist049,
},
{
type : WARSOW_SERVER,
@ -1019,8 +1050,8 @@ struct game games[] = {
update_prefs : q3_update_prefs_common,
default_home : "~/.warsow",
pd : &warsow_private,
main_mod : stringlist048,
command : stringlist049,
main_mod : stringlist050,
command : stringlist051,
},
{
type : TREMULOUS_SERVER,
@ -1051,8 +1082,8 @@ struct game games[] = {
update_prefs : q3_update_prefs,
default_home : "~/.tremulous",
pd : &tremulous_private,
main_mod : stringlist050,
command : stringlist051,
main_mod : stringlist052,
command : stringlist053,
},
{
type : TREMULOUSGPP_SERVER,
@ -1082,8 +1113,8 @@ struct game games[] = {
update_prefs : q3_update_prefs,
default_home : "~/.tremulous",
pd : &tremulousgpp_private,
main_mod : stringlist052,
command : stringlist053,
main_mod : stringlist054,
command : stringlist055,
},
{
type : TREMFUSION_SERVER,
@ -1113,8 +1144,8 @@ struct game games[] = {
update_prefs : q3_update_prefs,
default_home : "~/.tremulous",
pd : &tremfusion_private,
main_mod : stringlist054,
command : stringlist055,
main_mod : stringlist056,
command : stringlist057,
},
{
type : UNVANQUISHED_SERVER,
@ -1144,8 +1175,8 @@ struct game games[] = {
update_prefs : q3_update_prefs,
default_home : "~/.Unvanquished",
pd : &unvanquished_private,
main_mod : stringlist056,
command : stringlist057,
main_mod : stringlist058,
command : stringlist059,
},
{
type : OPENARENA_SERVER,
@ -1175,8 +1206,8 @@ struct game games[] = {
update_prefs : q3_update_prefs,
default_home : "~/.openarena",
pd : &openarena_private,
main_mod : stringlist058,
command : stringlist059,
main_mod : stringlist060,
command : stringlist061,
},
{
type : OTTD_SERVER,
@ -1197,7 +1228,7 @@ struct game games[] = {
custom_cfgs : quake_custom_cfgs,
save_info : quake_save_info,
default_home : "~/.openttd",
command : stringlist060,
command : stringlist062,
},
{
type : Q3RALLY_SERVER,
@ -1227,8 +1258,8 @@ struct game games[] = {
update_prefs : q3_update_prefs,
default_home : "~/.q3rally",
pd : &q3rally_private,
main_mod : stringlist061,
command : stringlist062,
main_mod : stringlist063,
command : stringlist064,
},
{
type : WOP_SERVER,
@ -1258,8 +1289,8 @@ struct game games[] = {
update_prefs : q3_update_prefs,
default_home : "~/.WoPadman",
pd : &wop_private,
main_mod : stringlist063,
command : stringlist064,
main_mod : stringlist065,
command : stringlist066,
},
{
type : IOURT_SERVER,
@ -1289,8 +1320,8 @@ struct game games[] = {
update_prefs : q3_update_prefs,
default_home : "~/.q3a",
pd : &iourt_private,
main_mod : stringlist065,
command : stringlist066,
main_mod : stringlist067,
command : stringlist068,
},
{
type : REACTION_SERVER,
@ -1320,8 +1351,8 @@ struct game games[] = {
update_prefs : q3_update_prefs,
default_home : "~/.Reaction",
pd : &reaction_private,
main_mod : stringlist067,
command : stringlist068,
main_mod : stringlist069,
command : stringlist070,
},
{
type : SMOKINGUNS_SERVER,
@ -1351,8 +1382,8 @@ struct game games[] = {
update_prefs : q3_update_prefs,
default_home : "~/.smokinguns",
pd : &smokinguns_private,
main_mod : stringlist069,
command : stringlist070,
main_mod : stringlist071,
command : stringlist072,
},
{
type : GPS_SERVER,
@ -1398,8 +1429,8 @@ struct game games[] = {
update_prefs : q3_update_prefs,
default_home : "~/.codered/",
pd : &alienarena_private,
main_mod : stringlist071,
command : stringlist072,
main_mod : stringlist073,
command : stringlist074,
},
{
type : UNKNOWN_SERVER,

View File

@ -660,6 +660,25 @@
<analyze_serverinfo>bf1942_analyze_serverinfo</analyze_serverinfo>
<exec_client>bf1942_exec</exec_client>
</game>
<game>
<base>Q3_SERVER</base>
<type>JK2_SERVER</type>
<name>Jedi Outcast</name>
<default_port>28070</default_port>
<default_master_port>28060</default_master_port>
<id>JK2S</id>
<qstat_str>JK2S</qstat_str>
<qstat_option>-jk2s</qstat_option>
<qstat_master_option>-jk2m</qstat_master_option>
<icon>jk2.xpm</icon>
<config_is_valid>config_is_valid_generic</config_is_valid>
<arch_identifier>NULL</arch_identifier>
<command>jamp</command>
<prefs_load>q3_prefs_load_common</prefs_load>
<update_prefs>q3_update_prefs_common</update_prefs>
<main_mod>base</main_mod>
<pd>jk2_private</pd>
</game>
<game>
<base>Q3_SERVER</base>
<type>JK3_SERVER</type>

View File

@ -83,6 +83,7 @@
#include "xpm/savage.xpm"
#include "xpm/cod.xpm"
#include "xpm/bf1942.xpm"
#include "xpm/jk2.xpm"
#include "xpm/jk3.xpm"
#include "xpm/doom3.xpm"
#include "xpm/etqw.xpm"

View File

@ -381,12 +381,23 @@ static struct q3_common_prefs_s cod_prefs =
defproto : "5",
};
static const char* jk2_masterprotocols[] = {
"16 - v1.04",
NULL
};
static const char* jk3_masterprotocols[] = {
"26 - v1.01",
"25 - v1.0",
NULL
};
static struct q3_common_prefs_s jk2_prefs =
{
protocols: jk2_masterprotocols,
defproto : "16",
};
static struct q3_common_prefs_s jk3_prefs =
{
protocols: jk3_masterprotocols,
@ -3270,6 +3281,7 @@ static struct q3_common_prefs_s* get_pref_widgets_for_game(enum server_type type
case EF_SERVER: return &ef_prefs;
case SOF2S_SERVER: return &sof2_prefs;
case COD_SERVER: return &cod_prefs;
case JK2_SERVER: return &jk2_prefs;
case JK3_SERVER: return &jk3_prefs;
case NEXUIZ_SERVER: return &nexuiz_prefs;
case XONOTIC_SERVER: return &xonotic_prefs;
@ -4841,6 +4853,7 @@ static struct generic_prefs* new_generic_prefs (void) {
new_genprefs[Q4_SERVER].add_options_to_notebook = add_q3_options_to_notebook;
new_genprefs[ETQW_SERVER].add_options_to_notebook = add_q3_options_to_notebook;
new_genprefs[COD_SERVER].add_options_to_notebook = add_q3_options_to_notebook;
new_genprefs[JK2_SERVER].add_options_to_notebook = add_q3_options_to_notebook;
new_genprefs[JK3_SERVER].add_options_to_notebook = add_q3_options_to_notebook;
new_genprefs[SOF2S_SERVER].add_options_to_notebook = add_q3_options_to_notebook;
new_genprefs[T2_SERVER].add_options_to_notebook = add_t2_options_to_notebook;

View File

@ -334,6 +334,20 @@ gametype PREYM new extend DM3M
master for gametype = PREYS
end
gametype JK2S new extend Q3S
name = Jedi Knight 2
default port = 28070
template var = JEDIKNIGHT2
game rule = gamename
end
gametype JK2M new extend JK3M
name = Jedi Knight 2
default port = 28060
master protocol = 16
master for gametype = JK2S
end
gametype UT3S new extend GS4
name = UT3
default port = 6500

View File

@ -1154,6 +1154,7 @@ static char *builtin_masters_update_info[] = {
"DELETE BF1942 http://tourneys.multiplay.co.uk/public/servers.pl?opt=ListGamespy&event=Online&type=BF1942&hostport=1 multiplay.co.uk - BF1942",
"ADD JK2S master://masterjk2.ravensoft.com:29060 Ravensoft",
"ADD JK3S master://masterjk3.ravensoft.com:29060 Ravensoft",
"ADD UT2004S master://ut2004master1.epicgames.com:28902 Epic 1",
@ -1222,6 +1223,7 @@ static char *builtin_masters_update_info[] = {
"ADD MHS lan://255.255.255.255 LAN",
"ADD AMS lan://255.255.255.255 LAN",
"ADD CODS lan://255.255.255.255 LAN",
"ADD JK2S lan://255.255.255.255 LAN",
"ADD JK3S lan://255.255.255.255 LAN",
"ADD T2S lan://255.255.255.255 LAN",
"ADD POSTAL2 lan://255.255.255.255 LAN",

36
src/xpm/jk2.xpm Normal file
View File

@ -0,0 +1,36 @@
/* XPM */
static char * jk2_xpm[] = {
"17 17 16 1",
" c #020500",
". c #10110E",
"+ c #181917",
"@ c #282A27",
"# c #434543",
"$ c #305C75",
"% c #5C5E5C",
"& c #7B8084",
"* c #7A859C",
"= c #8094C3",
"- c #6B9BE7",
"; c #8C9BB5",
"> c #AAB6C8",
", c #9DBFF9",
"' c #A9C7EE",
") c #CEE6FF",
".. .@#%#$##@+. ",
" ..+@$&$####@. ",
" .++@$&$%%&$@. ..",
" +@@$>$%$&$@..+.",
". +@@$>$%$>$@++. ",
".++@#$'$%$>$@@+ ",
" +@@#*'$%$'$#@. ",
" .+##&'&%$'&#@+.+",
"++@#%='*&&'&##@+ ",
"@@#%&'),=*';%#@. ",
"+@#&;,)-,-''&#@+.",
"@##;=,),''),=&#@@",
"+@#;-')',,),-;#@+",
".@#&,,)'',)'-;##@",
"+@#%*,),',),,&#@+",
"++@#%*>=;,)'*%@+ ",
" .+##%%%&*>*%#@+ "};

View File

@ -133,6 +133,7 @@ enum server_type {
COD_SERVER,
SAS_SERVER,
BF1942_SERVER,
JK2_SERVER,
JK3_SERVER,
NETP_SERVER,
NEXUIZ_SERVER,