From Sara at OpenHere.com Wed Aug 9 07:49:14 2000 From: Sara at OpenHere.com (Sara@OpenHere.com) Date: Wed Jan 12 00:50:24 2005 Subject: [Netrek Clients] Your site has been included on OpenHere Message-ID: Hi, Your site was recently submitted to OpenHere.com. We have reviewed your site and decided to include it as follows: Link: http://cow.netrek.org/ Title: COW Description: OpenHere Category: http://www.openhere.com/games/internet/netrek/software/ As you are listed as a contact person on the home page of this site, I am dropping you a quick note to let you know about your inclusion on OpenHere. OpenHere is one of the 10 largest index and search sites on the Internet and is specifically focused on creating resources for the family. You can dynamically modify your site's listing at any time, or include your site's listing in other categories on OpenHere.com. When you modify your site's listing, it is automatically placed at the top of the category in which it is included, and is placed first in the search engine results for the keywords relating to your site. To modify, add or delete your listing: 1. Go to the OpenHere category where your site is listed. 2. Click on the "Suggest a Site" link. 3. Follow the instructions for changing your listing. All of the modifications you submit to OpenHere.com are processed in real time. As soon as you see the response to your submission, your site listing should be updated. OpenHere is frequented by both children and families. As a result, www.OpenHere.com does not include links to material which is illegal to display to minors. If you have a question, or need help in any way, please just send me a note. Yes, I am a real person! Sara www.OpenHere.com Your key to the Net! From tanner at real-time.com Mon Aug 7 22:32:56 2000 From: tanner at real-time.com (Bob Tanner) Date: Wed Jan 12 00:51:13 2005 Subject: [Vanilla Devel] [mwedel@scruznet.com: netrek metaserver question.] Message-ID: <20000807223256.D31091@real-time.com> This is from the crossfire development group: > Couple questions: > 1) Is the source for the metaserver server side readily available? I didn't > search that hard. > 2) Is the netrek license compatible with crossfire? I downloaded the vanilla > server, but didn't see any license file there. I answered 1, but what is the status of 2? Did we ever get everything GPL'd or what is the license. I remember James(?) Dave(?) Tom(?) trying to track down some of the original authors for a license confirmation. Whatevery happend to that? -- Bob Tanner | Phone : (612)943-8700 http://www.mn-linux.org | Fax : (612)943-8500 Key fingerprint = 6C E9 51 4F D5 3E 4C 66 62 A9 10 E5 35 85 39 D9 From vanilla-devel at us.netrek.org Tue Aug 15 02:57:59 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:13 2005 Subject: [Vanilla Devel] CVS update: Vanilla/ntserv Message-ID: <200008150757.e7F7vxb07264@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 2:57 Author: xyzzy Update of /home/netrek/cvsroot/Vanilla/ntserv In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7261 Modified Files: wander2.c Log Message: Clean up some crufty code. Remove a few global variables and make all others static. **************************************** Index: Vanilla/ntserv/wander2.c diff -u Vanilla/ntserv/wander2.c:1.2 Vanilla/ntserv/wander2.c:1.3 --- Vanilla/ntserv/wander2.c:1.2 Fri Apr 30 15:18:47 1999 +++ Vanilla/ntserv/wander2.c Tue Aug 15 02:57:58 2000 @@ -7,29 +7,22 @@ #define COS(x) ((x) >= 0.0 ? Cosine[(int)(x)] : Cosine[(int)(-(x))]) #define SIN(x) ((x) >= 0.0 ? Sine[(int)(x)] : -Sine[(int)(-(x))]) -int pl_home[4]; -int pl_core[4][10]; -int pl_dist[4][10]; -double increment = 0.016; -double incrementrecip = 62.5; -float *Cosine, *Sine; +static int pl_home[4]; +static int pl_core[4][10]; +static int pl_dist[4][10]; +static const double increment = 0.016; +static const double incrementrecip = 62.5; +static float *Cosine, *Sine; -double dpre; - -int planeti, planetj; - /* call only once */ void pinit(void) { - double dx, dy; int i, j; - int pre; void pmove(); pre = 3.5/increment; - dpre = (double) pre; Cosine = (float*) calloc(sizeof(float), pre); Sine = (float*) calloc(sizeof(float), pre); @@ -61,21 +54,18 @@ for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { - dx = (double) (planets[pl_core[i][j]].pl_x - planets[pl_home[i]].pl_x); - dy = (double) (planets[pl_home[i]].pl_y - planets[pl_core[i][j]].pl_y); - pl_dist[i][j] = sqrt(dx * dx + dy * dy); -/* pl_dist[i][j] = 12000;*/ + pl_dist[i][j] = hypot( + planets[pl_core[i][j]].pl_x - planets[pl_home[i]].pl_x, + planets[pl_core[i][j]].pl_y - planets[pl_home[i]].pl_y); } } - - planeti = 0; - planetj = 0; } void pmove(void) { int i, j; double dir; + static int planeti=0, planetj=0; for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { From vanilla-devel at us.netrek.org Tue Aug 15 05:16:29 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:13 2005 Subject: [Vanilla Devel] CVS update: Vanilla/ntserv Message-ID: <200008151016.e7FAGTD07469@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 5:16 Author: xyzzy Update of /home/netrek/cvsroot/Vanilla/ntserv In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7466 Modified Files: data.c data.h getentry.c interface.c main.c sysdefaults.h Log Message: Added a new default, "SBPLANETS", which is the number of planets necessary to get a SB, previously hardcoded at 5. In chaos mode, the planet requirement remains, previously it was hardcoded at 0 for chaos. The system defaults page in the MOTD will tell players the value. I didn't add this default to GUM. **************************************** Index: Vanilla/ntserv/data.c diff -u Vanilla/ntserv/data.c:1.15 Vanilla/ntserv/data.c:1.16 --- Vanilla/ntserv/data.c:1.15 Sat May 27 04:46:25 2000 +++ Vanilla/ntserv/data.c Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: data.c,v 1.15 2000/05/27 09:46:25 jeffno Exp $ +/* $Id: data.c,v 1.16 2000/08/15 10:16:28 xyzzy Exp $ */ #include "../ntserv/copyright.h" @@ -80,6 +80,7 @@ int errorlevel=1; /* controlling amount of error info */ int dead_warp=0; /* use warp 14 for death detection */ int surrenderStart=1; /* # of planets to start surrender counter */ +int sbplanets=5; /* # of planets to get a base */ char *shipnames[NUM_TYPES] = { "Scout", "Destroyer", "Cruiser", "Battleship", Index: Vanilla/ntserv/data.h diff -u Vanilla/ntserv/data.h:1.12 Vanilla/ntserv/data.h:1.13 --- Vanilla/ntserv/data.h:1.12 Sat May 27 04:46:25 2000 +++ Vanilla/ntserv/data.h Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: data.h,v 1.12 2000/05/27 09:46:25 jeffno Exp $ +/* $Id: data.h,v 1.13 2000/08/15 10:16:28 xyzzy Exp $ */ #ifndef _h_data @@ -124,6 +124,7 @@ extern int errorlevel; extern int dead_warp; extern int surrenderStart; +extern int sbplanets; #define WP_PLASMA 0 Index: Vanilla/ntserv/getentry.c diff -u Vanilla/ntserv/getentry.c:1.6 Vanilla/ntserv/getentry.c:1.7 --- Vanilla/ntserv/getentry.c:1.6 Wed Dec 29 18:14:48 1999 +++ Vanilla/ntserv/getentry.c Tue Aug 15 05:16:28 2000 @@ -199,7 +199,7 @@ teamPick= -1; continue; } - if (numPlanets(1<p_team) < 5 && !chaos && !topgun) { + if (type == STARBASE && numPlanets(me->p_team) < sbplanets && !topgun) { new_warning(61,"Your team's stuggling economy cannot support such an expenditure!"); return; } Index: Vanilla/ntserv/main.c diff -u Vanilla/ntserv/main.c:1.18 Vanilla/ntserv/main.c:1.19 --- Vanilla/ntserv/main.c:1.18 Fri Feb 25 01:43:21 2000 +++ Vanilla/ntserv/main.c Tue Aug 15 05:16:28 2000 @@ -580,6 +580,9 @@ sendMotdLine(buf); } + sprintf(buf, "%-30s: %d", "Planets Required for SB", sbplanets); + sendMotdLine(buf); + sprintf(buf, "%-30s: ", "Hidden Mode"); switch (hiddenenemy) { case 0: Index: Vanilla/ntserv/sysdefaults.h diff -u Vanilla/ntserv/sysdefaults.h:1.10 Vanilla/ntserv/sysdefaults.h:1.11 --- Vanilla/ntserv/sysdefaults.h:1.10 Fri Jun 23 04:12:58 2000 +++ Vanilla/ntserv/sysdefaults.h Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: sysdefaults.h,v 1.10 2000/06/23 09:12:58 cameron Exp $ */ +/* $Id: sysdefaults.h,v 1.11 2000/08/15 10:16:28 xyzzy Exp $ */ /* structure for default values that are represented as array of flags */ struct sysdef_array { @@ -96,8 +96,10 @@ "Kills required before plasma granted on refit" }, { "SBRANK", SYSDEF_INT, &sbrank, "Rank required to refit to Starbase" }, + { "SBPLANETS", SYSDEF_INT, &sbplanets, + "Minimum planets for Starbase" }, { "CHAOS", SYSDEF_INT, &chaosmode, - "Enable CHAOS mode" }, + "Enable CHAOS mode" }, #ifdef SNAKEPATROL { "SNAKEPATROL", SYSDEF_INT, &snakepatrol, "Strange snake torpedo stream (unimplemented)" }, From vanilla-devel at us.netrek.org Tue Aug 15 05:16:29 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:13 2005 Subject: [Vanilla Devel] CVS update: Vanilla/ntserv Message-ID: <200008151016.e7FAGTD07469@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 5:16 Author: xyzzy Update of /home/netrek/cvsroot/Vanilla/ntserv In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7466 Modified Files: data.c data.h getentry.c interface.c main.c sysdefaults.h Log Message: Added a new default, "SBPLANETS", which is the number of planets necessary to get a SB, previously hardcoded at 5. In chaos mode, the planet requirement remains, previously it was hardcoded at 0 for chaos. The system defaults page in the MOTD will tell players the value. I didn't add this default to GUM. **************************************** Index: Vanilla/ntserv/data.c diff -u Vanilla/ntserv/data.c:1.15 Vanilla/ntserv/data.c:1.16 --- Vanilla/ntserv/data.c:1.15 Sat May 27 04:46:25 2000 +++ Vanilla/ntserv/data.c Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: data.c,v 1.15 2000/05/27 09:46:25 jeffno Exp $ +/* $Id: data.c,v 1.16 2000/08/15 10:16:28 xyzzy Exp $ */ #include "../ntserv/copyright.h" @@ -80,6 +80,7 @@ int errorlevel=1; /* controlling amount of error info */ int dead_warp=0; /* use warp 14 for death detection */ int surrenderStart=1; /* # of planets to start surrender counter */ +int sbplanets=5; /* # of planets to get a base */ char *shipnames[NUM_TYPES] = { "Scout", "Destroyer", "Cruiser", "Battleship", Index: Vanilla/ntserv/data.h diff -u Vanilla/ntserv/data.h:1.12 Vanilla/ntserv/data.h:1.13 --- Vanilla/ntserv/data.h:1.12 Sat May 27 04:46:25 2000 +++ Vanilla/ntserv/data.h Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: data.h,v 1.12 2000/05/27 09:46:25 jeffno Exp $ +/* $Id: data.h,v 1.13 2000/08/15 10:16:28 xyzzy Exp $ */ #ifndef _h_data @@ -124,6 +124,7 @@ extern int errorlevel; extern int dead_warp; extern int surrenderStart; +extern int sbplanets; #define WP_PLASMA 0 Index: Vanilla/ntserv/getentry.c diff -u Vanilla/ntserv/getentry.c:1.6 Vanilla/ntserv/getentry.c:1.7 --- Vanilla/ntserv/getentry.c:1.6 Wed Dec 29 18:14:48 1999 +++ Vanilla/ntserv/getentry.c Tue Aug 15 05:16:28 2000 @@ -199,7 +199,7 @@ teamPick= -1; continue; } - if (numPlanets(1<p_team) < 5 && !chaos && !topgun) { + if (type == STARBASE && numPlanets(me->p_team) < sbplanets && !topgun) { new_warning(61,"Your team's stuggling economy cannot support such an expenditure!"); return; } Index: Vanilla/ntserv/main.c diff -u Vanilla/ntserv/main.c:1.18 Vanilla/ntserv/main.c:1.19 --- Vanilla/ntserv/main.c:1.18 Fri Feb 25 01:43:21 2000 +++ Vanilla/ntserv/main.c Tue Aug 15 05:16:28 2000 @@ -580,6 +580,9 @@ sendMotdLine(buf); } + sprintf(buf, "%-30s: %d", "Planets Required for SB", sbplanets); + sendMotdLine(buf); + sprintf(buf, "%-30s: ", "Hidden Mode"); switch (hiddenenemy) { case 0: Index: Vanilla/ntserv/sysdefaults.h diff -u Vanilla/ntserv/sysdefaults.h:1.10 Vanilla/ntserv/sysdefaults.h:1.11 --- Vanilla/ntserv/sysdefaults.h:1.10 Fri Jun 23 04:12:58 2000 +++ Vanilla/ntserv/sysdefaults.h Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: sysdefaults.h,v 1.10 2000/06/23 09:12:58 cameron Exp $ */ +/* $Id: sysdefaults.h,v 1.11 2000/08/15 10:16:28 xyzzy Exp $ */ /* structure for default values that are represented as array of flags */ struct sysdef_array { @@ -96,8 +96,10 @@ "Kills required before plasma granted on refit" }, { "SBRANK", SYSDEF_INT, &sbrank, "Rank required to refit to Starbase" }, + { "SBPLANETS", SYSDEF_INT, &sbplanets, + "Minimum planets for Starbase" }, { "CHAOS", SYSDEF_INT, &chaosmode, - "Enable CHAOS mode" }, + "Enable CHAOS mode" }, #ifdef SNAKEPATROL { "SNAKEPATROL", SYSDEF_INT, &snakepatrol, "Strange snake torpedo stream (unimplemented)" }, From vanilla-devel at us.netrek.org Tue Aug 15 05:18:12 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:13 2005 Subject: [Vanilla Devel] CVS update: Vanilla/docs Message-ID: <200008151018.e7FAICZ07497@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 5:18 Author: xyzzy Update of /home/netrek/cvsroot/Vanilla/docs In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7494 Modified Files: sample_sysdef Log Message: Add the "SBPLANETS" sysdef setting. Planets needed to checkout a SB, normally set to 5. **************************************** Index: Vanilla/docs/sample_sysdef diff -u Vanilla/docs/sample_sysdef:1.10 Vanilla/docs/sample_sysdef:1.11 --- Vanilla/docs/sample_sysdef:1.10 Sat May 27 04:58:16 2000 +++ Vanilla/docs/sample_sysdef Tue Aug 15 05:18:12 2000 @@ -1,4 +1,4 @@ -# $Id: sample_sysdef,v 1.10 2000/05/27 09:58:16 jeffno Exp $ +# $Id: sample_sysdef,v 1.11 2000/08/15 10:18:12 xyzzy Exp $ # # The sample sysdef file shipped with the server. # @@ -63,6 +63,9 @@ # # Rank needed to take out starbase (3 = Commander) SBRANK=3 +# +# Planets needed to take out starbase +SBPLANETS=5 # # Use Chaos mode (0 = no, 1 = yes) CHAOS=0 From vanilla-devel at us.netrek.org Tue Aug 15 05:16:29 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:13 2005 Subject: [Vanilla Devel] CVS update: Vanilla/ntserv Message-ID: <200008151016.e7FAGTD07469@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 5:16 Author: xyzzy Update of /home/netrek/cvsroot/Vanilla/ntserv In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7466 Modified Files: data.c data.h getentry.c interface.c main.c sysdefaults.h Log Message: Added a new default, "SBPLANETS", which is the number of planets necessary to get a SB, previously hardcoded at 5. In chaos mode, the planet requirement remains, previously it was hardcoded at 0 for chaos. The system defaults page in the MOTD will tell players the value. I didn't add this default to GUM. **************************************** Index: Vanilla/ntserv/data.c diff -u Vanilla/ntserv/data.c:1.15 Vanilla/ntserv/data.c:1.16 --- Vanilla/ntserv/data.c:1.15 Sat May 27 04:46:25 2000 +++ Vanilla/ntserv/data.c Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: data.c,v 1.15 2000/05/27 09:46:25 jeffno Exp $ +/* $Id: data.c,v 1.16 2000/08/15 10:16:28 xyzzy Exp $ */ #include "../ntserv/copyright.h" @@ -80,6 +80,7 @@ int errorlevel=1; /* controlling amount of error info */ int dead_warp=0; /* use warp 14 for death detection */ int surrenderStart=1; /* # of planets to start surrender counter */ +int sbplanets=5; /* # of planets to get a base */ char *shipnames[NUM_TYPES] = { "Scout", "Destroyer", "Cruiser", "Battleship", Index: Vanilla/ntserv/data.h diff -u Vanilla/ntserv/data.h:1.12 Vanilla/ntserv/data.h:1.13 --- Vanilla/ntserv/data.h:1.12 Sat May 27 04:46:25 2000 +++ Vanilla/ntserv/data.h Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: data.h,v 1.12 2000/05/27 09:46:25 jeffno Exp $ +/* $Id: data.h,v 1.13 2000/08/15 10:16:28 xyzzy Exp $ */ #ifndef _h_data @@ -124,6 +124,7 @@ extern int errorlevel; extern int dead_warp; extern int surrenderStart; +extern int sbplanets; #define WP_PLASMA 0 Index: Vanilla/ntserv/getentry.c diff -u Vanilla/ntserv/getentry.c:1.6 Vanilla/ntserv/getentry.c:1.7 --- Vanilla/ntserv/getentry.c:1.6 Wed Dec 29 18:14:48 1999 +++ Vanilla/ntserv/getentry.c Tue Aug 15 05:16:28 2000 @@ -199,7 +199,7 @@ teamPick= -1; continue; } - if (numPlanets(1<p_team) < 5 && !chaos && !topgun) { + if (type == STARBASE && numPlanets(me->p_team) < sbplanets && !topgun) { new_warning(61,"Your team's stuggling economy cannot support such an expenditure!"); return; } Index: Vanilla/ntserv/main.c diff -u Vanilla/ntserv/main.c:1.18 Vanilla/ntserv/main.c:1.19 --- Vanilla/ntserv/main.c:1.18 Fri Feb 25 01:43:21 2000 +++ Vanilla/ntserv/main.c Tue Aug 15 05:16:28 2000 @@ -580,6 +580,9 @@ sendMotdLine(buf); } + sprintf(buf, "%-30s: %d", "Planets Required for SB", sbplanets); + sendMotdLine(buf); + sprintf(buf, "%-30s: ", "Hidden Mode"); switch (hiddenenemy) { case 0: Index: Vanilla/ntserv/sysdefaults.h diff -u Vanilla/ntserv/sysdefaults.h:1.10 Vanilla/ntserv/sysdefaults.h:1.11 --- Vanilla/ntserv/sysdefaults.h:1.10 Fri Jun 23 04:12:58 2000 +++ Vanilla/ntserv/sysdefaults.h Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: sysdefaults.h,v 1.10 2000/06/23 09:12:58 cameron Exp $ */ +/* $Id: sysdefaults.h,v 1.11 2000/08/15 10:16:28 xyzzy Exp $ */ /* structure for default values that are represented as array of flags */ struct sysdef_array { @@ -96,8 +96,10 @@ "Kills required before plasma granted on refit" }, { "SBRANK", SYSDEF_INT, &sbrank, "Rank required to refit to Starbase" }, + { "SBPLANETS", SYSDEF_INT, &sbplanets, + "Minimum planets for Starbase" }, { "CHAOS", SYSDEF_INT, &chaosmode, - "Enable CHAOS mode" }, + "Enable CHAOS mode" }, #ifdef SNAKEPATROL { "SNAKEPATROL", SYSDEF_INT, &snakepatrol, "Strange snake torpedo stream (unimplemented)" }, From vanilla-devel at us.netrek.org Tue Aug 15 05:18:12 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:13 2005 Subject: [Vanilla Devel] CVS update: Vanilla/docs Message-ID: <200008151018.e7FAICZ07497@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 5:18 Author: xyzzy Update of /home/netrek/cvsroot/Vanilla/docs In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7494 Modified Files: sample_sysdef Log Message: Add the "SBPLANETS" sysdef setting. Planets needed to checkout a SB, normally set to 5. **************************************** Index: Vanilla/docs/sample_sysdef diff -u Vanilla/docs/sample_sysdef:1.10 Vanilla/docs/sample_sysdef:1.11 --- Vanilla/docs/sample_sysdef:1.10 Sat May 27 04:58:16 2000 +++ Vanilla/docs/sample_sysdef Tue Aug 15 05:18:12 2000 @@ -1,4 +1,4 @@ -# $Id: sample_sysdef,v 1.10 2000/05/27 09:58:16 jeffno Exp $ +# $Id: sample_sysdef,v 1.11 2000/08/15 10:18:12 xyzzy Exp $ # # The sample sysdef file shipped with the server. # @@ -63,6 +63,9 @@ # # Rank needed to take out starbase (3 = Commander) SBRANK=3 +# +# Planets needed to take out starbase +SBPLANETS=5 # # Use Chaos mode (0 = no, 1 = yes) CHAOS=0 From vanilla-devel at us.netrek.org Tue Aug 15 05:16:29 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:13 2005 Subject: [Vanilla Devel] CVS update: Vanilla/ntserv Message-ID: <200008151016.e7FAGTD07469@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 5:16 Author: xyzzy Update of /home/netrek/cvsroot/Vanilla/ntserv In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7466 Modified Files: data.c data.h getentry.c interface.c main.c sysdefaults.h Log Message: Added a new default, "SBPLANETS", which is the number of planets necessary to get a SB, previously hardcoded at 5. In chaos mode, the planet requirement remains, previously it was hardcoded at 0 for chaos. The system defaults page in the MOTD will tell players the value. I didn't add this default to GUM. **************************************** Index: Vanilla/ntserv/data.c diff -u Vanilla/ntserv/data.c:1.15 Vanilla/ntserv/data.c:1.16 --- Vanilla/ntserv/data.c:1.15 Sat May 27 04:46:25 2000 +++ Vanilla/ntserv/data.c Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: data.c,v 1.15 2000/05/27 09:46:25 jeffno Exp $ +/* $Id: data.c,v 1.16 2000/08/15 10:16:28 xyzzy Exp $ */ #include "../ntserv/copyright.h" @@ -80,6 +80,7 @@ int errorlevel=1; /* controlling amount of error info */ int dead_warp=0; /* use warp 14 for death detection */ int surrenderStart=1; /* # of planets to start surrender counter */ +int sbplanets=5; /* # of planets to get a base */ char *shipnames[NUM_TYPES] = { "Scout", "Destroyer", "Cruiser", "Battleship", Index: Vanilla/ntserv/data.h diff -u Vanilla/ntserv/data.h:1.12 Vanilla/ntserv/data.h:1.13 --- Vanilla/ntserv/data.h:1.12 Sat May 27 04:46:25 2000 +++ Vanilla/ntserv/data.h Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: data.h,v 1.12 2000/05/27 09:46:25 jeffno Exp $ +/* $Id: data.h,v 1.13 2000/08/15 10:16:28 xyzzy Exp $ */ #ifndef _h_data @@ -124,6 +124,7 @@ extern int errorlevel; extern int dead_warp; extern int surrenderStart; +extern int sbplanets; #define WP_PLASMA 0 Index: Vanilla/ntserv/getentry.c diff -u Vanilla/ntserv/getentry.c:1.6 Vanilla/ntserv/getentry.c:1.7 --- Vanilla/ntserv/getentry.c:1.6 Wed Dec 29 18:14:48 1999 +++ Vanilla/ntserv/getentry.c Tue Aug 15 05:16:28 2000 @@ -199,7 +199,7 @@ teamPick= -1; continue; } - if (numPlanets(1<p_team) < 5 && !chaos && !topgun) { + if (type == STARBASE && numPlanets(me->p_team) < sbplanets && !topgun) { new_warning(61,"Your team's stuggling economy cannot support such an expenditure!"); return; } Index: Vanilla/ntserv/main.c diff -u Vanilla/ntserv/main.c:1.18 Vanilla/ntserv/main.c:1.19 --- Vanilla/ntserv/main.c:1.18 Fri Feb 25 01:43:21 2000 +++ Vanilla/ntserv/main.c Tue Aug 15 05:16:28 2000 @@ -580,6 +580,9 @@ sendMotdLine(buf); } + sprintf(buf, "%-30s: %d", "Planets Required for SB", sbplanets); + sendMotdLine(buf); + sprintf(buf, "%-30s: ", "Hidden Mode"); switch (hiddenenemy) { case 0: Index: Vanilla/ntserv/sysdefaults.h diff -u Vanilla/ntserv/sysdefaults.h:1.10 Vanilla/ntserv/sysdefaults.h:1.11 --- Vanilla/ntserv/sysdefaults.h:1.10 Fri Jun 23 04:12:58 2000 +++ Vanilla/ntserv/sysdefaults.h Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: sysdefaults.h,v 1.10 2000/06/23 09:12:58 cameron Exp $ */ +/* $Id: sysdefaults.h,v 1.11 2000/08/15 10:16:28 xyzzy Exp $ */ /* structure for default values that are represented as array of flags */ struct sysdef_array { @@ -96,8 +96,10 @@ "Kills required before plasma granted on refit" }, { "SBRANK", SYSDEF_INT, &sbrank, "Rank required to refit to Starbase" }, + { "SBPLANETS", SYSDEF_INT, &sbplanets, + "Minimum planets for Starbase" }, { "CHAOS", SYSDEF_INT, &chaosmode, - "Enable CHAOS mode" }, + "Enable CHAOS mode" }, #ifdef SNAKEPATROL { "SNAKEPATROL", SYSDEF_INT, &snakepatrol, "Strange snake torpedo stream (unimplemented)" }, From vanilla-devel at us.netrek.org Tue Aug 15 05:18:12 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:13 2005 Subject: [Vanilla Devel] CVS update: Vanilla/docs Message-ID: <200008151018.e7FAICZ07497@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 5:18 Author: xyzzy Update of /home/netrek/cvsroot/Vanilla/docs In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7494 Modified Files: sample_sysdef Log Message: Add the "SBPLANETS" sysdef setting. Planets needed to checkout a SB, normally set to 5. **************************************** Index: Vanilla/docs/sample_sysdef diff -u Vanilla/docs/sample_sysdef:1.10 Vanilla/docs/sample_sysdef:1.11 --- Vanilla/docs/sample_sysdef:1.10 Sat May 27 04:58:16 2000 +++ Vanilla/docs/sample_sysdef Tue Aug 15 05:18:12 2000 @@ -1,4 +1,4 @@ -# $Id: sample_sysdef,v 1.10 2000/05/27 09:58:16 jeffno Exp $ +# $Id: sample_sysdef,v 1.11 2000/08/15 10:18:12 xyzzy Exp $ # # The sample sysdef file shipped with the server. # @@ -63,6 +63,9 @@ # # Rank needed to take out starbase (3 = Commander) SBRANK=3 +# +# Planets needed to take out starbase +SBPLANETS=5 # # Use Chaos mode (0 = no, 1 = yes) CHAOS=0 From vanilla-devel at us.netrek.org Tue Aug 15 05:16:29 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:13 2005 Subject: [Vanilla Devel] CVS update: Vanilla/ntserv Message-ID: <200008151016.e7FAGTD07469@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 5:16 Author: xyzzy Update of /home/netrek/cvsroot/Vanilla/ntserv In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7466 Modified Files: data.c data.h getentry.c interface.c main.c sysdefaults.h Log Message: Added a new default, "SBPLANETS", which is the number of planets necessary to get a SB, previously hardcoded at 5. In chaos mode, the planet requirement remains, previously it was hardcoded at 0 for chaos. The system defaults page in the MOTD will tell players the value. I didn't add this default to GUM. **************************************** Index: Vanilla/ntserv/data.c diff -u Vanilla/ntserv/data.c:1.15 Vanilla/ntserv/data.c:1.16 --- Vanilla/ntserv/data.c:1.15 Sat May 27 04:46:25 2000 +++ Vanilla/ntserv/data.c Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: data.c,v 1.15 2000/05/27 09:46:25 jeffno Exp $ +/* $Id: data.c,v 1.16 2000/08/15 10:16:28 xyzzy Exp $ */ #include "../ntserv/copyright.h" @@ -80,6 +80,7 @@ int errorlevel=1; /* controlling amount of error info */ int dead_warp=0; /* use warp 14 for death detection */ int surrenderStart=1; /* # of planets to start surrender counter */ +int sbplanets=5; /* # of planets to get a base */ char *shipnames[NUM_TYPES] = { "Scout", "Destroyer", "Cruiser", "Battleship", Index: Vanilla/ntserv/data.h diff -u Vanilla/ntserv/data.h:1.12 Vanilla/ntserv/data.h:1.13 --- Vanilla/ntserv/data.h:1.12 Sat May 27 04:46:25 2000 +++ Vanilla/ntserv/data.h Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: data.h,v 1.12 2000/05/27 09:46:25 jeffno Exp $ +/* $Id: data.h,v 1.13 2000/08/15 10:16:28 xyzzy Exp $ */ #ifndef _h_data @@ -124,6 +124,7 @@ extern int errorlevel; extern int dead_warp; extern int surrenderStart; +extern int sbplanets; #define WP_PLASMA 0 Index: Vanilla/ntserv/getentry.c diff -u Vanilla/ntserv/getentry.c:1.6 Vanilla/ntserv/getentry.c:1.7 --- Vanilla/ntserv/getentry.c:1.6 Wed Dec 29 18:14:48 1999 +++ Vanilla/ntserv/getentry.c Tue Aug 15 05:16:28 2000 @@ -199,7 +199,7 @@ teamPick= -1; continue; } - if (numPlanets(1<p_team) < 5 && !chaos && !topgun) { + if (type == STARBASE && numPlanets(me->p_team) < sbplanets && !topgun) { new_warning(61,"Your team's stuggling economy cannot support such an expenditure!"); return; } Index: Vanilla/ntserv/main.c diff -u Vanilla/ntserv/main.c:1.18 Vanilla/ntserv/main.c:1.19 --- Vanilla/ntserv/main.c:1.18 Fri Feb 25 01:43:21 2000 +++ Vanilla/ntserv/main.c Tue Aug 15 05:16:28 2000 @@ -580,6 +580,9 @@ sendMotdLine(buf); } + sprintf(buf, "%-30s: %d", "Planets Required for SB", sbplanets); + sendMotdLine(buf); + sprintf(buf, "%-30s: ", "Hidden Mode"); switch (hiddenenemy) { case 0: Index: Vanilla/ntserv/sysdefaults.h diff -u Vanilla/ntserv/sysdefaults.h:1.10 Vanilla/ntserv/sysdefaults.h:1.11 --- Vanilla/ntserv/sysdefaults.h:1.10 Fri Jun 23 04:12:58 2000 +++ Vanilla/ntserv/sysdefaults.h Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: sysdefaults.h,v 1.10 2000/06/23 09:12:58 cameron Exp $ */ +/* $Id: sysdefaults.h,v 1.11 2000/08/15 10:16:28 xyzzy Exp $ */ /* structure for default values that are represented as array of flags */ struct sysdef_array { @@ -96,8 +96,10 @@ "Kills required before plasma granted on refit" }, { "SBRANK", SYSDEF_INT, &sbrank, "Rank required to refit to Starbase" }, + { "SBPLANETS", SYSDEF_INT, &sbplanets, + "Minimum planets for Starbase" }, { "CHAOS", SYSDEF_INT, &chaosmode, - "Enable CHAOS mode" }, + "Enable CHAOS mode" }, #ifdef SNAKEPATROL { "SNAKEPATROL", SYSDEF_INT, &snakepatrol, "Strange snake torpedo stream (unimplemented)" }, From vanilla-devel at us.netrek.org Tue Aug 15 05:18:12 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:13 2005 Subject: [Vanilla Devel] CVS update: Vanilla/docs Message-ID: <200008151018.e7FAICZ07497@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 5:18 Author: xyzzy Update of /home/netrek/cvsroot/Vanilla/docs In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7494 Modified Files: sample_sysdef Log Message: Add the "SBPLANETS" sysdef setting. Planets needed to checkout a SB, normally set to 5. **************************************** Index: Vanilla/docs/sample_sysdef diff -u Vanilla/docs/sample_sysdef:1.10 Vanilla/docs/sample_sysdef:1.11 --- Vanilla/docs/sample_sysdef:1.10 Sat May 27 04:58:16 2000 +++ Vanilla/docs/sample_sysdef Tue Aug 15 05:18:12 2000 @@ -1,4 +1,4 @@ -# $Id: sample_sysdef,v 1.10 2000/05/27 09:58:16 jeffno Exp $ +# $Id: sample_sysdef,v 1.11 2000/08/15 10:18:12 xyzzy Exp $ # # The sample sysdef file shipped with the server. # @@ -63,6 +63,9 @@ # # Rank needed to take out starbase (3 = Commander) SBRANK=3 +# +# Planets needed to take out starbase +SBPLANETS=5 # # Use Chaos mode (0 = no, 1 = yes) CHAOS=0 From vanilla-devel at us.netrek.org Tue Aug 15 05:16:29 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:14 2005 Subject: [Vanilla Devel] CVS update: Vanilla/ntserv Message-ID: <200008151016.e7FAGTD07469@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 5:16 Author: xyzzy Update of /home/netrek/cvsroot/Vanilla/ntserv In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7466 Modified Files: data.c data.h getentry.c interface.c main.c sysdefaults.h Log Message: Added a new default, "SBPLANETS", which is the number of planets necessary to get a SB, previously hardcoded at 5. In chaos mode, the planet requirement remains, previously it was hardcoded at 0 for chaos. The system defaults page in the MOTD will tell players the value. I didn't add this default to GUM. **************************************** Index: Vanilla/ntserv/data.c diff -u Vanilla/ntserv/data.c:1.15 Vanilla/ntserv/data.c:1.16 --- Vanilla/ntserv/data.c:1.15 Sat May 27 04:46:25 2000 +++ Vanilla/ntserv/data.c Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: data.c,v 1.15 2000/05/27 09:46:25 jeffno Exp $ +/* $Id: data.c,v 1.16 2000/08/15 10:16:28 xyzzy Exp $ */ #include "../ntserv/copyright.h" @@ -80,6 +80,7 @@ int errorlevel=1; /* controlling amount of error info */ int dead_warp=0; /* use warp 14 for death detection */ int surrenderStart=1; /* # of planets to start surrender counter */ +int sbplanets=5; /* # of planets to get a base */ char *shipnames[NUM_TYPES] = { "Scout", "Destroyer", "Cruiser", "Battleship", Index: Vanilla/ntserv/data.h diff -u Vanilla/ntserv/data.h:1.12 Vanilla/ntserv/data.h:1.13 --- Vanilla/ntserv/data.h:1.12 Sat May 27 04:46:25 2000 +++ Vanilla/ntserv/data.h Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: data.h,v 1.12 2000/05/27 09:46:25 jeffno Exp $ +/* $Id: data.h,v 1.13 2000/08/15 10:16:28 xyzzy Exp $ */ #ifndef _h_data @@ -124,6 +124,7 @@ extern int errorlevel; extern int dead_warp; extern int surrenderStart; +extern int sbplanets; #define WP_PLASMA 0 Index: Vanilla/ntserv/getentry.c diff -u Vanilla/ntserv/getentry.c:1.6 Vanilla/ntserv/getentry.c:1.7 --- Vanilla/ntserv/getentry.c:1.6 Wed Dec 29 18:14:48 1999 +++ Vanilla/ntserv/getentry.c Tue Aug 15 05:16:28 2000 @@ -199,7 +199,7 @@ teamPick= -1; continue; } - if (numPlanets(1<p_team) < 5 && !chaos && !topgun) { + if (type == STARBASE && numPlanets(me->p_team) < sbplanets && !topgun) { new_warning(61,"Your team's stuggling economy cannot support such an expenditure!"); return; } Index: Vanilla/ntserv/main.c diff -u Vanilla/ntserv/main.c:1.18 Vanilla/ntserv/main.c:1.19 --- Vanilla/ntserv/main.c:1.18 Fri Feb 25 01:43:21 2000 +++ Vanilla/ntserv/main.c Tue Aug 15 05:16:28 2000 @@ -580,6 +580,9 @@ sendMotdLine(buf); } + sprintf(buf, "%-30s: %d", "Planets Required for SB", sbplanets); + sendMotdLine(buf); + sprintf(buf, "%-30s: ", "Hidden Mode"); switch (hiddenenemy) { case 0: Index: Vanilla/ntserv/sysdefaults.h diff -u Vanilla/ntserv/sysdefaults.h:1.10 Vanilla/ntserv/sysdefaults.h:1.11 --- Vanilla/ntserv/sysdefaults.h:1.10 Fri Jun 23 04:12:58 2000 +++ Vanilla/ntserv/sysdefaults.h Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: sysdefaults.h,v 1.10 2000/06/23 09:12:58 cameron Exp $ */ +/* $Id: sysdefaults.h,v 1.11 2000/08/15 10:16:28 xyzzy Exp $ */ /* structure for default values that are represented as array of flags */ struct sysdef_array { @@ -96,8 +96,10 @@ "Kills required before plasma granted on refit" }, { "SBRANK", SYSDEF_INT, &sbrank, "Rank required to refit to Starbase" }, + { "SBPLANETS", SYSDEF_INT, &sbplanets, + "Minimum planets for Starbase" }, { "CHAOS", SYSDEF_INT, &chaosmode, - "Enable CHAOS mode" }, + "Enable CHAOS mode" }, #ifdef SNAKEPATROL { "SNAKEPATROL", SYSDEF_INT, &snakepatrol, "Strange snake torpedo stream (unimplemented)" }, From vanilla-devel at us.netrek.org Tue Aug 15 05:18:12 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:14 2005 Subject: [Vanilla Devel] CVS update: Vanilla/docs Message-ID: <200008151018.e7FAICZ07497@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 5:18 Author: xyzzy Update of /home/netrek/cvsroot/Vanilla/docs In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7494 Modified Files: sample_sysdef Log Message: Add the "SBPLANETS" sysdef setting. Planets needed to checkout a SB, normally set to 5. **************************************** Index: Vanilla/docs/sample_sysdef diff -u Vanilla/docs/sample_sysdef:1.10 Vanilla/docs/sample_sysdef:1.11 --- Vanilla/docs/sample_sysdef:1.10 Sat May 27 04:58:16 2000 +++ Vanilla/docs/sample_sysdef Tue Aug 15 05:18:12 2000 @@ -1,4 +1,4 @@ -# $Id: sample_sysdef,v 1.10 2000/05/27 09:58:16 jeffno Exp $ +# $Id: sample_sysdef,v 1.11 2000/08/15 10:18:12 xyzzy Exp $ # # The sample sysdef file shipped with the server. # @@ -63,6 +63,9 @@ # # Rank needed to take out starbase (3 = Commander) SBRANK=3 +# +# Planets needed to take out starbase +SBPLANETS=5 # # Use Chaos mode (0 = no, 1 = yes) CHAOS=0 From vanilla-devel at us.netrek.org Tue Aug 15 05:16:29 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:14 2005 Subject: [Vanilla Devel] CVS update: Vanilla/ntserv Message-ID: <200008151016.e7FAGTD07469@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 5:16 Author: xyzzy Update of /home/netrek/cvsroot/Vanilla/ntserv In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7466 Modified Files: data.c data.h getentry.c interface.c main.c sysdefaults.h Log Message: Added a new default, "SBPLANETS", which is the number of planets necessary to get a SB, previously hardcoded at 5. In chaos mode, the planet requirement remains, previously it was hardcoded at 0 for chaos. The system defaults page in the MOTD will tell players the value. I didn't add this default to GUM. **************************************** Index: Vanilla/ntserv/data.c diff -u Vanilla/ntserv/data.c:1.15 Vanilla/ntserv/data.c:1.16 --- Vanilla/ntserv/data.c:1.15 Sat May 27 04:46:25 2000 +++ Vanilla/ntserv/data.c Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: data.c,v 1.15 2000/05/27 09:46:25 jeffno Exp $ +/* $Id: data.c,v 1.16 2000/08/15 10:16:28 xyzzy Exp $ */ #include "../ntserv/copyright.h" @@ -80,6 +80,7 @@ int errorlevel=1; /* controlling amount of error info */ int dead_warp=0; /* use warp 14 for death detection */ int surrenderStart=1; /* # of planets to start surrender counter */ +int sbplanets=5; /* # of planets to get a base */ char *shipnames[NUM_TYPES] = { "Scout", "Destroyer", "Cruiser", "Battleship", Index: Vanilla/ntserv/data.h diff -u Vanilla/ntserv/data.h:1.12 Vanilla/ntserv/data.h:1.13 --- Vanilla/ntserv/data.h:1.12 Sat May 27 04:46:25 2000 +++ Vanilla/ntserv/data.h Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: data.h,v 1.12 2000/05/27 09:46:25 jeffno Exp $ +/* $Id: data.h,v 1.13 2000/08/15 10:16:28 xyzzy Exp $ */ #ifndef _h_data @@ -124,6 +124,7 @@ extern int errorlevel; extern int dead_warp; extern int surrenderStart; +extern int sbplanets; #define WP_PLASMA 0 Index: Vanilla/ntserv/getentry.c diff -u Vanilla/ntserv/getentry.c:1.6 Vanilla/ntserv/getentry.c:1.7 --- Vanilla/ntserv/getentry.c:1.6 Wed Dec 29 18:14:48 1999 +++ Vanilla/ntserv/getentry.c Tue Aug 15 05:16:28 2000 @@ -199,7 +199,7 @@ teamPick= -1; continue; } - if (numPlanets(1<p_team) < 5 && !chaos && !topgun) { + if (type == STARBASE && numPlanets(me->p_team) < sbplanets && !topgun) { new_warning(61,"Your team's stuggling economy cannot support such an expenditure!"); return; } Index: Vanilla/ntserv/main.c diff -u Vanilla/ntserv/main.c:1.18 Vanilla/ntserv/main.c:1.19 --- Vanilla/ntserv/main.c:1.18 Fri Feb 25 01:43:21 2000 +++ Vanilla/ntserv/main.c Tue Aug 15 05:16:28 2000 @@ -580,6 +580,9 @@ sendMotdLine(buf); } + sprintf(buf, "%-30s: %d", "Planets Required for SB", sbplanets); + sendMotdLine(buf); + sprintf(buf, "%-30s: ", "Hidden Mode"); switch (hiddenenemy) { case 0: Index: Vanilla/ntserv/sysdefaults.h diff -u Vanilla/ntserv/sysdefaults.h:1.10 Vanilla/ntserv/sysdefaults.h:1.11 --- Vanilla/ntserv/sysdefaults.h:1.10 Fri Jun 23 04:12:58 2000 +++ Vanilla/ntserv/sysdefaults.h Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: sysdefaults.h,v 1.10 2000/06/23 09:12:58 cameron Exp $ */ +/* $Id: sysdefaults.h,v 1.11 2000/08/15 10:16:28 xyzzy Exp $ */ /* structure for default values that are represented as array of flags */ struct sysdef_array { @@ -96,8 +96,10 @@ "Kills required before plasma granted on refit" }, { "SBRANK", SYSDEF_INT, &sbrank, "Rank required to refit to Starbase" }, + { "SBPLANETS", SYSDEF_INT, &sbplanets, + "Minimum planets for Starbase" }, { "CHAOS", SYSDEF_INT, &chaosmode, - "Enable CHAOS mode" }, + "Enable CHAOS mode" }, #ifdef SNAKEPATROL { "SNAKEPATROL", SYSDEF_INT, &snakepatrol, "Strange snake torpedo stream (unimplemented)" }, From vanilla-devel at us.netrek.org Tue Aug 15 05:18:12 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:14 2005 Subject: [Vanilla Devel] CVS update: Vanilla/docs Message-ID: <200008151018.e7FAICZ07497@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 5:18 Author: xyzzy Update of /home/netrek/cvsroot/Vanilla/docs In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7494 Modified Files: sample_sysdef Log Message: Add the "SBPLANETS" sysdef setting. Planets needed to checkout a SB, normally set to 5. **************************************** Index: Vanilla/docs/sample_sysdef diff -u Vanilla/docs/sample_sysdef:1.10 Vanilla/docs/sample_sysdef:1.11 --- Vanilla/docs/sample_sysdef:1.10 Sat May 27 04:58:16 2000 +++ Vanilla/docs/sample_sysdef Tue Aug 15 05:18:12 2000 @@ -1,4 +1,4 @@ -# $Id: sample_sysdef,v 1.10 2000/05/27 09:58:16 jeffno Exp $ +# $Id: sample_sysdef,v 1.11 2000/08/15 10:18:12 xyzzy Exp $ # # The sample sysdef file shipped with the server. # @@ -63,6 +63,9 @@ # # Rank needed to take out starbase (3 = Commander) SBRANK=3 +# +# Planets needed to take out starbase +SBPLANETS=5 # # Use Chaos mode (0 = no, 1 = yes) CHAOS=0 From vanilla-devel at us.netrek.org Tue Aug 15 05:16:29 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:14 2005 Subject: [Vanilla Devel] CVS update: Vanilla/ntserv Message-ID: <200008151016.e7FAGTD07469@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 5:16 Author: xyzzy Update of /home/netrek/cvsroot/Vanilla/ntserv In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7466 Modified Files: data.c data.h getentry.c interface.c main.c sysdefaults.h Log Message: Added a new default, "SBPLANETS", which is the number of planets necessary to get a SB, previously hardcoded at 5. In chaos mode, the planet requirement remains, previously it was hardcoded at 0 for chaos. The system defaults page in the MOTD will tell players the value. I didn't add this default to GUM. **************************************** Index: Vanilla/ntserv/data.c diff -u Vanilla/ntserv/data.c:1.15 Vanilla/ntserv/data.c:1.16 --- Vanilla/ntserv/data.c:1.15 Sat May 27 04:46:25 2000 +++ Vanilla/ntserv/data.c Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: data.c,v 1.15 2000/05/27 09:46:25 jeffno Exp $ +/* $Id: data.c,v 1.16 2000/08/15 10:16:28 xyzzy Exp $ */ #include "../ntserv/copyright.h" @@ -80,6 +80,7 @@ int errorlevel=1; /* controlling amount of error info */ int dead_warp=0; /* use warp 14 for death detection */ int surrenderStart=1; /* # of planets to start surrender counter */ +int sbplanets=5; /* # of planets to get a base */ char *shipnames[NUM_TYPES] = { "Scout", "Destroyer", "Cruiser", "Battleship", Index: Vanilla/ntserv/data.h diff -u Vanilla/ntserv/data.h:1.12 Vanilla/ntserv/data.h:1.13 --- Vanilla/ntserv/data.h:1.12 Sat May 27 04:46:25 2000 +++ Vanilla/ntserv/data.h Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: data.h,v 1.12 2000/05/27 09:46:25 jeffno Exp $ +/* $Id: data.h,v 1.13 2000/08/15 10:16:28 xyzzy Exp $ */ #ifndef _h_data @@ -124,6 +124,7 @@ extern int errorlevel; extern int dead_warp; extern int surrenderStart; +extern int sbplanets; #define WP_PLASMA 0 Index: Vanilla/ntserv/getentry.c diff -u Vanilla/ntserv/getentry.c:1.6 Vanilla/ntserv/getentry.c:1.7 --- Vanilla/ntserv/getentry.c:1.6 Wed Dec 29 18:14:48 1999 +++ Vanilla/ntserv/getentry.c Tue Aug 15 05:16:28 2000 @@ -199,7 +199,7 @@ teamPick= -1; continue; } - if (numPlanets(1<p_team) < 5 && !chaos && !topgun) { + if (type == STARBASE && numPlanets(me->p_team) < sbplanets && !topgun) { new_warning(61,"Your team's stuggling economy cannot support such an expenditure!"); return; } Index: Vanilla/ntserv/main.c diff -u Vanilla/ntserv/main.c:1.18 Vanilla/ntserv/main.c:1.19 --- Vanilla/ntserv/main.c:1.18 Fri Feb 25 01:43:21 2000 +++ Vanilla/ntserv/main.c Tue Aug 15 05:16:28 2000 @@ -580,6 +580,9 @@ sendMotdLine(buf); } + sprintf(buf, "%-30s: %d", "Planets Required for SB", sbplanets); + sendMotdLine(buf); + sprintf(buf, "%-30s: ", "Hidden Mode"); switch (hiddenenemy) { case 0: Index: Vanilla/ntserv/sysdefaults.h diff -u Vanilla/ntserv/sysdefaults.h:1.10 Vanilla/ntserv/sysdefaults.h:1.11 --- Vanilla/ntserv/sysdefaults.h:1.10 Fri Jun 23 04:12:58 2000 +++ Vanilla/ntserv/sysdefaults.h Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: sysdefaults.h,v 1.10 2000/06/23 09:12:58 cameron Exp $ */ +/* $Id: sysdefaults.h,v 1.11 2000/08/15 10:16:28 xyzzy Exp $ */ /* structure for default values that are represented as array of flags */ struct sysdef_array { @@ -96,8 +96,10 @@ "Kills required before plasma granted on refit" }, { "SBRANK", SYSDEF_INT, &sbrank, "Rank required to refit to Starbase" }, + { "SBPLANETS", SYSDEF_INT, &sbplanets, + "Minimum planets for Starbase" }, { "CHAOS", SYSDEF_INT, &chaosmode, - "Enable CHAOS mode" }, + "Enable CHAOS mode" }, #ifdef SNAKEPATROL { "SNAKEPATROL", SYSDEF_INT, &snakepatrol, "Strange snake torpedo stream (unimplemented)" }, From vanilla-devel at us.netrek.org Tue Aug 15 05:18:12 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:14 2005 Subject: [Vanilla Devel] CVS update: Vanilla/docs Message-ID: <200008151018.e7FAICZ07497@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 5:18 Author: xyzzy Update of /home/netrek/cvsroot/Vanilla/docs In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7494 Modified Files: sample_sysdef Log Message: Add the "SBPLANETS" sysdef setting. Planets needed to checkout a SB, normally set to 5. **************************************** Index: Vanilla/docs/sample_sysdef diff -u Vanilla/docs/sample_sysdef:1.10 Vanilla/docs/sample_sysdef:1.11 --- Vanilla/docs/sample_sysdef:1.10 Sat May 27 04:58:16 2000 +++ Vanilla/docs/sample_sysdef Tue Aug 15 05:18:12 2000 @@ -1,4 +1,4 @@ -# $Id: sample_sysdef,v 1.10 2000/05/27 09:58:16 jeffno Exp $ +# $Id: sample_sysdef,v 1.11 2000/08/15 10:18:12 xyzzy Exp $ # # The sample sysdef file shipped with the server. # @@ -63,6 +63,9 @@ # # Rank needed to take out starbase (3 = Commander) SBRANK=3 +# +# Planets needed to take out starbase +SBPLANETS=5 # # Use Chaos mode (0 = no, 1 = yes) CHAOS=0 From vanilla-devel at us.netrek.org Tue Aug 15 05:16:29 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:14 2005 Subject: [Vanilla Devel] CVS update: Vanilla/ntserv Message-ID: <200008151016.e7FAGTD07469@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 5:16 Author: xyzzy Update of /home/netrek/cvsroot/Vanilla/ntserv In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7466 Modified Files: data.c data.h getentry.c interface.c main.c sysdefaults.h Log Message: Added a new default, "SBPLANETS", which is the number of planets necessary to get a SB, previously hardcoded at 5. In chaos mode, the planet requirement remains, previously it was hardcoded at 0 for chaos. The system defaults page in the MOTD will tell players the value. I didn't add this default to GUM. **************************************** Index: Vanilla/ntserv/data.c diff -u Vanilla/ntserv/data.c:1.15 Vanilla/ntserv/data.c:1.16 --- Vanilla/ntserv/data.c:1.15 Sat May 27 04:46:25 2000 +++ Vanilla/ntserv/data.c Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: data.c,v 1.15 2000/05/27 09:46:25 jeffno Exp $ +/* $Id: data.c,v 1.16 2000/08/15 10:16:28 xyzzy Exp $ */ #include "../ntserv/copyright.h" @@ -80,6 +80,7 @@ int errorlevel=1; /* controlling amount of error info */ int dead_warp=0; /* use warp 14 for death detection */ int surrenderStart=1; /* # of planets to start surrender counter */ +int sbplanets=5; /* # of planets to get a base */ char *shipnames[NUM_TYPES] = { "Scout", "Destroyer", "Cruiser", "Battleship", Index: Vanilla/ntserv/data.h diff -u Vanilla/ntserv/data.h:1.12 Vanilla/ntserv/data.h:1.13 --- Vanilla/ntserv/data.h:1.12 Sat May 27 04:46:25 2000 +++ Vanilla/ntserv/data.h Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: data.h,v 1.12 2000/05/27 09:46:25 jeffno Exp $ +/* $Id: data.h,v 1.13 2000/08/15 10:16:28 xyzzy Exp $ */ #ifndef _h_data @@ -124,6 +124,7 @@ extern int errorlevel; extern int dead_warp; extern int surrenderStart; +extern int sbplanets; #define WP_PLASMA 0 Index: Vanilla/ntserv/getentry.c diff -u Vanilla/ntserv/getentry.c:1.6 Vanilla/ntserv/getentry.c:1.7 --- Vanilla/ntserv/getentry.c:1.6 Wed Dec 29 18:14:48 1999 +++ Vanilla/ntserv/getentry.c Tue Aug 15 05:16:28 2000 @@ -199,7 +199,7 @@ teamPick= -1; continue; } - if (numPlanets(1<p_team) < 5 && !chaos && !topgun) { + if (type == STARBASE && numPlanets(me->p_team) < sbplanets && !topgun) { new_warning(61,"Your team's stuggling economy cannot support such an expenditure!"); return; } Index: Vanilla/ntserv/main.c diff -u Vanilla/ntserv/main.c:1.18 Vanilla/ntserv/main.c:1.19 --- Vanilla/ntserv/main.c:1.18 Fri Feb 25 01:43:21 2000 +++ Vanilla/ntserv/main.c Tue Aug 15 05:16:28 2000 @@ -580,6 +580,9 @@ sendMotdLine(buf); } + sprintf(buf, "%-30s: %d", "Planets Required for SB", sbplanets); + sendMotdLine(buf); + sprintf(buf, "%-30s: ", "Hidden Mode"); switch (hiddenenemy) { case 0: Index: Vanilla/ntserv/sysdefaults.h diff -u Vanilla/ntserv/sysdefaults.h:1.10 Vanilla/ntserv/sysdefaults.h:1.11 --- Vanilla/ntserv/sysdefaults.h:1.10 Fri Jun 23 04:12:58 2000 +++ Vanilla/ntserv/sysdefaults.h Tue Aug 15 05:16:28 2000 @@ -1,4 +1,4 @@ -/* $Id: sysdefaults.h,v 1.10 2000/06/23 09:12:58 cameron Exp $ */ +/* $Id: sysdefaults.h,v 1.11 2000/08/15 10:16:28 xyzzy Exp $ */ /* structure for default values that are represented as array of flags */ struct sysdef_array { @@ -96,8 +96,10 @@ "Kills required before plasma granted on refit" }, { "SBRANK", SYSDEF_INT, &sbrank, "Rank required to refit to Starbase" }, + { "SBPLANETS", SYSDEF_INT, &sbplanets, + "Minimum planets for Starbase" }, { "CHAOS", SYSDEF_INT, &chaosmode, - "Enable CHAOS mode" }, + "Enable CHAOS mode" }, #ifdef SNAKEPATROL { "SNAKEPATROL", SYSDEF_INT, &snakepatrol, "Strange snake torpedo stream (unimplemented)" }, From vanilla-devel at us.netrek.org Tue Aug 15 17:42:45 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:14 2005 Subject: [Vanilla Devel] CVS update: Vanilla/ntserv Message-ID: <200008152242.e7FMgjB07756@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 17:42 Author: cameron Update of /home/netrek/cvsroot/Vanilla/ntserv In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7753/ntserv Modified Files: sysdefaults.h Log Message: Fixed typo for DOOSHER. Add SBPLANETS to gum, along with Glade upgrade to version 0.5.9. **************************************** Index: Vanilla/ntserv/sysdefaults.h diff -u Vanilla/ntserv/sysdefaults.h:1.11 Vanilla/ntserv/sysdefaults.h:1.12 --- Vanilla/ntserv/sysdefaults.h:1.11 Tue Aug 15 05:16:28 2000 +++ Vanilla/ntserv/sysdefaults.h Tue Aug 15 17:42:44 2000 @@ -1,4 +1,4 @@ -/* $Id: sysdefaults.h,v 1.11 2000/08/15 10:16:28 xyzzy Exp $ */ +/* $Id: sysdefaults.h,v 1.12 2000/08/15 22:42:44 cameron Exp $ */ /* structure for default values that are represented as array of flags */ struct sysdef_array { @@ -63,7 +63,7 @@ "Record warnings in log for post-game parsing" }, #endif /* CHECKMESG */ { "DOOSHER", SYSDEF_INT, &doosher, - "Invent a message when a armies die in flight" }, + "Invent a message when armies die in flight" }, { "CHECKSCUM", SYSDEF_INT, &check_scum, "Check for multiple clients from same IP address" }, #ifdef CHAIN_REACTION From vanilla-devel at us.netrek.org Tue Aug 15 17:42:46 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:18 2005 Subject: [Vanilla Devel] CVS update: Vanilla/gum Message-ID: <200008152242.e7FMgkH07761@swashbuckler.fortress.real-time.com> Date: Tuesday August 15, 2000 @ 17:42 Author: cameron Update of /home/netrek/cvsroot/Vanilla/gum In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv7753/gum Modified Files: gum.xml main.c support.c support.h Log Message: Fixed typo for DOOSHER. Add SBPLANETS to gum, along with Glade upgrade to version 0.5.9. **************************************** Index: Vanilla/gum/gum.xml diff -u Vanilla/gum/gum.xml:1.8 Vanilla/gum/gum.xml:1.9 --- Vanilla/gum/gum.xml:1.8 Thu Dec 30 00:39:57 1999 +++ Vanilla/gum/gum.xml Tue Aug 15 17:42:45 2000 @@ -10,18 +10,11 @@ C False False - False False - True - True - True main.c main.h signals.c signals.h - support.c - support.h - @@ -35,6 +28,7 @@ Netrek Server GTK_WINDOW_TOPLEVEL GTK_WIN_POS_NONE + False True True False @@ -50,6 +44,7 @@ GtkMenuBar menubar + GTK_SHADOW_OUT 0 True @@ -177,11 +172,6 @@ GtkNotebook notebook1 10 - - 0 - True - True - True True True @@ -190,7 +180,11 @@ 2 2 False - 12 + + 0 + True + True + GtkVBox @@ -201,11 +195,6 @@ GtkLabel label140 - - 6 - False - True - GTK_JUSTIFY_CENTER False @@ -213,17 +202,17 @@ 1 0 0 + + 6 + False + True + GtkCList listener_port_list 9 - - 0 - True - True - select_row on_listener_port_list_select_row @@ -239,6 +228,11 @@ GTK_SELECTION_SINGLE True GTK_SHADOW_IN + + 0 + True + True + GtkLabel @@ -335,20 +329,27 @@ GtkTable table14 - - 6 - False - True - 4 3 False 0 0 + + 6 + False + True + GtkLabel label1354 + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 0 1 @@ -363,18 +364,18 @@ True True - + + + + GtkLabel + label1356 + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - label1356 0 1 @@ -389,18 +390,18 @@ True True - + + + + GtkLabel + label1357 + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - label1357 0 1 @@ -415,18 +416,21 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkEntry listener_entry_port + True + + changed + on_listener_entry_port_changed + Wed, 10 Feb 1999 12:57:52 GMT + + True + True + 6 + 1 2 @@ -441,21 +445,21 @@ True True + + + + GtkEntry + listener_entry_program True changed - on_listener_entry_port_changed - Wed, 10 Feb 1999 12:57:52 GMT + on_listener_entry_program_changed + Wed, 10 Feb 1999 12:58:01 GMT True True - 6 + 0 - - - - GtkEntry - listener_entry_program 1 2 @@ -470,21 +474,21 @@ True True + + + + GtkEntry + listener_entry_process True changed - on_listener_entry_program_changed - Wed, 10 Feb 1999 12:58:01 GMT + on_listener_entry_process_changed + Wed, 10 Feb 1999 12:58:10 GMT True True 0 - - - - GtkEntry - listener_entry_process 1 2 @@ -499,21 +503,21 @@ True True + + + + GtkEntry + listener_entry_arguments True changed - on_listener_entry_process_changed - Wed, 10 Feb 1999 12:58:10 GMT + on_listener_entry_arguments_changed + Wed, 10 Feb 1999 12:58:21 GMT True True 0 - - - - GtkEntry - listener_entry_arguments 1 2 @@ -528,21 +532,18 @@ True True - True - - changed - on_listener_entry_arguments_changed - Wed, 10 Feb 1999 12:58:21 GMT - - True - True - 0 - GtkLabel label1355 + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 0 1 @@ -557,18 +558,18 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkLabel label1358 + + GTK_JUSTIFY_CENTER + False + 0 + 0.5 + 10 + 0 2 3 @@ -583,18 +584,18 @@ True True - + + + + GtkLabel + label1359 + GTK_JUSTIFY_CENTER False 0 0.5 10 0 - - - - GtkLabel - label1359 2 3 @@ -609,18 +610,18 @@ True True - + + + + GtkLabel + label1360 + GTK_JUSTIFY_CENTER False 0 0.5 10 0 - - - - GtkLabel - label1360 2 3 @@ -635,18 +636,18 @@ True True - + + + + GtkLabel + label1361 + GTK_JUSTIFY_CENTER False 0 0.5 10 0 - - - - GtkLabel - label1361 2 3 @@ -661,13 +662,6 @@ True True - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 10 - 0 @@ -675,17 +669,17 @@ GtkHButtonBox hbuttonbox4 6 - - 0 - False - True - GTK_BUTTONBOX_END 30 85 27 7 0 + + 0 + False + True + GtkButton @@ -756,11 +750,6 @@ GtkLabel label139 - - 0 - False - True - GTK_JUSTIFY_CENTER False @@ -768,28 +757,28 @@ 1 0 0 + + 0 + False + True + GtkHBox hbox54 6 + False + 0 0 False True - False - 0 GtkLabel label141 - - 0 - True - True - GTK_JUSTIFY_LEFT @@ -798,22 +787,27 @@ 0.5 0 0 - - - - GtkHButtonBox - hbuttonbox3 0 True True + + + + GtkHButtonBox + hbuttonbox3 GTK_BUTTONBOX_END 30 85 27 7 0 + + 0 + True + True + GtkButton @@ -895,11 +889,6 @@ GtkLabel label1363 - - 0 - False - True - GTK_JUSTIFY_CENTER False @@ -907,16 +896,16 @@ 1 0 0 - - - - GtkCList - metaserver_list 0 - True + False True + + + + GtkCList + metaserver_list The list of metaservers that your server will send solicitation messages to in order to have players turn up. select_row @@ -933,6 +922,11 @@ GTK_SELECTION_SINGLE True GTK_SHADOW_IN + + 0 + True + True + GtkLabel @@ -1064,20 +1058,27 @@ GtkTable table15 - - 10 - False - True - 9 3 False 0 0 + + 10 + False + True + GtkLabel label1373 + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 0 1 @@ -1092,18 +1093,18 @@ True True - + + + + GtkLabel + label1374 + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - label1374 0 1 @@ -1118,18 +1119,18 @@ True True - + + + + GtkLabel + label1375 + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - label1375 0 1 @@ -1144,18 +1145,18 @@ True True - + + + + GtkLabel + label1376 + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - label1376 0 1 @@ -1170,18 +1171,18 @@ True True - + + + + GtkLabel + label1377 + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - label1377 0 1 @@ -1196,18 +1197,18 @@ True True - + + + + GtkLabel + label1378 + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - label1378 0 1 @@ -1222,18 +1223,18 @@ True True - + + + + GtkLabel + label1379 + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - label1379 0 1 @@ -1248,18 +1249,18 @@ True True - + + + + GtkLabel + label1380 + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - label1380 0 1 @@ -1274,18 +1275,18 @@ True True - + + + + GtkLabel + label1381 + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - label1381 0 1 @@ -1300,18 +1301,22 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkEntry metaserver_entry_port_number + The port number at the metaserver that your server is to send the solicitation messages to. The default port is 3521, and should not be changed unless the metaserver administrator says so. Choosing the wrong port will simply delist your server. + True + + changed + on_metaserver_changed + Thu, 27 May 1999 01:00:10 GMT + + True + True + 0 + 1 2 @@ -1326,22 +1331,22 @@ True True - The port number at the metaserver that your server is to send the solicitation messages to. The default port is 3521, and should not be changed unless the metaserver administrator says so. Choosing the wrong port will simply delist your server. + + + + GtkEntry + metaserver_entry_minimum_update_time + The minimum update interval in seconds. The code forces this to a minimum of 60, because if you reduce it below 60 the metaserver will delist your server for flooding. Come on, once a minute is probably enough, eh? True changed on_metaserver_changed - Thu, 27 May 1999 01:00:10 GMT + Thu, 27 May 1999 01:00:24 GMT True True 0 - - - - GtkEntry - metaserver_entry_minimum_update_time 1 2 @@ -1356,22 +1361,22 @@ True True - The minimum update interval in seconds. The code forces this to a minimum of 60, because if you reduce it below 60 the metaserver will delist your server for flooding. Come on, once a minute is probably enough, eh? + + + + GtkEntry + metaserver_entry_server_host_name + The DNS host name of your server. This may well be different to the server host name, especially if you are using DNS aliases. This is the address that clients will connect to. True changed on_metaserver_changed - Thu, 27 May 1999 01:00:24 GMT + Thu, 27 May 1999 01:00:54 GMT True True 0 - - - - GtkEntry - metaserver_entry_server_host_name 1 2 @@ -1386,22 +1391,22 @@ True True - The DNS host name of your server. This may well be different to the server host name, especially if you are using DNS aliases. This is the address that clients will connect to. + + + + GtkEntry + metaserver_entry_player_port + The port number to which players should connect. The default is 2592. If you have multiple servers on your machine, you may have to change this for one of the servers. True changed on_metaserver_changed - Thu, 27 May 1999 01:00:54 GMT + Thu, 27 May 1999 01:02:26 GMT True True 0 - - - - GtkEntry - metaserver_entry_player_port 1 2 @@ -1416,22 +1421,22 @@ True True - The port number to which players should connect. The default is 2592. If you have multiple servers on your machine, you may have to change this for one of the servers. + + + + GtkEntry + metaserver_entry_observer_port + The port number for observers to connect to. The default is 2593. True changed on_metaserver_changed - Thu, 27 May 1999 01:02:26 GMT + Thu, 27 May 1999 01:02:38 GMT True True 0 - - - - GtkEntry - metaserver_entry_observer_port 1 2 @@ -1446,22 +1451,22 @@ True True - The port number for observers to connect to. The default is 2593. + + + + GtkEntry + metaserver_entry_additional_comments + Comments that you want sent to the metaserver. It is a good idea to include your electronic mail address, so that the metaserver administrator can contact you if she needs to. True changed on_metaserver_changed - Thu, 27 May 1999 01:02:38 GMT + Thu, 27 May 1999 01:02:51 GMT True True 0 - - - - GtkEntry - metaserver_entry_additional_comments 1 2 @@ -1476,22 +1481,18 @@ True True - Comments that you want sent to the metaserver. It is a good idea to include your electronic mail address, so that the metaserver administrator can contact you if she needs to. - True - - changed - on_metaserver_changed - Thu, 27 May 1999 01:02:51 GMT - - True - True - 0 - GtkLabel label1383 + + GTK_JUSTIFY_CENTER + False + 0 + 0.5 + 10 + 0 2 3 @@ -1506,18 +1507,18 @@ True True - + + + + GtkLabel + label1384 + GTK_JUSTIFY_CENTER False 0 0.5 10 0 - - - - GtkLabel - label1384 2 3 @@ -1532,18 +1533,18 @@ True True - + + + + GtkLabel + label1385 + GTK_JUSTIFY_CENTER False 0 0.5 10 0 - - - - GtkLabel - label1385 2 3 @@ -1558,18 +1559,18 @@ True True - + + + + GtkLabel + label1386 + GTK_JUSTIFY_CENTER False 0 0.5 10 0 - - - - GtkLabel - label1386 2 3 @@ -1584,18 +1585,18 @@ True True - + + + + GtkLabel + label1387 + GTK_JUSTIFY_CENTER False 0 0.5 10 0 - - - - GtkLabel - label1387 2 3 @@ -1610,18 +1611,18 @@ True True - + + + + GtkLabel + label1388 + GTK_JUSTIFY_CENTER False 0 0.5 10 0 - - - - GtkLabel - label1388 2 3 @@ -1636,18 +1637,18 @@ True True - + + + + GtkLabel + label1389 + GTK_JUSTIFY_CENTER False 0 0.5 10 0 - - - - GtkLabel - label1389 2 3 @@ -1662,18 +1663,18 @@ True True - + + + + GtkLabel + label1390 + GTK_JUSTIFY_CENTER False 0 0.5 10 0 - - - - GtkLabel - label1390 2 3 @@ -1688,18 +1689,18 @@ True True - + + + + GtkLabel + label1391 + GTK_JUSTIFY_CENTER False 0 0.5 10 0 - - - - GtkLabel - label1391 2 3 @@ -1714,18 +1715,22 @@ True True - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 10 - 0 GtkEntry metaserver_entry_maximum_update_time + This is the maximum update time in seconds. It is the interval that must elapse before the server will repeat a solicitation that has not changed since the last solicitation sent to a particular metaserver. + True + + changed + on_metaserver_changed + Thu, 27 May 1999 01:00:36 GMT + + True + True + 0 + 1 2 @@ -1740,22 +1745,22 @@ True True - This is the maximum update time in seconds. It is the interval that must elapse before the server will repeat a solicitation that has not changed since the last solicitation sent to a particular metaserver. + + + + GtkEntry + metaserver_entry_server_type + What type of server is this? Enter a letter from the list on the right. Failure to get the right letter will of course result in clients not listing your server. True changed on_metaserver_changed - Thu, 27 May 1999 01:00:36 GMT + Thu, 27 May 1999 02:13:30 GMT True True 0 - - - - GtkEntry - metaserver_entry_server_type 1 2 @@ -1770,22 +1775,22 @@ True True - What type of server is this? Enter a letter from the list on the right. Failure to get the right letter will of course result in clients not listing your server. + + + + GtkEntry + metaserver_entry_host_name + This is the address to which your server will send solicitation messages. The gethostbyname() call is issued once when the server daemon starts. You can enter an IP address, host name from /etc/hosts, or a DNS host name. Common names are metaserver.netrek.org, metaserver.us.netrek.org, and metaserver.eu.netrek.org. True changed on_metaserver_changed - Thu, 27 May 1999 02:13:30 GMT + Thu, 27 May 1999 00:59:51 GMT True True 0 - - - - GtkEntry - metaserver_entry_host_name 1 2 @@ -1800,17 +1805,6 @@ True True - This is the address to which your server will send solicitation messages. The gethostbyname() call is issued once when the server daemon starts. You can enter an IP address, host name from /etc/hosts, or a DNS host name. Common names are metaserver.netrek.org, metaserver.us.netrek.org, and metaserver.eu.netrek.org. - True - - changed - on_metaserver_changed - Thu, 27 May 1999 00:59:51 GMT - - True - True - 0 - @@ -1818,17 +1812,17 @@ GtkHButtonBox hbuttonbox5 6 - - 0 - False - True - GTK_BUTTONBOX_END 30 85 27 7 0 + + 0 + False + True + GtkButton @@ -1906,6 +1900,14 @@ GtkLabel label68 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 0 2 @@ -1920,19 +1922,16 @@ True True - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 GtkEntry PING_FREQ + True + True + True + 0 + 1 2 @@ -1947,16 +1946,16 @@ True True - True - True - True - 0 - GtkEntry PING_ILOSS_INTERVAL + True + True + True + 0 + 1 2 @@ -1971,16 +1970,16 @@ True True - True - True - True - 0 - GtkEntry PING_GHOSTBUST + True + True + True + 0 + 1 2 @@ -1995,16 +1994,13 @@ True True - True - True - True - 0 - GtkHBox hbox9 + False + 6 1 2 @@ -2019,33 +2015,26 @@ True True - False - 6 GtkEntry MOTD - - 0 - True - True - The file to be displayed to players when they connect to the server, the Message Of The Day True True True 0 - - - - GtkButton - motd_button 0 True True + + + + GtkButton + motd_button True clicked @@ -2053,12 +2042,24 @@ Thu, 14 Jan 1999 16:22:13 GMT + + 0 + True + True + GtkLabel label85 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 0 2 @@ -2073,18 +2074,18 @@ True True - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 GtkLabel MOTD_LABEL + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 0 1 @@ -2099,18 +2100,18 @@ True True - + + + + GtkLabel + SHOWSYSDEF_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - SHOWSYSDEF_LABEL 0 1 @@ -2125,18 +2126,18 @@ True True - + + + + GtkLabel + LOADCHECK_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - LOADCHECK_LABEL 0 1 @@ -2151,18 +2152,18 @@ True True - + + + + GtkLabel + MAXLOAD_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - MAXLOAD_LABEL 0 1 @@ -2177,18 +2178,18 @@ True True - + + + + GtkLabel + CONFIRM_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - CONFIRM_LABEL 0 1 @@ -2203,18 +2204,18 @@ True True - + + + + GtkLabel + UDP_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - UDP_LABEL 0 1 @@ -2229,18 +2230,19 @@ True True - + + + + GtkLabel + PING_FREQ_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - PING_FREQ_LABEL + PING_FREQ 0 1 @@ -2255,18 +2257,19 @@ True True - + + + + GtkLabel + PING_ILOSS_INTERVAL_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - PING_ILOSS_INTERVAL_LABEL + PING_ILOSS_INTERVAL 0 1 @@ -2281,18 +2284,19 @@ True True - + + + + GtkLabel + PING_GHOSTBUST_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - PING_GHOSTBUST_LABEL + PING_GHOSTBUST 0 1 @@ -2307,18 +2311,19 @@ True True - + + + + GtkLabel + PING_GHOSTBUST_INTERVAL_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - PING_GHOSTBUST_INTERVAL_LABEL + PING_GHOSTBUST_INTERVAL 0 1 @@ -2333,18 +2338,16 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkEntry PING_GHOSTBUST_INTERVAL + True + True + True + 0 + 1 2 @@ -2359,16 +2362,13 @@ True True - True - True - True - 0 - GtkHBox hbox11 + False + 10 1 2 @@ -2383,43 +2383,43 @@ True True - False - 10 GtkRadioButton LOADCHECK_0 - - 0 - False - False - True True True LOADCHECK - - - - GtkRadioButton - LOADCHECK_1 0 False False + + + + GtkRadioButton + LOADCHECK_1 True False True LOADCHECK + + 0 + False + False + GtkHBox hbox12 + False + 0 1 2 @@ -2434,17 +2434,10 @@ True True - False - 0 GtkSpinButton MAXLOAD - - 0 - False - False - True 1 1 @@ -2452,18 +2445,25 @@ GTK_UPDATE_ALWAYS True False - 10 - 10 - 1000 - 25 - 10 - 10 + 10 + 10 + 1000 + 25 + 10 + 10 + + 0 + False + False + GtkHBox hbox13 + False + 10 1 2 @@ -2478,58 +2478,58 @@ True True - False - 10 GtkRadioButton CONFIRM_0 - - 0 - False - False - True False True CONFIRM - - - - GtkRadioButton - CONFIRM_1 0 False False + + + + GtkRadioButton + CONFIRM_1 True False True CONFIRM - - - - GtkRadioButton - CONFIRM_2 0 False False + + + + GtkRadioButton + CONFIRM_2 True False True CONFIRM + + 0 + False + False + GtkHBox hbox14 + False + 10 1 2 @@ -2544,73 +2544,73 @@ True True - False - 10 GtkRadioButton UDP_0 - - 0 - False - False - True False True UDP - - - - GtkRadioButton - UDP_1 0 False False + + + + GtkRadioButton + UDP_1 True True True UDP - - - - GtkRadioButton - UDP_2 0 False False + + + + GtkRadioButton + UDP_2 True False True UDP - - - - GtkRadioButton - UDP_3 0 False False + + + + GtkRadioButton + UDP_3 True False True UDP + + 0 + False + False + GtkHBox hbox15 + False + 10 1 2 @@ -2625,43 +2625,48 @@ True True - False - 10 GtkRadioButton SHOWSYSDEF_0 - - 0 - False - False - True False True SHOWSYSDEF - - - - GtkRadioButton - SHOWSYSDEF_1 0 False False + + + + GtkRadioButton + SHOWSYSDEF_1 True True True SHOWSYSDEF + + 0 + False + False + GtkLabel MAXUPDATE_LABEL + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 0 1 @@ -2676,18 +2681,18 @@ True True - + + + + GtkLabel + DEFUPDATE_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - DEFUPDATE_LABEL 0 1 @@ -2702,18 +2707,24 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkSpinButton DEFUPDATE + True + 1 + 0 + False + GTK_UPDATE_ALWAYS + True + False + 10 + 1 + 10 + 1 + 10 + 10 1 2 @@ -2728,6 +2739,11 @@ True True + + + + GtkSpinButton + MAXUPDATE True 1 0 @@ -2735,17 +2751,12 @@ GTK_UPDATE_ALWAYS True False - 10 - 1 - 10 - 1 - 10 - 10 - - - - GtkSpinButton - MAXUPDATE + 10 + 1 + 10 + 1 + 10 + 10 1 2 @@ -2760,19 +2771,6 @@ True True - True - 1 - 0 - False - GTK_UPDATE_ALWAYS - True - False - 10 - 1 - 10 - 1 - 10 - 10 @@ -2793,7 +2791,7 @@ GtkTable table4 6 - 17 + 18 2 False 6 @@ -2802,6 +2800,14 @@ GtkLabel label69 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 0 2 @@ -2816,19 +2822,22 @@ True True - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 GtkHScale TOURN + True + True + GTK_POS_TOP + 0 + GTK_UPDATE_CONTINUOUS + 4 + 1 + 8 + 1 + 0 + 0 1 2 @@ -2843,23 +2852,14 @@ True True - True - True - GTK_POS_TOP - 0 - GTK_UPDATE_CONTINUOUS - 4 - 1 - 8 - 1 - 0 - 0 GtkHBox hbox1 6 + False + 6 1 2 @@ -2874,137 +2874,130 @@ True True - False - 6 GtkCheckButton SHIPS_SC - - 0 - False - True - Scout True True False - - - - GtkCheckButton - SHIPS_DD 0 False True + + + + GtkCheckButton + SHIPS_DD Destroyer True True False - - - - GtkCheckButton - SHIPS_CA 0 False True + + + + GtkCheckButton + SHIPS_CA Cruiser True True False - - - - GtkCheckButton - SHIPS_BB 0 False True + + + + GtkCheckButton + SHIPS_BB Battleship True True False - - - - GtkCheckButton - SHIPS_AS 0 False True + + + + GtkCheckButton + SHIPS_AS Assault Ship True True False - - - - GtkCheckButton - SHIPS_SB 0 False True + + + + GtkCheckButton + SHIPS_SB Starbase, or outpost True True False - - - - GtkCheckButton - SHIPS_GA 0 False True + + + + GtkCheckButton + SHIPS_GA Galaxy True False False - - - - GtkCheckButton - SHIPS_AT 0 False True + + + + GtkCheckButton + SHIPS_AT God ship, once someone has one of these, none of the others make any sense whatsoever. True False False + + 0 + False + True + GtkLabel label103 - - 0 - True - True - GTK_JUSTIFY_CENTER False @@ -3012,6 +3005,11 @@ 0.5 0 0 + + 0 + True + True + @@ -3019,6 +3017,8 @@ GtkHBox hbox2 6 + False + 6 1 2 @@ -3033,43 +3033,36 @@ True True - False - 6 GtkToggleButton WEAPONS_PLASMA + True + + True 0 False True - True - - True GtkToggleButton WEAPONS_TRACTOR + True + + True 0 False True - True - - True GtkLabel label102 - - 0 - True - True - GTK_JUSTIFY_CENTER False @@ -3077,12 +3070,28 @@ 0.5 0 0 + + 0 + True + True + GtkHScale PLKILLS + True + True + GTK_POS_TOP + 0 + GTK_UPDATE_CONTINUOUS + 2 + 0 + 10 + 1 + 0 + 0 1 2 @@ -3097,27 +3106,23 @@ True True - True - True - GTK_POS_TOP - 0 - GTK_UPDATE_CONTINUOUS - 2 - 0 - 10 - 1 - 0 - 0 GtkLabel label91 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 0 2 - 16 - 17 + 17 + 18 0 0 True @@ -3127,18 +3132,18 @@ True True - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 GtkLabel TOURN_LABEL + + GTK_JUSTIFY_CENTER + False + 1 + 0.7 + 10 + 0 0 1 @@ -3153,18 +3158,18 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.7 - 10 - 0 GtkLabel HUNTERKILLER_LABEL + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 0 1 @@ -3179,18 +3184,18 @@ True True - + + + + GtkLabel + RESETGALAXY_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - RESETGALAXY_LABEL 0 1 @@ -3205,18 +3210,18 @@ True True - + + + + GtkLabel + SHIPS_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - SHIPS_LABEL 0 1 @@ -3231,32 +3236,11 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkLabel WEAPONS_LABEL - - 0 - 1 - 5 - 6 - 0 - 0 - False - False - False - False - True - True - GTK_JUSTIFY_CENTER False @@ -3264,16 +3248,11 @@ 0.5 10 0 - - - - GtkLabel - PLKILLS_LABEL 0 1 - 6 - 7 + 5 + 6 0 0 False @@ -3283,6 +3262,11 @@ True True + + + + GtkLabel + PLKILLS_LABEL GTK_JUSTIFY_CENTER False @@ -3290,16 +3274,11 @@ 0.7 10 0 - - - - GtkLabel - SBRANK_LABEL 0 1 - 7 - 8 + 6 + 7 0 0 False @@ -3309,32 +3288,11 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkLabel NODIAG_LABEL - - 0 - 1 - 8 - 9 - 0 - 0 - False - False - False - False - True - True - GTK_JUSTIFY_CENTER False @@ -3342,11 +3300,6 @@ 0.5 10 0 - - - - GtkLabel - TOPGUN_LABEL 0 1 @@ -3361,6 +3314,11 @@ True True + + + + GtkLabel + TOPGUN_LABEL GTK_JUSTIFY_CENTER False @@ -3368,11 +3326,6 @@ 0.5 10 0 - - - - GtkLabel - NEWTURN_LABEL 0 1 @@ -3387,6 +3340,11 @@ True True + + + + GtkLabel + NEWTURN_LABEL GTK_JUSTIFY_CENTER False @@ -3394,11 +3352,6 @@ 0.5 10 0 - - - - GtkLabel - HIDDEN_LABEL 0 1 @@ -3413,6 +3366,11 @@ True True + + + + GtkLabel + HIDDEN_LABEL GTK_JUSTIFY_CENTER False @@ -3420,11 +3378,6 @@ 0.5 10 0 - - - - GtkLabel - SURRSTART_LABEL 0 1 @@ -3439,6 +3392,11 @@ True True + + + + GtkLabel + SURRSTART_LABEL GTK_JUSTIFY_CENTER False @@ -3446,11 +3404,6 @@ 0.5 10 0 - - - - GtkLabel - TRANSWARP_LABEL 0 1 @@ -3465,6 +3418,11 @@ True True + + + + GtkLabel + TRANSWARP_LABEL GTK_JUSTIFY_CENTER False @@ -3472,11 +3430,6 @@ 0.5 10 0 - - - - GtkLabel - WARPSPEED_LABEL 0 1 @@ -3491,6 +3444,11 @@ True True + + + + GtkLabel + WARPSPEED_LABEL GTK_JUSTIFY_CENTER False @@ -3498,11 +3456,6 @@ 0.5 10 0 - - - - GtkLabel - VECTOR_LABEL 0 1 @@ -3517,6 +3470,11 @@ True True + + + + GtkLabel + VECTOR_LABEL GTK_JUSTIFY_CENTER False @@ -3524,16 +3482,32 @@ 0.5 10 0 + + 0 + 1 + 16 + 17 + 0 + 0 + False + False + False + False + True + True + GtkHBox hbox29 + False + 0 1 2 - 9 - 10 + 10 + 11 0 0 False @@ -3543,48 +3517,48 @@ True True - False - 0 GtkRadioButton TOPGUN_0 - - 0 - False - False - True False True TOPGUN - - - - GtkRadioButton - TOPGUN_1 0 False False + + + + GtkRadioButton + TOPGUN_1 True False True TOPGUN + + 0 + False + False + GtkHBox hbox28 + False + 0 1 2 - 8 - 9 + 9 + 10 0 0 False @@ -3594,43 +3568,43 @@ True True - False - 0 GtkRadioButton NODIAG_0 - - 0 - False - False - True False True NODIAG - - - - GtkRadioButton - NODIAG_1 0 False False + + + + GtkRadioButton + NODIAG_1 True False True NODIAG + + 0 + False + False + GtkHBox hbox27 + False + 0 1 2 @@ -3645,43 +3619,43 @@ True True - False - 0 GtkRadioButton RESETGALAXY_0 - - 0 - False - False - True False True RESETGALAXY - - - - GtkRadioButton - RESETGALAXY_1 0 False False + + + + GtkRadioButton + RESETGALAXY_1 True False True RESETGALAXY + + 0 + False + False + GtkHBox hbox26 + False + 0 1 2 @@ -3696,48 +3670,48 @@ True True - False - 0 GtkRadioButton HUNTERKILLER_0 - - 0 - False - False - True False True HUNTERKILLER - - - - GtkRadioButton - HUNTERKILLER_1 0 False False + + + + GtkRadioButton + HUNTERKILLER_1 True False True HUNTERKILLER + + 0 + False + False + GtkHBox hbox30 + False + 0 1 2 - 10 - 11 + 11 + 12 0 0 False @@ -3747,48 +3721,48 @@ True True - False - 0 GtkRadioButton NEWTURN_0 - - 0 - False - False - True False True NEWTURN - - - - GtkRadioButton - NEWTURN_1 0 False False + + + + GtkRadioButton + NEWTURN_1 True False True NEWTURN + + 0 + False + False + GtkHBox hbox31 + False + 0 1 2 - 13 - 14 + 14 + 15 0 0 False @@ -3798,48 +3772,48 @@ True True - False - 0 GtkRadioButton TRANSWARP_0 - - 0 - False - False - True False True TRANSWARP - - - - GtkRadioButton - TRANSWARP_1 0 False False + + + + GtkRadioButton + TRANSWARP_1 True False True TRANSWARP + + 0 + False + False + GtkHBox hbox32 + False + 0 1 2 - 15 - 16 + 16 + 17 0 0 False @@ -3849,50 +3823,50 @@ True True - False - 0 GtkRadioButton VECTOR_0 - - 0 - False - False - False True False True VECTOR - - - - GtkRadioButton - VECTOR_1 0 False False + + + + GtkRadioButton + VECTOR_1 False True False True VECTOR + + 0 + False + False + GtkHBox hbox10 + False + 0 1 2 - 11 - 12 + 12 + 13 0 0 False @@ -3902,48 +3876,57 @@ True True - False - 0 GtkRadioButton HIDDEN_0 - - 0 - False - False - True False True HIDDEN - - - - GtkRadioButton - HIDDEN_1 0 False False + + + + GtkRadioButton + HIDDEN_1 True True True HIDDEN + + 0 + False + False + GtkHScale SURRSTART + True + True + GTK_POS_TOP + 0 + GTK_UPDATE_CONTINUOUS + 2 + 0 + 10 + 1 + 0 + 0 1 2 - 12 - 13 + 13 + 14 0 0 True @@ -3953,27 +3936,29 @@ True True - True - True - GTK_POS_TOP - 0 - GTK_UPDATE_CONTINUOUS - 2 - 0 - 10 - 1 - 0 - 0 GtkSpinButton WARPSPEED + True + 1 + 0 + False + GTK_UPDATE_ALWAYS + True + False + 60 + 0 + 100 + 1 + 10 + 10 1 2 - 14 - 15 + 15 + 16 0 0 True @@ -3983,24 +3968,16 @@ True True - True - 1 - 0 - False - GTK_UPDATE_ALWAYS - True - False - 60 - 0 - 100 - 1 - 10 - 10 GtkEntry SBRANK + True + True + True + 0 + 1 2 @@ -4015,11 +3992,88 @@ True True + + + + GtkLabel + SBRANK_LABEL + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 + + 0 + 1 + 7 + 8 + 0 + 0 + False + False + False + False + True + True + + + + + GtkLabel + SBPLANETS_LABEL + + GTK_JUSTIFY_LEFT + False + 1 + 0.5 + 10 + 0 + + 0 + 1 + 8 + 9 + 0 + 0 + False + False + False + False + True + True + + + + + GtkHScale + SBPLANETS True - True - True - 0 - + True + GTK_POS_TOP + 0 + GTK_UPDATE_CONTINUOUS + 5 + 1 + 20 + 1 + 0 + 0 + + 1 + 2 + 8 + 9 + 0 + 0 + False + False + False + False + True + True + @@ -4049,6 +4103,14 @@ GtkLabel label70 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 0 2 @@ -4063,19 +4125,18 @@ True True - + + + + GtkLabel + label74 + GTK_JUSTIFY_CENTER False 0.5 0.5 0 0 - - - - GtkLabel - label74 0 2 @@ -4090,18 +4151,18 @@ True True - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 GtkLabel CLUE_LABEL + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 0 1 @@ -4116,18 +4177,18 @@ True True - + + + + GtkLabel + CLUERANK_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - CLUERANK_LABEL 0 1 @@ -4142,18 +4203,13 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkHBox hbox33 + False + 0 1 2 @@ -4168,58 +4224,61 @@ True True - False - 0 GtkRadioButton CLUE_0 - - 0 - False - False - True False True CLUE - - - - GtkRadioButton - CLUE_1 0 False False + + + + GtkRadioButton + CLUE_1 True False True CLUE - - - - GtkRadioButton - CLUE_2 0 False False + + + + GtkRadioButton + CLUE_2 True False True CLUE + + 0 + False + False + GtkEntry CLUERANK + True + True + True + 0 + 1 2 @@ -4234,11 +4293,6 @@ True True - True - True - True - 0 - @@ -4268,6 +4322,14 @@ GtkLabel label104 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 0 2 @@ -4282,19 +4344,18 @@ True True - + + + + GtkLabel + label105 + GTK_JUSTIFY_CENTER False 0.5 0.5 0 0 - - - - GtkLabel - label105 0 2 @@ -4309,18 +4370,18 @@ True True - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 GtkLabel CHECKMESG_LABEL + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 0 1 @@ -4335,18 +4396,18 @@ True True - + + + + GtkLabel + LOGALL_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - LOGALL_LABEL 0 1 @@ -4361,18 +4422,18 @@ True True - + + + + GtkLabel + LOGGOD_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - LOGGOD_LABEL 0 1 @@ -4387,18 +4448,18 @@ True True - + + + + GtkLabel + EVENTLOG_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - EVENTLOG_LABEL 0 1 @@ -4413,18 +4474,18 @@ True True - + + + + GtkLabel + DOOSHER_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - DOOSHER_LABEL 0 1 @@ -4439,18 +4500,18 @@ True True - + + + + GtkLabel + CHECKSCUM_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - CHECKSCUM_LABEL 0 1 @@ -4465,18 +4526,18 @@ True True - + + + + GtkLabel + WHYMESS_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - WHYMESS_LABEL 0 1 @@ -4491,18 +4552,18 @@ True True - + + + + GtkLabel + ERROR_LEVEL_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - ERROR_LEVEL_LABEL 0 1 @@ -4517,18 +4578,13 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkHBox hbox36 + False + 0 1 2 @@ -4543,43 +4599,43 @@ True True - False - 0 GtkRadioButton LOGGOD_0 - - 0 - False - False - True False True LOGGOD - - - - GtkRadioButton - LOGGOD_1 0 False False + + + + GtkRadioButton + LOGGOD_1 True False True LOGGOD + + 0 + False + False + GtkHBox hbox35 + False + 0 1 2 @@ -4594,43 +4650,43 @@ True True - False - 0 GtkRadioButton LOGALL_0 - - 0 - False - False - True False True LOGALL - - - - GtkRadioButton - LOGALL_1 0 False False + + + + GtkRadioButton + LOGALL_1 True False True LOGALL + + 0 + False + False + GtkHBox hbox34 + False + 0 1 2 @@ -4645,43 +4701,43 @@ True True - False - 0 GtkRadioButton CHECKMESG_0 - - 0 - False - False - True False True CHECKMESG - - - - GtkRadioButton - CHECKMESG_1 0 False False + + + + GtkRadioButton + CHECKMESG_1 True False True CHECKMESG + + 0 + False + False + GtkHBox hbox37 + False + 0 1 2 @@ -4696,43 +4752,43 @@ True True - False - 0 GtkRadioButton EVENTLOG_0 - - 0 - False - False - True False True EVENTLOG - - - - GtkRadioButton - EVENTLOG_1 0 False False + + + + GtkRadioButton + EVENTLOG_1 True False True EVENTLOG + + 0 + False + False + GtkHBox hbox38 + False + 0 1 2 @@ -4747,43 +4803,43 @@ True True - False - 0 GtkRadioButton DOOSHER_0 - - 0 - False - False - True False True DOOSHER - - - - GtkRadioButton - DOOSHER_1 0 False False + + + + GtkRadioButton + DOOSHER_1 True False True DOOSHER + + 0 + False + False + GtkHBox hbox39 + False + 0 1 2 @@ -4798,43 +4854,43 @@ True True - False - 0 GtkRadioButton CHECKSCUM_0 - - 0 - False - False - True False True CHECKSCUM - - - - GtkRadioButton - CHECKSCUM_1 0 False False + + + + GtkRadioButton + CHECKSCUM_1 True False True CHECKSCUM + + 0 + False + False + GtkHBox hbox40 + False + 0 1 2 @@ -4849,43 +4905,43 @@ True True - False - 0 GtkRadioButton WHYMESS_0 - - 0 - False - False - True False True WHYMESS - - - - GtkRadioButton - WHYMESS_1 0 False False + + + + GtkRadioButton + WHYMESS_1 True False True WHYMESS + + 0 + False + False + GtkHBox hbox41 + False + 0 1 2 @@ -4900,17 +4956,10 @@ True True - False - 0 GtkSpinButton ERROR_LEVEL - - 0 - False - False - True 1 0 @@ -4918,12 +4967,17 @@ GTK_UPDATE_ALWAYS True False - 0 - 0 - 100 - 1 - 10 - 10 + 0 + 0 + 100 + 1 + 10 + 10 + + 0 + False + False + @@ -4954,6 +5008,14 @@ GtkLabel label115 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 0 2 @@ -4968,20 +5030,14 @@ True True - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 GtkHBox hbox8 6 + False + 6 1 2 @@ -4996,26 +5052,37 @@ True True - False - 6 GtkTable table13 - - 0 - True - True - 1 2 False 0 0 + + 0 + True + True + GtkSpinButton START_ARMIES + True + 1 + 0 + True + GTK_UPDATE_ALWAYS + True + False + 17 + 1 + 100 + 1 + 10 + 10 0 1 @@ -5030,24 +5097,18 @@ True True - True - 1 - 0 - True - GTK_UPDATE_ALWAYS - True - False - 17 - 1 - 100 - 1 - 10 - 10 GtkLabel label120 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 1 2 @@ -5062,24 +5123,12 @@ True True - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 GtkLabel label119 - - 0 - True - True - GTK_JUSTIFY_CENTER False @@ -5087,6 +5136,11 @@ 0.5 0 0 + + 0 + True + True + @@ -5094,6 +5148,11 @@ GtkTable table11 6 + 4 + 2 + False + 6 + 6 1 2 @@ -5108,29 +5167,10 @@ True True - 4 - 2 - False - 6 - 6 GtkOptionMenu PLANETS_1 - - 1 - 2 - 1 - 2 - 0 - 0 - False - False - False - False - True - True - False Romulus Eridani @@ -5144,16 +5184,11 @@ Hydrae 0 - - - - GtkOptionMenu - PLANETS_0 1 2 - 0 - 1 + 1 + 2 0 0 False @@ -5163,6 +5198,11 @@ True True + + + + GtkOptionMenu + PLANETS_0 False Earth Rigel @@ -5175,16 +5215,11 @@ Alpha Centauri 0 - - - - GtkOptionMenu - PLANETS_2 1 2 - 2 - 3 + 0 + 1 0 0 False @@ -5194,6 +5229,11 @@ True True + + + + GtkOptionMenu + PLANETS_2 False Klingus Pliedes V @@ -5207,16 +5247,11 @@ Achernar 0 - - - - GtkOptionMenu - PLANETS_3 1 2 - 3 - 4 + 2 + 3 0 0 False @@ -5226,6 +5261,11 @@ True True + + + + GtkOptionMenu + PLANETS_3 False Orion Cassiopia @@ -5239,11 +5279,33 @@ Antares 0 + + 1 + 2 + 3 + 4 + 0 + 0 + False + False + False + False + True + True + GtkLabel label64 + False + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 0 1 @@ -5258,19 +5320,19 @@ True True + + + + GtkLabel + label65 False - + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - label65 0 1 @@ -5285,19 +5347,19 @@ True True + + + + GtkLabel + label66 False - + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - label66 0 1 @@ -5312,19 +5374,19 @@ True True + + + + GtkLabel + label67 False - + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - label67 0 1 @@ -5339,20 +5401,19 @@ True True - False - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkLabel MAX_POP_LABEL + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 0 1 @@ -5367,18 +5428,18 @@ True True - + + + + GtkLabel + PLANET_MOVE_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - PLANET_MOVE_LABEL 0 1 @@ -5393,18 +5454,18 @@ True True - + + + + GtkLabel + WRAP_GALAXY_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - WRAP_GALAXY_LABEL 0 1 @@ -5419,18 +5480,19 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkLabel PLANETS_LABEL_DISABLED + False + + GTK_JUSTIFY_CENTER + False + 1 + 0.1 + 10 + 0 0 1 @@ -5445,19 +5507,18 @@ True True - False - - GTK_JUSTIFY_CENTER - False - 1 - 0.1 - 10 - 0 GtkLabel START_ARMIES_LABEL + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 0 1 @@ -5472,18 +5533,18 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkLabel label121 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 0 2 @@ -5492,24 +5553,19 @@ 0 0 False - True - False - False - True - True - - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 + True + False + False + True + True + GtkHBox hbox6 + False + 0 1 2 @@ -5524,43 +5580,43 @@ True True - False - 0 GtkRadioButton PLANET_MOVE_0 - - 0 - False - False - True False True PLANET_MOVE - - - - GtkRadioButton - PLANET_MOVE_1 0 False False + + + + GtkRadioButton + PLANET_MOVE_1 True False True PLANET_MOVE + + 0 + False + False + GtkHBox hbox7 + False + 0 1 2 @@ -5575,43 +5631,43 @@ True True - False - 0 GtkRadioButton WRAP_GALAXY_0 - - 0 - False - False - True False True WRAP_GALAXY - - - - GtkRadioButton - WRAP_GALAXY_01 0 False False + + + + GtkRadioButton + WRAP_GALAXY_01 True False True WRAP_GALAXY + + 0 + False + False + GtkHBox hbox5 + False + 0 1 2 @@ -5626,17 +5682,10 @@ True True - False - 0 GtkSpinButton MAX_POP - - 6 - False - False - True 1 0 @@ -5644,22 +5693,22 @@ GTK_UPDATE_ALWAYS True False - 70 - 0 - 1000 - 10 - 10 - 10 + 70 + 0 + 1000 + 10 + 10 + 10 + + 6 + False + False + GtkLabel label116 - - 0 - False - True - GTK_JUSTIFY_CENTER False @@ -5667,6 +5716,11 @@ 0.5 0 0 + + 0 + False + True + @@ -5697,6 +5751,14 @@ GtkLabel label126 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 0 2 @@ -5711,19 +5773,18 @@ True True - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 GtkLabel BASEPRACTICE_LABEL + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 0 1 @@ -5738,18 +5799,18 @@ True True - + + + + GtkLabel + ROBOTHOST_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - ROBOTHOST_LABEL 0 1 @@ -5764,18 +5825,13 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkHBox hbox42 + False + 0 1 2 @@ -5790,43 +5846,43 @@ True True - False - 0 GtkRadioButton BASEPRACTICE_0 - - 0 - False - False - True False True BASEPRACTICE - - - - GtkRadioButton - BASEPRACTICE_1 0 False False + + + + GtkRadioButton + BASEPRACTICE_1 True False True BASEPRACTICE + + 0 + False + False + GtkHBox hbox43 + False + 0 1 2 @@ -5841,28 +5897,33 @@ True True - False - 0 GtkEntry ROBOTHOST - - 0 - True - True - True True True 0 + + 0 + True + True + GtkLabel label127 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 0 2 @@ -5877,13 +5938,6 @@ True True - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 @@ -5913,6 +5967,14 @@ GtkLabel label128 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 0 2 @@ -5927,19 +5989,18 @@ True True - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 GtkLabel HOCKEY_LABEL + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 0 1 @@ -5954,18 +6015,13 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkHBox hbox44 + False + 0 1 2 @@ -5980,43 +6036,48 @@ True True - False - 0 GtkRadioButton HOCKEY_0 - - 0 - False - False - True False True HOCKEY - - - - GtkRadioButton - HOCKEY_1 0 False False + + + + GtkRadioButton + HOCKEY_1 True False True HOCKEY + + 0 + False + False + GtkLabel label131 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 0 2 @@ -6031,13 +6092,6 @@ True True - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 @@ -6067,6 +6121,8 @@ GtkHBox hbox45 + False + 0 1 2 @@ -6081,43 +6137,49 @@ True True - False - 0 GtkRadioButton INL_0 - - 0 - False - False - True False - True - INL - - - - GtkRadioButton - INL_1 + True + INL 0 False False + + + + GtkRadioButton + INL_1 True False True INL + + 0 + False + False + GtkLabel inl + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 0 2 @@ -6132,19 +6194,18 @@ True True - + + + + GtkLabel + label130 + GTK_JUSTIFY_CENTER False 0.5 0.5 0 0 - - - - GtkLabel - label130 0 2 @@ -6159,18 +6220,18 @@ True True - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 GtkLabel INL_LABEL + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 0 1 @@ -6185,18 +6246,18 @@ True True - + + + + GtkLabel + INL_RECORD_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - INL_RECORD_LABEL 0 1 @@ -6211,18 +6272,13 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkHBox hbox55 + False + 0 1 2 @@ -6237,37 +6293,35 @@ True True - False - 0 GtkRadioButton INL_RECORD_0 - - 0 - False - False - True False True INL_RECORD - - - - GtkRadioButton - INL_RECORD_1 0 False False + + + + GtkRadioButton + INL_RECORD_1 True False True INL_RECORD + + 0 + False + False + @@ -6298,6 +6352,14 @@ GtkLabel label124 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 0 2 @@ -6312,19 +6374,18 @@ True True - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 GtkLabel DOGFIGHT_LABEL + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 0 1 @@ -6339,18 +6400,18 @@ True True - + + + + GtkLabel + CONTESTSIZE_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - CONTESTSIZE_LABEL 0 1 @@ -6365,18 +6426,18 @@ True True - + + + + GtkLabel + NUMMATCH_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - NUMMATCH_LABEL 0 1 @@ -6391,18 +6452,19 @@ True True - + + + + GtkLabel + SAVE_DOG_STAT_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - SAVE_DOG_STAT_LABEL + SAVE_DOG_STAT 0 1 @@ -6417,18 +6479,18 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkLabel label125 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 0 2 @@ -6443,18 +6505,16 @@ True True - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 GtkEntry SAVE_DOG_STAT + True + True + True + 0 + 1 2 @@ -6469,16 +6529,16 @@ True True - True - True - True - 0 - GtkEntry NUMMATCH + True + True + True + 0 + 1 2 @@ -6493,16 +6553,16 @@ True True - True - True - True - 0 - GtkEntry CONTESTSIZE + True + True + True + 0 + 1 2 @@ -6517,16 +6577,16 @@ True True - True - True - True - 0 - GtkEntry DOGFIGHT + True + True + True + 0 + 1 2 @@ -6541,11 +6601,6 @@ True True - True - True - True - 0 - @@ -6575,6 +6630,14 @@ GtkLabel SNAKEPATROL_LABEL + False + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 0 1 @@ -6589,19 +6652,18 @@ True True - False - + + + + GtkLabel + MAX_CHAOS_BASES_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - MAX_CHAOS_BASES_LABEL 0 1 @@ -6616,18 +6678,18 @@ True True - + + + + GtkLabel + PINGPONG_PLASMA_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - PINGPONG_PLASMA_LABEL 0 1 @@ -6642,18 +6704,19 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkLabel STARBASE_MINES_LABEL + False + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 0 1 @@ -6668,19 +6731,18 @@ True True - False - + + + + GtkLabel + CHAOS_LABEL + GTK_JUSTIFY_CENTER False 1 0.5 10 0 - - - - GtkLabel - CHAOS_LABEL 0 1 @@ -6695,18 +6757,19 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkLabel label122 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 0 2 @@ -6721,19 +6784,18 @@ True True - + + + + GtkLabel + label123 + GTK_JUSTIFY_CENTER False 0.5 0.5 0 0 - - - - GtkLabel - label123 0 2 @@ -6748,18 +6810,13 @@ True True - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 GtkHBox hbox46 + False + 0 1 2 @@ -6774,17 +6831,10 @@ True True - False - 0 GtkSpinButton MAX_CHAOS_BASES - - 0 - False - False - 60 True 1 @@ -6793,18 +6843,25 @@ GTK_UPDATE_ALWAYS True False - 2 - 0 - 16 - 1 - 10 - 10 + 2 + 0 + 16 + 1 + 10 + 10 + + 0 + False + False + GtkHBox hbox47 + False + 0 1 2 @@ -6819,43 +6876,43 @@ True True - False - 0 GtkRadioButton CHAOS_0 - - 0 - False - False - True False True CHAOS - - - - GtkRadioButton - CHAOS_1 0 False False + + + + GtkRadioButton + CHAOS_1 True False True CHAOS + + 0 + False + False + GtkHBox hbox48 + False + 0 1 2 @@ -6870,45 +6927,45 @@ True True - False - 0 GtkRadioButton STARBASE_MINES_0 - - 0 - False - False - False True False True STARBASE_MINES - - - - GtkRadioButton - STARBASE_MINES_1 0 False False + + + + GtkRadioButton + STARBASE_MINES_1 False True False True STARBASE_MINES + + 0 + False + False + GtkHBox hbox49 + False + 0 1 2 @@ -6923,43 +6980,43 @@ True True - False - 0 GtkRadioButton PINGPONG_PLASMA_0 - - 0 - False - False - True False True PINGPONG_PLASMA - - - - GtkRadioButton - PINGPONG_PLASMA_1 0 False False + + + + GtkRadioButton + PINGPONG_PLASMA_1 True False True PINGPONG_PLASMA + + 0 + False + False + GtkHBox hbox50 + False + 0 1 2 @@ -6974,45 +7031,50 @@ True True - False - 0 GtkRadioButton SNAKEPATROL_0 - - 0 - False - False - False True False True SNAKEPATROL - - - - GtkRadioButton - SNAKEPATROL_1 0 False False + + + + GtkRadioButton + SNAKEPATROL_1 False True False True SNAKEPATROL + + 0 + False + False + GtkLabel REALITY_LABEL + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 10 + 0 0 1 @@ -7027,18 +7089,24 @@ True True - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 10 - 0 GtkSpinButton REALITY + True + 1 + 0 + False + GTK_UPDATE_ALWAYS + True + False + 10 + 1 + 20 + 1 + 1 + 1 1 2 @@ -7053,19 +7121,6 @@ True True - True - 1 - 0 - False - GTK_UPDATE_ALWAYS - True - False - 10 - 1 - 20 - 1 - 1 - 1 @@ -7086,13 +7141,13 @@ GtkHBox hbox52 + False + 0 0 True True - False - 0 GtkStatusbar @@ -7109,17 +7164,17 @@ GtkHButtonBox hbuttonbox1 9 - - 0 - False - False - GTK_BUTTONBOX_END 30 85 27 7 0 + + 0 + False + False + GtkButton @@ -7173,12 +7228,13 @@ gum - Select Message Of The Day GTK_WINDOW_DIALOG GTK_WIN_POS_MOUSE - False + False False True False gummotd Gummotd + False GtkButton @@ -7220,6 +7276,7 @@ unset title GTK_WINDOW_DIALOG GTK_WIN_POS_MOUSE + False True True True @@ -7235,50 +7292,33 @@ 0 - GtkLabel - message_label - - 0 - False - False - - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - - GtkHBox Dialog:action_area dialog-action_area1 10 + True + 5 0 False True GTK_PACK_END - True - 5 GtkHButtonBox hbuttonbox2 - - 0 - True - True - GTK_BUTTONBOX_DEFAULT_STYLE 30 85 27 7 0 + + 0 + True + True + GtkButton @@ -7296,6 +7336,23 @@ + + + GtkLabel + message_label + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 + + 0 + False + False + + @@ -7311,12 +7368,13 @@ gum - Open GTK_WINDOW_DIALOG GTK_WIN_POS_MOUSE - False + False False True False gumopen Gumopen + False GtkButton @@ -7359,12 +7417,13 @@ gum - Save As GTK_WINDOW_DIALOG GTK_WIN_POS_MOUSE - True + False False True False gumsaveas Gumsaveas + True GtkButton @@ -7401,6 +7460,7 @@ netrekconfig GTK_WINDOW_POPUP GTK_WIN_POS_CENTER + False False True False @@ -7413,6 +7473,7 @@ 0.5 0 0 + True Index: Vanilla/gum/main.c diff -u Vanilla/gum/main.c:1.7 Vanilla/gum/main.c:1.8 --- Vanilla/gum/main.c:1.7 Thu Dec 30 00:39:58 1999 +++ Vanilla/gum/main.c Tue Aug 15 17:42:45 2000 @@ -6,6 +6,7 @@ # include #endif +#include #include #include #include @@ -18,13 +19,14 @@ #include "support.h" GtkWidget* -create_gum () +create_gum (void) { GtkWidget *gum; GtkWidget *vbox1; GtkWidget *menubar; GtkWidget *File; GtkWidget *menu7; + GtkAccelGroup *menu7_accels; GtkWidget *Open; GtkWidget *Reload; GtkWidget *Save; @@ -32,6 +34,7 @@ GtkWidget *Quit; GtkWidget *Help; GtkWidget *menu8; + GtkAccelGroup *menu8_accels; GtkWidget *About; GtkWidget *notebook1; GtkWidget *vbox2; @@ -133,9 +136,13 @@ GtkWidget *MAXLOAD_LABEL; GtkWidget *CONFIRM_LABEL; GtkWidget *UDP_LABEL; + guint PING_FREQ_LABEL_key; GtkWidget *PING_FREQ_LABEL; + guint PING_ILOSS_INTERVAL_LABEL_key; GtkWidget *PING_ILOSS_INTERVAL_LABEL; + guint PING_GHOSTBUST_LABEL_key; GtkWidget *PING_GHOSTBUST_LABEL; + guint PING_GHOSTBUST_INTERVAL_LABEL_key; GtkWidget *PING_GHOSTBUST_INTERVAL_LABEL; GtkWidget *PING_GHOSTBUST_INTERVAL; GtkWidget *hbox11; @@ -192,7 +199,6 @@ GtkWidget *SHIPS_LABEL; GtkWidget *WEAPONS_LABEL; GtkWidget *PLKILLS_LABEL; - GtkWidget *SBRANK_LABEL; GtkWidget *NODIAG_LABEL; GtkWidget *TOPGUN_LABEL; GtkWidget *NEWTURN_LABEL; @@ -237,6 +243,9 @@ GtkObject *WARPSPEED_adj; GtkWidget *WARPSPEED; GtkWidget *SBRANK; + GtkWidget *SBRANK_LABEL; + GtkWidget *SBPLANETS_LABEL; + GtkWidget *SBPLANETS; GtkWidget *label6; GtkWidget *table2; GtkWidget *label70; @@ -374,6 +383,7 @@ GtkWidget *DOGFIGHT_LABEL; GtkWidget *CONTESTSIZE_LABEL; GtkWidget *NUMMATCH_LABEL; + guint SAVE_DOG_STAT_LABEL_key; GtkWidget *SAVE_DOG_STAT_LABEL; GtkWidget *label125; GtkWidget *SAVE_DOG_STAT; @@ -429,94 +439,132 @@ gtk_object_set_data (GTK_OBJECT (gum), "gum", gum); gtk_window_set_title (GTK_WINDOW (gum), "Netrek Server"); gtk_window_set_policy (GTK_WINDOW (gum), TRUE, TRUE, FALSE); - gtk_window_set_wmclass (GTK_WINDOW (gum), "gum", "gum"); + gtk_window_set_wmclass (GTK_WINDOW (gum), "gum", "Gum"); vbox1 = gtk_vbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "vbox1", vbox1); + gtk_widget_ref (vbox1); + gtk_object_set_data_full (GTK_OBJECT (gum), "vbox1", vbox1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (gum), vbox1); menubar = gtk_menu_bar_new (); - gtk_object_set_data (GTK_OBJECT (gum), "menubar", menubar); + gtk_widget_ref (menubar); + gtk_object_set_data_full (GTK_OBJECT (gum), "menubar", menubar, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (menubar); gtk_box_pack_start (GTK_BOX (vbox1), menubar, TRUE, TRUE, 0); File = gtk_menu_item_new_with_label ("File"); - gtk_object_set_data (GTK_OBJECT (gum), "File", File); + gtk_widget_ref (File); + gtk_object_set_data_full (GTK_OBJECT (gum), "File", File, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (File); gtk_container_add (GTK_CONTAINER (menubar), File); menu7 = gtk_menu_new (); - gtk_object_set_data (GTK_OBJECT (gum), "menu7", menu7); + gtk_widget_ref (menu7); + gtk_object_set_data_full (GTK_OBJECT (gum), "menu7", menu7, + (GtkDestroyNotify) gtk_widget_unref); gtk_menu_item_set_submenu (GTK_MENU_ITEM (File), menu7); + menu7_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (menu7)); Open = gtk_menu_item_new_with_label ("Open..."); - gtk_object_set_data (GTK_OBJECT (gum), "Open", Open); + gtk_widget_ref (Open); + gtk_object_set_data_full (GTK_OBJECT (gum), "Open", Open, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (Open); gtk_container_add (GTK_CONTAINER (menu7), Open); gtk_widget_add_accelerator (Open, "activate", accel_group, - GDK_O, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); + GDK_O, GDK_CONTROL_MASK, + GTK_ACCEL_VISIBLE); Reload = gtk_menu_item_new_with_label ("Reload"); - gtk_object_set_data (GTK_OBJECT (gum), "Reload", Reload); + gtk_widget_ref (Reload); + gtk_object_set_data_full (GTK_OBJECT (gum), "Reload", Reload, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (Reload); gtk_container_add (GTK_CONTAINER (menu7), Reload); gtk_widget_add_accelerator (Reload, "activate", accel_group, - GDK_R, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); + GDK_R, GDK_CONTROL_MASK, + GTK_ACCEL_VISIBLE); Save = gtk_menu_item_new_with_label ("Save"); - gtk_object_set_data (GTK_OBJECT (gum), "Save", Save); + gtk_widget_ref (Save); + gtk_object_set_data_full (GTK_OBJECT (gum), "Save", Save, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (Save); gtk_container_add (GTK_CONTAINER (menu7), Save); gtk_widget_add_accelerator (Save, "activate", accel_group, - GDK_S, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); + GDK_S, GDK_CONTROL_MASK, + GTK_ACCEL_VISIBLE); Save_As = gtk_menu_item_new_with_label ("Save As..."); - gtk_object_set_data (GTK_OBJECT (gum), "Save_As", Save_As); + gtk_widget_ref (Save_As); + gtk_object_set_data_full (GTK_OBJECT (gum), "Save_As", Save_As, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (Save_As); gtk_container_add (GTK_CONTAINER (menu7), Save_As); Quit = gtk_menu_item_new_with_label ("Quit"); - gtk_object_set_data (GTK_OBJECT (gum), "Quit", Quit); + gtk_widget_ref (Quit); + gtk_object_set_data_full (GTK_OBJECT (gum), "Quit", Quit, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (Quit); gtk_container_add (GTK_CONTAINER (menu7), Quit); gtk_widget_add_accelerator (Quit, "activate", accel_group, - GDK_Q, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); + GDK_Q, GDK_CONTROL_MASK, + GTK_ACCEL_VISIBLE); Help = gtk_menu_item_new_with_label ("Help"); - gtk_object_set_data (GTK_OBJECT (gum), "Help", Help); + gtk_widget_ref (Help); + gtk_object_set_data_full (GTK_OBJECT (gum), "Help", Help, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (Help); gtk_container_add (GTK_CONTAINER (menubar), Help); gtk_menu_item_right_justify (GTK_MENU_ITEM (Help)); menu8 = gtk_menu_new (); - gtk_object_set_data (GTK_OBJECT (gum), "menu8", menu8); + gtk_widget_ref (menu8); + gtk_object_set_data_full (GTK_OBJECT (gum), "menu8", menu8, + (GtkDestroyNotify) gtk_widget_unref); gtk_menu_item_set_submenu (GTK_MENU_ITEM (Help), menu8); + menu8_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (menu8)); About = gtk_menu_item_new_with_label ("About"); - gtk_object_set_data (GTK_OBJECT (gum), "About", About); + gtk_widget_ref (About); + gtk_object_set_data_full (GTK_OBJECT (gum), "About", About, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (About); gtk_container_add (GTK_CONTAINER (menu8), About); notebook1 = gtk_notebook_new (); - gtk_object_set_data (GTK_OBJECT (gum), "notebook1", notebook1); + gtk_widget_ref (notebook1); + gtk_object_set_data_full (GTK_OBJECT (gum), "notebook1", notebook1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (notebook1); gtk_box_pack_start (GTK_BOX (vbox1), notebook1, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (notebook1), 10); vbox2 = gtk_vbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "vbox2", vbox2); + gtk_widget_ref (vbox2); + gtk_object_set_data_full (GTK_OBJECT (gum), "vbox2", vbox2, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox2); gtk_container_add (GTK_CONTAINER (notebook1), vbox2); label140 = gtk_label_new ("Listener Port List"); - gtk_object_set_data (GTK_OBJECT (gum), "label140", label140); + gtk_widget_ref (label140); + gtk_object_set_data_full (GTK_OBJECT (gum), "label140", label140, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label140); gtk_box_pack_start (GTK_BOX (vbox2), label140, FALSE, TRUE, 6); gtk_misc_set_alignment (GTK_MISC (label140), 0.5, 1); listener_port_list = gtk_clist_new (7); - gtk_object_set_data (GTK_OBJECT (gum), "listener_port_list", listener_port_list); + gtk_widget_ref (listener_port_list); + gtk_object_set_data_full (GTK_OBJECT (gum), "listener_port_list", listener_port_list, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (listener_port_list); gtk_box_pack_start (GTK_BOX (vbox2), listener_port_list, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (listener_port_list), 9); @@ -531,47 +579,65 @@ gtk_clist_column_titles_show (GTK_CLIST (listener_port_list)); label135 = gtk_label_new ("Port"); - gtk_object_set_data (GTK_OBJECT (gum), "label135", label135); + gtk_widget_ref (label135); + gtk_object_set_data_full (GTK_OBJECT (gum), "label135", label135, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label135); gtk_clist_set_column_widget (GTK_CLIST (listener_port_list), 0, label135); label1351 = gtk_label_new ("Accepts"); - gtk_object_set_data (GTK_OBJECT (gum), "label1351", label1351); + gtk_widget_ref (label1351); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1351", label1351, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1351); gtk_clist_set_column_widget (GTK_CLIST (listener_port_list), 1, label1351); label1352 = gtk_label_new ("Denials"); - gtk_object_set_data (GTK_OBJECT (gum), "label1352", label1352); + gtk_widget_ref (label1352); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1352", label1352, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1352); gtk_clist_set_column_widget (GTK_CLIST (listener_port_list), 2, label1352); label1353 = gtk_label_new ("Forks"); - gtk_object_set_data (GTK_OBJECT (gum), "label1353", label1353); + gtk_widget_ref (label1353); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1353", label1353, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1353); gtk_clist_set_column_widget (GTK_CLIST (listener_port_list), 3, label1353); label136 = gtk_label_new ("File Name"); - gtk_object_set_data (GTK_OBJECT (gum), "label136", label136); + gtk_widget_ref (label136); + gtk_object_set_data_full (GTK_OBJECT (gum), "label136", label136, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label136); gtk_clist_set_column_widget (GTK_CLIST (listener_port_list), 4, label136); label137 = gtk_label_new ("Process Name"); - gtk_object_set_data (GTK_OBJECT (gum), "label137", label137); + gtk_widget_ref (label137); + gtk_object_set_data_full (GTK_OBJECT (gum), "label137", label137, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label137); gtk_clist_set_column_widget (GTK_CLIST (listener_port_list), 5, label137); label138 = gtk_label_new ("Arguments"); - gtk_object_set_data (GTK_OBJECT (gum), "label138", label138); + gtk_widget_ref (label138); + gtk_object_set_data_full (GTK_OBJECT (gum), "label138", label138, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label138); gtk_clist_set_column_widget (GTK_CLIST (listener_port_list), 6, label138); table14 = gtk_table_new (4, 3, FALSE); - gtk_object_set_data (GTK_OBJECT (gum), "table14", table14); + gtk_widget_ref (table14); + gtk_object_set_data_full (GTK_OBJECT (gum), "table14", table14, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table14); gtk_box_pack_start (GTK_BOX (vbox2), table14, FALSE, TRUE, 6); label1354 = gtk_label_new ("Port: "); - gtk_object_set_data (GTK_OBJECT (gum), "label1354", label1354); + gtk_widget_ref (label1354); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1354", label1354, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1354); gtk_table_attach (GTK_TABLE (table14), label1354, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), @@ -580,7 +646,9 @@ gtk_misc_set_padding (GTK_MISC (label1354), 10, 0); label1356 = gtk_label_new ("Process Name: "); - gtk_object_set_data (GTK_OBJECT (gum), "label1356", label1356); + gtk_widget_ref (label1356); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1356", label1356, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1356); gtk_table_attach (GTK_TABLE (table14), label1356, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -589,7 +657,9 @@ gtk_misc_set_padding (GTK_MISC (label1356), 10, 0); label1357 = gtk_label_new ("Arguments: "); - gtk_object_set_data (GTK_OBJECT (gum), "label1357", label1357); + gtk_widget_ref (label1357); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1357", label1357, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1357); gtk_table_attach (GTK_TABLE (table14), label1357, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), @@ -598,35 +668,45 @@ gtk_misc_set_padding (GTK_MISC (label1357), 10, 0); listener_entry_port = gtk_entry_new_with_max_length (6); - gtk_object_set_data (GTK_OBJECT (gum), "listener_entry_port", listener_entry_port); + gtk_widget_ref (listener_entry_port); + gtk_object_set_data_full (GTK_OBJECT (gum), "listener_entry_port", listener_entry_port, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (listener_entry_port); gtk_table_attach (GTK_TABLE (table14), listener_entry_port, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); listener_entry_program = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "listener_entry_program", listener_entry_program); + gtk_widget_ref (listener_entry_program); + gtk_object_set_data_full (GTK_OBJECT (gum), "listener_entry_program", listener_entry_program, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (listener_entry_program); gtk_table_attach (GTK_TABLE (table14), listener_entry_program, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); listener_entry_process = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "listener_entry_process", listener_entry_process); + gtk_widget_ref (listener_entry_process); + gtk_object_set_data_full (GTK_OBJECT (gum), "listener_entry_process", listener_entry_process, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (listener_entry_process); gtk_table_attach (GTK_TABLE (table14), listener_entry_process, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); listener_entry_arguments = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "listener_entry_arguments", listener_entry_arguments); + gtk_widget_ref (listener_entry_arguments); + gtk_object_set_data_full (GTK_OBJECT (gum), "listener_entry_arguments", listener_entry_arguments, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (listener_entry_arguments); gtk_table_attach (GTK_TABLE (table14), listener_entry_arguments, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); label1355 = gtk_label_new ("File Name: "); - gtk_object_set_data (GTK_OBJECT (gum), "label1355", label1355); + gtk_widget_ref (label1355); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1355", label1355, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1355); gtk_table_attach (GTK_TABLE (table14), label1355, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -635,7 +715,9 @@ gtk_misc_set_padding (GTK_MISC (label1355), 10, 0); label1358 = gtk_label_new ("(TCP/IP port number to accept connections on)"); - gtk_object_set_data (GTK_OBJECT (gum), "label1358", label1358); + gtk_widget_ref (label1358); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1358", label1358, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1358); gtk_table_attach (GTK_TABLE (table14), label1358, 2, 3, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), @@ -644,7 +726,9 @@ gtk_misc_set_padding (GTK_MISC (label1358), 10, 0); label1359 = gtk_label_new ("(Program to exec() on connection arrival)"); - gtk_object_set_data (GTK_OBJECT (gum), "label1359", label1359); + gtk_widget_ref (label1359); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1359", label1359, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1359); gtk_table_attach (GTK_TABLE (table14), label1359, 2, 3, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), @@ -653,7 +737,9 @@ gtk_misc_set_padding (GTK_MISC (label1359), 10, 0); label1360 = gtk_label_new ("(Process name to show on \"ps\")"); - gtk_object_set_data (GTK_OBJECT (gum), "label1360", label1360); + gtk_widget_ref (label1360); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1360", label1360, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1360); gtk_table_attach (GTK_TABLE (table14), label1360, 2, 3, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), @@ -662,7 +748,9 @@ gtk_misc_set_padding (GTK_MISC (label1360), 10, 0); label1361 = gtk_label_new ("(Additional program arguments, e.g. queue number)"); - gtk_object_set_data (GTK_OBJECT (gum), "label1361", label1361); + gtk_widget_ref (label1361); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1361", label1361, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1361); gtk_table_attach (GTK_TABLE (table14), label1361, 2, 3, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), @@ -671,113 +759,149 @@ gtk_misc_set_padding (GTK_MISC (label1361), 10, 0); hbuttonbox4 = gtk_hbutton_box_new (); - gtk_object_set_data (GTK_OBJECT (gum), "hbuttonbox4", hbuttonbox4); + gtk_widget_ref (hbuttonbox4); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbuttonbox4", hbuttonbox4, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbuttonbox4); gtk_box_pack_start (GTK_BOX (vbox2), hbuttonbox4, FALSE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox4), 6); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox4), GTK_BUTTONBOX_END); listener_port_add = gtk_button_new_with_label ("Add"); - gtk_object_set_data (GTK_OBJECT (gum), "listener_port_add", listener_port_add); + gtk_widget_ref (listener_port_add); + gtk_object_set_data_full (GTK_OBJECT (gum), "listener_port_add", listener_port_add, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (listener_port_add); gtk_container_add (GTK_CONTAINER (hbuttonbox4), listener_port_add); gtk_widget_set_sensitive (listener_port_add, FALSE); gtk_tooltips_set_tip (tooltips, listener_port_add, "Add an entry to the port list.", NULL); listener_port_update = gtk_button_new_with_label ("Update"); - gtk_object_set_data (GTK_OBJECT (gum), "listener_port_update", listener_port_update); + gtk_widget_ref (listener_port_update); + gtk_object_set_data_full (GTK_OBJECT (gum), "listener_port_update", listener_port_update, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (listener_port_update); gtk_container_add (GTK_CONTAINER (hbuttonbox4), listener_port_update); gtk_widget_set_sensitive (listener_port_update, FALSE); listener_port_delete = gtk_button_new_with_label ("Delete"); - gtk_object_set_data (GTK_OBJECT (gum), "listener_port_delete", listener_port_delete); + gtk_widget_ref (listener_port_delete); + gtk_object_set_data_full (GTK_OBJECT (gum), "listener_port_delete", listener_port_delete, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (listener_port_delete); gtk_container_add (GTK_CONTAINER (hbuttonbox4), listener_port_delete); gtk_widget_set_sensitive (listener_port_delete, FALSE); gtk_tooltips_set_tip (tooltips, listener_port_delete, "Delete the selected entry from the port list.", NULL); listener_port_save = gtk_button_new_with_label ("Save"); - gtk_object_set_data (GTK_OBJECT (gum), "listener_port_save", listener_port_save); + gtk_widget_ref (listener_port_save); + gtk_object_set_data_full (GTK_OBJECT (gum), "listener_port_save", listener_port_save, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (listener_port_save); gtk_container_add (GTK_CONTAINER (hbuttonbox4), listener_port_save); gtk_widget_set_sensitive (listener_port_save, FALSE); gtk_tooltips_set_tip (tooltips, listener_port_save, "Save the port list to the .ports file.", NULL); hseparator2 = gtk_hseparator_new (); - gtk_object_set_data (GTK_OBJECT (gum), "hseparator2", hseparator2); + gtk_widget_ref (hseparator2); + gtk_object_set_data_full (GTK_OBJECT (gum), "hseparator2", hseparator2, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hseparator2); gtk_box_pack_start (GTK_BOX (vbox2), hseparator2, FALSE, TRUE, 6); label139 = gtk_label_new ("Listener Process Commands"); - gtk_object_set_data (GTK_OBJECT (gum), "label139", label139); + gtk_widget_ref (label139); + gtk_object_set_data_full (GTK_OBJECT (gum), "label139", label139, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label139); gtk_box_pack_start (GTK_BOX (vbox2), label139, FALSE, TRUE, 0); gtk_misc_set_alignment (GTK_MISC (label139), 0.5, 1); hbox54 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox54", hbox54); + gtk_widget_ref (hbox54); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox54", hbox54, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox54); gtk_box_pack_start (GTK_BOX (vbox2), hbox54, FALSE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox54), 6); label141 = gtk_label_new ("Caution:\nRemember the players."); - gtk_object_set_data (GTK_OBJECT (gum), "label141", label141); + gtk_widget_ref (label141); + gtk_object_set_data_full (GTK_OBJECT (gum), "label141", label141, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label141); gtk_box_pack_start (GTK_BOX (hbox54), label141, TRUE, TRUE, 0); gtk_label_set_justify (GTK_LABEL (label141), GTK_JUSTIFY_LEFT); hbuttonbox3 = gtk_hbutton_box_new (); - gtk_object_set_data (GTK_OBJECT (gum), "hbuttonbox3", hbuttonbox3); + gtk_widget_ref (hbuttonbox3); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbuttonbox3", hbuttonbox3, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbuttonbox3); gtk_box_pack_start (GTK_BOX (hbox54), hbuttonbox3, TRUE, TRUE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox3), GTK_BUTTONBOX_END); listener_enable = gtk_button_new_with_label ("Enable"); - gtk_object_set_data (GTK_OBJECT (gum), "listener_enable", listener_enable); + gtk_widget_ref (listener_enable); + gtk_object_set_data_full (GTK_OBJECT (gum), "listener_enable", listener_enable, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (listener_enable); gtk_container_add (GTK_CONTAINER (hbuttonbox3), listener_enable); gtk_tooltips_set_tip (tooltips, listener_enable, "Enable access to the following command buttons.", NULL); listener_start = gtk_button_new_with_label ("Start"); - gtk_object_set_data (GTK_OBJECT (gum), "listener_start", listener_start); + gtk_widget_ref (listener_start); + gtk_object_set_data_full (GTK_OBJECT (gum), "listener_start", listener_start, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (listener_start); gtk_container_add (GTK_CONTAINER (hbuttonbox3), listener_start); gtk_widget_set_sensitive (listener_start, FALSE); gtk_tooltips_set_tip (tooltips, listener_start, "Start the listener process.", NULL); listener_restart = gtk_button_new_with_label ("Restart"); - gtk_object_set_data (GTK_OBJECT (gum), "listener_restart", listener_restart); + gtk_widget_ref (listener_restart); + gtk_object_set_data_full (GTK_OBJECT (gum), "listener_restart", listener_restart, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (listener_restart); gtk_container_add (GTK_CONTAINER (hbuttonbox3), listener_restart); gtk_widget_set_sensitive (listener_restart, FALSE); gtk_tooltips_set_tip (tooltips, listener_restart, "Signals the listener process to re-read the port list.", NULL); listener_stop = gtk_button_new_with_label ("Stop"); - gtk_object_set_data (GTK_OBJECT (gum), "listener_stop", listener_stop); + gtk_widget_ref (listener_stop); + gtk_object_set_data_full (GTK_OBJECT (gum), "listener_stop", listener_stop, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (listener_stop); gtk_container_add (GTK_CONTAINER (hbuttonbox3), listener_stop); gtk_widget_set_sensitive (listener_stop, FALSE); gtk_tooltips_set_tip (tooltips, listener_stop, "Stops the listener process, player connections will no longer be accepted, metaserver may delist your server.", NULL); label1 = gtk_label_new ("Listener"); - gtk_object_set_data (GTK_OBJECT (gum), "label1", label1); + gtk_widget_ref (label1); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1", label1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label1); vbox3 = gtk_vbox_new (FALSE, 10); - gtk_object_set_data (GTK_OBJECT (gum), "vbox3", vbox3); + gtk_widget_ref (vbox3); + gtk_object_set_data_full (GTK_OBJECT (gum), "vbox3", vbox3, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox3); gtk_container_add (GTK_CONTAINER (notebook1), vbox3); label1363 = gtk_label_new ("Metaserver List"); - gtk_object_set_data (GTK_OBJECT (gum), "label1363", label1363); + gtk_widget_ref (label1363); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1363", label1363, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1363); gtk_box_pack_start (GTK_BOX (vbox3), label1363, FALSE, TRUE, 0); gtk_misc_set_alignment (GTK_MISC (label1363), 0.5, 1); metaserver_list = gtk_clist_new (9); - gtk_object_set_data (GTK_OBJECT (gum), "metaserver_list", metaserver_list); + gtk_widget_ref (metaserver_list); + gtk_object_set_data_full (GTK_OBJECT (gum), "metaserver_list", metaserver_list, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (metaserver_list); gtk_box_pack_start (GTK_BOX (vbox3), metaserver_list, TRUE, TRUE, 0); GTK_WIDGET_UNSET_FLAGS (metaserver_list, GTK_CAN_FOCUS); @@ -794,57 +918,79 @@ gtk_clist_column_titles_show (GTK_CLIST (metaserver_list)); label1364 = gtk_label_new ("Metaserver\nHost Name"); - gtk_object_set_data (GTK_OBJECT (gum), "label1364", label1364); + gtk_widget_ref (label1364); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1364", label1364, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1364); gtk_clist_set_column_widget (GTK_CLIST (metaserver_list), 0, label1364); label1365 = gtk_label_new ("Metaserver\nPort Number"); - gtk_object_set_data (GTK_OBJECT (gum), "label1365", label1365); + gtk_widget_ref (label1365); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1365", label1365, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1365); gtk_clist_set_column_widget (GTK_CLIST (metaserver_list), 1, label1365); label1366 = gtk_label_new ("Minimum\nUpdate Time"); - gtk_object_set_data (GTK_OBJECT (gum), "label1366", label1366); + gtk_widget_ref (label1366); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1366", label1366, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1366); gtk_clist_set_column_widget (GTK_CLIST (metaserver_list), 2, label1366); label1367 = gtk_label_new ("Maximum\nUpdate Time"); - gtk_object_set_data (GTK_OBJECT (gum), "label1367", label1367); + gtk_widget_ref (label1367); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1367", label1367, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1367); gtk_clist_set_column_widget (GTK_CLIST (metaserver_list), 3, label1367); label1368 = gtk_label_new ("Server\nHost Name"); - gtk_object_set_data (GTK_OBJECT (gum), "label1368", label1368); + gtk_widget_ref (label1368); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1368", label1368, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1368); gtk_clist_set_column_widget (GTK_CLIST (metaserver_list), 4, label1368); label1369 = gtk_label_new ("Server\nType"); - gtk_object_set_data (GTK_OBJECT (gum), "label1369", label1369); + gtk_widget_ref (label1369); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1369", label1369, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1369); gtk_clist_set_column_widget (GTK_CLIST (metaserver_list), 5, label1369); label1370 = gtk_label_new ("Player\nPort"); - gtk_object_set_data (GTK_OBJECT (gum), "label1370", label1370); + gtk_widget_ref (label1370); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1370", label1370, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1370); gtk_clist_set_column_widget (GTK_CLIST (metaserver_list), 6, label1370); label1371 = gtk_label_new ("Observer\nPort"); - gtk_object_set_data (GTK_OBJECT (gum), "label1371", label1371); + gtk_widget_ref (label1371); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1371", label1371, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1371); gtk_clist_set_column_widget (GTK_CLIST (metaserver_list), 7, label1371); label1372 = gtk_label_new ("Additional\nComments"); - gtk_object_set_data (GTK_OBJECT (gum), "label1372", label1372); + gtk_widget_ref (label1372); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1372", label1372, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1372); gtk_clist_set_column_widget (GTK_CLIST (metaserver_list), 8, label1372); table15 = gtk_table_new (9, 3, FALSE); - gtk_object_set_data (GTK_OBJECT (gum), "table15", table15); + gtk_widget_ref (table15); + gtk_object_set_data_full (GTK_OBJECT (gum), "table15", table15, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table15); gtk_box_pack_start (GTK_BOX (vbox3), table15, FALSE, TRUE, 10); label1373 = gtk_label_new ("Metaserver Host Name: "); - gtk_object_set_data (GTK_OBJECT (gum), "label1373", label1373); + gtk_widget_ref (label1373); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1373", label1373, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1373); gtk_table_attach (GTK_TABLE (table15), label1373, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), @@ -853,7 +999,9 @@ gtk_misc_set_padding (GTK_MISC (label1373), 10, 0); label1374 = gtk_label_new ("Metaserver Port Number: "); - gtk_object_set_data (GTK_OBJECT (gum), "label1374", label1374); + gtk_widget_ref (label1374); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1374", label1374, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1374); gtk_table_attach (GTK_TABLE (table15), label1374, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -862,7 +1010,9 @@ gtk_misc_set_padding (GTK_MISC (label1374), 10, 0); label1375 = gtk_label_new ("Minimum Update Time: "); - gtk_object_set_data (GTK_OBJECT (gum), "label1375", label1375); + gtk_widget_ref (label1375); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1375", label1375, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1375); gtk_table_attach (GTK_TABLE (table15), label1375, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -871,7 +1021,9 @@ gtk_misc_set_padding (GTK_MISC (label1375), 10, 0); label1376 = gtk_label_new ("Maximum Update Time: "); - gtk_object_set_data (GTK_OBJECT (gum), "label1376", label1376); + gtk_widget_ref (label1376); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1376", label1376, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1376); gtk_table_attach (GTK_TABLE (table15), label1376, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), @@ -880,7 +1032,9 @@ gtk_misc_set_padding (GTK_MISC (label1376), 10, 0); label1377 = gtk_label_new ("Server Host Name: "); - gtk_object_set_data (GTK_OBJECT (gum), "label1377", label1377); + gtk_widget_ref (label1377); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1377", label1377, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1377); gtk_table_attach (GTK_TABLE (table15), label1377, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), @@ -889,7 +1043,9 @@ gtk_misc_set_padding (GTK_MISC (label1377), 10, 0); label1378 = gtk_label_new ("Server Type: "); - gtk_object_set_data (GTK_OBJECT (gum), "label1378", label1378); + gtk_widget_ref (label1378); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1378", label1378, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1378); gtk_table_attach (GTK_TABLE (table15), label1378, 0, 1, 5, 6, (GtkAttachOptions) (GTK_FILL), @@ -898,7 +1054,9 @@ gtk_misc_set_padding (GTK_MISC (label1378), 10, 0); label1379 = gtk_label_new ("Player Port: "); - gtk_object_set_data (GTK_OBJECT (gum), "label1379", label1379); + gtk_widget_ref (label1379); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1379", label1379, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1379); gtk_table_attach (GTK_TABLE (table15), label1379, 0, 1, 6, 7, (GtkAttachOptions) (GTK_FILL), @@ -907,7 +1065,9 @@ gtk_misc_set_padding (GTK_MISC (label1379), 10, 0); label1380 = gtk_label_new ("Observer Port: "); - gtk_object_set_data (GTK_OBJECT (gum), "label1380", label1380); + gtk_widget_ref (label1380); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1380", label1380, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1380); gtk_table_attach (GTK_TABLE (table15), label1380, 0, 1, 7, 8, (GtkAttachOptions) (GTK_FILL), @@ -916,7 +1076,9 @@ gtk_misc_set_padding (GTK_MISC (label1380), 10, 0); label1381 = gtk_label_new ("Additional Comments: "); - gtk_object_set_data (GTK_OBJECT (gum), "label1381", label1381); + gtk_widget_ref (label1381); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1381", label1381, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1381); gtk_table_attach (GTK_TABLE (table15), label1381, 0, 1, 8, 9, (GtkAttachOptions) (GTK_FILL), @@ -925,7 +1087,9 @@ gtk_misc_set_padding (GTK_MISC (label1381), 10, 0); metaserver_entry_port_number = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "metaserver_entry_port_number", metaserver_entry_port_number); + gtk_widget_ref (metaserver_entry_port_number); + gtk_object_set_data_full (GTK_OBJECT (gum), "metaserver_entry_port_number", metaserver_entry_port_number, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (metaserver_entry_port_number); gtk_table_attach (GTK_TABLE (table15), metaserver_entry_port_number, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -933,7 +1097,9 @@ gtk_tooltips_set_tip (tooltips, metaserver_entry_port_number, "The port number at the metaserver that your server is to send the solicitation messages to. The default port is 3521, and should not be changed unless the metaserver administrator says so. Choosing the wrong port will simply delist your server.", NULL); metaserver_entry_minimum_update_time = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "metaserver_entry_minimum_update_time", metaserver_entry_minimum_update_time); + gtk_widget_ref (metaserver_entry_minimum_update_time); + gtk_object_set_data_full (GTK_OBJECT (gum), "metaserver_entry_minimum_update_time", metaserver_entry_minimum_update_time, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (metaserver_entry_minimum_update_time); gtk_table_attach (GTK_TABLE (table15), metaserver_entry_minimum_update_time, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -941,7 +1107,9 @@ gtk_tooltips_set_tip (tooltips, metaserver_entry_minimum_update_time, "The minimum update interval in seconds. The code forces this to a minimum of 60, because if you reduce it below 60 the metaserver will delist your server for flooding. Come on, once a minute is probably enough, eh?", NULL); metaserver_entry_server_host_name = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "metaserver_entry_server_host_name", metaserver_entry_server_host_name); + gtk_widget_ref (metaserver_entry_server_host_name); + gtk_object_set_data_full (GTK_OBJECT (gum), "metaserver_entry_server_host_name", metaserver_entry_server_host_name, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (metaserver_entry_server_host_name); gtk_table_attach (GTK_TABLE (table15), metaserver_entry_server_host_name, 1, 2, 4, 5, (GtkAttachOptions) (GTK_FILL), @@ -949,7 +1117,9 @@ gtk_tooltips_set_tip (tooltips, metaserver_entry_server_host_name, "The DNS host name of your server. This may well be different to the server host name, especially if you are using DNS aliases. This is the address that clients will connect to.", NULL); metaserver_entry_player_port = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "metaserver_entry_player_port", metaserver_entry_player_port); + gtk_widget_ref (metaserver_entry_player_port); + gtk_object_set_data_full (GTK_OBJECT (gum), "metaserver_entry_player_port", metaserver_entry_player_port, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (metaserver_entry_player_port); gtk_table_attach (GTK_TABLE (table15), metaserver_entry_player_port, 1, 2, 6, 7, (GtkAttachOptions) (GTK_FILL), @@ -957,7 +1127,9 @@ gtk_tooltips_set_tip (tooltips, metaserver_entry_player_port, "The port number to which players should connect. The default is 2592. If you have multiple servers on your machine, you may have to change this for one of the servers.", NULL); metaserver_entry_observer_port = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "metaserver_entry_observer_port", metaserver_entry_observer_port); + gtk_widget_ref (metaserver_entry_observer_port); + gtk_object_set_data_full (GTK_OBJECT (gum), "metaserver_entry_observer_port", metaserver_entry_observer_port, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (metaserver_entry_observer_port); gtk_table_attach (GTK_TABLE (table15), metaserver_entry_observer_port, 1, 2, 7, 8, (GtkAttachOptions) (GTK_FILL), @@ -965,7 +1137,9 @@ gtk_tooltips_set_tip (tooltips, metaserver_entry_observer_port, "The port number for observers to connect to. The default is 2593. ", NULL); metaserver_entry_additional_comments = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "metaserver_entry_additional_comments", metaserver_entry_additional_comments); + gtk_widget_ref (metaserver_entry_additional_comments); + gtk_object_set_data_full (GTK_OBJECT (gum), "metaserver_entry_additional_comments", metaserver_entry_additional_comments, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (metaserver_entry_additional_comments); gtk_table_attach (GTK_TABLE (table15), metaserver_entry_additional_comments, 1, 2, 8, 9, (GtkAttachOptions) (GTK_FILL), @@ -973,7 +1147,9 @@ gtk_tooltips_set_tip (tooltips, metaserver_entry_additional_comments, "Comments that you want sent to the metaserver. It is a good idea to include your electronic mail address, so that the metaserver administrator can contact you if she needs to.", NULL); label1383 = gtk_label_new ("(Fully qualified domain name or IP address)"); - gtk_object_set_data (GTK_OBJECT (gum), "label1383", label1383); + gtk_widget_ref (label1383); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1383", label1383, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1383); gtk_table_attach (GTK_TABLE (table15), label1383, 2, 3, 0, 1, (GtkAttachOptions) (GTK_FILL), @@ -982,7 +1158,9 @@ gtk_misc_set_padding (GTK_MISC (label1383), 10, 0); label1384 = gtk_label_new ("(Normally 3521)"); - gtk_object_set_data (GTK_OBJECT (gum), "label1384", label1384); + gtk_widget_ref (label1384); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1384", label1384, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1384); gtk_table_attach (GTK_TABLE (table15), label1384, 2, 3, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -991,7 +1169,9 @@ gtk_misc_set_padding (GTK_MISC (label1384), 10, 0); label1385 = gtk_label_new ("(In seconds, minimum 60)"); - gtk_object_set_data (GTK_OBJECT (gum), "label1385", label1385); + gtk_widget_ref (label1385); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1385", label1385, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1385); gtk_table_attach (GTK_TABLE (table15), label1385, 2, 3, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -1000,7 +1180,9 @@ gtk_misc_set_padding (GTK_MISC (label1385), 10, 0); label1386 = gtk_label_new ("(In seconds)"); - gtk_object_set_data (GTK_OBJECT (gum), "label1386", label1386); + gtk_widget_ref (label1386); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1386", label1386, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1386); gtk_table_attach (GTK_TABLE (table15), label1386, 2, 3, 3, 4, (GtkAttachOptions) (GTK_FILL), @@ -1009,7 +1191,9 @@ gtk_misc_set_padding (GTK_MISC (label1386), 10, 0); label1387 = gtk_label_new ("(Where you want clients to connect)"); - gtk_object_set_data (GTK_OBJECT (gum), "label1387", label1387); + gtk_widget_ref (label1387); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1387", label1387, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1387); gtk_table_attach (GTK_TABLE (table15), label1387, 2, 3, 4, 5, (GtkAttachOptions) (GTK_FILL), @@ -1018,7 +1202,9 @@ gtk_misc_set_padding (GTK_MISC (label1387), 10, 0); label1388 = gtk_label_new ("(B=Bronco, P=Practice, C=Chaos, H=Hockey)"); - gtk_object_set_data (GTK_OBJECT (gum), "label1388", label1388); + gtk_widget_ref (label1388); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1388", label1388, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1388); gtk_table_attach (GTK_TABLE (table15), label1388, 2, 3, 5, 6, (GtkAttachOptions) (GTK_FILL), @@ -1027,7 +1213,9 @@ gtk_misc_set_padding (GTK_MISC (label1388), 10, 0); label1389 = gtk_label_new ("(Normally 2592)"); - gtk_object_set_data (GTK_OBJECT (gum), "label1389", label1389); + gtk_widget_ref (label1389); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1389", label1389, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1389); gtk_table_attach (GTK_TABLE (table15), label1389, 2, 3, 6, 7, (GtkAttachOptions) (GTK_FILL), @@ -1036,7 +1224,9 @@ gtk_misc_set_padding (GTK_MISC (label1389), 10, 0); label1390 = gtk_label_new ("(Normally 2593)"); - gtk_object_set_data (GTK_OBJECT (gum), "label1390", label1390); + gtk_widget_ref (label1390); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1390", label1390, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1390); gtk_table_attach (GTK_TABLE (table15), label1390, 2, 3, 7, 8, (GtkAttachOptions) (GTK_FILL), @@ -1045,7 +1235,9 @@ gtk_misc_set_padding (GTK_MISC (label1390), 10, 0); label1391 = gtk_label_new ("(Include your mail address)"); - gtk_object_set_data (GTK_OBJECT (gum), "label1391", label1391); + gtk_widget_ref (label1391); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1391", label1391, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1391); gtk_table_attach (GTK_TABLE (table15), label1391, 2, 3, 8, 9, (GtkAttachOptions) (GTK_FILL), @@ -1054,7 +1246,9 @@ gtk_misc_set_padding (GTK_MISC (label1391), 10, 0); metaserver_entry_maximum_update_time = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "metaserver_entry_maximum_update_time", metaserver_entry_maximum_update_time); + gtk_widget_ref (metaserver_entry_maximum_update_time); + gtk_object_set_data_full (GTK_OBJECT (gum), "metaserver_entry_maximum_update_time", metaserver_entry_maximum_update_time, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (metaserver_entry_maximum_update_time); gtk_table_attach (GTK_TABLE (table15), metaserver_entry_maximum_update_time, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), @@ -1062,7 +1256,9 @@ gtk_tooltips_set_tip (tooltips, metaserver_entry_maximum_update_time, "This is the maximum update time in seconds. It is the interval that must elapse before the server will repeat a solicitation that has not changed since the last solicitation sent to a particular metaserver.", NULL); metaserver_entry_server_type = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "metaserver_entry_server_type", metaserver_entry_server_type); + gtk_widget_ref (metaserver_entry_server_type); + gtk_object_set_data_full (GTK_OBJECT (gum), "metaserver_entry_server_type", metaserver_entry_server_type, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (metaserver_entry_server_type); gtk_table_attach (GTK_TABLE (table15), metaserver_entry_server_type, 1, 2, 5, 6, (GtkAttachOptions) (GTK_FILL), @@ -1070,7 +1266,9 @@ gtk_tooltips_set_tip (tooltips, metaserver_entry_server_type, "What type of server is this? Enter a letter from the list on the right. Failure to get the right letter will of course result in clients not listing your server.", NULL); metaserver_entry_host_name = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "metaserver_entry_host_name", metaserver_entry_host_name); + gtk_widget_ref (metaserver_entry_host_name); + gtk_object_set_data_full (GTK_OBJECT (gum), "metaserver_entry_host_name", metaserver_entry_host_name, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (metaserver_entry_host_name); gtk_table_attach (GTK_TABLE (table15), metaserver_entry_host_name, 1, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), @@ -1078,39 +1276,53 @@ gtk_tooltips_set_tip (tooltips, metaserver_entry_host_name, "This is the address to which your server will send solicitation messages. The gethostbyname() call is issued once when the server daemon starts. You can enter an IP address, host name from /etc/hosts, or a DNS host name. Common names are metaserver.netrek.org, metaserver.us.netrek.org, and metaserver.eu.netrek.org.", NULL); hbuttonbox5 = gtk_hbutton_box_new (); - gtk_object_set_data (GTK_OBJECT (gum), "hbuttonbox5", hbuttonbox5); + gtk_widget_ref (hbuttonbox5); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbuttonbox5", hbuttonbox5, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbuttonbox5); gtk_box_pack_start (GTK_BOX (vbox3), hbuttonbox5, FALSE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox5), 6); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox5), GTK_BUTTONBOX_END); metaserver_add = gtk_button_new_with_label ("Add"); - gtk_object_set_data (GTK_OBJECT (gum), "metaserver_add", metaserver_add); + gtk_widget_ref (metaserver_add); + gtk_object_set_data_full (GTK_OBJECT (gum), "metaserver_add", metaserver_add, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (metaserver_add); gtk_container_add (GTK_CONTAINER (hbuttonbox5), metaserver_add); metaserver_update = gtk_button_new_with_label ("Update"); - gtk_object_set_data (GTK_OBJECT (gum), "metaserver_update", metaserver_update); + gtk_widget_ref (metaserver_update); + gtk_object_set_data_full (GTK_OBJECT (gum), "metaserver_update", metaserver_update, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (metaserver_update); gtk_container_add (GTK_CONTAINER (hbuttonbox5), metaserver_update); metaserver_delete = gtk_button_new_with_label ("Delete"); - gtk_object_set_data (GTK_OBJECT (gum), "metaserver_delete", metaserver_delete); + gtk_widget_ref (metaserver_delete); + gtk_object_set_data_full (GTK_OBJECT (gum), "metaserver_delete", metaserver_delete, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (metaserver_delete); gtk_container_add (GTK_CONTAINER (hbuttonbox5), metaserver_delete); metaserver_save = gtk_button_new_with_label ("Save"); - gtk_object_set_data (GTK_OBJECT (gum), "metaserver_save", metaserver_save); + gtk_widget_ref (metaserver_save); + gtk_object_set_data_full (GTK_OBJECT (gum), "metaserver_save", metaserver_save, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (metaserver_save); gtk_container_add (GTK_CONTAINER (hbuttonbox5), metaserver_save); label1362 = gtk_label_new ("Metaserver"); - gtk_object_set_data (GTK_OBJECT (gum), "label1362", label1362); + gtk_widget_ref (label1362); + gtk_object_set_data_full (GTK_OBJECT (gum), "label1362", label1362, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label1362); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), label1362); table1 = gtk_table_new (14, 2, FALSE); - gtk_object_set_data (GTK_OBJECT (gum), "table1", table1); + gtk_widget_ref (table1); + gtk_object_set_data_full (GTK_OBJECT (gum), "table1", table1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table1); gtk_container_add (GTK_CONTAINER (notebook1), table1); gtk_container_set_border_width (GTK_CONTAINER (table1), 6); @@ -1118,60 +1330,78 @@ gtk_table_set_col_spacings (GTK_TABLE (table1), 6); label68 = gtk_label_new ("Server Status Settings\n"); - gtk_object_set_data (GTK_OBJECT (gum), "label68", label68); + gtk_widget_ref (label68); + gtk_object_set_data_full (GTK_OBJECT (gum), "label68", label68, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label68); gtk_table_attach (GTK_TABLE (table1), label68, 0, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); PING_FREQ = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "PING_FREQ", PING_FREQ); + gtk_widget_ref (PING_FREQ); + gtk_object_set_data_full (GTK_OBJECT (gum), "PING_FREQ", PING_FREQ, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PING_FREQ); gtk_table_attach (GTK_TABLE (table1), PING_FREQ, 1, 2, 7, 8, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); PING_ILOSS_INTERVAL = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "PING_ILOSS_INTERVAL", PING_ILOSS_INTERVAL); + gtk_widget_ref (PING_ILOSS_INTERVAL); + gtk_object_set_data_full (GTK_OBJECT (gum), "PING_ILOSS_INTERVAL", PING_ILOSS_INTERVAL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PING_ILOSS_INTERVAL); gtk_table_attach (GTK_TABLE (table1), PING_ILOSS_INTERVAL, 1, 2, 8, 9, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); PING_GHOSTBUST = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "PING_GHOSTBUST", PING_GHOSTBUST); + gtk_widget_ref (PING_GHOSTBUST); + gtk_object_set_data_full (GTK_OBJECT (gum), "PING_GHOSTBUST", PING_GHOSTBUST, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PING_GHOSTBUST); gtk_table_attach (GTK_TABLE (table1), PING_GHOSTBUST, 1, 2, 9, 10, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); hbox9 = gtk_hbox_new (FALSE, 6); - gtk_object_set_data (GTK_OBJECT (gum), "hbox9", hbox9); + gtk_widget_ref (hbox9); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox9", hbox9, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox9); gtk_table_attach (GTK_TABLE (table1), hbox9, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); MOTD = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "MOTD", MOTD); + gtk_widget_ref (MOTD); + gtk_object_set_data_full (GTK_OBJECT (gum), "MOTD", MOTD, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (MOTD); gtk_box_pack_start (GTK_BOX (hbox9), MOTD, TRUE, TRUE, 0); gtk_tooltips_set_tip (tooltips, MOTD, "The file to be displayed to players when they connect to the server, the Message Of The Day", NULL); motd_button = gtk_button_new_with_label ("Select File..."); - gtk_object_set_data (GTK_OBJECT (gum), "motd_button", motd_button); + gtk_widget_ref (motd_button); + gtk_object_set_data_full (GTK_OBJECT (gum), "motd_button", motd_button, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (motd_button); gtk_box_pack_start (GTK_BOX (hbox9), motd_button, TRUE, TRUE, 0); label85 = gtk_label_new (""); - gtk_object_set_data (GTK_OBJECT (gum), "label85", label85); + gtk_widget_ref (label85); + gtk_object_set_data_full (GTK_OBJECT (gum), "label85", label85, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label85); gtk_table_attach (GTK_TABLE (table1), label85, 0, 2, 13, 14, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); MOTD_LABEL = gtk_label_new ("Message of the day:"); - gtk_object_set_data (GTK_OBJECT (gum), "MOTD_LABEL", MOTD_LABEL); + gtk_widget_ref (MOTD_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "MOTD_LABEL", MOTD_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (MOTD_LABEL); gtk_table_attach (GTK_TABLE (table1), MOTD_LABEL, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -1180,7 +1410,9 @@ gtk_misc_set_padding (GTK_MISC (MOTD_LABEL), 10, 0); SHOWSYSDEF_LABEL = gtk_label_new ("SHOWSYSDEF:"); - gtk_object_set_data (GTK_OBJECT (gum), "SHOWSYSDEF_LABEL", SHOWSYSDEF_LABEL); + gtk_widget_ref (SHOWSYSDEF_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "SHOWSYSDEF_LABEL", SHOWSYSDEF_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SHOWSYSDEF_LABEL); gtk_table_attach (GTK_TABLE (table1), SHOWSYSDEF_LABEL, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -1189,7 +1421,9 @@ gtk_misc_set_padding (GTK_MISC (SHOWSYSDEF_LABEL), 10, 0); LOADCHECK_LABEL = gtk_label_new ("LOADCHECK:"); - gtk_object_set_data (GTK_OBJECT (gum), "LOADCHECK_LABEL", LOADCHECK_LABEL); + gtk_widget_ref (LOADCHECK_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "LOADCHECK_LABEL", LOADCHECK_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (LOADCHECK_LABEL); gtk_table_attach (GTK_TABLE (table1), LOADCHECK_LABEL, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), @@ -1198,7 +1432,9 @@ gtk_misc_set_padding (GTK_MISC (LOADCHECK_LABEL), 10, 0); MAXLOAD_LABEL = gtk_label_new ("MAXLOAD:"); - gtk_object_set_data (GTK_OBJECT (gum), "MAXLOAD_LABEL", MAXLOAD_LABEL); + gtk_widget_ref (MAXLOAD_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "MAXLOAD_LABEL", MAXLOAD_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (MAXLOAD_LABEL); gtk_table_attach (GTK_TABLE (table1), MAXLOAD_LABEL, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), @@ -1207,7 +1443,9 @@ gtk_misc_set_padding (GTK_MISC (MAXLOAD_LABEL), 10, 0); CONFIRM_LABEL = gtk_label_new ("CONFIRM:"); - gtk_object_set_data (GTK_OBJECT (gum), "CONFIRM_LABEL", CONFIRM_LABEL); + gtk_widget_ref (CONFIRM_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "CONFIRM_LABEL", CONFIRM_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CONFIRM_LABEL); gtk_table_attach (GTK_TABLE (table1), CONFIRM_LABEL, 0, 1, 5, 6, (GtkAttachOptions) (GTK_FILL), @@ -1216,7 +1454,9 @@ gtk_misc_set_padding (GTK_MISC (CONFIRM_LABEL), 10, 0); UDP_LABEL = gtk_label_new ("UDP:"); - gtk_object_set_data (GTK_OBJECT (gum), "UDP_LABEL", UDP_LABEL); + gtk_widget_ref (UDP_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "UDP_LABEL", UDP_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (UDP_LABEL); gtk_table_attach (GTK_TABLE (table1), UDP_LABEL, 0, 1, 6, 7, (GtkAttachOptions) (GTK_FILL), @@ -1224,8 +1464,12 @@ gtk_misc_set_alignment (GTK_MISC (UDP_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (UDP_LABEL), 10, 0); - PING_FREQ_LABEL = gtk_label_new ("PINGFREQ:"); - gtk_object_set_data (GTK_OBJECT (gum), "PING_FREQ_LABEL", PING_FREQ_LABEL); + PING_FREQ_LABEL = gtk_label_new (""); + PING_FREQ_LABEL_key = gtk_label_parse_uline (GTK_LABEL (PING_FREQ_LABEL), + "PING_FREQ:"); + gtk_widget_ref (PING_FREQ_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "PING_FREQ_LABEL", PING_FREQ_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PING_FREQ_LABEL); gtk_table_attach (GTK_TABLE (table1), PING_FREQ_LABEL, 0, 1, 7, 8, (GtkAttachOptions) (GTK_FILL), @@ -1233,8 +1477,12 @@ gtk_misc_set_alignment (GTK_MISC (PING_FREQ_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (PING_FREQ_LABEL), 10, 0); - PING_ILOSS_INTERVAL_LABEL = gtk_label_new ("PINGILOSSINTERVAL:"); - gtk_object_set_data (GTK_OBJECT (gum), "PING_ILOSS_INTERVAL_LABEL", PING_ILOSS_INTERVAL_LABEL); + PING_ILOSS_INTERVAL_LABEL = gtk_label_new (""); + PING_ILOSS_INTERVAL_LABEL_key = gtk_label_parse_uline (GTK_LABEL (PING_ILOSS_INTERVAL_LABEL), + "PING_ILOSS_INTERVAL:"); + gtk_widget_ref (PING_ILOSS_INTERVAL_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "PING_ILOSS_INTERVAL_LABEL", PING_ILOSS_INTERVAL_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PING_ILOSS_INTERVAL_LABEL); gtk_table_attach (GTK_TABLE (table1), PING_ILOSS_INTERVAL_LABEL, 0, 1, 8, 9, (GtkAttachOptions) (GTK_FILL), @@ -1242,8 +1490,12 @@ gtk_misc_set_alignment (GTK_MISC (PING_ILOSS_INTERVAL_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (PING_ILOSS_INTERVAL_LABEL), 10, 0); - PING_GHOSTBUST_LABEL = gtk_label_new ("PINGGHOSTBUST:"); - gtk_object_set_data (GTK_OBJECT (gum), "PING_GHOSTBUST_LABEL", PING_GHOSTBUST_LABEL); + PING_GHOSTBUST_LABEL = gtk_label_new (""); + PING_GHOSTBUST_LABEL_key = gtk_label_parse_uline (GTK_LABEL (PING_GHOSTBUST_LABEL), + "PING_GHOSTBUST:"); + gtk_widget_ref (PING_GHOSTBUST_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "PING_GHOSTBUST_LABEL", PING_GHOSTBUST_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PING_GHOSTBUST_LABEL); gtk_table_attach (GTK_TABLE (table1), PING_GHOSTBUST_LABEL, 0, 1, 9, 10, (GtkAttachOptions) (GTK_FILL), @@ -1251,8 +1503,12 @@ gtk_misc_set_alignment (GTK_MISC (PING_GHOSTBUST_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (PING_GHOSTBUST_LABEL), 10, 0); - PING_GHOSTBUST_INTERVAL_LABEL = gtk_label_new ("PINGGHOSTBUSTINTERVAL:"); - gtk_object_set_data (GTK_OBJECT (gum), "PING_GHOSTBUST_INTERVAL_LABEL", PING_GHOSTBUST_INTERVAL_LABEL); + PING_GHOSTBUST_INTERVAL_LABEL = gtk_label_new (""); + PING_GHOSTBUST_INTERVAL_LABEL_key = gtk_label_parse_uline (GTK_LABEL (PING_GHOSTBUST_INTERVAL_LABEL), + "PING_GHOSTBUST_INTERVAL:"); + gtk_widget_ref (PING_GHOSTBUST_INTERVAL_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "PING_GHOSTBUST_INTERVAL_LABEL", PING_GHOSTBUST_INTERVAL_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PING_GHOSTBUST_INTERVAL_LABEL); gtk_table_attach (GTK_TABLE (table1), PING_GHOSTBUST_INTERVAL_LABEL, 0, 1, 10, 11, (GtkAttachOptions) (GTK_FILL), @@ -1261,14 +1517,18 @@ gtk_misc_set_padding (GTK_MISC (PING_GHOSTBUST_INTERVAL_LABEL), 10, 0); PING_GHOSTBUST_INTERVAL = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "PING_GHOSTBUST_INTERVAL", PING_GHOSTBUST_INTERVAL); + gtk_widget_ref (PING_GHOSTBUST_INTERVAL); + gtk_object_set_data_full (GTK_OBJECT (gum), "PING_GHOSTBUST_INTERVAL", PING_GHOSTBUST_INTERVAL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PING_GHOSTBUST_INTERVAL); gtk_table_attach (GTK_TABLE (table1), PING_GHOSTBUST_INTERVAL, 1, 2, 10, 11, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); hbox11 = gtk_hbox_new (FALSE, 10); - gtk_object_set_data (GTK_OBJECT (gum), "hbox11", hbox11); + gtk_widget_ref (hbox11); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox11", hbox11, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox11); gtk_table_attach (GTK_TABLE (table1), hbox11, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), @@ -1276,19 +1536,25 @@ LOADCHECK_0 = gtk_radio_button_new_with_label (LOADCHECK_group, "No"); LOADCHECK_group = gtk_radio_button_group (GTK_RADIO_BUTTON (LOADCHECK_0)); - gtk_object_set_data (GTK_OBJECT (gum), "LOADCHECK_0", LOADCHECK_0); + gtk_widget_ref (LOADCHECK_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "LOADCHECK_0", LOADCHECK_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (LOADCHECK_0); gtk_box_pack_start (GTK_BOX (hbox11), LOADCHECK_0, FALSE, FALSE, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (LOADCHECK_0), TRUE); LOADCHECK_1 = gtk_radio_button_new_with_label (LOADCHECK_group, "Yes"); LOADCHECK_group = gtk_radio_button_group (GTK_RADIO_BUTTON (LOADCHECK_1)); - gtk_object_set_data (GTK_OBJECT (gum), "LOADCHECK_1", LOADCHECK_1); + gtk_widget_ref (LOADCHECK_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "LOADCHECK_1", LOADCHECK_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (LOADCHECK_1); gtk_box_pack_start (GTK_BOX (hbox11), LOADCHECK_1, FALSE, FALSE, 0); hbox12 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox12", hbox12); + gtk_widget_ref (hbox12); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox12", hbox12, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox12); gtk_table_attach (GTK_TABLE (table1), hbox12, 1, 2, 4, 5, (GtkAttachOptions) (GTK_FILL), @@ -1296,14 +1562,18 @@ MAXLOAD_adj = gtk_adjustment_new (10, 10, 1000, 25, 10, 10); MAXLOAD = gtk_spin_button_new (GTK_ADJUSTMENT (MAXLOAD_adj), 1, 1); - gtk_object_set_data (GTK_OBJECT (gum), "MAXLOAD", MAXLOAD); + gtk_widget_ref (MAXLOAD); + gtk_object_set_data_full (GTK_OBJECT (gum), "MAXLOAD", MAXLOAD, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (MAXLOAD); gtk_box_pack_start (GTK_BOX (hbox12), MAXLOAD, FALSE, FALSE, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (MAXLOAD), TRUE); gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (MAXLOAD), TRUE); hbox13 = gtk_hbox_new (FALSE, 10); - gtk_object_set_data (GTK_OBJECT (gum), "hbox13", hbox13); + gtk_widget_ref (hbox13); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox13", hbox13, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox13); gtk_table_attach (GTK_TABLE (table1), hbox13, 1, 2, 5, 6, (GtkAttachOptions) (GTK_FILL), @@ -1311,24 +1581,32 @@ CONFIRM_0 = gtk_radio_button_new_with_label (CONFIRM_group, "None"); CONFIRM_group = gtk_radio_button_group (GTK_RADIO_BUTTON (CONFIRM_0)); - gtk_object_set_data (GTK_OBJECT (gum), "CONFIRM_0", CONFIRM_0); + gtk_widget_ref (CONFIRM_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "CONFIRM_0", CONFIRM_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CONFIRM_0); gtk_box_pack_start (GTK_BOX (hbox13), CONFIRM_0, FALSE, FALSE, 0); CONFIRM_1 = gtk_radio_button_new_with_label (CONFIRM_group, "RSA"); CONFIRM_group = gtk_radio_button_group (GTK_RADIO_BUTTON (CONFIRM_1)); - gtk_object_set_data (GTK_OBJECT (gum), "CONFIRM_1", CONFIRM_1); + gtk_widget_ref (CONFIRM_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "CONFIRM_1", CONFIRM_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CONFIRM_1); gtk_box_pack_start (GTK_BOX (hbox13), CONFIRM_1, FALSE, FALSE, 0); CONFIRM_2 = gtk_radio_button_new_with_label (CONFIRM_group, "RSA & reserved.c"); CONFIRM_group = gtk_radio_button_group (GTK_RADIO_BUTTON (CONFIRM_2)); - gtk_object_set_data (GTK_OBJECT (gum), "CONFIRM_2", CONFIRM_2); + gtk_widget_ref (CONFIRM_2); + gtk_object_set_data_full (GTK_OBJECT (gum), "CONFIRM_2", CONFIRM_2, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CONFIRM_2); gtk_box_pack_start (GTK_BOX (hbox13), CONFIRM_2, FALSE, FALSE, 0); hbox14 = gtk_hbox_new (FALSE, 10); - gtk_object_set_data (GTK_OBJECT (gum), "hbox14", hbox14); + gtk_widget_ref (hbox14); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox14", hbox14, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox14); gtk_table_attach (GTK_TABLE (table1), hbox14, 1, 2, 6, 7, (GtkAttachOptions) (GTK_FILL), @@ -1336,31 +1614,41 @@ UDP_0 = gtk_radio_button_new_with_label (UDP_group, "Disabled"); UDP_group = gtk_radio_button_group (GTK_RADIO_BUTTON (UDP_0)); - gtk_object_set_data (GTK_OBJECT (gum), "UDP_0", UDP_0); + gtk_widget_ref (UDP_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "UDP_0", UDP_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (UDP_0); gtk_box_pack_start (GTK_BOX (hbox14), UDP_0, FALSE, FALSE, 0); UDP_1 = gtk_radio_button_new_with_label (UDP_group, "Enabled"); UDP_group = gtk_radio_button_group (GTK_RADIO_BUTTON (UDP_1)); - gtk_object_set_data (GTK_OBJECT (gum), "UDP_1", UDP_1); + gtk_widget_ref (UDP_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "UDP_1", UDP_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (UDP_1); gtk_box_pack_start (GTK_BOX (hbox14), UDP_1, FALSE, FALSE, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (UDP_1), TRUE); UDP_2 = gtk_radio_button_new_with_label (UDP_group, "Debug"); UDP_group = gtk_radio_button_group (GTK_RADIO_BUTTON (UDP_2)); - gtk_object_set_data (GTK_OBJECT (gum), "UDP_2", UDP_2); + gtk_widget_ref (UDP_2); + gtk_object_set_data_full (GTK_OBJECT (gum), "UDP_2", UDP_2, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (UDP_2); gtk_box_pack_start (GTK_BOX (hbox14), UDP_2, FALSE, FALSE, 0); UDP_3 = gtk_radio_button_new_with_label (UDP_group, "Verbose"); UDP_group = gtk_radio_button_group (GTK_RADIO_BUTTON (UDP_3)); - gtk_object_set_data (GTK_OBJECT (gum), "UDP_3", UDP_3); + gtk_widget_ref (UDP_3); + gtk_object_set_data_full (GTK_OBJECT (gum), "UDP_3", UDP_3, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (UDP_3); gtk_box_pack_start (GTK_BOX (hbox14), UDP_3, FALSE, FALSE, 0); hbox15 = gtk_hbox_new (FALSE, 10); - gtk_object_set_data (GTK_OBJECT (gum), "hbox15", hbox15); + gtk_widget_ref (hbox15); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox15", hbox15, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox15); gtk_table_attach (GTK_TABLE (table1), hbox15, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -1368,19 +1656,25 @@ SHOWSYSDEF_0 = gtk_radio_button_new_with_label (SHOWSYSDEF_group, "No"); SHOWSYSDEF_group = gtk_radio_button_group (GTK_RADIO_BUTTON (SHOWSYSDEF_0)); - gtk_object_set_data (GTK_OBJECT (gum), "SHOWSYSDEF_0", SHOWSYSDEF_0); + gtk_widget_ref (SHOWSYSDEF_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "SHOWSYSDEF_0", SHOWSYSDEF_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SHOWSYSDEF_0); gtk_box_pack_start (GTK_BOX (hbox15), SHOWSYSDEF_0, FALSE, FALSE, 0); SHOWSYSDEF_1 = gtk_radio_button_new_with_label (SHOWSYSDEF_group, "Yes"); SHOWSYSDEF_group = gtk_radio_button_group (GTK_RADIO_BUTTON (SHOWSYSDEF_1)); - gtk_object_set_data (GTK_OBJECT (gum), "SHOWSYSDEF_1", SHOWSYSDEF_1); + gtk_widget_ref (SHOWSYSDEF_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "SHOWSYSDEF_1", SHOWSYSDEF_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SHOWSYSDEF_1); gtk_box_pack_start (GTK_BOX (hbox15), SHOWSYSDEF_1, FALSE, FALSE, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (SHOWSYSDEF_1), TRUE); MAXUPDATE_LABEL = gtk_label_new ("label132"); - gtk_object_set_data (GTK_OBJECT (gum), "MAXUPDATE_LABEL", MAXUPDATE_LABEL); + gtk_widget_ref (MAXUPDATE_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "MAXUPDATE_LABEL", MAXUPDATE_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (MAXUPDATE_LABEL); gtk_table_attach (GTK_TABLE (table1), MAXUPDATE_LABEL, 0, 1, 11, 12, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), @@ -1389,7 +1683,9 @@ gtk_misc_set_padding (GTK_MISC (MAXUPDATE_LABEL), 10, 0); DEFUPDATE_LABEL = gtk_label_new ("label133"); - gtk_object_set_data (GTK_OBJECT (gum), "DEFUPDATE_LABEL", DEFUPDATE_LABEL); + gtk_widget_ref (DEFUPDATE_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "DEFUPDATE_LABEL", DEFUPDATE_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (DEFUPDATE_LABEL); gtk_table_attach (GTK_TABLE (table1), DEFUPDATE_LABEL, 0, 1, 12, 13, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), @@ -1399,7 +1695,9 @@ DEFUPDATE_adj = gtk_adjustment_new (10, 1, 10, 1, 10, 10); DEFUPDATE = gtk_spin_button_new (GTK_ADJUSTMENT (DEFUPDATE_adj), 1, 0); - gtk_object_set_data (GTK_OBJECT (gum), "DEFUPDATE", DEFUPDATE); + gtk_widget_ref (DEFUPDATE); + gtk_object_set_data_full (GTK_OBJECT (gum), "DEFUPDATE", DEFUPDATE, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (DEFUPDATE); gtk_table_attach (GTK_TABLE (table1), DEFUPDATE, 1, 2, 12, 13, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), @@ -1408,7 +1706,9 @@ MAXUPDATE_adj = gtk_adjustment_new (10, 1, 10, 1, 10, 10); MAXUPDATE = gtk_spin_button_new (GTK_ADJUSTMENT (MAXUPDATE_adj), 1, 0); - gtk_object_set_data (GTK_OBJECT (gum), "MAXUPDATE", MAXUPDATE); + gtk_widget_ref (MAXUPDATE); + gtk_object_set_data_full (GTK_OBJECT (gum), "MAXUPDATE", MAXUPDATE, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (MAXUPDATE); gtk_table_attach (GTK_TABLE (table1), MAXUPDATE, 1, 2, 11, 12, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), @@ -1416,12 +1716,16 @@ gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (MAXUPDATE), TRUE); label133 = gtk_label_new ("Status"); - gtk_object_set_data (GTK_OBJECT (gum), "label133", label133); + gtk_widget_ref (label133); + gtk_object_set_data_full (GTK_OBJECT (gum), "label133", label133, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label133); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 2), label133); - table4 = gtk_table_new (17, 2, FALSE); - gtk_object_set_data (GTK_OBJECT (gum), "table4", table4); + table4 = gtk_table_new (18, 2, FALSE); + gtk_widget_ref (table4); + gtk_object_set_data_full (GTK_OBJECT (gum), "table4", table4, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table4); gtk_container_add (GTK_CONTAINER (notebook1), table4); gtk_container_set_border_width (GTK_CONTAINER (table4), 6); @@ -1429,14 +1733,18 @@ gtk_table_set_col_spacings (GTK_TABLE (table4), 6); label69 = gtk_label_new ("Style Settings\n"); - gtk_object_set_data (GTK_OBJECT (gum), "label69", label69); + gtk_widget_ref (label69); + gtk_object_set_data_full (GTK_OBJECT (gum), "label69", label69, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label69); gtk_table_attach (GTK_TABLE (table4), label69, 0, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); TOURN = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (4, 1, 8, 1, 0, 0))); - gtk_object_set_data (GTK_OBJECT (gum), "TOURN", TOURN); + gtk_widget_ref (TOURN); + gtk_object_set_data_full (GTK_OBJECT (gum), "TOURN", TOURN, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (TOURN); gtk_table_attach (GTK_TABLE (table4), TOURN, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -1444,7 +1752,9 @@ gtk_scale_set_digits (GTK_SCALE (TOURN), 0); hbox1 = gtk_hbox_new (FALSE, 6); - gtk_object_set_data (GTK_OBJECT (gum), "hbox1", hbox1); + gtk_widget_ref (hbox1); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox1", hbox1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox1); gtk_table_attach (GTK_TABLE (table4), hbox1, 1, 2, 4, 5, (GtkAttachOptions) (GTK_FILL), @@ -1452,7 +1762,9 @@ gtk_container_set_border_width (GTK_CONTAINER (hbox1), 6); SHIPS_SC = gtk_check_button_new_with_label ("SC"); - gtk_object_set_data (GTK_OBJECT (gum), "SHIPS_SC", SHIPS_SC); + gtk_widget_ref (SHIPS_SC); + gtk_object_set_data_full (GTK_OBJECT (gum), "SHIPS_SC", SHIPS_SC, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SHIPS_SC); gtk_box_pack_start (GTK_BOX (hbox1), SHIPS_SC, FALSE, TRUE, 0); gtk_tooltips_set_tip (tooltips, SHIPS_SC, "Scout", NULL); @@ -1460,7 +1772,9 @@ gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (SHIPS_SC), FALSE); SHIPS_DD = gtk_check_button_new_with_label ("DD"); - gtk_object_set_data (GTK_OBJECT (gum), "SHIPS_DD", SHIPS_DD); + gtk_widget_ref (SHIPS_DD); + gtk_object_set_data_full (GTK_OBJECT (gum), "SHIPS_DD", SHIPS_DD, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SHIPS_DD); gtk_box_pack_start (GTK_BOX (hbox1), SHIPS_DD, FALSE, TRUE, 0); gtk_tooltips_set_tip (tooltips, SHIPS_DD, "Destroyer", NULL); @@ -1468,7 +1782,9 @@ gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (SHIPS_DD), FALSE); SHIPS_CA = gtk_check_button_new_with_label ("CA"); - gtk_object_set_data (GTK_OBJECT (gum), "SHIPS_CA", SHIPS_CA); + gtk_widget_ref (SHIPS_CA); + gtk_object_set_data_full (GTK_OBJECT (gum), "SHIPS_CA", SHIPS_CA, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SHIPS_CA); gtk_box_pack_start (GTK_BOX (hbox1), SHIPS_CA, FALSE, TRUE, 0); gtk_tooltips_set_tip (tooltips, SHIPS_CA, "Cruiser", NULL); @@ -1476,7 +1792,9 @@ gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (SHIPS_CA), FALSE); SHIPS_BB = gtk_check_button_new_with_label ("BB"); - gtk_object_set_data (GTK_OBJECT (gum), "SHIPS_BB", SHIPS_BB); + gtk_widget_ref (SHIPS_BB); + gtk_object_set_data_full (GTK_OBJECT (gum), "SHIPS_BB", SHIPS_BB, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SHIPS_BB); gtk_box_pack_start (GTK_BOX (hbox1), SHIPS_BB, FALSE, TRUE, 0); gtk_tooltips_set_tip (tooltips, SHIPS_BB, "Battleship", NULL); @@ -1484,7 +1802,9 @@ gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (SHIPS_BB), FALSE); SHIPS_AS = gtk_check_button_new_with_label ("AS"); - gtk_object_set_data (GTK_OBJECT (gum), "SHIPS_AS", SHIPS_AS); + gtk_widget_ref (SHIPS_AS); + gtk_object_set_data_full (GTK_OBJECT (gum), "SHIPS_AS", SHIPS_AS, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SHIPS_AS); gtk_box_pack_start (GTK_BOX (hbox1), SHIPS_AS, FALSE, TRUE, 0); gtk_tooltips_set_tip (tooltips, SHIPS_AS, "Assault Ship", NULL); @@ -1492,7 +1812,9 @@ gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (SHIPS_AS), FALSE); SHIPS_SB = gtk_check_button_new_with_label ("SB"); - gtk_object_set_data (GTK_OBJECT (gum), "SHIPS_SB", SHIPS_SB); + gtk_widget_ref (SHIPS_SB); + gtk_object_set_data_full (GTK_OBJECT (gum), "SHIPS_SB", SHIPS_SB, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SHIPS_SB); gtk_box_pack_start (GTK_BOX (hbox1), SHIPS_SB, FALSE, TRUE, 0); gtk_tooltips_set_tip (tooltips, SHIPS_SB, "Starbase, or outpost", NULL); @@ -1500,26 +1822,34 @@ gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (SHIPS_SB), FALSE); SHIPS_GA = gtk_check_button_new_with_label ("GA"); - gtk_object_set_data (GTK_OBJECT (gum), "SHIPS_GA", SHIPS_GA); + gtk_widget_ref (SHIPS_GA); + gtk_object_set_data_full (GTK_OBJECT (gum), "SHIPS_GA", SHIPS_GA, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SHIPS_GA); gtk_box_pack_start (GTK_BOX (hbox1), SHIPS_GA, FALSE, TRUE, 0); gtk_tooltips_set_tip (tooltips, SHIPS_GA, "Galaxy", NULL); gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (SHIPS_GA), FALSE); SHIPS_AT = gtk_check_button_new_with_label ("AT"); - gtk_object_set_data (GTK_OBJECT (gum), "SHIPS_AT", SHIPS_AT); + gtk_widget_ref (SHIPS_AT); + gtk_object_set_data_full (GTK_OBJECT (gum), "SHIPS_AT", SHIPS_AT, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SHIPS_AT); gtk_box_pack_start (GTK_BOX (hbox1), SHIPS_AT, FALSE, TRUE, 0); gtk_tooltips_set_tip (tooltips, SHIPS_AT, "God ship, once someone has one of these, none of the others make any sense whatsoever.", NULL); gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (SHIPS_AT), FALSE); label103 = gtk_label_new (""); - gtk_object_set_data (GTK_OBJECT (gum), "label103", label103); + gtk_widget_ref (label103); + gtk_object_set_data_full (GTK_OBJECT (gum), "label103", label103, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label103); gtk_box_pack_start (GTK_BOX (hbox1), label103, TRUE, TRUE, 0); hbox2 = gtk_hbox_new (FALSE, 6); - gtk_object_set_data (GTK_OBJECT (gum), "hbox2", hbox2); + gtk_widget_ref (hbox2); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox2", hbox2, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox2); gtk_table_attach (GTK_TABLE (table4), hbox2, 1, 2, 5, 6, (GtkAttachOptions) (GTK_FILL), @@ -1527,24 +1857,32 @@ gtk_container_set_border_width (GTK_CONTAINER (hbox2), 6); WEAPONS_PLASMA = gtk_toggle_button_new_with_label ("PLASMA"); - gtk_object_set_data (GTK_OBJECT (gum), "WEAPONS_PLASMA", WEAPONS_PLASMA); + gtk_widget_ref (WEAPONS_PLASMA); + gtk_object_set_data_full (GTK_OBJECT (gum), "WEAPONS_PLASMA", WEAPONS_PLASMA, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (WEAPONS_PLASMA); gtk_box_pack_start (GTK_BOX (hbox2), WEAPONS_PLASMA, FALSE, TRUE, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WEAPONS_PLASMA), TRUE); WEAPONS_TRACTOR = gtk_toggle_button_new_with_label ("TRACTOR"); - gtk_object_set_data (GTK_OBJECT (gum), "WEAPONS_TRACTOR", WEAPONS_TRACTOR); + gtk_widget_ref (WEAPONS_TRACTOR); + gtk_object_set_data_full (GTK_OBJECT (gum), "WEAPONS_TRACTOR", WEAPONS_TRACTOR, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (WEAPONS_TRACTOR); gtk_box_pack_start (GTK_BOX (hbox2), WEAPONS_TRACTOR, FALSE, TRUE, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WEAPONS_TRACTOR), TRUE); label102 = gtk_label_new (""); - gtk_object_set_data (GTK_OBJECT (gum), "label102", label102); + gtk_widget_ref (label102); + gtk_object_set_data_full (GTK_OBJECT (gum), "label102", label102, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label102); gtk_box_pack_start (GTK_BOX (hbox2), label102, TRUE, TRUE, 0); PLKILLS = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (2, 0, 10, 1, 0, 0))); - gtk_object_set_data (GTK_OBJECT (gum), "PLKILLS", PLKILLS); + gtk_widget_ref (PLKILLS); + gtk_object_set_data_full (GTK_OBJECT (gum), "PLKILLS", PLKILLS, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PLKILLS); gtk_table_attach (GTK_TABLE (table4), PLKILLS, 1, 2, 6, 7, (GtkAttachOptions) (GTK_FILL), @@ -1552,14 +1890,18 @@ gtk_scale_set_digits (GTK_SCALE (PLKILLS), 0); label91 = gtk_label_new (""); - gtk_object_set_data (GTK_OBJECT (gum), "label91", label91); + gtk_widget_ref (label91); + gtk_object_set_data_full (GTK_OBJECT (gum), "label91", label91, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label91); - gtk_table_attach (GTK_TABLE (table4), label91, 0, 2, 16, 17, + gtk_table_attach (GTK_TABLE (table4), label91, 0, 2, 17, 18, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); TOURN_LABEL = gtk_label_new ("Number of players per team for T-Mode:"); - gtk_object_set_data (GTK_OBJECT (gum), "TOURN_LABEL", TOURN_LABEL); + gtk_widget_ref (TOURN_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "TOURN_LABEL", TOURN_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (TOURN_LABEL); gtk_table_attach (GTK_TABLE (table4), TOURN_LABEL, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -1568,7 +1910,9 @@ gtk_misc_set_padding (GTK_MISC (TOURN_LABEL), 10, 0); HUNTERKILLER_LABEL = gtk_label_new ("Periodically send in Iggy robot:"); - gtk_object_set_data (GTK_OBJECT (gum), "HUNTERKILLER_LABEL", HUNTERKILLER_LABEL); + gtk_widget_ref (HUNTERKILLER_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "HUNTERKILLER_LABEL", HUNTERKILLER_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (HUNTERKILLER_LABEL); gtk_table_attach (GTK_TABLE (table4), HUNTERKILLER_LABEL, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -1577,7 +1921,9 @@ gtk_misc_set_padding (GTK_MISC (HUNTERKILLER_LABEL), 10, 0); RESETGALAXY_LABEL = gtk_label_new ("Reset the galaxy on daemon restart:"); - gtk_object_set_data (GTK_OBJECT (gum), "RESETGALAXY_LABEL", RESETGALAXY_LABEL); + gtk_widget_ref (RESETGALAXY_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "RESETGALAXY_LABEL", RESETGALAXY_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (RESETGALAXY_LABEL); gtk_table_attach (GTK_TABLE (table4), RESETGALAXY_LABEL, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), @@ -1586,7 +1932,9 @@ gtk_misc_set_padding (GTK_MISC (RESETGALAXY_LABEL), 10, 0); SHIPS_LABEL = gtk_label_new ("Ships players may chose:"); - gtk_object_set_data (GTK_OBJECT (gum), "SHIPS_LABEL", SHIPS_LABEL); + gtk_widget_ref (SHIPS_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "SHIPS_LABEL", SHIPS_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SHIPS_LABEL); gtk_table_attach (GTK_TABLE (table4), SHIPS_LABEL, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), @@ -1595,7 +1943,9 @@ gtk_misc_set_padding (GTK_MISC (SHIPS_LABEL), 10, 0); WEAPONS_LABEL = gtk_label_new ("Weapons enabled:"); - gtk_object_set_data (GTK_OBJECT (gum), "WEAPONS_LABEL", WEAPONS_LABEL); + gtk_widget_ref (WEAPONS_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "WEAPONS_LABEL", WEAPONS_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (WEAPONS_LABEL); gtk_table_attach (GTK_TABLE (table4), WEAPONS_LABEL, 0, 1, 5, 6, (GtkAttachOptions) (GTK_FILL), @@ -1604,7 +1954,9 @@ gtk_misc_set_padding (GTK_MISC (WEAPONS_LABEL), 10, 0); PLKILLS_LABEL = gtk_label_new ("Kills required before refit for plasma:"); - gtk_object_set_data (GTK_OBJECT (gum), "PLKILLS_LABEL", PLKILLS_LABEL); + gtk_widget_ref (PLKILLS_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "PLKILLS_LABEL", PLKILLS_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PLKILLS_LABEL); gtk_table_attach (GTK_TABLE (table4), PLKILLS_LABEL, 0, 1, 6, 7, (GtkAttachOptions) (GTK_FILL), @@ -1612,127 +1964,148 @@ gtk_misc_set_alignment (GTK_MISC (PLKILLS_LABEL), 1, 0.7); gtk_misc_set_padding (GTK_MISC (PLKILLS_LABEL), 10, 0); - SBRANK_LABEL = gtk_label_new ("Rank required before refit to Stabase:"); - gtk_object_set_data (GTK_OBJECT (gum), "SBRANK_LABEL", SBRANK_LABEL); - gtk_widget_show (SBRANK_LABEL); - gtk_table_attach (GTK_TABLE (table4), SBRANK_LABEL, 0, 1, 7, 8, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - gtk_misc_set_alignment (GTK_MISC (SBRANK_LABEL), 1, 0.5); - gtk_misc_set_padding (GTK_MISC (SBRANK_LABEL), 10, 0); - NODIAG_LABEL = gtk_label_new ("Prevent diagonal team selection:"); - gtk_object_set_data (GTK_OBJECT (gum), "NODIAG_LABEL", NODIAG_LABEL); + gtk_widget_ref (NODIAG_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "NODIAG_LABEL", NODIAG_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (NODIAG_LABEL); - gtk_table_attach (GTK_TABLE (table4), NODIAG_LABEL, 0, 1, 8, 9, + gtk_table_attach (GTK_TABLE (table4), NODIAG_LABEL, 0, 1, 9, 10, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_misc_set_alignment (GTK_MISC (NODIAG_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (NODIAG_LABEL), 10, 0); TOPGUN_LABEL = gtk_label_new ("Enable TOPGUN mode:"); - gtk_object_set_data (GTK_OBJECT (gum), "TOPGUN_LABEL", TOPGUN_LABEL); + gtk_widget_ref (TOPGUN_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "TOPGUN_LABEL", TOPGUN_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (TOPGUN_LABEL); - gtk_table_attach (GTK_TABLE (table4), TOPGUN_LABEL, 0, 1, 9, 10, + gtk_table_attach (GTK_TABLE (table4), TOPGUN_LABEL, 0, 1, 10, 11, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_misc_set_alignment (GTK_MISC (TOPGUN_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (TOPGUN_LABEL), 10, 0); NEWTURN_LABEL = gtk_label_new ("Enable new turning modifications:"); - gtk_object_set_data (GTK_OBJECT (gum), "NEWTURN_LABEL", NEWTURN_LABEL); + gtk_widget_ref (NEWTURN_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "NEWTURN_LABEL", NEWTURN_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (NEWTURN_LABEL); - gtk_table_attach (GTK_TABLE (table4), NEWTURN_LABEL, 0, 1, 10, 11, + gtk_table_attach (GTK_TABLE (table4), NEWTURN_LABEL, 0, 1, 11, 12, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_misc_set_alignment (GTK_MISC (NEWTURN_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (NEWTURN_LABEL), 10, 0); HIDDEN_LABEL = gtk_label_new ("Ships hidden by distance in T-Mode:"); - gtk_object_set_data (GTK_OBJECT (gum), "HIDDEN_LABEL", HIDDEN_LABEL); + gtk_widget_ref (HIDDEN_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "HIDDEN_LABEL", HIDDEN_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (HIDDEN_LABEL); - gtk_table_attach (GTK_TABLE (table4), HIDDEN_LABEL, 0, 1, 11, 12, + gtk_table_attach (GTK_TABLE (table4), HIDDEN_LABEL, 0, 1, 12, 13, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_misc_set_alignment (GTK_MISC (HIDDEN_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (HIDDEN_LABEL), 10, 0); SURRSTART_LABEL = gtk_label_new ("Race surrender starting point (planets):"); - gtk_object_set_data (GTK_OBJECT (gum), "SURRSTART_LABEL", SURRSTART_LABEL); + gtk_widget_ref (SURRSTART_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "SURRSTART_LABEL", SURRSTART_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SURRSTART_LABEL); - gtk_table_attach (GTK_TABLE (table4), SURRSTART_LABEL, 0, 1, 12, 13, + gtk_table_attach (GTK_TABLE (table4), SURRSTART_LABEL, 0, 1, 13, 14, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_misc_set_alignment (GTK_MISC (SURRSTART_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (SURRSTART_LABEL), 10, 0); TRANSWARP_LABEL = gtk_label_new ("Enable ship to Starbase transwarp:"); - gtk_object_set_data (GTK_OBJECT (gum), "TRANSWARP_LABEL", TRANSWARP_LABEL); + gtk_widget_ref (TRANSWARP_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "TRANSWARP_LABEL", TRANSWARP_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (TRANSWARP_LABEL); - gtk_table_attach (GTK_TABLE (table4), TRANSWARP_LABEL, 0, 1, 13, 14, + gtk_table_attach (GTK_TABLE (table4), TRANSWARP_LABEL, 0, 1, 14, 15, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_misc_set_alignment (GTK_MISC (TRANSWARP_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (TRANSWARP_LABEL), 10, 0); WARPSPEED_LABEL = gtk_label_new ("Transwarp speed:"); - gtk_object_set_data (GTK_OBJECT (gum), "WARPSPEED_LABEL", WARPSPEED_LABEL); + gtk_widget_ref (WARPSPEED_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "WARPSPEED_LABEL", WARPSPEED_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (WARPSPEED_LABEL); - gtk_table_attach (GTK_TABLE (table4), WARPSPEED_LABEL, 0, 1, 14, 15, + gtk_table_attach (GTK_TABLE (table4), WARPSPEED_LABEL, 0, 1, 15, 16, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_misc_set_alignment (GTK_MISC (WARPSPEED_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (WARPSPEED_LABEL), 10, 0); VECTOR_LABEL = gtk_label_new ("Enable vector torps:"); - gtk_object_set_data (GTK_OBJECT (gum), "VECTOR_LABEL", VECTOR_LABEL); + gtk_widget_ref (VECTOR_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "VECTOR_LABEL", VECTOR_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (VECTOR_LABEL); - gtk_table_attach (GTK_TABLE (table4), VECTOR_LABEL, 0, 1, 15, 16, + gtk_table_attach (GTK_TABLE (table4), VECTOR_LABEL, 0, 1, 16, 17, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_misc_set_alignment (GTK_MISC (VECTOR_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (VECTOR_LABEL), 10, 0); hbox29 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox29", hbox29); + gtk_widget_ref (hbox29); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox29", hbox29, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox29); - gtk_table_attach (GTK_TABLE (table4), hbox29, 1, 2, 9, 10, + gtk_table_attach (GTK_TABLE (table4), hbox29, 1, 2, 10, 11, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); TOPGUN_0 = gtk_radio_button_new_with_label (TOPGUN_group, "No"); TOPGUN_group = gtk_radio_button_group (GTK_RADIO_BUTTON (TOPGUN_0)); - gtk_object_set_data (GTK_OBJECT (gum), "TOPGUN_0", TOPGUN_0); + gtk_widget_ref (TOPGUN_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "TOPGUN_0", TOPGUN_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (TOPGUN_0); gtk_box_pack_start (GTK_BOX (hbox29), TOPGUN_0, FALSE, FALSE, 0); TOPGUN_1 = gtk_radio_button_new_with_label (TOPGUN_group, "Yes"); TOPGUN_group = gtk_radio_button_group (GTK_RADIO_BUTTON (TOPGUN_1)); - gtk_object_set_data (GTK_OBJECT (gum), "TOPGUN_1", TOPGUN_1); + gtk_widget_ref (TOPGUN_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "TOPGUN_1", TOPGUN_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (TOPGUN_1); gtk_box_pack_start (GTK_BOX (hbox29), TOPGUN_1, FALSE, FALSE, 0); hbox28 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox28", hbox28); + gtk_widget_ref (hbox28); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox28", hbox28, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox28); - gtk_table_attach (GTK_TABLE (table4), hbox28, 1, 2, 8, 9, + gtk_table_attach (GTK_TABLE (table4), hbox28, 1, 2, 9, 10, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); NODIAG_0 = gtk_radio_button_new_with_label (NODIAG_group, "No"); NODIAG_group = gtk_radio_button_group (GTK_RADIO_BUTTON (NODIAG_0)); - gtk_object_set_data (GTK_OBJECT (gum), "NODIAG_0", NODIAG_0); + gtk_widget_ref (NODIAG_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "NODIAG_0", NODIAG_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (NODIAG_0); gtk_box_pack_start (GTK_BOX (hbox28), NODIAG_0, FALSE, FALSE, 0); NODIAG_1 = gtk_radio_button_new_with_label (NODIAG_group, "Yes"); NODIAG_group = gtk_radio_button_group (GTK_RADIO_BUTTON (NODIAG_1)); - gtk_object_set_data (GTK_OBJECT (gum), "NODIAG_1", NODIAG_1); + gtk_widget_ref (NODIAG_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "NODIAG_1", NODIAG_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (NODIAG_1); gtk_box_pack_start (GTK_BOX (hbox28), NODIAG_1, FALSE, FALSE, 0); hbox27 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox27", hbox27); + gtk_widget_ref (hbox27); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox27", hbox27, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox27); gtk_table_attach (GTK_TABLE (table4), hbox27, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), @@ -1740,18 +2113,24 @@ RESETGALAXY_0 = gtk_radio_button_new_with_label (RESETGALAXY_group, "No"); RESETGALAXY_group = gtk_radio_button_group (GTK_RADIO_BUTTON (RESETGALAXY_0)); - gtk_object_set_data (GTK_OBJECT (gum), "RESETGALAXY_0", RESETGALAXY_0); + gtk_widget_ref (RESETGALAXY_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "RESETGALAXY_0", RESETGALAXY_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (RESETGALAXY_0); gtk_box_pack_start (GTK_BOX (hbox27), RESETGALAXY_0, FALSE, FALSE, 0); RESETGALAXY_1 = gtk_radio_button_new_with_label (RESETGALAXY_group, "Yes"); RESETGALAXY_group = gtk_radio_button_group (GTK_RADIO_BUTTON (RESETGALAXY_1)); - gtk_object_set_data (GTK_OBJECT (gum), "RESETGALAXY_1", RESETGALAXY_1); + gtk_widget_ref (RESETGALAXY_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "RESETGALAXY_1", RESETGALAXY_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (RESETGALAXY_1); gtk_box_pack_start (GTK_BOX (hbox27), RESETGALAXY_1, FALSE, FALSE, 0); hbox26 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox26", hbox26); + gtk_widget_ref (hbox26); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox26", hbox26, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox26); gtk_table_attach (GTK_TABLE (table4), hbox26, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -1759,126 +2138,197 @@ HUNTERKILLER_0 = gtk_radio_button_new_with_label (HUNTERKILLER_group, "No"); HUNTERKILLER_group = gtk_radio_button_group (GTK_RADIO_BUTTON (HUNTERKILLER_0)); - gtk_object_set_data (GTK_OBJECT (gum), "HUNTERKILLER_0", HUNTERKILLER_0); + gtk_widget_ref (HUNTERKILLER_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "HUNTERKILLER_0", HUNTERKILLER_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (HUNTERKILLER_0); gtk_box_pack_start (GTK_BOX (hbox26), HUNTERKILLER_0, FALSE, FALSE, 0); HUNTERKILLER_1 = gtk_radio_button_new_with_label (HUNTERKILLER_group, "Yes"); HUNTERKILLER_group = gtk_radio_button_group (GTK_RADIO_BUTTON (HUNTERKILLER_1)); - gtk_object_set_data (GTK_OBJECT (gum), "HUNTERKILLER_1", HUNTERKILLER_1); + gtk_widget_ref (HUNTERKILLER_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "HUNTERKILLER_1", HUNTERKILLER_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (HUNTERKILLER_1); gtk_box_pack_start (GTK_BOX (hbox26), HUNTERKILLER_1, FALSE, FALSE, 0); hbox30 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox30", hbox30); + gtk_widget_ref (hbox30); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox30", hbox30, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox30); - gtk_table_attach (GTK_TABLE (table4), hbox30, 1, 2, 10, 11, + gtk_table_attach (GTK_TABLE (table4), hbox30, 1, 2, 11, 12, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); NEWTURN_0 = gtk_radio_button_new_with_label (NEWTURN_group, "No"); NEWTURN_group = gtk_radio_button_group (GTK_RADIO_BUTTON (NEWTURN_0)); - gtk_object_set_data (GTK_OBJECT (gum), "NEWTURN_0", NEWTURN_0); + gtk_widget_ref (NEWTURN_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "NEWTURN_0", NEWTURN_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (NEWTURN_0); gtk_box_pack_start (GTK_BOX (hbox30), NEWTURN_0, FALSE, FALSE, 0); NEWTURN_1 = gtk_radio_button_new_with_label (NEWTURN_group, "Yes"); NEWTURN_group = gtk_radio_button_group (GTK_RADIO_BUTTON (NEWTURN_1)); - gtk_object_set_data (GTK_OBJECT (gum), "NEWTURN_1", NEWTURN_1); + gtk_widget_ref (NEWTURN_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "NEWTURN_1", NEWTURN_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (NEWTURN_1); gtk_box_pack_start (GTK_BOX (hbox30), NEWTURN_1, FALSE, FALSE, 0); hbox31 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox31", hbox31); + gtk_widget_ref (hbox31); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox31", hbox31, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox31); - gtk_table_attach (GTK_TABLE (table4), hbox31, 1, 2, 13, 14, + gtk_table_attach (GTK_TABLE (table4), hbox31, 1, 2, 14, 15, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); TRANSWARP_0 = gtk_radio_button_new_with_label (TRANSWARP_group, "No"); TRANSWARP_group = gtk_radio_button_group (GTK_RADIO_BUTTON (TRANSWARP_0)); - gtk_object_set_data (GTK_OBJECT (gum), "TRANSWARP_0", TRANSWARP_0); + gtk_widget_ref (TRANSWARP_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "TRANSWARP_0", TRANSWARP_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (TRANSWARP_0); gtk_box_pack_start (GTK_BOX (hbox31), TRANSWARP_0, FALSE, FALSE, 0); TRANSWARP_1 = gtk_radio_button_new_with_label (TRANSWARP_group, "Yes"); TRANSWARP_group = gtk_radio_button_group (GTK_RADIO_BUTTON (TRANSWARP_1)); - gtk_object_set_data (GTK_OBJECT (gum), "TRANSWARP_1", TRANSWARP_1); + gtk_widget_ref (TRANSWARP_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "TRANSWARP_1", TRANSWARP_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (TRANSWARP_1); gtk_box_pack_start (GTK_BOX (hbox31), TRANSWARP_1, FALSE, FALSE, 0); hbox32 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox32", hbox32); + gtk_widget_ref (hbox32); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox32", hbox32, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox32); - gtk_table_attach (GTK_TABLE (table4), hbox32, 1, 2, 15, 16, + gtk_table_attach (GTK_TABLE (table4), hbox32, 1, 2, 16, 17, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); VECTOR_0 = gtk_radio_button_new_with_label (VECTOR_group, "No"); VECTOR_group = gtk_radio_button_group (GTK_RADIO_BUTTON (VECTOR_0)); - gtk_object_set_data (GTK_OBJECT (gum), "VECTOR_0", VECTOR_0); + gtk_widget_ref (VECTOR_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "VECTOR_0", VECTOR_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (VECTOR_0); gtk_box_pack_start (GTK_BOX (hbox32), VECTOR_0, FALSE, FALSE, 0); gtk_widget_set_sensitive (VECTOR_0, FALSE); VECTOR_1 = gtk_radio_button_new_with_label (VECTOR_group, "Yes"); VECTOR_group = gtk_radio_button_group (GTK_RADIO_BUTTON (VECTOR_1)); - gtk_object_set_data (GTK_OBJECT (gum), "VECTOR_1", VECTOR_1); + gtk_widget_ref (VECTOR_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "VECTOR_1", VECTOR_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (VECTOR_1); gtk_box_pack_start (GTK_BOX (hbox32), VECTOR_1, FALSE, FALSE, 0); gtk_widget_set_sensitive (VECTOR_1, FALSE); hbox10 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox10", hbox10); + gtk_widget_ref (hbox10); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox10", hbox10, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox10); - gtk_table_attach (GTK_TABLE (table4), hbox10, 1, 2, 11, 12, + gtk_table_attach (GTK_TABLE (table4), hbox10, 1, 2, 12, 13, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); HIDDEN_0 = gtk_radio_button_new_with_label (HIDDEN_group, "No"); HIDDEN_group = gtk_radio_button_group (GTK_RADIO_BUTTON (HIDDEN_0)); - gtk_object_set_data (GTK_OBJECT (gum), "HIDDEN_0", HIDDEN_0); + gtk_widget_ref (HIDDEN_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "HIDDEN_0", HIDDEN_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (HIDDEN_0); gtk_box_pack_start (GTK_BOX (hbox10), HIDDEN_0, FALSE, FALSE, 0); HIDDEN_1 = gtk_radio_button_new_with_label (HIDDEN_group, "Yes"); HIDDEN_group = gtk_radio_button_group (GTK_RADIO_BUTTON (HIDDEN_1)); - gtk_object_set_data (GTK_OBJECT (gum), "HIDDEN_1", HIDDEN_1); + gtk_widget_ref (HIDDEN_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "HIDDEN_1", HIDDEN_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (HIDDEN_1); gtk_box_pack_start (GTK_BOX (hbox10), HIDDEN_1, FALSE, FALSE, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (HIDDEN_1), TRUE); SURRSTART = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (2, 0, 10, 1, 0, 0))); - gtk_object_set_data (GTK_OBJECT (gum), "SURRSTART", SURRSTART); + gtk_widget_ref (SURRSTART); + gtk_object_set_data_full (GTK_OBJECT (gum), "SURRSTART", SURRSTART, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SURRSTART); - gtk_table_attach (GTK_TABLE (table4), SURRSTART, 1, 2, 12, 13, + gtk_table_attach (GTK_TABLE (table4), SURRSTART, 1, 2, 13, 14, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); gtk_scale_set_digits (GTK_SCALE (SURRSTART), 0); WARPSPEED_adj = gtk_adjustment_new (60, 0, 100, 1, 10, 10); WARPSPEED = gtk_spin_button_new (GTK_ADJUSTMENT (WARPSPEED_adj), 1, 0); - gtk_object_set_data (GTK_OBJECT (gum), "WARPSPEED", WARPSPEED); + gtk_widget_ref (WARPSPEED); + gtk_object_set_data_full (GTK_OBJECT (gum), "WARPSPEED", WARPSPEED, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (WARPSPEED); - gtk_table_attach (GTK_TABLE (table4), WARPSPEED, 1, 2, 14, 15, + gtk_table_attach (GTK_TABLE (table4), WARPSPEED, 1, 2, 15, 16, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (WARPSPEED), TRUE); SBRANK = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "SBRANK", SBRANK); + gtk_widget_ref (SBRANK); + gtk_object_set_data_full (GTK_OBJECT (gum), "SBRANK", SBRANK, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SBRANK); gtk_table_attach (GTK_TABLE (table4), SBRANK, 1, 2, 7, 8, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); + SBRANK_LABEL = gtk_label_new ("Rank required before refit to Stabase:"); + gtk_widget_ref (SBRANK_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "SBRANK_LABEL", SBRANK_LABEL, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (SBRANK_LABEL); + gtk_table_attach (GTK_TABLE (table4), SBRANK_LABEL, 0, 1, 7, 8, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (GTK_FILL), 0, 0); + gtk_misc_set_alignment (GTK_MISC (SBRANK_LABEL), 1, 0.5); + gtk_misc_set_padding (GTK_MISC (SBRANK_LABEL), 10, 0); + + SBPLANETS_LABEL = gtk_label_new ("SBPLANETS"); + gtk_widget_ref (SBPLANETS_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "SBPLANETS_LABEL", SBPLANETS_LABEL, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (SBPLANETS_LABEL); + gtk_table_attach (GTK_TABLE (table4), SBPLANETS_LABEL, 0, 1, 8, 9, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (GTK_FILL), 0, 0); + gtk_label_set_justify (GTK_LABEL (SBPLANETS_LABEL), GTK_JUSTIFY_LEFT); + gtk_misc_set_alignment (GTK_MISC (SBPLANETS_LABEL), 1, 0.5); + gtk_misc_set_padding (GTK_MISC (SBPLANETS_LABEL), 10, 0); + + SBPLANETS = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (5, 1, 20, 1, 0, 0))); + gtk_widget_ref (SBPLANETS); + gtk_object_set_data_full (GTK_OBJECT (gum), "SBPLANETS", SBPLANETS, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (SBPLANETS); + gtk_table_attach (GTK_TABLE (table4), SBPLANETS, 1, 2, 8, 9, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (GTK_FILL), 0, 0); + gtk_scale_set_digits (GTK_SCALE (SBPLANETS), 0); + label6 = gtk_label_new ("Style"); - gtk_object_set_data (GTK_OBJECT (gum), "label6", label6); + gtk_widget_ref (label6); + gtk_object_set_data_full (GTK_OBJECT (gum), "label6", label6, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label6); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 3), label6); table2 = gtk_table_new (4, 2, FALSE); - gtk_object_set_data (GTK_OBJECT (gum), "table2", table2); + gtk_widget_ref (table2); + gtk_object_set_data_full (GTK_OBJECT (gum), "table2", table2, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table2); gtk_container_add (GTK_CONTAINER (notebook1), table2); gtk_container_set_border_width (GTK_CONTAINER (table2), 6); @@ -1886,21 +2336,27 @@ gtk_table_set_col_spacings (GTK_TABLE (table2), 6); label70 = gtk_label_new ("Clue Checking Settings\n"); - gtk_object_set_data (GTK_OBJECT (gum), "label70", label70); + gtk_widget_ref (label70); + gtk_object_set_data_full (GTK_OBJECT (gum), "label70", label70, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label70); gtk_table_attach (GTK_TABLE (table2), label70, 0, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); label74 = gtk_label_new (""); - gtk_object_set_data (GTK_OBJECT (gum), "label74", label74); + gtk_widget_ref (label74); + gtk_object_set_data_full (GTK_OBJECT (gum), "label74", label74, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label74); gtk_table_attach (GTK_TABLE (table2), label74, 0, 2, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); CLUE_LABEL = gtk_label_new ("CLUE:"); - gtk_object_set_data (GTK_OBJECT (gum), "CLUE_LABEL", CLUE_LABEL); + gtk_widget_ref (CLUE_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "CLUE_LABEL", CLUE_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CLUE_LABEL); gtk_table_attach (GTK_TABLE (table2), CLUE_LABEL, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -1909,7 +2365,9 @@ gtk_misc_set_padding (GTK_MISC (CLUE_LABEL), 10, 0); CLUERANK_LABEL = gtk_label_new ("CLUERANK:"); - gtk_object_set_data (GTK_OBJECT (gum), "CLUERANK_LABEL", CLUERANK_LABEL); + gtk_widget_ref (CLUERANK_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "CLUERANK_LABEL", CLUERANK_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CLUERANK_LABEL); gtk_table_attach (GTK_TABLE (table2), CLUERANK_LABEL, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -1918,7 +2376,9 @@ gtk_misc_set_padding (GTK_MISC (CLUERANK_LABEL), 10, 0); hbox33 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox33", hbox33); + gtk_widget_ref (hbox33); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox33", hbox33, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox33); gtk_table_attach (GTK_TABLE (table2), hbox33, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -1926,36 +2386,48 @@ CLUE_0 = gtk_radio_button_new_with_label (CLUE_group, "None"); CLUE_group = gtk_radio_button_group (GTK_RADIO_BUTTON (CLUE_0)); - gtk_object_set_data (GTK_OBJECT (gum), "CLUE_0", CLUE_0); + gtk_widget_ref (CLUE_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "CLUE_0", CLUE_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CLUE_0); gtk_box_pack_start (GTK_BOX (hbox33), CLUE_0, FALSE, FALSE, 0); CLUE_1 = gtk_radio_button_new_with_label (CLUE_group, "Keyword"); CLUE_group = gtk_radio_button_group (GTK_RADIO_BUTTON (CLUE_1)); - gtk_object_set_data (GTK_OBJECT (gum), "CLUE_1", CLUE_1); + gtk_widget_ref (CLUE_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "CLUE_1", CLUE_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CLUE_1); gtk_box_pack_start (GTK_BOX (hbox33), CLUE_1, FALSE, FALSE, 0); CLUE_2 = gtk_radio_button_new_with_label (CLUE_group, "Question & Answer"); CLUE_group = gtk_radio_button_group (GTK_RADIO_BUTTON (CLUE_2)); - gtk_object_set_data (GTK_OBJECT (gum), "CLUE_2", CLUE_2); + gtk_widget_ref (CLUE_2); + gtk_object_set_data_full (GTK_OBJECT (gum), "CLUE_2", CLUE_2, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CLUE_2); gtk_box_pack_start (GTK_BOX (hbox33), CLUE_2, FALSE, FALSE, 0); CLUERANK = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "CLUERANK", CLUERANK); + gtk_widget_ref (CLUERANK); + gtk_object_set_data_full (GTK_OBJECT (gum), "CLUERANK", CLUERANK, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CLUERANK); gtk_table_attach (GTK_TABLE (table2), CLUERANK, 1, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); label2 = gtk_label_new ("Clue Check"); - gtk_object_set_data (GTK_OBJECT (gum), "label2", label2); + gtk_widget_ref (label2); + gtk_object_set_data_full (GTK_OBJECT (gum), "label2", label2, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label2); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 4), label2); table5 = gtk_table_new (10, 2, FALSE); - gtk_object_set_data (GTK_OBJECT (gum), "table5", table5); + gtk_widget_ref (table5); + gtk_object_set_data_full (GTK_OBJECT (gum), "table5", table5, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table5); gtk_container_add (GTK_CONTAINER (notebook1), table5); gtk_container_set_border_width (GTK_CONTAINER (table5), 6); @@ -1963,21 +2435,27 @@ gtk_table_set_col_spacings (GTK_TABLE (table5), 6); label104 = gtk_label_new ("Messaging Settings\n"); - gtk_object_set_data (GTK_OBJECT (gum), "label104", label104); + gtk_widget_ref (label104); + gtk_object_set_data_full (GTK_OBJECT (gum), "label104", label104, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label104); gtk_table_attach (GTK_TABLE (table5), label104, 0, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); label105 = gtk_label_new (""); - gtk_object_set_data (GTK_OBJECT (gum), "label105", label105); + gtk_widget_ref (label105); + gtk_object_set_data_full (GTK_OBJECT (gum), "label105", label105, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label105); gtk_table_attach (GTK_TABLE (table5), label105, 0, 2, 9, 10, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); CHECKMESG_LABEL = gtk_label_new ("CHECKMESG:"); - gtk_object_set_data (GTK_OBJECT (gum), "CHECKMESG_LABEL", CHECKMESG_LABEL); + gtk_widget_ref (CHECKMESG_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "CHECKMESG_LABEL", CHECKMESG_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CHECKMESG_LABEL); gtk_table_attach (GTK_TABLE (table5), CHECKMESG_LABEL, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -1986,7 +2464,9 @@ gtk_misc_set_padding (GTK_MISC (CHECKMESG_LABEL), 10, 0); LOGALL_LABEL = gtk_label_new ("LOGALL:"); - gtk_object_set_data (GTK_OBJECT (gum), "LOGALL_LABEL", LOGALL_LABEL); + gtk_widget_ref (LOGALL_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "LOGALL_LABEL", LOGALL_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (LOGALL_LABEL); gtk_table_attach (GTK_TABLE (table5), LOGALL_LABEL, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -1995,7 +2475,9 @@ gtk_misc_set_padding (GTK_MISC (LOGALL_LABEL), 10, 0); LOGGOD_LABEL = gtk_label_new ("LOGGOD:"); - gtk_object_set_data (GTK_OBJECT (gum), "LOGGOD_LABEL", LOGGOD_LABEL); + gtk_widget_ref (LOGGOD_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "LOGGOD_LABEL", LOGGOD_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (LOGGOD_LABEL); gtk_table_attach (GTK_TABLE (table5), LOGGOD_LABEL, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), @@ -2004,7 +2486,9 @@ gtk_misc_set_padding (GTK_MISC (LOGGOD_LABEL), 10, 0); EVENTLOG_LABEL = gtk_label_new ("EVENTLOG:"); - gtk_object_set_data (GTK_OBJECT (gum), "EVENTLOG_LABEL", EVENTLOG_LABEL); + gtk_widget_ref (EVENTLOG_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "EVENTLOG_LABEL", EVENTLOG_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (EVENTLOG_LABEL); gtk_table_attach (GTK_TABLE (table5), EVENTLOG_LABEL, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), @@ -2013,7 +2497,9 @@ gtk_misc_set_padding (GTK_MISC (EVENTLOG_LABEL), 10, 0); DOOSHER_LABEL = gtk_label_new ("DOOSHER:"); - gtk_object_set_data (GTK_OBJECT (gum), "DOOSHER_LABEL", DOOSHER_LABEL); + gtk_widget_ref (DOOSHER_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "DOOSHER_LABEL", DOOSHER_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (DOOSHER_LABEL); gtk_table_attach (GTK_TABLE (table5), DOOSHER_LABEL, 0, 1, 5, 6, (GtkAttachOptions) (GTK_FILL), @@ -2022,7 +2508,9 @@ gtk_misc_set_padding (GTK_MISC (DOOSHER_LABEL), 10, 0); CHECKSCUM_LABEL = gtk_label_new ("CHECKSCUM:"); - gtk_object_set_data (GTK_OBJECT (gum), "CHECKSCUM_LABEL", CHECKSCUM_LABEL); + gtk_widget_ref (CHECKSCUM_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "CHECKSCUM_LABEL", CHECKSCUM_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CHECKSCUM_LABEL); gtk_table_attach (GTK_TABLE (table5), CHECKSCUM_LABEL, 0, 1, 6, 7, (GtkAttachOptions) (GTK_FILL), @@ -2031,7 +2519,9 @@ gtk_misc_set_padding (GTK_MISC (CHECKSCUM_LABEL), 10, 0); WHYMESS_LABEL = gtk_label_new ("WHYMESS:"); - gtk_object_set_data (GTK_OBJECT (gum), "WHYMESS_LABEL", WHYMESS_LABEL); + gtk_widget_ref (WHYMESS_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "WHYMESS_LABEL", WHYMESS_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (WHYMESS_LABEL); gtk_table_attach (GTK_TABLE (table5), WHYMESS_LABEL, 0, 1, 7, 8, (GtkAttachOptions) (GTK_FILL), @@ -2039,8 +2529,12 @@ gtk_misc_set_alignment (GTK_MISC (WHYMESS_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (WHYMESS_LABEL), 10, 0); - ERROR_LEVEL_LABEL = gtk_label_new ("ERRORLEVEL:"); - gtk_object_set_data (GTK_OBJECT (gum), "ERROR_LEVEL_LABEL", ERROR_LEVEL_LABEL); + ERROR_LEVEL_LABEL = gtk_label_new (""); + gtk_label_parse_uline (GTK_LABEL (ERROR_LEVEL_LABEL), + "ERROR_LEVEL:"); + gtk_widget_ref (ERROR_LEVEL_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "ERROR_LEVEL_LABEL", ERROR_LEVEL_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (ERROR_LEVEL_LABEL); gtk_table_attach (GTK_TABLE (table5), ERROR_LEVEL_LABEL, 0, 1, 8, 9, (GtkAttachOptions) (GTK_FILL), @@ -2049,7 +2543,9 @@ gtk_misc_set_padding (GTK_MISC (ERROR_LEVEL_LABEL), 10, 0); hbox36 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox36", hbox36); + gtk_widget_ref (hbox36); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox36", hbox36, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox36); gtk_table_attach (GTK_TABLE (table5), hbox36, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), @@ -2057,18 +2553,24 @@ LOGGOD_0 = gtk_radio_button_new_with_label (LOGGOD_group, "No"); LOGGOD_group = gtk_radio_button_group (GTK_RADIO_BUTTON (LOGGOD_0)); - gtk_object_set_data (GTK_OBJECT (gum), "LOGGOD_0", LOGGOD_0); + gtk_widget_ref (LOGGOD_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "LOGGOD_0", LOGGOD_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (LOGGOD_0); gtk_box_pack_start (GTK_BOX (hbox36), LOGGOD_0, FALSE, FALSE, 0); LOGGOD_1 = gtk_radio_button_new_with_label (LOGGOD_group, "Yes"); LOGGOD_group = gtk_radio_button_group (GTK_RADIO_BUTTON (LOGGOD_1)); - gtk_object_set_data (GTK_OBJECT (gum), "LOGGOD_1", LOGGOD_1); + gtk_widget_ref (LOGGOD_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "LOGGOD_1", LOGGOD_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (LOGGOD_1); gtk_box_pack_start (GTK_BOX (hbox36), LOGGOD_1, FALSE, FALSE, 0); hbox35 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox35", hbox35); + gtk_widget_ref (hbox35); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox35", hbox35, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox35); gtk_table_attach (GTK_TABLE (table5), hbox35, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -2076,18 +2578,24 @@ LOGALL_0 = gtk_radio_button_new_with_label (LOGALL_group, "No"); LOGALL_group = gtk_radio_button_group (GTK_RADIO_BUTTON (LOGALL_0)); - gtk_object_set_data (GTK_OBJECT (gum), "LOGALL_0", LOGALL_0); + gtk_widget_ref (LOGALL_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "LOGALL_0", LOGALL_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (LOGALL_0); gtk_box_pack_start (GTK_BOX (hbox35), LOGALL_0, FALSE, FALSE, 0); LOGALL_1 = gtk_radio_button_new_with_label (LOGALL_group, "Yes"); LOGALL_group = gtk_radio_button_group (GTK_RADIO_BUTTON (LOGALL_1)); - gtk_object_set_data (GTK_OBJECT (gum), "LOGALL_1", LOGALL_1); + gtk_widget_ref (LOGALL_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "LOGALL_1", LOGALL_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (LOGALL_1); gtk_box_pack_start (GTK_BOX (hbox35), LOGALL_1, FALSE, FALSE, 0); hbox34 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox34", hbox34); + gtk_widget_ref (hbox34); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox34", hbox34, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox34); gtk_table_attach (GTK_TABLE (table5), hbox34, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -2095,18 +2603,24 @@ CHECKMESG_0 = gtk_radio_button_new_with_label (CHECKMESG_group, "No"); CHECKMESG_group = gtk_radio_button_group (GTK_RADIO_BUTTON (CHECKMESG_0)); - gtk_object_set_data (GTK_OBJECT (gum), "CHECKMESG_0", CHECKMESG_0); + gtk_widget_ref (CHECKMESG_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "CHECKMESG_0", CHECKMESG_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CHECKMESG_0); gtk_box_pack_start (GTK_BOX (hbox34), CHECKMESG_0, FALSE, FALSE, 0); CHECKMESG_1 = gtk_radio_button_new_with_label (CHECKMESG_group, "Yes"); CHECKMESG_group = gtk_radio_button_group (GTK_RADIO_BUTTON (CHECKMESG_1)); - gtk_object_set_data (GTK_OBJECT (gum), "CHECKMESG_1", CHECKMESG_1); + gtk_widget_ref (CHECKMESG_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "CHECKMESG_1", CHECKMESG_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CHECKMESG_1); gtk_box_pack_start (GTK_BOX (hbox34), CHECKMESG_1, FALSE, FALSE, 0); hbox37 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox37", hbox37); + gtk_widget_ref (hbox37); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox37", hbox37, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox37); gtk_table_attach (GTK_TABLE (table5), hbox37, 1, 2, 4, 5, (GtkAttachOptions) (GTK_FILL), @@ -2114,18 +2628,24 @@ EVENTLOG_0 = gtk_radio_button_new_with_label (EVENTLOG_group, "No"); EVENTLOG_group = gtk_radio_button_group (GTK_RADIO_BUTTON (EVENTLOG_0)); - gtk_object_set_data (GTK_OBJECT (gum), "EVENTLOG_0", EVENTLOG_0); + gtk_widget_ref (EVENTLOG_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "EVENTLOG_0", EVENTLOG_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (EVENTLOG_0); gtk_box_pack_start (GTK_BOX (hbox37), EVENTLOG_0, FALSE, FALSE, 0); EVENTLOG_1 = gtk_radio_button_new_with_label (EVENTLOG_group, "Yes"); EVENTLOG_group = gtk_radio_button_group (GTK_RADIO_BUTTON (EVENTLOG_1)); - gtk_object_set_data (GTK_OBJECT (gum), "EVENTLOG_1", EVENTLOG_1); + gtk_widget_ref (EVENTLOG_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "EVENTLOG_1", EVENTLOG_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (EVENTLOG_1); gtk_box_pack_start (GTK_BOX (hbox37), EVENTLOG_1, FALSE, FALSE, 0); hbox38 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox38", hbox38); + gtk_widget_ref (hbox38); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox38", hbox38, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox38); gtk_table_attach (GTK_TABLE (table5), hbox38, 1, 2, 5, 6, (GtkAttachOptions) (GTK_FILL), @@ -2133,18 +2653,24 @@ DOOSHER_0 = gtk_radio_button_new_with_label (DOOSHER_group, "No"); DOOSHER_group = gtk_radio_button_group (GTK_RADIO_BUTTON (DOOSHER_0)); - gtk_object_set_data (GTK_OBJECT (gum), "DOOSHER_0", DOOSHER_0); + gtk_widget_ref (DOOSHER_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "DOOSHER_0", DOOSHER_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (DOOSHER_0); gtk_box_pack_start (GTK_BOX (hbox38), DOOSHER_0, FALSE, FALSE, 0); DOOSHER_1 = gtk_radio_button_new_with_label (DOOSHER_group, "Yes"); DOOSHER_group = gtk_radio_button_group (GTK_RADIO_BUTTON (DOOSHER_1)); - gtk_object_set_data (GTK_OBJECT (gum), "DOOSHER_1", DOOSHER_1); + gtk_widget_ref (DOOSHER_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "DOOSHER_1", DOOSHER_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (DOOSHER_1); gtk_box_pack_start (GTK_BOX (hbox38), DOOSHER_1, FALSE, FALSE, 0); hbox39 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox39", hbox39); + gtk_widget_ref (hbox39); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox39", hbox39, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox39); gtk_table_attach (GTK_TABLE (table5), hbox39, 1, 2, 6, 7, (GtkAttachOptions) (GTK_FILL), @@ -2152,18 +2678,24 @@ CHECKSCUM_0 = gtk_radio_button_new_with_label (CHECKSCUM_group, "No"); CHECKSCUM_group = gtk_radio_button_group (GTK_RADIO_BUTTON (CHECKSCUM_0)); - gtk_object_set_data (GTK_OBJECT (gum), "CHECKSCUM_0", CHECKSCUM_0); + gtk_widget_ref (CHECKSCUM_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "CHECKSCUM_0", CHECKSCUM_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CHECKSCUM_0); gtk_box_pack_start (GTK_BOX (hbox39), CHECKSCUM_0, FALSE, FALSE, 0); CHECKSCUM_1 = gtk_radio_button_new_with_label (CHECKSCUM_group, "Yes"); CHECKSCUM_group = gtk_radio_button_group (GTK_RADIO_BUTTON (CHECKSCUM_1)); - gtk_object_set_data (GTK_OBJECT (gum), "CHECKSCUM_1", CHECKSCUM_1); + gtk_widget_ref (CHECKSCUM_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "CHECKSCUM_1", CHECKSCUM_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CHECKSCUM_1); gtk_box_pack_start (GTK_BOX (hbox39), CHECKSCUM_1, FALSE, FALSE, 0); hbox40 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox40", hbox40); + gtk_widget_ref (hbox40); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox40", hbox40, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox40); gtk_table_attach (GTK_TABLE (table5), hbox40, 1, 2, 7, 8, (GtkAttachOptions) (GTK_FILL), @@ -2171,18 +2703,24 @@ WHYMESS_0 = gtk_radio_button_new_with_label (WHYMESS_group, "No"); WHYMESS_group = gtk_radio_button_group (GTK_RADIO_BUTTON (WHYMESS_0)); - gtk_object_set_data (GTK_OBJECT (gum), "WHYMESS_0", WHYMESS_0); + gtk_widget_ref (WHYMESS_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "WHYMESS_0", WHYMESS_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (WHYMESS_0); gtk_box_pack_start (GTK_BOX (hbox40), WHYMESS_0, FALSE, FALSE, 0); WHYMESS_1 = gtk_radio_button_new_with_label (WHYMESS_group, "Yes"); WHYMESS_group = gtk_radio_button_group (GTK_RADIO_BUTTON (WHYMESS_1)); - gtk_object_set_data (GTK_OBJECT (gum), "WHYMESS_1", WHYMESS_1); + gtk_widget_ref (WHYMESS_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "WHYMESS_1", WHYMESS_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (WHYMESS_1); gtk_box_pack_start (GTK_BOX (hbox40), WHYMESS_1, FALSE, FALSE, 0); hbox41 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox41", hbox41); + gtk_widget_ref (hbox41); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox41", hbox41, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox41); gtk_table_attach (GTK_TABLE (table5), hbox41, 1, 2, 8, 9, (GtkAttachOptions) (GTK_FILL), @@ -2190,19 +2728,25 @@ ERROR_LEVEL_adj = gtk_adjustment_new (0, 0, 100, 1, 10, 10); ERROR_LEVEL = gtk_spin_button_new (GTK_ADJUSTMENT (ERROR_LEVEL_adj), 1, 0); - gtk_object_set_data (GTK_OBJECT (gum), "ERROR_LEVEL", ERROR_LEVEL); + gtk_widget_ref (ERROR_LEVEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "ERROR_LEVEL", ERROR_LEVEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (ERROR_LEVEL); gtk_box_pack_start (GTK_BOX (hbox41), ERROR_LEVEL, FALSE, FALSE, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (ERROR_LEVEL), TRUE); gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (ERROR_LEVEL), TRUE); label9 = gtk_label_new ("Messaging"); - gtk_object_set_data (GTK_OBJECT (gum), "label9", label9); + gtk_widget_ref (label9); + gtk_object_set_data_full (GTK_OBJECT (gum), "label9", label9, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label9); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 5), label9); table6 = gtk_table_new (7, 2, FALSE); - gtk_object_set_data (GTK_OBJECT (gum), "table6", table6); + gtk_widget_ref (table6); + gtk_object_set_data_full (GTK_OBJECT (gum), "table6", table6, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table6); gtk_container_add (GTK_CONTAINER (notebook1), table6); gtk_container_set_border_width (GTK_CONTAINER (table6), 6); @@ -2210,14 +2754,18 @@ gtk_table_set_col_spacings (GTK_TABLE (table6), 6); label115 = gtk_label_new ("Galaxy and planet settings\n"); - gtk_object_set_data (GTK_OBJECT (gum), "label115", label115); + gtk_widget_ref (label115); + gtk_object_set_data_full (GTK_OBJECT (gum), "label115", label115, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label115); gtk_table_attach (GTK_TABLE (table6), label115, 0, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); hbox8 = gtk_hbox_new (FALSE, 6); - gtk_object_set_data (GTK_OBJECT (gum), "hbox8", hbox8); + gtk_widget_ref (hbox8); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox8", hbox8, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox8); gtk_table_attach (GTK_TABLE (table6), hbox8, 1, 2, 5, 6, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), @@ -2225,13 +2773,17 @@ gtk_container_set_border_width (GTK_CONTAINER (hbox8), 6); table13 = gtk_table_new (1, 2, FALSE); - gtk_object_set_data (GTK_OBJECT (gum), "table13", table13); + gtk_widget_ref (table13); + gtk_object_set_data_full (GTK_OBJECT (gum), "table13", table13, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table13); gtk_box_pack_start (GTK_BOX (hbox8), table13, TRUE, TRUE, 0); START_ARMIES_adj = gtk_adjustment_new (17, 1, 100, 1, 10, 10); START_ARMIES = gtk_spin_button_new (GTK_ADJUSTMENT (START_ARMIES_adj), 1, 0); - gtk_object_set_data (GTK_OBJECT (gum), "START_ARMIES", START_ARMIES); + gtk_widget_ref (START_ARMIES); + gtk_object_set_data_full (GTK_OBJECT (gum), "START_ARMIES", START_ARMIES, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (START_ARMIES); gtk_table_attach (GTK_TABLE (table13), START_ARMIES, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), @@ -2240,19 +2792,25 @@ gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (START_ARMIES), TRUE); label120 = gtk_label_new (""); - gtk_object_set_data (GTK_OBJECT (gum), "label120", label120); + gtk_widget_ref (label120); + gtk_object_set_data_full (GTK_OBJECT (gum), "label120", label120, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label120); gtk_table_attach (GTK_TABLE (table13), label120, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); label119 = gtk_label_new (""); - gtk_object_set_data (GTK_OBJECT (gum), "label119", label119); + gtk_widget_ref (label119); + gtk_object_set_data_full (GTK_OBJECT (gum), "label119", label119, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label119); gtk_box_pack_start (GTK_BOX (hbox8), label119, TRUE, TRUE, 0); table11 = gtk_table_new (4, 2, FALSE); - gtk_object_set_data (GTK_OBJECT (gum), "table11", table11); + gtk_widget_ref (table11); + gtk_object_set_data_full (GTK_OBJECT (gum), "table11", table11, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table11); gtk_table_attach (GTK_TABLE (table6), table11, 1, 2, 4, 5, (GtkAttachOptions) (GTK_FILL), @@ -2262,7 +2820,9 @@ gtk_table_set_col_spacings (GTK_TABLE (table11), 6); PLANETS_1 = gtk_option_menu_new (); - gtk_object_set_data (GTK_OBJECT (gum), "PLANETS_1", PLANETS_1); + gtk_widget_ref (PLANETS_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "PLANETS_1", PLANETS_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PLANETS_1); gtk_table_attach (GTK_TABLE (table11), PLANETS_1, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -2303,7 +2863,9 @@ gtk_option_menu_set_menu (GTK_OPTION_MENU (PLANETS_1), PLANETS_1_menu); PLANETS_0 = gtk_option_menu_new (); - gtk_object_set_data (GTK_OBJECT (gum), "PLANETS_0", PLANETS_0); + gtk_widget_ref (PLANETS_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "PLANETS_0", PLANETS_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PLANETS_0); gtk_table_attach (GTK_TABLE (table11), PLANETS_0, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), @@ -2341,7 +2903,9 @@ gtk_option_menu_set_menu (GTK_OPTION_MENU (PLANETS_0), PLANETS_0_menu); PLANETS_2 = gtk_option_menu_new (); - gtk_object_set_data (GTK_OBJECT (gum), "PLANETS_2", PLANETS_2); + gtk_widget_ref (PLANETS_2); + gtk_object_set_data_full (GTK_OBJECT (gum), "PLANETS_2", PLANETS_2, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PLANETS_2); gtk_table_attach (GTK_TABLE (table11), PLANETS_2, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -2382,7 +2946,9 @@ gtk_option_menu_set_menu (GTK_OPTION_MENU (PLANETS_2), PLANETS_2_menu); PLANETS_3 = gtk_option_menu_new (); - gtk_object_set_data (GTK_OBJECT (gum), "PLANETS_3", PLANETS_3); + gtk_widget_ref (PLANETS_3); + gtk_object_set_data_full (GTK_OBJECT (gum), "PLANETS_3", PLANETS_3, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PLANETS_3); gtk_table_attach (GTK_TABLE (table11), PLANETS_3, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), @@ -2423,7 +2989,9 @@ gtk_option_menu_set_menu (GTK_OPTION_MENU (PLANETS_3), PLANETS_3_menu); label64 = gtk_label_new ("Federation:"); - gtk_object_set_data (GTK_OBJECT (gum), "label64", label64); + gtk_widget_ref (label64); + gtk_object_set_data_full (GTK_OBJECT (gum), "label64", label64, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label64); gtk_table_attach (GTK_TABLE (table11), label64, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), @@ -2433,7 +3001,9 @@ gtk_misc_set_padding (GTK_MISC (label64), 10, 0); label65 = gtk_label_new ("Romulan:"); - gtk_object_set_data (GTK_OBJECT (gum), "label65", label65); + gtk_widget_ref (label65); + gtk_object_set_data_full (GTK_OBJECT (gum), "label65", label65, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label65); gtk_table_attach (GTK_TABLE (table11), label65, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -2443,7 +3013,9 @@ gtk_misc_set_padding (GTK_MISC (label65), 10, 0); label66 = gtk_label_new ("Klingon:"); - gtk_object_set_data (GTK_OBJECT (gum), "label66", label66); + gtk_widget_ref (label66); + gtk_object_set_data_full (GTK_OBJECT (gum), "label66", label66, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label66); gtk_table_attach (GTK_TABLE (table11), label66, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -2453,7 +3025,9 @@ gtk_misc_set_padding (GTK_MISC (label66), 10, 0); label67 = gtk_label_new ("Orion:"); - gtk_object_set_data (GTK_OBJECT (gum), "label67", label67); + gtk_widget_ref (label67); + gtk_object_set_data_full (GTK_OBJECT (gum), "label67", label67, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label67); gtk_table_attach (GTK_TABLE (table11), label67, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), @@ -2462,8 +3036,12 @@ gtk_misc_set_alignment (GTK_MISC (label67), 1, 0.5); gtk_misc_set_padding (GTK_MISC (label67), 10, 0); - MAX_POP_LABEL = gtk_label_new ("MAXPOP:"); - gtk_object_set_data (GTK_OBJECT (gum), "MAX_POP_LABEL", MAX_POP_LABEL); + MAX_POP_LABEL = gtk_label_new (""); + gtk_label_parse_uline (GTK_LABEL (MAX_POP_LABEL), + "MAX_POP:"); + gtk_widget_ref (MAX_POP_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "MAX_POP_LABEL", MAX_POP_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (MAX_POP_LABEL); gtk_table_attach (GTK_TABLE (table6), MAX_POP_LABEL, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -2471,8 +3049,12 @@ gtk_misc_set_alignment (GTK_MISC (MAX_POP_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (MAX_POP_LABEL), 10, 0); - PLANET_MOVE_LABEL = gtk_label_new ("PLANETMOVE:"); - gtk_object_set_data (GTK_OBJECT (gum), "PLANET_MOVE_LABEL", PLANET_MOVE_LABEL); + PLANET_MOVE_LABEL = gtk_label_new (""); + gtk_label_parse_uline (GTK_LABEL (PLANET_MOVE_LABEL), + "PLANET_MOVE:"); + gtk_widget_ref (PLANET_MOVE_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "PLANET_MOVE_LABEL", PLANET_MOVE_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PLANET_MOVE_LABEL); gtk_table_attach (GTK_TABLE (table6), PLANET_MOVE_LABEL, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -2480,8 +3062,12 @@ gtk_misc_set_alignment (GTK_MISC (PLANET_MOVE_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (PLANET_MOVE_LABEL), 10, 0); - WRAP_GALAXY_LABEL = gtk_label_new ("WRAPGALAXY:"); - gtk_object_set_data (GTK_OBJECT (gum), "WRAP_GALAXY_LABEL", WRAP_GALAXY_LABEL); + WRAP_GALAXY_LABEL = gtk_label_new (""); + gtk_label_parse_uline (GTK_LABEL (WRAP_GALAXY_LABEL), + "WRAP_GALAXY:"); + gtk_widget_ref (WRAP_GALAXY_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "WRAP_GALAXY_LABEL", WRAP_GALAXY_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (WRAP_GALAXY_LABEL); gtk_table_attach (GTK_TABLE (table6), WRAP_GALAXY_LABEL, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), @@ -2490,7 +3076,9 @@ gtk_misc_set_padding (GTK_MISC (WRAP_GALAXY_LABEL), 10, 0); PLANETS_LABEL_DISABLED = gtk_label_new ("PLANETS:"); - gtk_object_set_data (GTK_OBJECT (gum), "PLANETS_LABEL_DISABLED", PLANETS_LABEL_DISABLED); + gtk_widget_ref (PLANETS_LABEL_DISABLED); + gtk_object_set_data_full (GTK_OBJECT (gum), "PLANETS_LABEL_DISABLED", PLANETS_LABEL_DISABLED, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PLANETS_LABEL_DISABLED); gtk_table_attach (GTK_TABLE (table6), PLANETS_LABEL_DISABLED, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), @@ -2499,8 +3087,12 @@ gtk_misc_set_alignment (GTK_MISC (PLANETS_LABEL_DISABLED), 1, 0.1); gtk_misc_set_padding (GTK_MISC (PLANETS_LABEL_DISABLED), 10, 0); - START_ARMIES_LABEL = gtk_label_new ("STARTARMIES:"); - gtk_object_set_data (GTK_OBJECT (gum), "START_ARMIES_LABEL", START_ARMIES_LABEL); + START_ARMIES_LABEL = gtk_label_new (""); + gtk_label_parse_uline (GTK_LABEL (START_ARMIES_LABEL), + "START_ARMIES:"); + gtk_widget_ref (START_ARMIES_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "START_ARMIES_LABEL", START_ARMIES_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (START_ARMIES_LABEL); gtk_table_attach (GTK_TABLE (table6), START_ARMIES_LABEL, 0, 1, 5, 6, (GtkAttachOptions) (GTK_FILL), @@ -2509,14 +3101,18 @@ gtk_misc_set_padding (GTK_MISC (START_ARMIES_LABEL), 10, 0); label121 = gtk_label_new (""); - gtk_object_set_data (GTK_OBJECT (gum), "label121", label121); + gtk_widget_ref (label121); + gtk_object_set_data_full (GTK_OBJECT (gum), "label121", label121, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label121); gtk_table_attach (GTK_TABLE (table6), label121, 0, 2, 6, 7, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); hbox6 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox6", hbox6); + gtk_widget_ref (hbox6); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox6", hbox6, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox6); gtk_table_attach (GTK_TABLE (table6), hbox6, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -2524,18 +3120,24 @@ PLANET_MOVE_0 = gtk_radio_button_new_with_label (PLANET_MOVE_group, "No"); PLANET_MOVE_group = gtk_radio_button_group (GTK_RADIO_BUTTON (PLANET_MOVE_0)); - gtk_object_set_data (GTK_OBJECT (gum), "PLANET_MOVE_0", PLANET_MOVE_0); + gtk_widget_ref (PLANET_MOVE_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "PLANET_MOVE_0", PLANET_MOVE_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PLANET_MOVE_0); gtk_box_pack_start (GTK_BOX (hbox6), PLANET_MOVE_0, FALSE, FALSE, 0); PLANET_MOVE_1 = gtk_radio_button_new_with_label (PLANET_MOVE_group, "Yes"); PLANET_MOVE_group = gtk_radio_button_group (GTK_RADIO_BUTTON (PLANET_MOVE_1)); - gtk_object_set_data (GTK_OBJECT (gum), "PLANET_MOVE_1", PLANET_MOVE_1); + gtk_widget_ref (PLANET_MOVE_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "PLANET_MOVE_1", PLANET_MOVE_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PLANET_MOVE_1); gtk_box_pack_start (GTK_BOX (hbox6), PLANET_MOVE_1, FALSE, FALSE, 0); hbox7 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox7", hbox7); + gtk_widget_ref (hbox7); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox7", hbox7, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox7); gtk_table_attach (GTK_TABLE (table6), hbox7, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), @@ -2543,18 +3145,24 @@ WRAP_GALAXY_0 = gtk_radio_button_new_with_label (WRAP_GALAXY_group, "No"); WRAP_GALAXY_group = gtk_radio_button_group (GTK_RADIO_BUTTON (WRAP_GALAXY_0)); - gtk_object_set_data (GTK_OBJECT (gum), "WRAP_GALAXY_0", WRAP_GALAXY_0); + gtk_widget_ref (WRAP_GALAXY_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "WRAP_GALAXY_0", WRAP_GALAXY_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (WRAP_GALAXY_0); gtk_box_pack_start (GTK_BOX (hbox7), WRAP_GALAXY_0, FALSE, FALSE, 0); WRAP_GALAXY_01 = gtk_radio_button_new_with_label (WRAP_GALAXY_group, "Yes"); WRAP_GALAXY_group = gtk_radio_button_group (GTK_RADIO_BUTTON (WRAP_GALAXY_01)); - gtk_object_set_data (GTK_OBJECT (gum), "WRAP_GALAXY_01", WRAP_GALAXY_01); + gtk_widget_ref (WRAP_GALAXY_01); + gtk_object_set_data_full (GTK_OBJECT (gum), "WRAP_GALAXY_01", WRAP_GALAXY_01, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (WRAP_GALAXY_01); gtk_box_pack_start (GTK_BOX (hbox7), WRAP_GALAXY_01, FALSE, FALSE, 0); hbox5 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox5", hbox5); + gtk_widget_ref (hbox5); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox5", hbox5, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox5); gtk_table_attach (GTK_TABLE (table6), hbox5, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -2562,24 +3170,32 @@ MAX_POP_adj = gtk_adjustment_new (70, 0, 1000, 10, 10, 10); MAX_POP = gtk_spin_button_new (GTK_ADJUSTMENT (MAX_POP_adj), 1, 0); - gtk_object_set_data (GTK_OBJECT (gum), "MAX_POP", MAX_POP); + gtk_widget_ref (MAX_POP); + gtk_object_set_data_full (GTK_OBJECT (gum), "MAX_POP", MAX_POP, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (MAX_POP); gtk_box_pack_start (GTK_BOX (hbox5), MAX_POP, FALSE, FALSE, 6); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (MAX_POP), TRUE); gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (MAX_POP), TRUE); label116 = gtk_label_new (""); - gtk_object_set_data (GTK_OBJECT (gum), "label116", label116); + gtk_widget_ref (label116); + gtk_object_set_data_full (GTK_OBJECT (gum), "label116", label116, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label116); gtk_box_pack_start (GTK_BOX (hbox5), label116, FALSE, TRUE, 0); label17 = gtk_label_new ("Galaxy"); - gtk_object_set_data (GTK_OBJECT (gum), "label17", label17); + gtk_widget_ref (label17); + gtk_object_set_data_full (GTK_OBJECT (gum), "label17", label17, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label17); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 6), label17); table7 = gtk_table_new (4, 2, FALSE); - gtk_object_set_data (GTK_OBJECT (gum), "table7", table7); + gtk_widget_ref (table7); + gtk_object_set_data_full (GTK_OBJECT (gum), "table7", table7, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table7); gtk_container_add (GTK_CONTAINER (notebook1), table7); gtk_container_set_border_width (GTK_CONTAINER (table7), 6); @@ -2587,14 +3203,18 @@ gtk_table_set_col_spacings (GTK_TABLE (table7), 6); label126 = gtk_label_new ("Base Practice Mode Settings\n"); - gtk_object_set_data (GTK_OBJECT (gum), "label126", label126); + gtk_widget_ref (label126); + gtk_object_set_data_full (GTK_OBJECT (gum), "label126", label126, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label126); gtk_table_attach (GTK_TABLE (table7), label126, 0, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); BASEPRACTICE_LABEL = gtk_label_new ("BASEPRACTICE:"); - gtk_object_set_data (GTK_OBJECT (gum), "BASEPRACTICE_LABEL", BASEPRACTICE_LABEL); + gtk_widget_ref (BASEPRACTICE_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "BASEPRACTICE_LABEL", BASEPRACTICE_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (BASEPRACTICE_LABEL); gtk_table_attach (GTK_TABLE (table7), BASEPRACTICE_LABEL, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -2603,7 +3223,9 @@ gtk_misc_set_padding (GTK_MISC (BASEPRACTICE_LABEL), 10, 0); ROBOTHOST_LABEL = gtk_label_new ("ROBOTHOST:"); - gtk_object_set_data (GTK_OBJECT (gum), "ROBOTHOST_LABEL", ROBOTHOST_LABEL); + gtk_widget_ref (ROBOTHOST_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "ROBOTHOST_LABEL", ROBOTHOST_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (ROBOTHOST_LABEL); gtk_table_attach (GTK_TABLE (table7), ROBOTHOST_LABEL, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -2612,7 +3234,9 @@ gtk_misc_set_padding (GTK_MISC (ROBOTHOST_LABEL), 10, 0); hbox42 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox42", hbox42); + gtk_widget_ref (hbox42); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox42", hbox42, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox42); gtk_table_attach (GTK_TABLE (table7), hbox42, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -2620,42 +3244,56 @@ BASEPRACTICE_0 = gtk_radio_button_new_with_label (BASEPRACTICE_group, "No"); BASEPRACTICE_group = gtk_radio_button_group (GTK_RADIO_BUTTON (BASEPRACTICE_0)); - gtk_object_set_data (GTK_OBJECT (gum), "BASEPRACTICE_0", BASEPRACTICE_0); + gtk_widget_ref (BASEPRACTICE_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "BASEPRACTICE_0", BASEPRACTICE_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (BASEPRACTICE_0); gtk_box_pack_start (GTK_BOX (hbox42), BASEPRACTICE_0, FALSE, FALSE, 0); BASEPRACTICE_1 = gtk_radio_button_new_with_label (BASEPRACTICE_group, "Yes"); BASEPRACTICE_group = gtk_radio_button_group (GTK_RADIO_BUTTON (BASEPRACTICE_1)); - gtk_object_set_data (GTK_OBJECT (gum), "BASEPRACTICE_1", BASEPRACTICE_1); + gtk_widget_ref (BASEPRACTICE_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "BASEPRACTICE_1", BASEPRACTICE_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (BASEPRACTICE_1); gtk_box_pack_start (GTK_BOX (hbox42), BASEPRACTICE_1, FALSE, FALSE, 0); hbox43 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox43", hbox43); + gtk_widget_ref (hbox43); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox43", hbox43, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox43); gtk_table_attach (GTK_TABLE (table7), hbox43, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); ROBOTHOST = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "ROBOTHOST", ROBOTHOST); + gtk_widget_ref (ROBOTHOST); + gtk_object_set_data_full (GTK_OBJECT (gum), "ROBOTHOST", ROBOTHOST, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (ROBOTHOST); gtk_box_pack_start (GTK_BOX (hbox43), ROBOTHOST, TRUE, TRUE, 0); label127 = gtk_label_new (""); - gtk_object_set_data (GTK_OBJECT (gum), "label127", label127); + gtk_widget_ref (label127); + gtk_object_set_data_full (GTK_OBJECT (gum), "label127", label127, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label127); gtk_table_attach (GTK_TABLE (table7), label127, 0, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); label51 = gtk_label_new ("Base Practice"); - gtk_object_set_data (GTK_OBJECT (gum), "label51", label51); + gtk_widget_ref (label51); + gtk_object_set_data_full (GTK_OBJECT (gum), "label51", label51, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label51); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 7), label51); table8 = gtk_table_new (3, 2, FALSE); - gtk_object_set_data (GTK_OBJECT (gum), "table8", table8); + gtk_widget_ref (table8); + gtk_object_set_data_full (GTK_OBJECT (gum), "table8", table8, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table8); gtk_container_add (GTK_CONTAINER (notebook1), table8); gtk_container_set_border_width (GTK_CONTAINER (table8), 6); @@ -2663,14 +3301,18 @@ gtk_table_set_col_spacings (GTK_TABLE (table8), 6); label128 = gtk_label_new ("Hockey Mode Settings\n"); - gtk_object_set_data (GTK_OBJECT (gum), "label128", label128); + gtk_widget_ref (label128); + gtk_object_set_data_full (GTK_OBJECT (gum), "label128", label128, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label128); gtk_table_attach (GTK_TABLE (table8), label128, 0, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); HOCKEY_LABEL = gtk_label_new ("HOCKEY:"); - gtk_object_set_data (GTK_OBJECT (gum), "HOCKEY_LABEL", HOCKEY_LABEL); + gtk_widget_ref (HOCKEY_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "HOCKEY_LABEL", HOCKEY_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (HOCKEY_LABEL); gtk_table_attach (GTK_TABLE (table8), HOCKEY_LABEL, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -2679,7 +3321,9 @@ gtk_misc_set_padding (GTK_MISC (HOCKEY_LABEL), 10, 0); hbox44 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox44", hbox44); + gtk_widget_ref (hbox44); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox44", hbox44, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox44); gtk_table_attach (GTK_TABLE (table8), hbox44, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -2687,30 +3331,40 @@ HOCKEY_0 = gtk_radio_button_new_with_label (HOCKEY_group, "No"); HOCKEY_group = gtk_radio_button_group (GTK_RADIO_BUTTON (HOCKEY_0)); - gtk_object_set_data (GTK_OBJECT (gum), "HOCKEY_0", HOCKEY_0); + gtk_widget_ref (HOCKEY_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "HOCKEY_0", HOCKEY_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (HOCKEY_0); gtk_box_pack_start (GTK_BOX (hbox44), HOCKEY_0, FALSE, FALSE, 0); HOCKEY_1 = gtk_radio_button_new_with_label (HOCKEY_group, "Yes"); HOCKEY_group = gtk_radio_button_group (GTK_RADIO_BUTTON (HOCKEY_1)); - gtk_object_set_data (GTK_OBJECT (gum), "HOCKEY_1", HOCKEY_1); + gtk_widget_ref (HOCKEY_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "HOCKEY_1", HOCKEY_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (HOCKEY_1); gtk_box_pack_start (GTK_BOX (hbox44), HOCKEY_1, FALSE, FALSE, 0); label131 = gtk_label_new (""); - gtk_object_set_data (GTK_OBJECT (gum), "label131", label131); + gtk_widget_ref (label131); + gtk_object_set_data_full (GTK_OBJECT (gum), "label131", label131, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label131); gtk_table_attach (GTK_TABLE (table8), label131, 0, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); label54 = gtk_label_new ("Hockey"); - gtk_object_set_data (GTK_OBJECT (gum), "label54", label54); + gtk_widget_ref (label54); + gtk_object_set_data_full (GTK_OBJECT (gum), "label54", label54, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label54); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 8), label54); table9 = gtk_table_new (4, 2, FALSE); - gtk_object_set_data (GTK_OBJECT (gum), "table9", table9); + gtk_widget_ref (table9); + gtk_object_set_data_full (GTK_OBJECT (gum), "table9", table9, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table9); gtk_container_add (GTK_CONTAINER (notebook1), table9); gtk_container_set_border_width (GTK_CONTAINER (table9), 6); @@ -2718,7 +3372,9 @@ gtk_table_set_col_spacings (GTK_TABLE (table9), 6); hbox45 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox45", hbox45); + gtk_widget_ref (hbox45); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox45", hbox45, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox45); gtk_table_attach (GTK_TABLE (table9), hbox45, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -2726,32 +3382,42 @@ INL_0 = gtk_radio_button_new_with_label (INL_group, "No"); INL_group = gtk_radio_button_group (GTK_RADIO_BUTTON (INL_0)); - gtk_object_set_data (GTK_OBJECT (gum), "INL_0", INL_0); + gtk_widget_ref (INL_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "INL_0", INL_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (INL_0); gtk_box_pack_start (GTK_BOX (hbox45), INL_0, FALSE, FALSE, 0); INL_1 = gtk_radio_button_new_with_label (INL_group, "Yes"); INL_group = gtk_radio_button_group (GTK_RADIO_BUTTON (INL_1)); - gtk_object_set_data (GTK_OBJECT (gum), "INL_1", INL_1); + gtk_widget_ref (INL_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "INL_1", INL_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (INL_1); gtk_box_pack_start (GTK_BOX (hbox45), INL_1, FALSE, FALSE, 0); inl = gtk_label_new ("INL Server Settings\n"); - gtk_object_set_data (GTK_OBJECT (gum), "inl", inl); + gtk_widget_ref (inl); + gtk_object_set_data_full (GTK_OBJECT (gum), "inl", inl, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (inl); gtk_table_attach (GTK_TABLE (table9), inl, 0, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); label130 = gtk_label_new (""); - gtk_object_set_data (GTK_OBJECT (gum), "label130", label130); + gtk_widget_ref (label130); + gtk_object_set_data_full (GTK_OBJECT (gum), "label130", label130, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label130); gtk_table_attach (GTK_TABLE (table9), label130, 0, 2, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); INL_LABEL = gtk_label_new ("INL:"); - gtk_object_set_data (GTK_OBJECT (gum), "INL_LABEL", INL_LABEL); + gtk_widget_ref (INL_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "INL_LABEL", INL_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (INL_LABEL); gtk_table_attach (GTK_TABLE (table9), INL_LABEL, 0, 1, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), @@ -2759,8 +3425,12 @@ gtk_misc_set_alignment (GTK_MISC (INL_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (INL_LABEL), 10, 0); - INL_RECORD_LABEL = gtk_label_new ("INLRECORD:"); - gtk_object_set_data (GTK_OBJECT (gum), "INL_RECORD_LABEL", INL_RECORD_LABEL); + INL_RECORD_LABEL = gtk_label_new (""); + gtk_label_parse_uline (GTK_LABEL (INL_RECORD_LABEL), + "INL_RECORD:"); + gtk_widget_ref (INL_RECORD_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "INL_RECORD_LABEL", INL_RECORD_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (INL_RECORD_LABEL); gtk_table_attach (GTK_TABLE (table9), INL_RECORD_LABEL, 0, 1, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), @@ -2769,7 +3439,9 @@ gtk_misc_set_padding (GTK_MISC (INL_RECORD_LABEL), 10, 0); hbox55 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox55", hbox55); + gtk_widget_ref (hbox55); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox55", hbox55, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox55); gtk_table_attach (GTK_TABLE (table9), hbox55, 1, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), @@ -2777,23 +3449,31 @@ INL_RECORD_0 = gtk_radio_button_new_with_label (INL_RECORD_group, "No"); INL_RECORD_group = gtk_radio_button_group (GTK_RADIO_BUTTON (INL_RECORD_0)); - gtk_object_set_data (GTK_OBJECT (gum), "INL_RECORD_0", INL_RECORD_0); + gtk_widget_ref (INL_RECORD_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "INL_RECORD_0", INL_RECORD_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (INL_RECORD_0); gtk_box_pack_start (GTK_BOX (hbox55), INL_RECORD_0, FALSE, FALSE, 0); INL_RECORD_1 = gtk_radio_button_new_with_label (INL_RECORD_group, "Yes"); INL_RECORD_group = gtk_radio_button_group (GTK_RADIO_BUTTON (INL_RECORD_1)); - gtk_object_set_data (GTK_OBJECT (gum), "INL_RECORD_1", INL_RECORD_1); + gtk_widget_ref (INL_RECORD_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "INL_RECORD_1", INL_RECORD_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (INL_RECORD_1); gtk_box_pack_start (GTK_BOX (hbox55), INL_RECORD_1, FALSE, FALSE, 0); INL_NOTEBOOK_LABEL = gtk_label_new ("INL"); - gtk_object_set_data (GTK_OBJECT (gum), "INL_NOTEBOOK_LABEL", INL_NOTEBOOK_LABEL); + gtk_widget_ref (INL_NOTEBOOK_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "INL_NOTEBOOK_LABEL", INL_NOTEBOOK_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (INL_NOTEBOOK_LABEL); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 9), INL_NOTEBOOK_LABEL); table10 = gtk_table_new (6, 2, FALSE); - gtk_object_set_data (GTK_OBJECT (gum), "table10", table10); + gtk_widget_ref (table10); + gtk_object_set_data_full (GTK_OBJECT (gum), "table10", table10, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table10); gtk_container_add (GTK_CONTAINER (notebook1), table10); gtk_container_set_border_width (GTK_CONTAINER (table10), 6); @@ -2801,14 +3481,18 @@ gtk_table_set_col_spacings (GTK_TABLE (table10), 6); label124 = gtk_label_new ("Dogfight (Mars) Server Settings\n"); - gtk_object_set_data (GTK_OBJECT (gum), "label124", label124); + gtk_widget_ref (label124); + gtk_object_set_data_full (GTK_OBJECT (gum), "label124", label124, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label124); gtk_table_attach (GTK_TABLE (table10), label124, 0, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); DOGFIGHT_LABEL = gtk_label_new ("DOGFIGHT:"); - gtk_object_set_data (GTK_OBJECT (gum), "DOGFIGHT_LABEL", DOGFIGHT_LABEL); + gtk_widget_ref (DOGFIGHT_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "DOGFIGHT_LABEL", DOGFIGHT_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (DOGFIGHT_LABEL); gtk_table_attach (GTK_TABLE (table10), DOGFIGHT_LABEL, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -2817,7 +3501,9 @@ gtk_misc_set_padding (GTK_MISC (DOGFIGHT_LABEL), 10, 0); CONTESTSIZE_LABEL = gtk_label_new ("CONTESTSIZE:"); - gtk_object_set_data (GTK_OBJECT (gum), "CONTESTSIZE_LABEL", CONTESTSIZE_LABEL); + gtk_widget_ref (CONTESTSIZE_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "CONTESTSIZE_LABEL", CONTESTSIZE_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CONTESTSIZE_LABEL); gtk_table_attach (GTK_TABLE (table10), CONTESTSIZE_LABEL, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -2826,7 +3512,9 @@ gtk_misc_set_padding (GTK_MISC (CONTESTSIZE_LABEL), 10, 0); NUMMATCH_LABEL = gtk_label_new ("NUMMATCH:"); - gtk_object_set_data (GTK_OBJECT (gum), "NUMMATCH_LABEL", NUMMATCH_LABEL); + gtk_widget_ref (NUMMATCH_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "NUMMATCH_LABEL", NUMMATCH_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (NUMMATCH_LABEL); gtk_table_attach (GTK_TABLE (table10), NUMMATCH_LABEL, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), @@ -2834,8 +3522,12 @@ gtk_misc_set_alignment (GTK_MISC (NUMMATCH_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (NUMMATCH_LABEL), 10, 0); - SAVE_DOG_STAT_LABEL = gtk_label_new ("SAVEDOGSTAT:"); - gtk_object_set_data (GTK_OBJECT (gum), "SAVE_DOG_STAT_LABEL", SAVE_DOG_STAT_LABEL); + SAVE_DOG_STAT_LABEL = gtk_label_new (""); + SAVE_DOG_STAT_LABEL_key = gtk_label_parse_uline (GTK_LABEL (SAVE_DOG_STAT_LABEL), + "SAVE_DOG_STAT:"); + gtk_widget_ref (SAVE_DOG_STAT_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "SAVE_DOG_STAT_LABEL", SAVE_DOG_STAT_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SAVE_DOG_STAT_LABEL); gtk_table_attach (GTK_TABLE (table10), SAVE_DOG_STAT_LABEL, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), @@ -2844,54 +3536,70 @@ gtk_misc_set_padding (GTK_MISC (SAVE_DOG_STAT_LABEL), 10, 0); label125 = gtk_label_new (""); - gtk_object_set_data (GTK_OBJECT (gum), "label125", label125); + gtk_widget_ref (label125); + gtk_object_set_data_full (GTK_OBJECT (gum), "label125", label125, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label125); gtk_table_attach (GTK_TABLE (table10), label125, 0, 2, 5, 6, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); SAVE_DOG_STAT = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "SAVE_DOG_STAT", SAVE_DOG_STAT); + gtk_widget_ref (SAVE_DOG_STAT); + gtk_object_set_data_full (GTK_OBJECT (gum), "SAVE_DOG_STAT", SAVE_DOG_STAT, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SAVE_DOG_STAT); gtk_table_attach (GTK_TABLE (table10), SAVE_DOG_STAT, 1, 2, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); NUMMATCH = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "NUMMATCH", NUMMATCH); + gtk_widget_ref (NUMMATCH); + gtk_object_set_data_full (GTK_OBJECT (gum), "NUMMATCH", NUMMATCH, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (NUMMATCH); gtk_table_attach (GTK_TABLE (table10), NUMMATCH, 1, 2, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); CONTESTSIZE = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "CONTESTSIZE", CONTESTSIZE); + gtk_widget_ref (CONTESTSIZE); + gtk_object_set_data_full (GTK_OBJECT (gum), "CONTESTSIZE", CONTESTSIZE, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CONTESTSIZE); gtk_table_attach (GTK_TABLE (table10), CONTESTSIZE, 1, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); DOGFIGHT = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (gum), "DOGFIGHT", DOGFIGHT); + gtk_widget_ref (DOGFIGHT); + gtk_object_set_data_full (GTK_OBJECT (gum), "DOGFIGHT", DOGFIGHT, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (DOGFIGHT); gtk_table_attach (GTK_TABLE (table10), DOGFIGHT, 1, 2, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); label58 = gtk_label_new ("Dogfight"); - gtk_object_set_data (GTK_OBJECT (gum), "label58", label58); + gtk_widget_ref (label58); + gtk_object_set_data_full (GTK_OBJECT (gum), "label58", label58, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label58); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 10), label58); table3 = gtk_table_new (8, 2, FALSE); - gtk_object_set_data (GTK_OBJECT (gum), "table3", table3); + gtk_widget_ref (table3); + gtk_object_set_data_full (GTK_OBJECT (gum), "table3", table3, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table3); gtk_container_add (GTK_CONTAINER (notebook1), table3); gtk_container_set_border_width (GTK_CONTAINER (table3), 6); gtk_table_set_row_spacings (GTK_TABLE (table3), 6); SNAKEPATROL_LABEL = gtk_label_new ("(unimplemented)"); - gtk_object_set_data (GTK_OBJECT (gum), "SNAKEPATROL_LABEL", SNAKEPATROL_LABEL); + gtk_widget_ref (SNAKEPATROL_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "SNAKEPATROL_LABEL", SNAKEPATROL_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SNAKEPATROL_LABEL); gtk_table_attach (GTK_TABLE (table3), SNAKEPATROL_LABEL, 0, 1, 5, 6, (GtkAttachOptions) (GTK_FILL), @@ -2900,8 +3608,12 @@ gtk_misc_set_alignment (GTK_MISC (SNAKEPATROL_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (SNAKEPATROL_LABEL), 10, 0); - MAX_CHAOS_BASES_LABEL = gtk_label_new ("MAXCHAOSBASES:"); - gtk_object_set_data (GTK_OBJECT (gum), "MAX_CHAOS_BASES_LABEL", MAX_CHAOS_BASES_LABEL); + MAX_CHAOS_BASES_LABEL = gtk_label_new (""); + gtk_label_parse_uline (GTK_LABEL (MAX_CHAOS_BASES_LABEL), + "MAX_CHAOS_BASES:"); + gtk_widget_ref (MAX_CHAOS_BASES_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "MAX_CHAOS_BASES_LABEL", MAX_CHAOS_BASES_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (MAX_CHAOS_BASES_LABEL); gtk_table_attach (GTK_TABLE (table3), MAX_CHAOS_BASES_LABEL, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), @@ -2909,8 +3621,12 @@ gtk_misc_set_alignment (GTK_MISC (MAX_CHAOS_BASES_LABEL), 1, 0.5); gtk_misc_set_padding (GTK_MISC (MAX_CHAOS_BASES_LABEL), 10, 0); - PINGPONG_PLASMA_LABEL = gtk_label_new ("PINGPONGPLASMA:"); - gtk_object_set_data (GTK_OBJECT (gum), "PINGPONG_PLASMA_LABEL", PINGPONG_PLASMA_LABEL); + PINGPONG_PLASMA_LABEL = gtk_label_new (""); + gtk_label_parse_uline (GTK_LABEL (PINGPONG_PLASMA_LABEL), + "PINGPONG_PLASMA:"); + gtk_widget_ref (PINGPONG_PLASMA_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "PINGPONG_PLASMA_LABEL", PINGPONG_PLASMA_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PINGPONG_PLASMA_LABEL); gtk_table_attach (GTK_TABLE (table3), PINGPONG_PLASMA_LABEL, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), @@ -2919,7 +3635,9 @@ gtk_misc_set_padding (GTK_MISC (PINGPONG_PLASMA_LABEL), 10, 0); STARBASE_MINES_LABEL = gtk_label_new ("(unimplemented)"); - gtk_object_set_data (GTK_OBJECT (gum), "STARBASE_MINES_LABEL", STARBASE_MINES_LABEL); + gtk_widget_ref (STARBASE_MINES_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "STARBASE_MINES_LABEL", STARBASE_MINES_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (STARBASE_MINES_LABEL); gtk_table_attach (GTK_TABLE (table3), STARBASE_MINES_LABEL, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -2929,7 +3647,9 @@ gtk_misc_set_padding (GTK_MISC (STARBASE_MINES_LABEL), 10, 0); CHAOS_LABEL = gtk_label_new ("CHAOS:"); - gtk_object_set_data (GTK_OBJECT (gum), "CHAOS_LABEL", CHAOS_LABEL); + gtk_widget_ref (CHAOS_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "CHAOS_LABEL", CHAOS_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CHAOS_LABEL); gtk_table_attach (GTK_TABLE (table3), CHAOS_LABEL, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -2938,21 +3658,27 @@ gtk_misc_set_padding (GTK_MISC (CHAOS_LABEL), 10, 0); label122 = gtk_label_new ("Chaos Settings\n"); - gtk_object_set_data (GTK_OBJECT (gum), "label122", label122); + gtk_widget_ref (label122); + gtk_object_set_data_full (GTK_OBJECT (gum), "label122", label122, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label122); gtk_table_attach (GTK_TABLE (table3), label122, 0, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); label123 = gtk_label_new (""); - gtk_object_set_data (GTK_OBJECT (gum), "label123", label123); + gtk_widget_ref (label123); + gtk_object_set_data_full (GTK_OBJECT (gum), "label123", label123, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label123); gtk_table_attach (GTK_TABLE (table3), label123, 0, 2, 7, 8, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); hbox46 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox46", hbox46); + gtk_widget_ref (hbox46); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox46", hbox46, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox46); gtk_table_attach (GTK_TABLE (table3), hbox46, 1, 2, 4, 5, (GtkAttachOptions) (GTK_FILL), @@ -2960,7 +3686,9 @@ MAX_CHAOS_BASES_adj = gtk_adjustment_new (2, 0, 16, 1, 10, 10); MAX_CHAOS_BASES = gtk_spin_button_new (GTK_ADJUSTMENT (MAX_CHAOS_BASES_adj), 1, 0); - gtk_object_set_data (GTK_OBJECT (gum), "MAX_CHAOS_BASES", MAX_CHAOS_BASES); + gtk_widget_ref (MAX_CHAOS_BASES); + gtk_object_set_data_full (GTK_OBJECT (gum), "MAX_CHAOS_BASES", MAX_CHAOS_BASES, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (MAX_CHAOS_BASES); gtk_box_pack_start (GTK_BOX (hbox46), MAX_CHAOS_BASES, FALSE, FALSE, 0); gtk_widget_set_usize (MAX_CHAOS_BASES, 60, -2); @@ -2968,7 +3696,9 @@ gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (MAX_CHAOS_BASES), TRUE); hbox47 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox47", hbox47); + gtk_widget_ref (hbox47); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox47", hbox47, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox47); gtk_table_attach (GTK_TABLE (table3), hbox47, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -2976,18 +3706,24 @@ CHAOS_0 = gtk_radio_button_new_with_label (CHAOS_group, "No"); CHAOS_group = gtk_radio_button_group (GTK_RADIO_BUTTON (CHAOS_0)); - gtk_object_set_data (GTK_OBJECT (gum), "CHAOS_0", CHAOS_0); + gtk_widget_ref (CHAOS_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "CHAOS_0", CHAOS_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CHAOS_0); gtk_box_pack_start (GTK_BOX (hbox47), CHAOS_0, FALSE, FALSE, 0); CHAOS_1 = gtk_radio_button_new_with_label (CHAOS_group, "Yes"); CHAOS_group = gtk_radio_button_group (GTK_RADIO_BUTTON (CHAOS_1)); - gtk_object_set_data (GTK_OBJECT (gum), "CHAOS_1", CHAOS_1); + gtk_widget_ref (CHAOS_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "CHAOS_1", CHAOS_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (CHAOS_1); gtk_box_pack_start (GTK_BOX (hbox47), CHAOS_1, FALSE, FALSE, 0); hbox48 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox48", hbox48); + gtk_widget_ref (hbox48); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox48", hbox48, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox48); gtk_table_attach (GTK_TABLE (table3), hbox48, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -2995,20 +3731,26 @@ STARBASE_MINES_0 = gtk_radio_button_new_with_label (STARBASE_MINES_group, "No"); STARBASE_MINES_group = gtk_radio_button_group (GTK_RADIO_BUTTON (STARBASE_MINES_0)); - gtk_object_set_data (GTK_OBJECT (gum), "STARBASE_MINES_0", STARBASE_MINES_0); + gtk_widget_ref (STARBASE_MINES_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "STARBASE_MINES_0", STARBASE_MINES_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (STARBASE_MINES_0); gtk_box_pack_start (GTK_BOX (hbox48), STARBASE_MINES_0, FALSE, FALSE, 0); gtk_widget_set_sensitive (STARBASE_MINES_0, FALSE); STARBASE_MINES_1 = gtk_radio_button_new_with_label (STARBASE_MINES_group, "Yes"); STARBASE_MINES_group = gtk_radio_button_group (GTK_RADIO_BUTTON (STARBASE_MINES_1)); - gtk_object_set_data (GTK_OBJECT (gum), "STARBASE_MINES_1", STARBASE_MINES_1); + gtk_widget_ref (STARBASE_MINES_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "STARBASE_MINES_1", STARBASE_MINES_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (STARBASE_MINES_1); gtk_box_pack_start (GTK_BOX (hbox48), STARBASE_MINES_1, FALSE, FALSE, 0); gtk_widget_set_sensitive (STARBASE_MINES_1, FALSE); hbox49 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox49", hbox49); + gtk_widget_ref (hbox49); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox49", hbox49, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox49); gtk_table_attach (GTK_TABLE (table3), hbox49, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), @@ -3016,18 +3758,24 @@ PINGPONG_PLASMA_0 = gtk_radio_button_new_with_label (PINGPONG_PLASMA_group, "No"); PINGPONG_PLASMA_group = gtk_radio_button_group (GTK_RADIO_BUTTON (PINGPONG_PLASMA_0)); - gtk_object_set_data (GTK_OBJECT (gum), "PINGPONG_PLASMA_0", PINGPONG_PLASMA_0); + gtk_widget_ref (PINGPONG_PLASMA_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "PINGPONG_PLASMA_0", PINGPONG_PLASMA_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PINGPONG_PLASMA_0); gtk_box_pack_start (GTK_BOX (hbox49), PINGPONG_PLASMA_0, FALSE, FALSE, 0); PINGPONG_PLASMA_1 = gtk_radio_button_new_with_label (PINGPONG_PLASMA_group, "Yes"); PINGPONG_PLASMA_group = gtk_radio_button_group (GTK_RADIO_BUTTON (PINGPONG_PLASMA_1)); - gtk_object_set_data (GTK_OBJECT (gum), "PINGPONG_PLASMA_1", PINGPONG_PLASMA_1); + gtk_widget_ref (PINGPONG_PLASMA_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "PINGPONG_PLASMA_1", PINGPONG_PLASMA_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (PINGPONG_PLASMA_1); gtk_box_pack_start (GTK_BOX (hbox49), PINGPONG_PLASMA_1, FALSE, FALSE, 0); hbox50 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox50", hbox50); + gtk_widget_ref (hbox50); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox50", hbox50, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox50); gtk_table_attach (GTK_TABLE (table3), hbox50, 1, 2, 5, 6, (GtkAttachOptions) (GTK_FILL), @@ -3035,20 +3783,26 @@ SNAKEPATROL_0 = gtk_radio_button_new_with_label (SNAKEPATROL_group, "No"); SNAKEPATROL_group = gtk_radio_button_group (GTK_RADIO_BUTTON (SNAKEPATROL_0)); - gtk_object_set_data (GTK_OBJECT (gum), "SNAKEPATROL_0", SNAKEPATROL_0); + gtk_widget_ref (SNAKEPATROL_0); + gtk_object_set_data_full (GTK_OBJECT (gum), "SNAKEPATROL_0", SNAKEPATROL_0, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SNAKEPATROL_0); gtk_box_pack_start (GTK_BOX (hbox50), SNAKEPATROL_0, FALSE, FALSE, 0); gtk_widget_set_sensitive (SNAKEPATROL_0, FALSE); SNAKEPATROL_1 = gtk_radio_button_new_with_label (SNAKEPATROL_group, "Yes"); SNAKEPATROL_group = gtk_radio_button_group (GTK_RADIO_BUTTON (SNAKEPATROL_1)); - gtk_object_set_data (GTK_OBJECT (gum), "SNAKEPATROL_1", SNAKEPATROL_1); + gtk_widget_ref (SNAKEPATROL_1); + gtk_object_set_data_full (GTK_OBJECT (gum), "SNAKEPATROL_1", SNAKEPATROL_1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (SNAKEPATROL_1); gtk_box_pack_start (GTK_BOX (hbox50), SNAKEPATROL_1, FALSE, FALSE, 0); gtk_widget_set_sensitive (SNAKEPATROL_1, FALSE); REALITY_LABEL = gtk_label_new ("REALITY: "); - gtk_object_set_data (GTK_OBJECT (gum), "REALITY_LABEL", REALITY_LABEL); + gtk_widget_ref (REALITY_LABEL); + gtk_object_set_data_full (GTK_OBJECT (gum), "REALITY_LABEL", REALITY_LABEL, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (REALITY_LABEL); gtk_table_attach (GTK_TABLE (table3), REALITY_LABEL, 0, 1, 6, 7, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), @@ -3058,7 +3812,9 @@ REALITY_adj = gtk_adjustment_new (10, 1, 20, 1, 1, 1); REALITY = gtk_spin_button_new (GTK_ADJUSTMENT (REALITY_adj), 1, 0); - gtk_object_set_data (GTK_OBJECT (gum), "REALITY", REALITY); + gtk_widget_ref (REALITY); + gtk_object_set_data_full (GTK_OBJECT (gum), "REALITY", REALITY, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (REALITY); gtk_table_attach (GTK_TABLE (table3), REALITY, 1, 2, 6, 7, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), @@ -3066,40 +3822,54 @@ gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (REALITY), TRUE); label3 = gtk_label_new ("Chaos"); - gtk_object_set_data (GTK_OBJECT (gum), "label3", label3); + gtk_widget_ref (label3); + gtk_object_set_data_full (GTK_OBJECT (gum), "label3", label3, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label3); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 11), label3); hbox52 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (gum), "hbox52", hbox52); + gtk_widget_ref (hbox52); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbox52", hbox52, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox52); gtk_box_pack_start (GTK_BOX (vbox1), hbox52, TRUE, TRUE, 0); statusbar = gtk_statusbar_new (); - gtk_object_set_data (GTK_OBJECT (gum), "statusbar", statusbar); + gtk_widget_ref (statusbar); + gtk_object_set_data_full (GTK_OBJECT (gum), "statusbar", statusbar, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (statusbar); gtk_box_pack_start (GTK_BOX (hbox52), statusbar, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (statusbar), 9); hbuttonbox1 = gtk_hbutton_box_new (); - gtk_object_set_data (GTK_OBJECT (gum), "hbuttonbox1", hbuttonbox1); + gtk_widget_ref (hbuttonbox1); + gtk_object_set_data_full (GTK_OBJECT (gum), "hbuttonbox1", hbuttonbox1, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbuttonbox1); gtk_box_pack_start (GTK_BOX (hbox52), hbuttonbox1, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox1), 9); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox1), GTK_BUTTONBOX_END); reload = gtk_button_new_with_label ("Reload"); - gtk_object_set_data (GTK_OBJECT (gum), "reload", reload); + gtk_widget_ref (reload); + gtk_object_set_data_full (GTK_OBJECT (gum), "reload", reload, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (reload); gtk_container_add (GTK_CONTAINER (hbuttonbox1), reload); save = gtk_button_new_with_label ("Save"); - gtk_object_set_data (GTK_OBJECT (gum), "save", save); + gtk_widget_ref (save); + gtk_object_set_data_full (GTK_OBJECT (gum), "save", save, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (save); gtk_container_add (GTK_CONTAINER (hbuttonbox1), save); quit = gtk_button_new_with_label ("Quit"); - gtk_object_set_data (GTK_OBJECT (gum), "quit", quit); + gtk_widget_ref (quit); + gtk_object_set_data_full (GTK_OBJECT (gum), "quit", quit, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (quit); gtk_container_add (GTK_CONTAINER (hbuttonbox1), quit); @@ -3224,6 +3994,17 @@ GTK_SIGNAL_FUNC (on_quit_clicked), NULL); + gtk_widget_add_accelerator (PING_FREQ, "grab_focus", accel_group, + PING_FREQ_LABEL_key, GDK_MOD1_MASK, 0); + gtk_widget_add_accelerator (PING_ILOSS_INTERVAL, "grab_focus", accel_group, + PING_ILOSS_INTERVAL_LABEL_key, GDK_MOD1_MASK, 0); + gtk_widget_add_accelerator (PING_GHOSTBUST, "grab_focus", accel_group, + PING_GHOSTBUST_LABEL_key, GDK_MOD1_MASK, 0); + gtk_widget_add_accelerator (PING_GHOSTBUST_INTERVAL, "grab_focus", accel_group, + PING_GHOSTBUST_INTERVAL_LABEL_key, GDK_MOD1_MASK, 0); + gtk_widget_add_accelerator (SAVE_DOG_STAT, "grab_focus", accel_group, + SAVE_DOG_STAT_LABEL_key, GDK_MOD1_MASK, 0); + gtk_object_set_data (GTK_OBJECT (gum), "tooltips", tooltips); gtk_window_add_accel_group (GTK_WINDOW (gum), accel_group); @@ -3232,7 +4013,7 @@ } GtkWidget* -create_motd () +create_motd (void) { GtkWidget *motd; GtkWidget *motd_ok; @@ -3243,8 +4024,8 @@ gtk_container_set_border_width (GTK_CONTAINER (motd), 10); GTK_WINDOW (motd)->type = GTK_WINDOW_DIALOG; gtk_window_set_position (GTK_WINDOW (motd), GTK_WIN_POS_MOUSE); + gtk_window_set_wmclass (GTK_WINDOW (motd), "gummotd", "Gummotd"); gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (motd)); - gtk_window_set_wmclass (GTK_WINDOW (motd), "gummotd", "gummotd"); motd_ok = GTK_FILE_SELECTION (motd)->ok_button; gtk_object_set_data (GTK_OBJECT (motd), "motd_ok", motd_ok); @@ -3270,7 +4051,7 @@ } GtkWidget* -create_message () +create_message (void) { GtkWidget *message; GtkWidget *dialog_vbox1; @@ -3281,11 +4062,11 @@ message = gtk_dialog_new (); gtk_object_set_data (GTK_OBJECT (message), "message", message); - GTK_WINDOW (message)->type = GTK_WINDOW_DIALOG; gtk_window_set_title (GTK_WINDOW (message), "unset title"); + GTK_WINDOW (message)->type = GTK_WINDOW_DIALOG; gtk_window_set_position (GTK_WINDOW (message), GTK_WIN_POS_MOUSE); gtk_window_set_policy (GTK_WINDOW (message), TRUE, TRUE, TRUE); - gtk_window_set_wmclass (GTK_WINDOW (message), "gummessage", "gummessage"); + gtk_window_set_wmclass (GTK_WINDOW (message), "gummessage", "Gummessage"); dialog_vbox1 = GTK_DIALOG (message)->vbox; gtk_object_set_data (GTK_OBJECT (message), "dialog_vbox1", dialog_vbox1); @@ -3293,7 +4074,9 @@ gtk_container_set_border_width (GTK_CONTAINER (dialog_vbox1), 6); message_label = gtk_label_new ("unset label"); - gtk_object_set_data (GTK_OBJECT (message), "message_label", message_label); + gtk_widget_ref (message_label); + gtk_object_set_data_full (GTK_OBJECT (message), "message_label", message_label, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (message_label); gtk_box_pack_start (GTK_BOX (dialog_vbox1), message_label, FALSE, FALSE, 0); @@ -3303,17 +4086,19 @@ gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area1), 10); hbuttonbox2 = gtk_hbutton_box_new (); - gtk_object_set_data (GTK_OBJECT (message), "hbuttonbox2", hbuttonbox2); + gtk_widget_ref (hbuttonbox2); + gtk_object_set_data_full (GTK_OBJECT (message), "hbuttonbox2", hbuttonbox2, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbuttonbox2); gtk_box_pack_start (GTK_BOX (dialog_action_area1), hbuttonbox2, TRUE, TRUE, 0); message_ok = gtk_button_new_with_label ("OK"); - gtk_object_set_data (GTK_OBJECT (message), "message_ok", message_ok); + gtk_widget_ref (message_ok); + gtk_object_set_data_full (GTK_OBJECT (message), "message_ok", message_ok, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (message_ok); gtk_container_add (GTK_CONTAINER (hbuttonbox2), message_ok); GTK_WIDGET_SET_FLAGS (message_ok, GTK_CAN_DEFAULT); - gtk_widget_grab_focus (message_ok); - gtk_widget_grab_default (message_ok); gtk_signal_connect (GTK_OBJECT (message), "delete_event", GTK_SIGNAL_FUNC (on_message_delete_event), @@ -3322,11 +4107,13 @@ GTK_SIGNAL_FUNC (on_message_ok), NULL); + gtk_widget_grab_focus (message_ok); + gtk_widget_grab_default (message_ok); return message; } GtkWidget* -create_open () +create_open (void) { GtkWidget *open; GtkWidget *open_ok; @@ -3337,8 +4124,8 @@ gtk_container_set_border_width (GTK_CONTAINER (open), 10); GTK_WINDOW (open)->type = GTK_WINDOW_DIALOG; gtk_window_set_position (GTK_WINDOW (open), GTK_WIN_POS_MOUSE); + gtk_window_set_wmclass (GTK_WINDOW (open), "gumopen", "Gumopen"); gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (open)); - gtk_window_set_wmclass (GTK_WINDOW (open), "gumopen", "gumopen"); open_ok = GTK_FILE_SELECTION (open)->ok_button; gtk_object_set_data (GTK_OBJECT (open), "open_ok", open_ok); @@ -3364,7 +4151,7 @@ } GtkWidget* -create_saveas () +create_saveas (void) { GtkWidget *saveas; GtkWidget *saveas_ok; @@ -3375,7 +4162,7 @@ gtk_container_set_border_width (GTK_CONTAINER (saveas), 10); GTK_WINDOW (saveas)->type = GTK_WINDOW_DIALOG; gtk_window_set_position (GTK_WINDOW (saveas), GTK_WIN_POS_MOUSE); - gtk_window_set_wmclass (GTK_WINDOW (saveas), "gumsaveas", "gumsaveas"); + gtk_window_set_wmclass (GTK_WINDOW (saveas), "gumsaveas", "Gumsaveas"); saveas_ok = GTK_FILE_SELECTION (saveas)->ok_button; gtk_object_set_data (GTK_OBJECT (saveas), "saveas_ok", saveas_ok); @@ -3401,7 +4188,7 @@ } GtkWidget* -create_welcome () +create_welcome (void) { GtkWidget *welcome; GtkWidget *splashpixmap; @@ -3412,10 +4199,11 @@ gtk_window_set_position (GTK_WINDOW (welcome), GTK_WIN_POS_CENTER); splashpixmap = create_pixmap (welcome, "gum.xpm"); - gtk_object_set_data (GTK_OBJECT (welcome), "splashpixmap", splashpixmap); + gtk_widget_ref (splashpixmap); + gtk_object_set_data_full (GTK_OBJECT (welcome), "splashpixmap", splashpixmap, + (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (splashpixmap); gtk_container_add (GTK_CONTAINER (welcome), splashpixmap); - return welcome; } Index: Vanilla/gum/support.c diff -u Vanilla/gum/support.c:1.1 Vanilla/gum/support.c:1.2 --- Vanilla/gum/support.c:1.1 Sun Jul 18 19:58:11 1999 +++ Vanilla/gum/support.c Tue Aug 15 17:42:45 2000 @@ -6,6 +6,7 @@ # include #endif +#include #include #include #include @@ -95,6 +96,9 @@ GdkBitmap *mask; GtkWidget *pixmap; GList *elem; + + if (!filename || !filename[0]) + return create_dummy_pixmap (widget); /* We first try any pixmaps directories set by the application. */ elem = pixmaps_directories; Index: Vanilla/gum/support.h diff -u Vanilla/gum/support.h:1.1 Vanilla/gum/support.h:1.2 --- Vanilla/gum/support.h:1.1 Sun Jul 18 19:58:11 1999 +++ Vanilla/gum/support.h Tue Aug 15 17:42:45 2000 @@ -2,6 +2,10 @@ * DO NOT EDIT THIS FILE - it is generated by Glade. */ +#ifdef HAVE_CONFIG_H +# include +#endif + #include /* From ahn at vec.wfubmc.edu Mon Aug 21 16:03:32 2000 From: ahn at vec.wfubmc.edu (Dave Ahn) Date: Wed Jan 12 00:51:18 2005 Subject: [Vanilla Devel] [mwedel@scruznet.com: netrek metaserver question.] In-Reply-To: <20000807223256.D31091@real-time.com>; from tanner@real-time.com on Mon, Aug 07, 2000 at 10:32:56PM -0500 References: <20000807223256.D31091@real-time.com> Message-ID: <20000821170332.B215241@cecum.vec.wfubmc.edu> On Mon, Aug 07, 2000 at 10:32:56PM -0500, Bob Tanner wrote: > > > Couple questions: > > 1) Is the source for the metaserver server side readily available? I didn't > > search that hard. > > 2) Is the netrek license compatible with crossfire? I downloaded the vanilla > > server, but didn't see any license file there. > > > I answered 1, but what is the status of 2? Did we ever get everything GPL'd > or what is the license. I remember James(?) Dave(?) Tom(?) trying to track > down some of the original authors for a license confirmation. Whatevery > happend to that? Not much. There was some discussion about licensing issues on the Paradise list, but that didn't amount to much, either. Our Netrek license is very broad, but maybe some clarification is in order. I'll see if I can draft up a license file that our current developers can agree upon. Dave -- Dave Ahn | ahn@vec.wfubmc.edu | Wake Forest University Baptist Medical Center When you were born, you cried and the world rejoiced. Try to live your life so that when you die, you will rejoice and the world will cry. -1/2 jj^2 From vanilla-devel at us.netrek.org Tue Aug 29 22:07:40 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:18 2005 Subject: [Vanilla Devel] CVS update: metaserver Message-ID: <200008300307.e7U37eT15842@swashbuckler.fortress.real-time.com> Date: Tuesday August 29, 2000 @ 22:07 Author: unbelver Update of /home/netrek/cvsroot/metaserver In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv15839 Modified Files: Makefile main.c meta.h scan.c Log Message: Added a method to de-list solicit servers that have died. If solicited server has to get queried by meta, that may just mean that nobody is playing there. If solicited server is queried by meta and meta can't connect, that means server is dead. De-lists that server. --Carlos V. **************************************** Index: metaserver/Makefile diff -u metaserver/Makefile:2.3 metaserver/Makefile:2.4 --- metaserver/Makefile:2.3 Tue Jul 13 01:33:29 1999 +++ metaserver/Makefile Tue Aug 29 22:07:40 2000 @@ -1,7 +1,8 @@ # # Makefile for MetaServerII # -CC = purify -log-file="/home/netrek/metaserver/purify.log" -show-directory=yes -show-pc=yes -user-path="/home/netrek/metaserver" gcc +#CC = purify -log-file="/home/netrek/metaserver/purify.log" -show-directory=yes -show-pc=yes -user-path="/home/netrek/metaserver" gcc +CC = gcc CFILES = main.c scan.c server.c disp_old.c disp_new.c disp_web.c disp_udp.c disp_info.c BecomeDaemon.c OFILES = $(CFILES:.c=.o) HDRS = meta.h packets.h copyright2.h Index: metaserver/main.c diff -u metaserver/main.c:2.1 metaserver/main.c:2.2 --- metaserver/main.c:2.1 Thu Nov 11 19:12:41 1999 +++ metaserver/main.c Tue Aug 29 22:07:40 2000 @@ -4,7 +4,7 @@ * MetaServerII * Copyright (c) 1993 by Andy McFadden * - * $Id: main.c,v 2.1 1999/11/12 01:12:41 unbelver Exp $ + * $Id: main.c,v 2.2 2000/08/30 03:07:40 unbelver Exp $ * */ #include @@ -176,6 +176,7 @@ else strcpy(servers[server_count].comment, comment); servers[server_count].player_count = 0; + servers[server_count].solicit = FALSE; server_count++; } Index: metaserver/meta.h diff -u metaserver/meta.h:2.3 metaserver/meta.h:2.4 --- metaserver/meta.h:2.3 Wed Mar 8 00:17:47 2000 +++ metaserver/meta.h Tue Aug 29 22:07:40 2000 @@ -4,7 +4,7 @@ * MetaServerII * Copyright (c) 1993 by Andy McFadden * - * $Id: meta.h,v 2.3 2000/03/08 06:17:47 unbelver Exp $ + * $Id: meta.h,v 2.4 2000/08/30 03:07:40 unbelver Exp $ * */ /*#define DEBUG*/ @@ -118,6 +118,7 @@ int player_count; int queue_size; + int solicit; /* we got this as a solicit packet */ PLAYER players[MAX_PLAYER]; } SERVER; /* (if you add pointers here, update checkpointing) */ Index: metaserver/scan.c diff -u metaserver/scan.c:2.10 metaserver/scan.c:2.11 --- metaserver/scan.c:2.10 Wed Mar 8 00:17:47 2000 +++ metaserver/scan.c Tue Aug 29 22:07:40 2000 @@ -4,7 +4,7 @@ * MetaServerII * Copyright (c) 1993 by Andy McFadden * - * $Id: scan.c,v 2.10 2000/03/08 06:17:47 unbelver Exp $ + * $Id: scan.c,v 2.11 2000/08/30 03:07:40 unbelver Exp $ * */ #include @@ -745,7 +745,32 @@ } } +/* delete server #which and close the hole behind it */ +void delete_server(int which) +{ + SERVER *sp1, *sp2; + int i, j; + + for ( i = which, j = (which + 1); j < server_count; i++, j++ ) + memcpy( &servers[i], &servers[j], sizeof(SERVER) ); + + server_count--; + + if ( server_count == 0 ) + free(servers); + else + { + realloc( servers, (sizeof(SERVER) * (server_count + 1)) ); + if ( servers == NULL ) + { + fprintf(stderr, "ERROR: delete_server: realloc failure to get smaller buffer!\n"); + log_msg("ERROR: delete_server: realloc failure to get smaller buffer!\n"); + exit(1); + } + } +} + /* * Update the structures associated with the server connection. Assumes * that the sockets have been closed. The "status" field should be set. @@ -766,6 +791,20 @@ switch (sp->status) { case SS_NOCONN: plustime = wait_noconn; + + /* if solicit is true, and we had to query server, that just means */ + /* nobody is playing there. If we queried server and server */ + /* timed out, that means server is dead. Get rid of it. */ + + if(sp->solicit == TRUE) + { + log_msg("Deleting server %s. Query timeout on solicit fall-through\n", + sp->hostname); + delete_server(busy); + coffee = TRUE; + busy = -1; + return(0); + } break; case SS_EMPTY: plustime = wait_empty; @@ -925,7 +964,7 @@ srvbuf.cstate = CS_CLOSED; srvbuf.down_time = (time_t) 0; srvbuf.max_players = MAX_PLAYER; - + srvbuf.solicit = TRUE; /* null terminate it so we can use strtok on it */ packet[bytes] = 0; From vanilla-devel at us.netrek.org Tue Aug 29 22:16:36 2000 From: vanilla-devel at us.netrek.org (Vanilla CVS Development) Date: Wed Jan 12 00:51:18 2005 Subject: [Vanilla Devel] CVS update: metaserver Message-ID: <200008300316.e7U3GaK15855@swashbuckler.fortress.real-time.com> Date: Tuesday August 29, 2000 @ 22:16 Author: unbelver Update of /home/netrek/cvsroot/metaserver In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv15852 Modified Files: scan.c Log Message: 1 too many places to allocate. --Carlos V. **************************************** Index: metaserver/scan.c diff -u metaserver/scan.c:2.11 metaserver/scan.c:2.12 --- metaserver/scan.c:2.11 Tue Aug 29 22:07:40 2000 +++ metaserver/scan.c Tue Aug 29 22:16:36 2000 @@ -4,7 +4,7 @@ * MetaServerII * Copyright (c) 1993 by Andy McFadden * - * $Id: scan.c,v 2.11 2000/08/30 03:07:40 unbelver Exp $ + * $Id: scan.c,v 2.12 2000/08/30 03:16:36 unbelver Exp $ * */ #include @@ -761,7 +761,7 @@ free(servers); else { - realloc( servers, (sizeof(SERVER) * (server_count + 1)) ); + realloc( servers, (sizeof(SERVER) * server_count) ); if ( servers == NULL ) { fprintf(stderr, "ERROR: delete_server: realloc failure to get smaller buffer!\n"); From mailman-owner at lists.real-time.com Tue Aug 1 05:00:22 2000 From: mailman-owner at lists.real-time.com (mailman-owner@lists.real-time.com) Date: Wed Jan 12 00:52:01 2005 Subject: [Vanilla List] us.netrek.org mailing list memberships reminder Message-ID: <200008011000.e71A0M207878@sprite.real-time.com> This is a reminder, sent out once a month, about your us.netrek.org mailing list memberships. It includes your subscription info and how to use it to change it or unsubscribe from a list. You can visit the URLs to change your membership status or configuration, including unsubscribing, setting digest-style delivery or disabling delivery altogether (e.g., for a vacation), and so on. In addition to the URL interfaces, you can also use email to make such changes. For more info, send a message to the '-request' address of the list (for example, vanilla-announce-request@us.netrek.org) containing just the word 'help' in the message body, and an email message will be sent to you with instructions. If you have questions, problems, comments, etc, send them to mailman-owner@lists.real-time.com. Thanks! Passwords for vanilla-list@us.netrek.org: List Password // URL ---- -------- vanilla-announce@us.netrek.org VGyA https://mailman.real-time.com/mailman/options/vanilla-announce/vanilla-list@us.netrek.org From ahn at vec.wfubmc.edu Tue Aug 1 22:12:30 2000 From: ahn at vec.wfubmc.edu (Dave Ahn) Date: Wed Jan 12 00:52:01 2005 Subject: [Vanilla List] web page administrativa Message-ID: <20000801231230.A197508@cecum.vec.wfubmc.edu> Hey, Most of you probably don't care, but I will be on vacation for the next 2.5 weeks. So any email to me regarding Netrek issues (www, ftp, servers, etc) might go unanswered for some time. Anyway, as some of you may already know, I have been working on several projects to help revitalize Netrek. One of them is a completely redesigned and newbie-friendly Netrek home page. I'm annoyed to have been unable to finish it yet, but I'd like to go ahead and publish the URL to this list to get some feedback. Note that vast portions of unfinished areas have been blocked off, but you should get the general idea of the layout and features available. Comments are welcome. http://w1.netrek.org/beta/test.php Please do not publish this URL to the general public. Thanks to Karthik for providing help and resources. Dave -- Dave Ahn | ahn@vec.wfubmc.edu | Wake Forest University Baptist Medical Center When you were born, you cried and the world rejoiced. Try to live your life so that when you die, you will rejoice and the world will cry. -1/2 jj^2 From y4SEgU1vv at hpov.gwdg.de Mon Aug 14 11:26:38 2000 From: y4SEgU1vv at hpov.gwdg.de (y4SEgU1vv@hpov.gwdg.de) Date: Wed Jan 12 00:52:01 2005 Subject: [Vanilla List] Supersleuth Tells All, Make 10K A Month Message-ID: Oprah, Nightline, Maria Shriver, 48 Hours, 20/20, Playboy, Kiplingers and more have all interviewed this famous Private Investigator. Now, you too can make substantial income using his highly sought- after SECRETS. Thank you for your interest in our training Course! We offer the most extensive training course in "How to Collect Judicial Judgments" available!!! In fact, we created this industry. If you are like many people, you are not even sure what a Judicial Judgment is and why processing Judicial Judgments can earn you very substantial income. When one person or business files suit against another person or business and wins, then winner than has a Judicial Judgment. You are happy you won, but you will soon find out the shocking fact: "Its now up to you to Collect on the Judgment". The court does not require the loser to pay you. The court will not even help you. In fact, employees of the court are forbidden by law from telling you how to collect the judgment. Basically, the winner has a piece of paper. You must trace the loser down, find their assets; their employment, bank accounts, real estate, stocks and bonds, etc. The nations most recognized private investigator will teach how to do it all! Very few people know how to find these assets or what to do when they are found. The result is that millions of Judgments are just sitting in files and being forgotten. This is entirely non-confrontational and requires no special licensing. Right now in the United States there is between 200 and 300 billion dollars of uncollected Judicial Judgments. For every Judgment that is paid, 5 or more Judgments take its place. The income potential is substantial in this profession. Using the techniques taught in this course, people are now working full-time making $96,000.00 to over $200,000.00 per year, Part-time associates are earning between $24,000.00 and $100,000.00 per year. Most choose to work out of their homes, other build sizable organizations. Today, people trained in this business opportunity are processing over 500 million dollars in Judicial Judgments. So, if you've ever dreamed of the financial freedom that owning your own business can provide. Dreamed of an early retirement, this may be the opportunity for you. None of your days will be dull. You will be mentally challenged. This business protects you from corporate downsizing. This business is your ticket to freedom from others telling you what to do. This business lets you control your destiny! Our training has made this happen for many others already, Make it happen for you! If the above sounds interesting to you then its time for you to talk to a real live human being, no cost or obligation on your part. Please call us at 1-303-423-9190, between the hours of 9:00am - 6:00pm Mountain Time (our mornings are reserved for support of our associates), Monday -friday. Thank you for your time and interest. From quozl at us.netrek.org Tue Aug 15 20:14:46 2000 From: quozl at us.netrek.org (James Cameron) Date: Wed Jan 12 00:52:01 2005 Subject: [Vanilla List] continuum server lag cause found Message-ID: <20000816111446.C11331@us.netrek.org> The cause of the lag bursts on Continuum has been determined. netrekd sees a memory leak. It was at 28Mb or so today, and restarting it solved the lag burst on login of new players. Karthik and I isolated this by noting that the lag burst happened on multiple connections to either the player list port (2591) or the standard ship port (2592) but not to connections to the metaserver. Watching "top" on continuum when Karthik sent ten connection requests showed netrekd at 99% CPU utilisation. Restarting netrekd removed the problem altogether; it never appeared in "top". Karthik uses the same netrekd on his servers, and it is not leaking. His servers are Intel, and Continuum is Sparc. There are no significant malloc/free heap consumption code within the netrekd code we are using. So the problem is probably related to the Sparc Linux libraries or kernel. Workaround is to restart netrekd periodically. This is relatively harmless, now that the rest of the server processes do not need to be restarted. I have a core dump of netrekd's 28Mb instance, but I don't know how to proceed to determine the ownership of virtual memory. -- James Cameron mailto:quozl@us.netrek.org http://quozl.netrek.org/ From doosh at best.com Tue Aug 15 21:13:50 2000 From: doosh at best.com (Tom Holub) Date: Wed Jan 12 00:52:01 2005 Subject: [Vanilla List] continuum server lag cause found In-Reply-To: <20000816111446.C11331@us.netrek.org>; from quozl@us.netrek.org on Wed, Aug 16, 2000 at 11:14:46AM +1000 References: <20000816111446.C11331@us.netrek.org> Message-ID: <20000815191350.A20950@shell3.ba.best.com> On Wed, Aug 16, 2000 at 11:14:46AM +1000, James Cameron wrote: > > There are no significant malloc/free heap consumption code within the > netrekd code we are using. So the problem is probably related to the > Sparc Linux libraries or kernel. > > Workaround is to restart netrekd periodically. This is relatively > harmless, now that the rest of the server processes do not need to be > restarted. Workaround is to use Solaris. Come on. -Tom From zu22 at andrew.cmu.edu Wed Aug 16 00:20:35 2000 From: zu22 at andrew.cmu.edu (Zachary Uram) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] continuum server lag cause found In-Reply-To: <20000816111446.C11331@us.netrek.org> Message-ID: On Wed, 16 Aug 2000, James Cameron wrote: > The cause of the lag bursts on Continuum has been determined. Good detective work guys! I hate those lag bursts. > I have a core dump of netrekd's 28Mb instance, but I don't know how to > proceed to determine the ownership of virtual memory. Check out "Panic! : UNIX Crash Dump Analysis" SDG, Zach ________________________________________________________ uram@cmu.edu "Blessed are those who have not seen and yet have faith." - John 20:29 From xyzzy at speakeasy.org Thu Aug 17 02:27:50 2000 From: xyzzy at speakeasy.org (Trent Piepho) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] possible bug in LTD stats Message-ID: I was looking over the socket code, to see why t-mode can change, but the client doesn't beep or change the "T" flag until several seconds later, and I noticed this: void updateStatus(int force) /* if force is false, packet only sent when status->tourn changes */ { /* Update status every 10 seconds? */ if (repCount % efticks(50) == 0) if ( clientStatus.tourn != status->tourn || (force && (ntohl(clientStatus.timeprod) != timeprod_int()))) { #ifdef LTD_STATS /* Hey, Tmode changed. Do I have an enemy? */ setEnemy(me->p_team, me); #endif /* LTD_STATS */ /* send the packet.... deleted */ } } Ok, now from the comment it looks like setEnemy should be called when t-mode changes. But this code should get called every 10 seconds during t-mode. Maybe someone who knows how LTD stats work will know, if calling setEnemy every 10 seconds is ok. Secondly, the code in the if statments will only be run every 10 seconds at most. If t-mode changes, it could be 10 seconds before the code is run. This is why the client sometimes takes a while to figure out t-mode has changed. Suppose you have a fed-rom game in t-mode. The roms quit, t-mode is lost, and then some klis join, t-mode is regained, over a period of less than 10 seconds. setEnemy will not get called, even though you had a fed-rom game and now a fed-kli game. Anyway, I'm going to fix this so t-mode changes are sent when they happen, not upto 10 seconds later. I also wonder if stats code inside the network functions is really a good idea, it seems like a bad place to me. From xyzzy at speakeasy.org Sat Aug 19 07:10:00 2000 From: xyzzy at speakeasy.org (Trent Piepho) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] continuum server lag cause found In-Reply-To: <20000816111446.C11331@us.netrek.org> Message-ID: On Wed, 16 Aug 2000, James Cameron wrote: > netrekd sees a memory leak. It was at 28Mb or so today, and restarting > it solved the lag burst on login of new players. Karthik and I isolated > this by noting that the lag burst happened on multiple connections to > either the player list port (2591) or the standard ship port (2592) but > not to connections to the metaserver. What do you mean by multiple connections? More than one connection request within some time window? Does the process memory usage grow by some amount after each connection, or do there have to be more than one at a time for the memory to grow? > Watching "top" on continuum when Karthik sent ten connection requests > showed netrekd at 99% CPU utilisation. Restarting netrekd removed the > problem altogether; it never appeared in "top". At this point, was the netrekd process 28MB, or still small? What I mean is, does the CPU usage only happen when the memory leak has caused the process to get huge. > Karthik uses the same netrekd on his servers, and it is not leaking. > His servers are Intel, and Continuum is Sparc. > > There are no significant malloc/free heap consumption code within the > netrekd code we are using. So the problem is probably related to the > Sparc Linux libraries or kernel. Possibly. I've looked over the newstartd code, and it's pretty nasty. I already spotted one bug in a select() call, but I doubt that is the problem. > I have a core dump of netrekd's 28Mb instance, but I don't know how to > proceed to determine the ownership of virtual memory. I don't know to do that easily either. You could start it up in gdb and look at some variables. For instance, you could look at the prog variable and see how many ports it thinks it has open, etc. From quozl at us.netrek.org Sun Aug 20 04:25:53 2000 From: quozl at us.netrek.org (James Cameron) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] continuum server lag cause found In-Reply-To: ; from xyzzy@speakeasy.org on Sat, Aug 19, 2000 at 05:10:00AM -0700 References: <20000816111446.C11331@us.netrek.org> Message-ID: <20000820192553.C3726@us.netrek.org> On Sat, Aug 19, 2000 at 05:10:00AM -0700, Trent Piepho wrote: > What do you mean by multiple connections? More than one connection request > within some time window? Does the process memory usage grow by some amount > after each connection, or do there have to be more than one at a time for the > memory to grow? Karthik reported that there was a lag burst on each connection, and to make it plain to me with my regular 900ms lag he decided to make many connections at once. I think he simply spawned ten telnet commands on his well-connected machine. I have not measured the rate of process memory usage yet against either time or connections made. I suspect it is unrelated to the number of simultaneous connections. > At this point, was the netrekd process 28MB, or still small? What I mean is, > does the CPU usage only happen when the memory leak has caused the process to > get huge. Yes, the CPU usage occurs seemly as a result of the memory leak. This implies that the virtual memory is being touched in a non-scaleable way by some feature. > Possibly. I've looked over the newstartd code, and it's pretty nasty. I > already spotted one bug in a select() call, but I doubt that is the problem. It was far worse until I hacked at it last year. Let me know what that bug is. > I don't know to do that easily either. You could start it up in gdb and look > at some variables. For instance, you could look at the prog variable and see > how many ports it thinks it has open, etc. The contents of the prog array seem quite acceptable. The gdb output is included below. This also gives us an idea of the number of connections processed ... 23070 on the 2592 port. If the leak relates to connections, that's about 1k per connection. Since August 15th, netrekd has grown to a VSZ of 5064 and RSZ of 3768. The inl.real-time.com netrekd has grown to VSZ 5640 RSZ 4340 since Jul 3rd. Restarting it gives VSZ 1664 and RSZ 628. (gdb) p prog $1 = { {port = 2592, sock = 4, nargs = 0, prog = "./ntserv", '\000' , progname = "ntserv", '\000' , arg = { '\000' , '\000' , '\000' , '\000' }, internal = 0, accepts = 23070, denials = 0, forks = 23070, addr = 0}, {port = 2591, sock = 5, nargs = 1, prog = "./tools/players", '\000' , progname = "players", '\000' , arg = { "m", '\000' , '\000' , '\000' , '\000' }, internal = 0, accepts = 9017, denials = 0, forks = 9017, addr = 0}, {port = 2593, sock = 6, nargs = 2, prog = "./ntserv", '\000' , progname = "ntservobs", '\000' , arg = { "-q", '\000' , "6", '\000' , '\000' , '\000' }, internal = 0, accepts = 1853, denials = 0, forks = 1853, addr = 0}, {port = 0, sock = 0, nargs = 0, prog = "special", '\000' , progname = '\000' , arg = {'\000' , '\000' , '\000' , '\000' }, internal = 0, accepts = 0, denials = 0, forks = 0, addr = 0}, {port = 0, sock = 0, nargs = 0, prog = '\000' , progname = '\000' , arg = {'\000' , '\000' , '\000' , '\000' }, internal = 0, accepts = 0, denials = 0, forks = 0, addr = 0} } -- James Cameron mailto:quozl@us.netrek.org http://quozl.netrek.org/ From xyzzy at speakeasy.org Sun Aug 20 05:13:23 2000 From: xyzzy at speakeasy.org (Trent Piepho) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] continuum server lag cause found In-Reply-To: <20000820192553.C3726@us.netrek.org> Message-ID: On Sun, 20 Aug 2000, James Cameron wrote: > I have not measured the rate of process memory usage yet against either > time or connections made. I suspect it is unrelated to the number of > simultaneous connections. I checked the memory usage of netrekd with "ps -v", let a shell loop run telnets to port 2591 for a while, and then checked again. Exactly the same numbers, no memory leak. This is with glibc-2.1.3 on intel Linux. Does doing this same thing cause a memory usage increase on your sparc/linux system? > > Possibly. I've looked over the newstartd code, and it's pretty nasty. I > > already spotted one bug in a select() call, but I doubt that is the problem. > > It was far worse until I hacked at it last year. > Let me know what that bug is. I'll just put it in CVS after I've fixed a few other things. > {port = 0, sock = 0, > nargs = 0, prog = "special", '\000' , > progname = '\000' , arg = {'\000' , > '\000' , '\000' , > '\000' }, internal = 0, accepts = 0, denials = 0, > forks = 0, addr = 0}, This one doesn't seem right to me. The port is set to 0, the port in the default .ports file is 2596. Did you change it to 0? sock is also 0, which shouldn't happen. It should be -1 if there is no listening socket, or >0 if there is. progname should also be "statistics", and internal should be 1. From quozl at us.netrek.org Sun Aug 20 06:06:28 2000 From: quozl at us.netrek.org (James Cameron) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] continuum server lag cause found In-Reply-To: ; from xyzzy@speakeasy.org on Sun, Aug 20, 2000 at 03:13:23AM -0700 References: <20000820192553.C3726@us.netrek.org> Message-ID: <20000820210628.A4455@us.netrek.org> On Sun, Aug 20, 2000 at 03:13:23AM -0700, Trent Piepho wrote: > I checked the memory usage of netrekd with "ps -v", let a shell loop run > telnets to port 2591 for a while, and then checked again. Exactly the same > numbers, no memory leak. This is with glibc-2.1.3 on intel Linux. Does doing > this same thing cause a memory usage increase on your sparc/linux system? Yes. [quozl@sage ~]$ ps axu | grep netrekd quozl 25701 0.1 1.9 5084 3788 ? S Aug15 9:08 ./netrekd [quozl@sage ~]$ while 1 while? telnet localhost 2591>&/dev/null while? echo -n "." while? end ......................................................................................................................................................................................................................................................................................................................................................... [quozl@sage ~]$ ps axu|grep netrekd quozl 25701 0.1 2.1 5344 4048 ? S Aug15 10:22 ./netrekd Note the VSZ and RSS increase. Note also the CPU time. So even a metaserver query is likely to not help the problem. > This one doesn't seem right to me. The port is set to 0, the port in the > default .ports file is 2596. Did you change it to 0? sock is also 0, which > shouldn't happen. It should be -1 if there is no listening socket, or >0 if > there is. progname should also be "statistics", and internal should be 1. I'm not using the default .ports file. But I am using 2596. Recall it is a fixed size array though, so the remaining zero entries are okay. Here is the .ports file, less comments; 2592 ./ntserv "ntserv" 2591 ./tools/players "players" m 2593 ./ntserv "ntservobs" -q 6 2596 special statistics Your point about 2596 being missing may be important. [quozl@sage continuum]$ telnet localhost 2596 Trying 127.0.0.1... telnet: Unable to connect to remote host: Connection refused -- James Cameron mailto:quozl@us.netrek.org http://quozl.netrek.org/ From xyzzy at speakeasy.org Sun Aug 20 06:46:54 2000 From: xyzzy at speakeasy.org (Trent Piepho) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] continuum server lag cause found In-Reply-To: <20000820210628.A4455@us.netrek.org> Message-ID: On Sun, 20 Aug 2000, James Cameron wrote: > quozl 25701 0.1 1.9 5084 3788 ? S Aug15 9:08 ./netrekd > quozl 25701 0.1 2.1 5344 4048 ? S Aug15 10:22 ./netrekd > > Note the VSZ and RSS increase. Note also the CPU time. > So even a metaserver query is likely to not help the problem. If I do the same thing, 345 connections to the list port: USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND xyzzy 5706 0.8 1.1 1184 560 ? S 04:32 0:01 netrekd xyzzy 5706 1.3 1.1 1184 560 ? S 04:32 0:02 netrekd > I'm not using the default .ports file. But I am using 2596. Recall it > is a fixed size array though, so the remaining zero entries are okay. > > Here is the .ports file, less comments; > > 2592 ./ntserv "ntserv" > 2591 ./tools/players "players" m > 2593 ./ntserv "ntservobs" -q 6 > 2596 special statistics > > Your point about 2596 being missing may be important. Your .ports file is broken. You need to have quotes around the 3rd word, but statistics has no quotes. This causes the parser to decided that the line is bad, and ignore it. If you look at the variable num_progs in the scope of main(), you'll see that it is only 3 and not 4. This shouldn't cause netrekd any problems, but you might want to fix your file. Also, do you have a .nocount file? It needs to be in LIBDIR and be readable by the netrekd process. Otherwise netrekd will spawn /usr/ucb/netstat on each connection, yuck. IMHO, a .count file to turn on this feature would make more sense. From quozl at us.netrek.org Sun Aug 20 07:39:03 2000 From: quozl at us.netrek.org (James Cameron) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] continuum server lag cause found In-Reply-To: ; from xyzzy@speakeasy.org on Sun, Aug 20, 2000 at 04:46:54AM -0700 References: <20000820210628.A4455@us.netrek.org> Message-ID: <20000820223903.F4455@us.netrek.org> On Sun, Aug 20, 2000 at 04:46:54AM -0700, Trent Piepho wrote: > If I do the same thing, 345 connections to the list port: > USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND > xyzzy 5706 0.8 1.1 1184 560 ? S 04:32 0:01 netrekd > xyzzy 5706 1.3 1.1 1184 560 ? S 04:32 0:02 netrekd Yes, Karthik saw no change on his Intel based system too. > Your .ports file is broken. You need to have quotes around the 3rd word, but > statistics has no quotes. This causes the parser to decided that the line is > bad, and ignore it. If you look at the variable num_progs in the scope of > main(), you'll see that it is only 3 and not 4. This shouldn't cause > netrekd any problems, but you might want to fix your file. Yes, this was a change to doc/sample_ports in the last year. Fixed, tested, ... still leaks. Statistics output works now as well. > Also, do you have a .nocount file? It needs to be in LIBDIR and be readable > by the netrekd process. Otherwise netrekd will spawn /usr/ucb/netstat on each > connection, yuck. IMHO, a .count file to turn on this feature would make more > sense. Yes, I have one. I agree. Feel free to change the code if you get a moment. Note that the installation scripts "touch $LIBDIR/.nocount" I've looked at an strace. I need to make an ltrace next. The strace suggests an issue with /etc/nsswitch.conf line that I recall as a known issue with Red Hat Linux V6.2 ... "hosts: files nisplus nis dns" If Bob isn't using NIS I'll ask him to remove that. -- James Cameron mailto:quozl@us.netrek.org http://quozl.netrek.org/ From ssheldon at sodablue.org Mon Aug 21 01:30:11 2000 From: ssheldon at sodablue.org (Steve Sheldon) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] Some comments on changes... Message-ID: <000001c00b39$42b82660$2000000a@win2k.sodablue.com> Ok, I bought a DECstation 5000/133 for nostalgia sake, and am trying to get a Netrek server up and running on it. Couple of notes: In tools/update.c on line 201 is this line: action.sa_sigaction = NULL; There is no sa_sigaction as a member of the sigaction struct under NetBSD. Nor is there under Linux, although there is this sa_restorer which says it shouldn't be used. However, even my copy of APUE doesn't mention this existing. It seems to me this needs to be ifdef'ed out, but not sure what system might actually need it. :) ----- In robotd, there is a reliance upon for the definition of MAXINT. This should be changed to the ANSI-C standard INT_MAX as defined in . Similarly I think the ftime() call in robot.c should probably be replaced with gettimeofday() for newer systems? Does that sound correct? ----- I might come up with other suggestions. Right now the robotd stuff is throwing an illegal instruction exception in gethostbyname() under callServer(). The source looks correct... NetBSD/pmax just really really doesn't like this, it's even throwing some goofy stuff in gdb. I have another machine, a PS/2 Model 77 with Debian 2.1, and everything runs fine there. It's even quite a bit faster than the DECstation, which surprises me slightly. Although I think there is a problem with NetBSD/pmax which results in a severe performance penalty when doing a fork(). This seems to be confirmed on the mailing list as well. From zu22 at andrew.cmu.edu Mon Aug 21 01:43:07 2000 From: zu22 at andrew.cmu.edu (Zachary Uram) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] Some comments on changes... In-Reply-To: <000001c00b39$42b82660$2000000a@win2k.sodablue.com> Message-ID: AFAIK there are no Vanilla servers which run in Windows yes? There is an NT machine at work I could prolly run netrekd on but it must be Windows. Connection is 10MB/sec machine is P-100. Any projetcs to port server to Win32? SDG, Zach ________________________________________________________ uram@cmu.edu "Blessed are those who have not seen and yet have faith." - John 20:29 From ssheldon at sodablue.org Mon Aug 21 01:45:49 2000 From: ssheldon at sodablue.org (Steve Sheldon) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] Some comments on changes... In-Reply-To: Message-ID: <000101c00b3b$71b5a6c0$2000000a@win2k.sodablue.com> Darryl Palmer had it running at one time, I believe. But I don't know what he did. I honestly have never had the time to go looking at it. It seems every time I sit down to just work on the client I spend two days trying to get the server running right on my machines at home. :) > -----Original Message----- > From: Zachary Uram [mailto:zu22@andrew.cmu.edu] > Sent: Monday, August 21, 2000 1:43 AM > To: Steve Sheldon > Cc: Vanilla-Netrek (E-mail) > Subject: Re: [Vanilla List] Some comments on changes... > > > AFAIK there are no Vanilla servers which run in Windows yes? > There is an NT machine at work I could prolly run netrekd on > but it must be Windows. Connection is 10MB/sec machine is P-100. > Any projetcs to port server to Win32? > > SDG, > Zach > ________________________________________________________ > uram@cmu.edu > "Blessed are those who have not seen and yet have faith." - John 20:29 > > From xyzzy at speakeasy.org Mon Aug 21 03:48:36 2000 From: xyzzy at speakeasy.org (Trent Piepho) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] Some comments on changes... In-Reply-To: <000001c00b39$42b82660$2000000a@win2k.sodablue.com> Message-ID: On Mon, 21 Aug 2000, Steve Sheldon wrote: > Ok, I bought a DECstation 5000/133 for nostalgia sake, and am trying to get > a Netrek server up and running on it. > > Couple of notes: > > In tools/update.c on line 201 is this line: > > action.sa_sigaction = NULL; > > There is no sa_sigaction as a member of the sigaction struct under NetBSD. > Nor is there under Linux, although there is this sa_restorer which says it > shouldn't be used. Solaris has sa_sigaction. I was under the impression that it was not being used by setting it to NULL, otherwise it's going to have some random value. From ssheldon at sodablue.org Mon Aug 21 11:50:52 2000 From: ssheldon at sodablue.org (Steve Sheldon) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] Some comments on changes... Message-ID: <200008210950.AA41419318@sodablue.org> ---------- Original Message ---------------------------------- From: James Cameron Date: Mon, 21 Aug 2000 17:02:50 +1000 >On Mon, Aug 21, 2000 at 02:43:07AM -0400, Zachary Uram wrote: >> AFAIK there are no Vanilla servers which run in Windows yes? >> There is an NT machine at work I could prolly run netrekd on >> but it must be Windows. Connection is 10MB/sec machine is P-100. >> Any projetcs to port server to Win32? > >Yes, about five in five years. One person got it nearly running okay, >then disappeared. I managed to get a copy of his source first. I have >not bothered to analyse it. Can you put this source up on ftp, so I can try to take a look at it? >I get the impression that it is not a popular platform for real-time >gaming development. ;-) Uhh, yeah right. For what it's worth, I'm also experimenting with trying to use the Borland C++ compiler that they put out for free download to try to compile things like the client, etc. I haven't gotten very far down this path, but it looks like it ought to work. From ahn at vec.wfubmc.edu Mon Aug 21 11:56:39 2000 From: ahn at vec.wfubmc.edu (Dave Ahn) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] Some comments on changes... In-Reply-To: <200008210950.AA41419318@sodablue.org>; from ssheldon@sodablue.org on Mon, Aug 21, 2000 at 09:50:52AM -0700 References: <200008210950.AA41419318@sodablue.org> Message-ID: <20000821125639.D220729@cecum.vec.wfubmc.edu> On Mon, Aug 21, 2000 at 09:50:52AM -0700, Steve Sheldon wrote: > > > >Yes, about five in five years. One person got it nearly running okay, > >then disappeared. I managed to get a copy of his source first. I have > >not bothered to analyse it. > > Can you put this source up on ftp, so I can try to take a look at it? Whoever has it, please upload it to ftp.netrek.org. -- Dave Ahn | ahn@vec.wfubmc.edu | Wake Forest University Baptist Medical Center When you were born, you cried and the world rejoiced. Try to live your life so that when you die, you will rejoice and the world will cry. -1/2 jj^2 From ssheldon at sodablue.org Mon Aug 21 11:55:28 2000 From: ssheldon at sodablue.org (Steve Sheldon) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] Some comments on changes... Message-ID: <200008210955.AA1180308@sodablue.org> No, absolutely. On the platforms which actually try to implement this sa_sigaction value it needs to be set, even if it is just to NULL. The problem is the compile errors one gets if that value is not part of the sigaction struct. It's a question of... is it easier to do this: #ifdef Solaris or this: #ifndef NetBSD and Linux and this and that and the_other_thing All right, for now I'll just suggest putting '#ifndef NetBSD' around that one line. :) ---------- Original Message ---------------------------------- From: Trent Piepho Date: Mon, 21 Aug 2000 01:48:36 -0700 (PDT) >On Mon, 21 Aug 2000, Steve Sheldon wrote: >> Ok, I bought a DECstation 5000/133 for nostalgia sake, and am trying to get >> a Netrek server up and running on it. >> >> Couple of notes: >> >> In tools/update.c on line 201 is this line: >> >> action.sa_sigaction = NULL; >> >> There is no sa_sigaction as a member of the sigaction struct under NetBSD. >> Nor is there under Linux, although there is this sa_restorer which says it >> shouldn't be used. > >Solaris has sa_sigaction. I was under the impression that it was not being >used by setting it to NULL, otherwise it's going to have some random value. > >_______________________________________________ >vanilla-list mailing list >vanilla-list@us.netrek.org >https://mailman.real-time.com/mailman/listinfo/vanilla-list > From ahn at vec.wfubmc.edu Mon Aug 21 15:44:43 2000 From: ahn at vec.wfubmc.edu (Dave Ahn) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] possible bug in LTD stats In-Reply-To: ; from xyzzy@speakeasy.org on Thu, Aug 17, 2000 at 12:27:50AM -0700 References: Message-ID: <20000821164443.A215241@cecum.vec.wfubmc.edu> On Thu, Aug 17, 2000 at 12:27:50AM -0700, Trent Piepho wrote: > > Ok, now from the comment it looks like setEnemy should be called when t-mode > changes. But this code should get called every 10 seconds during t-mode. > Maybe someone who knows how LTD stats work will know, if calling setEnemy > every 10 seconds is ok. I didn't look too carefully, but I do not believe setEnemy() gets called every 10 seconds because the nested if condition inside updateStatus() won't be met unless T mode changes. Even if it does, it is OK. > Suppose you have a fed-rom game in t-mode. The roms quit, t-mode is lost, and > then some klis join, t-mode is regained, over a period of less than 10 > seconds. setEnemy will not get called, even though you had a fed-rom game and > now a fed-kli game. You are probably right. But p_hist.enemy_team is only used for computing LTD_ZONE ticks, and the small error you point out has no significant impact on the stats. But it should probably be fixed. > upto 10 seconds later. I also wonder if stats code inside the network > functions is really a good idea, it seems like a bad place to me. Probably not, but p_hist.enemy_team only needs to be set during t-mode changes for each player. There isn't a significantly better place to put it. Also, there are a couple of other places where stats are updated within the networking functions. -- Dave Ahn | ahn@vec.wfubmc.edu | Wake Forest University Baptist Medical Center When you were born, you cried and the world rejoiced. Try to live your life so that when you die, you will rejoice and the world will cry. -1/2 jj^2 From quozl at us.netrek.org Mon Aug 21 18:37:41 2000 From: quozl at us.netrek.org (James Cameron) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] Some comments on changes... In-Reply-To: <20000821125639.D220729@cecum.vec.wfubmc.edu>; from ahn@vec.wfubmc.edu on Mon, Aug 21, 2000 at 12:56:39PM -0400 References: <200008210950.AA41419318@sodablue.org> <20000821125639.D220729@cecum.vec.wfubmc.edu> Message-ID: <20000822093741.G6164@us.netrek.org> On Mon, Aug 21, 2000 at 12:56:39PM -0400, Dave Ahn wrote: > Whoever has it, please upload it to ftp.netrek.org. FTP PUT running as I write and send this mail. md5sum is 6008cfbca779a77091673354a1dec460 size is 446585 -- James Cameron mailto:quozl@us.netrek.org http://quozl.netrek.org/ From xyzzy at speakeasy.org Mon Aug 21 18:52:13 2000 From: xyzzy at speakeasy.org (Trent Piepho) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] possible bug in LTD stats In-Reply-To: <20000821164443.A215241@cecum.vec.wfubmc.edu> Message-ID: On Mon, 21 Aug 2000, Dave Ahn wrote: > > Ok, now from the comment it looks like setEnemy should be called when t-mode > > changes. But this code should get called every 10 seconds during t-mode. > > Maybe someone who knows how LTD stats work will know, if calling setEnemy > > every 10 seconds is ok. > > I didn't look too carefully, but I do not believe setEnemy() gets called > every 10 seconds because the nested if condition inside updateStatus() > won't be met unless T mode changes. Even if it does, it is OK. The condition will be met when tmode changes or when timeprod changes and force is true. timeprod will change every update during t-mode and force is usually true. > > upto 10 seconds later. I also wonder if stats code inside the network > > functions is really a good idea, it seems like a bad place to me. > > Probably not, but p_hist.enemy_team only needs to be set during t-mode > changes for each player. There isn't a significantly better place to put > it. Also, there are a couple of other places where stats are updated > within the networking functions. Does it need to go in ntserv or daemonII? If it could go in daemonII it would make sense to put it with all the other t-mode change code, like the scummer check, the "A dark mood.." messages, etc. From ahn at vec.wfubmc.edu Tue Aug 22 07:38:46 2000 From: ahn at vec.wfubmc.edu (Dave Ahn) Date: Wed Jan 12 00:52:02 2005 Subject: [Vanilla List] possible bug in LTD stats In-Reply-To: ; from xyzzy@speakeasy.org on Mon, Aug 21, 2000 at 04:52:13PM -0700 References: <20000821164443.A215241@cecum.vec.wfubmc.edu> Message-ID: <20000822083846.C223954@cecum.vec.wfubmc.edu> On Mon, Aug 21, 2000 at 04:52:13PM -0700, Trent Piepho wrote: > > > > Probably not, but p_hist.enemy_team only needs to be set during t-mode > > changes for each player. There isn't a significantly better place to put > > it. Also, there are a couple of other places where stats are updated > > within the networking functions. > > Does it need to go in ntserv or daemonII? If it could go in daemonII it would > make sense to put it with all the other t-mode change code, like the scummer > check, the "A dark mood.." messages, etc. There is another setEnemy() call in enter.c It would probably be better to leave both calls in ntserv for consistency, but moving them to daemonII shouldn't have any effect as long as there are no race conditions. -- Dave Ahn | ahn@vec.wfubmc.edu | Wake Forest University Baptist Medical Center When you were born, you cried and the world rejoiced. Try to live your life so that when you die, you will rejoice and the world will cry. -1/2 jj^2 From ahn at vec.wfubmc.edu Tue Aug 22 07:48:25 2000 From: ahn at vec.wfubmc.edu (Dave Ahn) Date: Wed Jan 12 00:52:03 2005 Subject: [Vanilla List] Some comments on changes... In-Reply-To: <20000822093741.G6164@us.netrek.org>; from quozl@us.netrek.org on Tue, Aug 22, 2000 at 09:37:41AM +1000 References: <200008210950.AA41419318@sodablue.org> <20000821125639.D220729@cecum.vec.wfubmc.edu> <20000822093741.G6164@us.netrek.org> Message-ID: <20000822084825.D223954@cecum.vec.wfubmc.edu> On Tue, Aug 22, 2000 at 09:37:41AM +1000, James Cameron wrote: > On Mon, Aug 21, 2000 at 12:56:39PM -0400, Dave Ahn wrote: > > Whoever has it, please upload it to ftp.netrek.org. > > FTP PUT running as I write and send this mail. > > md5sum is 6008cfbca779a77091673354a1dec460 > size is 446585 Vanilla Windows NT port moved to ftp://ftp.netrek.org/pub/netrek/servers/vanilla/NT/ Also moved hockey.rcd.txt to /pub/netrek/misc/ PS Bob, could you set the reply-to field on vanilla-list? It may not be a good idea, but it certainly is convenient. -- Dave Ahn | ahn@vec.wfubmc.edu | Wake Forest University Baptist Medical Center When you were born, you cried and the world rejoiced. Try to live your life so that when you die, you will rejoice and the world will cry. -1/2 jj^2 From jeffno at ccs.neu.edu Tue Aug 22 08:46:47 2000 From: jeffno at ccs.neu.edu (Jeffrey Nowakowski) Date: Wed Jan 12 00:52:03 2005 Subject: [Vanilla List] Some comments on changes... In-Reply-To: <20000822084825.D223954@cecum.vec.wfubmc.edu> from "Dave Ahn" at Aug 22, 2000 08:48:25 AM Message-ID: <200008221346.e7MDklm14142@denali.ccs.neu.edu> Dave Ahn wrote: > > PS Bob, could you set the reply-to field on vanilla-list? It may not be > a good idea, but it certainly is convenient. Is this why I seem to be missing a few of the email messages? I agree, set the Reply-to. -Jeff From tanner at real-time.com Tue Aug 22 14:49:40 2000 From: tanner at real-time.com (Bob Tanner) Date: Wed Jan 12 00:52:03 2005 Subject: [Vanilla List] continuum server lag cause found In-Reply-To: <20000820223903.F4455@us.netrek.org>; from quozl@us.netrek.org on Sun, Aug 20, 2000 at 10:39:03PM +1000 References: <20000820210628.A4455@us.netrek.org> <20000820223903.F4455@us.netrek.org> Message-ID: <20000822144940.E19051@real-time.com> Quoting James Cameron (quozl@us.netrek.org): > Yes, I have one. I agree. Feel free to change the code if you get a > moment. Note that the installation scripts "touch $LIBDIR/.nocount" > > I've looked at an strace. I need to make an ltrace next. The strace > suggests an issue with /etc/nsswitch.conf line that I recall as a known > issue with Red Hat Linux V6.2 ... "hosts: files nisplus nis dns" > > If Bob isn't using NIS I'll ask him to remove that. Sage is stand-alone, so I changed the /etc/nsswitch.conf to reflex that. hosts: files dns -- Bob Tanner | Phone : (612)943-8700 http://www.mn-linux.org | Fax : (612)943-8500 Key fingerprint = 6C E9 51 4F D5 3E 4C 66 62 A9 10 E5 35 85 39 D9 From tanner at real-time.com Tue Aug 22 15:34:41 2000 From: tanner at real-time.com (Bob Tanner) Date: Wed Jan 12 00:52:03 2005 Subject: [Vanilla List] Some comments on changes... In-Reply-To: <200008221346.e7MDklm14142@denali.ccs.neu.edu>; from jeffno@ccs.neu.edu on Tue, Aug 22, 2000 at 09:46:47AM -0400 References: <20000822084825.D223954@cecum.vec.wfubmc.edu> <200008221346.e7MDklm14142@denali.ccs.neu.edu> Message-ID: <20000822153441.C19051@real-time.com> Quoting Jeffrey Nowakowski (jeffno@ccs.neu.edu): > Dave Ahn wrote: > > > > PS Bob, could you set the reply-to field on vanilla-list? It may not be > > a good idea, but it certainly is convenient. > > Is this why I seem to be missing a few of the email messages? > > I agree, set the Reply-to. Done. -- Bob Tanner | Phone : (612)943-8700 http://www.mn-linux.org | Fax : (612)943-8500 Key fingerprint = 6C E9 51 4F D5 3E 4C 66 62 A9 10 E5 35 85 39 D9 From quozl at us.netrek.org Tue Aug 22 18:32:50 2000 From: quozl at us.netrek.org (James Cameron) Date: Wed Jan 12 00:52:03 2005 Subject: [Vanilla List] continuum server lag cause found In-Reply-To: <20000822144940.E19051@real-time.com>; from tanner@real-time.com on Tue, Aug 22, 2000 at 02:49:40PM -0500 References: <20000820210628.A4455@us.netrek.org> <20000820223903.F4455@us.netrek.org> <20000822144940.E19051@real-time.com> Message-ID: <20000823093250.B10129@us.netrek.org> On Tue, Aug 22, 2000 at 02:49:40PM -0500, Bob Tanner wrote: > Sage is stand-alone, so I changed the /etc/nsswitch.conf > hosts: files dns Has fixed the leak. VSZ of 1672 at start, VSZ of 1780 after 83 connections, VSZ of 1988 after 1943 connections, VSZ of 1988 after 2823 connections. Conclusion: the default Red Hat V6.2 install leaves NIS enabled in the /etc/nsswitch.conf file, resulting in memory leaks during reverse host lookups. -- James Cameron mailto:quozl@us.netrek.org http://quozl.netrek.org/ From tanner at real-time.com Tue Aug 22 18:38:15 2000 From: tanner at real-time.com (Bob Tanner) Date: Wed Jan 12 00:52:03 2005 Subject: [Vanilla List] continuum server lag cause found In-Reply-To: <20000823093250.B10129@us.netrek.org>; from quozl@us.netrek.org on Wed, Aug 23, 2000 at 09:32:50AM +1000 References: <20000820210628.A4455@us.netrek.org> <20000820223903.F4455@us.netrek.org> <20000822144940.E19051@real-time.com> <20000823093250.B10129@us.netrek.org> Message-ID: <20000822183815.C2507@real-time.com> Quoting James Cameron (quozl@us.netrek.org): > On Tue, Aug 22, 2000 at 02:49:40PM -0500, Bob Tanner wrote: > > Sage is stand-alone, so I changed the /etc/nsswitch.conf > > hosts: files dns > > Has fixed the leak. > > VSZ of 1672 at start, > VSZ of 1780 after 83 connections, > VSZ of 1988 after 1943 connections, > VSZ of 1988 after 2823 connections. > > Conclusion: the default Red Hat V6.2 install leaves NIS enabled in the > /etc/nsswitch.conf file, resulting in memory leaks during reverse host > lookups. > Are you going to report this bug to the developers? -- Bob Tanner | Phone : (612)943-8700 http://www.mn-linux.org | Fax : (612)943-8500 Key fingerprint = 6C E9 51 4F D5 3E 4C 66 62 A9 10 E5 35 85 39 D9 From quozl at us.netrek.org Tue Aug 22 19:09:53 2000 From: quozl at us.netrek.org (James Cameron) Date: Wed Jan 12 00:52:03 2005 Subject: [Vanilla List] continuum server lag cause found In-Reply-To: <20000822183815.C2507@real-time.com>; from tanner@real-time.com on Tue, Aug 22, 2000 at 06:38:15PM -0500 References: <20000820210628.A4455@us.netrek.org> <20000820223903.F4455@us.netrek.org> <20000822144940.E19051@real-time.com> <20000823093250.B10129@us.netrek.org> <20000822183815.C2507@real-time.com> Message-ID: <20000823100953.A10535@us.netrek.org> On Tue, Aug 22, 2000 at 06:38:15PM -0500, Bob Tanner wrote: > Are you going to report this bug to the developers? Checked. It is known. http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=3958 Fixed in glibc-2.1.2-3 and later. Continuum uses glibc-2.1.1-6. Related defect reports (relevant to kernel 2.4): http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=9952 http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=10636 -- James Cameron mailto:quozl@us.netrek.org http://quozl.netrek.org/ From xyzzy at speakeasy.org Wed Aug 23 00:05:43 2000 From: xyzzy at speakeasy.org (Trent Piepho) Date: Wed Jan 12 00:52:03 2005 Subject: [Vanilla List] continuum server lag cause found In-Reply-To: <20000823100953.A10535@us.netrek.org> Message-ID: On Wed, 23 Aug 2000, James Cameron wrote: > On Tue, Aug 22, 2000 at 06:38:15PM -0500, Bob Tanner wrote: > > Are you going to report this bug to the developers? > > Checked. It is known. > > [bugzilla] All those relate to nsswitch.conf having nis and nisplus as default entries. I'd call that more poor configuration than a bug. The real bug is that nis hostname lookups leak memory. I'm sure if anyone used nis, we'd have heard about that one long ago. From quozl at us.netrek.org Thu Aug 24 17:44:01 2000 From: quozl at us.netrek.org (James Cameron) Date: Wed Jan 12 00:52:03 2005 Subject: [Vanilla List] T-Mode Theft Message-ID: <20000825084401.B1304@us.netrek.org> Another antisocial behaviour is turning up and I'm receiving complaints about it. Player leaves one of the T-Mode teams and joins a third race just after T-Mode is lost, but enough players join eventually to make T-Mode work; provided they were all on the same team. This persistence of the player who apparently wants to play on the other race reduces the enjoyment of the game for the remaining players. In mail I've received this comment; "One change I'd like to see is that if there is a majority of people aready on two teams (obviously waiting for T) then all incoming people must select between the two teams." Is this necessary? Should the race choice be set by the first two people who join an empty server? -- James Cameron mailto:quozl@us.netrek.org http://quozl.netrek.org/ From ahn at vec.wfubmc.edu Thu Aug 24 17:54:18 2000 From: ahn at vec.wfubmc.edu (Dave Ahn) Date: Wed Jan 12 00:52:03 2005 Subject: [Vanilla List] T-Mode Theft In-Reply-To: <20000825084401.B1304@us.netrek.org>; from quozl@us.netrek.org on Fri, Aug 25, 2000 at 08:44:01AM +1000 References: <20000825084401.B1304@us.netrek.org> Message-ID: <20000824185418.A232547@cecum.vec.wfubmc.edu> On Fri, Aug 25, 2000 at 08:44:01AM +1000, James Cameron wrote: > > "One change I'd like to see is that if there is a majority of > people aready on two teams (obviously waiting for T) then > all incoming people must select between the two teams." > > Is this necessary? Should the race choice be set by the first two > people who join an empty server? There has been a strong tendency to reduce the flexibility of the game to discourage stupid player behavior. I think that's just plain silly. -- Dave Ahn | ahn@vec.wfubmc.edu | Wake Forest University Baptist Medical Center When you were born, you cried and the world rejoiced. Try to live your life so that when you die, you will rejoice and the world will cry. -1/2 jj^2 From zu22 at andrew.cmu.edu Thu Aug 24 17:57:42 2000 From: zu22 at andrew.cmu.edu (Zachary Uram) Date: Wed Jan 12 00:52:03 2005 Subject: [Vanilla List] T-Mode Theft In-Reply-To: <20000825084401.B1304@us.netrek.org> Message-ID: On Fri, 25 Aug 2000, James Cameron wrote: > Another antisocial behaviour is turning up and I'm receiving complaints > about it. Player leaves one of the T-Mode teams and joins a third race > just after T-Mode is lost, but enough players join eventually to make > T-Mode work; provided they were all on the same team. I was on Continuum last night and saw this happen at two different times. > This persistence of the player who apparently wants to play on the other > race reduces the enjoyment of the game for the remaining players. There were 2 inviduals I recall who refused to join Fed or Rom and eventually their 3rd race team Ori became the dominant one as people abandoned Fed! > Is this necessary? Should the race choice be set by the first two > people who join an empty server? It's not set by the first two. If there are 3 on Rom and 3 on Fed clearly this is what the race is going to be. It is the ones coming in and hijacking the race to 3rd world race who are making the choice as opposed to those who were already there. Maybe allow for galactic reset vote or something if this happens I dunno. SDG, Zach uram@cmu.edu "Blessed are those who have not seen and yet have faith." - John 20:29 From netrek at shentel.net Thu Aug 24 18:17:00 2000 From: netrek at shentel.net (Shaun) Date: Wed Jan 12 00:52:03 2005 Subject: [Vanilla List] T-Mode Theft References: <20000825084401.B1304@us.netrek.org> <20000824185418.A232547@cecum.vec.wfubmc.edu> Message-ID: <001501c00e21$68d568e0$34316fcc@desktop1> > On Fri, Aug 25, 2000 at 08:44:01AM +1000, James Cameron wrote: > > > > "One change I'd like to see is that if there is a majority of > > people aready on two teams (obviously waiting for T) then > > all incoming people must select between the two teams." > > > > Is this necessary? Should the race choice be set by the first two > > people who join an empty server? > > There has been a strong tendency to reduce the flexibility of the game to > discourage stupid player behavior. I think that's just plain silly. As has Zachary, I have seen this happen many times as well. If it happens enough, I'll give up waiting for T and play somewhere else, or, in times such as this, play nowhere at all. I cannot speak for anyone else, but I'm sure I'm not the only one who gets sick of waiting and leaves. True, it reduces the flexibility of the game, but there are few if legitimate reasons to join a third race if the majority of people are already on two teams. Furthermore, pickup games are hard enough to find. I think the increased chances of T-mode more than compensate for the reduced flexibility. -Shaun Foley > -- > Dave Ahn | ahn@vec.wfubmc.edu | Wake Forest University Baptist Medical Center > > When you were born, you cried and the world rejoiced. Try to live your life > so that when you die, you will rejoice and the world will cry. -1/2 jj^2 From rsc at scd.ucar.edu Thu Aug 24 18:35:37 2000 From: rsc at scd.ucar.edu (Bob Campbell) Date: Wed Jan 12 00:52:03 2005 Subject: [Vanilla List] T-Mode Theft Message-ID: <200008242335.RAA01116@niwot.scd.ucar.edu> Maybe it would reduce flexibility, but at this point, we're trying to increase player numbers (or at least not lose ground). I wouldn't play games online if it were frustrating to get a game going (I actually experienced this on heat.net trying to play Total Annihilation there). Why not come up with some server mods that server administrators can implement if they so choose (including non at all), but make it a run-time environment thing. I would propose a rotating-galaxy thing, where you start with Fed v Rom, then Rom v Kli, then Kli v Ori, then Ori v Fed. At least it would keep things mixed up a little, even though in a non-chaotic way. Every fifth t-mode repeats the sequence, even set it up so that the sequence is configurable. In effect, even before t-mode happens, you'd have a case where you'd know what races would be playing so you block the 3rd space races. Bob Campbell Unix System Administrator Scientific Computing Division National Center for Atmospheric Research rsc@ucar.edu (303) 497-1815 From zu22 at andrew.cmu.edu Thu Aug 24 18:43:21 2000 From: zu22 at andrew.cmu.edu (Zachary Uram) Date: Wed Jan 12 00:52:03 2005 Subject: [Vanilla List] something odd In-Reply-To: <200008242335.RAA01116@niwot.scd.ucar.edu> Message-ID: Hmm at work I have 10MB/sec ethernet connection and up on campus in the public clusters it's the same. At work I run Netrek 2000 on a P200 which isnt slow but isnt fast either, but my lag is low and client runs very smoothly. Yesterday I was playing with BRMH 2.3 client in Slowaris one a Sun Ultra-1 Creator up on campus and my lag was similiarly low yet I noticed 2 curious things: 1) torps move MUCH faster 2) flight time seems much longer I don't know what updates/sec was set to. How can I manually force the updates/sec in rc file for both clients so I may see if this is the cause of odd behaviour? SDG, Zach uram@cmu.edu "Blessed are those who have not seen and yet have faith." - John 20:29 From jeffno at ccs.neu.edu Thu Aug 24 19:23:48 2000 From: jeffno at ccs.neu.edu (Jeffrey Nowakowski) Date: Wed Jan 12 00:52:03 2005 Subject: [Vanilla List] T-Mode Theft In-Reply-To: <20000825084401.B1304@us.netrek.org> from "James Cameron" at Aug 25, 2000 08:44:01 AM Message-ID: <200008250023.e7P0NmE07912@denali.ccs.neu.edu> James Cameron wrote: > > Is this necessary? Should the race choice be set by the first two > people who join an empty server? This is not a technical discussion. Wouldn't this be better served on rec.games.netrek? -Jeff From doosh at best.com Fri Aug 25 09:44:47 2000 From: doosh at best.com (Tom Holub) Date: Wed Jan 12 00:52:03 2005 Subject: [Vanilla List] T-Mode Theft In-Reply-To: <20000825084401.B1304@us.netrek.org>; from quozl@us.netrek.org on Fri, Aug 25, 2000 at 08:44:01AM +1000 References: <20000825084401.B1304@us.netrek.org> Message-ID: <20000825074447.A13720@shell3.ba.best.com> On Fri, Aug 25, 2000 at 08:44:01AM +1000, James Cameron wrote: > Another antisocial behaviour is turning up and I'm receiving complaints > about it. Player leaves one of the T-Mode teams and joins a third race > just after T-Mode is lost, but enough players join eventually to make > T-Mode work; provided they were all on the same team. > > This persistence of the player who apparently wants to play on the other > race reduces the enjoyment of the game for the remaining players. > > In mail I've received this comment; > > "One change I'd like to see is that if there is a majority of > people aready on two teams (obviously waiting for T) then > all incoming people must select between the two teams." > > Is this necessary? Should the race choice be set by the first two > people who join an empty server? No. Often I want to join a third-race team so I can dogfight with players from both existing sides. There shouldn't be any forcing until there are enough players for T-mode. -Tom