diff options
-rw-r--r-- | OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs index 5b1408f..e5167aa 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | |||
@@ -1432,15 +1432,20 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1432 | // or when the prim gets moved, changed, sat on, whatever | 1432 | // or when the prim gets moved, changed, sat on, whatever |
1433 | // see large number of mantises (mantes?) | 1433 | // see large number of mantises (mantes?) |
1434 | // 20080530 Updated to remove code duplication | 1434 | // 20080530 Updated to remove code duplication |
1435 | // 20080530 Stop sound if there is one, otherwise volume only changes don't work | ||
1435 | public void llLoopSound(string sound, double volume) | 1436 | public void llLoopSound(string sound, double volume) |
1436 | { | 1437 | { |
1437 | m_host.AddScriptLPS(1); | 1438 | m_host.AddScriptLPS(1); |
1438 | 1439 | ||
1440 | if (m_host.Sound != LLUUID.Zero) | ||
1441 | llStopSound(); | ||
1442 | |||
1439 | m_host.Sound = KeyOrName(sound); | 1443 | m_host.Sound = KeyOrName(sound); |
1440 | m_host.SoundGain = volume; | 1444 | m_host.SoundGain = volume; |
1441 | m_host.SoundFlags = 1; // looping | 1445 | m_host.SoundFlags = 1; // looping |
1442 | m_host.SoundRadius = 20; // Magic number, 20 seems reasonable. Make configurable? | 1446 | m_host.SoundRadius = 20; // Magic number, 20 seems reasonable. Make configurable? |
1443 | 1447 | ||
1448 | m_host.ScheduleFullUpdate(); | ||
1444 | m_host.SendFullUpdateToAllClients(); | 1449 | m_host.SendFullUpdateToAllClients(); |
1445 | } | 1450 | } |
1446 | 1451 | ||
@@ -1478,6 +1483,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1478 | m_host.SoundFlags = 0; | 1483 | m_host.SoundFlags = 0; |
1479 | m_host.SoundRadius = 0; | 1484 | m_host.SoundRadius = 0; |
1480 | 1485 | ||
1486 | m_host.ScheduleFullUpdate(); | ||
1481 | m_host.SendFullUpdateToAllClients(); | 1487 | m_host.SendFullUpdateToAllClients(); |
1482 | 1488 | ||
1483 | // m_host.SendSound(LLUUID.Zero.ToString(), 1.0, false, 2); | 1489 | // m_host.SendSound(LLUUID.Zero.ToString(), 1.0, false, 2); |