diff --git a/src/main/java/com/seibel/lod/objects/LodRegion.java b/src/main/java/com/seibel/lod/objects/LodRegion.java index f76a78885..29f5ed7a9 100644 --- a/src/main/java/com/seibel/lod/objects/LodRegion.java +++ b/src/main/java/com/seibel/lod/objects/LodRegion.java @@ -59,7 +59,7 @@ public class LodRegion /*if(twoDimension){ dataContainer[lod] = new SingleLevelContainer(lod); }else{ - dataContainer[lod] = new VerticalLevelContainer(lod); + dataContainer[lod] = new VerticalLevelContainer.java(lod); }*/ } } @@ -132,11 +132,11 @@ public class LodRegion int childSize = 1 << (LodUtil.REGION_DETAIL_LEVEL - childDetailLevel); //we have reached the target detail level - - if (DetailDistanceUtil.getDistanceGenerationInverse(maxDistance) > detailLevel) + byte targetDetailLevel = DetailDistanceUtil.getLodGenDetail(DetailDistanceUtil.getDistanceGenerationInverse(maxDistance)).detailLevel; + if (targetDetailLevel > detailLevel) { return; - } else if (DetailDistanceUtil.getDistanceGenerationInverse(maxDistance) == detailLevel) + } else if (targetDetailLevel == detailLevel) { if (!doesDataExist(detailLevel, posX, posZ)) { diff --git a/src/main/java/com/seibel/lod/util/DetailDistanceUtil.java b/src/main/java/com/seibel/lod/util/DetailDistanceUtil.java index 3e631eef7..a98fc9ec5 100644 --- a/src/main/java/com/seibel/lod/util/DetailDistanceUtil.java +++ b/src/main/java/com/seibel/lod/util/DetailDistanceUtil.java @@ -160,7 +160,13 @@ public class DetailDistanceUtil public static byte getLodDrawDetail(int detail) { - return (byte) Math.max(detail, minDrawDetail); + if (detail < minGenDetail) + { + return lodGenDetails[minGenDetail].detailLevel; + } else + { + return lodGenDetails[detail].detailLevel; + } } public static LodDetail getLodGenDetail(int detail)