aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie2009-10-19 21:58:51 +0100
committerMelanie2009-10-19 21:58:51 +0100
commitffd59868f5e2d797160b1bbfc13f3b4bac717b36 (patch)
treefb807a129a6e449ac17dadce15d7b27268c92c3f
parentMerge branch 'master' into vehicles (diff)
parentMinor formatting cleanup. (diff)
downloadopensim-SC-ffd59868f5e2d797160b1bbfc13f3b4bac717b36.zip
opensim-SC-ffd59868f5e2d797160b1bbfc13f3b4bac717b36.tar.gz
opensim-SC-ffd59868f5e2d797160b1bbfc13f3b4bac717b36.tar.bz2
opensim-SC-ffd59868f5e2d797160b1bbfc13f3b4bac717b36.tar.xz
Merge branch 'master' into vehicles
-rw-r--r--OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs6
-rw-r--r--OpenSim/Data/MSSQL/MSSQLAuthenticationData.cs4
-rw-r--r--OpenSim/Data/MSSQL/MSSQLLegacyRegionData.cs2
-rw-r--r--OpenSim/Data/MSSQL/MSSQLRegionData.cs6
-rw-r--r--OpenSim/Data/MSSQL/MSSQLUserAccountData.cs6
-rw-r--r--OpenSim/Framework/BlockingQueue.cs6
-rw-r--r--OpenSim/Framework/IClientAPI.cs1
-rw-r--r--OpenSim/Framework/RegionInfo.cs24
-rw-r--r--OpenSim/Framework/Serialization/External/LandDataSerializer.cs24
-rw-r--r--OpenSim/Framework/Servers/BaseOpenSimServer.cs2
-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
-rw-r--r--OpenSim/Tests/Common/Mock/TestLandChannel.cs24
-rw-r--r--bin/RegionConfig.ini.example6
24 files changed, 218 insertions, 76 deletions
diff --git a/OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs b/OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs
index e3abcf5..bd061e7 100644
--- a/OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs
+++ b/OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs
@@ -402,6 +402,7 @@ namespace OpenSim.Client.VWoHTTP.ClientStack
402 public event PickInfoUpdate OnPickInfoUpdate = delegate { }; 402 public event PickInfoUpdate OnPickInfoUpdate = delegate { };
403 public event AvatarNotesUpdate OnAvatarNotesUpdate = delegate { }; 403 public event AvatarNotesUpdate OnAvatarNotesUpdate = delegate { };
404 public event MuteListRequest OnMuteListRequest = delegate { }; 404 public event MuteListRequest OnMuteListRequest = delegate { };
405 public event AvatarInterestUpdate OnAvatarInterestUpdate = delegate { };
405 public event PlacesQuery OnPlacesQuery = delegate { }; 406 public event PlacesQuery OnPlacesQuery = delegate { };
406 407
407 408
@@ -1118,6 +1119,11 @@ namespace OpenSim.Client.VWoHTTP.ClientStack
1118 throw new System.NotImplementedException(); 1119 throw new System.NotImplementedException();
1119 } 1120 }
1120 1121
1122 public void SendAvatarInterestUpdate(IClientAPI client, uint wantmask, string wanttext, uint skillsmask, string skillstext, string languages)
1123 {
1124 throw new System.NotImplementedException();
1125 }
1126
1121 public void SendParcelDwellReply(int localID, UUID parcelID, float dwell) 1127 public void SendParcelDwellReply(int localID, UUID parcelID, float dwell)
1122 { 1128 {
1123 throw new System.NotImplementedException(); 1129 throw new System.NotImplementedException();
diff --git a/OpenSim/Data/MSSQL/MSSQLAuthenticationData.cs b/OpenSim/Data/MSSQL/MSSQLAuthenticationData.cs
index 9a17e47..801610a 100644
--- a/OpenSim/Data/MSSQL/MSSQLAuthenticationData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLAuthenticationData.cs
@@ -119,7 +119,7 @@ namespace OpenSim.Data.MSSQL
119 updateBuilder.AppendFormat("{0} = @{0}",field); 119 updateBuilder.AppendFormat("{0} = @{0}",field);
120 120
121 first = false; 121 first = false;
122 cmd.Parameters.Add(m_database.CreateParameter("@" + field, data.Data[field])); 122 cmd.Parameters.Add(m_database.CreateParameter("@" + field, data.Data[field]));
123 } 123 }
124 124
125 updateBuilder.Append(" where UUID = @principalID"); 125 updateBuilder.Append(" where UUID = @principalID");
@@ -135,7 +135,7 @@ namespace OpenSim.Data.MSSQL
135 135
136 insertBuilder.AppendFormat("insert into {0} (UUID, ", m_Realm); 136 insertBuilder.AppendFormat("insert into {0} (UUID, ", m_Realm);
137 insertBuilder.Append(String.Join(", ", fields)); 137 insertBuilder.Append(String.Join(", ", fields));
138 insertBuilder.Append(") values ( @principalID, @"); 138 insertBuilder.Append(") values (@principalID, @");
139 insertBuilder.Append(String.Join(", @", fields)); 139 insertBuilder.Append(String.Join(", @", fields));
140 insertBuilder.Append(")"); 140 insertBuilder.Append(")");
141 141
diff --git a/OpenSim/Data/MSSQL/MSSQLLegacyRegionData.cs b/OpenSim/Data/MSSQL/MSSQLLegacyRegionData.cs
index e2ae5cb..cff6b00 100644
--- a/OpenSim/Data/MSSQL/MSSQLLegacyRegionData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLLegacyRegionData.cs
@@ -146,7 +146,7 @@ namespace OpenSim.Data.MSSQL
146 sceneObjectPart.Name, sceneObjectPart.UUID, sceneObjectPart.GroupPosition, groupID); 146 sceneObjectPart.Name, sceneObjectPart.UUID, sceneObjectPart.GroupPosition, groupID);
147 147
148 sceneObjectPart.UUID = groupID; 148 sceneObjectPart.UUID = groupID;
149 } 149 }
150 150
151 grp = new SceneObjectGroup(sceneObjectPart); 151 grp = new SceneObjectGroup(sceneObjectPart);
152 } 152 }
diff --git a/OpenSim/Data/MSSQL/MSSQLRegionData.cs b/OpenSim/Data/MSSQL/MSSQLRegionData.cs
index 78d7fd0..a898aab 100644
--- a/OpenSim/Data/MSSQL/MSSQLRegionData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLRegionData.cs
@@ -62,7 +62,7 @@ namespace OpenSim.Data.MSSQL
62 conn.Open(); 62 conn.Open();
63 Migration m = new Migration(conn, GetType().Assembly, "GridStore"); 63 Migration m = new Migration(conn, GetType().Assembly, "GridStore");
64 m.Update(); 64 m.Update();
65 } 65 }
66 } 66 }
67 67
68 public List<RegionData> Get(string regionName, UUID scopeID) 68 public List<RegionData> Get(string regionName, UUID scopeID)
@@ -98,7 +98,7 @@ namespace OpenSim.Data.MSSQL
98 return null; 98 return null;
99 99
100 return ret[0]; 100 return ret[0];
101 } 101 }
102 } 102 }
103 103
104 public RegionData Get(UUID regionID, UUID scopeID) 104 public RegionData Get(UUID regionID, UUID scopeID)
@@ -251,7 +251,7 @@ namespace OpenSim.Data.MSSQL
251 { 251 {
252 string insert = "insert into [" + m_Realm + "] ([uuid], [ScopeID], [locX], [locY], [sizeX], [sizeY], [regionName], [" + 252 string insert = "insert into [" + m_Realm + "] ([uuid], [ScopeID], [locX], [locY], [sizeX], [sizeY], [regionName], [" +
253 String.Join("], [", fields) + 253 String.Join("], [", fields) +
254 "]) values ( @regionID, @scopeID, @posX, @posY, @sizeX, @sizeY, @regionName, @" + String.Join(", @", fields) + ")"; 254 "]) values (@regionID, @scopeID, @posX, @posY, @sizeX, @sizeY, @regionName, @" + String.Join(", @", fields) + ")";
255 255
256 cmd.CommandText = insert; 256 cmd.CommandText = insert;
257 257
diff --git a/OpenSim/Data/MSSQL/MSSQLUserAccountData.cs b/OpenSim/Data/MSSQL/MSSQLUserAccountData.cs
index 7b6e7c8..2d92cb1 100644
--- a/OpenSim/Data/MSSQL/MSSQLUserAccountData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLUserAccountData.cs
@@ -54,7 +54,7 @@ namespace OpenSim.Data.MSSQL
54 conn.Open(); 54 conn.Open();
55 Migration m = new Migration(conn, GetType().Assembly, "UserStore"); 55 Migration m = new Migration(conn, GetType().Assembly, "UserStore");
56 m.Update(); 56 m.Update();
57 } 57 }
58 } 58 }
59 59
60 public List<UserAccountData> Query(UUID principalID, UUID scopeID, string query) 60 public List<UserAccountData> Query(UUID principalID, UUID scopeID, string query)
@@ -134,7 +134,7 @@ namespace OpenSim.Data.MSSQL
134 updateBuilder.AppendFormat("{0} = @{0}", field); 134 updateBuilder.AppendFormat("{0} = @{0}", field);
135 135
136 first = false; 136 first = false;
137 cmd.Parameters.Add(m_database.CreateParameter("@" + field, data.Data[field])); 137 cmd.Parameters.Add(m_database.CreateParameter("@" + field, data.Data[field]));
138 } 138 }
139 139
140 updateBuilder.Append(" where UUID = @principalID"); 140 updateBuilder.Append(" where UUID = @principalID");
@@ -153,7 +153,7 @@ namespace OpenSim.Data.MSSQL
153 StringBuilder insertBuilder = new StringBuilder(); 153 StringBuilder insertBuilder = new StringBuilder();
154 insertBuilder.AppendFormat("insert into {0} (UUID, ScopeID, ", m_Realm); 154 insertBuilder.AppendFormat("insert into {0} (UUID, ScopeID, ", m_Realm);
155 insertBuilder.Append(String.Join(", ", fields)); 155 insertBuilder.Append(String.Join(", ", fields));
156 insertBuilder.Append(") values ( @principalID, @scopeID, @"); 156 insertBuilder.Append(") values (@principalID, @scopeID, @");
157 insertBuilder.Append(String.Join(", @", fields)); 157 insertBuilder.Append(String.Join(", @", fields));
158 insertBuilder.Append(")"); 158 insertBuilder.Append(")");
159 159
diff --git a/OpenSim/Framework/BlockingQueue.cs b/OpenSim/Framework/BlockingQueue.cs
index 857930a..3658161 100644
--- a/OpenSim/Framework/BlockingQueue.cs
+++ b/OpenSim/Framework/BlockingQueue.cs
@@ -67,8 +67,8 @@ namespace OpenSim.Framework
67 return m_pqueue.Dequeue(); 67 return m_pqueue.Dequeue();
68 68
69 if (m_queue.Count > 0) 69 if (m_queue.Count > 0)
70 return m_queue.Dequeue(); 70 return m_queue.Dequeue();
71 return default(T); 71 return default(T);
72 } 72 }
73 } 73 }
74 74
@@ -121,7 +121,7 @@ namespace OpenSim.Framework
121 { 121 {
122 m_pqueue.Clear(); 122 m_pqueue.Clear();
123 m_queue.Clear(); 123 m_queue.Clear();
124 Monitor.Pulse(m_queueSync); 124 Monitor.Pulse(m_queueSync);
125 } 125 }
126 } 126 }
127 } 127 }
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs
index 29846f5..9fd043c 100644
--- a/OpenSim/Framework/IClientAPI.cs
+++ b/OpenSim/Framework/IClientAPI.cs
@@ -792,6 +792,7 @@ namespace OpenSim.Framework
792 event PickGodDelete OnPickGodDelete; 792 event PickGodDelete OnPickGodDelete;
793 event PickInfoUpdate OnPickInfoUpdate; 793 event PickInfoUpdate OnPickInfoUpdate;
794 event AvatarNotesUpdate OnAvatarNotesUpdate; 794 event AvatarNotesUpdate OnAvatarNotesUpdate;
795 event AvatarInterestUpdate OnAvatarInterestUpdate;
795 796
796 event MuteListRequest OnMuteListRequest; 797 event MuteListRequest OnMuteListRequest;
797 798
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs
index d3a5357..a7315f5 100644
--- a/OpenSim/Framework/RegionInfo.cs
+++ b/OpenSim/Framework/RegionInfo.cs
@@ -303,6 +303,7 @@ namespace OpenSim.Framework
303 private int m_physPrimMax = 0; 303 private int m_physPrimMax = 0;
304 private bool m_clampPrimSize = false; 304 private bool m_clampPrimSize = false;
305 private int m_objectCapacity = 0; 305 private int m_objectCapacity = 0;
306 private string m_regionType = String.Empty;
306 307
307 308
308 // Apparently, we're applying the same estatesettings regardless of whether it's local or remote. 309 // Apparently, we're applying the same estatesettings regardless of whether it's local or remote.
@@ -478,6 +479,11 @@ namespace OpenSim.Framework
478 get { return (byte)Util.ConvertMaturityToAccessLevel((uint)RegionSettings.Maturity); } 479 get { return (byte)Util.ConvertMaturityToAccessLevel((uint)RegionSettings.Maturity); }
479 } 480 }
480 481
482 public string RegionType
483 {
484 get { return m_regionType; }
485 }
486
481 public void SetEndPoint(string ipaddr, int port) 487 public void SetEndPoint(string ipaddr, int port)
482 { 488 {
483 IPAddress tmpIP = IPAddress.Parse(ipaddr); 489 IPAddress tmpIP = IPAddress.Parse(ipaddr);
@@ -654,8 +660,8 @@ namespace OpenSim.Framework
654 660
655 MasterAvatarAssignedUUID = new UUID(masterAvatarUUID); 661 MasterAvatarAssignedUUID = new UUID(masterAvatarUUID);
656 662
663 m_regionType = config.GetString("RegionType", String.Empty);
657 664
658
659 // Prim stuff 665 // Prim stuff
660 // 666 //
661 m_nonphysPrimMax = config.GetInt("NonphysicalPrimMax", 256); 667 m_nonphysPrimMax = config.GetInt("NonphysicalPrimMax", 256);
@@ -721,6 +727,9 @@ namespace OpenSim.Framework
721 727
722 if (ScopeID != UUID.Zero) 728 if (ScopeID != UUID.Zero)
723 config.Set("ScopeID", ScopeID.ToString()); 729 config.Set("ScopeID", ScopeID.ToString());
730
731 if (RegionType != String.Empty)
732 config.Set("RegionType", RegionType);
724 } 733 }
725 734
726 public bool ignoreIncomingConfiguration(string configuration_key, object configuration_result) 735 public bool ignoreIncomingConfiguration(string configuration_key, object configuration_result)
@@ -810,6 +819,9 @@ namespace OpenSim.Framework
810 819
811 configMember.addConfigurationOption("scope_id", ConfigurationOption.ConfigurationTypes.TYPE_UUID, 820 configMember.addConfigurationOption("scope_id", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
812 "Scope ID for this region", ScopeID.ToString(), true); 821 "Scope ID for this region", ScopeID.ToString(), true);
822
823 configMember.addConfigurationOption("region_type", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
824 "Region Type", String.Empty, true);
813 } 825 }
814 826
815 public void loadConfigurationOptions() 827 public void loadConfigurationOptions()
@@ -873,6 +885,9 @@ namespace OpenSim.Framework
873 885
874 configMember.addConfigurationOption("scope_id", ConfigurationOption.ConfigurationTypes.TYPE_UUID, 886 configMember.addConfigurationOption("scope_id", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
875 "Scope ID for this region", UUID.Zero.ToString(), true); 887 "Scope ID for this region", UUID.Zero.ToString(), true);
888
889 configMember.addConfigurationOption("region_type", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
890 "Region Type", String.Empty, true);
876 } 891 }
877 892
878 public bool shouldMasterAvatarDetailsBeAsked(string configuration_key) 893 public bool shouldMasterAvatarDetailsBeAsked(string configuration_key)
@@ -953,6 +968,9 @@ namespace OpenSim.Framework
953 case "scope_id": 968 case "scope_id":
954 ScopeID = (UUID)configuration_result; 969 ScopeID = (UUID)configuration_result;
955 break; 970 break;
971 case "region_type":
972 m_regionType = (string)configuration_result;
973 break;
956 } 974 }
957 975
958 return true; 976 return true;
@@ -988,6 +1006,8 @@ namespace OpenSim.Framework
988 args["allow_alt_ports"] = OSD.FromBoolean(m_allow_alternate_ports); 1006 args["allow_alt_ports"] = OSD.FromBoolean(m_allow_alternate_ports);
989 if ((proxyUrl != null) && !proxyUrl.Equals("")) 1007 if ((proxyUrl != null) && !proxyUrl.Equals(""))
990 args["proxy_url"] = OSD.FromString(proxyUrl); 1008 args["proxy_url"] = OSD.FromString(proxyUrl);
1009 if (RegionType != String.Empty)
1010 args["region_type"] = OSD.FromString(RegionType);
991 1011
992 return args; 1012 return args;
993 } 1013 }
@@ -1035,6 +1055,8 @@ namespace OpenSim.Framework
1035 m_allow_alternate_ports = args["allow_alt_ports"].AsBoolean(); 1055 m_allow_alternate_ports = args["allow_alt_ports"].AsBoolean();
1036 if (args["proxy_url"] != null) 1056 if (args["proxy_url"] != null)
1037 proxyUrl = args["proxy_url"].AsString(); 1057 proxyUrl = args["proxy_url"].AsString();
1058 if (args["region_type"] != null)
1059 m_regionType = args["region_type"].AsString();
1038 } 1060 }
1039 1061
1040 public static RegionInfo Create(UUID regionID, string regionName, uint regX, uint regY, string externalHostName, uint httpPort, uint simPort, uint remotingPort, string serverURI) 1062 public static RegionInfo Create(UUID regionID, string regionName, uint regX, uint regY, string externalHostName, uint httpPort, uint simPort, uint remotingPort, string serverURI)
diff --git a/OpenSim/Framework/Serialization/External/LandDataSerializer.cs b/OpenSim/Framework/Serialization/External/LandDataSerializer.cs
index a3bc5d1..ff0afc8 100644
--- a/OpenSim/Framework/Serialization/External/LandDataSerializer.cs
+++ b/OpenSim/Framework/Serialization/External/LandDataSerializer.cs
@@ -41,7 +41,7 @@ namespace OpenSim.Framework.Serialization.External
41 public class LandDataSerializer 41 public class LandDataSerializer
42 { 42 {
43 protected static UTF8Encoding m_utf8Encoding = new UTF8Encoding(); 43 protected static UTF8Encoding m_utf8Encoding = new UTF8Encoding();
44 44
45 /// <summary> 45 /// <summary>
46 /// Reify/deserialize landData 46 /// Reify/deserialize landData
47 /// </summary> 47 /// </summary>
@@ -52,7 +52,7 @@ namespace OpenSim.Framework.Serialization.External
52 { 52 {
53 return Deserialize(m_utf8Encoding.GetString(serializedLandData, 0, serializedLandData.Length)); 53 return Deserialize(m_utf8Encoding.GetString(serializedLandData, 0, serializedLandData.Length));
54 } 54 }
55 55
56 /// <summary> 56 /// <summary>
57 /// Reify/deserialize landData 57 /// Reify/deserialize landData
58 /// </summary> 58 /// </summary>
@@ -62,10 +62,10 @@ namespace OpenSim.Framework.Serialization.External
62 public static LandData Deserialize(string serializedLandData) 62 public static LandData Deserialize(string serializedLandData)
63 { 63 {
64 LandData landData = new LandData(); 64 LandData landData = new LandData();
65 65
66 StringReader sr = new StringReader(serializedLandData); 66 StringReader sr = new StringReader(serializedLandData);
67 XmlTextReader xtr = new XmlTextReader(sr); 67 XmlTextReader xtr = new XmlTextReader(sr);
68 68
69 xtr.ReadStartElement("LandData"); 69 xtr.ReadStartElement("LandData");
70 70
71 landData.Area = Convert.ToInt32( xtr.ReadElementString("Area")); 71 landData.Area = Convert.ToInt32( xtr.ReadElementString("Area"));
@@ -106,7 +106,7 @@ namespace OpenSim.Framework.Serialization.External
106 pae.Time = Convert.ToDateTime( xtr.ReadElementString("Time")); 106 pae.Time = Convert.ToDateTime( xtr.ReadElementString("Time"));
107 pae.Flags = (AccessList)Convert.ToUInt32( xtr.ReadElementString("AccessList")); 107 pae.Flags = (AccessList)Convert.ToUInt32( xtr.ReadElementString("AccessList"));
108 xtr.ReadEndElement(); 108 xtr.ReadEndElement();
109 109
110 landData.ParcelAccessList.Add(pae); 110 landData.ParcelAccessList.Add(pae);
111 } 111 }
112 } 112 }
@@ -122,13 +122,13 @@ namespace OpenSim.Framework.Serialization.External
122 landData.OtherCleanTime = Convert.ToInt32( xtr.ReadElementString("OtherCleanTime")); 122 landData.OtherCleanTime = Convert.ToInt32( xtr.ReadElementString("OtherCleanTime"));
123 123
124 xtr.ReadEndElement(); 124 xtr.ReadEndElement();
125 125
126 xtr.Close(); 126 xtr.Close();
127 sr.Close(); 127 sr.Close();
128 128
129 return landData; 129 return landData;
130 } 130 }
131 131
132 public static string Serialize(LandData landData) 132 public static string Serialize(LandData landData)
133 { 133 {
134 StringWriter sw = new StringWriter(); 134 StringWriter sw = new StringWriter();
@@ -137,8 +137,8 @@ namespace OpenSim.Framework.Serialization.External
137 137
138 xtw.WriteStartDocument(); 138 xtw.WriteStartDocument();
139 xtw.WriteStartElement("LandData"); 139 xtw.WriteStartElement("LandData");
140 140
141 xtw.WriteElementString("Area", Convert.ToString(landData.Area)); 141 xtw.WriteElementString("Area", Convert.ToString(landData.Area));
142 xtw.WriteElementString("AuctionID", Convert.ToString(landData.AuctionID)); 142 xtw.WriteElementString("AuctionID", Convert.ToString(landData.AuctionID));
143 xtw.WriteElementString("AuthBuyerID", landData.AuthBuyerID.ToString()); 143 xtw.WriteElementString("AuthBuyerID", landData.AuthBuyerID.ToString());
144 xtw.WriteElementString("Category", Convert.ToString((sbyte)landData.Category)); 144 xtw.WriteElementString("Category", Convert.ToString((sbyte)landData.Category));
@@ -170,7 +170,7 @@ namespace OpenSim.Framework.Serialization.External
170 xtw.WriteEndElement(); 170 xtw.WriteEndElement();
171 } 171 }
172 xtw.WriteEndElement(); 172 xtw.WriteEndElement();
173 173
174 xtw.WriteElementString("PassHours", Convert.ToString(landData.PassHours)); 174 xtw.WriteElementString("PassHours", Convert.ToString(landData.PassHours));
175 xtw.WriteElementString("PassPrice", Convert.ToString(landData.PassPrice)); 175 xtw.WriteElementString("PassPrice", Convert.ToString(landData.PassPrice));
176 xtw.WriteElementString("SalePrice", Convert.ToString(landData.SalePrice)); 176 xtw.WriteElementString("SalePrice", Convert.ToString(landData.SalePrice));
@@ -184,7 +184,7 @@ namespace OpenSim.Framework.Serialization.External
184 184
185 xtw.Close(); 185 xtw.Close();
186 sw.Close(); 186 sw.Close();
187 187
188 return sw.ToString(); 188 return sw.ToString();
189 } 189 }
190 } 190 }
diff --git a/OpenSim/Framework/Servers/BaseOpenSimServer.cs b/OpenSim/Framework/Servers/BaseOpenSimServer.cs
index 845a9fe..0d93ff7 100644
--- a/OpenSim/Framework/Servers/BaseOpenSimServer.cs
+++ b/OpenSim/Framework/Servers/BaseOpenSimServer.cs
@@ -246,7 +246,7 @@ namespace OpenSim.Framework.Servers
246 foreach (ProcessThread t in threads) 246 foreach (ProcessThread t in threads)
247 { 247 {
248 sb.Append("ID: " + t.Id + ", TotalProcessorTime: " + t.TotalProcessorTime + ", TimeRunning: " + 248 sb.Append("ID: " + t.Id + ", TotalProcessorTime: " + t.TotalProcessorTime + ", TimeRunning: " +
249 (DateTime.Now - t.StartTime) + ", Pri: " + t.CurrentPriority + ", State: " + t.ThreadState ); 249 (DateTime.Now - t.StartTime) + ", Pri: " + t.CurrentPriority + ", State: " + t.ThreadState);
250 if (t.ThreadState == System.Diagnostics.ThreadState.Wait) 250 if (t.ThreadState == System.Diagnostics.ThreadState.Wait)
251 sb.Append(", Reason: " + t.WaitReason + Environment.NewLine); 251 sb.Append(", Reason: " + t.WaitReason + Environment.NewLine);
252 else 252 else
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}
diff --git a/OpenSim/Tests/Common/Mock/TestLandChannel.cs b/OpenSim/Tests/Common/Mock/TestLandChannel.cs
index ed30827..be28c27 100644
--- a/OpenSim/Tests/Common/Mock/TestLandChannel.cs
+++ b/OpenSim/Tests/Common/Mock/TestLandChannel.cs
@@ -46,14 +46,14 @@ namespace OpenSim.Tests.Common.Mock
46 m_scene = scene; 46 m_scene = scene;
47 } 47 }
48 48
49 public List<ILandObject> ParcelsNearPoint(Vector3 position) 49 public List<ILandObject> ParcelsNearPoint(Vector3 position)
50 { 50 {
51 return new List<ILandObject>(); 51 return new List<ILandObject>();
52 } 52 }
53 53
54 public List<ILandObject> AllParcels() 54 public List<ILandObject> AllParcels()
55 { 55 {
56 return new List<ILandObject>(); 56 return new List<ILandObject>();
57 } 57 }
58 58
59 protected ILandObject GetNoLand() 59 protected ILandObject GetNoLand()
@@ -63,18 +63,18 @@ namespace OpenSim.Tests.Common.Mock
63 return obj; 63 return obj;
64 } 64 }
65 65
66 public ILandObject GetLandObject(int x, int y) 66 public ILandObject GetLandObject(int x, int y)
67 { 67 {
68 return GetNoLand(); 68 return GetNoLand();
69 } 69 }
70 70
71 public ILandObject GetLandObject(int localID) 71 public ILandObject GetLandObject(int localID)
72 { 72 {
73 return GetNoLand(); 73 return GetNoLand();
74 } 74 }
75 75
76 public ILandObject GetLandObject(float x, float y) 76 public ILandObject GetLandObject(float x, float y)
77 { 77 {
78 return GetNoLand(); 78 return GetNoLand();
79 } 79 }
80 80
diff --git a/bin/RegionConfig.ini.example b/bin/RegionConfig.ini.example
index 0404168..8d833df 100644
--- a/bin/RegionConfig.ini.example
+++ b/bin/RegionConfig.ini.example
@@ -45,3 +45,9 @@ MasterAvatarUUID = "00000000-0000-0000-0000-000000000000"
45; * 45; *
46 46
47; ScopeID = "00000000-0000-0000-0000-000000000000" 47; ScopeID = "00000000-0000-0000-0000-000000000000"
48
49; *
50; * Product name (used in search from viewer 1.23
51; *
52
53; RegionType = "Mainland"