(svn r5671) - Backport from trunk (r5504, r5512): 0.4
authorDarkvater
Mon, 31 Jul 2006 12:08:08 +0000
branch0.4
changeset 10066 250f5564fcae
parent 10065 fc91a7eca19e
child 10067 9c4cb00a88fc
(svn r5671) - Backport from trunk (r5504, r5512):
Added Italian town name generator. While not a fix, it is added along the same lines
as the turkish town names. Official translation > official townnames (if existing).
lang/american.txt
lang/czech.txt
lang/dutch.txt
lang/english.txt
lang/estonian.txt
lang/french.txt
lang/german.txt
lang/hungarian.txt
lang/icelandic.txt
lang/italian.txt
lang/norwegian.txt
lang/polish.txt
lang/portuguese.txt
lang/slovak.txt
lang/spanish.txt
lang/swedish.txt
lang/turkish.txt
namegen.c
openttd.h
settings.c
table/namegen.h
--- a/lang/american.txt	Mon Jul 31 11:50:23 2006 +0000
+++ b/lang/american.txt	Mon Jul 31 12:08:08 2006 +0000
@@ -839,6 +839,7 @@
 STR_TOWNNAME_SWISS                                              :Swiss
 STR_TOWNNAME_DANISH                                             :Danish
 STR_TOWNNAME_TURKISH                                            :Turkish
+STR_TOWNNAME_ITALIAN                                            :Italian
 ############ end of	townname region
 
 STR_CURR_GBP                                                    :Pounds (£)
--- a/lang/czech.txt	Mon Jul 31 11:50:23 2006 +0000
+++ b/lang/czech.txt	Mon Jul 31 12:08:08 2006 +0000
@@ -896,6 +896,7 @@
 STR_TOWNNAME_SWISS                                              :¦vıcarská
 STR_TOWNNAME_DANISH                                             :Dánská
 STR_TOWNNAME_TURKISH                                            :Turecká
+STR_TOWNNAME_ITALIAN                                            :Italská
 ############ end of	townname region
 
 STR_CURR_GBP                                                    :Libry (£)
--- a/lang/dutch.txt	Mon Jul 31 11:50:23 2006 +0000
+++ b/lang/dutch.txt	Mon Jul 31 12:08:08 2006 +0000
@@ -839,6 +839,7 @@
 STR_TOWNNAME_SWISS                                              :Zwitsers
 STR_TOWNNAME_DANISH                                             :Deens
 STR_TOWNNAME_TURKISH                                            :Turks
+STR_TOWNNAME_ITALIAN                                            :Italiaans
 ############ end of	townname region
 
 STR_CURR_GBP                                                    :Pond (£)
--- a/lang/english.txt	Mon Jul 31 11:50:23 2006 +0000
+++ b/lang/english.txt	Mon Jul 31 12:08:08 2006 +0000
@@ -839,6 +839,7 @@
 STR_TOWNNAME_SWISS                                              :Swiss
 STR_TOWNNAME_DANISH                                             :Danish
 STR_TOWNNAME_TURKISH                                            :Turkish
+STR_TOWNNAME_ITALIAN                                            :Italian
 ############ end of	townname region
 
 STR_CURR_GBP                                                    :Pounds (£)
--- a/lang/estonian.txt	Mon Jul 31 11:50:23 2006 +0000
+++ b/lang/estonian.txt	Mon Jul 31 12:08:08 2006 +0000
@@ -839,6 +839,7 @@
 STR_TOWNNAME_SWISS                                              :¦veitsi
 STR_TOWNNAME_DANISH                                             :Taani
 STR_TOWNNAME_TURKISH                                            :Türgi
+STR_TOWNNAME_ITALIAN                                            :Itaalia
 ############ end of	townname region
 
 STR_CURR_GBP                                                    :Naelad (£)
--- a/lang/french.txt	Mon Jul 31 11:50:23 2006 +0000
+++ b/lang/french.txt	Mon Jul 31 12:08:08 2006 +0000
@@ -840,6 +840,7 @@
 STR_TOWNNAME_SWISS                                              :Suisse
 STR_TOWNNAME_DANISH                                             :Danois
 STR_TOWNNAME_TURKISH                                            :Turques
+STR_TOWNNAME_ITALIAN                                            :Italien
 ############ end of	townname region
 
 STR_CURR_GBP                                                    :Livre (£)
--- a/lang/german.txt	Mon Jul 31 11:50:23 2006 +0000
+++ b/lang/german.txt	Mon Jul 31 12:08:08 2006 +0000
@@ -840,6 +840,7 @@
 STR_TOWNNAME_SWISS                                              :Schweizerisch
 STR_TOWNNAME_DANISH                                             :Dänisch
 STR_TOWNNAME_TURKISH                                            :Türkisch
+STR_TOWNNAME_ITALIAN                                            :Italienisch
 ############ end of	townname region
 
 STR_CURR_GBP                                                    :Pfund (£)
--- a/lang/hungarian.txt	Mon Jul 31 11:50:23 2006 +0000
+++ b/lang/hungarian.txt	Mon Jul 31 12:08:08 2006 +0000
@@ -904,6 +904,7 @@
 STR_TOWNNAME_SWISS                                              :Svájci
 STR_TOWNNAME_DANISH                                             :Dán
 STR_TOWNNAME_TURKISH                                            :Török
+STR_TOWNNAME_ITALIAN                                            :Olasz
 ############ end of	townname region
 
 STR_CURR_GBP                                                    :Font (£)
--- a/lang/icelandic.txt	Mon Jul 31 11:50:23 2006 +0000
+++ b/lang/icelandic.txt	Mon Jul 31 12:08:08 2006 +0000
@@ -839,6 +839,7 @@
 STR_TOWNNAME_SWISS                                              :Svissnesk
 STR_TOWNNAME_DANISH                                             :Dönsk
 STR_TOWNNAME_TURKISH                                            :Tyrknesk
+STR_TOWNNAME_ITALIAN                                            :Ítölsk
 ############ end of	townname region
 
 STR_CURR_GBP                                                    :Pund (£)
--- a/lang/italian.txt	Mon Jul 31 11:50:23 2006 +0000
+++ b/lang/italian.txt	Mon Jul 31 12:08:08 2006 +0000
@@ -839,6 +839,7 @@
 STR_TOWNNAME_SWISS                                              :Svizzero
 STR_TOWNNAME_DANISH                                             :Danese
 STR_TOWNNAME_TURKISH                                            :Turco
+STR_TOWNNAME_ITALIAN                                            :Italiano
 ############ end of	townname region
 
 STR_CURR_GBP                                                    :Sterlina (£)
--- a/lang/norwegian.txt	Mon Jul 31 11:50:23 2006 +0000
+++ b/lang/norwegian.txt	Mon Jul 31 12:08:08 2006 +0000
@@ -839,6 +839,7 @@
 STR_TOWNNAME_SWISS                                              :Sveitsisk
 STR_TOWNNAME_DANISH                                             :Dansk
 STR_TOWNNAME_TURKISH                                            :Tyrkisk
+STR_TOWNNAME_ITALIAN                                            :Italiensk
 ############ end of	townname region
 
 STR_CURR_GBP                                                    :Pund (£)
--- a/lang/polish.txt	Mon Jul 31 11:50:23 2006 +0000
+++ b/lang/polish.txt	Mon Jul 31 12:08:08 2006 +0000
@@ -926,6 +926,7 @@
 STR_TOWNNAME_SWISS                                              :Szwajcarskie
 STR_TOWNNAME_DANISH                                             :Dunskie
 STR_TOWNNAME_TURKISH                                            :Tureckie
+STR_TOWNNAME_ITALIAN                                            :Wloskie
 ############ end of	townname region
 
 STR_CURR_GBP                                                    :Funty (£)
--- a/lang/portuguese.txt	Mon Jul 31 11:50:23 2006 +0000
+++ b/lang/portuguese.txt	Mon Jul 31 12:08:08 2006 +0000
@@ -839,6 +839,7 @@
 STR_TOWNNAME_SWISS                                              :Suiça
 STR_TOWNNAME_DANISH                                             :Dinamarquês
 STR_TOWNNAME_TURKISH                                            :Turco
+STR_TOWNNAME_ITALIAN                                            :Italiano
 ############ end of	townname region
 
 STR_CURR_GBP                                                    :Libras (£)
--- a/lang/slovak.txt	Mon Jul 31 11:50:23 2006 +0000
+++ b/lang/slovak.txt	Mon Jul 31 12:08:08 2006 +0000
@@ -839,6 +839,7 @@
 STR_TOWNNAME_SWISS                                              :Svajciarske
 STR_TOWNNAME_DANISH                                             :Danske
 STR_TOWNNAME_TURKISH                                            :Turecké
+STR_TOWNNAME_ITALIAN                                            :Talianske
 ############ end of	townname region
 
 STR_CURR_GBP                                                    :Libry (£)
--- a/lang/spanish.txt	Mon Jul 31 11:50:23 2006 +0000
+++ b/lang/spanish.txt	Mon Jul 31 12:08:08 2006 +0000
@@ -839,6 +839,7 @@
 STR_TOWNNAME_SWISS                                              :Suizo
 STR_TOWNNAME_DANISH                                             :Danes
 STR_TOWNNAME_TURKISH                                            :Turco
+STR_TOWNNAME_ITALIAN                                            :Italiano
 ############ end of	townname region
 
 STR_CURR_GBP                                                    :Libras (£)
--- a/lang/swedish.txt	Mon Jul 31 11:50:23 2006 +0000
+++ b/lang/swedish.txt	Mon Jul 31 12:08:08 2006 +0000
@@ -839,6 +839,7 @@
 STR_TOWNNAME_SWISS                                              :Schweiziska
 STR_TOWNNAME_DANISH                                             :Danska
 STR_TOWNNAME_TURKISH                                            :Turkiska
+STR_TOWNNAME_ITALIAN                                            :Italienska
 ############ end of	townname region
 
 STR_CURR_GBP                                                    :Pund (£)
--- a/lang/turkish.txt	Mon Jul 31 11:50:23 2006 +0000
+++ b/lang/turkish.txt	Mon Jul 31 12:08:08 2006 +0000
@@ -839,6 +839,7 @@
 STR_TOWNNAME_SWISS                                              :isviçrece
 STR_TOWNNAME_DANISH                                             :Danimarkaca
 STR_TOWNNAME_TURKISH                                            :Türkçe
+STR_TOWNNAME_ITALIAN                                            :Italyanca
 ############ end of	townname region
 
 STR_CURR_GBP                                                    :Sterlin (£)
--- a/namegen.c	Mon Jul 31 11:50:23 2006 +0000
+++ b/namegen.c	Mon Jul 31 12:08:08 2006 +0000
@@ -621,6 +621,51 @@
 	return 0;
 }
 
+static const char *mascul_femin_italian[] = {
+	"o",
+	"a",
+};
+
+static byte MakeItalianTownName(char *buf, uint32 seed) {
+
+	strcpy(buf, "");
+
+	if (SeedModChance(0, 6, seed) == 0) { // real city names
+		strcat(buf, name_italian_real[SeedModChance(4, lengthof(name_italian_real), seed)]);
+	} else {
+		uint i;
+
+		if (SeedModChance(0, 8, seed) == 0) { // prefix
+			strcat(buf, name_italian_pref[SeedModChance(11, lengthof(name_italian_pref), seed)]);
+		}
+
+		i = SeedChance(0, 2, seed);
+		if (i == 0) { // masculine form
+			strcat(buf, name_italian_1m[SeedModChance(4, lengthof(name_italian_1m), seed)]);
+		} else { // feminine form
+			strcat(buf, name_italian_1f[SeedModChance(4, lengthof(name_italian_1f), seed)]);
+		}
+
+		if (SeedModChance(3, 3, seed) == 0) {
+			strcat(buf, name_italian_2[SeedModChance(11, lengthof(name_italian_2), seed)]);
+			strcat(buf,mascul_femin_italian[i]);
+		} else {
+			strcat(buf, name_italian_2i[SeedModChance(16, lengthof(name_italian_2i), seed)]);
+		}
+
+		if (SeedModChance(15, 4, seed) == 0) {
+			if (SeedModChance(5, 2, seed) == 0) { // generic suffix
+				strcat(buf, name_italian_3[SeedModChance(4, lengthof(name_italian_3), seed)]);
+			} else { // river name suffix
+				strcat(buf, name_italian_river1[SeedModChance(4, lengthof(name_italian_river1), seed)]);
+				strcat(buf, name_italian_river2[SeedModChance(16, lengthof(name_italian_river2), seed)]);
+			}
+		}
+	}
+
+	return 0;
+}
+
 TownNameGenerator * const _town_name_generators[] =
 {
 	MakeEnglishOriginalTownName,
@@ -642,6 +687,7 @@
 	MakeSwissTownName,
 	MakeDanishTownName,
 	MakeTurkishTownName,
+	MakeItalianTownName,
 };
 
 // DO WE NEED THIS ANY MORE?
--- a/openttd.h	Mon Jul 31 11:50:23 2006 +0000
+++ b/openttd.h	Mon Jul 31 12:08:08 2006 +0000
@@ -493,7 +493,8 @@
 	SPECSTR_TOWNNAME_SWISS,
 	SPECSTR_TOWNNAME_DANISH,
 	SPECSTR_TOWNNAME_TURKISH,
-	SPECSTR_TOWNNAME_LAST = SPECSTR_TOWNNAME_TURKISH,
+	SPECSTR_TOWNNAME_ITALIAN,
+	SPECSTR_TOWNNAME_LAST = SPECSTR_TOWNNAME_ITALIAN,
 
 	// special strings for player names on the form "TownName transport".
 	SPECSTR_PLAYERNAME_START = 0x70EA,
--- a/settings.c	Mon Jul 31 11:50:23 2006 +0000
+++ b/settings.c	Mon Jul 31 12:08:08 2006 +0000
@@ -811,7 +811,7 @@
   {"diff_custom", SDT_INTLIST | SDT_UINT32 | (sizeof(GameDifficulty)/4) << 16, NULL, &_opt_newgame.diff, NULL},
   {"currency",    SDT_UINT8 | SDT_ONEOFMANY,  (void*)0, &_opt_newgame.currency,   "GBP|USD|EUR|YEN|ATS|BEF|CHF|CZK|DEM|DKK|ESP|FIM|FRF|GRD|HUF|ISK|ITL|NLG|NOK|PLN|ROL|RUR|SEK|custom" },
   {"distances",   SDT_UINT8 | SDT_ONEOFMANY,  (void*)1, &_opt_newgame.kilometers, "imperial|metric" },
-  {"town_names",  SDT_UINT8 | SDT_ONEOFMANY,  (void*)0, &_opt_newgame.town_name,  "english|french|german|american|latin|silly|swedish|dutch|finnish|polish|slovakish|norwegian|hungarian|austrian|romanian|czech|swiss|danish|turkish" },
+  {"town_names",  SDT_UINT8 | SDT_ONEOFMANY,  (void*)0, &_opt_newgame.town_name,  "english|french|german|american|latin|silly|swedish|dutch|finnish|polish|slovakish|norwegian|hungarian|austrian|romanian|czech|swiss|danish|turkish|italian" },
   {"landscape",   SDT_UINT8 | SDT_ONEOFMANY,  (void*)0, &_opt_newgame.landscape,  "normal|hilly|desert|candy" },
   {"autosave",    SDT_UINT8 | SDT_ONEOFMANY,  (void*)1, &_opt_newgame.autosave,   "off|monthly|quarterly|half year|yearly" },
   {"road_side",   SDT_UINT8 | SDT_ONEOFMANY,  (void*)1, &_opt_newgame.road_side,  "left|right" },
--- a/table/namegen.h	Mon Jul 31 11:50:23 2006 +0000
+++ b/table/namegen.h	Mon Jul 31 12:08:08 2006 +0000
@@ -2843,3 +2843,269 @@
 	"Osmaniye",
 	"Düzce"
 };
+
+static const char *name_italian_real[] = {
+	"Roma",
+	"Milano",
+	"Napoli",
+	"Torino",
+	"Venezia",
+	"Firenze",
+	"Palermo",
+	"Genova",
+	"Parma",
+	"Bologna",
+	"Bari",
+	"Cagliari",
+	"Sassari",
+	"Pisa",
+	"Aosta",
+	"Brescia",
+	"Verona",
+	"Bolzano",
+	"Padova",
+	"Udine",
+	"Trieste",
+	"Livorno",
+	"Ancona",
+	"Perugia",
+	"Pescara",
+	"L'Aquila",
+	"Campobasso",
+	"Potenza",
+	"Cosenza",
+	"Reggio Calabria",
+	"Catania",
+	"Caltanisetta",
+	"Agrigento",
+	"La Spezia",
+	"Modena",
+	"Vicenza",
+	"Mantova",
+	"Cremona",
+	"Piacenza",
+	"Reggio Emilia",
+	"Foggia",
+	"Benevento",
+	"Salerno",
+	"Catanzaro",
+	"Lecce",
+	"Como",
+	"Lecco",
+	"Sondrio",
+	"Trento",
+	"Desenzano",
+	"Cuneo",
+	"Asti",
+	"Lodi",
+	"Novara",
+	"Biella",
+	"Vercelli",
+	"Rieti",
+	"Nuoro",
+	"Oristano",
+	"Matera",
+	"Taranto",
+	"Varese",
+	"Bergamo",
+	"Pavia",
+	"Caserta",
+	"Frosinone",
+	"Latina",
+	"Enna",
+	"Ragusa",
+	"Siracusa",
+	"Pordenone",
+	"Imperia",
+	"Verbania",
+	"Alessandria",
+	"Messina",
+	"Siena",
+	"Arezzo",
+	"Grosseto",
+};
+
+static const char *name_italian_pref[] = {
+	"Alpe ",
+	"Borgo ",
+	"Cascina ",
+	"Castel ",
+	"Fonte ",
+	"Forte ",
+	"Malga ",
+	"Pieve ",
+	"Poggio ",
+	"Rocca ",
+	"Villa ",
+	"Villar ",
+};
+
+static const char *name_italian_1m[] = {
+	"Bel",
+	"Borgo",
+	"Bosco",
+	"Campo",
+	"Capo",
+	"Casal",
+	"Castel",
+	"Colle",
+	"Fiume",
+	"Fonte",
+	"Lago",
+	"Mezzo",
+	"Monte",
+	"Mon",
+	"Orto",
+	"Passo",
+	"Prato",
+	"Poggio",
+	"Ponte",
+	"Pozzo",
+	"Sasso",
+	"Tra",
+	"Tre",
+	"Ver",
+	"Vico",
+};
+
+static const char *name_italian_1f[] = {
+	"Acqua",
+	"Bra",
+	"Cala",
+	"Casa",
+	"Chiesa",
+	"Citta",
+	"Civita",
+	"Corte",
+	"Costa",
+	"Croce",
+	"Fontana",
+	"Grotta",
+	"Guardia",
+	"Mezza",
+	"Palma",
+	"Pietra",
+	"Ripa",
+	"Rocca",
+	"Serra",
+	"Torre",
+	"Val",
+	"Valle",
+	"Villa",
+};
+
+static const char *name_italian_2[] = {
+	"bell",
+	"bianc",
+	"cald",
+	"chiar",
+	"cort",
+	"ferrat",
+	"fier",
+	"fredd",
+	"gioios",
+	"grec",
+	"guzz",
+	"lung",
+	"long",
+	"migli",
+	"negr",
+	"ner",
+	"nov",
+	"nuov",
+	"ross",
+	"rotond",
+	"scur",
+	"secc",
+	"sett",
+	"vecchi",
+	"ventos",
+	"vers",
+	"viv",
+};
+
+static const char *name_italian_2i[] = {
+	"",
+	"breve",
+	"brevi",
+	"chiari",
+	"ferro",
+	"fieschi",
+	"fiore",
+	"fonte",
+	"forte",
+	"gate",
+	"leone",
+	"maggiore",
+	"minore",
+	"mole",
+	"monte",
+	"poli",
+	"scuri",
+	"terra",
+	"te",
+	"torrione",
+	"vento",
+	"verde",
+	"versiere",
+};
+
+
+static const char *name_italian_3[] = {
+	" Marittimo",
+	" Marittima",
+	" del Capo",
+	" del Monte",
+	" di Sopra",
+	" di Sotto",
+	" sui Monti",
+	" dei Marmi",
+	" dei Sassi",
+	" delle Fonti",
+	" sui Prati",
+	" a Mare",
+	" Superiore",
+	" Inferiore",
+	" Terme",
+	" Alta",
+	" Bassa",
+	" Brianza",
+	" Vesuviano",
+	" Scrivia",
+	" Ticino",
+};
+
+static const char *name_italian_river1[] = {
+	" del",
+	" sul",
+	" al",
+	" nel",
+};
+
+static const char *name_italian_river2[] = {
+	"l'Adda",
+	"l'Adige",
+	"le Alpi",
+	"l'Arno",
+	" Bormida",
+	" Brenta",
+	"la Dora Baltea",
+	" Lambro",
+	" Mincio",
+	" Naviglio",
+	"l'Oglio",
+	"l'Olona",
+	"l'Ombrone",
+	" Panaro",
+	" Piave",
+	" Po",
+	" Reno",
+	" Scrivia",
+	" Secchia",
+	" Serio",
+	" Tagliamento",
+	" Tanaro",
+	" Taro",
+	" Ticino",
+	" Tevere",
+};