diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/World/LegacyMap/TexturedMapTileRenderer.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/World/LegacyMap/TexturedMapTileRenderer.cs | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/World/LegacyMap/TexturedMapTileRenderer.cs b/OpenSim/Region/CoreModules/World/LegacyMap/TexturedMapTileRenderer.cs index 9f23141..a9cc993 100644 --- a/OpenSim/Region/CoreModules/World/LegacyMap/TexturedMapTileRenderer.cs +++ b/OpenSim/Region/CoreModules/World/LegacyMap/TexturedMapTileRenderer.cs | |||
@@ -270,8 +270,14 @@ namespace OpenSim.Region.CoreModules.World.LegacyMap | |||
270 | 270 | ||
271 | // the heigthfield might have some jumps in values. Rendered land is smooth, though, | 271 | // the heigthfield might have some jumps in values. Rendered land is smooth, though, |
272 | // as a slope is rendered at that place. So average 4 neighbour values to emulate that. | 272 | // as a slope is rendered at that place. So average 4 neighbour values to emulate that. |
273 | <<<<<<< HEAD | ||
273 | private float getHeight(ITerrainChannel hm, int x, int y) { | 274 | private float getHeight(ITerrainChannel hm, int x, int y) { |
274 | if (x < (hm.Width - 1) && y < (hm.Height - 1)) | 275 | if (x < (hm.Width - 1) && y < (hm.Height - 1)) |
276 | ======= | ||
277 | private float getHeight(ITerrainChannel hm, int x, int y) | ||
278 | { | ||
279 | if (x < ((int)Constants.RegionSize - 1) && y < ((int)Constants.RegionSize - 1)) | ||
280 | >>>>>>> avn/ubitvar | ||
275 | return (float)(hm[x, y] * .444 + (hm[x + 1, y] + hm[x, y + 1]) * .222 + hm[x + 1, y +1] * .112); | 281 | return (float)(hm[x, y] * .444 + (hm[x + 1, y] + hm[x, y + 1]) * .222 + hm[x + 1, y +1] * .112); |
276 | else | 282 | else |
277 | return (float)hm[x, y]; | 283 | return (float)hm[x, y]; |
@@ -291,6 +297,14 @@ namespace OpenSim.Region.CoreModules.World.LegacyMap | |||
291 | LogHeader, mapbmp.Width, mapbmp.Height, hm.Width, hm.Height); | 297 | LogHeader, mapbmp.Width, mapbmp.Height, hm.Width, hm.Height); |
292 | } | 298 | } |
293 | 299 | ||
300 | ITerrainChannel hm = m_scene.Heightmap; | ||
301 | |||
302 | if (mapbmp.Width != hm.Width || mapbmp.Height != hm.Height) | ||
303 | { | ||
304 | m_log.ErrorFormat("{0} TerrainToBitmap. Passed bitmap wrong dimensions. passed=<{1},{2}>, size=<{3},{4}>", | ||
305 | "[TEXTURED MAP TILE RENDERER]", mapbmp.Width, mapbmp.Height, hm.Width, hm.Height); | ||
306 | } | ||
307 | |||
294 | // These textures should be in the AssetCache anyway, as every client conneting to this | 308 | // These textures should be in the AssetCache anyway, as every client conneting to this |
295 | // region needs them. Except on start, when the map is recreated (before anyone connected), | 309 | // region needs them. Except on start, when the map is recreated (before anyone connected), |
296 | // and on change of the estate settings (textures and terrain values), when the map should | 310 | // and on change of the estate settings (textures and terrain values), when the map should |
@@ -371,8 +385,8 @@ namespace OpenSim.Region.CoreModules.World.LegacyMap | |||
371 | // first, rescale h to 0.0 - 1.0 | 385 | // first, rescale h to 0.0 - 1.0 |
372 | hmod = (hmod - low) / (high - low); | 386 | hmod = (hmod - low) / (high - low); |
373 | // now we have to split: 0.00 => color1, 0.33 => color2, 0.67 => color3, 1.00 => color4 | 387 | // now we have to split: 0.00 => color1, 0.33 => color2, 0.67 => color3, 1.00 => color4 |
374 | if (hmod < 1f/3f) hsv = interpolateHSV(ref hsv1, ref hsv2, hmod * 3f); | 388 | if (hmod < 1f / 3f) hsv = interpolateHSV(ref hsv1, ref hsv2, hmod * 3f); |
375 | else if (hmod < 2f/3f) hsv = interpolateHSV(ref hsv2, ref hsv3, (hmod * 3f) - 1f); | 389 | else if (hmod < 2f / 3f) hsv = interpolateHSV(ref hsv2, ref hsv3, (hmod * 3f) - 1f); |
376 | else hsv = interpolateHSV(ref hsv3, ref hsv4, (hmod * 3f) - 2f); | 390 | else hsv = interpolateHSV(ref hsv3, ref hsv4, (hmod * 3f) - 2f); |
377 | } | 391 | } |
378 | 392 | ||