aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs27
-rw-r--r--OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs4
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs15
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs12
-rw-r--r--OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs7
-rw-r--r--OpenSim/Region/Physics/Manager/IMesher.cs2
-rw-r--r--OpenSim/Region/Physics/Meshing/Mesh.cs6
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODECharacter.cs25
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODEPrim.cs4
-rw-r--r--OpenSim/Region/Physics/OdePlugin/OdePlugin.cs23
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs13
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/XEngine.cs45
12 files changed, 145 insertions, 38 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 4b27fa2..05a2a63 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -9969,11 +9969,28 @@ namespace OpenSim.Region.ClientStack.LindenUDP
9969 Utils.BytesToString(avatarNotesUpdate.Data.Notes)); 9969 Utils.BytesToString(avatarNotesUpdate.Data.Notes));
9970 break; 9970 break;
9971 9971
9972// case PacketType.AvatarInterestsUpdate: 9972 case PacketType.AvatarInterestsUpdate:
9973// AvatarInterestsUpdatePacket avatarInterestUpdate = 9973 AvatarInterestsUpdatePacket avatarInterestUpdate =
9974// (AvatarInterestsUpdatePacket)Pack; 9974 (AvatarInterestsUpdatePacket)Pack;
9975// 9975
9976// break; 9976 #region Packet Session and User Check
9977 if (m_checkPackets)
9978 {
9979 if (avatarInterestUpdate.AgentData.SessionID != SessionId ||
9980 avatarInterestUpdate.AgentData.AgentID != AgentId)
9981 break;
9982 }
9983 #endregion
9984
9985 AvatarInterestUpdate handlerAvatarInterestUpdate = OnAvatarInterestUpdate;
9986 if (handlerAvatarInterestUpdate != null)
9987 handlerAvatarInterestUpdate(this,
9988 avatarInterestUpdate.PropertiesData.WantToMask,
9989 Utils.BytesToString(avatarInterestUpdate.PropertiesData.WantToText),
9990 avatarInterestUpdate.PropertiesData.SkillsMask,
9991 Utils.BytesToString(avatarInterestUpdate.PropertiesData.SkillsText),
9992 Utils.BytesToString(avatarInterestUpdate.PropertiesData.LanguagesText));
9993 break;
9977 9994
9978 case PacketType.PlacesQuery: 9995 case PacketType.PlacesQuery:
9979 PlacesQueryPacket placesQueryPacket = 9996 PlacesQueryPacket placesQueryPacket =
diff --git a/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs b/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs
index 4041b63..5ca4178 100644
--- a/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs
+++ b/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs
@@ -730,7 +730,7 @@ namespace Flotsam.RegionModules.AssetCache
730 int fileCount = GetFileCacheCount(m_CacheDirectory); 730 int fileCount = GetFileCacheCount(m_CacheDirectory);
731 m_log.InfoFormat("[FLOTSAM ASSET CACHE] File Cache : {0} assets", fileCount); 731 m_log.InfoFormat("[FLOTSAM ASSET CACHE] File Cache : {0} assets", fileCount);
732 732
733 foreach ( string s in Directory.GetFiles(m_CacheDirectory, "*.fac" ) ) 733 foreach (string s in Directory.GetFiles(m_CacheDirectory, "*.fac"))
734 { 734 {
735 m_log.Info("[FLOTSAM ASSET CACHE] Deep Scans were performed on the following regions:"); 735 m_log.Info("[FLOTSAM ASSET CACHE] Deep Scans were performed on the following regions:");
736 736
@@ -770,7 +770,7 @@ namespace Flotsam.RegionModules.AssetCache
770 int assetsCached = CacheScenes(); 770 int assetsCached = CacheScenes();
771 m_log.InfoFormat("[FLOTSAM ASSET CACHE] Completed Scene Caching, {0} assets found.", assetsCached); 771 m_log.InfoFormat("[FLOTSAM ASSET CACHE] Completed Scene Caching, {0} assets found.", assetsCached);
772 772
773 }); 773 });
774 774
775 break; 775 break;
776 776
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 4c7850f..cc74f26 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -128,6 +128,7 @@ namespace OpenSim.Region.Framework.Scenes
128 public CommunicationsManager CommsManager; 128 public CommunicationsManager CommsManager;
129 129
130 protected SceneCommunicationService m_sceneGridService; 130 protected SceneCommunicationService m_sceneGridService;
131 public bool loginsdisabled = true;
131 132
132 public SceneCommunicationService SceneGridService 133 public SceneCommunicationService SceneGridService
133 { 134 {
@@ -1062,6 +1063,11 @@ namespace OpenSim.Region.Framework.Scenes
1062 StatsReporter.SetActiveScripts(m_sceneGraph.GetActiveScriptsCount()); 1063 StatsReporter.SetActiveScripts(m_sceneGraph.GetActiveScriptsCount());
1063 StatsReporter.addScriptLines(m_sceneGraph.GetScriptLPS()); 1064 StatsReporter.addScriptLines(m_sceneGraph.GetScriptLPS());
1064 } 1065 }
1066 if (loginsdisabled && (m_frame > 20))
1067 {
1068 m_log.Debug("[REGION]: Enabling Logins");
1069 loginsdisabled = false;
1070 }
1065 } 1071 }
1066 catch (NotImplementedException) 1072 catch (NotImplementedException)
1067 { 1073 {
@@ -1110,13 +1116,13 @@ namespace OpenSim.Region.Framework.Scenes
1110 1116
1111 public void AddGroupTarget(SceneObjectGroup grp) 1117 public void AddGroupTarget(SceneObjectGroup grp)
1112 { 1118 {
1113 lock(m_groupsWithTargets) 1119 lock (m_groupsWithTargets)
1114 m_groupsWithTargets[grp.UUID] = grp; 1120 m_groupsWithTargets[grp.UUID] = grp;
1115 } 1121 }
1116 1122
1117 public void RemoveGroupTarget(SceneObjectGroup grp) 1123 public void RemoveGroupTarget(SceneObjectGroup grp)
1118 { 1124 {
1119 lock(m_groupsWithTargets) 1125 lock (m_groupsWithTargets)
1120 m_groupsWithTargets.Remove(grp.UUID); 1126 m_groupsWithTargets.Remove(grp.UUID);
1121 } 1127 }
1122 1128
@@ -3227,6 +3233,11 @@ namespace OpenSim.Region.Framework.Scenes
3227 /// also return a reason.</returns> 3233 /// also return a reason.</returns>
3228 public bool NewUserConnection(AgentCircuitData agent, out string reason) 3234 public bool NewUserConnection(AgentCircuitData agent, out string reason)
3229 { 3235 {
3236 if (loginsdisabled)
3237 {
3238 reason = "Logins Disabled";
3239 return false;
3240 }
3230 // Don't disable this log message - it's too helpful 3241 // Don't disable this log message - it's too helpful
3231 m_log.InfoFormat( 3242 m_log.InfoFormat(
3232 "[CONNECTION BEGIN]: Region {0} told of incoming {1} agent {2} {3} {4} (circuit code {5})", 3243 "[CONNECTION BEGIN]: Region {0} told of incoming {1} agent {2} {3} {4} (circuit code {5})",
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 646a483..c25fa55 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -908,6 +908,7 @@ namespace OpenSim.Region.Framework.Scenes
908 if (PhysicsActor != null) 908 if (PhysicsActor != null)
909 { 909 {
910 m_physicsActor.OnRequestTerseUpdate -= SendTerseUpdateToAllClients; 910 m_physicsActor.OnRequestTerseUpdate -= SendTerseUpdateToAllClients;
911 m_physicsActor.OnOutOfBounds -= OutOfBoundsCall;
911 m_scene.PhysicsScene.RemoveAvatar(PhysicsActor); 912 m_scene.PhysicsScene.RemoveAvatar(PhysicsActor);
912 m_physicsActor.UnSubscribeEvents(); 913 m_physicsActor.UnSubscribeEvents();
913 m_physicsActor.OnCollisionUpdate -= PhysicsCollisionUpdate; 914 m_physicsActor.OnCollisionUpdate -= PhysicsCollisionUpdate;
@@ -3410,11 +3411,22 @@ namespace OpenSim.Region.Framework.Scenes
3410 scene.AddPhysicsActorTaint(m_physicsActor); 3411 scene.AddPhysicsActorTaint(m_physicsActor);
3411 //m_physicsActor.OnRequestTerseUpdate += SendTerseUpdateToAllClients; 3412 //m_physicsActor.OnRequestTerseUpdate += SendTerseUpdateToAllClients;
3412 m_physicsActor.OnCollisionUpdate += PhysicsCollisionUpdate; 3413 m_physicsActor.OnCollisionUpdate += PhysicsCollisionUpdate;
3414 m_physicsActor.OnOutOfBounds += OutOfBoundsCall; // Called for PhysicsActors when there's something wrong
3413 m_physicsActor.SubscribeEvents(500); 3415 m_physicsActor.SubscribeEvents(500);
3414 m_physicsActor.LocalID = LocalId; 3416 m_physicsActor.LocalID = LocalId;
3415 3417
3416 } 3418 }
3417 3419
3420 private void OutOfBoundsCall(PhysicsVector pos)
3421 {
3422 //bool flying = m_physicsActor.Flying;
3423 //RemoveFromPhysicalScene();
3424
3425 //AddToPhysicalScene(flying);
3426 if (ControllingClient != null)
3427 ControllingClient.SendAgentAlertMessage("Physics is having a problem with your avatar. You may not be able to move until you relog.",true);
3428 }
3429
3418 // Event called by the physics plugin to tell the avatar about a collision. 3430 // Event called by the physics plugin to tell the avatar about a collision.
3419 private void PhysicsCollisionUpdate(EventArgs e) 3431 private void PhysicsCollisionUpdate(EventArgs e)
3420 { 3432 {
diff --git a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
index a8acf0d..434da0a 100644
--- a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
+++ b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
@@ -831,7 +831,9 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
831 public event PickInfoUpdate OnPickInfoUpdate; 831 public event PickInfoUpdate OnPickInfoUpdate;
832 public event AvatarNotesUpdate OnAvatarNotesUpdate; 832 public event AvatarNotesUpdate OnAvatarNotesUpdate;
833 public event MuteListRequest OnMuteListRequest; 833 public event MuteListRequest OnMuteListRequest;
834 public event AvatarInterestUpdate OnAvatarInterestUpdate;
834 public event PlacesQuery OnPlacesQuery; 835 public event PlacesQuery OnPlacesQuery;
836
835#pragma warning restore 67 837#pragma warning restore 67
836 838
837 public void SetDebugPacketLevel(int newDebug) 839 public void SetDebugPacketLevel(int newDebug)
@@ -1570,6 +1572,11 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
1570 1572
1571 } 1573 }
1572 1574
1575 public void SendAvatarInterestUpdate(IClientAPI client, uint wantmask, string wanttext, uint skillsmask, string skillstext, string languages)
1576 {
1577
1578 }
1579
1573 public void SendParcelDwellReply(int localID, UUID parcelID, float dwell) 1580 public void SendParcelDwellReply(int localID, UUID parcelID, float dwell)
1574 { 1581 {
1575 1582
diff --git a/OpenSim/Region/Physics/Manager/IMesher.cs b/OpenSim/Region/Physics/Manager/IMesher.cs
index ac14292..1a8c948 100644
--- a/OpenSim/Region/Physics/Manager/IMesher.cs
+++ b/OpenSim/Region/Physics/Manager/IMesher.cs
@@ -48,7 +48,7 @@ namespace OpenSim.Region.Physics.Manager
48 int[] getIndexListAsIntLocked(); 48 int[] getIndexListAsIntLocked();
49 float[] getVertexListAsFloatLocked(); 49 float[] getVertexListAsFloatLocked();
50 void getIndexListAsPtrToIntArray(out IntPtr indices, out int triStride, out int indexCount); 50 void getIndexListAsPtrToIntArray(out IntPtr indices, out int triStride, out int indexCount);
51 void getVertexListAsPtrToFloatArray( out IntPtr vertexList, out int vertexStride, out int vertexCount ); 51 void getVertexListAsPtrToFloatArray(out IntPtr vertexList, out int vertexStride, out int vertexCount);
52 void releaseSourceMeshData(); 52 void releaseSourceMeshData();
53 void releasePinned(); 53 void releasePinned();
54 void Append(IMesh newMesh); 54 void Append(IMesh newMesh);
diff --git a/OpenSim/Region/Physics/Meshing/Mesh.cs b/OpenSim/Region/Physics/Meshing/Mesh.cs
index 94d926a..4c3cf33 100644
--- a/OpenSim/Region/Physics/Meshing/Mesh.cs
+++ b/OpenSim/Region/Physics/Meshing/Mesh.cs
@@ -70,7 +70,7 @@ namespace OpenSim.Region.Physics.Meshing
70 throw new NotSupportedException("Attempt to Add to a pinned Mesh"); 70 throw new NotSupportedException("Attempt to Add to a pinned Mesh");
71 // If a vertex of the triangle is not yet in the vertices list, 71 // If a vertex of the triangle is not yet in the vertices list,
72 // add it and set its index to the current index count 72 // add it and set its index to the current index count
73 if( !m_vertices.ContainsKey(triangle.v1) ) 73 if (!m_vertices.ContainsKey(triangle.v1))
74 m_vertices[triangle.v1] = m_vertices.Count; 74 m_vertices[triangle.v1] = m_vertices.Count;
75 if (!m_vertices.ContainsKey(triangle.v2)) 75 if (!m_vertices.ContainsKey(triangle.v2))
76 m_vertices[triangle.v2] = m_vertices.Count; 76 m_vertices[triangle.v2] = m_vertices.Count;
@@ -153,7 +153,7 @@ namespace OpenSim.Region.Physics.Meshing
153 153
154 private float[] getVertexListAsFloat() 154 private float[] getVertexListAsFloat()
155 { 155 {
156 if(m_vertices == null) 156 if (m_vertices == null)
157 throw new NotSupportedException(); 157 throw new NotSupportedException();
158 float[] result = new float[m_vertices.Count * 3]; 158 float[] result = new float[m_vertices.Count * 3];
159 foreach (KeyValuePair<Vertex, int> kvp in m_vertices) 159 foreach (KeyValuePair<Vertex, int> kvp in m_vertices)
@@ -169,7 +169,7 @@ namespace OpenSim.Region.Physics.Meshing
169 169
170 public float[] getVertexListAsFloatLocked() 170 public float[] getVertexListAsFloatLocked()
171 { 171 {
172 if( m_pinnedVertexes.IsAllocated ) 172 if (m_pinnedVertexes.IsAllocated)
173 return (float[])(m_pinnedVertexes.Target); 173 return (float[])(m_pinnedVertexes.Target);
174 174
175 float[] result = getVertexListAsFloat(); 175 float[] result = getVertexListAsFloat();
diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
index bd81d50..1fff846 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
@@ -1105,7 +1105,19 @@ namespace OpenSim.Region.Physics.OdePlugin
1105 public void UpdatePositionAndVelocity() 1105 public void UpdatePositionAndVelocity()
1106 { 1106 {
1107 // no lock; called from Simulate() -- if you call this from elsewhere, gotta lock or do Monitor.Enter/Exit! 1107 // no lock; called from Simulate() -- if you call this from elsewhere, gotta lock or do Monitor.Enter/Exit!
1108 d.Vector3 vec = d.BodyGetPosition(Body); 1108 d.Vector3 vec;
1109 try
1110 {
1111 vec = d.BodyGetPosition(Body);
1112 }
1113 catch (NullReferenceException)
1114 {
1115 _parent_scene.BadCharacter(this);
1116 vec = new d.Vector3(_position.X, _position.Y, _position.Z);
1117 base.RaiseOutOfBounds(_position); // Tells ScenePresence that there's a problem!
1118 m_log.WarnFormat("[ODEPLUGIN]: Avatar Null reference for Avatar: {0}", m_name);
1119 }
1120
1109 1121
1110 // kluge to keep things in bounds. ODE lets dead avatars drift away (they should be removed!) 1122 // kluge to keep things in bounds. ODE lets dead avatars drift away (they should be removed!)
1111 if (vec.X < 0.0f) vec.X = 0.0f; 1123 if (vec.X < 0.0f) vec.X = 0.0f;
@@ -1137,7 +1149,16 @@ namespace OpenSim.Region.Physics.OdePlugin
1137 else 1149 else
1138 { 1150 {
1139 m_lastUpdateSent = false; 1151 m_lastUpdateSent = false;
1140 vec = d.BodyGetLinearVel(Body); 1152 try
1153 {
1154 vec = d.BodyGetLinearVel(Body);
1155 }
1156 catch (NullReferenceException)
1157 {
1158 vec.X = _velocity.X;
1159 vec.Y = _velocity.Y;
1160 vec.Z = _velocity.Z;
1161 }
1141 _velocity.X = (vec.X); 1162 _velocity.X = (vec.X);
1142 _velocity.Y = (vec.Y); 1163 _velocity.Y = (vec.Y);
1143 1164
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
index 7840ae3..864ea80 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
@@ -827,8 +827,8 @@ namespace OpenSim.Region.Physics.OdePlugin
827 IntPtr vertices, indices; 827 IntPtr vertices, indices;
828 int vertexCount, indexCount; 828 int vertexCount, indexCount;
829 int vertexStride, triStride; 829 int vertexStride, triStride;
830 mesh.getVertexListAsPtrToFloatArray( out vertices, out vertexStride, out vertexCount ); // Note, that vertices are fixed in unmanaged heap 830 mesh.getVertexListAsPtrToFloatArray(out vertices, out vertexStride, out vertexCount); // Note, that vertices are fixed in unmanaged heap
831 mesh.getIndexListAsPtrToIntArray( out indices, out triStride, out indexCount ); // Also fixed, needs release after usage 831 mesh.getIndexListAsPtrToIntArray(out indices, out triStride, out indexCount); // Also fixed, needs release after usage
832 832
833 mesh.releaseSourceMeshData(); // free up the original mesh data to save memory 833 mesh.releaseSourceMeshData(); // free up the original mesh data to save memory
834 834
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
index 78831f8..9429544 100644
--- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
+++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
@@ -243,6 +243,7 @@ namespace OpenSim.Region.Physics.OdePlugin
243 private readonly HashSet<OdeCharacter> _taintedActors = new HashSet<OdeCharacter>(); 243 private readonly HashSet<OdeCharacter> _taintedActors = new HashSet<OdeCharacter>();
244 private readonly List<d.ContactGeom> _perloopContact = new List<d.ContactGeom>(); 244 private readonly List<d.ContactGeom> _perloopContact = new List<d.ContactGeom>();
245 private readonly List<PhysicsActor> _collisionEventPrim = new List<PhysicsActor>(); 245 private readonly List<PhysicsActor> _collisionEventPrim = new List<PhysicsActor>();
246 private readonly HashSet<OdeCharacter> _badCharacter = new HashSet<OdeCharacter>();
246 public Dictionary<IntPtr, String> geom_name_map = new Dictionary<IntPtr, String>(); 247 public Dictionary<IntPtr, String> geom_name_map = new Dictionary<IntPtr, String>();
247 public Dictionary<IntPtr, PhysicsActor> actor_name_map = new Dictionary<IntPtr, PhysicsActor>(); 248 public Dictionary<IntPtr, PhysicsActor> actor_name_map = new Dictionary<IntPtr, PhysicsActor>();
248 private bool m_NINJA_physics_joints_enabled = false; 249 private bool m_NINJA_physics_joints_enabled = false;
@@ -1678,6 +1679,14 @@ namespace OpenSim.Region.Physics.OdePlugin
1678 } 1679 }
1679 } 1680 }
1680 } 1681 }
1682 public void BadCharacter(OdeCharacter chr)
1683 {
1684 lock (_badCharacter)
1685 {
1686 if (!_badCharacter.Contains(chr))
1687 _badCharacter.Add(chr);
1688 }
1689 }
1681 1690
1682 public override void RemoveAvatar(PhysicsActor actor) 1691 public override void RemoveAvatar(PhysicsActor actor)
1683 { 1692 {
@@ -2987,6 +2996,18 @@ namespace OpenSim.Region.Physics.OdePlugin
2987 } 2996 }
2988 } 2997 }
2989 2998
2999 lock (_badCharacter)
3000 {
3001 if (_badCharacter.Count > 0)
3002 {
3003 foreach (OdeCharacter chr in _badCharacter)
3004 {
3005 RemoveCharacter(chr);
3006 }
3007 _badCharacter.Clear();
3008 }
3009 }
3010
2990 lock (_activeprims) 3011 lock (_activeprims)
2991 { 3012 {
2992 //if (timeStep < 0.2f) 3013 //if (timeStep < 0.2f)
@@ -3792,7 +3813,7 @@ namespace OpenSim.Region.Physics.OdePlugin
3792 } 3813 }
3793 3814
3794 public void start(int unused) 3815 public void start(int unused)
3795 { 3816 {
3796 ds.SetViewpoint(ref xyz, ref hpr); 3817 ds.SetViewpoint(ref xyz, ref hpr);
3797 } 3818 }
3798#endif 3819#endif
diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs
index 97166cf..2b858ec 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs
@@ -353,15 +353,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
353 // m_log.ErrorFormat("[Script] Unable to load script state from xml: {0}\n"+e.ToString(), xml); 353 // m_log.ErrorFormat("[Script] Unable to load script state from xml: {0}\n"+e.ToString(), xml);
354 } 354 }
355 } 355 }
356 else 356// else
357 { 357// {
358 ScenePresence presence = m_Engine.World.GetScenePresence(part.OwnerID); 358// ScenePresence presence = m_Engine.World.GetScenePresence(part.OwnerID);
359 359
360 if (presence != null && (!postOnRez)) 360// if (presence != null && (!postOnRez))
361 presence.ControllingClient.SendAgentAlertMessage("Compile successful", false); 361// presence.ControllingClient.SendAgentAlertMessage("Compile successful", false);
362 362
363// // m_log.ErrorFormat("[Script] Unable to load script state, file not found"); 363// }
364 }
365 } 364 }
366 365
367 public void Init() 366 public void Init()
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
index 847da8c..7b19ce3 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
@@ -604,9 +604,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine
604 604
605 if (warnings != null && warnings.Length != 0) 605 if (warnings != null && warnings.Length != 0)
606 { 606 {
607 if (presence != null && (!postOnRez))
608 presence.ControllingClient.SendAgentAlertMessage("Script saved with warnings, check debug window!", false);
609
610 foreach (string warning in warnings) 607 foreach (string warning in warnings)
611 { 608 {
612 try 609 try
@@ -615,10 +612,17 @@ namespace OpenSim.Region.ScriptEngine.XEngine
615 string text = "Warning:\n" + warning; 612 string text = "Warning:\n" + warning;
616 if (text.Length > 1000) 613 if (text.Length > 1000)
617 text = text.Substring(0, 1000); 614 text = text.Substring(0, 1000);
618 World.SimChat(Utils.StringToBytes(text), 615 if (!ShowScriptSaveResponse(item.OwnerID,
619 ChatTypeEnum.DebugChannel, 2147483647, 616 assetID, text, true))
620 part.AbsolutePosition, 617 {
621 part.Name, part.UUID, false); 618 if (presence != null && (!postOnRez))
619 presence.ControllingClient.SendAgentAlertMessage("Script saved with warnings, check debug window!", false);
620
621 World.SimChat(Utils.StringToBytes(text),
622 ChatTypeEnum.DebugChannel, 2147483647,
623 part.AbsolutePosition,
624 part.Name, part.UUID, false);
625 }
622 } 626 }
623 catch (Exception e2) // LEGIT: User Scripting 627 catch (Exception e2) // LEGIT: User Scripting
624 { 628 {
@@ -634,8 +638,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine
634 } 638 }
635 catch (Exception e) 639 catch (Exception e)
636 { 640 {
637 if (presence != null && (!postOnRez))
638 presence.ControllingClient.SendAgentAlertMessage("Script saved with errors, check debug window!", false);
639 try 641 try
640 { 642 {
641 // DISPLAY ERROR INWORLD 643 // DISPLAY ERROR INWORLD
@@ -645,10 +647,16 @@ namespace OpenSim.Region.ScriptEngine.XEngine
645 string text = "Error compiling script '" + item.Name + "':\n" + e.Message.ToString(); 647 string text = "Error compiling script '" + item.Name + "':\n" + e.Message.ToString();
646 if (text.Length > 1000) 648 if (text.Length > 1000)
647 text = text.Substring(0, 1000); 649 text = text.Substring(0, 1000);
648 World.SimChat(Utils.StringToBytes(text), 650 if (!ShowScriptSaveResponse(item.OwnerID,
649 ChatTypeEnum.DebugChannel, 2147483647, 651 assetID, text, false))
650 part.AbsolutePosition, 652 {
651 part.Name, part.UUID, false); 653 if (presence != null && (!postOnRez))
654 presence.ControllingClient.SendAgentAlertMessage("Script saved with errors, check debug window!", false);
655 World.SimChat(Utils.StringToBytes(text),
656 ChatTypeEnum.DebugChannel, 2147483647,
657 part.AbsolutePosition,
658 part.Name, part.UUID, false);
659 }
652 } 660 }
653 catch (Exception e2) // LEGIT: User Scripting 661 catch (Exception e2) // LEGIT: User Scripting
654 { 662 {
@@ -732,6 +740,12 @@ namespace OpenSim.Region.ScriptEngine.XEngine
732 m_log.DebugFormat("[XEngine] Loaded script {0}.{1}, script UUID {2}, prim UUID {3} @ {4}", 740 m_log.DebugFormat("[XEngine] Loaded script {0}.{1}, script UUID {2}, prim UUID {3} @ {4}",
733 part.ParentGroup.RootPart.Name, item.Name, assetID, part.UUID, part.ParentGroup.RootPart.AbsolutePosition.ToString()); 741 part.ParentGroup.RootPart.Name, item.Name, assetID, part.UUID, part.ParentGroup.RootPart.AbsolutePosition.ToString());
734 742
743 if (presence != null)
744 {
745 ShowScriptSaveResponse(item.OwnerID,
746 assetID, "Compile successful", true);
747 }
748
735 instance.AppDomain = appDomain; 749 instance.AppDomain = appDomain;
736 instance.LineMap = linemap; 750 instance.LineMap = linemap;
737 751
@@ -1250,5 +1264,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine
1250 1264
1251 return instance.CanBeDeleted(); 1265 return instance.CanBeDeleted();
1252 } 1266 }
1267
1268 private bool ShowScriptSaveResponse(UUID ownerID, UUID assetID, string text, bool compiled)
1269 {
1270 return false;
1271 }
1253 } 1272 }
1254} 1273}