Skip to content

Commit 70e5ec1

Browse files
authored
Reduce the complexity of the method for setting governorship adjective (#2713)
1 parent 7efcd94 commit 70e5ec1

File tree

1 file changed

+35
-23
lines changed

1 file changed

+35
-23
lines changed

ImperatorToCK3/CK3/Titles/Title.cs

Lines changed: 35 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -597,42 +597,54 @@ private void TrySetAdjectiveFromGovernorship(Governorship governorship, Country
597597
return;
598598
}
599599

600-
var adjSet = false;
601-
// Try to generate adjective from name.
600+
bool adjSet = TryToGenerateGovernorshipAdjectiveFromName(governorship, irLocDB, ck3LocDB, adjKey);
601+
602+
if (!adjSet) {
603+
adjSet = TryToUseCountryAdjectiveForGovernorshipAdjective(country, ck3LocDB, adjKey);
604+
}
605+
606+
if (!adjSet) {
607+
Logger.Warn($"{Id} needs help with adjective localization!");
608+
}
609+
}
610+
611+
private bool TryToGenerateGovernorshipAdjectiveFromName(Governorship governorship, LocDB irLocDB, CK3LocDB ck3LocDB, string adjKey) {
602612
CK3LocBlock? nameLocBlock = ck3LocDB.GetLocBlockForKey(Id);
603613
if (nameLocBlock is null) {
604614
var irRegionLoc = irLocDB.GetLocBlockForKey(governorship.Region.Id);
605615
if (irRegionLoc is not null) {
606616
nameLocBlock = new CK3LocBlock(irRegionLoc.Id, ConverterGlobals.PrimaryLanguage, irRegionLoc);
607617
}
608618
}
609-
if (!adjSet && nameLocBlock is not null) {
610-
var adjLocBlock = ck3LocDB.GetOrCreateLocBlock(adjKey);
611-
adjLocBlock.CopyFrom(nameLocBlock);
612619

613-
var englishLoc = adjLocBlock["english"];
614-
if (englishLoc is not null) {
615-
adjLocBlock["english"] = englishLoc.GetAdjective();
616-
}
620+
if (nameLocBlock is null) {
621+
return false;
622+
}
617623

618-
adjSet = true;
624+
var adjLocBlock = ck3LocDB.GetOrCreateLocBlock(adjKey);
625+
adjLocBlock.CopyFrom(nameLocBlock);
626+
627+
var englishLoc = adjLocBlock["english"];
628+
if (englishLoc is not null) {
629+
adjLocBlock["english"] = englishLoc.GetAdjective();
619630
}
620-
// Try to use country adjective.
621-
if (!adjSet) {
622-
var ck3Country = country.CK3Title;
623-
if (ck3Country is null) {
624-
return;
625-
}
626-
if (ck3LocDB.TryGetValue($"{ck3Country.Id}_adj", out var countryAdjectiveLocBlock)) {
627-
var adjLocBlock = ck3LocDB.GetOrCreateLocBlock(adjKey);
628-
adjLocBlock.CopyFrom(countryAdjectiveLocBlock);
629-
adjSet = true;
630-
}
631+
632+
return true;
633+
}
634+
635+
private static bool TryToUseCountryAdjectiveForGovernorshipAdjective(Country country, CK3LocDB ck3LocDB, string adjKey) {
636+
var ck3Country = country.CK3Title;
637+
if (ck3Country is null) {
638+
return false;
631639
}
632640

633-
if (!adjSet) {
634-
Logger.Warn($"{Id} needs help with adjective localization!");
641+
if (!ck3LocDB.TryGetValue($"{ck3Country.Id}_adj", out var countryAdjectiveLocBlock)) {
642+
return false;
635643
}
644+
645+
var adjLocBlock = ck3LocDB.GetOrCreateLocBlock(adjKey);
646+
adjLocBlock.CopyFrom(countryAdjectiveLocBlock);
647+
return true;
636648
}
637649

638650
private void TrySetGovernmentForTitleFromGovernorship(Governorship governorship, Country country, string? ck3LiegeGovAtGovernorshipStartDate, Date normalizedGovernorshipStartDate, string? currentCK3LiegeGov, Date ck3BookmarkDate) {

0 commit comments

Comments
 (0)