* Generates Italian town name from given seed. * @param builder string builder * @param seed town name seed */
| 858 | * @param seed town name seed |
| 859 | */ |
| 860 | static void MakeItalianTownName(StringBuilder &builder, uint32_t seed) |
| 861 | { |
| 862 | if (SeedModChance(0, 6, seed) == 0) { // real city names |
| 863 | builder += _name_italian_real[SeedModChance(4, std::size(_name_italian_real), seed)]; |
| 864 | return; |
| 865 | } |
| 866 | |
| 867 | static const std::string_view mascul_femin_italian[] = { |
| 868 | "o", |
| 869 | "a", |
| 870 | }; |
| 871 | |
| 872 | if (SeedModChance(0, 8, seed) == 0) { // prefix |
| 873 | builder += _name_italian_pref[SeedModChance(11, std::size(_name_italian_pref), seed)]; |
| 874 | } |
| 875 | |
| 876 | uint i = SeedChance(0, 2, seed); |
| 877 | if (i == 0) { // masculine form |
| 878 | builder += _name_italian_1m[SeedModChance(4, std::size(_name_italian_1m), seed)]; |
| 879 | } else { // feminine form |
| 880 | builder += _name_italian_1f[SeedModChance(4, std::size(_name_italian_1f), seed)]; |
| 881 | } |
| 882 | |
| 883 | if (SeedModChance(3, 3, seed) == 0) { |
| 884 | builder += _name_italian_2[SeedModChance(11, std::size(_name_italian_2), seed)]; |
| 885 | builder += mascul_femin_italian[i]; |
| 886 | } else { |
| 887 | builder += _name_italian_2i[SeedModChance(16, std::size(_name_italian_2i), seed)]; |
| 888 | } |
| 889 | |
| 890 | if (SeedModChance(15, 4, seed) == 0) { |
| 891 | if (SeedModChance(5, 2, seed) == 0) { // generic suffix |
| 892 | builder += _name_italian_3[SeedModChance(4, std::size(_name_italian_3), seed)]; |
| 893 | } else { // river name suffix |
| 894 | builder += _name_italian_river1[SeedModChance(4, std::size(_name_italian_river1), seed)]; |
| 895 | builder += _name_italian_river2[SeedModChance(16, std::size(_name_italian_river2), seed)]; |
| 896 | } |
| 897 | } |
| 898 | } |
| 899 | |
| 900 | |
| 901 | /** |
nothing calls this directly
no test coverage detected