diff --git a/Changelog.txt b/Changelog.txt
index 2a9cf11..a26c049 100644
--- a/Changelog.txt
+++ b/Changelog.txt
@@ -1,3 +1,8 @@
+Version 2.2.2 -
+
+- Add separate calculations for Financial Office buildings
+
+
Version 2.2.1.1 -
- Fix infinite loop in notification panel in some Chinese systems
diff --git a/Code/DataStore.cs b/Code/DataStore.cs
index ec5a68a..3dbf180 100644
--- a/Code/DataStore.cs
+++ b/Code/DataStore.cs
@@ -119,6 +119,10 @@ public class DataStore
new int[] { 36, 5, 0, 0, -1, 1, 5, 14, 80, 13, 5, 5, 3, 1125, 0, 1, 10, 37 },
new int[] { 38, 5, 0, 0, -1, 1, 3, 6, 90, 14, 5, 5, 2, 1250, 0, 1, 10, 50 }, };
+ public static int[][] officeFinancial = { new int[] { 34, 5, 0, 0, -1, 2, 8, 20, 70, 12, 4, 4, 3, 1000, 0, 1, 10, 25 },
+ new int[] { 36, 5, 0, 0, -1, 1, 5, 14, 80, 13, 5, 5, 3, 1125, 0, 1, 10, 37 },
+ new int[] { 38, 5, 0, 0, -1, 1, 3, 6, 90, 14, 5, 5, 2, 1250, 0, 1, 10, 50 }, };
+
public static int[][] officeHighTech = { new int[] { 74, 5, 0, 0, -1, 1, 2, 3, 94, 22, 5, 5, 3, 4000, 0, 1, 10, 10 } };
// Very high floor level because chimney stacks count to height level
diff --git a/Code/GUI/BuildingPanelFilter.cs b/Code/GUI/BuildingPanelFilter.cs
index 9eb3e6b..f172d9b 100644
--- a/Code/GUI/BuildingPanelFilter.cs
+++ b/Code/GUI/BuildingPanelFilter.cs
@@ -41,6 +41,7 @@ internal class BuildingPanelFilter : UIPanel
ItemClass.Service.Office,
ItemClass.Service.Office,
ItemClass.Service.Office,
+ ItemClass.Service.Office,
ItemClass.Service.Industrial,
ItemClass.Service.Commercial,
ItemClass.Service.Commercial,
@@ -60,6 +61,7 @@ internal class BuildingPanelFilter : UIPanel
ItemClass.SubService.CommercialWallToWall,
ItemClass.SubService.OfficeGeneric,
ItemClass.SubService.OfficeWallToWall,
+ ItemClass.SubService.OfficeFinancial,
ItemClass.SubService.OfficeHightech,
ItemClass.SubService.None,
ItemClass.SubService.CommercialTourist,
@@ -86,6 +88,7 @@ internal class BuildingPanelFilter : UIPanel
"Thumbnails",
"Thumbnails",
"Thumbnails",
+ "Thumbnails",
"Ingame",
};
@@ -100,6 +103,7 @@ internal class BuildingPanelFilter : UIPanel
"DistrictSpecializationCommercialWallToWall",
"ZoningOffice",
"DistrictSpecializationOfficeWallToWall",
+ "DistrictSpecializationOfficeFinancial",
"DistrictSpecializationHightech",
"ZoningIndustrial",
"DistrictSpecializationTourist",
@@ -120,6 +124,7 @@ internal class BuildingPanelFilter : UIPanel
"RPR_CAT_CW2",
"RPR_CAT_OFF",
"RPR_CAT_OW2",
+ "RPR_CAT_FIN",
"RPR_CAT_ITC",
"RPR_CAT_IND",
"RPR_CAT_TOU",
@@ -318,6 +323,11 @@ internal enum BuildingCategories
///
OfficeWallToWall,
+ ///
+ /// Financial office buildings.
+ ///
+ OfficeFinancial,
+
///
/// IT cluster (hightech office) buildings.
///
diff --git a/Code/Patches/Production/OfficeProduction.cs b/Code/Patches/Production/OfficeProduction.cs
index 19fd0b1..40d989f 100644
--- a/Code/Patches/Production/OfficeProduction.cs
+++ b/Code/Patches/Production/OfficeProduction.cs
@@ -31,6 +31,7 @@ public static class OfficeProduction
// Settings per subservice.
private static int genericOfficeProdMult = DefaultProdMult;
private static int w2wOfficeProdMult = DefaultProdMult;
+ private static int financialOfficeProdMult = DefaultProdMult;
private static int highTechOfficeProdMult = DefaultProdMult;
///
@@ -64,7 +65,7 @@ public static bool Prefix(ref int __result, OfficeBuildingAI __instance, ItemCla
}
else
{
- // Hew settings - multiply total workers by overall multiplier (from settings) to get result; divisor is 1,000 to match original mod 1/10th when at 100% production.
+ // New settings - multiply total workers by overall multiplier (from settings) to get result; divisor is 1,000 to match original mod 1/10th when at 100% production.
__result = totalWorkers * (subService == ItemClass.SubService.OfficeHightech ? highTechOfficeProdMult : genericOfficeProdMult) / 1000;
}
@@ -93,6 +94,9 @@ internal static int GetProdMult(ItemClass.SubService subService)
case ItemClass.SubService.OfficeWallToWall:
return w2wOfficeProdMult;
+ case ItemClass.SubService.OfficeFinancial:
+ return financialOfficeProdMult;
+
// Default is generic office.
default:
case ItemClass.SubService.OfficeGeneric:
@@ -119,6 +123,10 @@ internal static void SetProdMult(ItemClass.SubService subService, int value)
w2wOfficeProdMult = cleanValue;
break;
+ case ItemClass.SubService.OfficeFinancial:
+ financialOfficeProdMult = cleanValue;
+ break;
+
case ItemClass.SubService.OfficeHightech:
highTechOfficeProdMult = cleanValue;
break;
@@ -148,6 +156,11 @@ internal static void SetProdMult(ItemClass.SubService subService, int value)
Value = w2wOfficeProdMult,
},
new Configuration.SubServiceValue
+ {
+ SubService = ItemClass.SubService.OfficeFinancial,
+ Value = financialOfficeProdMult,
+ },
+ new Configuration.SubServiceValue
{
SubService = ItemClass.SubService.OfficeHightech,
Value = highTechOfficeProdMult,
diff --git a/Code/Settings/CalculationTabs/ConsumptionTabs/OffConsumptionPanel.cs b/Code/Settings/CalculationTabs/ConsumptionTabs/OffConsumptionPanel.cs
index 20c8dda..3161873 100644
--- a/Code/Settings/CalculationTabs/ConsumptionTabs/OffConsumptionPanel.cs
+++ b/Code/Settings/CalculationTabs/ConsumptionTabs/OffConsumptionPanel.cs
@@ -17,8 +17,9 @@ internal class OffConsumptionPanel : ConsumptionPanelBase
// Array reference constants.
private const int Office = 0;
private const int Wall2Wall = 1;
- private const int HighTech = 2;
- private const int NumSubServices = 3;
+ private const int Financial = 2;
+ private const int HighTech = 3;
+ private const int NumSubServices = 4;
private const int NumLevels = 3;
// Label constants.
@@ -26,6 +27,7 @@ internal class OffConsumptionPanel : ConsumptionPanelBase
{
"RPR_CAT_OFF",
"RPR_CAT_OW2",
+ "RPR_CAT_FIN",
"RPR_CAT_ITC",
};
@@ -71,6 +73,8 @@ internal override void Setup()
AddSubService(m_panel, Office);
PanelUtils.RowHeaderIcon(m_panel, ref m_currentY, Translations.Translate(_subServiceLables[Wall2Wall]), "DistrictSpecializationOfficeWallToWall", "Thumbnails");
AddSubService(m_panel, Wall2Wall);
+ PanelUtils.RowHeaderIcon(m_panel, ref m_currentY, Translations.Translate(_subServiceLables[Financial]), "DistrictSpecializationOfficeFinancial", "Thumbnails");
+ AddSubService(m_panel, Financial);
PanelUtils.RowHeaderIcon(m_panel, ref m_currentY, Translations.Translate(_subServiceLables[HighTech]), "IconPolicyHightech", "Ingame");
AddSubService(m_panel, HighTech, label: Translations.Translate(_subServiceLables[HighTech]));
@@ -90,6 +94,7 @@ protected override void PopulateFields()
// Populate each subservice.
PopulateSubService(DataStore.office, Office);
PopulateSubService(DataStore.officeW2W, Wall2Wall);
+ PopulateSubService(DataStore.officeFinancial, Financial);
PopulateSubService(DataStore.officeHighTech, HighTech);
}
@@ -101,6 +106,7 @@ protected override void ApplyFields()
// Apply each subservice.
ApplySubService(DataStore.office, Office);
ApplySubService(DataStore.officeW2W, Wall2Wall);
+ ApplySubService(DataStore.officeFinancial, Financial);
ApplySubService(DataStore.officeHighTech, HighTech);
// Clear cached values.
@@ -133,6 +139,13 @@ protected override void ResetToDefaults()
new int[] { 38, 5, 0, 0, -1, 1, 3, 6, 90, 14, 5, 5, 2, 1250, 0, 1, 10, 50 },
};
+ int[][] officeFinancial =
+ {
+ new int[] { 34, 5, 0, 0, -1, 2, 8, 20, 70, 12, 4, 4, 3, 1000, 0, 1, 10, 25 },
+ new int[] { 36, 5, 0, 0, -1, 1, 5, 14, 80, 13, 5, 5, 3, 1125, 0, 1, 10, 37 },
+ new int[] { 38, 5, 0, 0, -1, 1, 3, 6, 90, 14, 5, 5, 2, 1250, 0, 1, 10, 50 },
+ };
+
int[][] officeHighTech =
{
new int[] { 74, 5, 0, 0, -1, 1, 2, 3, 94, 22, 5, 5, 3, 4000, 0, 1, 10, 10 },
@@ -141,6 +154,7 @@ protected override void ResetToDefaults()
// Populate text fields with these.
PopulateSubService(office, Office);
PopulateSubService(officeW2W, Wall2Wall);
+ PopulateSubService(officeFinancial, Financial);
PopulateSubService(officeHighTech, HighTech);
}
}
diff --git a/Code/Settings/CalculationTabs/DefaultsTabs/OffDefaultsPanel.cs b/Code/Settings/CalculationTabs/DefaultsTabs/OffDefaultsPanel.cs
index e225ad1..53cc6f1 100644
--- a/Code/Settings/CalculationTabs/DefaultsTabs/OffDefaultsPanel.cs
+++ b/Code/Settings/CalculationTabs/DefaultsTabs/OffDefaultsPanel.cs
@@ -18,6 +18,7 @@ internal class OffDefaultsPanel : EmpDefaultsPanel
{
Translations.Translate("RPR_CAT_OFF"),
Translations.Translate("RPR_CAT_OW2"),
+ Translations.Translate("RPR_CAT_FIN"),
Translations.Translate("RPR_CAT_ITC"),
};
@@ -26,12 +27,14 @@ internal class OffDefaultsPanel : EmpDefaultsPanel
ItemClass.Service.Office,
ItemClass.Service.Office,
ItemClass.Service.Office,
+ ItemClass.Service.Office,
};
private readonly ItemClass.SubService[] _subServices =
{
ItemClass.SubService.OfficeGeneric,
ItemClass.SubService.OfficeWallToWall,
+ ItemClass.SubService.OfficeFinancial,
ItemClass.SubService.OfficeHightech,
};
@@ -39,11 +42,13 @@ internal class OffDefaultsPanel : EmpDefaultsPanel
{
"ZoningOffice",
"DistrictSpecializationOfficeWallToWall",
+ "DistrictSpecializationOfficeFinancial",
"IconPolicyHightech",
};
private readonly string[] _atlasNames =
{
+ "Thumbnails",
"Thumbnails",
"Thumbnails",
"Ingame",
diff --git a/Code/Settings/CalculationTabs/GoodsTabs/OffGoodsPanel.cs b/Code/Settings/CalculationTabs/GoodsTabs/OffGoodsPanel.cs
index 32c213b..3559b8e 100644
--- a/Code/Settings/CalculationTabs/GoodsTabs/OffGoodsPanel.cs
+++ b/Code/Settings/CalculationTabs/GoodsTabs/OffGoodsPanel.cs
@@ -19,6 +19,7 @@ internal class OffGoodsPanel : GoodsPanelBase
{
Translations.Translate("RPR_CAT_OFF"),
Translations.Translate("RPR_CAT_OW2"),
+ Translations.Translate("RPR_CAT_FIN"),
Translations.Translate("RPR_CAT_ITC"),
};
@@ -27,12 +28,14 @@ internal class OffGoodsPanel : GoodsPanelBase
ItemClass.Service.Office,
ItemClass.Service.Office,
ItemClass.Service.Office,
+ ItemClass.Service.Office,
};
private readonly ItemClass.SubService[] _subServices =
{
ItemClass.SubService.OfficeGeneric,
ItemClass.SubService.OfficeWallToWall,
+ ItemClass.SubService.OfficeFinancial,
ItemClass.SubService.OfficeHightech,
};
@@ -40,11 +43,13 @@ internal class OffGoodsPanel : GoodsPanelBase
{
"ZoningOffice",
"DistrictSpecializationOfficeWallToWall",
+ "DistrictSpecializationOfficeFinancial",
"IconPolicyHightech",
};
private readonly string[] _atlasNames =
{
+ "Thumbnails",
"Thumbnails",
"Thumbnails",
"Ingame",
diff --git a/Code/Settings/XMLSettingsFile.cs b/Code/Settings/XMLSettingsFile.cs
index f31fb48..068dfb7 100644
--- a/Code/Settings/XMLSettingsFile.cs
+++ b/Code/Settings/XMLSettingsFile.cs
@@ -190,10 +190,10 @@ public bool DefaultLegacy
public bool UnlockZoning { get => UnlockedZonePatch.UnlockZoning; set => UnlockedZonePatch.UnlockZoning = value; }
///
- /// Gets or sets a value indicating whether detailed logging is in effect.
+ /// Sets a value indicating whether detailed logging is in effect (legacy option).
///
- [XmlElement("DetailedLogging")]
- public bool DetailLogging { get => Logging.DetailLogging; set => Logging.DetailLogging = value; }
+ [XmlElement("DetailLogging")]
+ public bool DetailLogging { set => Logging.DetailLogging = value; }
///
/// Load settings from XML file.
diff --git a/Code/Utils/LegacyAIUtils.cs b/Code/Utils/LegacyAIUtils.cs
index 4ac49a9..7b884d7 100644
--- a/Code/Utils/LegacyAIUtils.cs
+++ b/Code/Utils/LegacyAIUtils.cs
@@ -378,6 +378,10 @@ internal static int[] GetOfficeArray(BuildingInfo item, int level)
array = DataStore.officeW2W;
break;
+ case ItemClass.SubService.OfficeFinancial:
+ array = DataStore.officeFinancial;
+ break;
+
case ItemClass.SubService.OfficeGeneric:
default:
break;
diff --git a/Code/VolumetricData/DataMapping.cs b/Code/VolumetricData/DataMapping.cs
index 216caee..869e581 100644
--- a/Code/VolumetricData/DataMapping.cs
+++ b/Code/VolumetricData/DataMapping.cs
@@ -14,7 +14,7 @@ internal class DataMapping
///
/// Number of data structures (service/subservice combinations) to map.
///
- internal const int NumData = 19;
+ internal const int NumData = 20;
///
/// Service reference array.
@@ -53,6 +53,7 @@ internal DataMapping()
ItemClass.Service.Office,
ItemClass.Service.Office,
ItemClass.Service.Office,
+ ItemClass.Service.Office,
ItemClass.Service.Industrial,
ItemClass.Service.Industrial,
ItemClass.Service.Industrial,
@@ -75,6 +76,7 @@ internal DataMapping()
ItemClass.SubService.CommercialLeisure,
ItemClass.SubService.CommercialTourist,
ItemClass.SubService.OfficeGeneric,
+ ItemClass.SubService.OfficeFinancial,
ItemClass.SubService.OfficeWallToWall,
ItemClass.SubService.OfficeHightech,
ItemClass.SubService.IndustrialGeneric,
@@ -100,6 +102,7 @@ internal DataMapping()
DataStore.commercialTourist,
DataStore.office,
DataStore.officeW2W,
+ DataStore.officeFinancial,
DataStore.officeHighTech,
DataStore.industry,
DataStore.industry_farm,
diff --git a/Code/VolumetricData/PopData.cs b/Code/VolumetricData/PopData.cs
index 3d352ca..7bf8059 100644
--- a/Code/VolumetricData/PopData.cs
+++ b/Code/VolumetricData/PopData.cs
@@ -868,7 +868,14 @@ internal override DataPack BaseDefaultPack(ItemClass.Service service, ItemClass.
break;
default:
// Default is volumetric.
- defaultName = "offcorp";
+ if (subService == ItemClass.SubService.OfficeFinancial)
+ {
+ defaultName = "offfin";
+ }
+ else
+ {
+ defaultName = "offcorp";
+ }
break;
}
diff --git a/Code/WhatsNewMessageListing.cs b/Code/WhatsNewMessageListing.cs
index 281d62f..9f7658e 100644
--- a/Code/WhatsNewMessageListing.cs
+++ b/Code/WhatsNewMessageListing.cs
@@ -18,6 +18,15 @@ internal class WhatsNewMessageListing
///
internal WhatsNewMessage[] Messages => new WhatsNewMessage[]
{
+ new WhatsNewMessage
+ {
+ Version = new Version("2.2.2.0"),
+ MessagesAreKeys = true,
+ Messages = new string[]
+ {
+ "RPR_222_0",
+ },
+ },
new WhatsNewMessage
{
Version = new Version("2.2.1.0"),
diff --git a/Code/XML/XML_VersionFive.cs b/Code/XML/XML_VersionFive.cs
index cc482e0..566e2be 100644
--- a/Code/XML/XML_VersionFive.cs
+++ b/Code/XML/XML_VersionFive.cs
@@ -129,6 +129,7 @@ private void ReadPollutionNode(XmlNode pollutionNode)
case "Office":
SetPollutionRates(DataStore.office[level], ground, noise);
SetPollutionRates(DataStore.officeW2W[level], ground, noise);
+ SetPollutionRates(DataStore.officeFinancial[level], ground, noise);
break;
case "Industry":
diff --git a/Code/XML/XML_VersionSix.cs b/Code/XML/XML_VersionSix.cs
index ee0b307..dc28490 100644
--- a/Code/XML/XML_VersionSix.cs
+++ b/Code/XML/XML_VersionSix.cs
@@ -534,6 +534,7 @@ private void ReadPollutionNode(XmlNode pollutionNode)
case "Office":
SetPollutionRates(DataStore.office[level], ground, noise);
SetPollutionRates(DataStore.officeW2W[level], ground, noise);
+ SetPollutionRates(DataStore.officeFinancial[level], ground, noise);
break;
case "Industry":
diff --git a/Realistic Population Revisited.csproj b/Realistic Population Revisited.csproj
index f39c19a..f7b5af3 100644
--- a/Realistic Population Revisited.csproj
+++ b/Realistic Population Revisited.csproj
@@ -8,7 +8,7 @@
algernon,Whitefang Greytail
Copyright © 2015-2022 algernon, Whitefang Greytail
$(Title)
- 2.2.1.1
+ 2.2.2
$(MSBuildProgramFiles32)/Steam/steamapps/common/Cities_Skylines/Cities_Data/Managed
$(AssemblySearchPaths);
diff --git a/Translations/cs-CZ.csv b/Translations/cs-CZ.csv
index 1d3a961..2e54c14 100644
--- a/Translations/cs-CZ.csv
+++ b/Translations/cs-CZ.csv
@@ -62,11 +62,11 @@
"RPR_PCK_FDF_NAM","Obecné"
"RPR_PCK_FDF_DES","Standardní výška podlaží 3m."
"RPR_PCK_FHO_NAM","Samostatné domy"
-"RPR_PCK_FHO_DES","Detached residential dwellings."
+"RPR_PCK_FHO_DES","Samostatně stojící obytné domy."
"RPR_PCK_FDL_NAM","Vstupní haly"
"RPR_PCK_FDL_DES","Budovy se vstupními halami a(nebo) vyvýšenými prvními patry."
"RPR_PCK_FCM_NAM","Komerční"
-"RPR_PCK_FCM_DES","Commercial, office, educational and industrial buildings with higher floor heights."
+"RPR_PCK_FCM_DES","Obchodní, kancelářské, vzdělávací a průmyslové budovy s vyšší výškou podlaží."
"RPR_PCK_FWH_NAM","Sklad"
"RPR_PCK_FWH_DES","Maloobchodní, komerční a průmyslové sklady."
"RPR_PCK_FHB_NAM","High-bay warehouse"
@@ -92,6 +92,7 @@
"RPR_CAT_CW2","Komerční zeď na zeď"
"RPR_CAT_OFF","Kanceláře"
"RPR_CAT_OW2","Kanceláře zeď na zeď"
+"RPR_CAT_FIN","Financial offices"
"RPR_CAT_GEN","Obecné"
"RPR_CAT_ITC","IT klastr"
"RPR_CAT_IND","Průmysl"
@@ -260,7 +261,7 @@
"RPR_OPT_NPK","Nová sada"
"RPR_OPT_MEA","Display figures in US Customary units (instead of metric)"
"RPR_OPT_LDT","Povolit další ladící protokolování"
-"RPR_OPT_ZON","Enable all zoning types from game start"
+"RPR_OPT_ZON","Povolit všechny typy zónování od začátku hry"
"RPR_DEF_DMR","Default residential building calculation mode:"
"RPR_DEF_DMC","Default commercial building calculation mode:"
"RPR_DEF_DMI","Default industrial building calculation mode:"
@@ -286,7 +287,7 @@
"NOTE_CLOSE","Zavřít"
"NOTE_DONTSHOWAGAIN","Znovu nezobrazovat"
"MES_PAGE","Další informace naleznete na stránce módu na Steam Workshopu."
-"RPR_OLD_0","This savefile has not been saved with Realistic Population 2."
+"RPR_OLD_0","Tento uložený soubor nebyl uložen s Realistic Population 2."
"RPR_OLD_1","Please be aware that applying different population calculations to an existing city can temporarily disrupt city balance."
"RPR_OLD_3","Note that in any case, existing residential buildings will retain their existing capacities and households and will NOT be affected, and workers with existing jobs will NOT be immediately displaced from those jobs, so there will be no immediate impact on your city's population."
"RPR_OLD_4","Choose new calculations to immediately apply the mod's standard calculations."
@@ -316,6 +317,7 @@
"RPR_200_9","Významná revize, vyčištění a restrukturalizace kódu módu"
"RPR_201_0","Add option to use US customary measures (feet and square feet) in place of metric measurements"
"RPR_21_0","Kompatibilní s verzí 1.15 (Plazas & Promenades)"
-"RPR_22_0","Plazas & Promenades wall-to-wall building types now have separate settings"
+"RPR_22_0","Plazas & Promenades typy budov zeď na zeď mají nyní samostatné nastavení"
"RPR_22_1","Přidat možnost odemknout všechny typy zónování od začátku hry"
"RPR_221_0","Update commercial goods sales multiplier code"
+"RPR_222_0","Add support for financial offices"
diff --git a/Translations/da-DK.csv b/Translations/da-DK.csv
index d0c1c0c..d1f66df 100644
--- a/Translations/da-DK.csv
+++ b/Translations/da-DK.csv
@@ -92,6 +92,7 @@
"RPR_CAT_CW2","Commercial wall-to-wall"
"RPR_CAT_OFF","Kontor"
"RPR_CAT_OW2","Office wall-to-wall"
+"RPR_CAT_FIN","Financial offices"
"RPR_CAT_GEN","Generisk"
"RPR_CAT_ITC","IT-klynge"
"RPR_CAT_IND","Industrielt"
@@ -319,3 +320,4 @@
"RPR_22_0","Plazas & Promenades wall-to-wall building types now have separate settings"
"RPR_22_1","Add option unlock all zoning types from game start"
"RPR_221_0","Update commercial goods sales multiplier code"
+"RPR_222_0","Add support for financial offices"
diff --git a/Translations/de-DE.csv b/Translations/de-DE.csv
index bc024bd..e964c56 100644
--- a/Translations/de-DE.csv
+++ b/Translations/de-DE.csv
@@ -92,6 +92,7 @@
"RPR_CAT_CW2","Gewerbegebiet Wand-an-Wand"
"RPR_CAT_OFF","Bürogebiet"
"RPR_CAT_OW2","Bürogebiet Wand-an-Wand"
+"RPR_CAT_FIN","Financial offices"
"RPR_CAT_GEN","Allgemein"
"RPR_CAT_ITC","IT-Cluster"
"RPR_CAT_IND","Industrie"
@@ -319,3 +320,4 @@
"RPR_22_0","Plazas & Promenades Wand-an-Wand-Gebäude haben nun separate Einstellungen"
"RPR_22_1","Option hinzugefügt, um alle Zonentypen beim Spielstart zu aktivieren"
"RPR_221_0","Verkaufs-Multiplikator-Code für kommerzielle Waren aktualisiert"
+"RPR_222_0","Add support for financial offices"
diff --git a/Translations/en-EN.csv b/Translations/en-EN.csv
index 0ab8e2e..eb0ca4f 100644
--- a/Translations/en-EN.csv
+++ b/Translations/en-EN.csv
@@ -92,6 +92,7 @@
"RPR_CAT_CW2","Commercial wall-to-wall"
"RPR_CAT_OFF","Office"
"RPR_CAT_OW2","Office wall-to-wall"
+"RPR_CAT_FIN","Financial offices"
"RPR_CAT_GEN","Generic"
"RPR_CAT_ITC","IT Cluster"
"RPR_CAT_IND","Industrial"
@@ -318,4 +319,5 @@
"RPR_21_0","Compatiblility with game version 1.15 (Plazas & Promenades)"
"RPR_22_0","Plazas & Promenades wall-to-wall building types now have separate settings"
"RPR_22_1","Add option unlock all zoning types from game start"
-"RPR_221_0","Update commercial goods sales multiplier code"
\ No newline at end of file
+"RPR_221_0","Update commercial goods sales multiplier code"
+"RPR_222_0","Add support for financial offices"
\ No newline at end of file
diff --git a/Translations/es-ES.csv b/Translations/es-ES.csv
index 8cbdfd3..cd746aa 100644
--- a/Translations/es-ES.csv
+++ b/Translations/es-ES.csv
@@ -92,6 +92,7 @@
"RPR_CAT_CW2","Comercial muro a muro"
"RPR_CAT_OFF","Oficina"
"RPR_CAT_OW2","Oficinas muro a muro"
+"RPR_CAT_FIN","Financial offices"
"RPR_CAT_GEN","Genérico"
"RPR_CAT_ITC","Conglomerado TI"
"RPR_CAT_IND","Industrial"
@@ -319,3 +320,4 @@
"RPR_22_0","Los tipos de edificios pared a pared de Plazas & Promenades ahora tienen configuraciones separadas"
"RPR_22_1","Añade la opción para desbloquear todos los tipos de zonificación desde el inicio del juego"
"RPR_221_0","Update commercial goods sales multiplier code"
+"RPR_222_0","Add support for financial offices"
diff --git a/Translations/fr-FR.csv b/Translations/fr-FR.csv
index acbbcdb..e731caa 100644
--- a/Translations/fr-FR.csv
+++ b/Translations/fr-FR.csv
@@ -92,6 +92,7 @@
"RPR_CAT_CW2","Bâtiments commerciaux mur-à-mur"
"RPR_CAT_OFF","Bureaux"
"RPR_CAT_OW2","Bureaux mur-à-mur"
+"RPR_CAT_FIN","Financial offices"
"RPR_CAT_GEN","Général"
"RPR_CAT_ITC","IT Cluster"
"RPR_CAT_IND","Industriel"
@@ -318,4 +319,5 @@
"RPR_21_0","Compatible avec la version 1.15 du jeu (Plazas & Promenades)"
"RPR_22_0","Les bâtiments mur à mur de Plazas et Promenades ont maintenant des paramètres distincts"
"RPR_22_1","Ajout d'une option pour activer tous les types de zonage quand le jeu démarre"
-"RPR_221_0","Update commercial goods sales multiplier code"
+"RPR_221_0","Mettre à jour le code du multiplicateur des ventes de marchandises commerciales"
+"RPR_222_0","Add support for financial offices"
diff --git a/Translations/ja-JP.csv b/Translations/ja-JP.csv
index 089da80..036ac9f 100644
--- a/Translations/ja-JP.csv
+++ b/Translations/ja-JP.csv
@@ -92,6 +92,7 @@
"RPR_CAT_CW2","連接商業"
"RPR_CAT_OFF","オフィス"
"RPR_CAT_OW2","連接オフィス"
+"RPR_CAT_FIN","金融オフィス"
"RPR_CAT_GEN","一般"
"RPR_CAT_ITC","ITクラスター"
"RPR_CAT_IND","産業"
@@ -319,3 +320,4 @@
"RPR_22_0","Plazas & Promenadesにある連接特化の建物タイプは、個別の設定が可能になりました"
"RPR_22_1","ゲーム開始時に全ての地区とエリアをアンロックするオプションを追加"
"RPR_221_0","商品販売の倍率コードを更新"
+"RPR_222_0","金融オフィスのサポートを追加"
diff --git a/Translations/ko-KR.csv b/Translations/ko-KR.csv
index 1c27d66..a0cc36a 100644
--- a/Translations/ko-KR.csv
+++ b/Translations/ko-KR.csv
@@ -92,6 +92,7 @@
"RPR_CAT_CW2","밀집 상업 건물"
"RPR_CAT_OFF","사무 건물"
"RPR_CAT_OW2","밀집 사무 건물"
+"RPR_CAT_FIN","Financial offices"
"RPR_CAT_GEN","일반 건물"
"RPR_CAT_ITC","IT 클러스터 건물"
"RPR_CAT_IND","산업 건물"
@@ -319,3 +320,4 @@
"RPR_22_0","Plazas & Promenades 밀집 건물들은 이제 독립된 세팅을 적용받음"
"RPR_22_1","게임 시작부터 모든 형태의 영역을 설정할 수 있게 하는 옵션이 추가됨"
"RPR_221_0","Update commercial goods sales multiplier code"
+"RPR_222_0","Add support for financial offices"
diff --git a/Translations/nl-NL.csv b/Translations/nl-NL.csv
index 9d1e5ef..76900b5 100644
--- a/Translations/nl-NL.csv
+++ b/Translations/nl-NL.csv
@@ -92,6 +92,7 @@
"RPR_CAT_CW2","Muur tegen muur (Commercieel)"
"RPR_CAT_OFF","Kantoor"
"RPR_CAT_OW2","Muur tegen muur (Kantoren)"
+"RPR_CAT_FIN","Financial offices"
"RPR_CAT_GEN","Algemeen"
"RPR_CAT_ITC","IT bedrijventerrein"
"RPR_CAT_IND","Industrieel"
@@ -319,3 +320,4 @@
"RPR_22_0","Plazas & Promenades muur tegen muur gebouwen hebben nu aparte instellingen"
"RPR_22_1","Optie toegevoegd om alle zonetypes aan het begin van het spel te activeren"
"RPR_221_0","De code van de verkoopmultiplicator voor commerciële goederen is bijgewerkt"
+"RPR_222_0","Add support for financial offices"
diff --git a/Translations/pt-BR.csv b/Translations/pt-BR.csv
index 69a8978..5d6be8a 100644
--- a/Translations/pt-BR.csv
+++ b/Translations/pt-BR.csv
@@ -92,6 +92,7 @@
"RPR_CAT_CW2","Comercial de parede a parede"
"RPR_CAT_OFF","Escritório"
"RPR_CAT_OW2","Escritório de parede a parede"
+"RPR_CAT_FIN","Escritórios financeiros"
"RPR_CAT_GEN","Genérico"
"RPR_CAT_ITC","Escritórios de TI"
"RPR_CAT_IND","Industrial"
@@ -319,3 +320,4 @@
"RPR_22_0","Os tipos de construção de parede a parede de praças e passeios agora têm configurações separadas"
"RPR_22_1","Adicionar opção desbloquear todos os tipos de zonamento no início do jogo"
"RPR_221_0","Atualizar o código do multiplicador de vendas de bens comerciais"
+"RPR_222_0","Adicione suporte para escritórios financeiros"
diff --git a/Translations/ru-RU.csv b/Translations/ru-RU.csv
index 3e4bae3..294f011 100644
--- a/Translations/ru-RU.csv
+++ b/Translations/ru-RU.csv
@@ -22,7 +22,7 @@
"RPR_PCK_CUS_NAM","Коммерчество США"
"RPR_PCK_CUS_DES","Коммерческая индустрия которую можно найти в США."
"RPR_PCK_CUK_NAM","Коммерчество Англии"
-"RPR_PCK_CUK_DES","General commercial retail density typical of UK."
+"RPR_PCK_CUK_DES","Плотность розничной торговли типичная для Великобритании."
"RPR_PCK_CRW_NAM","Супермаркеты"
"RPR_PCK_CRW_DES","Магазины непродовольственных товаров и розничные склады."
"RPR_PCK_THT_NAM","Гостиницы"
@@ -57,7 +57,7 @@
"RPR_PCK_SMM_DES","Гид Министерства образования Миннесоты - средняя плотность"
"RPR_PCK_SMH_NAM","MN high"
"RPR_PCK_SMH_DES","Гид Министерства образования Миннесоты - самая высокая плотность"
-"RPR_PCK_SUK_NAM","UK standard"
+"RPR_PCK_SUK_NAM","Стандарт Великобритании"
"RPR_PCK_SUK_DES","Стандартные плотности планирования в Великобритании."
"RPR_PCK_FDF_NAM","Generic"
"RPR_PCK_FDF_DES","Стандартные этажи высотой 3 м."
@@ -92,6 +92,7 @@
"RPR_CAT_CW2","Коммерческое ""от стены до стены"""
"RPR_CAT_OFF","Офисы"
"RPR_CAT_OW2","Офис ""от стены до стены"""
+"RPR_CAT_FIN","Финансовые офисы"
"RPR_CAT_GEN","Generic"
"RPR_CAT_ITC","IT"
"RPR_CAT_IND","Промышленные"
@@ -319,3 +320,4 @@
"RPR_22_0","Здания wall-to-wall из Plazas & Promenades теперь имеют отдельные настройки"
"RPR_22_1","Добавлена возможность разблокировать все типы зонирования с самого начала игры"
"RPR_221_0","Обновлён код множителя продаж коммерческих товаров"
+"RPR_222_0","Добавлена поддержка финансовых офисов"
diff --git a/Translations/zh-CN.csv b/Translations/zh-CN.csv
index 267d8b3..728098b 100644
--- a/Translations/zh-CN.csv
+++ b/Translations/zh-CN.csv
@@ -92,6 +92,7 @@
"RPR_CAT_CW2","联排商业"
"RPR_CAT_OFF","办公建筑"
"RPR_CAT_OW2","联排办公"
+"RPR_CAT_FIN","财务办公室"
"RPR_CAT_GEN","一般建筑"
"RPR_CAT_ITC","IT高新产业建筑"
"RPR_CAT_IND","工业建筑"
@@ -319,3 +320,4 @@
"RPR_22_0","Plazas & Promenades 的连续型建筑现在有单独的设置"
"RPR_22_1","添加可以在游戏开始时解锁有所分区类型的选项"
"RPR_221_0","更新商品销售的倍率代码"
+"RPR_222_0","增加对财务处的支持"
diff --git a/Translations/zh-TW.csv b/Translations/zh-TW.csv
index ccc1365..19d21cb 100644
--- a/Translations/zh-TW.csv
+++ b/Translations/zh-TW.csv
@@ -92,6 +92,7 @@
"RPR_CAT_CW2","Commercial wall-to-wall"
"RPR_CAT_OFF","辦公室"
"RPR_CAT_OW2","Office wall-to-wall"
+"RPR_CAT_FIN","Financial offices"
"RPR_CAT_GEN","一般建築"
"RPR_CAT_ITC","專業化IT產業行政專區建築"
"RPR_CAT_IND","工業建築"
@@ -319,3 +320,4 @@
"RPR_22_0","Plazas & Promenades wall-to-wall building types now have separate settings"
"RPR_22_1","Add option unlock all zoning types from game start"
"RPR_221_0","Update commercial goods sales multiplier code"
+"RPR_222_0","Add support for financial offices"