- 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>
|
||||
- more translatable strings marked
|
||||
- updated german translation
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
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)
|
||||
AM_CONFIG_HEADER(src/gnuconfig.h)
|
||||
|
||||
|
@ -9,7 +9,7 @@ src/dialogs.c
|
||||
#src/dns.c
|
||||
src/filter.c
|
||||
src/flt-player.c
|
||||
#src/game.c
|
||||
src/game.c
|
||||
#src/history.c
|
||||
#src/host.c
|
||||
src/launch.c
|
||||
|
14
xqf/po/de.po
14
xqf/po/de.po
@ -5,8 +5,8 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2001-09-27 23:37+0200\n"
|
||||
"PO-Revision-Date: 2001-09-27 23:38+GMT\n"
|
||||
"POT-Creation-Date: 2001-09-28 11:43+0200\n"
|
||||
"PO-Revision-Date: 2001-09-28 11:43+GMT\n"
|
||||
"Last-Translator: Ludwig Nussel <ludwig.nussel@web.de>\n"
|
||||
"Language-Team: <de@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -218,6 +218,12 @@ msgstr "Hoch"
|
||||
msgid "Down"
|
||||
msgstr "Runter"
|
||||
|
||||
#. server_type
|
||||
#. flags
|
||||
#: src/game.c:431
|
||||
msgid "Generic Gamespy"
|
||||
msgstr "Allgemein Gamespy"
|
||||
|
||||
#: src/launch.c:72 src/launch.c:191
|
||||
msgid "XQF: ERROR!"
|
||||
msgstr "XQF: Fehler!"
|
||||
@ -647,6 +653,10 @@ msgstr ""
|
||||
"In Datei %s kann nicht geschrieben werden\n"
|
||||
"Fehler: %s\n"
|
||||
|
||||
#: src/source.c:1022
|
||||
msgid "Favorites"
|
||||
msgstr "Favoriten"
|
||||
|
||||
#: src/srv-prop.c:332
|
||||
msgid "IP Address:"
|
||||
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 ut_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 *qw_custom_cfgs (char *dir, char *game);
|
||||
@ -423,6 +424,28 @@ struct game games[] = {
|
||||
quake_save_info
|
||||
},
|
||||
#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,
|
||||
@ -514,7 +537,7 @@ GtkWidget *game_pixmap_with_label (enum server_type type) {
|
||||
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_widget_show (label);
|
||||
|
||||
@ -1044,7 +1067,6 @@ static void q3_analyze_serverinfo (struct server *s) {
|
||||
{
|
||||
s->type=Q3_SERVER;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
else if (strcmp (*info_ptr, "gamename") == 0) {
|
||||
@ -1947,6 +1969,66 @@ static int ut_exec (const struct condef *con, int forkit) {
|
||||
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) {
|
||||
char *argv[32];
|
||||
int argi = 0;
|
||||
|
@ -51,6 +51,8 @@
|
||||
#include "xpm/hr2.xpm"
|
||||
#include "xpm/un.xpm"
|
||||
|
||||
#include "xpm/gamespy3d.xpm"
|
||||
|
||||
#include "xpm/green-plus.xpm"
|
||||
#include "xpm/red-minus.xpm"
|
||||
|
||||
@ -101,6 +103,7 @@ struct pixmap sfs_pix;
|
||||
struct pixmap t2_pix;
|
||||
struct pixmap hr_pix;
|
||||
struct pixmap un_pix;
|
||||
struct pixmap gamespy3d_pix;
|
||||
|
||||
struct pixmap gplus_pix;
|
||||
struct pixmap rminus_pix;
|
||||
@ -200,6 +203,7 @@ void free_pixmaps (void) {
|
||||
free_pixmap (&t2_pix);
|
||||
free_pixmap (&hr_pix);
|
||||
free_pixmap (&un_pix);
|
||||
free_pixmap (&gamespy3d_pix);
|
||||
|
||||
free_pixmap (&gplus_pix);
|
||||
free_pixmap (&rminus_pix);
|
||||
@ -268,6 +272,7 @@ void init_pixmaps (GtkWidget *window) {
|
||||
create_pixmap (window, &t2_pix, t2_xpm);
|
||||
create_pixmap (window, &hr_pix, hr2_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, &rminus_pix, red_minus_xpm);
|
||||
|
@ -60,6 +60,7 @@ extern struct pixmap sfs_pix;
|
||||
extern struct pixmap t2_pix;
|
||||
extern struct pixmap hr_pix;
|
||||
extern struct pixmap un_pix;
|
||||
extern struct pixmap gamespy3d_pix;
|
||||
|
||||
extern struct pixmap gplus_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://q3master.splatterworld.de Germany",
|
||||
"ADD Q3S master://q3.golsyd.net.au Australia",
|
||||
"ADD Q3S master://q3master.barrysworld.com:27950 BarrysWorld",
|
||||
#endif
|
||||
|
||||
"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
|
||||
"ADD UNS gmaster://unreal.epicgames.com:28900 Epic",
|
||||
"ADD UNS gmaster://utmaster.barrysworld.com:28909 BarrysWorld",
|
||||
#endif
|
||||
|
||||
"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 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
|
||||
};
|
||||
|
||||
|
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,
|
||||
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,
|
||||
is_leaf, expanded);
|
||||
|
@ -57,6 +57,7 @@
|
||||
#define T2_DEFAULT_PORT 28000 /* Tribes 2 */
|
||||
#define HR_DEFAULT_PORT 28910 /* Heretic2 */
|
||||
#define UN_DEFAULT_PORT 7777 /* Unreal */
|
||||
#define GPS_DEFAULT_PORT 27888 /* Gamespy Generic */
|
||||
|
||||
#define QWM_DEFAULT_PORT 27000 /* QuakeWorld */
|
||||
#define Q2M_DEFAULT_PORT 27900 /* Quake2 master */
|
||||
@ -99,6 +100,7 @@ enum server_type {
|
||||
#ifdef QSTAT_HAS_UNREAL_SUPPORT
|
||||
UN_SERVER,
|
||||
#endif
|
||||
GPS_SERVER,
|
||||
UNKNOWN_SERVER
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user