diff --git a/.nant/local.include b/.nant/local.include
index f78c6a6987..5e02665f2a 100644
--- a/.nant/local.include
+++ b/.nant/local.include
@@ -58,10 +58,12 @@
+
@@ -115,16 +117,18 @@
+
@@ -238,10 +242,12 @@
+
@@ -271,7 +277,7 @@
-
+
diff --git a/OpenSim/Framework/AvatarAppearance.cs b/OpenSim/Framework/AvatarAppearance.cs
index 3f4214e580..56fcc150aa 100644
--- a/OpenSim/Framework/AvatarAppearance.cs
+++ b/OpenSim/Framework/AvatarAppearance.cs
@@ -66,6 +66,8 @@ namespace OpenSim.Framework
private static UUID SHIRT_ITEM = new UUID("77c41e39-38f9-f75a-0000-585989bf0000");
private static UUID PANTS_ASSET = new UUID("00000000-38f9-1111-024e-222222111120");
private static UUID PANTS_ITEM = new UUID("77c41e39-38f9-f75a-0000-5859892f1111");
+ private static UUID HAIR_ASSET = new UUID("d342e6c0-b9d2-11dc-95ff-0800200c9a66");
+ private static UUID HAIR_ITEM = new UUID("d342e6c1-b9d2-11dc-95ff-0800200c9a66");
public readonly static int VISUALPARAM_COUNT = 218;
@@ -238,6 +240,8 @@ namespace OpenSim.Framework
m_wearables[BODY].ItemID = BODY_ITEM;
m_wearables[SKIN].AssetID = SKIN_ASSET;
m_wearables[SKIN].ItemID = SKIN_ITEM;
+ m_wearables[HAIR].AssetID = HAIR_ASSET;
+ m_wearables[HAIR].ItemID = HAIR_ITEM;
m_wearables[SHIRT].AssetID = SHIRT_ASSET;
m_wearables[SHIRT].ItemID = SHIRT_ITEM;
m_wearables[PANTS].AssetID = PANTS_ASSET;
diff --git a/OpenSim/Framework/AvatarWearable.cs b/OpenSim/Framework/AvatarWearable.cs
index 4a5253ceb3..87d9e617b8 100644
--- a/OpenSim/Framework/AvatarWearable.cs
+++ b/OpenSim/Framework/AvatarWearable.cs
@@ -60,6 +60,10 @@ namespace OpenSim.Framework
// Body
defaultWearables[0].ItemID = new UUID("66c41e39-38f9-f75a-024e-585989bfaba9");
defaultWearables[0].AssetID = new UUID("66c41e39-38f9-f75a-024e-585989bfab73");
+
+ // Hair
+ defaultWearables[2].ItemID = new UUID("d342e6c1-b9d2-11dc-95ff-0800200c9a66");
+ defaultWearables[2].AssetID = new UUID("d342e6c0-b9d2-11dc-95ff-0800200c9a66");
// Skin
defaultWearables[1].ItemID = new UUID("77c41e39-38f9-f75a-024e-585989bfabc9");
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index 4592c318b5..3df3a1cb47 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -459,7 +459,8 @@ namespace OpenSim
scene.DeleteAllSceneObjects();
m_sceneManager.CloseScene(scene);
-
+ ShutdownClientServer(scene.RegionInfo);
+
if (!cleanup)
return;
@@ -519,7 +520,7 @@ namespace OpenSim
}
m_sceneManager.CloseScene(scene);
-
+ ShutdownClientServer(scene.RegionInfo);
}
///
@@ -653,12 +654,10 @@ namespace OpenSim
storageManager, m_moduleLoader, false, m_configSettings.PhysicalPrim,
m_configSettings.See_into_region_from_neighbor, m_config.Source, m_version);
}
-
- public void handleRestartRegion(RegionInfo whichRegion)
+
+ protected void ShutdownClientServer(RegionInfo whichRegion)
{
- m_log.Info("[OPENSIM]: Got restart signal from SceneManager");
-
- // Shutting down the client server
+ // Close and remove the clientserver for a region
bool foundClientServer = false;
int clientServerElement = 0;
Location location = new Location(whichRegion.RegionHandle);
@@ -678,6 +677,13 @@ namespace OpenSim
m_clientServers[clientServerElement].NetworkStop();
m_clientServers.RemoveAt(clientServerElement);
}
+ }
+
+ public void handleRestartRegion(RegionInfo whichRegion)
+ {
+ m_log.Info("[OPENSIM]: Got restart signal from SceneManager");
+
+ ShutdownClientServer(whichRegion);
IScene scene;
CreateRegion(whichRegion, true, out scene);
}
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
index e6951337e6..847da8c194 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
@@ -642,7 +642,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
m_ScriptErrorMessage += "Failed to compile script in object: '" + part.ParentGroup.RootPart.Name + "' Script name: '" + item.Name + "' Error message: " + e.Message.ToString();
m_ScriptFailCount++;
- string text = "Error compiling script:\n" + e.Message.ToString();
+ string text = "Error compiling script '" + item.Name + "':\n" + e.Message.ToString();
if (text.Length > 1000)
text = text.Substring(0, 1000);
World.SimChat(Utils.StringToBytes(text),