aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Client/MXP/ClientStack/MXPClientView.cs
diff options
context:
space:
mode:
authorHomer Horwitz2009-03-15 21:34:28 +0000
committerHomer Horwitz2009-03-15 21:34:28 +0000
commitabc5df12c883ab14bf7926fc047431249ba52cb5 (patch)
treeff9042dde59b02e97b1ed2ebe6e39c7db855c615 /OpenSim/Client/MXP/ClientStack/MXPClientView.cs
parentregionInfo isn't defined here yet, which leads to a NRE. Grid-server (diff)
downloadopensim-SC-abc5df12c883ab14bf7926fc047431249ba52cb5.zip
opensim-SC-abc5df12c883ab14bf7926fc047431249ba52cb5.tar.gz
opensim-SC-abc5df12c883ab14bf7926fc047431249ba52cb5.tar.bz2
opensim-SC-abc5df12c883ab14bf7926fc047431249ba52cb5.tar.xz
This patch improves MXP connect and disconnect functionality.
- Avatars are now properly on top of terrain. - ScenePresence is now removed from Scene only once. Fixes Mantis #3302. Thanks tlaukkan.
Diffstat (limited to 'OpenSim/Client/MXP/ClientStack/MXPClientView.cs')
-rw-r--r--OpenSim/Client/MXP/ClientStack/MXPClientView.cs34
1 files changed, 21 insertions, 13 deletions
diff --git a/OpenSim/Client/MXP/ClientStack/MXPClientView.cs b/OpenSim/Client/MXP/ClientStack/MXPClientView.cs
index 9052443..5a7accf 100644
--- a/OpenSim/Client/MXP/ClientStack/MXPClientView.cs
+++ b/OpenSim/Client/MXP/ClientStack/MXPClientView.cs
@@ -189,8 +189,6 @@ namespace OpenSim.Client.MXP.ClientStack
189 189
190 private void MXPProcessModifyRequest(ModifyRequestMessage modifyRequest) 190 private void MXPProcessModifyRequest(ModifyRequestMessage modifyRequest)
191 { 191 {
192 m_log.Debug("Received modify request for: " + modifyRequest.ObjectFragment.ObjectName);
193
194 ObjectFragment objectFragment=modifyRequest.ObjectFragment; 192 ObjectFragment objectFragment=modifyRequest.ObjectFragment;
195 if (objectFragment.ObjectId == m_userID.Guid) 193 if (objectFragment.ObjectId == m_userID.Guid)
196 { 194 {
@@ -448,7 +446,7 @@ namespace OpenSim.Client.MXP.ClientStack
448 Session.Send(pe); 446 Session.Send(pe);
449 } 447 }
450 448
451 public void MXPSentSynchronizationBegin(int objectCount) 449 public void MXPSendSynchronizationBegin(int objectCount)
452 { 450 {
453 m_objectsToSynchronize = objectCount; 451 m_objectsToSynchronize = objectCount;
454 m_objectsSynchronized = 0; 452 m_objectsSynchronized = 0;
@@ -767,6 +765,15 @@ namespace OpenSim.Client.MXP.ClientStack
767 //throw new System.NotImplementedException(); 765 //throw new System.NotImplementedException();
768 } 766 }
769 767
768 public void OnClean()
769 {
770 if (OnLogout != null)
771 OnLogout(this);
772
773 if (OnConnectionClosed != null)
774 OnConnectionClosed(this);
775 }
776
770 public void Close(bool ShutdownCircuit) 777 public void Close(bool ShutdownCircuit)
771 { 778 {
772 m_log.Info("[MXP ClientStack] Close Called with SC=" + ShutdownCircuit); 779 m_log.Info("[MXP ClientStack] Close Called with SC=" + ShutdownCircuit);
@@ -780,16 +787,6 @@ namespace OpenSim.Client.MXP.ClientStack
780 Session.SetStateDisconnected(); 787 Session.SetStateDisconnected();
781 } 788 }
782 789
783 // Handle OpenSim cleanup
784 if (ShutdownCircuit)
785 {
786 if (OnConnectionClosed != null)
787 OnConnectionClosed(this);
788 }
789 else
790 {
791 Scene.RemoveClient(AgentId);
792 }
793 } 790 }
794 791
795 public void Kick(string message) 792 public void Kick(string message)
@@ -800,6 +797,17 @@ namespace OpenSim.Client.MXP.ClientStack
800 public void Start() 797 public void Start()
801 { 798 {
802 Scene.AddNewClient(this); 799 Scene.AddNewClient(this);
800
801 // Mimicking LLClientView which gets always set appearance from client.
802 OpenSim.Region.Framework.Scenes.Scene scene=(OpenSim.Region.Framework.Scenes.Scene)Scene;
803 AvatarAppearance appearance;
804 scene.GetAvatarAppearance(this,out appearance);
805 List<byte> visualParams = new List<byte>();
806 foreach (byte visualParam in appearance.VisualParams)
807 {
808 visualParams.Add(visualParam);
809 }
810 OnSetAppearance(appearance.Texture.ToBytes(), visualParams);
803 } 811 }
804 812
805 public void Stop() 813 public void Stop()