Update of /cvsroot/netrek/server/Vanilla/ntserv
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3659/ntserv

Modified Files:
	Makefile.in ntscmds.c 
Log Message:
fix compilation errors on sequencer following previous commands.c change

Index: Makefile.in
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/ntserv/Makefile.in,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- Makefile.in	24 Apr 2006 10:12:17 -0000	1.6
+++ Makefile.in	6 May 2006 13:12:56 -0000	1.7
@@ -11,7 +11,7 @@
 
 #	libnetrek object files
 
-L_OBJS = bay.o \
+L_OBJS = balance.o bay.o \
 	coup.o \
 	data.o db.o detonate.o distress.o \
 	enter.o \

Index: ntscmds.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/ntserv/ntscmds.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- ntscmds.c	6 May 2006 12:06:39 -0000	1.10
+++ ntscmds.c	6 May 2006 13:12:56 -0000	1.11
@@ -42,10 +42,6 @@
 void do_start_mars(void);
 #endif
 
-#if defined (TRIPLE_PLANET_MAYHEM)
-void do_balance(void);
-void do_triple_planet_mayhem(void);
-#endif
 void do_password(char *comm, struct message *mess);
 void do_nodock(char *comm, struct message *mess);
 void do_transwarp(char *comm, struct message *mess);
@@ -749,426 +745,6 @@
 	     nowobble ? "on (new test mode)" : "off (classic mode)", nowobble, comm );
 }
 
-#ifdef TRIPLE_PLANET_MAYHEM
-/*
-**  16-Jul-1994 James Cameron
-**
-**  Balances teams according to player statistics.
-**  Intended for use with Triple Planet Mayhem
-*/
-
-/*
-**  Tell all that player will be moved
-*/
-static void moveallmsg(int p_no, int ours, int theirs, int p_value)
-{
-    struct player *k = &players[p_no];
-    pmessage(0, MALL, addr_mess(p_no, MALL),
-       "Balance: %16s (slot %c, rating %.2f) is to join the %s",
-       k->p_name, shipnos[p_no], 
-       (float) ( p_value / 100.0 ),
-       team_name(ours));
-
-    /* annoying compiler warning */
-    if (theirs) ;
-}
-
-/*
-**  Move a player to the specified team, if they are not yet there.
-**  Make them peaceful with the new team, and hostile/at war with the
-**  other team.
-*/
-static void move(int p_no, int ours, int theirs)
-{
-  struct player *k = &players[p_no];
-  int queue;
-    
-  if ( k->p_team != ours ) {
-    pmessage(k->p_no, MINDIV, addr_mess(k->p_no,MINDIV),
-	     "%s: please SWAP SIDES to the --> %s <--", k->p_name, team_name(ours));
-  }
-  else {
-    pmessage(k->p_no, MINDIV, addr_mess(k->p_no,MINDIV),
-	     "%s: please remain with the --> %s <--", k->p_name, team_name(ours));
-  }
-  
-  printf("Balance: %16s (%s) is to join the %s\n", 
-	 k->p_name, k->p_mapchars, team_name(ours));
-  
-  /* cope with a balance during INL pre-game, if we don't shift players who
-     are on the QU_HOME or QU_AWAY queues then the queue masks will force
-     them to join the team they were on anyway. */
-  queue = ( ours == FED ) ? QU_HOME : QU_AWAY;
-  if (k->w_queue != QU_PICKUP && k->w_queue != queue) {
-    queues[k->w_queue].free_slots++;
-    k->w_queue = queue;
-    queues[k->w_queue].free_slots--;
-  }  
-  
-  k->p_hostile |= theirs;
-  k->p_swar    |= theirs;
-  k->p_hostile &= ~ours;
-  k->p_swar    &= ~ours;
-  k->p_war      = (k->p_hostile | k->p_swar);
-  k->p_team     =  ours;
-  sprintf(k->p_mapchars, "%c%c", teamlet[k->p_team], shipnos[p_no]);
-  sprintf(k->p_longname, "%s (%s)", k->p_name, k->p_mapchars);
-  
-  k->p_status = PEXPLODE;
-  k->p_whydead = KPROVIDENCE; /* should be KTOURNSTART? */
-  if (k->p_ship.s_type == STARBASE)
-    k->p_explode = 2 * SBEXPVIEWS;
-  else
-    k->p_explode = 10;
-  k->p_ntorp = 0;
-  k->p_nplasmatorp = 0;
-  k->p_hostile = (FED | ROM | ORI | KLI);
-  k->p_war     = (k->p_hostile | k->p_swar);
-}
-
-/*
-**  Return two team masks corresponding to the teams of the first two
-**  teams found in the player list.
-*/
-static void sides (int *one, int *two)
-{
-    struct player *k;
-    int i;
-    int unseen;
-
-    unseen = (FED | ROM | ORI | KLI);
-    *one = 0;
-    *two = 0;
-    k = &players[0];
-    for(i=0;i<MAXPLAYER;i++)
-    {
-        if ( (k->p_status != PFREE) && (!(k->p_flags & PFROBOT)))
-        {
-            if ( ( unseen & k->p_team ) != 0 )
-            {
-                if ( *one == 0 )
-                {
-                    *one = k->p_team;
-                    unseen &= ~k->p_team;
-                    k++;
-                    continue;
-                }
-                *two = k->p_team;
-                return;
-            }
-        }
-        k++;
-    }
-}
-
-/*
-**  Calculate a player value
-*/
-static int value (struct player *k)
-{
-    return
-    (int)
-    (
-        (float)
-        (
-#ifdef LTD_STATS
-            ltd_bombing_rating(k) * BALANCE_BOMBING +
-            ltd_planet_rating(k)  * BALANCE_PLANET  +
-            ltd_defense_rating(k) * BALANCE_DEFENSE +
-            ltd_offense_rating(k) * BALANCE_OFFENSE
-#else
-            bombingRating(k) * BALANCE_BOMBING +
-            planetRating(k)  * BALANCE_PLANET  +
-            defenseRating(k) * BALANCE_DEFENSE +
-            offenseRating(k) * BALANCE_OFFENSE
-#endif /* LTD_STATS */
-        )
-    );
-}
-
-/*
-**  Balance the teams
-**
-**  Uses an exhaustive algorithm (I'm exhausted!) to find the best combination
-**  of the current players that balances the teams in terms of statistics.
-**  The algorithm will support only the number of players that fits into the
-**  number of bits in an int.
-**
-**  If there are multiple "best" combinations, then the combination
-**  involving the least number of team swaps will be chosen.
-*/
-void do_balance(void)
-{
-    int i, j;                   /* miscellaneous counters    */
-    int records;                /* number of players in game */
-    int one;                    /* team number one mask      */
-    int two;                    /* team number two mask      */
-
-    struct player *k;           /* pointer to current player */
-
-    struct item
-    {
-        int p_no;               /* player number             */
-        int p_value;            /* calculated player value   */
-        int p_team;             /* team player on previously */
-    } list[MAXPLAYER];          /* working array             */
-
-    struct
-    {
-        int combination;        /* combination number        */
-        int value;              /* team balance difference   */
-        int one;                /* team one total value      */
-        int two;                /* team two total value      */
-        int swaps;              /* number of swaps involved  */
-    } best;                     /* best team combination     */
-
-    /* which teams are playing?  give up if only one found */
-    sides ( &one, &two );
-    if ( two == 0 )
-    {
-	/* addr_mess shouldn't be called with 0 as first arg
-         * for MALL, but we don't have a player numer here.
-         * Let addr_mess catch it. -da
-         */
-
-        pmessage ( 0, MALL, addr_mess(0 ,MALL),
-          "Can't balance only one team!" );
-        pmessage ( 0, MALL, addr_mess(0 ,MALL),
-          "Please could somebody move to another team, then all vote again?" );
-        return;
-    }
-
-    /* initialise best to worst case */
-    best.combination = -1;
-    best.value = 1<<30;
-    best.one = 0;
-    best.two = 0;
-    best.swaps = 1<<30;
-
-    /* reset working array */
-    for(i=0;i<MAXPLAYER;i++)
-    {
-        list[i].p_no    = 0;
-        list[i].p_value = 0;
-    }
-
-    /* insert players in working array */
-    records = 0;
-    k = &players[0];
-    for(i=0;i<MAXPLAYER;i++)
-    {
-        if ( (k->p_status != PFREE) && (!(k->p_flags & PFROBOT)))
-        {
-            list[records].p_no    = k->p_no;
-            list[records].p_value = value ( k );
-            list[records].p_team  = k->p_team;
-            records++;
-        }
-        k++;
-    }
-
-    /* randomise the working array; may cause different team mixes */
-    for(i=0;i<records;i++)
-    {
-        int a, b;
-        struct item swapper;
-
-        a = random() % records;
-        b = random() % records;
-
-        swapper = list[a];
-        list[a] = list[b];
-        list[b] = swapper;
-    }
-
-    /* loop for every _possible_ combination to find the best */
-    for(i=0;i<(1<<records);i++)
-    {
-        int difference;         /* difference in team total       */
-        int value_a, value_b;   /* total stats per team           */
-        int count_a, count_b;   /* total count of players on team */
-        int swaps;              /* number of swaps involved       */
-
-        /* if this a shadow combination already considered, ignore it */
-        /* if ( ( i ^ ( ( 1<<records ) - 1 ) ) < i ) continue; */
-        /* disabled - it will interfere with swap minimisation goal */
-        
-        /* is this combination an equal number of players each side? */
-        count_a = 0;
-        count_b = 0;
-
-        for(j=0;j<records;j++)
-            if((1<<j)&i)
-                count_a++;
-            else
-                count_b++;
-
-        /* skip this combination if teams are significantly unequal */
-        if ( abs ( count_a - count_b ) > 1 ) continue;
-
-        /* reset team total for attempt */
-        value_a = 0;
-        value_b = 0;
-
-        /* calculate team total stats */
-        for(j=0;j<records;j++)
-            if((1<<j)&i)
-                value_a += list[j].p_value;
-            else
-                value_b += list[j].p_value;
-
-        /* calculate number of swaps this combination produces */
-        swaps = 0;
-        for(j=0;j<records;j++)
-            if((1<<j)&i)
-            {
-                if ( list[j].p_team != one ) swaps++;
-	    }
-            else
-	    {
-                if ( list[j].p_team != two ) swaps++;
-	    }
-
-        /* calculate difference in team total stats */
-        difference = abs ( value_a - value_b );
-
-        /* if this combo is better than the previous one we had,
-           or the combo is the same and the number of swaps is lower...  */
-        if ( ( difference < best.value )
-            || ( ( difference == best.value )
-                && ( swaps < best.swaps ) ) )
-        {
-            /* remember it */
-            best.value = difference;
-            best.combination = i;
-            best.one = value_a;
-            best.two = value_b;
-            best.swaps = swaps;
-        }
-    }
-
-    /* don't do balance if not worth it */
-    if ( best.swaps != 0 )
-    {
-        /* move players to their teams */
-        for(j=0;j<records;j++)
-            if ( (1<<j)&best.combination )
-                move ( list[j].p_no, one, two );
-            else
-                move ( list[j].p_no, two, one );
-        
-        /* build messages to ALL about the results */
-        for(j=0;j<records;j++)
-            if ( (1<<j)&best.combination )
-                moveallmsg ( list[j].p_no, one, two, list[j].p_value );
-    
-	/* addr_mess ignores first arg if second is MALL. -da
-         */
-
-        pmessage(0, MALL, addr_mess(0, MALL),
-            "Balance:                           total rating %.2f",
-            (float) ( best.one / 100.0 ) );
-        
-        for(j=0;j<records;j++)
-            if ( !((1<<j)&best.combination) )
-                moveallmsg ( list[j].p_no, two, one, list[j].p_value );
-    
-        pmessage(0, MALL, addr_mess(0, MALL),
-            "Balance:                           total rating %.2f",
-            (float) ( best.two / 100.0 ) );
-    }
-    else
-    {
-        pmessage ( 0, MALL, addr_mess(0, MALL),
-            "No balance performed, this is the best: %-3s %.2f, %-3s %.2f",
-            team_name(one), (float) ( best.one / 100.0 ),
-            team_name(two), (float) ( best.two / 100.0 ) );
-    }
-    
-}
-
-void do_triple_planet_mayhem(void)
-{
-    int i;
-
-    /* balance the teams */
-    do_balance();
-
-    /* move all planets off the galaxy */
-    for (i=0; i<MAXPLANETS; i++)
-    {
-        planets[i].pl_flags = 0;
-        planets[i].pl_owner = 0;
-        planets[i].pl_x = -10000;
-        planets[i].pl_y = -10000;
-        planets[i].pl_info = 0;
-        planets[i].pl_armies = 0;
-        strcpy ( planets[i].pl_name, "" );
-    }
-
-    /* disable Klingon and Orion teams; stop people from joining them */
-    planets[20].pl_couptime = 999999; /* no Klingons */
-    planets[30].pl_couptime = 999999; /* no Orions */
-
-    /* initialise earth */
-    i = 0;
-    planets[i].pl_flags |= FED | PLHOME | PLCORE | PLAGRI | PLFUEL | PLREPAIR;
-    planets[i].pl_x = 40000;
-    planets[i].pl_y = 65000;
-    planets[i].pl_armies = 40;
-    planets[i].pl_info = FED;
-    planets[i].pl_owner = FED;
-    strcpy ( planets[i].pl_name, "Earth" );
-
-    /* initialise romulus */
-    i = 10;
-    planets[i].pl_flags |= ROM | PLHOME | PLCORE | PLAGRI | PLFUEL | PLREPAIR;
-    planets[i].pl_x = 40000;
-    planets[i].pl_y = 35000;
-    planets[i].pl_armies = 40;
-    planets[i].pl_info = ROM;
-    planets[i].pl_owner = ROM;
-    strcpy ( planets[i].pl_name, "Romulus" );
-
-    /* initialise indi */
-    i = 18;
-    planets[i].pl_flags |= PLFUEL | PLREPAIR;
-    planets[i].pl_flags &= ~PLAGRI;
-    planets[i].pl_x = 15980;
-    planets[i].pl_y = 50000;
-    planets[i].pl_armies = 4;
-    planets[i].pl_info &= ~ALLTEAM;
-    strcpy ( planets[i].pl_name, "Indi" );
-
-    /* fix all planet name lengths */
-    for (i=0; i<MAXPLANETS; i++)
-    {
-        planets[i].pl_namelen = strlen(planets[i].pl_name);
-    }
-
-    /* advise players */
-    {
-        char *list[] =
-        {
-	    "Galaxy reset for triple planet mayhem!",
-	    "Rule 1: they take Indi, they win,",
-	    "Rule 2: they take your home planet, they win,",
-	    "Rule 3: you can't bomb Indi,",
-	    "Rule 4: you may bomb their home planet, and;",
-	    "Rule 5: all planets are FUEL & REPAIR, home planets are AGRI.",
-	    ""
-	};
-
-	for ( i=0; strlen(list[i])!=0; i++ )
-
-            /* addr_mess ignores first arg for MALL. -da
-             */
-
-            pmessage ( 0, MALL, addr_mess(0,MALL), list[i] );
-    }
-}
-#endif /* TRIPLE_PLANET_MAYHEM */
-
 void do_password(char *comm, struct message *mess)
 {
   int who = mess->m_from;