diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
index 0f99c70eb3..cce58c203a 100644
--- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
+++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
@@ -66,6 +66,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
m_httpd.AddXmlRPCHandler("admin_shutdown", XmlRpcShutdownMethod);
m_httpd.AddXmlRPCHandler("admin_broadcast", XmlRpcAlertMethod);
m_httpd.AddXmlRPCHandler("admin_restart", XmlRpcRestartMethod);
+ m_httpd.AddXmlRPCHandler("admin_load_heightmap", XmlRpcLoadHeightmapMethod);
}
}
catch (NullReferenceException)
@@ -135,6 +136,44 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
return response;
}
+ public XmlRpcResponse XmlRpcLoadHeightmapMethod(XmlRpcRequest request)
+ {
+ XmlRpcResponse response = new XmlRpcResponse();
+ Hashtable requestData = (Hashtable)request.Params[0];
+
+ Hashtable responseData = new Hashtable();
+ if (requiredPassword != "" &&
+ (!requestData.Contains("password") || (string)requestData["password"] != requiredPassword))
+ {
+ responseData["accepted"] = "false";
+ response.Value = responseData;
+ }
+ else
+ {
+ string file = (string)requestData["filename"];
+ LLUUID regionID = LLUUID.Parse((string)requestData["regionid"]);
+ MainLog.Instance.Verbose("RADMIN", "Terrain Loading: " + file);
+
+ responseData["accepted"] = "true";
+
+ Scene region = null;
+
+ if (m_app.SceneManager.TryGetScene(regionID, out region))
+ {
+ region.LoadWorldMap(file);
+ responseData["success"] = "true";
+ }
+ else
+ {
+ responseData["success"] = "false";
+ responseData["error"] = "1: Unable to get a scene with that name.";
+ }
+ response.Value = responseData;
+ }
+
+ return response;
+ }
+
public XmlRpcResponse XmlRpcShutdownMethod(XmlRpcRequest request)
{
MainLog.Instance.Verbose("RADMIN", "Received Shutdown Administrator Request");
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index d8733f42df..5278202d7c 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -774,6 +774,15 @@ namespace OpenSim.Region.Environment.Scenes
mapTexture.Save(fileName, ImageFormat.Jpeg);
}
+ ///
+ /// Loads a world map from a specified R32 file
+ ///
+ /// A working R32 file
+ public void LoadWorldMap(string filename)
+ {
+ Terrain.LoadFromFileF32(filename);
+ }
+
///
/// Loads the World heightmap
///