diff --git a/Source/Game/Scenarios/ScenarioManager.cs b/Source/Game/Scenarios/ScenarioManager.cs index 7ac0334c4..a0e3a070d 100644 --- a/Source/Game/Scenarios/ScenarioManager.cs +++ b/Source/Game/Scenarios/ScenarioManager.cs @@ -167,7 +167,7 @@ namespace Game.Scenarios if (!points.IsEmpty()) { // The first result should have the highest criteriaTreeId - uint criteriaTreeIdMax = result.Read(0); + uint criteriaTreeIdMax = points.Read(0); POIs = new List[criteriaTreeIdMax + 1][]; do @@ -177,9 +177,12 @@ namespace Game.Scenarios int X = points.Read(2); int Y = points.Read(3); - if (POIs[CriteriaTreeID].Length <= Idx1 + 1) + if (POIs[CriteriaTreeID] == null) POIs[CriteriaTreeID] = new List[Idx1 + 10]; + if (POIs[CriteriaTreeID][Idx1] == null) + POIs[CriteriaTreeID][Idx1] = new List(); + POIs[CriteriaTreeID][Idx1].Add(new Vector2(X, Y)); } while (points.NextRow()); }