fairland: Grow islands interleaved

The previous commits changed grow_island() to create islands in
batches consisting of one island per continent, all of the same
planned size.  grow_island() still places and grows one island after
the other.  When an island can't grow to the actual size, the others
in the same batch are not affected.  Island size can therefore differ
a lot within the same batch.

Change grow_island() to interleave the work on a batch's island: first
place them all, then add one sector to each in turn.  Stop after all
reached the planned size, or one or more could not be grown further.

This is similar to how we grow continents: drift() places them all,
and grow_continent() adds one sector to each continent in turn.

Island size within the same batch can now differ at most by one
sector.  The next commit will eliminate that remaining difference.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2020-08-11 16:16:30 +02:00
parent ae988c00ba
commit 8d0c196c8b
10 changed files with 3953 additions and 3952 deletions

View file

@ -67,17 +67,17 @@
* in one such sphere, and each sphere contains the same number of
* islands.
*
* Pick an island size, then place and grow one island of that size in
* each sphere. Place the first sector randomly, then grow the island
* to the intended size. Repeat until the specified number of islands
* has been grown.
* Pick an island size, and place one island's first sector into each
* sphere, randomly. Then add one sector to each island in turn,
* until they have the intended size. Repeat until the specified
* number of islands has been grown.
*
* If placement fails due to lack of room, start over, just like for
* continents.
*
* Growing works as for continents, except the minimum distance for
* additional islands applies, and growing simply stops when there is
* no room.
* additional islands applies, and growing simply stops when any of
* the islands being grown lacks the room to grow further.
*
* 4. Compute elevation
*
@ -1116,42 +1116,49 @@ place_island(int c)
static int
grow_islands(void)
{
int n = ni / nc;
int stunted_islands = 0;
int c, secs, isiz;
int i, j, c, done, secs, isiz;
xzone_init(nc);
init_spheres_of_influence();
for (c = nc; c < nc + ni; ++c) {
isecs[c] = 0;
if (c % nc == 0)
isiz = roll(is) + roll0(is);
assert(isiz > 0);
for (i = 0; i < n; i++) {
c = nc + i * nc;
isiz = roll(is) + roll0(is);
if (!place_island(c)) {
qprint("\nNo room for island #%d", c - nc + 1);
break;
}
for (secs = 1; secs < isiz; secs++) {
if (!grow_one_sector(c)) {
stunted_islands++;
break;
for (j = 0; j < nc; j++) {
isecs[c + j] = 0;
if (!place_island(c + j)) {
qprint("\nNo room for island #%d\n", c - nc + j + 1);
return 0;
}
}
find_coast(c);
qprint(" %d(%d)", c - nc + 1, secs);
done = 1;
for (secs = 1; secs < isiz && done; secs++) {
for (j = 0; j < nc; j++) {
if (!grow_one_sector(c + j))
done = 0;
}
}
for (j = 0; j < nc; j++)
stunted_islands += isecs[c + j] != isiz;
for (j = 0; j < nc; j++)
qprint(" %d(%d)", c - nc + j + 1, isecs[c + j]);
}
qprint("\n");
if (c < nc + ni)
return 0;
if (stunted_islands)
qprint("%d stunted island%s\n",
stunted_islands, splur(stunted_islands));
for (c = nc; c < nc + ni; c++)
find_coast(c);
return 1;
}

View file

@ -15,41 +15,41 @@ World dimensions: 64x32
seed is 1
placing capitals...
growing continents...
growing islands: 1(6) 2(6) 3(6) 4(2) 5(2) 6(2) 7(5) 8(5) 9(5) 10(6) 11(6) 12(6) 13(3) 14(3) 15(3)
growing islands: 1(6) 2(6) 3(6) 4(9) 5(9) 6(9) 7(4) 8(4) 9(4) 10(9) 11(9) 12(9) 13(11) 14(11) 15(11)
elevating land...
writing to sectors file...
. . . . . . . . . . . . . % . . . . . . . . . % . . . . . . . .
. . . . . . . . . . . . . % . . . . . . . . . . . . . . . . . .
. . . . . % . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . % % . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . % % % . . # . . . . . . . % . . . . . . . . . . . . . .
. . . % % % . # # # . # . . . . . % . . . . % % % . . . . . . .
. . . . % % . # c c # # . . . . % % % . . . % % % % . . . . . .
. . . . . . . # # # # # . . . % % % . . . . % % . . . . . . . .
% . . . . . . . # # # # . % % . % . . . . . . % . % % % . . . %
. . . . . . . # # # # . % % % . . . . . . . % . % % % . . . % %
. . . . . . . . # # # # . % . . . . . . . . . . . % % . . . . .
. . . . . . . . # # . . . . . . . . . . . . . . . % . . . . . .
. . . . . . . . . # . . . . . . . . . . . . . . . . . . . . . .
. . . . % . . # # # . # . . . . . . . . . . . . . . . . . . % .
. . . . % % . # c c # # . . . . . . . . . . . . . . . . . . % %
. . . . % % . # # # # # . . . . . . . . . . . . . . . . . . . .
. . . . . . . . # # # # . . . . . . % % . . . . . . . . . . . .
. . . . . % . # # # # . . . . . . % % . . . . . . . . . . . . .
. . . . % % % . # # # # . . . . . . % % . . . . . . . . . . . .
. . . . % % . . # # . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . # . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. % . . . . . . . . . . . . . . . . . # . . . . . . . . . . . .
% % . . . . . . . . . . . . . . . . # # # . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . # # # . . . . . . . . . .
. . . . . . . . . . % % . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . % % % . . . . . . . # . . . . . . . . . . . .
. . . . . . . . % % % . . . . . . . # # # . . . . . . . . . . .
. . . . . . . . . . % . . . . . . . . # # # . . . . . . . . . .
. . . . . . . . . . . . . . . . . . # # # # . . . . . . . . . .
. . . . . . . . . . . . . . . . . . # # # # # . . . . . . . . .
. . . . . . . . . . % . . . . . . # # a a . . . . . . . . . . .
. . . . . . . . . . . . . . . . . # # a a . . . . . . . . . . .
. . # # . # . . . % % % . . . . . # # # # # . . . . . . . . . .
. # # # # # # . . % . . . . . . . # # # # . . . . . . . . . . .
. # # # b b # . . . . . . . . . . . # . . . . . . . . . . . . .
. # # # # # . . . . . . . . . . . . . . . . . . . . . . . . . .
. # # # # # # . . . . . . . . . . . . . . . . . . . . . . . . .
. . . # # # . . . . . . . . . . . % % . . . . % . . . . . . . .
. . . . # . . . . . . . . . . . . . % . . . . % % . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . % % . . . . . % % .
. . . . . . . . % % . . . . . . . . . . . . . % . . . . . % % .
. . . . . . . % % . . . . . . . . . . . . % . . . . . . . % % .
. . . . . . . % % . . . . . . . . . . . . % . . . . . . . . . .
. . . . . . . . . % % . . . . . . . . . % % % . . . . . . . % .
. . . . . . . . . % % . . . . . . . . . . . . . . . . . . . % .
. . . . . . . . % % . . . . . . . . . . . . % . . . . . . . . .
. # # # # # # . % % % % . . . . . # # # # . . . . . . . . . . .
. # # # b b # . % % % % . . . . . . # . . . . . . . . . . . . .
. # # # # # . . . . . . . . . . . . . . . . . . . . . . . % . .
. # # # # # # . . % % % % . . . . % % . . . . . . . . . . % % .
. . . # # # . . . % % % . . . . . % % . . . % % . . . . . % . .
. % % . # . . . . . % % . . . . . . . . . . % % % % . . . . . .
. % % . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . % % . . . . . . . . . . . . . . . % % . . . . . . . . . . .
. % % % . . . . . . . . . . . . . . . % % % . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . % % % % . . . . . . . . .
% % % . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. % % . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A script for adding all the countries can be found in "sandbox/no-spike-newcap_script".

File diff suppressed because it is too large Load diff

View file

@ -19,27 +19,27 @@ growing islands: 1(15) 2(15) 3(15) 4(15) 5(15)
elevating land...
writing to sectors file...
. . . . . . . . . . . . . . . . . . . # # # # # . . . . % % . .
. . . . . . . . . . . . . . . . . . . # # # # # . . . . . . . .
. . . . . . . . . . . . . . . . . . . # # . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . # # . . . . . . . . . . .
. . . . # # # . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . # # # # . . . . . . . . . . . . . . . . . . . . . . . .
. . . # # e e # # . . . . . . . . . . . . . . . . . . . . . . .
. . . . # # # . . . . . . . . % % % . . . . . . . . . . . . . .
. . . . # # # # . . . . . . . % % % % % % . . . . . . . . . . .
. . . # # e e # # . . . . . . % % % % % % . . . . . . . . . . .
. . . # # # # # # # . . . . . . . . . . . . . . . . . . . . . .
. . # # . # # # # . . . . . . . . . . . . . . . . . . . . . . .
. . . # . . # # # . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . % % . . . . . . . . . . . . . . . . . . . . .
. . . . . . . % % % % . . . . . . . . # . . . . . . . . . . . .
. . . . . . % % % % % . . . . . . . # # # . . . . . . . . . . .
. . . . . . . % % % . . . . . . . . c c # # # . . . . . . . . .
. . % . . . . . % . . . . . . # # # # # # # # . . . . . . . . .
. . % % . . . . . . . . . . . . # # # # # # # . % . . . . . . .
. % % % % . . % . . . . . . . . # # # # # # . % . . . . # # # #
. . % % % . . . % % . . . . . . . . . . . . . % % . . . # # # #
. % % % . . % % % % . . . . . . . . . . . % % % . . . . # a a #
. . % % . . % % % % . . . . . . . . . . . % % % . . . . # # # #
. . . . . . % % % . # . . . . . . . . . . % % % . . . . # # # #
. . . . . . . % . . # # . . . . . . . . . . % % . . . . . # # #
% . # # . # # # # . . . . . . . . . . . . % % % . . . . . . . %
% % . # . . # # # . . . . . . . . . . . . . % % % . . . . . % %
% % . . . . . . . . . . . . . . . . . . . % % % % . . . . . % %
% % % . . . . . . . . . . . . . . . . # . . % % % % . . . . . .
. % % . . . . . . . . . . . . . . . # # # . . % . . . . . . . .
. . . . . . . . . . . . . . . . . . c c # # # . . . . . . . . .
. . . . . . . . . . . . . . . # # # # # # # # . . . . . . . . .
. . . . . . . . % % % . . . . . # # # # # # # . . . . . . . . .
. % % % % . . . % % % % . . . . # # # # # # . . . . . . # # # #
. % % % % . . . . % % % % . . . . . . . . . . . . . . . # # # #
. % % % % . . . . % % % . . . . . . . . . . . . . . . . # a a #
. . % % % . . . . . . . % . . . . . . . . . . . . . . . # # # #
. . . . . . . . . . # . . . . . . . . . . . . . . . . . # # # #
. . . . . . . . . . # # . . . . . . . . . . . . . . . . . # # #
. . . . . . . . # # # # . . . . . . . . . . . . . . . . # # # #
. . . . . . . . . d d # . . . . . . . . . . . . . . . . . . # #
. . . . . . . . # # # # . . . . . . . . . . . . . . . . . . # .
@ -47,9 +47,9 @@ writing to sectors file...
. . . . . . . # # # # # # . . . . . . . . . . . . . . . . . . .
. . . . . . . . . # # # # . . . . . . # . . . . . . . . . . . .
. . . . . . . . . . # . . . . . . . # # # . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . # # # # . . . % . . . . . .
. . . . . . . . . . . . . . . . . . # # # # . . % % % . . . . .
. . . . . . . . . . . . . . . . . . . # b b # . % % % % % . . .
. . . . . . . . . . . . . . . . . . # # # # # . . . % % % % . .
. . . . . . . . . . . . . . . . . . # # # # . . . . . . . . . .
. . . . . . . . . . . . . . . . . . # # # # . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . # b b # . . . . . . . . .
. . . . . . . . . . . . . . . . . . # # # # # . . . . . . . . .
A script for adding all the countries can be found in "sandbox/plain-newcap_script".

File diff suppressed because it is too large Load diff

View file

@ -15,42 +15,42 @@ World dimensions: 64x32
seed is 1
placing capitals...
growing continents...
growing islands: 1(22) 2(21) 3(22) 4(22) 5(21) 6(22) 7(3) 8(22)
3 stunted islands
growing islands: 1(12) 2(12) 3(12) 4(11) 5(12) 6(12) 7(12) 8(12)
8 stunted islands
elevating land...
writing to sectors file...
# b b # # . % % . . . . % % ^ % % % % % . . . . . . . . . . . .
# ^ ^ # . % . . . . . . % % % % % % % ^ . . . . . . . . . # # #
# # # ^ . % . . . . . . . . % . % % % % % . % . . . . . . . # #
# # . . % . . . . . . . . . ^ % % % % % ^ % % . . . . . . . . #
. # . . . . . . # . . . . . . % % . . . % % % . . . . . . . . .
. . . % . . . # ^ . . . . . . . . # # . . . % . . . . . . . . .
. . . % . # # # ^ # . . . # . . # # # ^ # # . . . . . . . . . #
. % % . # # # # # . . . . # # # ^ f f . . # # . . . . . . . # .
# . % % . # # e e ^ # . . . . # ^ # # . . . # . . . . . . . # #
. % . % . . # # # # # # . . # # # # . . . . # . . . . . . # # #
. % % % % % . # # . # # . . # # # . . . . . . . . . . . . ^ ^ #
. % % % % % . # . . . . . . . . . . . . . . . . . . . . h h # #
. ^ % . ^ % % . . ^ % % % . . . . . % % % . . . . . # # # ^ # #
% ^ % . . . % % % . . . . . . . % % . . % % % . . # # # . . # .
. % % . . . . . . . . . . . . % % . . # . . . . . # . # . . # #
% % . . . . . . . . . . . . % % . # # # # # # . . . . # . . . .
% % . . . . . # . # # . . . . % % . . ^ # # # ^ . . . . . % % %
% . . . . . # # # # . % % . ^ % ^ . # ^ d d # # . . . . . . . .
. . . . . # # ^ # . . % % % % . % . # # # # # # # . . % % . . .
. . . . . ^ ^ # . % % % % % % % . # . # . . . # . . % . . # . .
. . . . # # c c . % % % % . . . . # . . . . . . # . . . # ^ # .
. . . . . # # # . % % % . . . . . . . . . . . . . . . # # # . .
. . . . . # # # . ^ % . . . . . . . . . . . . . . . . # g g # .
. . . . . . # # . ^ % . . . . . . . . . . . . . . # # # # ^ ^ .
. . . . . . . # # . % . . . . # # . . . . . . . . . # # # # # .
. . . . . . . # # . % . . . . # . # # . . . . . . . # # . . # #
. . . % . . . . . . . . . # # # # ^ # . . . . . . . . . . . # #
. % % % . . . . . . . . . . . # # ^ # # . . . . . . . . # # . .
. . . % % % . . . . . . . . . # a a ^ # # . . . . . . . . . . .
. # . % % % . . . . . . % . # # # # # # . . . . . . . . . . . .
# # # . . % % % . . . . . % . . . # # . . . . . . . . . . . . .
# # # # . % ^ ^ . . . . % % % % . . . . . . . . . . . . . . . .
^ b b # # . . . . ^ % . % % . . % % ^ . . . . . . . . . % . . .
# # ^ # . . . % % % % . % % % % % % % . . . . . . . % % . # # #
# # # # . . . % % % % . % % % . . . . . . . . . . . % % % . # #
# # . . . . % . . % . . % % % . % . . . . . . . . . % ^ % . . #
. # . . . . . . # . . . . % % ^ % . . . . . . . . . . % % % . .
. . . . . . . # # . . . . . % . . # # . . . . . . . . . . . . .
. . . . . # # # ^ # . . . # . . # # # # # # . . . . . . . . . #
. . . . # # # # # . . . . # # # ^ f f . . # # . . . . . . . # .
# . . . . # # e e ^ # . . . . # # ^ # . . . # . . . . . . . # #
. % . . . . # # # # # # . . # ^ # # . . . . # . . . . . . ^ # #
. % % . . . . # ^ . # # . . # # # . . . . . . . . . . . . # ^ #
. % % . . . . # . . . . . . . . . . . . . . . . . . . . h h # ^
. % % . . . . . . . . . . . . . . . . . . . . . . . # # # # # #
% ^ % . . . . . . . . . . . . . . . . . . . . . . # # # . . # .
. % % . . . . . . . . . . . . . . . . # . . . . . # . # . . # #
. . . . . . . . . . . . . . . . . # # # # # # . . . . # . . . .
. . . . . . . # . # # . . . . . . . . # ^ # ^ # . . . . . . . .
. . . . . . ^ # # # . . . . . . . . # # d d # # . . . . . . % .
% . . . . # # # # . . . . . . . . . # # ^ # # # # . . . . . . %
% . . . . # # # . . . . . . . . . # . # . . . # . . . . . # . ^
% . . . # # c c . . . . . . . . . # . . . % % . # . . . # # # .
% . . . . # # # . . . . . . . . . . % % % ^ % . . . . # # # . %
% % . . . # # # . . . . . . . . . . % . . % % % . . . # g g # .
% % . . . . # # . . . . . . . . . . . . . . . . . # # ^ ^ # # .
. . . . . . . ^ # . . . . . . # ^ . . . . . . . . . # # # ^ # .
. . . . . % . # ^ . . . . . . # . # # . . . . . . . # # . . # #
. . . . . . ^ . . . . . . # # # # # # . . . . . . . . . . . # #
. . . . . % % % . . . . . . . ^ # # # # . . . . . . . . # # . .
. . . . . . % % % % . . . . . # a a # ^ # . . . . . . . . . . .
. # . . . . . % % % . . . . # # # # # # . . . . . . . . . . . .
^ # # . . . . . . . . . . . . . . # # . . . . . . . . . . . . .
# # # # . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A script for adding all the countries can be found in "sandbox/spike-newcap_script".

File diff suppressed because it is too large Load diff

View file

@ -1,17 +1,17 @@
add 1 1 1 p
newcap 1 63,13
newcap 1 13,13
add 2 2 2 p
newcap 2 17,5
newcap 2 45,29
add 3 3 3 p
newcap 3 37,9
newcap 3 49,13
add 4 4 4 p
newcap 4 30,28
newcap 4 17,29
add 5 5 5 p
newcap 5 52,0
newcap 5 31,7
add 6 6 6 p
newcap 6 48,20
newcap 6 63,3
add 7 7 7 p
newcap 7 23,17
newcap 7 31,21
add 8 8 8 p
newcap 8 7,25
newcap 8 63,23
add 9 visitor visitor v

View file

@ -15,13 +15,14 @@ World dimensions: 64x32
seed is 1
placing capitals...
growing continents...
growing islands: 1(2) 2(2) 3(2) 4(2) 5(1) 6(2) 7(1) 8(1) 9(3) 10(2) 11(2) 12(1) 13(2) 14(3) 15(1) 16(3) 17(4) 18(2) 19(4)
No room for island #20
growing islands: 1(2) 2(2) 3(2) 4(2) 5(2) 6(2) 7(1) 8(1) 9(2) 10(2) 11(2) 12(1) 13(2) 14(2) 15(1) 16(2)
No room for island #19
try #2 (out of 10)...
placing capitals...
growing continents...
Only managed to grow 31 out of 35 sectors.
growing islands: 1(2) 2(3) 3(3) 4(3) 5(2) 6(3) 7(3) 8(3) 9(1) 10(1) 11(2) 12(2) 13(2) 14(2) 15(1) 16(2)
No room for island #18
try #3 (out of 10)...
placing capitals...
@ -31,7 +32,7 @@ Only managed to grow 33 out of 35 sectors.
try #4 (out of 10)...
placing capitals...
growing continents...
Only managed to grow 33 out of 35 sectors.
Only managed to grow 32 out of 35 sectors.
try #5 (out of 10)...
placing capitals...
@ -41,54 +42,47 @@ Only managed to grow 29 out of 35 sectors.
try #6 (out of 10)...
placing capitals...
growing continents...
growing islands: 1(3) 2(3) 3(3) 4(3) 5(2) 6(3) 7(3) 8(3) 9(2) 10(2) 11(2) 12(2) 13(1) 14(2) 15(1) 16(1) 17(1) 18(1) 19(1) 20(1)
No room for island #21
Only managed to grow 33 out of 35 sectors.
try #7 (out of 10)...
placing capitals...
growing continents...
growing islands: 1(3) 2(3) 3(3) 4(3) 5(2) 6(2) 7(3) 8(3) 9(1) 10(1) 11(1) 12(1)
No room for island #13
try #8 (out of 10)...
placing capitals...
growing continents...
growing islands: 1(3) 2(3) 3(3) 4(3) 5(3) 6(3) 7(2) 8(3) 9(2) 10(2) 11(1) 12(2) 13(2) 14(2) 15(2) 16(1) 17(2) 18(1) 19(2) 20(3) 21(3) 22(1) 23(1) 24(1)
9 stunted islands
growing islands: 1(1) 2(2) 3(2) 4(2) 5(2) 6(2) 7(2) 8(2) 9(2) 10(2) 11(2) 12(2) 13(1) 14(2) 15(2) 16(2) 17(2) 18(2) 19(2) 20(2) 21(2) 22(2) 23(1) 24(1)
10 stunted islands
elevating land...
writing to sectors file...
. . % . . . . # # . . . . . . # # # . . . . % . . . # # # # # .
. . . . . . # # # # . . . . . . # . . % . . % . . # # g g # # #
. . . . . # # # # # # . . . . . . . . % . . . . . # # # # # # #
. . % . . # # # # # . . . . . . . . . . . . . . . . # # # # . .
. . . . . # # # f f # . . . . . % % . . . . . . . . . . . . . .
. . . . . . # # # # # . . % . . . . . . . . . . . . . . . . . .
. % % . . . . # # # # . . % . . . . . . # . . . % . . . . . . .
. . . . . . . # # # . . % . . . . . . # # # . . % . . . . . . .
. . . . % . . . . . . . . . . . . # # # # # # . . % . . . . . .
# # . . % . . . . . . . . . . . . # # h h # # . . . . . # # # #
# # # . . % . . . . . . . % . . . . # # # # # # . . . . . # # #
# # . . . . . . . . . % % . . . . . # # # # # # . . . . . # # #
d # # . . . . % % % . . . . . . . . . # # # # # # . . . . . # d
# # . . % . . . . . . . . . . . . . . # . . . . . . . . . # # #
# # # . . % . . . . . # # # # . . . . . . . . . . . % . . . # #
# . . . % . . . # # # # # # # . . . . . . . . . . . . . . . # #
. . . . . . . . # # e e # # # # . . . % . . . . . . . . . . . .
. . . . . . . . . # # # # # # . . . . . . . . . . . . . . . . .
. . . % . . . . . # # # # # # . . % . . . . . # # # # . . . . .
. . . . . % . . . . # # # . . . % . . . . # # # # # # . . . . %
. . . . . . % . . . . # . . . . . . . . . # # # # # # # . . . %
. # . . . . % . . . . . . . . . . . % . . # # # b b # # . . . .
. # # # # . . . . . . . . . . . . . % . . # # # # # # # . . . .
# # # # # . . . . . . . . % % % . . . . . . # # # . # . . . . .
# # # # # # # # . . . . . . . . . . . . . . . . . . . . . . . .
# # c c # # # # . . . . . . . . . . . . . . . . . . . . % . . .
. # # # # # # # . . . . . . # # # # . . . . % % % . . . . . . .
. # # . . . . . . . . . # # # # # # . . . . . . . . . . . . . .
. . . . . . . . . . . . . # # # # # # . . . . . . . . . . . . .
. . . . . . . . . % . . . # # a a # # . . . . % . . # # # . . .
. . . . . . . . . . % . . . # # # # # . . . . . . . # # # # . .
. % . . . . . . . . . . . . # # # # . . . . . . . # # # # # . .
. # . . . . . # # # # . . . % % . . . . . . # # . . . . . . . .
# # . . . . . . # # . . . . . . . . . . . . # # . . . . . . # #
# # # . . . . . . . . . . . . . . . . . . . . . . . . . . . # #
# # . . . . % . . . . . . . # # # # . . . . . . . % . . . # # #
# # # . . . . % . . . . . . # # # # # . . . . . . % . . . . # #
g # # . . . . . . . . . . . # # # # # . . % . . . . . % . . # g
# # # . . . . . . % % . . # # # # # # # . . . . . . . . . . # #
# # . . . . . . . . . . . # # h h # . . . . . . . . . . . . # #
. # . . . % % . . . . . . . # # # # # . . . . . . . . . . . . .
. . . . . . . . . . % . . . # # # # . . . . . # # # . . . . . .
. . . . . . . . . . . % . . . . . . . . . . . # # # # . . . . .
% . . . . # # # # . . . . . . . . . . . % . . # # # # . . . . %
. . . . . # # # # # . . . . . . . . . . % . . # # # # # . . . .
. . . . # # b b # # # . . . % % . . . . . . # # d d # # . . . .
. . . . . # # # # # # # . . . . . . . . . . . # # # # # . . % %
. . . . . # # # # # # . . . . . . . . . . . . # # # # . . . . .
. % % . . . # # # # . . . . . . # # # . . . . . # # # . . . . .
. . . . . . . # # . . . . . . # # # # . . . . . . # . . . . . .
. . . . . . . . . . . . . . . # # # # # . . . . . . . . . % . .
# # . . . % . . . . . . . . # f f # # # . . . . . . . . % . . .
# # # . . . % . . . . . . . . # # # # # # . . . % % . . . . . .
# # # . . . . . . . . . % . . # # # # # . . . . . . . . . . # #
# # # # . . . . . % % . . % . . # # # # . . . . . . . % . . # #
e # # # . . . . . . . . . . . # # . . . . . . . . . . . . # # e
# # # # . . . . . . . . . . . . . . . . . . . . . . . . . . # #
# # . . . . . . # # . . . . . . . . . . . . . # . . . . . . # #
# . . . . . . . # # # . . . . . . % % . . . . # # # . . . . . #
. . . . . . . # # # # . . . . . . . . . . . # # # # . . . . . .
. . . . . . . # # # # # # . . % . . . . . # # # # # # . . . . .
. . % . . . # # c c # . . . % . . . . . # # a a # # . . % . . .
. . . % . . . # # # # # . . . . . . % . . # # # # # # . . . . .
. . . . . . . # # # # . . . . . . . % . . # # # # # . . . . . .
A script for adding all the countries can be found in "sandbox/stunted-newcap_script".

File diff suppressed because it is too large Load diff