From d36d836bb3a13e69439cf60c6d7a181f7218edf3 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Wed, 22 Sep 2021 22:15:42 -0500 Subject: [PATCH] prevent a null point in LodRegion addData --- .../java/com/seibel/lod/objects/LodRegion.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/seibel/lod/objects/LodRegion.java b/src/main/java/com/seibel/lod/objects/LodRegion.java index dd8ea26df..330ac88f0 100644 --- a/src/main/java/com/seibel/lod/objects/LodRegion.java +++ b/src/main/java/com/seibel/lod/objects/LodRegion.java @@ -2,7 +2,6 @@ package com.seibel.lod.objects; import com.seibel.lod.config.LodConfig; -import com.seibel.lod.enums.DetailDropOff; import com.seibel.lod.enums.DistanceGenerationMode; import com.seibel.lod.enums.LodTemplate; import com.seibel.lod.enums.VerticalQuality; @@ -56,7 +55,7 @@ public class LodRegion dataContainer = new LevelContainer[POSSIBLE_LOD]; - //Initialize all the different matrices + // Initialize all the different matrices for (byte lod = minDetailLevel; lod <= LodUtil.REGION_DETAIL_LEVEL; lod++) { switch (verticalQuality) @@ -96,10 +95,18 @@ public class LodRegion { posX = LevelPosUtil.getRegionModule(detailLevel, posX); posZ = LevelPosUtil.getRegionModule(detailLevel, posZ); - //update the number of nodes present - //if (!doesDataExist(detailLevel, posX, posZ)) numberOfPoints++; - //add the node data + + // For some reason the dataContainer can contain null entries + if (this.dataContainer[detailLevel] == null) + { + if (verticalQuality == VerticalQuality.HEIGHTMAP) + this.dataContainer[detailLevel] = new SingleLevelContainer(detailLevel); + else + this.dataContainer[detailLevel] = new VerticalLevelContainer(detailLevel); + } + this.dataContainer[detailLevel].addData(data, posX, posZ, verticalIndex); + return true; }