diff -r fc91a7eca19e -r 250f5564fcae namegen.c --- 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?