aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs10
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs17
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs61
3 files changed, 44 insertions, 44 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index 91b9634..43a9d86 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -504,12 +504,12 @@ namespace OpenSim.Region.Environment.Scenes
504 } 504 }
505 } 505 }
506 506
507 public void StartAnimation(IClientAPI client, LLUUID animID, int seq) 507 public void StartAnimation(LLUUID animID, int seq, LLUUID agentId)
508 { 508 {
509 ForEachScenePresence(delegate(ScenePresence presence) 509 Broadcast(delegate(IClientAPI client)
510 { 510 {
511 presence.ControllingClient.SendAnimation(animID, seq, client.AgentId); 511 client.SendAnimation(animID, seq, agentId);
512 }); 512 });
513 } 513 }
514 514
515 public virtual void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient) 515 public virtual void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient)
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index ab52ebf..adf501e 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -367,6 +367,10 @@ namespace OpenSim.Region.Environment.Scenes
367 updateLock.ReleaseMutex(); 367 updateLock.ReleaseMutex();
368 } 368 }
369 369
370 /// <summary>
371 /// Perform delegate action on all clients subscribing to updates from this region.
372 /// </summary>
373 /// <returns></returns>
370 internal void Broadcast(Action<IClientAPI> whatToDo) 374 internal void Broadcast(Action<IClientAPI> whatToDo)
371 { 375 {
372 m_region.Broadcast(whatToDo); 376 m_region.Broadcast(whatToDo);
@@ -775,7 +779,6 @@ namespace OpenSim.Region.Environment.Scenes
775 client.SendKillObject(avatar.RegionHandle, avatar.LocalId); 779 client.SendKillObject(avatar.RegionHandle, avatar.LocalId);
776 }); 780 });
777 781
778
779 ForEachScenePresence( 782 ForEachScenePresence(
780 delegate(ScenePresence presence) 783 delegate(ScenePresence presence)
781 { 784 {
@@ -898,12 +901,20 @@ namespace OpenSim.Region.Environment.Scenes
898 901
899 public void SendKillObject(uint localID) 902 public void SendKillObject(uint localID)
900 { 903 {
901 ForEachScenePresence(delegate(ScenePresence presence) 904 Broadcast(delegate(IClientAPI client)
902 { 905 {
903 presence.ControllingClient.SendKillObject(m_regionHandle, localID); 906 client.SendKillObject(m_regionHandle, localID);
904 }); 907 });
905 } 908 }
906 909
910 public void NotifyMyCoarseLocationChange()
911 {
912 ForEachScenePresence(delegate(ScenePresence presence)
913 {
914 presence.CoarseLocationChange();
915 });
916 }
917
907 public void SendAllSceneObjectsToClient(ScenePresence presence) 918 public void SendAllSceneObjectsToClient(ScenePresence presence)
908 { 919 {
909 foreach (EntityBase ent in Entities.Values) 920 foreach (EntityBase ent in Entities.Values)
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index d70752d..fa37b9f 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -60,8 +60,8 @@ namespace OpenSim.Region.Environment.Scenes
60 public bool IsRestrictedToRegion = false; 60 public bool IsRestrictedToRegion = false;
61 61
62 private bool m_newForce = false; 62 private bool m_newForce = false;
63 private bool newAvatar = false; 63 private bool m_newAvatar = false;
64 private bool newCoarseLocations = true; 64 private bool m_newCoarseLocations = true;
65 65
66 protected RegionInfo m_regionInfo; 66 protected RegionInfo m_regionInfo;
67 protected ulong crossingFromRegion = 0; 67 protected ulong crossingFromRegion = 0;
@@ -279,7 +279,7 @@ namespace OpenSim.Region.Environment.Scenes
279 279
280 //temporary until we move some code into the body classes 280 //temporary until we move some code into the body classes
281 281
282 if (newAvatar) 282 if (m_newAvatar)
283 { 283 {
284 //do we need to use newAvatar? not sure so have added this to kill the compile warning 284 //do we need to use newAvatar? not sure so have added this to kill the compile warning
285 } 285 }
@@ -338,7 +338,7 @@ namespace OpenSim.Region.Environment.Scenes
338 338
339 public void MakeAvatarPhysical(LLVector3 pos, bool isFlying) 339 public void MakeAvatarPhysical(LLVector3 pos, bool isFlying)
340 { 340 {
341 newAvatar = true; 341 m_newAvatar = true;
342 m_isChildAgent = false; 342 m_isChildAgent = false;
343 343
344 AbsolutePosition = pos; 344 AbsolutePosition = pos;
@@ -402,7 +402,7 @@ namespace OpenSim.Region.Environment.Scenes
402 visualParams[i] = visualParam[i].ParamValue; 402 visualParams[i] = visualParam[i].ParamValue;
403 } 403 }
404 404
405 SendArrearanceToAllOtherAgents(); 405 SendAppearanceToAllOtherAgents();
406 } 406 }
407 407
408 /// <summary> 408 /// <summary>
@@ -541,10 +541,10 @@ namespace OpenSim.Region.Environment.Scenes
541 { 541 {
542 SendPrimUpdates(); 542 SendPrimUpdates();
543 543
544 if (newCoarseLocations) 544 if (m_newCoarseLocations)
545 { 545 {
546 SendCoarseLocations(); 546 SendCoarseLocations();
547 newCoarseLocations = false; 547 m_newCoarseLocations = false;
548 } 548 }
549 549
550 if (m_isChildAgent == false) 550 if (m_isChildAgent == false)
@@ -605,13 +605,9 @@ namespace OpenSim.Region.Environment.Scenes
605 /// </summary> 605 /// </summary>
606 public void SendTerseUpdateToAllClients() 606 public void SendTerseUpdateToAllClients()
607 { 607 {
608 m_scene.ForEachScenePresence(delegate(ScenePresence presence) 608 m_scene.Broadcast( SendTerseUpdateToClient );
609 {
610 SendTerseUpdateToClient(presence.m_controllingClient);
611 });
612 } 609 }
613 610
614
615 public void SendCoarseLocations() 611 public void SendCoarseLocations()
616 { 612 {
617 List<LLVector3> CoarseLocations = new List<LLVector3>(); 613 List<LLVector3> CoarseLocations = new List<LLVector3>();
@@ -629,19 +625,10 @@ namespace OpenSim.Region.Environment.Scenes
629 625
630 public void CoarseLocationChange() 626 public void CoarseLocationChange()
631 { 627 {
632 newCoarseLocations = true; 628 m_newCoarseLocations = true;
633 } 629 }
634 630
635 private void NotifyMyCoarseLocationChange() 631
636 {
637 m_scene.ForEachScenePresence(delegate(ScenePresence presence)
638 {
639 if (presence != this)
640 {
641 presence.CoarseLocationChange();
642 }
643 });
644 }
645 632
646 633
647 /// <summary> 634 /// <summary>
@@ -681,11 +668,11 @@ namespace OpenSim.Region.Environment.Scenes
681 if (!m_isChildAgent) 668 if (!m_isChildAgent)
682 { 669 {
683 m_scene.InformClientOfNeighbours(m_controllingClient); 670 m_scene.InformClientOfNeighbours(m_controllingClient);
684 newAvatar = false; 671 m_newAvatar = false;
685 } 672 }
686 673
687 SendFullUpdateToAllClients(); 674 SendFullUpdateToAllClients();
688 SendArrearanceToAllOtherAgents(); 675 SendAppearanceToAllOtherAgents();
689 } 676 }
690 677
691 /// <summary> 678 /// <summary>
@@ -697,7 +684,7 @@ namespace OpenSim.Region.Environment.Scenes
697 m_controllingClient.SendWearables(Wearables); 684 m_controllingClient.SendWearables(Wearables);
698 685
699 //this.SendFullUpdateToAllClients(); 686 //this.SendFullUpdateToAllClients();
700 //this.SendArrearanceToAllOtherAgents(); 687 //this.SendAppearanceToAllOtherAgents();
701 688
702 m_scene.SendAllSceneObjectsToClient(this); 689 m_scene.SendAllSceneObjectsToClient(this);
703 m_controllingClient.SendViewerTime(m_scene.TimePhase); 690 m_controllingClient.SendViewerTime(m_scene.TimePhase);
@@ -716,11 +703,14 @@ namespace OpenSim.Region.Environment.Scenes
716 /// <summary> 703 /// <summary>
717 /// 704 ///
718 /// </summary> 705 /// </summary>
719 public void SendArrearanceToAllOtherAgents() 706 public void SendAppearanceToAllOtherAgents()
720 { 707 {
721 m_scene.ForEachScenePresence(delegate(ScenePresence scenePresence) 708 m_scene.ForEachScenePresence(delegate(ScenePresence scenePresence)
722 { 709 {
723 SendAppearanceToOtherAgent(scenePresence); 710 if (scenePresence != this)
711 {
712 SendAppearanceToOtherAgent(scenePresence);
713 }
724 }); 714 });
725 } 715 }
726 716
@@ -743,12 +733,12 @@ namespace OpenSim.Region.Environment.Scenes
743 { 733 {
744 CurrentAnimation = animID; 734 CurrentAnimation = animID;
745 AnimationSeq = seq; 735 AnimationSeq = seq;
736 LLUUID sourceAgentId = m_controllingClient.AgentId;
746 737
747 m_scene.ForEachScenePresence(delegate(ScenePresence scenePresence) 738 m_scene.Broadcast(delegate(IClientAPI client)
748 { 739 {
749 scenePresence.m_controllingClient.SendAnimation(animID, seq, 740 client.SendAnimation(animID, seq, sourceAgentId);
750 m_controllingClient.AgentId); 741 });
751 });
752 } 742 }
753 743
754 /// <summary> 744 /// <summary>
@@ -771,7 +761,7 @@ namespace OpenSim.Region.Environment.Scenes
771 if (OnSignificantClientMovement != null) 761 if (OnSignificantClientMovement != null)
772 { 762 {
773 OnSignificantClientMovement(m_controllingClient); 763 OnSignificantClientMovement(m_controllingClient);
774 NotifyMyCoarseLocationChange(); 764 m_scene.NotifyMyCoarseLocationChange();
775 } 765 }
776 } 766 }
777 } 767 }
@@ -845,14 +835,13 @@ namespace OpenSim.Region.Environment.Scenes
845 m_physicsActor.Flying); 835 m_physicsActor.Flying);
846 if (res) 836 if (res)
847 { 837 {
848 //TODO: following line is hard coded to port 9000, really need to change this as soon as possible
849 AgentCircuitData circuitdata = m_controllingClient.RequestClientInfo(); 838 AgentCircuitData circuitdata = m_controllingClient.RequestClientInfo();
850 string capsPath = Util.GetCapsURL(m_controllingClient.AgentId); 839 string capsPath = Util.GetCapsURL(m_controllingClient.AgentId);
851 m_controllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint, 840 m_controllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint,
852 capsPath); 841 capsPath);
853 MakeChildAgent(); 842 MakeChildAgent();
854 m_scene.SendKillObject(m_localId); 843 m_scene.SendKillObject(m_localId);
855 NotifyMyCoarseLocationChange(); 844 m_scene.NotifyMyCoarseLocationChange();
856 } 845 }
857 } 846 }
858 } 847 }