diff options
author | Homer Horwitz | 2009-03-15 21:34:28 +0000 |
---|---|---|
committer | Homer Horwitz | 2009-03-15 21:34:28 +0000 |
commit | abc5df12c883ab14bf7926fc047431249ba52cb5 (patch) | |
tree | ff9042dde59b02e97b1ed2ebe6e39c7db855c615 /OpenSim/Client/MXP/ClientStack/MXPClientView.cs | |
parent | regionInfo isn't defined here yet, which leads to a NRE. Grid-server (diff) | |
download | opensim-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.cs | 34 |
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() |