~ubuntu-branches/debian/squeeze/freeciv/squeeze

« back to all changes in this revision

Viewing changes to server/srv_main.c

  • Committer: Bazaar Package Importer
  • Author(s): Clint Adams
  • Date: 2008-11-29 22:25:59 UTC
  • mfrom: (1.2.9 upstream)
  • Revision ID: james.westby@ubuntu.com-20081129222559-6sqqdum8qnhykm4l
Tags: 2.1.8-1
* New upstream release.  closes: #495740.
* Disable GGZ support (can be re-enabled when ggz 1.0 is available).
* Change maintainer to Debian Games Team.

Show diffs side-by-side

added added

removed removed

Lines of Context:
934
934
  freelog(LOG_VERBOSE, "Save time: %g seconds (%g apparent)",
935
935
          read_timer_seconds_free(timer_cpu),
936
936
          read_timer_seconds_free(timer_user));
 
937
 
 
938
  ggz_game_saved(filename);
937
939
}
938
940
 
939
941
/**************************************************************************
987
989
  set_server_state(S_S_OVER);
988
990
  server_game_free();
989
991
  diplhand_free();
 
992
 
 
993
  /* Free all the warmap arrays */
 
994
  free_mapqueue();
 
995
 
990
996
#ifdef HAVE_AUTH
991
997
  if (srvarg.auth_enabled) {
992
998
    /* If auth has been initialized */
993
999
    auth_free();
994
1000
  }
995
1001
#endif /* HAVE_AUTH */
 
1002
 
996
1003
  stdinhand_free();
997
1004
  close_connections_and_socket();
998
1005
  exit(EXIT_SUCCESS);
1549
1556
    return;
1550
1557
  }
1551
1558
 
1552
 
  if (amount == 0) {
1553
 
    /* Special case for value 0: do nothing. */
1554
 
    return;
1555
 
  }
1556
 
 
1557
1559
  amount = MIN(amount, game.info.max_players);
1558
1560
 
1559
1561
  /* Limit to nations provided by ruleset */
1591
1593
    send_player_info(pplayer, NULL);
1592
1594
  }
1593
1595
 
1594
 
  remove = game.info.nplayers - 1;
1595
 
  while (game.info.nplayers > amount && remove >= 0) {
1596
 
    struct player *pplayer = player_by_number(remove);
1597
 
 
1598
 
    if (!pplayer->is_connected && !pplayer->was_created) {
1599
 
      server_remove_player(pplayer);
1600
 
    }
1601
 
    remove--;
 
1596
  while (game.info.nplayers > amount) {
 
1597
    struct player *pplayer_rem = NULL;
 
1598
    remove = game.info.nplayers - 1;
 
1599
    while (remove >= 0) {
 
1600
      struct player *pplayer = player_by_number(remove);
 
1601
      if (!pplayer->is_connected && !pplayer->was_created) {
 
1602
        pplayer_rem = pplayer;
 
1603
        break;
 
1604
      }
 
1605
      remove--;
 
1606
    }
 
1607
    if (pplayer_rem) {
 
1608
      server_remove_player(pplayer_rem);
 
1609
    } else {
 
1610
      break;
 
1611
    }
1602
1612
  }
1603
1613
}
1604
1614
 
2064
2074
 
2065
2075
    players_iterate(pplayer) {
2066
2076
      player_map_allocate(pplayer);
2067
 
      init_tech(pplayer);
2068
 
      player_limit_to_government_rates(pplayer);
 
2077
      init_tech(pplayer, TRUE);
 
2078
      pplayer->economic = player_limit_to_max_rates(pplayer);
2069
2079
      pplayer->economic.gold = game.info.gold;
2070
2080
    } players_iterate_end;
2071
2081