|
@@ -2,40 +2,40 @@
|
|
|
#include "ttd.h"
|
|
|
|
|
|
|
|
|
#define GETNUM(x, y) (((uint16)(seed >> x) * (y))>>16)
|
|
|
|
|
|
static void AppendPart(byte **buf, int num, const char *names)
|
|
|
{
|
|
|
byte *s;
|
|
|
|
|
|
while (--num>=0) {
|
|
|
do names++; while (names[-1]);
|
|
|
}
|
|
|
|
|
|
|
|
|
for(s=*buf; (*s++ = *names++) != 0;) {}
|
|
|
*buf = s - 1;
|
|
|
}
|
|
|
|
|
|
#define MK(x) x "\x0"
|
|
|
|
|
|
#define NUM_ENGLISH_1 4
|
|
|
static const char english_1[] =
|
|
|
static const char english_1[] =
|
|
|
MK("Great ")
|
|
|
MK("Little ")
|
|
|
MK("New ")
|
|
|
MK("Fort ")
|
|
|
;
|
|
|
|
|
|
#define NUM_ENGLISH_2 26
|
|
|
#define NUM_ENGLISH_2 26
|
|
|
static const char english_2[] =
|
|
|
MK("Wr")
|
|
|
MK("B")
|
|
|
MK("C")
|
|
|
MK("Ch")
|
|
|
MK("Br")
|
|
|
MK("D")
|
|
|
MK("Dr")
|
|
|
MK("F")
|
|
|
MK("Fr")
|
|
|
MK("Fl")
|
|
|
MK("G")
|
|
@@ -48,48 +48,48 @@ static const char english_2[] =
|
|
|
MK("Pr")
|
|
|
MK("Pl")
|
|
|
MK("R")
|
|
|
MK("S")
|
|
|
MK("S")
|
|
|
MK("Sl")
|
|
|
MK("T")
|
|
|
MK("Tr")
|
|
|
MK("W")
|
|
|
;
|
|
|
|
|
|
#define NUM_ENGLISH_3 8
|
|
|
static const char english_3[] =
|
|
|
static const char english_3[] =
|
|
|
MK("ar")
|
|
|
MK("a")
|
|
|
MK("e")
|
|
|
MK("in")
|
|
|
MK("on")
|
|
|
MK("u")
|
|
|
MK("un")
|
|
|
MK("en")
|
|
|
;
|
|
|
|
|
|
#define NUM_ENGLISH_4 7
|
|
|
static const char english_4[] =
|
|
|
static const char english_4[] =
|
|
|
MK("n")
|
|
|
MK("ning")
|
|
|
MK("ding")
|
|
|
MK("d")
|
|
|
MK("")
|
|
|
MK("t")
|
|
|
MK("fing")
|
|
|
;
|
|
|
|
|
|
#define NUM_ENGLISH_5 23
|
|
|
static const char english_5[] =
|
|
|
static const char english_5[] =
|
|
|
MK("ville")
|
|
|
MK("ham")
|
|
|
MK("field")
|
|
|
MK("ton")
|
|
|
MK("town")
|
|
|
MK("bridge")
|
|
|
MK("bury")
|
|
|
MK("wood")
|
|
|
MK("ford")
|
|
|
MK("hall")
|
|
|
MK("ston")
|
|
|
MK("way")
|
|
@@ -98,95 +98,95 @@ static const char english_5[] =
|
|
|
MK("ley")
|
|
|
MK("head")
|
|
|
MK("bourne")
|
|
|
MK("pool")
|
|
|
MK("worth")
|
|
|
MK("hill")
|
|
|
MK("well")
|
|
|
MK("hattan")
|
|
|
MK("burg")
|
|
|
;
|
|
|
|
|
|
#define NUM_ENGLISH_6 9
|
|
|
static const char english_6[] =
|
|
|
static const char english_6[] =
|
|
|
MK("-on-sea")
|
|
|
MK(" Bay")
|
|
|
MK(" Market")
|
|
|
MK(" Cross")
|
|
|
MK(" Bridge")
|
|
|
MK(" Falls")
|
|
|
MK(" City")
|
|
|
MK(" Ridge")
|
|
|
MK(" Springs")
|
|
|
;
|
|
|
|
|
|
#define REPLACE_WORDS(a,b,c,d,e,f,g,h) { if (start[0] == a && start[1] == b && start[2] == c && start[3] == d) { start[0] = e; start[1] = f; start[2] = g; start[3] = h; } }
|
|
|
|
|
|
static byte MakeEnglishTownName(byte *buf, uint32 seed)
|
|
|
{
|
|
|
int i;
|
|
|
byte result;
|
|
|
byte *start;
|
|
|
|
|
|
i = GETNUM(0, 54) - 50;
|
|
|
if (i >= 0)
|
|
|
AppendPart(&buf, i, english_1);
|
|
|
|
|
|
|
|
|
start = buf;
|
|
|
|
|
|
AppendPart(&buf, GETNUM(4, NUM_ENGLISH_2), english_2);
|
|
|
AppendPart(&buf, GETNUM(7, NUM_ENGLISH_3), english_3);
|
|
|
AppendPart(&buf, GETNUM(10, NUM_ENGLISH_4), english_4);
|
|
|
AppendPart(&buf, GETNUM(13, NUM_ENGLISH_5), english_5);
|
|
|
|
|
|
i = GETNUM(15, NUM_ENGLISH_6 + 60) - 60;
|
|
|
|
|
|
result = 0;
|
|
|
|
|
|
|
|
|
if (i >= 0) {
|
|
|
if (i <= 1) result = NG_EDGE;
|
|
|
AppendPart(&buf, i, english_6);
|
|
|
}
|
|
|
|
|
|
if (start[0]=='C' && (start[1] == 'e' || start[1] == 'i'))
|
|
|
start[0] = 'K';
|
|
|
start[0] = 'K';
|
|
|
|
|
|
/* Replace certain words (routine identical to TTD now) */
|
|
|
|
|
|
REPLACE_WORDS('C','u','n','t', 'E','a','s','t');
|
|
|
REPLACE_WORDS('S','l','a','g', 'P','i','t','s');
|
|
|
REPLACE_WORDS('S','l','u','t', 'E','d','i','n');
|
|
|
// REPLACE_WORDS('F','a','r','t', 'B','o','o','t');
|
|
|
REPLACE_WORDS('D','r','a','r', 'Q','u','a','r');
|
|
|
REPLACE_WORDS('D','r','e','h', 'B','a','s','h');
|
|
|
REPLACE_WORDS('F','r','a','r', 'S','h','o','r');
|
|
|
REPLACE_WORDS('G','r','a','r', 'A','b','e','r');
|
|
|
REPLACE_WORDS('B','r','a','r', 'O','v','e','r');
|
|
|
REPLACE_WORDS('W','r','a','r', 'I','n','v','e');
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
#define NUM_AUSTRIAN_A1 6
|
|
|
static const char austrian_a1[] =
|
|
|
static const char austrian_a1[] =
|
|
|
MK("Bad ")
|
|
|
MK("Deutsch ")
|
|
|
MK("Gross ")
|
|
|
MK("Klein ")
|
|
|
MK("Markt ")
|
|
|
MK("Maria ")
|
|
|
;
|
|
|
|
|
|
#define NUM_AUSTRIAN_A2 42
|
|
|
static const char austrian_a2[] =
|
|
|
static const char austrian_a2[] =
|
|
|
MK("Aus")
|
|
|
MK("Alten")
|
|
|
MK("Braun")
|
|
|
MK("Vösl")
|
|
|
MK("Mittern")
|
|
|
MK("Nuss")
|
|
|
MK("Neu")
|
|
|
MK("Walters")
|
|
|
MK("Breiten")
|
|
|
MK("Eisen")
|
|
|
MK("Feld")
|
|
|
MK("Mittern")
|
|
@@ -214,25 +214,25 @@ static const char austrian_a2[] =
|
|
|
MK("Potten")
|
|
|
MK("Salz")
|
|
|
MK("Schwarz")
|
|
|
MK("Stocker")
|
|
|
MK("Unter")
|
|
|
MK("Utten")
|
|
|
MK("Vösen")
|
|
|
MK("Vill")
|
|
|
MK("Weissen")
|
|
|
;
|
|
|
|
|
|
#define NUM_AUSTRIAN_A3 16
|
|
|
static const char austrian_a3[] =
|
|
|
static const char austrian_a3[] =
|
|
|
MK("see")
|
|
|
MK("bach")
|
|
|
MK("dorf")
|
|
|
MK("ach")
|
|
|
MK("stein")
|
|
|
MK("hofen")
|
|
|
MK("au")
|
|
|
MK("ach")
|
|
|
MK("kirch")
|
|
|
MK("kirchen")
|
|
|
MK("kreuz")
|
|
|
MK("brunn")
|
|
@@ -362,26 +362,26 @@ static byte MakeAustrianTownName(byte *b
|
|
|
AppendPart(&buf, GETNUM(5, NUM_AUSTRIAN_F2), austrian_f2);
|
|
|
}
|
|
|
else if(i >= 2-j) {
|
|
|
// am Dachstein (mountains)
|
|
|
AppendPart(&buf, GETNUM(4, NUM_AUSTRIAN_B1), austrian_b1);
|
|
|
AppendPart(&buf, GETNUM(5, NUM_AUSTRIAN_B2), austrian_b2);
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
#define NUM_GERMAN_1 114
|
|
|
#define NUM_GERMAN_1_HARDCODED 21
|
|
|
static const char german_1[] =
|
|
|
#define NUM_GERMAN_1_HARDCODED 21
|
|
|
static const char german_1[] =
|
|
|
/* hardcoded names */
|
|
|
MK("Berlin")
|
|
|
MK("Bonn")
|
|
|
MK("Bremen")
|
|
|
MK("Cottbus")
|
|
|
MK("Chemnitz")
|
|
|
MK("Dortmund")
|
|
|
MK("Dresden")
|
|
|
MK("Erfurt")
|
|
|
MK("Erlangen")
|
|
|
MK("Essen")
|
|
|
MK("Fulda")
|
|
@@ -522,32 +522,32 @@ static const char german_3[] =
|
|
|
|
|
|
#define NUM_GERMAN_4 6
|
|
|
#define NUM_GERMAN_4_PRECHANGE 5
|
|
|
static const char german_4[] =
|
|
|
/* use "an der" */
|
|
|
MK("Oder")
|
|
|
MK("Spree")
|
|
|
MK("Donau")
|
|
|
MK("Saale")
|
|
|
MK("Elbe")
|
|
|
/* use "am" */
|
|
|
MK("Main")
|
|
|
|
|
|
|
|
|
;
|
|
|
|
|
|
static byte MakeGermanTownName(byte *buf, uint32 seed)
|
|
|
{
|
|
|
int i;
|
|
|
int ext;
|
|
|
|
|
|
|
|
|
ext=GETNUM(7, 28); /* Extension - Prefix / Suffix */
|
|
|
|
|
|
if ((ext==12) || (ext==19)) {
|
|
|
i=GETNUM(2,NUM_GERMAN_3-2);
|
|
|
AppendPart(&buf, 2+i, german_3);
|
|
|
}
|
|
|
|
|
|
|
|
|
i=GETNUM(3,NUM_GERMAN_1);
|
|
|
|
|
|
AppendPart(&buf, i, german_1);
|
|
|
|
|
@@ -562,25 +562,25 @@ static byte MakeGermanTownName(byte *buf
|
|
|
AppendPart(&buf, 0, german_3);
|
|
|
AppendPart(&buf, i, german_4);
|
|
|
} else {
|
|
|
AppendPart(&buf, 1, german_3);
|
|
|
AppendPart(&buf, i, german_4);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
#define NUM_SPANISH_1 86
|
|
|
static const char spanish_1[] =
|
|
|
static const char spanish_1[] =
|
|
|
MK("Caracas")
|
|
|
MK("Maracay")
|
|
|
MK("Maracaibo")
|
|
|
MK("Velencia")
|
|
|
MK("El Dorado")
|
|
|
MK("Morrocoy")
|
|
|
MK("Cata")
|
|
|
MK("Cataito")
|
|
|
MK("Ciudad Bolivar")
|
|
|
MK("Barquisimeto")
|
|
|
MK("Merida")
|
|
|
MK("Puerto Ordaz")
|
|
@@ -653,47 +653,47 @@ static const char spanish_1[] =
|
|
|
MK("Barranca")
|
|
|
MK("Montevideo")
|
|
|
MK("Valdivia")
|
|
|
MK("Arica")
|
|
|
MK("Temuco")
|
|
|
MK("Tocopilla")
|
|
|
MK("Mendoza")
|
|
|
MK("Santa Rosa");
|
|
|
|
|
|
static byte MakeSpanishTownName(byte *buf, uint32 seed)
|
|
|
{
|
|
|
AppendPart(&buf, GETNUM(0, NUM_SPANISH_1), spanish_1);
|
|
|
return 0;
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
#define NUM_FRENCH_1 70
|
|
|
static const char french_1[] =
|
|
|
static const char french_1[] =
|
|
|
MK("Agincourt")
|
|
|
MK("Lille")
|
|
|
MK("Dinan")
|
|
|
MK("Aubusson")
|
|
|
MK("Rodez")
|
|
|
MK("Bergerac")
|
|
|
MK("Bordeaux")
|
|
|
MK("Bayonne")
|
|
|
MK("Montpellier")
|
|
|
MK("Montelimar")
|
|
|
MK("Valence")
|
|
|
MK("Digne")
|
|
|
MK("Nice")
|
|
|
MK("Cannes")
|
|
|
MK("St. Tropez")
|
|
|
MK("Marseilles")
|
|
|
MK("Narbonne")
|
|
|
MK("Sète")
|
|
|
MK("Sète")
|
|
|
MK("Aurillac")
|
|
|
MK("Gueret")
|
|
|
MK("Le Creusot")
|
|
|
MK("Nevers")
|
|
|
MK("Auxerre")
|
|
|
MK("Versailles")
|
|
|
MK("Meaux")
|
|
|
MK("Châlons")
|
|
|
MK("Compiègne")
|
|
|
MK("Metz")
|
|
|
MK("Chaumont")
|
|
|
MK("Langres")
|
|
@@ -742,25 +742,25 @@ static byte MakeFrenchTownName(byte *buf
|
|
|
{
|
|
|
AppendPart(&buf, GETNUM(0, NUM_FRENCH_1), french_1);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
static byte MakeAmericanTownName(byte *buf, uint32 seed)
|
|
|
{
|
|
|
// make american town names equal to english for now.
|
|
|
return MakeEnglishTownName(buf, seed);
|
|
|
}
|
|
|
|
|
|
#define NUM_SILLY_1 88
|
|
|
static const char silly_1[] =
|
|
|
static const char silly_1[] =
|
|
|
MK("Binky")
|
|
|
MK("Blubber")
|
|
|
MK("Bumble")
|
|
|
MK("Crinkle")
|
|
|
MK("Crusty")
|
|
|
MK("Dangle")
|
|
|
MK("Dribble")
|
|
|
MK("Flippety")
|
|
|
MK("Google")
|
|
|
MK("Muffin")
|
|
|
|
|
|
MK("Nosey")
|
|
@@ -842,46 +842,46 @@ static const char silly_1[] =
|
|
|
|
|
|
MK("Teddy")
|
|
|
MK("Evil")
|
|
|
MK("Fairy")
|
|
|
MK("Falling")
|
|
|
MK("Fishy")
|
|
|
MK("Fizzle")
|
|
|
MK("Frosty")
|
|
|
MK("Griddle")
|
|
|
;
|
|
|
|
|
|
#define NUM_SILLY_2 15
|
|
|
static const char silly_2[] =
|
|
|
static const char silly_2[] =
|
|
|
MK("ton")
|
|
|
MK("bury")
|
|
|
MK("bottom")
|
|
|
MK("ville")
|
|
|
MK("well")
|
|
|
MK("weed")
|
|
|
MK("worth")
|
|
|
MK("wig")
|
|
|
MK("wick")
|
|
|
MK("wood")
|
|
|
|
|
|
|
|
|
MK("pool")
|
|
|
MK("head")
|
|
|
MK("burg")
|
|
|
MK("gate")
|
|
|
MK("bridge")
|
|
|
;
|
|
|
|
|
|
|
|
|
static byte MakeSillyTownName(byte *buf, uint32 seed)
|
|
|
{
|
|
|
{
|
|
|
AppendPart(&buf, GETNUM(0, NUM_SILLY_1), silly_1);
|
|
|
AppendPart(&buf, GETNUM(16, NUM_SILLY_2),silly_2);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
|
|
|
#define NUM_SWEDISH_1 4
|
|
|
static const char swedish_1[] =
|
|
|
MK("Gamla ")
|
|
|
MK("Lilla ")
|
|
|
MK("Nya ")
|
|
|
MK("Stora ");
|
|
@@ -1072,25 +1072,25 @@ static byte MakeSwedishTownName(byte *bu
|
|
|
#define NUM_DUTCH_1 8
|
|
|
static const char dutch_1[] =
|
|
|
MK("Nieuw ")
|
|
|
MK("Oud ")
|
|
|
MK("Groot ")
|
|
|
MK("Zuid ")
|
|
|
MK("Noord ")
|
|
|
MK("Oost ")
|
|
|
MK("West ")
|
|
|
MK("Klein ");
|
|
|
|
|
|
#define NUM_DUTCH_2 57
|
|
|
static const char dutch_2[] =
|
|
|
static const char dutch_2[] =
|
|
|
MK("Hoog")
|
|
|
MK("Laag")
|
|
|
MK("Klein")
|
|
|
MK("Groot")
|
|
|
MK("Noorder")
|
|
|
MK("Noord")
|
|
|
MK("Zuider")
|
|
|
MK("Zuid")
|
|
|
MK("Ooster")
|
|
|
MK("Oost")
|
|
|
MK("Wester")
|
|
|
MK("West")
|
|
@@ -1132,58 +1132,58 @@ static const char dutch_2[] =
|
|
|
MK("Groen")
|
|
|
MK("Lek")
|
|
|
MK("Ridder")
|
|
|
MK("Schie")
|
|
|
MK("Olde")
|
|
|
MK("Roose")
|
|
|
MK("Haar")
|
|
|
MK("Til")
|
|
|
MK("Loos")
|
|
|
MK("Hil");
|
|
|
|
|
|
#define NUM_DUTCH_3 20
|
|
|
static const char dutch_3[] =
|
|
|
static const char dutch_3[] =
|
|
|
MK("Drog")
|
|
|
MK("Nat")
|
|
|
MK("Valk")
|
|
|
MK("Bob")
|
|
|
MK("Dedem")
|
|
|
MK("Kollum")
|
|
|
MK("Best")
|
|
|
MK("Hoend")
|
|
|
MK("Leeuw")
|
|
|
MK("Graaf")
|
|
|
MK("Uithuis")
|
|
|
MK("Purm")
|
|
|
MK("Hard")
|
|
|
MK("Hell")
|
|
|
MK("Werk")
|
|
|
MK("Spijk")
|
|
|
MK("Vink")
|
|
|
MK("Wams")
|
|
|
MK("Heerhug")
|
|
|
MK("Koning");
|
|
|
|
|
|
|
|
|
|
|
|
#define NUM_DUTCH_4 6
|
|
|
static const char dutch_4[] =
|
|
|
static const char dutch_4[] =
|
|
|
MK("e")
|
|
|
MK("er")
|
|
|
MK("el")
|
|
|
MK("en")
|
|
|
MK("o")
|
|
|
MK("s");
|
|
|
|
|
|
#define NUM_DUTCH_5 56
|
|
|
static const char dutch_5[] =
|
|
|
static const char dutch_5[] =
|
|
|
MK("stad")
|
|
|
MK("vorst")
|
|
|
MK("dorp")
|
|
|
MK("dam")
|
|
|
MK("beek")
|
|
|
MK("doorn")
|
|
|
MK("zijl")
|
|
|
MK("zijlen")
|
|
|
MK("lo")
|
|
|
MK("muiden")
|
|
|
MK("meden")
|
|
|
MK("vliet")
|
|
@@ -1222,47 +1222,47 @@ static const char dutch_5[] =
|
|
|
MK("hoven")
|
|
|
MK("gast")
|
|
|
MK("kum")
|
|
|
MK("hage")
|
|
|
MK("dijk")
|
|
|
MK("zwaag")
|
|
|
MK("pomp")
|
|
|
MK("huizen")
|
|
|
MK("bergen")
|
|
|
MK("schede")
|
|
|
MK("mere")
|
|
|
MK("end");
|
|
|
|
|
|
|
|
|
static byte MakeDutchTownName(byte *buf, uint32 seed)
|
|
|
{
|
|
|
int i;
|
|
|
|
|
|
i = GETNUM(0, 50 + NUM_DUTCH_1) - 50;
|
|
|
if (i >= 0)
|
|
|
if (i >= 0)
|
|
|
AppendPart(&buf, i, dutch_1);
|
|
|
|
|
|
i = GETNUM(6, 9);
|
|
|
if(i > 4){
|
|
|
AppendPart(&buf, GETNUM(9, NUM_DUTCH_2), dutch_2);
|
|
|
} else {
|
|
|
AppendPart(&buf, GETNUM(9, NUM_DUTCH_3), dutch_3);
|
|
|
AppendPart(&buf, GETNUM(12, NUM_DUTCH_4), dutch_4);
|
|
|
}
|
|
|
AppendPart(&buf, GETNUM(15, NUM_DUTCH_5), dutch_5);
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
#define NUM_FINNISH_1 25
|
|
|
static const char finnish_1[] =
|
|
|
static const char finnish_1[] =
|
|
|
MK("Aijala")
|
|
|
MK("Kisko")
|
|
|
MK("Espoo")
|
|
|
MK("Helsinki")
|
|
|
MK("Tapiola")
|
|
|
MK("Järvelä")
|
|
|
MK("Lahti")
|
|
|
MK("Kotka")
|
|
|
MK("Hamina")
|
|
|
MK("Loviisa")
|
|
|
MK("Kouvola")
|
|
|
MK("Tampere")
|
|
@@ -1270,27 +1270,27 @@ static const char finnish_1[] =
|
|
|
MK("Oulu")
|
|
|
MK("Salo")
|
|
|
MK("Malmi")
|
|
|
MK("Pelto")
|
|
|
MK("Koski")
|
|
|
MK("Iisalmi")
|
|
|
MK("Raisio")
|
|
|
MK("Taavetti")
|
|
|
MK("Joensuu")
|
|
|
MK("Imatra")
|
|
|
MK("Tapanila")
|
|
|
MK("Pasila");
|
|
|
|
|
|
|
|
|
#define NUM_FINNISH_2a 26
|
|
|
static const char finnish_2a[] =
|
|
|
static const char finnish_2a[] =
|
|
|
MK("Hiekka")
|
|
|
MK("Haapa")
|
|
|
MK("Mylly")
|
|
|
MK("Kivi")
|
|
|
MK("Lappeen")
|
|
|
MK("Lohjan")
|
|
|
MK("Savon")
|
|
|
MK("Sauna")
|
|
|
MK("Keri")
|
|
|
MK("Uusi")
|
|
|
MK("Vanha")
|
|
|
MK("Lapin")
|
|
@@ -1301,25 +1301,25 @@ static const char finnish_2a[] =
|
|
|
MK("Pitäjän")
|
|
|
MK("Terva")
|
|
|
MK("Olki")
|
|
|
MK("Heinä")
|
|
|
MK("Kuusan")
|
|
|
MK("Seinä")
|
|
|
MK("Kemi")
|
|
|
MK("Rova")
|
|
|
MK("Martin")
|
|
|
MK("Koivu");
|
|
|
|
|
|
#define NUM_FINNISH_2b 18
|
|
|
static const char finnish_2b[] =
|
|
|
static const char finnish_2b[] =
|
|
|
MK("harju")
|
|
|
MK("linna")
|
|
|
MK("järvi")
|
|
|
MK("kallio")
|
|
|
MK("mäki")
|
|
|
MK("nummi")
|
|
|
MK("joki")
|
|
|
MK("kylä")
|
|
|
MK("lampi")
|
|
|
MK("lahti")
|
|
|
MK("metsä")
|
|
|
MK("suo")
|
|
@@ -1567,25 +1567,25 @@ MK(" Gorny")
|
|
|
MK(" Dolny")
|
|
|
MK(" Wielki")
|
|
|
MK(" Stary")
|
|
|
MK(" Nowy")
|
|
|
MK(" Wielkopolski")
|
|
|
MK(" Wzgorze")
|
|
|
MK(" Mosty")
|
|
|
MK(" Kujawski")
|
|
|
MK(" Malopolski")
|
|
|
MK(" Podlaski")
|
|
|
MK(" Lesny")
|
|
|
;
|
|
|
static const char polish_3_f[] =
|
|
|
static const char polish_3_f[] =
|
|
|
MK(" Wybudowanie")
|
|
|
MK(" Swietokrzyska")
|
|
|
MK(" Gorska")
|
|
|
MK(" Morska")
|
|
|
MK(" Zdroj")
|
|
|
MK(" Woda")
|
|
|
MK(" Bajoro")
|
|
|
MK(" Krajenska")
|
|
|
MK(" Slaska")
|
|
|
MK(" Mazowiecka")
|
|
|
MK(" Pomorska")
|
|
|
MK(" Wielka")
|
|
@@ -1683,25 +1683,25 @@ static byte MakePolishTownName(byte *buf
|
|
|
if(x < 8) {
|
|
|
AppendPart(&buf, GETNUM(10, NUM_POLISH_1), (*t)[0]);
|
|
|
AppendPart(&buf, i, polish_2);
|
|
|
} else {
|
|
|
AppendPart(&buf, i, polish_2);
|
|
|
AppendPart(&buf, GETNUM(10, NUM_POLISH_3), (*t)[1]);
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
#define NUM_CZECH_1 82
|
|
|
static const char czech_1[] =
|
|
|
static const char czech_1[] =
|
|
|
MK("As")
|
|
|
MK("Benesov")
|
|
|
MK("Beroun")
|
|
|
MK("Bezdruzice")
|
|
|
MK("Blansko")
|
|
|
MK("Breclav")
|
|
|
MK("Brno")
|
|
|
MK("Bruntál")
|
|
|
MK("Ceská Lípa")
|
|
|
MK("Ceské Budejovice")
|
|
|
MK("Ceskı Krumlov")
|
|
|
MK("Decín")
|
|
@@ -1771,25 +1771,25 @@ MK("Uherské Hradiste")
|
|
|
MK("Ústí nad Labem")
|
|
|
MK("Ústí nad Orlicí")
|
|
|
MK("Vsetín")
|
|
|
MK("Vyskov")
|
|
|
MK("Zdár nad Sázavou")
|
|
|
MK("Zlín")
|
|
|
MK("Znojmo")
|
|
|
;
|
|
|
|
|
|
static byte MakeCzechTownName(byte *buf, uint32 seed)
|
|
|
{
|
|
|
AppendPart(&buf, GETNUM(0, NUM_CZECH_1), czech_1);
|
|
|
return 0;
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#define NUM_SLOVAKISH_1 87
|
|
|
static const char slovakish_1[] =
|
|
|
MK("Bratislava")
|
|
|
MK("Banovce nad Bebravou")
|
|
|
MK("Banska Bystrica")
|
|
|
MK("Banska Stiavnica")
|
|
|
MK("Bardejov")
|
|
|
MK("Brezno")
|
|
@@ -1870,39 +1870,39 @@ MK("Vrable")
|
|
|
MK("Vranov nad Toplov")
|
|
|
MK("Zahorska Bystrica")
|
|
|
MK("Zdiar")
|
|
|
MK("Ziar nad Hronom")
|
|
|
MK("Zilina")
|
|
|
MK("Zlate Moravce")
|
|
|
MK("Zvolen")
|
|
|
;
|
|
|
|
|
|
static byte MakeSlovakishTownName(byte *buf, uint32 seed)
|
|
|
{
|
|
|
AppendPart(&buf, GETNUM(0, NUM_SLOVAKISH_1), slovakish_1);
|
|
|
return 0;
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
// Modifiers
|
|
|
#define NUM_HUNGARIAN_1 5
|
|
|
static const char hungarian_1[] =
|
|
|
static const char hungarian_1[] =
|
|
|
MK("Nagy-")
|
|
|
MK("Kis-")
|
|
|
MK("Felsõ-")
|
|
|
MK("Alsó-")
|
|
|
MK("Új-")
|
|
|
;
|
|
|
|
|
|
#define NUM_HUNGARIAN_2 54
|
|
|
static const char hungarian_2[] =
|
|
|
static const char hungarian_2[] =
|
|
|
// River modifiers
|
|
|
// 1 - 10
|
|
|
MK("Bodrog")
|
|
|
MK("Dráva")
|
|
|
MK("Duna")
|
|
|
MK("Hejõ")
|
|
|
MK("Hernád")
|
|
|
MK("Rába")
|
|
|
MK("Sajó")
|
|
|
MK("Szamos")
|
|
|
MK("Tisza")
|
|
|
MK("Zala")
|
|
@@ -1962,45 +1962,45 @@ static const char hungarian_2[] =
|
|
|
MK("Egyházas")
|
|
|
MK("Gagy")
|
|
|
MK("Heves")
|
|
|
MK("Kapos")
|
|
|
MK("Tápió")
|
|
|
MK("Torna")
|
|
|
MK("Vas")
|
|
|
MK("Vámos")
|
|
|
MK("Vásáros")
|
|
|
;
|
|
|
|
|
|
#define NUM_HUNGARIAN_3 16
|
|
|
static const char hungarian_3[] =
|
|
|
static const char hungarian_3[] =
|
|
|
MK("apáti")
|
|
|
MK("bába")
|
|
|
MK("bikk")
|
|
|
MK("dob")
|
|
|
MK("fa")
|
|
|
MK("föld")
|
|
|
MK("hegyes")
|
|
|
MK("kak")
|
|
|
MK("kereszt")
|
|
|
MK("kürt")
|
|
|
MK("ladány")
|
|
|
MK("mérges")
|
|
|
MK("szalonta")
|
|
|
MK("telek")
|
|
|
MK("vas")
|
|
|
MK("völgy")
|
|
|
;
|
|
|
|
|
|
#define NUM_HUNGARIAN_4 5
|
|
|
static const char hungarian_4[] =
|
|
|
static const char hungarian_4[] =
|
|
|
MK("alja")
|
|
|
MK("egyháza")
|
|
|
MK("háza")
|
|
|
MK("úr")
|
|
|
MK("vár")
|
|
|
;
|
|
|
|
|
|
#define NUM_HUNGARIAN_REAL 35
|
|
|
static const char hungarian_real[] =
|
|
|
MK("Ajka")
|
|
|
MK("Aszód")
|
|
|
MK("Badacsony")
|
|
@@ -2045,25 +2045,25 @@ static byte MakeHungarianTownName(byte *
|
|
|
|
|
|
if (GETNUM(12, 15) < 3) {
|
|
|
/* These are real names.. */
|
|
|
AppendPart(&buf, GETNUM(0, NUM_HUNGARIAN_REAL), hungarian_real);
|
|
|
} else {
|
|
|
/* These are the generated names.. Some of them exist, LOL */
|
|
|
/* Append the prefix if needed */
|
|
|
i = GETNUM(3, NUM_HUNGARIAN_1 * 3);
|
|
|
if (i < NUM_HUNGARIAN_1) AppendPart(&buf, i, hungarian_1);
|
|
|
|
|
|
AppendPart(&buf, GETNUM(3, NUM_HUNGARIAN_2), hungarian_2);
|
|
|
AppendPart(&buf, GETNUM(6, NUM_HUNGARIAN_3), hungarian_3);
|
|
|
|
|
|
|
|
|
i = GETNUM(10, NUM_HUNGARIAN_4 * 3);
|
|
|
if (i < NUM_HUNGARIAN_4) AppendPart(&buf, i, hungarian_4);
|
|
|
}
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
TownNameGenerator * const _town_name_generators[] = {
|
|
|
MakeEnglishTownName,
|
|
|
MakeFrenchTownName,
|
|
|
MakeGermanTownName,
|
|
|
MakeAmericanTownName,
|
|
|
MakeSpanishTownName,
|