From 49799a121ee96db7ecbbc60b0ea6eb6975750425 Mon Sep 17 00:00:00 2001 From: Interkarma Date: Sun, 27 Nov 2022 10:24:14 +1000 Subject: [PATCH] Localize region name in Place Macro4 Requires storing region index in SiteDetails for lookup of localized region name. --- Assets/Scripts/DaggerfallUnityStructs.cs | 5 +++-- Assets/Scripts/Game/Questing/Place.cs | 6 +++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Assets/Scripts/DaggerfallUnityStructs.cs b/Assets/Scripts/DaggerfallUnityStructs.cs index 845e0c07e2..1a20021eb4 100644 --- a/Assets/Scripts/DaggerfallUnityStructs.cs +++ b/Assets/Scripts/DaggerfallUnityStructs.cs @@ -427,8 +427,9 @@ public struct SiteDetails public SiteTypes siteType; // Type of site public int mapId; // MapID of this location public uint locationId; // LocationID of this location - public string regionName; // Name of region containing this location - public string locationName; // Name of exterior location itself + public int regionIndex; // Index of region containing this location + public string regionName; // Canonical name Name of region containing this location + public string locationName; // Canonical Name of exterior location itself public int buildingKey; // Key of building site in this location public string buildingName; // Name of target building, e.g. 'The Odd Blades' public QuestMarker[] questSpawnMarkers; // Array of quest spawn markers (Foe, Person resources) found in site, can be null or empty diff --git a/Assets/Scripts/Game/Questing/Place.cs b/Assets/Scripts/Game/Questing/Place.cs index 36fcedbc7d..a0e8dfd0d8 100644 --- a/Assets/Scripts/Game/Questing/Place.cs +++ b/Assets/Scripts/Game/Questing/Place.cs @@ -268,7 +268,7 @@ public override bool ExpandMacro(MacroTypes macro, out string textOut) break; case MacroTypes.NameMacro4: // Name of region (e.g. Tigonus) - textOut = siteDetails.regionName; + textOut = TextManager.Instance.GetLocalizedRegionName(siteDetails.regionIndex); break; default: // Macro not supported @@ -325,6 +325,7 @@ public bool ConfigureFromPlayerLocation(string symbolName) siteDetails.siteType = siteType; siteDetails.mapId = location.MapTableData.MapId; siteDetails.locationId = location.Exterior.ExteriorData.LocationId; + siteDetails.regionIndex = location.RegionIndex; siteDetails.buildingKey = buildingKey; siteDetails.buildingName = buildingName; siteDetails.regionName = location.RegionName; @@ -893,6 +894,7 @@ bool SelectRemoteDungeonSite(int dungeonTypeIndex) siteDetails.siteType = SiteTypes.Dungeon; siteDetails.mapId = location.MapTableData.MapId; siteDetails.locationId = location.Exterior.ExteriorData.LocationId; + siteDetails.regionIndex = location.RegionIndex; siteDetails.regionName = location.RegionName; siteDetails.locationName = location.Name; siteDetails.questSpawnMarkers = questSpawnMarkers; @@ -939,6 +941,7 @@ bool SelectRemoteLocationExteriorSite(int locationTypeIndex) siteDetails.siteType = SiteTypes.Town; siteDetails.mapId = location.MapTableData.MapId; siteDetails.locationId = location.Exterior.ExteriorData.LocationId; + siteDetails.regionIndex = location.RegionIndex; siteDetails.regionName = location.RegionName; siteDetails.locationName = location.Name; siteDetails.questSpawnMarkers = null; @@ -1059,6 +1062,7 @@ void SetupFixedLocation() siteDetails.siteType = siteType; siteDetails.mapId = location.MapTableData.MapId; siteDetails.locationId = location.Exterior.ExteriorData.LocationId; + siteDetails.regionIndex = location.RegionIndex; siteDetails.regionName = location.RegionName; siteDetails.locationName = location.Name; siteDetails.buildingKey = buildingKey;