diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 10 | ||||
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index c7e59ac..2533002 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -4627,7 +4627,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
4627 | public void llCollisionSound(string impact_sound, double impact_volume) | 4627 | public void llCollisionSound(string impact_sound, double impact_volume) |
4628 | { | 4628 | { |
4629 | m_host.AddScriptLPS(1); | 4629 | m_host.AddScriptLPS(1); |
4630 | 4630 | ||
4631 | if(impact_sound == "") | ||
4632 | { | ||
4633 | m_host.CollisionSoundVolume = (float)impact_volume; | ||
4634 | m_host.CollisionSound = m_host.invalidCollisionSoundUUID; | ||
4635 | return; | ||
4636 | } | ||
4631 | // TODO: Parameter check logic required. | 4637 | // TODO: Parameter check logic required. |
4632 | UUID soundId = UUID.Zero; | 4638 | UUID soundId = UUID.Zero; |
4633 | if (!UUID.TryParse(impact_sound, out soundId)) | 4639 | if (!UUID.TryParse(impact_sound, out soundId)) |
@@ -4643,8 +4649,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
4643 | } | 4649 | } |
4644 | m_host.TaskInventory.LockItemsForRead(false); | 4650 | m_host.TaskInventory.LockItemsForRead(false); |
4645 | } | 4651 | } |
4646 | m_host.CollisionSound = soundId; | ||
4647 | m_host.CollisionSoundVolume = (float)impact_volume; | 4652 | m_host.CollisionSoundVolume = (float)impact_volume; |
4653 | m_host.CollisionSound = soundId; | ||
4648 | } | 4654 | } |
4649 | 4655 | ||
4650 | public LSL_String llGetAnimation(string id) | 4656 | public LSL_String llGetAnimation(string id) |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs index 5cad883..1c59d45 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs | |||
@@ -847,6 +847,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance | |||
847 | SceneObjectPart part = Engine.World.GetSceneObjectPart(LocalID); | 847 | SceneObjectPart part = Engine.World.GetSceneObjectPart(LocalID); |
848 | part.Inventory.GetInventoryItem(ItemID).PermsMask = 0; | 848 | part.Inventory.GetInventoryItem(ItemID).PermsMask = 0; |
849 | part.Inventory.GetInventoryItem(ItemID).PermsGranter = UUID.Zero; | 849 | part.Inventory.GetInventoryItem(ItemID).PermsGranter = UUID.Zero; |
850 | part.CollisionSound = UUID.Zero; | ||
850 | AsyncCommandManager.RemoveScript(Engine, LocalID, ItemID); | 851 | AsyncCommandManager.RemoveScript(Engine, LocalID, ItemID); |
851 | EventQueue.Clear(); | 852 | EventQueue.Clear(); |
852 | m_Script.ResetVars(); | 853 | m_Script.ResetVars(); |
@@ -873,6 +874,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance | |||
873 | SceneObjectPart part = Engine.World.GetSceneObjectPart(LocalID); | 874 | SceneObjectPart part = Engine.World.GetSceneObjectPart(LocalID); |
874 | part.Inventory.GetInventoryItem(ItemID).PermsMask = 0; | 875 | part.Inventory.GetInventoryItem(ItemID).PermsMask = 0; |
875 | part.Inventory.GetInventoryItem(ItemID).PermsGranter = UUID.Zero; | 876 | part.Inventory.GetInventoryItem(ItemID).PermsGranter = UUID.Zero; |
877 | part.CollisionSound = UUID.Zero; | ||
876 | AsyncCommandManager.RemoveScript(Engine, LocalID, ItemID); | 878 | AsyncCommandManager.RemoveScript(Engine, LocalID, ItemID); |
877 | 879 | ||
878 | EventQueue.Clear(); | 880 | EventQueue.Clear(); |