diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 5 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 152 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 3 |
3 files changed, 5 insertions, 155 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 9f87e1e..2066536 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -3552,9 +3552,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
3552 | } | 3552 | } |
3553 | else | 3553 | else |
3554 | { | 3554 | { |
3555 | // We remove the acd up here to avoid later raec conditions if two RemoveClient() calls occurred | 3555 | // We remove the acd up here to avoid later race conditions if two RemoveClient() calls occurred |
3556 | // simultaneously. | 3556 | // simultaneously. |
3557 | m_authenticateHandler.RemoveCircuit(acd.circuitcode); | 3557 | // We also need to remove by agent ID since NPCs will have no circuit code. |
3558 | m_authenticateHandler.RemoveCircuit(agentID); | ||
3558 | } | 3559 | } |
3559 | } | 3560 | } |
3560 | 3561 | ||
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 248679b..b7f4291 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -2895,38 +2895,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2895 | ScheduleTerseUpdate(); | 2895 | ScheduleTerseUpdate(); |
2896 | } | 2896 | } |
2897 | 2897 | ||
2898 | public void PreloadSound(string sound) | ||
2899 | { | ||
2900 | // UUID ownerID = OwnerID; | ||
2901 | UUID objectID = ParentGroup.RootPart.UUID; | ||
2902 | UUID soundID = UUID.Zero; | ||
2903 | |||
2904 | if (!UUID.TryParse(sound, out soundID)) | ||
2905 | { | ||
2906 | //Trys to fetch sound id from prim's inventory. | ||
2907 | //Prim's inventory doesn't support non script items yet | ||
2908 | |||
2909 | TaskInventory.LockItemsForRead(true); | ||
2910 | |||
2911 | foreach (KeyValuePair<UUID, TaskInventoryItem> item in TaskInventory) | ||
2912 | { | ||
2913 | if (item.Value.Name == sound) | ||
2914 | { | ||
2915 | soundID = item.Value.ItemID; | ||
2916 | break; | ||
2917 | } | ||
2918 | } | ||
2919 | |||
2920 | TaskInventory.LockItemsForRead(false); | ||
2921 | } | ||
2922 | |||
2923 | ParentGroup.Scene.ForEachRootScenePresence(delegate(ScenePresence sp) | ||
2924 | { | ||
2925 | if (!(Util.GetDistanceTo(sp.AbsolutePosition, AbsolutePosition) >= 100)) | ||
2926 | sp.ControllingClient.SendPreLoadSound(objectID, objectID, soundID); | ||
2927 | }); | ||
2928 | } | ||
2929 | |||
2930 | public void RemFlag(PrimFlags flag) | 2898 | public void RemFlag(PrimFlags flag) |
2931 | { | 2899 | { |
2932 | // PrimFlags prevflag = Flags; | 2900 | // PrimFlags prevflag = Flags; |
@@ -3298,126 +3266,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
3298 | } | 3266 | } |
3299 | 3267 | ||
3300 | /// <summary> | 3268 | /// <summary> |
3301 | /// Trigger or play an attached sound in this part's inventory. | ||
3302 | /// </summary> | ||
3303 | /// <param name="sound"></param> | ||
3304 | /// <param name="volume"></param> | ||
3305 | /// <param name="triggered"></param> | ||
3306 | /// <param name="flags"></param> | ||
3307 | public void SendSound(string sound, double volume, bool triggered, byte flags, float radius, bool useMaster, bool isMaster) | ||
3308 | { | ||
3309 | if (volume > 1) | ||
3310 | volume = 1; | ||
3311 | if (volume < 0) | ||
3312 | volume = 0; | ||
3313 | |||
3314 | UUID ownerID = OwnerID; | ||
3315 | UUID objectID = ParentGroup.RootPart.UUID; | ||
3316 | UUID parentID = ParentGroup.UUID; | ||
3317 | |||
3318 | UUID soundID = UUID.Zero; | ||
3319 | Vector3 position = AbsolutePosition; // region local | ||
3320 | ulong regionHandle = ParentGroup.Scene.RegionInfo.RegionHandle; | ||
3321 | |||
3322 | if (!UUID.TryParse(sound, out soundID)) | ||
3323 | { | ||
3324 | // search sound file from inventory | ||
3325 | TaskInventory.LockItemsForRead(true); | ||
3326 | foreach (KeyValuePair<UUID, TaskInventoryItem> item in TaskInventory) | ||
3327 | { | ||
3328 | if (item.Value.Name == sound && item.Value.Type == (int)AssetType.Sound) | ||
3329 | { | ||
3330 | soundID = item.Value.ItemID; | ||
3331 | break; | ||
3332 | } | ||
3333 | } | ||
3334 | TaskInventory.LockItemsForRead(false); | ||
3335 | } | ||
3336 | |||
3337 | if (soundID == UUID.Zero) | ||
3338 | return; | ||
3339 | |||
3340 | ISoundModule soundModule = ParentGroup.Scene.RequestModuleInterface<ISoundModule>(); | ||
3341 | if (soundModule != null) | ||
3342 | { | ||
3343 | if (useMaster) | ||
3344 | { | ||
3345 | if (isMaster) | ||
3346 | { | ||
3347 | if (triggered) | ||
3348 | soundModule.TriggerSound(soundID, ownerID, objectID, parentID, volume, position, regionHandle, radius); | ||
3349 | else | ||
3350 | soundModule.PlayAttachedSound(soundID, ownerID, objectID, volume, position, flags, radius); | ||
3351 | ParentGroup.PlaySoundMasterPrim = this; | ||
3352 | ownerID = OwnerID; | ||
3353 | objectID = ParentGroup.RootPart.UUID; | ||
3354 | parentID = ParentGroup.UUID; | ||
3355 | position = AbsolutePosition; // region local | ||
3356 | regionHandle = ParentGroup.Scene.RegionInfo.RegionHandle; | ||
3357 | if (triggered) | ||
3358 | soundModule.TriggerSound(soundID, ownerID, objectID, parentID, volume, position, regionHandle, radius); | ||
3359 | else | ||
3360 | soundModule.PlayAttachedSound(soundID, ownerID, objectID, volume, position, flags, radius); | ||
3361 | foreach (SceneObjectPart prim in ParentGroup.PlaySoundSlavePrims) | ||
3362 | { | ||
3363 | ownerID = prim.OwnerID; | ||
3364 | objectID = prim.ParentGroup.RootPart.UUID; | ||
3365 | parentID = prim.ParentGroup.UUID; | ||
3366 | position = prim.AbsolutePosition; // region local | ||
3367 | regionHandle = prim.ParentGroup.Scene.RegionInfo.RegionHandle; | ||
3368 | if (triggered) | ||
3369 | soundModule.TriggerSound(soundID, ownerID, objectID, parentID, volume, position, regionHandle, radius); | ||
3370 | else | ||
3371 | soundModule.PlayAttachedSound(soundID, ownerID, objectID, volume, position, flags, radius); | ||
3372 | } | ||
3373 | ParentGroup.PlaySoundSlavePrims.Clear(); | ||
3374 | ParentGroup.PlaySoundMasterPrim = null; | ||
3375 | } | ||
3376 | else | ||
3377 | { | ||
3378 | ParentGroup.PlaySoundSlavePrims.Add(this); | ||
3379 | } | ||
3380 | } | ||
3381 | else | ||
3382 | { | ||
3383 | if (triggered) | ||
3384 | soundModule.TriggerSound(soundID, ownerID, objectID, parentID, volume, position, regionHandle, radius); | ||
3385 | else | ||
3386 | soundModule.PlayAttachedSound(soundID, ownerID, objectID, volume, position, flags, radius); | ||
3387 | } | ||
3388 | } | ||
3389 | } | ||
3390 | |||
3391 | public void SendCollisionSound(UUID soundID, double volume, Vector3 position) | ||
3392 | { | ||
3393 | if (soundID == UUID.Zero) | ||
3394 | return; | ||
3395 | |||
3396 | ISoundModule soundModule = ParentGroup.Scene.RequestModuleInterface<ISoundModule>(); | ||
3397 | if (soundModule == null) | ||
3398 | return; | ||
3399 | |||
3400 | if (volume > 1) | ||
3401 | volume = 1; | ||
3402 | if (volume < 0) | ||
3403 | volume = 0; | ||
3404 | |||
3405 | int now = Util.EnvironmentTickCount(); | ||
3406 | if(Util.EnvironmentTickCountSubtract(now,LastColSoundSentTime) <200) | ||
3407 | return; | ||
3408 | |||
3409 | LastColSoundSentTime = now; | ||
3410 | |||
3411 | UUID ownerID = OwnerID; | ||
3412 | UUID objectID = ParentGroup.RootPart.UUID; | ||
3413 | UUID parentID = ParentGroup.UUID; | ||
3414 | ulong regionHandle = ParentGroup.Scene.RegionInfo.RegionHandle; | ||
3415 | |||
3416 | soundModule.TriggerSound(soundID, ownerID, objectID, parentID, volume, position, regionHandle, 0 ); | ||
3417 | } | ||
3418 | |||
3419 | |||
3420 | /// <summary> | ||
3421 | /// Send a terse update to all clients | 3269 | /// Send a terse update to all clients |
3422 | /// </summary> | 3270 | /// </summary> |
3423 | public void SendTerseUpdateToAllClients() | 3271 | public void SendTerseUpdateToAllClients() |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 870bd66..285d1ae 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -75,8 +75,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
75 | { | 75 | { |
76 | // ~ScenePresence() | 76 | // ~ScenePresence() |
77 | // { | 77 | // { |
78 | // m_log.Debug("[SCENE PRESENCE] Destructor called"); | 78 | // m_log.DebugFormat("[SCENE PRESENCE]: Destructor called on {0}", Name); |
79 | // } | 79 | // } |
80 | |||
80 | private void TriggerScenePresenceUpdated() | 81 | private void TriggerScenePresenceUpdated() |
81 | { | 82 | { |
82 | if (m_scene != null) | 83 | if (m_scene != null) |