diff -ru -X /home/jjm/cvs/no.freeciv FreecivCVS/common/game.c freeciv/common/game.c --- FreecivCVS/common/game.c Sun Jul 9 21:49:05 2000 +++ freeciv/common/game.c Thu Jul 13 11:36:27 2000 @@ -741,9 +741,10 @@ game.freecost = GAME_DEFAULT_FREECOST; game.conquercost = GAME_DEFAULT_CONQUERCOST; game.settlers = GAME_DEFAULT_SETTLERS; + game.explorer = GAME_DEFAULT_EXPLORER; + game.dispersion = GAME_DEFAULT_DISPERSION; game.cityfactor = GAME_DEFAULT_CITYFACTOR; game.civilwarsize= GAME_DEFAULT_CIVILWARSIZE; - game.explorer = GAME_DEFAULT_EXPLORER; game.unhappysize = GAME_DEFAULT_UNHAPPYSIZE; game.foodbox = GAME_DEFAULT_FOODBOX; game.aqueductloss= GAME_DEFAULT_AQUEDUCTLOSS; diff -ru -X /home/jjm/cvs/no.freeciv FreecivCVS/common/game.h freeciv/common/game.h --- FreecivCVS/common/game.h Sun Jul 9 21:49:05 2000 +++ freeciv/common/game.h Thu Jul 13 11:36:27 2000 @@ -53,6 +53,7 @@ int civstyle; int gold; int settlers, explorer; + int dispersion; int tech; int skill_level; int timeout; @@ -210,13 +211,17 @@ #define GAME_MIN_EXPLORER 0 #define GAME_MAX_EXPLORER 10 +#define GAME_DEFAULT_DISPERSION 0 +#define GAME_MIN_DISPERSION 0 +#define GAME_MAX_DISPERSION 10 + #define GAME_DEFAULT_TECHLEVEL 3 #define GAME_MIN_TECHLEVEL 0 #define GAME_MAX_TECHLEVEL 50 #define GAME_DEFAULT_UNHAPPYSIZE 4 -#define GAME_MIN_UNHAPPYSIZE 1 -#define GAME_MAX_UNHAPPYSIZE 6 +#define GAME_MIN_UNHAPPYSIZE 1 +#define GAME_MAX_UNHAPPYSIZE 6 #define GAME_DEFAULT_END_YEAR 2000 #define GAME_MIN_END_YEAR GAME_START_YEAR diff -ru -X /home/jjm/cvs/no.freeciv FreecivCVS/server/gamehand.c freeciv/server/gamehand.c --- FreecivCVS/server/gamehand.c Sun Jul 9 21:49:11 2000 +++ freeciv/server/gamehand.c Thu Jul 13 11:48:51 2000 @@ -38,6 +38,7 @@ #include "plrhand.h" #include "ruleset.h" #include "unitfunc.h" +#include "unittools.h" #include "gamehand.h" @@ -53,7 +54,8 @@ void init_new_game(void) { int i, j, x, y; - int vx, vy; + int vx, vy, dx, dy; + Unit_Type_id utype; int start_pos[MAX_NUM_PLAYERS]; /* indices into map.start_positions[] */ if (!map.fixed_start_positions) { @@ -111,34 +113,52 @@ } free(pos_used); } - - for(i=0; i= 10300) { game.settlers = secfile_lookup_int(file, "game.settlers"); game.explorer = secfile_lookup_int(file, "game.explorer"); + game.dispersion = + secfile_lookup_int_default(file, GAME_DEFAULT_DISPERSION, "game.dispersion"); map.riches = secfile_lookup_int(file, "map.riches"); map.huts = secfile_lookup_int(file, "map.huts"); map.generator = secfile_lookup_int(file, "map.generator"); map.seed = secfile_lookup_int(file, "map.seed"); map.landpercent = secfile_lookup_int(file, "map.landpercent"); - map.grasssize = secfile_lookup_int_default(file, MAP_DEFAULT_GRASS, "map.grasssize"); + map.grasssize = + secfile_lookup_int_default(file, MAP_DEFAULT_GRASS, "map.grasssize"); map.swampsize = secfile_lookup_int(file, "map.swampsize"); map.deserts = secfile_lookup_int(file, "map.deserts"); map.riverlength = secfile_lookup_int(file, "map.riverlength"); @@ -646,6 +669,7 @@ secfile_insert_int(file, map.ysize, "map.height"); secfile_insert_int(file, game.settlers, "game.settlers"); secfile_insert_int(file, game.explorer, "game.explorer"); + secfile_insert_int(file, game.dispersion, "game.dispersion"); secfile_insert_int(file, map.seed, "map.seed"); secfile_insert_int(file, map.landpercent, "map.landpercent"); secfile_insert_int(file, map.riches, "map.riches"); diff -ru -X /home/jjm/cvs/no.freeciv FreecivCVS/server/stdinhand.c freeciv/server/stdinhand.c --- FreecivCVS/server/stdinhand.c Sun Jul 9 21:49:12 2000 +++ freeciv/server/stdinhand.c Thu Jul 13 11:36:27 2000 @@ -263,11 +263,18 @@ SSET_GAME_INIT, SSET_TO_CLIENT, GAME_MIN_SETTLERS, GAME_MAX_SETTLERS, GAME_DEFAULT_SETTLERS, N_("Number of initial settlers per player"), "" }, - + { "explorer", &game.explorer, SSET_GAME_INIT, SSET_TO_CLIENT, GAME_MIN_EXPLORER, GAME_MAX_EXPLORER, GAME_DEFAULT_EXPLORER, N_("Number of initial explorers per player"), "" }, + + { "dispersion", &game.dispersion, + SSET_GAME_INIT, SSET_TO_CLIENT, + GAME_MIN_DISPERSION, GAME_MAX_DISPERSION, GAME_DEFAULT_DISPERSION, + N_("Area where initial units are located"), + N_("This is half the length of a side of the square within " + "which the initial units are dispersed.") }, { "gold", &game.gold, SSET_GAME_INIT, SSET_TO_CLIENT,