From 4301d0f0755c294d5f226629727d33c0ea30eea8 Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Wed, 20 Jun 2007 21:24:00 +0000 Subject: [PATCH] * Added support for "revert" and "bake" commands on terrain console * Implemented "IMG" load method for "terrain load" - supports PNG, BMP, TIFF, TGA and probably a handful of other formats. --- .../TerrainEngine.cs | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs b/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs index c78af058dc..9cd80992e1 100644 --- a/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs +++ b/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs @@ -149,6 +149,24 @@ namespace OpenSim.Terrain tainted++; } + /// + /// Swaps the two heightmap buffers (the 'revert map' and the heightmap) + /// + public void swapRevertMaps() + { + Channel backup = heightmap.copy(); + heightmap = revertmap; + revertmap = backup; + } + + /// + /// Saves the current heightmap into the revertmap + /// + public void saveRevertMap() + { + revertmap = heightmap.copy(); + } + /// /// Processes a terrain-specific command /// @@ -175,8 +193,19 @@ namespace OpenSim.Terrain resultText += "terrain erode aerobic \n"; resultText += "terrain erode thermal \n"; resultText += "terrain multiply - multiplies a terrain by \n"; + resultText += "terrain revert - reverts the terrain to the stored original"; + resultText += "terrain bake - saves the current terrain into the revert map"; return false; + case "revert": + swapRevertMaps(); + saveRevertMap(); + break; + + case "bake": + saveRevertMap(); + break; + case "seed": setSeed(Convert.ToInt32(args[1])); break; @@ -222,7 +251,7 @@ namespace OpenSim.Terrain break; case "img": - resultText = "Error - IMG mode is presently unsupported."; + heightmap.loadImage(args[2]); return false; default: