Skip to content

Commit 3c6dec7

Browse files
authored
Handle a province not being defined when checking if it's land (#2796) #patch
Sentry event ID: 4d358024d83146599d1806b18c40822d
1 parent 6e3dbca commit 3c6dec7

File tree

1 file changed

+42
-5
lines changed

1 file changed

+42
-5
lines changed

ImperatorToCK3/CommonUtils/Map/MapData.cs

Lines changed: 42 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -196,13 +196,50 @@ public IReadOnlySet<ulong> GetNeighborProvinceIds(ulong provinceId) {
196196
return NeighborsDict.TryGetValue(provinceId, out var neighbors) ? neighbors : [];
197197
}
198198

199-
public bool IsColorableImpassable(ulong provinceId) => ProvinceDefinitions.TryGetValue(provinceId, out var province) && province.IsColorableImpassable;
199+
public bool IsColorableImpassable(ulong provinceId) {
200+
if (ProvinceDefinitions.TryGetValue(provinceId, out var province)) {
201+
return province.IsColorableImpassable;
202+
}
203+
204+
Logger.Warn($"Province {provinceId} has no definition!");
205+
return false;
206+
}
207+
208+
public bool IsImpassable(ulong provinceId) {
209+
if (ProvinceDefinitions.TryGetValue(provinceId, out var province)) {
210+
return province.IsImpassable;
211+
}
212+
213+
Logger.Warn($"Province {provinceId} has no definition!");
214+
return false;
215+
}
216+
217+
private bool IsStaticWater(ulong provinceId) {
218+
if (ProvinceDefinitions.TryGetValue(provinceId, out var province)) {
219+
return province.IsStaticWater;
220+
}
200221

201-
public bool IsImpassable(ulong provinceId) => ProvinceDefinitions.TryGetValue(provinceId, out var province) && province.IsImpassable;
222+
Logger.Warn($"Province {provinceId} has no definition!");
223+
return false;
224+
}
225+
226+
private bool IsRiver(ulong provinceId) {
227+
if (ProvinceDefinitions.TryGetValue(provinceId, out var province)) {
228+
return province.IsRiver;
229+
}
202230

203-
private bool IsStaticWater(ulong provinceId) => ProvinceDefinitions[provinceId].IsStaticWater;
204-
private bool IsRiver(ulong provinceId) => ProvinceDefinitions[provinceId].IsRiver;
205-
internal bool IsLand(ulong provinceId) => ProvinceDefinitions[provinceId].IsLand;
231+
Logger.Warn($"Province {provinceId} has no definition!");
232+
return false;
233+
}
234+
235+
internal bool IsLand(ulong provinceId) {
236+
if (ProvinceDefinitions.TryGetValue(provinceId, out var province)) {
237+
return province.IsLand;
238+
}
239+
240+
Logger.Warn($"Province {provinceId} has no definition!");
241+
return false;
242+
}
206243

207244
public FrozenSet<ulong> ColorableImpassableProvinceIds => ProvinceDefinitions
208245
.Where(p => p.IsColorableImpassable).Select(p => p.Id)

0 commit comments

Comments
 (0)