diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs b/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs index b8943ad..898ca4a 100644 --- a/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs +++ b/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs | |||
@@ -250,11 +250,7 @@ namespace OpenSim.Region.CoreModules.World.Media.Moap | |||
250 | 250 | ||
251 | UpdateMediaUrl(part, UUID.Zero); | 251 | UpdateMediaUrl(part, UUID.Zero); |
252 | 252 | ||
253 | // Temporary code to fix llSetPrimMediaParams() bug, pending refactoring | 253 | SetPartMediaFlags(part, face, me != null); |
254 | Primitive.TextureEntry te = part.Shape.Textures; | ||
255 | Primitive.TextureEntryFace teFace = te.CreateFace((uint)face); | ||
256 | teFace.MediaFlags = me != null; | ||
257 | part.Shape.Textures = te; | ||
258 | 254 | ||
259 | part.ScheduleFullUpdate(); | 255 | part.ScheduleFullUpdate(); |
260 | part.TriggerScriptChangedEvent(Changed.MEDIA); | 256 | part.TriggerScriptChangedEvent(Changed.MEDIA); |
@@ -271,6 +267,23 @@ namespace OpenSim.Region.CoreModules.World.Media.Moap | |||
271 | } | 267 | } |
272 | 268 | ||
273 | /// <summary> | 269 | /// <summary> |
270 | /// Set the media flags on the texture face of the given part. | ||
271 | /// </summary> | ||
272 | /// <remarks> | ||
273 | /// The fact that we need a separate function to do what should be a simple one line operation is BUTT UGLY. | ||
274 | /// </remarks> | ||
275 | /// <param name="part"></param> | ||
276 | /// <param name="face"></param> | ||
277 | /// <param name="flag"></param> | ||
278 | protected void SetPartMediaFlags(SceneObjectPart part, int face, bool flag) | ||
279 | { | ||
280 | Primitive.TextureEntry te = part.Shape.Textures; | ||
281 | Primitive.TextureEntryFace teFace = te.CreateFace((uint)face); | ||
282 | teFace.MediaFlags = flag; | ||
283 | part.Shape.Textures = te; | ||
284 | } | ||
285 | |||
286 | /// <summary> | ||
274 | /// Sets or gets per face media textures. | 287 | /// Sets or gets per face media textures. |
275 | /// </summary> | 288 | /// </summary> |
276 | /// <param name="request"></param> | 289 | /// <param name="request"></param> |
@@ -393,10 +406,7 @@ namespace OpenSim.Region.CoreModules.World.Media.Moap | |||
393 | // FIXME: Race condition here since some other texture entry manipulator may overwrite/get | 406 | // FIXME: Race condition here since some other texture entry manipulator may overwrite/get |
394 | // overwritten. Unfortunately, PrimitiveBaseShape does not allow us to change texture entry | 407 | // overwritten. Unfortunately, PrimitiveBaseShape does not allow us to change texture entry |
395 | // directly. | 408 | // directly. |
396 | Primitive.TextureEntry te = part.Shape.Textures; | 409 | SetPartMediaFlags(part, i, true); |
397 | Primitive.TextureEntryFace face = te.CreateFace((uint)i); | ||
398 | face.MediaFlags = true; | ||
399 | part.Shape.Textures = te; | ||
400 | // m_log.DebugFormat( | 410 | // m_log.DebugFormat( |
401 | // "[MOAP]: Media flags for face {0} is {1}", | 411 | // "[MOAP]: Media flags for face {0} is {1}", |
402 | // i, part.Shape.Textures.FaceTextures[i].MediaFlags); | 412 | // i, part.Shape.Textures.FaceTextures[i].MediaFlags); |
@@ -428,8 +438,7 @@ namespace OpenSim.Region.CoreModules.World.Media.Moap | |||
428 | if (null == media[i]) | 438 | if (null == media[i]) |
429 | continue; | 439 | continue; |
430 | 440 | ||
431 | Primitive.TextureEntryFace face = te.CreateFace((uint)i); | 441 | SetPartMediaFlags(part, i, true); |
432 | face.MediaFlags = true; | ||
433 | 442 | ||
434 | // m_log.DebugFormat( | 443 | // m_log.DebugFormat( |
435 | // "[MOAP]: Media flags for face {0} is {1}", | 444 | // "[MOAP]: Media flags for face {0} is {1}", |