diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 8bf9482..59a3618 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -6892,7 +6892,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
6892 | 6892 | ||
6893 | public void llSetLinkPrimitiveParamsFast(int linknumber, LSL_List rules) | 6893 | public void llSetLinkPrimitiveParamsFast(int linknumber, LSL_List rules) |
6894 | { | 6894 | { |
6895 | llSetLinkPrimitiveParams(linknumber, rules); | 6895 | m_host.AddScriptLPS(1); |
6896 | |||
6897 | List<SceneObjectPart> parts = GetLinkParts(linknumber); | ||
6898 | |||
6899 | foreach (SceneObjectPart part in parts) | ||
6900 | SetPrimParams(part, rules); | ||
6896 | } | 6901 | } |
6897 | 6902 | ||
6898 | protected void SetPrimParams(SceneObjectPart part, LSL_List rules) | 6903 | protected void SetPrimParams(SceneObjectPart part, LSL_List rules) |
@@ -8404,6 +8409,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
8404 | 8409 | ||
8405 | for (j = 0; j < seplen; j++) | 8410 | for (j = 0; j < seplen; j++) |
8406 | { | 8411 | { |
8412 | if (separray[j].ToString() == String.Empty) | ||
8413 | active[j] = false; | ||
8414 | |||
8407 | if (active[j]) | 8415 | if (active[j]) |
8408 | { | 8416 | { |
8409 | // scan all of the markers | 8417 | // scan all of the markers |
@@ -8432,6 +8440,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
8432 | { | 8440 | { |
8433 | for (j = seplen; (j < mlen) && (offset[best] > beginning); j++) | 8441 | for (j = seplen; (j < mlen) && (offset[best] > beginning); j++) |
8434 | { | 8442 | { |
8443 | if (spcarray[j-seplen].ToString() == String.Empty) | ||
8444 | active[j] = false; | ||
8445 | |||
8435 | if (active[j]) | 8446 | if (active[j]) |
8436 | { | 8447 | { |
8437 | // scan all of the markers | 8448 | // scan all of the markers |
@@ -9090,10 +9101,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
9090 | // do that one last, it will cause a ParcelPropertiesUpdate | 9101 | // do that one last, it will cause a ParcelPropertiesUpdate |
9091 | landObject.SetMediaUrl(url); | 9102 | landObject.SetMediaUrl(url); |
9092 | 9103 | ||
9093 | // now send to all (non-child) agents | 9104 | // now send to all (non-child) agents in the parcel |
9094 | World.ForEachScenePresence(delegate(ScenePresence sp) | 9105 | World.ForEachScenePresence(delegate(ScenePresence sp) |
9095 | { | 9106 | { |
9096 | if (!sp.IsChildAgent) | 9107 | if (!sp.IsChildAgent && (sp.currentParcelUUID == landData.GlobalID)) |
9097 | { | 9108 | { |
9098 | sp.ControllingClient.SendParcelMediaUpdate(landData.MediaURL, | 9109 | sp.ControllingClient.SendParcelMediaUpdate(landData.MediaURL, |
9099 | landData.MediaID, | 9110 | landData.MediaID, |
@@ -9123,10 +9134,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
9123 | // the commandList contained a start/stop/... command, too | 9134 | // the commandList contained a start/stop/... command, too |
9124 | if (presence == null) | 9135 | if (presence == null) |
9125 | { | 9136 | { |
9126 | // send to all (non-child) agents | 9137 | // send to all (non-child) agents in the parcel |
9127 | World.ForEachScenePresence(delegate(ScenePresence sp) | 9138 | World.ForEachScenePresence(delegate(ScenePresence sp) |
9128 | { | 9139 | { |
9129 | if (!sp.IsChildAgent) | 9140 | if (!sp.IsChildAgent && (sp.currentParcelUUID == landData.GlobalID)) |
9130 | { | 9141 | { |
9131 | sp.ControllingClient.SendParcelMediaCommand(0x4, // TODO what is this? | 9142 | sp.ControllingClient.SendParcelMediaCommand(0x4, // TODO what is this? |
9132 | (ParcelMediaCommandEnum)commandToSend, | 9143 | (ParcelMediaCommandEnum)commandToSend, |