MCPcopy Create free account
hub / github.com/OpenTTD/OpenTTD / MakeItalianTownName

Function MakeItalianTownName

src/townname.cpp:860–898  ·  view source on GitHub ↗

* Generates Italian town name from given seed. * @param builder string builder * @param seed town name seed */

Source from the content-addressed store, hash-verified

858 * @param seed town name seed
859 */
860static 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/**

Callers

nothing calls this directly

Calls 3

SeedModChanceFunction · 0.85
SeedChanceFunction · 0.85
sizeFunction · 0.50

Tested by

no test coverage detected