- added support for games using the gamespy protocol
- added q3,ut,sof,nolf,rally masters,turok2 and shogo masters - made game names translatable - updated german translation - changed version to 0.9.7b git-svn-id: http://svn.code.sf.net/p/xqf/code/trunk@90 d2ac09be-c843-0410-8b1f-f8a84130e0ec
This commit is contained in:
parent
0e3acd5b37
commit
462db866a4
@ -1,3 +1,10 @@
|
|||||||
|
Sep 28, 2001: Ludwig Nussel <l-n@sourceforge.net>
|
||||||
|
- added support for games using the gamespy protocol
|
||||||
|
- added q3,ut,sof,nolf,rally masters,turok2 and shogo masters
|
||||||
|
- made game names translatable
|
||||||
|
- updated german translation
|
||||||
|
- changed version to 0.9.7b
|
||||||
|
|
||||||
Sep 27, 2001: Ludwig Nussel <l-n@sourceforge.net>
|
Sep 27, 2001: Ludwig Nussel <l-n@sourceforge.net>
|
||||||
- more translatable strings marked
|
- more translatable strings marked
|
||||||
- updated german translation
|
- updated german translation
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
AC_INIT(src/xqf.c)
|
AC_INIT(src/xqf.c)
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE(xqf, 0.9.7a)
|
AM_INIT_AUTOMAKE(xqf, 0.9.7b)
|
||||||
dnl AM_CONFIG_HEADER(src/gnuconfig.h:src/gnuconfig.h.in)
|
dnl AM_CONFIG_HEADER(src/gnuconfig.h:src/gnuconfig.h.in)
|
||||||
AM_CONFIG_HEADER(src/gnuconfig.h)
|
AM_CONFIG_HEADER(src/gnuconfig.h)
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ src/dialogs.c
|
|||||||
#src/dns.c
|
#src/dns.c
|
||||||
src/filter.c
|
src/filter.c
|
||||||
src/flt-player.c
|
src/flt-player.c
|
||||||
#src/game.c
|
src/game.c
|
||||||
#src/history.c
|
#src/history.c
|
||||||
#src/host.c
|
#src/host.c
|
||||||
src/launch.c
|
src/launch.c
|
||||||
|
14
xqf/po/de.po
14
xqf/po/de.po
@ -5,8 +5,8 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"POT-Creation-Date: 2001-09-27 23:37+0200\n"
|
"POT-Creation-Date: 2001-09-28 11:43+0200\n"
|
||||||
"PO-Revision-Date: 2001-09-27 23:38+GMT\n"
|
"PO-Revision-Date: 2001-09-28 11:43+GMT\n"
|
||||||
"Last-Translator: Ludwig Nussel <ludwig.nussel@web.de>\n"
|
"Last-Translator: Ludwig Nussel <ludwig.nussel@web.de>\n"
|
||||||
"Language-Team: <de@li.org>\n"
|
"Language-Team: <de@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -218,6 +218,12 @@ msgstr "Hoch"
|
|||||||
msgid "Down"
|
msgid "Down"
|
||||||
msgstr "Runter"
|
msgstr "Runter"
|
||||||
|
|
||||||
|
#. server_type
|
||||||
|
#. flags
|
||||||
|
#: src/game.c:431
|
||||||
|
msgid "Generic Gamespy"
|
||||||
|
msgstr "Allgemein Gamespy"
|
||||||
|
|
||||||
#: src/launch.c:72 src/launch.c:191
|
#: src/launch.c:72 src/launch.c:191
|
||||||
msgid "XQF: ERROR!"
|
msgid "XQF: ERROR!"
|
||||||
msgstr "XQF: Fehler!"
|
msgstr "XQF: Fehler!"
|
||||||
@ -647,6 +653,10 @@ msgstr ""
|
|||||||
"In Datei %s kann nicht geschrieben werden\n"
|
"In Datei %s kann nicht geschrieben werden\n"
|
||||||
"Fehler: %s\n"
|
"Fehler: %s\n"
|
||||||
|
|
||||||
|
#: src/source.c:1022
|
||||||
|
msgid "Favorites"
|
||||||
|
msgstr "Favoriten"
|
||||||
|
|
||||||
#: src/srv-prop.c:332
|
#: src/srv-prop.c:332
|
||||||
msgid "IP Address:"
|
msgid "IP Address:"
|
||||||
msgstr "IP Adresse:"
|
msgstr "IP Adresse:"
|
||||||
|
@ -77,6 +77,7 @@ static int wo_exec (const struct condef *con, int forkit);
|
|||||||
static int q2_exec_generic (const struct condef *con, int forkit);
|
static int q2_exec_generic (const struct condef *con, int forkit);
|
||||||
static int ut_exec (const struct condef *con, int forkit);
|
static int ut_exec (const struct condef *con, int forkit);
|
||||||
static int t2_exec (const struct condef *con, int forkit);
|
static int t2_exec (const struct condef *con, int forkit);
|
||||||
|
static int gamespy_exec (const struct condef *con, int forkit);
|
||||||
|
|
||||||
static GList *q1_custom_cfgs (char *dir, char *game);
|
static GList *q1_custom_cfgs (char *dir, char *game);
|
||||||
static GList *qw_custom_cfgs (char *dir, char *game);
|
static GList *qw_custom_cfgs (char *dir, char *game);
|
||||||
@ -423,6 +424,28 @@ struct game games[] = {
|
|||||||
quake_save_info
|
quake_save_info
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
|
// any game using the gamespy protocol
|
||||||
|
{
|
||||||
|
GPS_SERVER, // server_type
|
||||||
|
GAME_CONNECT, // flags
|
||||||
|
N_("Generic Gamespy"), // name
|
||||||
|
GPS_DEFAULT_PORT, // default_port
|
||||||
|
0, // default_master_port
|
||||||
|
"GPS", // id
|
||||||
|
"GPS", // qstat_str
|
||||||
|
"-gps", // qstat_option
|
||||||
|
"gps", // qstat_master_option
|
||||||
|
&gamespy3d_pix, // pixmap
|
||||||
|
|
||||||
|
un_parse_player, // parse_player
|
||||||
|
quake_parse_server, // parse_server
|
||||||
|
un_analyze_serverinfo, // analyze_serverinfo
|
||||||
|
config_is_valid_generic, // config_is_valid
|
||||||
|
NULL, // write_config
|
||||||
|
gamespy_exec, // exec_client
|
||||||
|
NULL, // custom_cfgs
|
||||||
|
quake_save_info // save_info
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
UNKNOWN_SERVER,
|
UNKNOWN_SERVER,
|
||||||
@ -514,7 +537,7 @@ GtkWidget *game_pixmap_with_label (enum server_type type) {
|
|||||||
gtk_widget_show (pixmap);
|
gtk_widget_show (pixmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
label = gtk_label_new (games[type].name);
|
label = gtk_label_new (_(games[type].name));
|
||||||
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
|
||||||
gtk_widget_show (label);
|
gtk_widget_show (label);
|
||||||
|
|
||||||
@ -1044,7 +1067,6 @@ static void q3_analyze_serverinfo (struct server *s) {
|
|||||||
{
|
{
|
||||||
s->type=Q3_SERVER;
|
s->type=Q3_SERVER;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (strcmp (*info_ptr, "gamename") == 0) {
|
else if (strcmp (*info_ptr, "gamename") == 0) {
|
||||||
@ -1947,6 +1969,66 @@ static int ut_exec (const struct condef *con, int forkit) {
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// launch any game that uses the gamespy protocol
|
||||||
|
// the first argument is the content of gamename field (may be empty),
|
||||||
|
// the second one the ip of the server
|
||||||
|
static int gamespy_exec (const struct condef *con, int forkit) {
|
||||||
|
char *argv[32];
|
||||||
|
int argi = 0;
|
||||||
|
char *cmd;
|
||||||
|
struct game *g = NULL;
|
||||||
|
int retval;
|
||||||
|
char **info_ptr;
|
||||||
|
char* gamename="";
|
||||||
|
|
||||||
|
char* hostport=NULL;
|
||||||
|
char* real_server=NULL;
|
||||||
|
|
||||||
|
if(!con || !con->s)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
g = &games[con->s->type];
|
||||||
|
|
||||||
|
cmd = strdup_strip (g->cmd);
|
||||||
|
|
||||||
|
argv[argi++] = strtok (cmd, delim);
|
||||||
|
while ((argv[argi] = strtok (NULL, delim)) != NULL)
|
||||||
|
argi++;
|
||||||
|
|
||||||
|
// go through all server rules
|
||||||
|
for (info_ptr = con->s->info; info_ptr && *info_ptr; info_ptr += 2) {
|
||||||
|
if (!strcmp (*info_ptr, "gamename")) {
|
||||||
|
gamename=info_ptr[1];
|
||||||
|
}
|
||||||
|
else if (!strcmp (*info_ptr, "hostport")) {
|
||||||
|
hostport=info_ptr[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
argv[argi++] = strdup_strip (gamename);
|
||||||
|
|
||||||
|
if (con->server) {
|
||||||
|
// gamespy port can be different from game port
|
||||||
|
if(hostport)
|
||||||
|
{
|
||||||
|
real_server = g_strdup_printf ("%s:%s", inet_ntoa (con->s->host->ip), hostport);
|
||||||
|
argv[argi++] = real_server;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
argv[argi++] = con->server;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
argv[argi] = NULL;
|
||||||
|
|
||||||
|
retval = client_launch_exec (forkit, g->real_dir, argv, con->s);
|
||||||
|
|
||||||
|
g_free (cmd);
|
||||||
|
g_free (real_server);
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
static int t2_exec (const struct condef *con, int forkit) {
|
static int t2_exec (const struct condef *con, int forkit) {
|
||||||
char *argv[32];
|
char *argv[32];
|
||||||
int argi = 0;
|
int argi = 0;
|
||||||
|
@ -51,6 +51,8 @@
|
|||||||
#include "xpm/hr2.xpm"
|
#include "xpm/hr2.xpm"
|
||||||
#include "xpm/un.xpm"
|
#include "xpm/un.xpm"
|
||||||
|
|
||||||
|
#include "xpm/gamespy3d.xpm"
|
||||||
|
|
||||||
#include "xpm/green-plus.xpm"
|
#include "xpm/green-plus.xpm"
|
||||||
#include "xpm/red-minus.xpm"
|
#include "xpm/red-minus.xpm"
|
||||||
|
|
||||||
@ -101,6 +103,7 @@ struct pixmap sfs_pix;
|
|||||||
struct pixmap t2_pix;
|
struct pixmap t2_pix;
|
||||||
struct pixmap hr_pix;
|
struct pixmap hr_pix;
|
||||||
struct pixmap un_pix;
|
struct pixmap un_pix;
|
||||||
|
struct pixmap gamespy3d_pix;
|
||||||
|
|
||||||
struct pixmap gplus_pix;
|
struct pixmap gplus_pix;
|
||||||
struct pixmap rminus_pix;
|
struct pixmap rminus_pix;
|
||||||
@ -200,6 +203,7 @@ void free_pixmaps (void) {
|
|||||||
free_pixmap (&t2_pix);
|
free_pixmap (&t2_pix);
|
||||||
free_pixmap (&hr_pix);
|
free_pixmap (&hr_pix);
|
||||||
free_pixmap (&un_pix);
|
free_pixmap (&un_pix);
|
||||||
|
free_pixmap (&gamespy3d_pix);
|
||||||
|
|
||||||
free_pixmap (&gplus_pix);
|
free_pixmap (&gplus_pix);
|
||||||
free_pixmap (&rminus_pix);
|
free_pixmap (&rminus_pix);
|
||||||
@ -268,6 +272,7 @@ void init_pixmaps (GtkWidget *window) {
|
|||||||
create_pixmap (window, &t2_pix, t2_xpm);
|
create_pixmap (window, &t2_pix, t2_xpm);
|
||||||
create_pixmap (window, &hr_pix, hr2_xpm);
|
create_pixmap (window, &hr_pix, hr2_xpm);
|
||||||
create_pixmap (window, &un_pix, un_xpm);
|
create_pixmap (window, &un_pix, un_xpm);
|
||||||
|
create_pixmap (window, &gamespy3d_pix, gamespy3d_xpm);
|
||||||
|
|
||||||
create_pixmap (window, &gplus_pix, green_plus_xpm);
|
create_pixmap (window, &gplus_pix, green_plus_xpm);
|
||||||
create_pixmap (window, &rminus_pix, red_minus_xpm);
|
create_pixmap (window, &rminus_pix, red_minus_xpm);
|
||||||
|
@ -60,6 +60,7 @@ extern struct pixmap sfs_pix;
|
|||||||
extern struct pixmap t2_pix;
|
extern struct pixmap t2_pix;
|
||||||
extern struct pixmap hr_pix;
|
extern struct pixmap hr_pix;
|
||||||
extern struct pixmap un_pix;
|
extern struct pixmap un_pix;
|
||||||
|
extern struct pixmap gamespy3d_pix;
|
||||||
|
|
||||||
extern struct pixmap gplus_pix;
|
extern struct pixmap gplus_pix;
|
||||||
extern struct pixmap rminus_pix;
|
extern struct pixmap rminus_pix;
|
||||||
|
@ -818,6 +818,7 @@ static char *builtin_masters_update_info[] = {
|
|||||||
"ADD Q3S master://master3.idsoftware.com id",
|
"ADD Q3S master://master3.idsoftware.com id",
|
||||||
"ADD Q3S master://q3master.splatterworld.de Germany",
|
"ADD Q3S master://q3master.splatterworld.de Germany",
|
||||||
"ADD Q3S master://q3.golsyd.net.au Australia",
|
"ADD Q3S master://q3.golsyd.net.au Australia",
|
||||||
|
"ADD Q3S master://q3master.barrysworld.com:27950 BarrysWorld",
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
"ADD SNS http://www.gameaholic.com/servers/qspy-sin Gameaholic.Com",
|
"ADD SNS http://www.gameaholic.com/servers/qspy-sin Gameaholic.Com",
|
||||||
@ -835,6 +836,7 @@ static char *builtin_masters_update_info[] = {
|
|||||||
|
|
||||||
#ifdef QSTAT_HAS_UNREAL_SUPPORT
|
#ifdef QSTAT_HAS_UNREAL_SUPPORT
|
||||||
"ADD UNS gmaster://unreal.epicgames.com:28900 Epic",
|
"ADD UNS gmaster://unreal.epicgames.com:28900 Epic",
|
||||||
|
"ADD UNS gmaster://utmaster.barrysworld.com:28909 BarrysWorld",
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
"ADD T2S master://198.74.33.29:28002 NA West1",
|
"ADD T2S master://198.74.33.29:28002 NA West1",
|
||||||
@ -845,6 +847,12 @@ static char *builtin_masters_update_info[] = {
|
|||||||
|
|
||||||
"ADD WOS master://wolf.idsoftware.com:27950 id",
|
"ADD WOS master://wolf.idsoftware.com:27950 id",
|
||||||
|
|
||||||
|
"ADD SFS http://www.gameaholic.com/servers/qspy-soldieroffortune gameaholic.com",
|
||||||
|
"ADD GPS http://www.gameaholic.com/servers/qspy-noonelivesforever Noone Lives Forevere - gameaholic.com",
|
||||||
|
"ADD GPS http://www.gameaholic.com/servers/qspy-rallymasters Rally Masters - gameaholic.com",
|
||||||
|
"ADD GPS http://www.gameaholic.com/servers/qspy-turok2 Turok 2 - gameaholic.com",
|
||||||
|
"ADD GPS http://www.gameaholic.com/servers/qspy-shogo Shogo - gameaholic.com",
|
||||||
|
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
36
xqf/src/xpm/gamespy3d.xpm
Normal file
36
xqf/src/xpm/gamespy3d.xpm
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/* XPM */
|
||||||
|
static char * gamespy3d_xpm[] = {
|
||||||
|
"16 16 17 1",
|
||||||
|
" c None",
|
||||||
|
". c #00FF00",
|
||||||
|
"+ c #00DE00",
|
||||||
|
"@ c #00AE00",
|
||||||
|
"# c #007A00",
|
||||||
|
"$ c #004A00",
|
||||||
|
"% c #002E00",
|
||||||
|
"& c #39E939",
|
||||||
|
"* c #355635",
|
||||||
|
"= c #BDF4BD",
|
||||||
|
"- c #FFFFFF",
|
||||||
|
"; c #EFEFEF",
|
||||||
|
"> c #BFBFBF",
|
||||||
|
", c #B8B8B8",
|
||||||
|
"' c #7A7A7A",
|
||||||
|
") c #373737",
|
||||||
|
"! c #000000",
|
||||||
|
">>>>>!!-!!>>>>>>",
|
||||||
|
">>>>),,-,,'!>>>>",
|
||||||
|
">>>),*%'%*',!>>>",
|
||||||
|
">>),!$...@!),!>>",
|
||||||
|
">!,!!#...@$!')>>",
|
||||||
|
">')!%##$$#.@%,!>",
|
||||||
|
"!-!$.....@@%!,!!",
|
||||||
|
"---!%#%##%!!'--'",
|
||||||
|
"!,!%$$!##$@%!,!!",
|
||||||
|
"!')+.!!!#..$),!>",
|
||||||
|
">),%.#!!#..!,)>>",
|
||||||
|
">!)=.@!!#..&,!>>",
|
||||||
|
">>!)=&@@+&='-)>>",
|
||||||
|
">>>!!'---'!!);)>",
|
||||||
|
">>>>>!!-!!>>!);)",
|
||||||
|
">>>>>>!-!>>>>!)-"};
|
@ -280,7 +280,7 @@ void source_ctree_show_node_status (GtkWidget *ctree, struct master *m) {
|
|||||||
gtk_ctree_get_node_info (GTK_CTREE (ctree), node, NULL, NULL,
|
gtk_ctree_get_node_info (GTK_CTREE (ctree), node, NULL, NULL,
|
||||||
NULL, NULL, NULL, NULL, &is_leaf, &expanded);
|
NULL, NULL, NULL, NULL, &is_leaf, &expanded);
|
||||||
|
|
||||||
gtk_ctree_set_node_info (GTK_CTREE (ctree), node, m->name, 4,
|
gtk_ctree_set_node_info (GTK_CTREE (ctree), node, _(m->name), 4,
|
||||||
(pix)? pix->pix : NULL, (pix)? pix->mask : NULL,
|
(pix)? pix->pix : NULL, (pix)? pix->mask : NULL,
|
||||||
(pix)? pix->pix : NULL, (pix)? pix->mask : NULL,
|
(pix)? pix->pix : NULL, (pix)? pix->mask : NULL,
|
||||||
is_leaf, expanded);
|
is_leaf, expanded);
|
||||||
|
@ -57,6 +57,7 @@
|
|||||||
#define T2_DEFAULT_PORT 28000 /* Tribes 2 */
|
#define T2_DEFAULT_PORT 28000 /* Tribes 2 */
|
||||||
#define HR_DEFAULT_PORT 28910 /* Heretic2 */
|
#define HR_DEFAULT_PORT 28910 /* Heretic2 */
|
||||||
#define UN_DEFAULT_PORT 7777 /* Unreal */
|
#define UN_DEFAULT_PORT 7777 /* Unreal */
|
||||||
|
#define GPS_DEFAULT_PORT 27888 /* Gamespy Generic */
|
||||||
|
|
||||||
#define QWM_DEFAULT_PORT 27000 /* QuakeWorld */
|
#define QWM_DEFAULT_PORT 27000 /* QuakeWorld */
|
||||||
#define Q2M_DEFAULT_PORT 27900 /* Quake2 master */
|
#define Q2M_DEFAULT_PORT 27900 /* Quake2 master */
|
||||||
@ -99,6 +100,7 @@ enum server_type {
|
|||||||
#ifdef QSTAT_HAS_UNREAL_SUPPORT
|
#ifdef QSTAT_HAS_UNREAL_SUPPORT
|
||||||
UN_SERVER,
|
UN_SERVER,
|
||||||
#endif
|
#endif
|
||||||
|
GPS_SERVER,
|
||||||
UNKNOWN_SERVER
|
UNKNOWN_SERVER
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user