namegen.c
branch0.4
changeset 10066 250f5564fcae
parent 10000 2658158c505c
equal deleted inserted replaced
10065:fc91a7eca19e 10066:250f5564fcae
   616 			strcat(buf, name_turkish_suffix[SeedModChance( 4, lengthof(name_turkish_suffix), seed)]);
   616 			strcat(buf, name_turkish_suffix[SeedModChance( 4, lengthof(name_turkish_suffix), seed)]);
   617 		} else {
   617 		} else {
   618 			strcat(buf, name_turkish_real[SeedModChance( 4, lengthof(name_turkish_real), seed)]);
   618 			strcat(buf, name_turkish_real[SeedModChance( 4, lengthof(name_turkish_real), seed)]);
   619 		}
   619 		}
   620 	}
   620 	}
       
   621 	return 0;
       
   622 }
       
   623 
       
   624 static const char *mascul_femin_italian[] = {
       
   625 	"o",
       
   626 	"a",
       
   627 };
       
   628 
       
   629 static byte MakeItalianTownName(char *buf, uint32 seed) {
       
   630 
       
   631 	strcpy(buf, "");
       
   632 
       
   633 	if (SeedModChance(0, 6, seed) == 0) { // real city names
       
   634 		strcat(buf, name_italian_real[SeedModChance(4, lengthof(name_italian_real), seed)]);
       
   635 	} else {
       
   636 		uint i;
       
   637 
       
   638 		if (SeedModChance(0, 8, seed) == 0) { // prefix
       
   639 			strcat(buf, name_italian_pref[SeedModChance(11, lengthof(name_italian_pref), seed)]);
       
   640 		}
       
   641 
       
   642 		i = SeedChance(0, 2, seed);
       
   643 		if (i == 0) { // masculine form
       
   644 			strcat(buf, name_italian_1m[SeedModChance(4, lengthof(name_italian_1m), seed)]);
       
   645 		} else { // feminine form
       
   646 			strcat(buf, name_italian_1f[SeedModChance(4, lengthof(name_italian_1f), seed)]);
       
   647 		}
       
   648 
       
   649 		if (SeedModChance(3, 3, seed) == 0) {
       
   650 			strcat(buf, name_italian_2[SeedModChance(11, lengthof(name_italian_2), seed)]);
       
   651 			strcat(buf,mascul_femin_italian[i]);
       
   652 		} else {
       
   653 			strcat(buf, name_italian_2i[SeedModChance(16, lengthof(name_italian_2i), seed)]);
       
   654 		}
       
   655 
       
   656 		if (SeedModChance(15, 4, seed) == 0) {
       
   657 			if (SeedModChance(5, 2, seed) == 0) { // generic suffix
       
   658 				strcat(buf, name_italian_3[SeedModChance(4, lengthof(name_italian_3), seed)]);
       
   659 			} else { // river name suffix
       
   660 				strcat(buf, name_italian_river1[SeedModChance(4, lengthof(name_italian_river1), seed)]);
       
   661 				strcat(buf, name_italian_river2[SeedModChance(16, lengthof(name_italian_river2), seed)]);
       
   662 			}
       
   663 		}
       
   664 	}
       
   665 
   621 	return 0;
   666 	return 0;
   622 }
   667 }
   623 
   668 
   624 TownNameGenerator * const _town_name_generators[] =
   669 TownNameGenerator * const _town_name_generators[] =
   625 {
   670 {
   640 	MakeRomanianTownName,
   685 	MakeRomanianTownName,
   641 	MakeCzechTownName,
   686 	MakeCzechTownName,
   642 	MakeSwissTownName,
   687 	MakeSwissTownName,
   643 	MakeDanishTownName,
   688 	MakeDanishTownName,
   644 	MakeTurkishTownName,
   689 	MakeTurkishTownName,
       
   690 	MakeItalianTownName,
   645 };
   691 };
   646 
   692 
   647 // DO WE NEED THIS ANY MORE?
   693 // DO WE NEED THIS ANY MORE?
   648 #define FIXNUM(x, y, z) (((((x) << 16) / (y)) + 1) << z)
   694 #define FIXNUM(x, y, z) (((((x) << 16) / (y)) + 1) << z)
   649 
   695