Q3 gametype decodes

git-svn-id: http://svn.code.sf.net/p/xqf/code/trunk@361 d2ac09be-c843-0410-8b1f-f8a84130e0ec
This commit is contained in:
Alex Burger 2002-11-02 13:48:45 +00:00 committed by alex_b
parent e728a22085
commit 50a91a4855
2 changed files with 71 additions and 28 deletions

View File

@ -1,7 +1,9 @@
Nov 2, 2002: Alex Burger <alex_b@users.sourceforge.net>
- Add gametype decode for instaunlagged, instagibplus, beryllium, excessive,
q3f, q3f2
Nov 1, 2002: Alex Burger <alex_b@users.sourceforge.net>
- Add gametype decode for arena and cpma
- Change q3_decode_gametype to use the game's first set of game types if
an exact mod match is not found. Will apply to Q3, EF and Wolf.
- Fix for find_file_in_path to not append / if directory is blank. Caused
more and more beginning /'s in game command line each time you pressed
enter in the field.

View File

@ -1365,30 +1365,6 @@ static char *q3a_osp_gametypes[MAX_Q3A_OSP_TYPES] = {
"Custom OSP", /* 6+ is usually a custom OSP setting */
};
#define MAX_Q3A_ARENA_TYPES 9
// Not sure what the proper types are, but 99% of them are a game
// type of 8. Just call them all "arena"
static char *q3a_arena_gametypes[MAX_Q3A_ARENA_TYPES] = {
"arena", /* 0 = Arena */
"arena", /* 1 = Arena */
"arena", /* 2 = Arena */
"arena", /* 3 = Arena */
"arena", /* 4 = Arena */
"arena", /* 5 = Arena */
"arena", /* 6 = Arena */
"arena", /* 7 = Arena */
"arena", /* 8 = Arena */
};
#define MAX_Q3A_CPMA_TYPES 6
static char *q3a_cpma_gametypes[MAX_Q3A_CPMA_TYPES] = {
"FFA", /* 0 = Free for All */
"1v1", /* 1 = Tournament */
NULL, /* 2 = Single Player */
"TDM", /* 3 = Team Deathmatch */
"CTF", /* 4 = Capture the Flag */
"Clan Arena", /* 5 = Clan Arena */
};
#define MAX_Q3A_UT2_TYPES 9
static char *q3a_ut2_gametypes[MAX_Q3A_UT2_TYPES] = {
@ -1464,6 +1440,41 @@ static char *q3a_afterwards_gametypes[MAX_Q3A_AFTERWARDS_TYPES] = {
NULL, // 2+ ??
};
#define MAX_Q3A_ARENA_TYPES 9
// Not sure what the proper types are, but 99% of them are a game
// type of 8. Just call them all "arena"
static char *q3a_arena_gametypes[MAX_Q3A_ARENA_TYPES] = {
"arena", /* 0 = Arena */
"arena", /* 1 = Arena */
"arena", /* 2 = Arena */
"arena", /* 3 = Arena */
"arena", /* 4 = Arena */
"arena", /* 5 = Arena */
"arena", /* 6 = Arena */
"arena", /* 7 = Arena */
"arena", /* 8 = Arena */
};
#define MAX_Q3A_CPMA_TYPES 6
static char *q3a_cpma_gametypes[MAX_Q3A_CPMA_TYPES] = {
"FFA", /* 0 = Free for All */
"1v1", /* 1 = Tournament */
NULL, /* 2 = Single Player */
"TDM", /* 3 = Team Deathmatch */
"CTF", /* 4 = Capture the Flag */
"Clan Arena", /* 5 = Clan Arena */
};
#define MAX_Q3A_Q3F_TYPES 9
static char *q3a_q3f_gametypes[MAX_Q3A_Q3F_TYPES] = {
"q3f", /* 0 = Arena */
"q3f", /* 1 = Arena */
"q3f", /* 2 = Arena */
"q3f", /* 3 = Arena */
"q3f", /* 4 = Arena */
"q3f", /* 5 = Arena */
};
#define MAX_WOLF_TYPES 9
static char *wolf_gametypes[MAX_WOLF_TYPES] = {
NULL, // 0 - Unknown
@ -1550,6 +1561,36 @@ struct q3a_gametype_s q3a_gametype_map[] =
q3a_arena_gametypes,
MAX_Q3A_ARENA_TYPES
},
{
"instaunlagged",
q3a_gametypes,
MAX_Q3A_TYPES
},
{
"instagibplus",
q3a_gametypes,
MAX_Q3A_TYPES
},
{
"beryllium",
q3a_gametypes,
MAX_Q3A_TYPES
},
{
"excessive",
q3a_gametypes,
MAX_Q3A_TYPES
},
{
"q3f",
q3a_q3f_gametypes,
MAX_Q3A_Q3F_TYPES
},
{
"q3f2",
q3a_q3f_gametypes,
MAX_Q3A_Q3F_TYPES
},
{
NULL,
NULL,
@ -1607,10 +1648,10 @@ void q3_decode_gametype (struct server *s, struct q3a_gametype_s map[])
s->gametype = ptr->gametypes[n];
found=1;
}
else
// else
// Exact match not found - use the first one in the list
// which should be the game's original game types
s->gametype = map->gametypes[n];
// s->gametype = map->gametypes[n];
}
}