aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs20
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs29
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs1
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs5
4 files changed, 46 insertions, 9 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index f45676e..c046a0c 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -5108,18 +5108,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5108 { 5108 {
5109 m_host.CollisionSoundVolume = (float)impact_volume; 5109 m_host.CollisionSoundVolume = (float)impact_volume;
5110 m_host.CollisionSound = m_host.invalidCollisionSoundUUID; 5110 m_host.CollisionSound = m_host.invalidCollisionSoundUUID;
5111 if(impact_volume == 0.0) 5111 m_host.CollisionSoundType = -1; // disable all sounds
5112 m_host.CollisionSoundType = -1; // disable all sounds
5113 else if(impact_volume == 1.0f)
5114 m_host.CollisionSoundType = 0; // full return to default sounds
5115 else
5116 m_host.CollisionSoundType = 2; // default sounds with volume
5117 return; 5112 return;
5118 } 5113 }
5114
5119 // TODO: Parameter check logic required. 5115 // TODO: Parameter check logic required.
5120 m_host.CollisionSound = ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, impact_sound, AssetType.Sound); 5116 UUID soundId = ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, impact_sound, AssetType.Sound);
5121 m_host.CollisionSoundVolume = (float)impact_volume; 5117 if(soundId != UUID.Zero)
5122 m_host.CollisionSoundType = 1; 5118 {
5119 m_host.CollisionSound = soundId;
5120 m_host.CollisionSoundVolume = (float)impact_volume;
5121 m_host.CollisionSoundType = 1;
5122 }
5123 else
5124 m_host.CollisionSoundType = -1;
5123 } 5125 }
5124 5126
5125 public LSL_String llGetAnimation(string id) 5127 public LSL_String llGetAnimation(string id)
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index e525a2e..32405d7 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -45,6 +45,7 @@ using OpenSim.Framework;
45using OpenSim.Framework.Console; 45using OpenSim.Framework.Console;
46using OpenSim.Region.Framework.Interfaces; 46using OpenSim.Region.Framework.Interfaces;
47using OpenSim.Region.Framework.Scenes; 47using OpenSim.Region.Framework.Scenes;
48using OpenSim.Region.Framework.Scenes.Scripting;
48using OpenSim.Region.ScriptEngine.Shared; 49using OpenSim.Region.ScriptEngine.Shared;
49using OpenSim.Region.ScriptEngine.Shared.Api.Plugins; 50using OpenSim.Region.ScriptEngine.Shared.Api.Plugins;
50using OpenSim.Region.ScriptEngine.Shared.ScriptBase; 51using OpenSim.Region.ScriptEngine.Shared.ScriptBase;
@@ -4250,5 +4251,33 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4250 return m_UrlModule.RequestSecureURL(m_ScriptEngine.ScriptModule, m_host, m_item.ItemID, opts).ToString(); 4251 return m_UrlModule.RequestSecureURL(m_ScriptEngine.ScriptModule, m_host, m_item.ItemID, opts).ToString();
4251 return UUID.Zero.ToString(); 4252 return UUID.Zero.ToString();
4252 } 4253 }
4254
4255 public void osCollisionSound(string impact_sound, double impact_volume)
4256 {
4257 m_host.AddScriptLPS(1);
4258
4259 if(impact_sound == "")
4260 {
4261 m_host.CollisionSoundVolume = (float)impact_volume;
4262 m_host.CollisionSound = m_host.invalidCollisionSoundUUID;
4263 if(impact_volume == 0.0)
4264 m_host.CollisionSoundType = -1; // disable all sounds
4265 else if(impact_volume == 1.0f)
4266 m_host.CollisionSoundType = 0; // full return to default sounds
4267 else
4268 m_host.CollisionSoundType = 2; // default sounds with volume
4269 return;
4270 }
4271 // TODO: Parameter check logic required.
4272 UUID soundId = ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, impact_sound, AssetType.Sound);
4273 if(soundId != UUID.Zero)
4274 {
4275 m_host.CollisionSound = soundId;
4276 m_host.CollisionSoundVolume = (float)impact_volume;
4277 m_host.CollisionSoundType = 1;
4278 }
4279 else
4280 m_host.CollisionSoundType = -1;
4281 }
4253 } 4282 }
4254} 4283}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
index c99679e..8851e5f 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
@@ -476,5 +476,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
476 476
477 LSL_String osRequestURL(LSL_List options); 477 LSL_String osRequestURL(LSL_List options);
478 LSL_String osRequestSecureURL(LSL_List options); 478 LSL_String osRequestSecureURL(LSL_List options);
479 void osCollisionSound(string impact_sound, double impact_volume);
479 } 480 }
480} 481}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
index 35eee59..9ef6996 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -1089,5 +1089,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
1089 { 1089 {
1090 return m_OSSL_Functions.osRequestSecureURL(options); 1090 return m_OSSL_Functions.osRequestSecureURL(options);
1091 } 1091 }
1092
1093 public void osCollisionSound(string impact_sound, double impact_volume)
1094 {
1095 osCollisionSound(impact_sound, impact_volume);
1096 }
1092 } 1097 }
1093} 1098}