(svn r5504) Feature : Added Italian town name generator. (sidew)
authorbelugas
Sun, 16 Jul 2006 00:32:00 +0000
changeset 4143 5e6c2cfa6baa
parent 4142 43e366836091
child 4144 0e3f7eec5e99
(svn r5504) Feature : Added Italian town name generator. (sidew)
lang/english.txt
namegen.c
openttd.h
settings.c
table/namegen.h
--- a/lang/english.txt	Sat Jul 15 17:12:44 2006 +0000
+++ b/lang/english.txt	Sun Jul 16 00:32:00 2006 +0000
@@ -880,6 +880,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/namegen.c	Sat Jul 15 17:12:44 2006 +0000
+++ b/namegen.c	Sun Jul 16 00:32:00 2006 +0000
@@ -647,6 +647,54 @@
 	return 0;
 }
 
+static byte MakeItalianTownName(char *buf, uint32 seed) {
+
+	byte i;
+	char *c;
+	strcpy(buf, "");
+
+	if (SeedModChance(0, 6, seed) == 0) {
+		// real city names
+		strcat(buf, name_italian_real[SeedModChance(4, lengthof(name_italian_real), seed)]);
+	} else {
+		if (SeedModChance(0, 8, seed) == 0) {
+			// prefix
+			strcat(buf, name_italian_pref[SeedModChance(11, lengthof(name_italian_pref), seed)]);
+		}
+
+		i = SeedModChance(0, 2, seed);
+		if (i == 0) { // masculine form
+			strcat(buf, name_italian_1m[SeedModChance(4, lengthof(name_italian_1m), seed)]);
+			c = "o";
+		} else {  // femminine form
+			strcat(buf, name_italian_1f[SeedModChance(4, lengthof(name_italian_1f), seed)]);
+			c = "a";
+		}
+
+		if (SeedModChance(0, 3, seed) == 0) {
+			strcat(buf, name_italian_2[SeedModChance(11, lengthof(name_italian_2), seed)]);
+			strcat(buf,c);
+		} else {
+			strcat(buf, name_italian_2i[SeedModChance(16, lengthof(name_italian_2i), seed)]);
+		}
+
+
+		if (SeedModChance(15, 4, seed) == 0) {
+			if (SeedModChance(0, 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,
@@ -668,6 +716,7 @@
 	MakeSwissTownName,
 	MakeDanishTownName,
 	MakeTurkishTownName,
+	MakeItalianTownName,
 };
 
 // DO WE NEED THIS ANY MORE?
--- a/openttd.h	Sat Jul 15 17:12:44 2006 +0000
+++ b/openttd.h	Sun Jul 16 00:32:00 2006 +0000
@@ -472,7 +472,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	Sat Jul 15 17:12:44 2006 +0000
+++ b/settings.c	Sun Jul 16 00:32:00 2006 +0000
@@ -1213,7 +1213,7 @@
 	    SDT_VAR(GameOptions, diff_level,SLE_UINT8, 0, 0, 9,0, 9, STR_NULL, NULL),
 	  SDT_OMANY(GameOptions, currency,  SLE_UINT8, N, 0, 0, CUSTOM_CURRENCY_ID, "GBP|USD|EUR|YEN|ATS|BEF|CHF|CZK|DEM|DKK|ESP|FIM|FRF|GRD|HUF|ISK|ITL|NLG|NOK|PLN|ROL|RUR|SEK|custom", STR_NULL, NULL),
 	  SDT_OMANY(GameOptions, units,     SLE_UINT8, N, 0, 1,   2, "imperial|metric|si", STR_NULL, NULL),
-	  SDT_OMANY(GameOptions, town_name, SLE_UINT8, 0, 0, 0,  18, "english|french|german|american|latin|silly|swedish|dutch|finnish|polish|slovakish|norwegian|hungarian|austrian|romanian|czech|swiss|danish|turkish", STR_NULL, NULL),
+	  SDT_OMANY(GameOptions, town_name, SLE_UINT8, 0, 0, 0,  19, "english|french|german|american|latin|silly|swedish|dutch|finnish|polish|slovakish|norwegian|hungarian|austrian|romanian|czech|swiss|danish|turkish|italian", STR_NULL, NULL),
 	  SDT_OMANY(GameOptions, landscape, SLE_UINT8, 0, 0, 0,   3, "normal|hilly|desert|candy", STR_NULL, NULL),
 	    SDT_VAR(GameOptions, snow_line, SLE_UINT8, 0, 0, 1,0,56, STR_NULL, NULL),
 	SDT_CONDOMANY(GameOptions,autosave, SLE_UINT8, 0, 22,             N, 0, 0, 0, "", STR_NULL, NULL),
--- a/table/namegen.h	Sat Jul 15 17:12:44 2006 +0000
+++ b/table/namegen.h	Sun Jul 16 00:32:00 2006 +0000
@@ -2865,3 +2865,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",
+};