aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorMelanie2011-10-26 17:55:53 +0200
committerMelanie2011-10-26 17:55:53 +0200
commitc763419043773c93dbbc865ec35f7ecf856a641a (patch)
treeac9f99c33ae788e6b7fdfd0843c2ae584a896dc6 /OpenSim/Region
parentFix a missing locking call (diff)
parentMerge branch 'master' into bigmerge (diff)
downloadopensim-SC-c763419043773c93dbbc865ec35f7ecf856a641a.zip
opensim-SC-c763419043773c93dbbc865ec35f7ecf856a641a.tar.gz
opensim-SC-c763419043773c93dbbc865ec35f7ecf856a641a.tar.bz2
opensim-SC-c763419043773c93dbbc865ec35f7ecf856a641a.tar.xz
Merge branch 'bigmerge' of ssh://3dhosting.de/var/git/careminster into bigmerge
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Application/OpenSim.cs1
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs1
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs2
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs1
-rw-r--r--OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs1
-rw-r--r--OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs1
-rw-r--r--OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs1
-rw-r--r--OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs1
-rw-r--r--OpenSim/Region/CoreModules/InterGrid/OGSRadmin.cs1
-rw-r--r--OpenSim/Region/CoreModules/InterGrid/OpenGridProtocolModule.cs1
-rw-r--r--OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs1
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsIn/Asset/AssetServiceInConnectorModule.cs1
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsIn/Authentication/AuthenticationServiceInConnectorModule.cs1
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsIn/Grid/GridInfoServiceInConnectorModule.cs1
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsIn/Hypergrid/HypergridServiceInConnectorModule.cs1
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsIn/Inventory/InventoryServiceInConnectorModule.cs3
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsIn/Land/LandServiceInConnectorModule.cs1
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsIn/Login/LLLoginServiceInConnectorModule.cs1
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsIn/MapImage/MapImageServiceInConnectorModule.cs1
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsIn/Neighbour/NeighbourServiceInConnectorModule.cs1
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsIn/Simulation/SimulationServiceInConnectorModule.cs1
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs14
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs3
-rw-r--r--OpenSim/Region/Framework/Scenes/Tests/ScenePresenceTeleportTests.cs1
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/Chat/IRCBridgeModule.cs1
-rw-r--r--OpenSim/Region/OptionalModules/ServiceConnectorsIn/Freeswitch/FreeswitchServiceInConnectorModule.cs1
-rw-r--r--OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs2
-rw-r--r--OpenSim/Region/OptionalModules/World/WorldView/WorldViewModule.cs1
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs2
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs2
-rw-r--r--OpenSim/Region/Physics/ChOdePlugin/ODECharacter.cs2
-rw-r--r--OpenSim/Region/Physics/ChOdePlugin/ODEPrim.cs2
-rw-r--r--OpenSim/Region/Physics/Manager/PhysicsActor.cs47
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODECharacter.cs12
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODEPrim.cs18
-rw-r--r--OpenSim/Region/Physics/OdePlugin/OdeScene.cs17
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs27
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs67
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs2
40 files changed, 166 insertions, 81 deletions
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs
index e7ee8c4..5ff9a38 100644
--- a/OpenSim/Region/Application/OpenSim.cs
+++ b/OpenSim/Region/Application/OpenSim.cs
@@ -37,6 +37,7 @@ using Nini.Config;
37using OpenMetaverse; 37using OpenMetaverse;
38using OpenSim.Framework; 38using OpenSim.Framework;
39using OpenSim.Framework.Console; 39using OpenSim.Framework.Console;
40using OpenSim.Framework.Servers;
40using OpenSim.Framework.Statistics; 41using OpenSim.Framework.Statistics;
41using OpenSim.Region.Framework.Interfaces; 42using OpenSim.Region.Framework.Interfaces;
42using OpenSim.Region.Framework.Scenes; 43using OpenSim.Region.Framework.Scenes;
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs
index 2ca02c5..a5209b7 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs
@@ -34,6 +34,7 @@ using NUnit.Framework;
34using OpenMetaverse; 34using OpenMetaverse;
35using OpenMetaverse.Packets; 35using OpenMetaverse.Packets;
36using OpenSim.Framework; 36using OpenSim.Framework;
37using OpenSim.Framework.Servers;
37using OpenSim.Framework.Servers.HttpServer; 38using OpenSim.Framework.Servers.HttpServer;
38using OpenSim.Region.ClientStack.Linden; 39using OpenSim.Region.ClientStack.Linden;
39using OpenSim.Region.CoreModules.Framework; 40using OpenSim.Region.CoreModules.Framework;
diff --git a/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs b/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs
index f343f80..80957b4 100644
--- a/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs
@@ -201,7 +201,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
201 } 201 }
202 else 202 else
203 { 203 {
204 OpenSim.Framework.Console.MainConsole.Instance.Output( 204 MainConsole.Instance.Output(
205 "Usage: alert <message> | alert-user <first> <last> <message>"); 205 "Usage: alert <message> | alert-user <first> <last> <message>");
206 return; 206 return;
207 } 207 }
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
index 4350cde..a5131ec 100644
--- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
@@ -36,6 +36,7 @@ using OpenMetaverse;
36using OpenSim.Framework; 36using OpenSim.Framework;
37using OpenSim.Framework.Servers.HttpServer; 37using OpenSim.Framework.Servers.HttpServer;
38using OpenSim.Framework.Communications; 38using OpenSim.Framework.Communications;
39using OpenSim.Framework.Servers;
39using OpenSim.Region.Framework.Interfaces; 40using OpenSim.Region.Framework.Interfaces;
40using OpenSim.Region.Framework.Scenes; 41using OpenSim.Region.Framework.Scenes;
41using OpenSim.Services.Interfaces; 42using OpenSim.Services.Interfaces;
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs
index eb14603..72b448b 100644
--- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs
@@ -36,6 +36,7 @@ using Nwc.XmlRpc;
36using Mono.Addins; 36using Mono.Addins;
37using OpenMetaverse; 37using OpenMetaverse;
38using OpenSim.Framework; 38using OpenSim.Framework;
39using OpenSim.Framework.Servers;
39using OpenSim.Region.Framework.Interfaces; 40using OpenSim.Region.Framework.Interfaces;
40using OpenSim.Region.Framework.Scenes; 41using OpenSim.Region.Framework.Scenes;
41using GridRegion = OpenSim.Services.Interfaces.GridRegion; 42using GridRegion = OpenSim.Services.Interfaces.GridRegion;
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs
index c1caf44..ff74354 100644
--- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs
@@ -34,6 +34,7 @@ using Nini.Config;
34using Nwc.XmlRpc; 34using Nwc.XmlRpc;
35using OpenMetaverse; 35using OpenMetaverse;
36using OpenSim.Framework; 36using OpenSim.Framework;
37using OpenSim.Framework.Servers;
37using OpenSim.Region.Framework.Interfaces; 38using OpenSim.Region.Framework.Interfaces;
38using OpenSim.Region.Framework.Scenes; 39using OpenSim.Region.Framework.Scenes;
39using GridRegion = OpenSim.Services.Interfaces.GridRegion; 40using GridRegion = OpenSim.Services.Interfaces.GridRegion;
diff --git a/OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs b/OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs
index 7ae304c..babeaab 100644
--- a/OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs
@@ -35,6 +35,7 @@ using Mono.Addins;
35using OpenMetaverse; 35using OpenMetaverse;
36using OpenSim.Framework; 36using OpenSim.Framework;
37using OpenSim.Framework.Console; 37using OpenSim.Framework.Console;
38using OpenSim.Framework.Servers;
38using OpenSim.Region.Framework.Interfaces; 39using OpenSim.Region.Framework.Interfaces;
39using OpenSim.Region.Framework.Scenes; 40using OpenSim.Region.Framework.Scenes;
40using Caps=OpenSim.Framework.Capabilities.Caps; 41using Caps=OpenSim.Framework.Capabilities.Caps;
diff --git a/OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs b/OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs
index a75d94a..3f466be 100644
--- a/OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs
@@ -33,6 +33,7 @@ using log4net;
33using Nini.Config; 33using Nini.Config;
34using OpenMetaverse; 34using OpenMetaverse;
35using OpenSim.Framework; 35using OpenSim.Framework;
36using OpenSim.Framework.Servers;
36using OpenSim.Region.CoreModules.Framework.Monitoring.Alerts; 37using OpenSim.Region.CoreModules.Framework.Monitoring.Alerts;
37using OpenSim.Region.CoreModules.Framework.Monitoring.Monitors; 38using OpenSim.Region.CoreModules.Framework.Monitoring.Monitors;
38using OpenSim.Region.Framework.Interfaces; 39using OpenSim.Region.Framework.Interfaces;
diff --git a/OpenSim/Region/CoreModules/InterGrid/OGSRadmin.cs b/OpenSim/Region/CoreModules/InterGrid/OGSRadmin.cs
index b7d3904..2cc0a07 100644
--- a/OpenSim/Region/CoreModules/InterGrid/OGSRadmin.cs
+++ b/OpenSim/Region/CoreModules/InterGrid/OGSRadmin.cs
@@ -37,6 +37,7 @@ using Nwc.XmlRpc;
37using OpenMetaverse; 37using OpenMetaverse;
38using OpenSim.Framework; 38using OpenSim.Framework;
39using OpenSim.Framework.Communications; 39using OpenSim.Framework.Communications;
40using OpenSim.Framework.Servers;
40using OpenSim.Region.Framework.Interfaces; 41using OpenSim.Region.Framework.Interfaces;
41using OpenSim.Region.Framework.Scenes; 42using OpenSim.Region.Framework.Scenes;
42 43
diff --git a/OpenSim/Region/CoreModules/InterGrid/OpenGridProtocolModule.cs b/OpenSim/Region/CoreModules/InterGrid/OpenGridProtocolModule.cs
index 07999d1..f367739 100644
--- a/OpenSim/Region/CoreModules/InterGrid/OpenGridProtocolModule.cs
+++ b/OpenSim/Region/CoreModules/InterGrid/OpenGridProtocolModule.cs
@@ -40,6 +40,7 @@ using OpenMetaverse;
40using OpenMetaverse.StructuredData; 40using OpenMetaverse.StructuredData;
41using OpenSim.Framework; 41using OpenSim.Framework;
42using OpenSim.Framework.Capabilities; 42using OpenSim.Framework.Capabilities;
43using OpenSim.Framework.Servers;
43using OpenSim.Region.Framework.Interfaces; 44using OpenSim.Region.Framework.Interfaces;
44using OpenSim.Region.Framework.Scenes; 45using OpenSim.Region.Framework.Scenes;
45using Caps=OpenSim.Framework.Capabilities.Caps; 46using Caps=OpenSim.Framework.Capabilities.Caps;
diff --git a/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs b/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs
index b6af1f2..458426b 100644
--- a/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs
+++ b/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs
@@ -34,6 +34,7 @@ using log4net;
34using Nini.Config; 34using Nini.Config;
35using OpenMetaverse; 35using OpenMetaverse;
36using OpenSim.Framework; 36using OpenSim.Framework;
37using OpenSim.Framework.Servers;
37using OpenSim.Framework.Servers.HttpServer; 38using OpenSim.Framework.Servers.HttpServer;
38using OpenSim.Region.Framework.Interfaces; 39using OpenSim.Region.Framework.Interfaces;
39using OpenSim.Region.Framework.Scenes; 40using OpenSim.Region.Framework.Scenes;
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Asset/AssetServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Asset/AssetServiceInConnectorModule.cs
index 422f394..5541684 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Asset/AssetServiceInConnectorModule.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Asset/AssetServiceInConnectorModule.cs
@@ -31,6 +31,7 @@ using System.Collections.Generic;
31using log4net; 31using log4net;
32using Nini.Config; 32using Nini.Config;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using OpenSim.Framework.Servers;
34using OpenSim.Region.Framework.Scenes; 35using OpenSim.Region.Framework.Scenes;
35using OpenSim.Region.Framework.Interfaces; 36using OpenSim.Region.Framework.Interfaces;
36using OpenSim.Server.Base; 37using OpenSim.Server.Base;
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Authentication/AuthenticationServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Authentication/AuthenticationServiceInConnectorModule.cs
index 2b5beba..ccf2275 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Authentication/AuthenticationServiceInConnectorModule.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Authentication/AuthenticationServiceInConnectorModule.cs
@@ -31,6 +31,7 @@ using System.Collections.Generic;
31using log4net; 31using log4net;
32using Nini.Config; 32using Nini.Config;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using OpenSim.Framework.Servers;
34using OpenSim.Region.Framework.Scenes; 35using OpenSim.Region.Framework.Scenes;
35using OpenSim.Region.Framework.Interfaces; 36using OpenSim.Region.Framework.Interfaces;
36using OpenSim.Server.Base; 37using OpenSim.Server.Base;
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Grid/GridInfoServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Grid/GridInfoServiceInConnectorModule.cs
index f29c074..0e16e5a 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Grid/GridInfoServiceInConnectorModule.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Grid/GridInfoServiceInConnectorModule.cs
@@ -31,6 +31,7 @@ using System.Collections.Generic;
31using log4net; 31using log4net;
32using Nini.Config; 32using Nini.Config;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using OpenSim.Framework.Servers;
34using OpenSim.Region.Framework.Scenes; 35using OpenSim.Region.Framework.Scenes;
35using OpenSim.Region.Framework.Interfaces; 36using OpenSim.Region.Framework.Interfaces;
36using OpenSim.Server.Base; 37using OpenSim.Server.Base;
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Hypergrid/HypergridServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Hypergrid/HypergridServiceInConnectorModule.cs
index a5b5637..89abbb2 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Hypergrid/HypergridServiceInConnectorModule.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Hypergrid/HypergridServiceInConnectorModule.cs
@@ -31,6 +31,7 @@ using System.Collections.Generic;
31using log4net; 31using log4net;
32using Nini.Config; 32using Nini.Config;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using OpenSim.Framework.Servers;
34using OpenSim.Region.Framework.Scenes; 35using OpenSim.Region.Framework.Scenes;
35using OpenSim.Region.Framework.Interfaces; 36using OpenSim.Region.Framework.Interfaces;
36using OpenSim.Server.Base; 37using OpenSim.Server.Base;
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Inventory/InventoryServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Inventory/InventoryServiceInConnectorModule.cs
index 53a8ace..831ea27 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Inventory/InventoryServiceInConnectorModule.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Inventory/InventoryServiceInConnectorModule.cs
@@ -31,6 +31,7 @@ using System.Collections.Generic;
31using log4net; 31using log4net;
32using Nini.Config; 32using Nini.Config;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using OpenSim.Framework.Servers;
34using OpenSim.Region.Framework.Interfaces; 35using OpenSim.Region.Framework.Interfaces;
35using OpenSim.Region.Framework.Scenes; 36using OpenSim.Region.Framework.Scenes;
36using OpenSim.Server.Base; 37using OpenSim.Server.Base;
@@ -59,9 +60,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Inventory
59 { 60 {
60 m_log.Info("[INVENTORY IN CONNECTOR]: Inventory Service In Connector enabled"); 61 m_log.Info("[INVENTORY IN CONNECTOR]: Inventory Service In Connector enabled");
61 } 62 }
62
63 } 63 }
64
65 } 64 }
66 65
67 public void PostInitialise() 66 public void PostInitialise()
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Land/LandServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Land/LandServiceInConnectorModule.cs
index fc64203..c8f45f6 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Land/LandServiceInConnectorModule.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Land/LandServiceInConnectorModule.cs
@@ -31,6 +31,7 @@ using System.Collections.Generic;
31using log4net; 31using log4net;
32using Nini.Config; 32using Nini.Config;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using OpenSim.Framework.Servers;
34using OpenSim.Region.Framework.Scenes; 35using OpenSim.Region.Framework.Scenes;
35using OpenSim.Region.Framework.Interfaces; 36using OpenSim.Region.Framework.Interfaces;
36using OpenSim.Server.Base; 37using OpenSim.Server.Base;
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Login/LLLoginServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Login/LLLoginServiceInConnectorModule.cs
index f759470..ecdb380 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Login/LLLoginServiceInConnectorModule.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Login/LLLoginServiceInConnectorModule.cs
@@ -31,6 +31,7 @@ using System.Collections.Generic;
31using log4net; 31using log4net;
32using Nini.Config; 32using Nini.Config;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using OpenSim.Framework.Servers;
34using OpenSim.Region.Framework.Scenes; 35using OpenSim.Region.Framework.Scenes;
35using OpenSim.Region.Framework.Interfaces; 36using OpenSim.Region.Framework.Interfaces;
36using OpenSim.Server.Base; 37using OpenSim.Server.Base;
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/MapImage/MapImageServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/MapImage/MapImageServiceInConnectorModule.cs
index e5af1f4..d38af23 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/MapImage/MapImageServiceInConnectorModule.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/MapImage/MapImageServiceInConnectorModule.cs
@@ -32,6 +32,7 @@ using log4net;
32using Mono.Addins; 32using Mono.Addins;
33using Nini.Config; 33using Nini.Config;
34using OpenSim.Framework; 34using OpenSim.Framework;
35using OpenSim.Framework.Servers;
35using OpenSim.Region.Framework.Scenes; 36using OpenSim.Region.Framework.Scenes;
36using OpenSim.Region.Framework.Interfaces; 37using OpenSim.Region.Framework.Interfaces;
37using OpenSim.Server.Base; 38using OpenSim.Server.Base;
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Neighbour/NeighbourServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Neighbour/NeighbourServiceInConnectorModule.cs
index 5c32632..3fd89b9 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Neighbour/NeighbourServiceInConnectorModule.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Neighbour/NeighbourServiceInConnectorModule.cs
@@ -31,6 +31,7 @@ using System.Collections.Generic;
31using log4net; 31using log4net;
32using Nini.Config; 32using Nini.Config;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using OpenSim.Framework.Servers;
34using OpenSim.Region.Framework.Scenes; 35using OpenSim.Region.Framework.Scenes;
35using OpenSim.Region.Framework.Interfaces; 36using OpenSim.Region.Framework.Interfaces;
36using OpenSim.Server.Base; 37using OpenSim.Server.Base;
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Simulation/SimulationServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Simulation/SimulationServiceInConnectorModule.cs
index 86b4926..0a5275d 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Simulation/SimulationServiceInConnectorModule.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Simulation/SimulationServiceInConnectorModule.cs
@@ -31,6 +31,7 @@ using System.Collections.Generic;
31using log4net; 31using log4net;
32using Nini.Config; 32using Nini.Config;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using OpenSim.Framework.Servers;
34using OpenSim.Region.Framework.Scenes; 35using OpenSim.Region.Framework.Scenes;
35using OpenSim.Region.Framework.Interfaces; 36using OpenSim.Region.Framework.Interfaces;
36using OpenSim.Server.Base; 37using OpenSim.Server.Base;
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 8c7ce24..b2f5279 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1203,7 +1203,7 @@ namespace OpenSim.Region.Framework.Scenes
1203 { 1203 {
1204 m_log.ErrorFormat("[SCENE]: Restarting heartbeat thread because it hasn't reported in in region {0}", RegionInfo.RegionName); 1204 m_log.ErrorFormat("[SCENE]: Restarting heartbeat thread because it hasn't reported in in region {0}", RegionInfo.RegionName);
1205 HeartbeatThread.Abort(); 1205 HeartbeatThread.Abort();
1206 Watchdog.RemoveThread(HeartbeatThread.ManagedThreadId); 1206 Watchdog.AbortThread(HeartbeatThread.ManagedThreadId);
1207 HeartbeatThread = null; 1207 HeartbeatThread = null;
1208 } 1208 }
1209 m_lastUpdate = Util.EnvironmentTickCount(); 1209 m_lastUpdate = Util.EnvironmentTickCount();
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index c1097e4..6e20d14 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -2137,10 +2137,6 @@ namespace OpenSim.Region.Framework.Scenes
2137 public void PhysicsCollision(EventArgs e) 2137 public void PhysicsCollision(EventArgs e)
2138 { 2138 {
2139 // single threaded here 2139 // single threaded here
2140 if (e == null)
2141 {
2142 return;
2143 }
2144 2140
2145 CollisionEventUpdate a = (CollisionEventUpdate)e; 2141 CollisionEventUpdate a = (CollisionEventUpdate)e;
2146 Dictionary<uint, ContactPoint> collissionswith = a.m_objCollisionList; 2142 Dictionary<uint, ContactPoint> collissionswith = a.m_objCollisionList;
@@ -2302,6 +2298,7 @@ namespace OpenSim.Region.Framework.Scenes
2302 }); 2298 });
2303 } 2299 }
2304 } 2300 }
2301
2305 if (colliding.Count > 0) 2302 if (colliding.Count > 0)
2306 { 2303 {
2307 StartCollidingMessage.Colliders = colliding; 2304 StartCollidingMessage.Colliders = colliding;
@@ -2309,10 +2306,11 @@ namespace OpenSim.Region.Framework.Scenes
2309 if (m_parentGroup.Scene == null) 2306 if (m_parentGroup.Scene == null)
2310 return; 2307 return;
2311 2308
2312 if (m_parentGroup.PassCollision == true) 2309// if (m_parentGroup.PassCollision == true)
2313 { 2310// {
2314 //TODO: Add pass to root prim! 2311// //TODO: Add pass to root prim!
2315 } 2312// }
2313
2316 m_parentGroup.Scene.EventManager.TriggerScriptCollidingStart(LocalId, StartCollidingMessage); 2314 m_parentGroup.Scene.EventManager.TriggerScriptCollidingStart(LocalId, StartCollidingMessage);
2317 } 2315 }
2318 } 2316 }
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 9970763..0f13050 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -3649,9 +3649,6 @@ namespace OpenSim.Region.Framework.Scenes
3649 // Event called by the physics plugin to tell the avatar about a collision. 3649 // Event called by the physics plugin to tell the avatar about a collision.
3650 private void PhysicsCollisionUpdate(EventArgs e) 3650 private void PhysicsCollisionUpdate(EventArgs e)
3651 { 3651 {
3652 if (e == null)
3653 return;
3654
3655 //if ((Math.Abs(Velocity.X) > 0.1e-9f) || (Math.Abs(Velocity.Y) > 0.1e-9f)) 3652 //if ((Math.Abs(Velocity.X) > 0.1e-9f) || (Math.Abs(Velocity.Y) > 0.1e-9f))
3656 // The Physics Scene will send updates every 500 ms grep: PhysicsActor.SubscribeEvents( 3653 // The Physics Scene will send updates every 500 ms grep: PhysicsActor.SubscribeEvents(
3657 // as of this comment the interval is set in AddToPhysicalScene 3654 // as of this comment the interval is set in AddToPhysicalScene
diff --git a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceTeleportTests.cs b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceTeleportTests.cs
index 39bb43a..c5a76b2 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceTeleportTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceTeleportTests.cs
@@ -32,6 +32,7 @@ using NUnit.Framework;
32using OpenMetaverse; 32using OpenMetaverse;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using OpenSim.Framework.Communications; 34using OpenSim.Framework.Communications;
35using OpenSim.Framework.Servers;
35using OpenSim.Region.Framework.Interfaces; 36using OpenSim.Region.Framework.Interfaces;
36using OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation; 37using OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation;
37using OpenSim.Tests.Common; 38using OpenSim.Tests.Common;
diff --git a/OpenSim/Region/OptionalModules/Avatar/Chat/IRCBridgeModule.cs b/OpenSim/Region/OptionalModules/Avatar/Chat/IRCBridgeModule.cs
index d49a489..913d934 100644
--- a/OpenSim/Region/OptionalModules/Avatar/Chat/IRCBridgeModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/Chat/IRCBridgeModule.cs
@@ -34,6 +34,7 @@ using log4net;
34using Nini.Config; 34using Nini.Config;
35using Nwc.XmlRpc; 35using Nwc.XmlRpc;
36using OpenSim.Framework; 36using OpenSim.Framework;
37using OpenSim.Framework.Servers;
37using OpenSim.Region.Framework.Interfaces; 38using OpenSim.Region.Framework.Interfaces;
38using OpenSim.Region.Framework.Scenes; 39using OpenSim.Region.Framework.Scenes;
39 40
diff --git a/OpenSim/Region/OptionalModules/ServiceConnectorsIn/Freeswitch/FreeswitchServiceInConnectorModule.cs b/OpenSim/Region/OptionalModules/ServiceConnectorsIn/Freeswitch/FreeswitchServiceInConnectorModule.cs
index 97fa63c..74c5139 100644
--- a/OpenSim/Region/OptionalModules/ServiceConnectorsIn/Freeswitch/FreeswitchServiceInConnectorModule.cs
+++ b/OpenSim/Region/OptionalModules/ServiceConnectorsIn/Freeswitch/FreeswitchServiceInConnectorModule.cs
@@ -31,6 +31,7 @@ using System.Collections.Generic;
31using log4net; 31using log4net;
32using Nini.Config; 32using Nini.Config;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using OpenSim.Framework.Servers;
34using OpenSim.Framework.Servers.HttpServer; 35using OpenSim.Framework.Servers.HttpServer;
35using OpenSim.Region.Framework.Scenes; 36using OpenSim.Region.Framework.Scenes;
36using OpenSim.Region.Framework.Interfaces; 37using OpenSim.Region.Framework.Interfaces;
diff --git a/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs b/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs
index d469548..54d4e92 100644
--- a/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs
+++ b/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs
@@ -36,7 +36,7 @@ using Nwc.XmlRpc;
36using Mono.Addins; 36using Mono.Addins;
37using OpenMetaverse; 37using OpenMetaverse;
38using OpenSim.Framework; 38using OpenSim.Framework;
39 39using OpenSim.Framework.Servers;
40using OpenSim.Framework.Servers.HttpServer; 40using OpenSim.Framework.Servers.HttpServer;
41using OpenSim.Region.Framework.Interfaces; 41using OpenSim.Region.Framework.Interfaces;
42using OpenSim.Region.Framework.Scenes; 42using OpenSim.Region.Framework.Scenes;
diff --git a/OpenSim/Region/OptionalModules/World/WorldView/WorldViewModule.cs b/OpenSim/Region/OptionalModules/World/WorldView/WorldViewModule.cs
index cee8851..48c242d 100644
--- a/OpenSim/Region/OptionalModules/World/WorldView/WorldViewModule.cs
+++ b/OpenSim/Region/OptionalModules/World/WorldView/WorldViewModule.cs
@@ -36,6 +36,7 @@ using Nini.Config;
36using OpenMetaverse; 36using OpenMetaverse;
37using OpenMetaverse.Imaging; 37using OpenMetaverse.Imaging;
38using OpenSim.Framework; 38using OpenSim.Framework;
39using OpenSim.Framework.Servers;
39using OpenSim.Region.Framework.Interfaces; 40using OpenSim.Region.Framework.Interfaces;
40using OpenSim.Region.Framework.Scenes; 41using OpenSim.Region.Framework.Scenes;
41using OpenSim.Server.Base; 42using OpenSim.Server.Base;
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs
index 682eb80..9a6857b 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs
@@ -443,7 +443,7 @@ public class BSCharacter : PhysicsActor
443 443
444 Dictionary<uint, ContactPoint> contactPoints = new Dictionary<uint, ContactPoint>(); 444 Dictionary<uint, ContactPoint> contactPoints = new Dictionary<uint, ContactPoint>();
445 contactPoints.Add(collidingWith, new ContactPoint(contactPoint, contactNormal, pentrationDepth)); 445 contactPoints.Add(collidingWith, new ContactPoint(contactPoint, contactNormal, pentrationDepth));
446 CollisionEventUpdate args = new CollisionEventUpdate(LocalID, (int)type, 1, contactPoints); 446 CollisionEventUpdate args = new CollisionEventUpdate(contactPoints);
447 base.SendCollisionUpdate(args); 447 base.SendCollisionUpdate(args);
448 } 448 }
449 449
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
index bb8d601..8782e62 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
@@ -1350,7 +1350,7 @@ public sealed class BSPrim : PhysicsActor
1350 // create the event for the collision 1350 // create the event for the collision
1351 Dictionary<uint, ContactPoint> contactPoints = new Dictionary<uint, ContactPoint>(); 1351 Dictionary<uint, ContactPoint> contactPoints = new Dictionary<uint, ContactPoint>();
1352 contactPoints.Add(collidingWith, new ContactPoint(contactPoint, contactNormal, pentrationDepth)); 1352 contactPoints.Add(collidingWith, new ContactPoint(contactPoint, contactNormal, pentrationDepth));
1353 CollisionEventUpdate args = new CollisionEventUpdate(LocalID, (int)type, 1, contactPoints); 1353 CollisionEventUpdate args = new CollisionEventUpdate(contactPoints);
1354 base.SendCollisionUpdate(args); 1354 base.SendCollisionUpdate(args);
1355 } 1355 }
1356} 1356}
diff --git a/OpenSim/Region/Physics/ChOdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/ChOdePlugin/ODECharacter.cs
index 1bce760..58e2e4c 100644
--- a/OpenSim/Region/Physics/ChOdePlugin/ODECharacter.cs
+++ b/OpenSim/Region/Physics/ChOdePlugin/ODECharacter.cs
@@ -1299,7 +1299,7 @@ namespace OpenSim.Region.Physics.OdePlugin
1299 { 1299 {
1300 if (m_eventsubscription > 0) 1300 if (m_eventsubscription > 0)
1301 { 1301 {
1302 CollisionEventsThisFrame.addCollider(CollidedWith, contact); 1302 CollisionEventsThisFrame.AddCollider(CollidedWith, contact);
1303 } 1303 }
1304 } 1304 }
1305 1305
diff --git a/OpenSim/Region/Physics/ChOdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/ChOdePlugin/ODEPrim.cs
index 82f1b94..5f802d0 100644
--- a/OpenSim/Region/Physics/ChOdePlugin/ODEPrim.cs
+++ b/OpenSim/Region/Physics/ChOdePlugin/ODEPrim.cs
@@ -2438,7 +2438,7 @@ Console.WriteLine("ODEPrim JointCreateFixed !!!");
2438 { 2438 {
2439 if (CollisionEventsThisFrame == null) 2439 if (CollisionEventsThisFrame == null)
2440 CollisionEventsThisFrame = new CollisionEventUpdate(); 2440 CollisionEventsThisFrame = new CollisionEventUpdate();
2441 CollisionEventsThisFrame.addCollider(CollidedWith, contact); 2441 CollisionEventsThisFrame.AddCollider(CollidedWith, contact);
2442 } 2442 }
2443 2443
2444 public void SendCollisions() 2444 public void SendCollisions()
diff --git a/OpenSim/Region/Physics/Manager/PhysicsActor.cs b/OpenSim/Region/Physics/Manager/PhysicsActor.cs
index 96dcfb6..362f997 100644
--- a/OpenSim/Region/Physics/Manager/PhysicsActor.cs
+++ b/OpenSim/Region/Physics/Manager/PhysicsActor.cs
@@ -66,42 +66,29 @@ namespace OpenSim.Region.Physics.Manager
66 } 66 }
67 } 67 }
68 68
69 /// <summary>
70 /// Used to pass collision information to OnCollisionUpdate listeners.
71 /// </summary>
69 public class CollisionEventUpdate : EventArgs 72 public class CollisionEventUpdate : EventArgs
70 { 73 {
71 // Raising the event on the object, so don't need to provide location.. further up the tree knows that info. 74 /// <summary>
75 /// Number of collision events in this update.
76 /// </summary>
77 public int Count { get { return m_objCollisionList.Count; } }
72 78
73 public int m_colliderType; 79 public Dictionary<uint, ContactPoint> m_objCollisionList;
74 public int m_GenericStartEnd;
75 //public uint m_LocalID;
76 public Dictionary<uint, ContactPoint> m_objCollisionList = new Dictionary<uint, ContactPoint>();
77 80
78 public CollisionEventUpdate(uint localID, int colliderType, int GenericStartEnd, Dictionary<uint, ContactPoint> objCollisionList) 81 public CollisionEventUpdate(Dictionary<uint, ContactPoint> objCollisionList)
79 { 82 {
80 m_colliderType = colliderType;
81 m_GenericStartEnd = GenericStartEnd;
82 m_objCollisionList = objCollisionList; 83 m_objCollisionList = objCollisionList;
83 } 84 }
84 85
85 public CollisionEventUpdate() 86 public CollisionEventUpdate()
86 { 87 {
87 m_colliderType = (int) ActorTypes.Unknown;
88 m_GenericStartEnd = 1;
89 m_objCollisionList = new Dictionary<uint, ContactPoint>(); 88 m_objCollisionList = new Dictionary<uint, ContactPoint>();
90 } 89 }
91 90
92 public int collidertype 91 public void AddCollider(uint localID, ContactPoint contact)
93 {
94 get { return m_colliderType; }
95 set { m_colliderType = value; }
96 }
97
98 public int GenericStartEnd
99 {
100 get { return m_GenericStartEnd; }
101 set { m_GenericStartEnd = value; }
102 }
103
104 public void addCollider(uint localID, ContactPoint contact)
105 { 92 {
106 if (!m_objCollisionList.ContainsKey(localID)) 93 if (!m_objCollisionList.ContainsKey(localID))
107 { 94 {
@@ -113,6 +100,14 @@ namespace OpenSim.Region.Physics.Manager
113 m_objCollisionList[localID] = contact; 100 m_objCollisionList[localID] = contact;
114 } 101 }
115 } 102 }
103
104 /// <summary>
105 /// Clear added collision events.
106 /// </summary>
107 public void Clear()
108 {
109 m_objCollisionList.Clear();
110 }
116 } 111 }
117 112
118 public abstract class PhysicsActor 113 public abstract class PhysicsActor
@@ -127,7 +122,13 @@ namespace OpenSim.Region.Physics.Manager
127 public event VelocityUpdate OnVelocityUpdate; 122 public event VelocityUpdate OnVelocityUpdate;
128 public event OrientationUpdate OnOrientationUpdate; 123 public event OrientationUpdate OnOrientationUpdate;
129 public event RequestTerseUpdate OnRequestTerseUpdate; 124 public event RequestTerseUpdate OnRequestTerseUpdate;
125
126 /// <summary>
127 /// Subscribers to this event must synchronously handle the dictionary of collisions received, since the event
128 /// object is reused in subsequent physics frames.
129 /// </summary>
130 public event CollisionUpdate OnCollisionUpdate; 130 public event CollisionUpdate OnCollisionUpdate;
131
131 public event OutOfBounds OnOutOfBounds; 132 public event OutOfBounds OnOutOfBounds;
132#pragma warning restore 67 133#pragma warning restore 67
133 134
diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
index e9bab66..c22d27f 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
@@ -1210,11 +1210,13 @@ namespace OpenSim.Region.Physics.OdePlugin
1210 { 1210 {
1211 m_requestedUpdateFrequency = ms; 1211 m_requestedUpdateFrequency = ms;
1212 m_eventsubscription = ms; 1212 m_eventsubscription = ms;
1213 CollisionEventsThisFrame.Clear();
1213 _parent_scene.AddCollisionEventReporting(this); 1214 _parent_scene.AddCollisionEventReporting(this);
1214 } 1215 }
1215 1216
1216 public override void UnSubscribeEvents() 1217 public override void UnSubscribeEvents()
1217 { 1218 {
1219 CollisionEventsThisFrame.Clear();
1218 _parent_scene.RemoveCollisionEventReporting(this); 1220 _parent_scene.RemoveCollisionEventReporting(this);
1219 m_requestedUpdateFrequency = 0; 1221 m_requestedUpdateFrequency = 0;
1220 m_eventsubscription = 0; 1222 m_eventsubscription = 0;
@@ -1227,7 +1229,7 @@ namespace OpenSim.Region.Physics.OdePlugin
1227// m_log.DebugFormat( 1229// m_log.DebugFormat(
1228// "[PHYSICS]: Adding collision event for {0}, collidedWith {1}, contact {2}", "", CollidedWith, contact); 1230// "[PHYSICS]: Adding collision event for {0}, collidedWith {1}, contact {2}", "", CollidedWith, contact);
1229 1231
1230 CollisionEventsThisFrame.addCollider(CollidedWith, contact); 1232 CollisionEventsThisFrame.AddCollider(CollidedWith, contact);
1231 } 1233 }
1232 } 1234 }
1233 1235
@@ -1235,11 +1237,9 @@ namespace OpenSim.Region.Physics.OdePlugin
1235 { 1237 {
1236 if (m_eventsubscription > m_requestedUpdateFrequency) 1238 if (m_eventsubscription > m_requestedUpdateFrequency)
1237 { 1239 {
1238 if (CollisionEventsThisFrame != null) 1240 base.SendCollisionUpdate(CollisionEventsThisFrame);
1239 { 1241
1240 base.SendCollisionUpdate(CollisionEventsThisFrame); 1242 CollisionEventsThisFrame.Clear();
1241 }
1242 CollisionEventsThisFrame = new CollisionEventUpdate();
1243 m_eventsubscription = 0; 1243 m_eventsubscription = 0;
1244 } 1244 }
1245 } 1245 }
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
index 6638cbd..3a17511 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
@@ -191,7 +191,7 @@ namespace OpenSim.Region.Physics.OdePlugin
191 private d.Mass pMass; 191 private d.Mass pMass;
192 192
193 private int m_eventsubscription; 193 private int m_eventsubscription;
194 private CollisionEventUpdate CollisionEventsThisFrame; 194 private CollisionEventUpdate CollisionEventsThisFrame = new CollisionEventUpdate();
195 195
196 private IntPtr m_linkJoint = IntPtr.Zero; 196 private IntPtr m_linkJoint = IntPtr.Zero;
197 197
@@ -3020,23 +3020,13 @@ Console.WriteLine(" JointCreateFixed");
3020 3020
3021 public void AddCollisionEvent(uint CollidedWith, ContactPoint contact) 3021 public void AddCollisionEvent(uint CollidedWith, ContactPoint contact)
3022 { 3022 {
3023 if (CollisionEventsThisFrame == null) 3023 CollisionEventsThisFrame.AddCollider(CollidedWith, contact);
3024 CollisionEventsThisFrame = new CollisionEventUpdate();
3025
3026 CollisionEventsThisFrame.addCollider(CollidedWith, contact);
3027 } 3024 }
3028 3025
3029 public void SendCollisions() 3026 public void SendCollisions()
3030 { 3027 {
3031 if (CollisionEventsThisFrame == null) 3028 if (CollisionEventsThisFrame.Count > 0)
3032 return; 3029 base.SendCollisionUpdate(CollisionEventsThisFrame);
3033
3034 base.SendCollisionUpdate(CollisionEventsThisFrame);
3035
3036 if (CollisionEventsThisFrame.m_objCollisionList.Count == 0)
3037 CollisionEventsThisFrame = null;
3038 else
3039 CollisionEventsThisFrame = new CollisionEventUpdate();
3040 } 3030 }
3041 3031
3042 public override bool SubscribedEvents() 3032 public override bool SubscribedEvents()
diff --git a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs
index 0810ae0..c3279c6 100644
--- a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs
+++ b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs
@@ -1633,6 +1633,8 @@ namespace OpenSim.Region.Physics.OdePlugin
1633 /// <param name="obj"></param> 1633 /// <param name="obj"></param>
1634 internal void AddCollisionEventReporting(PhysicsActor obj) 1634 internal void AddCollisionEventReporting(PhysicsActor obj)
1635 { 1635 {
1636// m_log.DebugFormat("[PHYSICS]: Adding {0} to collision event reporting", obj.SOPName);
1637
1636 lock (_collisionEventPrim) 1638 lock (_collisionEventPrim)
1637 { 1639 {
1638 if (!_collisionEventPrim.Contains(obj)) 1640 if (!_collisionEventPrim.Contains(obj))
@@ -1646,11 +1648,10 @@ namespace OpenSim.Region.Physics.OdePlugin
1646 /// <param name="obj"></param> 1648 /// <param name="obj"></param>
1647 internal void RemoveCollisionEventReporting(PhysicsActor obj) 1649 internal void RemoveCollisionEventReporting(PhysicsActor obj)
1648 { 1650 {
1651// m_log.DebugFormat("[PHYSICS]: Removing {0} from collision event reporting", obj.SOPName);
1652
1649 lock (_collisionEventPrim) 1653 lock (_collisionEventPrim)
1650 { 1654 _collisionEventPrim.Remove(obj);
1651 if (!_collisionEventPrim.Contains(obj))
1652 _collisionEventPrim.Remove(obj);
1653 }
1654 } 1655 }
1655 1656
1656 #region Add/Remove Entities 1657 #region Add/Remove Entities
@@ -2859,14 +2860,14 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name);
2859 { 2860 {
2860 //if (timeStep < 0.2f) 2861 //if (timeStep < 0.2f)
2861 { 2862 {
2862 foreach (OdePrim actor in _activeprims) 2863 foreach (OdePrim prim in _activeprims)
2863 { 2864 {
2864 if (actor.IsPhysical && (d.BodyIsEnabled(actor.Body) || !actor._zeroFlag)) 2865 if (prim.IsPhysical && (d.BodyIsEnabled(prim.Body) || !prim._zeroFlag))
2865 { 2866 {
2866 actor.UpdatePositionAndVelocity(); 2867 prim.UpdatePositionAndVelocity();
2867 2868
2868 if (SupportsNINJAJoints) 2869 if (SupportsNINJAJoints)
2869 SimulateActorPendingJoints(actor); 2870 SimulateActorPendingJoints(prim);
2870 } 2871 }
2871 } 2872 }
2872 } 2873 }
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 0e0c2b7..e53fd5d 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -3648,12 +3648,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3648 public void llTargetOmega(LSL_Vector axis, double spinrate, double gain) 3648 public void llTargetOmega(LSL_Vector axis, double spinrate, double gain)
3649 { 3649 {
3650 m_host.AddScriptLPS(1); 3650 m_host.AddScriptLPS(1);
3651 m_host.AngularVelocity = new Vector3((float)(axis.x * spinrate), (float)(axis.y * spinrate), (float)(axis.z * spinrate)); 3651 TargetOmega(m_host, axis, spinrate, gain);
3652 m_host.ScheduleTerseUpdate();
3653 m_host.SendTerseUpdateToAllClients();
3654 m_host.ParentGroup.HasGroupChanged = true;
3655 } 3652 }
3656 3653
3654 protected void TargetOmega(SceneObjectPart part, LSL_Vector axis, double spinrate, double gain)
3655 {
3656 part.AngularVelocity = new Vector3((float)(axis.x * spinrate), (float)(axis.y * spinrate), (float)(axis.z * spinrate));
3657 part.ScheduleTerseUpdate();
3658 part.SendTerseUpdateToAllClients();
3659 part.ParentGroup.HasGroupChanged = true;
3660 }
3661
3657 public LSL_Integer llGetStartParameter() 3662 public LSL_Integer llGetStartParameter()
3658 { 3663 {
3659 m_host.AddScriptLPS(1); 3664 m_host.AddScriptLPS(1);
@@ -7936,6 +7941,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7936 LSL_Rotation lr = rules.GetQuaternionItem(idx++); 7941 LSL_Rotation lr = rules.GetQuaternionItem(idx++);
7937 SetRot(part, Rot2Quaternion(lr)); 7942 SetRot(part, Rot2Quaternion(lr));
7938 break; 7943 break;
7944 case (int)ScriptBaseClass.PRIM_OMEGA:
7945 if (remain < 3)
7946 return;
7947 LSL_Vector axis = rules.GetVector3Item(idx++);
7948 LSL_Float spinrate = rules.GetLSLFloatItem(idx++);
7949 LSL_Float gain = rules.GetLSLFloatItem(idx++);
7950 TargetOmega(part, axis, (double)spinrate, (double)gain);
7951 break;
7952 case (int)ScriptBaseClass.PRIM_LINK_TARGET:
7953 if (remain < 1)
7954 return;
7955 LSL_Integer new_linknumber = rules.GetLSLIntegerItem(idx++);
7956 part = part.ParentGroup.GetLinkNumPart((int)new_linknumber);
7957 break;
7939 } 7958 }
7940 } 7959 }
7941 7960
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index ed2f221..ab0eec9 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -113,11 +113,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
113 { 113 {
114 public List<UUID> AllowedCreators; 114 public List<UUID> AllowedCreators;
115 public List<UUID> AllowedOwners; 115 public List<UUID> AllowedOwners;
116 public List<string> AllowedOwnerClasses;
116 117
117 public FunctionPerms() 118 public FunctionPerms()
118 { 119 {
119 AllowedCreators = new List<UUID>(); 120 AllowedCreators = new List<UUID>();
120 AllowedOwners = new List<UUID>(); 121 AllowedOwners = new List<UUID>();
122 AllowedOwnerClasses = new List<string>();
121 } 123 }
122 } 124 }
123 125
@@ -254,6 +256,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
254 // Default behavior 256 // Default behavior
255 perms.AllowedOwners = null; 257 perms.AllowedOwners = null;
256 perms.AllowedCreators = null; 258 perms.AllowedCreators = null;
259 perms.AllowedOwnerClasses = null;
257 } 260 }
258 else 261 else
259 { 262 {
@@ -274,12 +277,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
274 foreach (string id in ids) 277 foreach (string id in ids)
275 { 278 {
276 string current = id.Trim(); 279 string current = id.Trim();
277 UUID uuid; 280 if (current.ToUpper() == "PARCEL_GROUP_MEMBER" || current.ToUpper() == "PARCEL_OWNER" || current.ToUpper() == "ESTATE_MANAGER" || current.ToUpper() == "ESTATE_OWNER")
278
279 if (UUID.TryParse(current, out uuid))
280 { 281 {
281 if (uuid != UUID.Zero) 282 if (!perms.AllowedOwnerClasses.Contains(current))
282 perms.AllowedOwners.Add(uuid); 283 perms.AllowedOwnerClasses.Add(current.ToUpper());
284 }
285 else
286 {
287 UUID uuid;
288
289 if (UUID.TryParse(current, out uuid))
290 {
291 if (uuid != UUID.Zero)
292 perms.AllowedOwners.Add(uuid);
293 }
283 } 294 }
284 } 295 }
285 296
@@ -335,11 +346,55 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
335 String.Format("{0} permission error. Can't find script in prim inventory.", 346 String.Format("{0} permission error. Can't find script in prim inventory.",
336 function)); 347 function));
337 } 348 }
349
350 UUID ownerID = ti.OwnerID;
351
352 //OSSL only may be used if objet is in the same group as the parcel
353 if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("PARCEL_GROUP_MEMBER"))
354 {
355 ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y);
356
357 if (land.LandData.GroupID == ti.GroupID && land.LandData.GroupID != UUID.Zero)
358 {
359 return;
360 }
361 }
362
363 //Only Parcelowners may use the function
364 if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("PARCEL_OWNER"))
365 {
366 ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y);
367
368 if (land.LandData.OwnerID == ownerID)
369 {
370 return;
371 }
372 }
373
374 //Only Estate Managers may use the function
375 if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("ESTATE_MANAGER"))
376 {
377 //Only Estate Managers may use the function
378 if (World.RegionInfo.EstateSettings.IsEstateManager(ownerID) && World.RegionInfo.EstateSettings.EstateOwner != ownerID)
379 {
380 return;
381 }
382 }
383
384 //Only regionowners may use the function
385 if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("ESTATE_OWNER"))
386 {
387 if (World.RegionInfo.EstateSettings.EstateOwner == ownerID)
388 {
389 return;
390 }
391 }
392
338 if (!m_FunctionPerms[function].AllowedCreators.Contains(ti.CreatorID)) 393 if (!m_FunctionPerms[function].AllowedCreators.Contains(ti.CreatorID))
339 OSSLError( 394 OSSLError(
340 String.Format("{0} permission denied. Script creator is not in the list of users allowed to execute this function and prim owner also has no permission.", 395 String.Format("{0} permission denied. Script creator is not in the list of users allowed to execute this function and prim owner also has no permission.",
341 function)); 396 function));
342 if (ti.CreatorID != ti.OwnerID) 397 if (ti.CreatorID != ownerID)
343 { 398 {
344 if ((ti.CurrentPermissions & (uint)PermissionMask.Modify) != 0) 399 if ((ti.CurrentPermissions & (uint)PermissionMask.Modify) != 0)
345 OSSLError( 400 OSSLError(
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
index 3af9911..a1cf3df 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
@@ -322,6 +322,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
322 public const int PRIM_NAME = 27; 322 public const int PRIM_NAME = 27;
323 public const int PRIM_DESC = 28; 323 public const int PRIM_DESC = 28;
324 public const int PRIM_ROT_LOCAL = 29; 324 public const int PRIM_ROT_LOCAL = 29;
325 public const int PRIM_OMEGA = 32;
326 public const int PRIM_LINK_TARGET = 34;
325 public const int PRIM_TEXGEN_DEFAULT = 0; 327 public const int PRIM_TEXGEN_DEFAULT = 0;
326 public const int PRIM_TEXGEN_PLANAR = 1; 328 public const int PRIM_TEXGEN_PLANAR = 1;
327 329