--- 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",
+};