diff -Nauwr Irrlicht/CTerrainSceneNode.cpp Irrlicht/CTerrainSceneNode.cpp --- Irrlicht/CTerrainSceneNode.cpp 2005-08-20 22:17:52.000000000 +0200 +++ Irrlicht/CTerrainSceneNode.cpp 2005-11-01 12:55:06.000000000 +0100 @@ -77,27 +77,44 @@ // Get the dimension of the heightmap data TerrainData.Size = heightMap->getDimension().Width; - // Make sure the maximum level of detail is compatible with the heightmap size - if( TerrainData.Size <= 17 && TerrainData.MaxLOD > 1 ) - TerrainData.MaxLOD = 1; - else - if( TerrainData.Size <= 33 && TerrainData.MaxLOD > 2 ) - TerrainData.MaxLOD = 2; - else - if( TerrainData.Size <= 65 && TerrainData.MaxLOD > 3 ) - TerrainData.MaxLOD = 3; - else - if( TerrainData.Size <= 129 && TerrainData.MaxLOD > 4 ) - TerrainData.MaxLOD = 4; - else - if( TerrainData.Size <= 257 && TerrainData.MaxLOD > 4 ) - TerrainData.MaxLOD = 5; - else - if( TerrainData.Size <= 513 && TerrainData.MaxLOD > 6 ) - TerrainData.MaxLOD = 6; - else - if( TerrainData.Size <= 1025 && TerrainData.MaxLOD > 7 ) - TerrainData.MaxLOD = 7; + switch( TerrainData.PatchSize ) + { + case ETPS_9: + if( TerrainData.MaxLOD > 3 ) + { + TerrainData.MaxLOD = 3; + os::Printer::print( "WARNING! Terrain Patch Size is less than or equal to 9 and MaxLOD was greater than 3! Forcing MaxLOD to 3!" ); + } + break; + case ETPS_17: + if( TerrainData.MaxLOD > 4 ) + { + TerrainData.MaxLOD = 4; + os::Printer::print( "WARNING! Terrain Patch Size is less than or equal to 17 and MaxLOD was greater than 4! Forcing MaxLOD to 4!" ); + } + break; + case ETPS_33: + if( TerrainData.MaxLOD > 5 ) + { + TerrainData.MaxLOD = 5; + os::Printer::print( "WARNING! Terrain Patch Size is less than or equal to 33 and MaxLOD was greater than 5! Forcing MaxLOD to 5!" ); + } + break; + case ETPS_65: + if( TerrainData.MaxLOD > 6 ) + { + TerrainData.MaxLOD = 6; + os::Printer::print( "WARNING! Terrain Patch Size is less than or equal to 65 and MaxLOD was greater than 6! Forcing MaxLOD to 6!" ); + } + break; + case ETPS_129: + if( TerrainData.MaxLOD > 7 ) + { + TerrainData.MaxLOD = 7; + os::Printer::print( "WARNING! Terrain Patch Size is less than or equal to 129 and MaxLOD was greater than 7! Forcing MaxLOD to 7!" ); + } + break; + } // --- Generate vertex data from heightmap ---- // resize the vertex array for the mesh buffer one time ( makes loading faster )