aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorlbsa712007-10-29 12:59:04 +0000
committerlbsa712007-10-29 12:59:04 +0000
commit27b5fad56dbf94888d93656373a0350752396295 (patch)
tree936048ba9678d9364dcada3ce83bab066e7b8543 /OpenSim
parent* ModuleLoader: Privatized some too-public fields (diff)
downloadopensim-SC-27b5fad56dbf94888d93656373a0350752396295.zip
opensim-SC-27b5fad56dbf94888d93656373a0350752396295.tar.gz
opensim-SC-27b5fad56dbf94888d93656373a0350752396295.tar.bz2
opensim-SC-27b5fad56dbf94888d93656373a0350752396295.tar.xz
* Removed AssetNotFound as it crashes client
* Fixed introduced bugs in ScenePresence
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Framework/Communications/Cache/AssetCache.cs26
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs80
2 files changed, 56 insertions, 50 deletions
diff --git a/OpenSim/Framework/Communications/Cache/AssetCache.cs b/OpenSim/Framework/Communications/Cache/AssetCache.cs
index 4c18744..1f5b336 100644
--- a/OpenSim/Framework/Communications/Cache/AssetCache.cs
+++ b/OpenSim/Framework/Communications/Cache/AssetCache.cs
@@ -358,19 +358,19 @@ namespace OpenSim.Framework.Communications.Cache
358 358
359 public void AssetNotFound(LLUUID assetID) 359 public void AssetNotFound(LLUUID assetID)
360 { 360 {
361 if (this.RequestedTextures.ContainsKey(assetID)) 361 //if (this.RequestedTextures.ContainsKey(assetID))
362 { 362 //{
363 MainLog.Instance.Warn("ASSET CACHE", "sending image not found for {0}", assetID); 363 // MainLog.Instance.Warn("ASSET CACHE", "sending image not found for {0}", assetID);
364 AssetRequest req = this.RequestedTextures[assetID]; 364 // AssetRequest req = this.RequestedTextures[assetID];
365 ImageNotInDatabasePacket notFound = new ImageNotInDatabasePacket(); 365 // ImageNotInDatabasePacket notFound = new ImageNotInDatabasePacket();
366 notFound.ImageID.ID = assetID; 366 // notFound.ImageID.ID = assetID;
367 req.RequestUser.OutPacket(notFound); 367 // req.RequestUser.OutPacket(notFound);
368 this.RequestedTextures.Remove(assetID); 368 // this.RequestedTextures.Remove(assetID);
369 } 369 //}
370 else 370 //else
371 { 371 //{
372 MainLog.Instance.Error("ASSET CACHE", "Cound not send image not found for {0}", assetID); 372 // MainLog.Instance.Error("ASSET CACHE", "Cound not send image not found for {0}", assetID);
373 } 373 //}
374 } 374 }
375 375
376 #region Assets 376 #region Assets
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 9b6e58d..122a64f 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -248,8 +248,8 @@ namespace OpenSim.Region.Environment.Scenes
248 Animations.LoadAnims(); 248 Animations.LoadAnims();
249 249
250 //register for events 250 //register for events
251 m_controllingClient.OnRequestWearables += SendAppearance; 251 m_controllingClient.OnRequestWearables += SendOurAppearance;
252 m_controllingClient.OnSetAppearance += SetAppearance; 252 m_controllingClient.OnSetAppearance += new SetAppearance(SetAppearance);
253 m_controllingClient.OnCompleteMovementToRegion += CompleteMovement; 253 m_controllingClient.OnCompleteMovementToRegion += CompleteMovement;
254 m_controllingClient.OnCompleteMovementToRegion += SendInitialData; 254 m_controllingClient.OnCompleteMovementToRegion += SendInitialData;
255 m_controllingClient.OnAgentUpdate += HandleAgentUpdate; 255 m_controllingClient.OnAgentUpdate += HandleAgentUpdate;
@@ -412,7 +412,7 @@ namespace OpenSim.Region.Environment.Scenes
412 m_visualParams[i] = visualParam[i].ParamValue; 412 m_visualParams[i] = visualParam[i].ParamValue;
413 } 413 }
414 414
415 SendAppearanceToAllOtherClients(); 415 SendAppearanceToAllOtherAgents();
416 } 416 }
417 417
418 /// <summary> 418 /// <summary>
@@ -707,19 +707,16 @@ namespace OpenSim.Region.Environment.Scenes
707 707
708 public void SendFullUpdateToAllClients() 708 public void SendFullUpdateToAllClients()
709 { 709 {
710 List<ScenePresence> agents = m_scene.GetScenePresences(); 710 List<ScenePresence> avatars = m_scene.GetScenePresences();
711 foreach (ScenePresence agent in agents) 711 foreach (ScenePresence avatar in avatars)
712 { 712 {
713 IClientAPI client = agent.ControllingClient; 713 SendFullUpdateToOtherClient(avatar);
714 client.SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_uuid, 714 if (avatar.LocalId != LocalId)
715 LocalId, AbsolutePosition, m_textureEntry.ToBytes(), m_parentID );
716
717 if (agent.LocalId != LocalId)
718 { 715 {
719 if (!agent.m_isChildAgent) 716 if (!avatar.m_isChildAgent)
720 { 717 {
721 client.SendAppearance(m_controllingClient.AgentId, m_visualParams, 718 avatar.SendFullUpdateToOtherClient(this);
722 m_textureEntry.ToBytes()); 719 avatar.SendAppearanceToOtherAgent(this);
723 } 720 }
724 } 721 }
725 } 722 }
@@ -739,28 +736,22 @@ namespace OpenSim.Region.Environment.Scenes
739 } 736 }
740 737
741 SendFullUpdateToAllClients(); 738 SendFullUpdateToAllClients();
742 SendAppearanceToAllOtherClients(); 739 SendAppearanceToAllOtherAgents();
743 } 740 }
744 741
745 public void SetWearable( int wearableId, AvatarWearable wearable ) 742 /// <summary>
746 { 743 ///
747 m_wearables[wearableId] = wearable; 744 /// </summary>
748 745 /// <param name="client"></param>
749 m_scene.ForEachClient( delegate( IClientAPI client ) 746 public void SendOurAppearance(IClientAPI client)
750 {
751 SendAppearance( client );
752 });
753 }
754
755 public void SendAppearance(IClientAPI client)
756 { 747 {
757 client.SendWearables(m_wearables); 748 client.SendWearables(m_wearables);
758 749
759 //this.SendFullUpdateToAllClients(); 750 //this.SendFullUpdateToAllClients();
760 //this.SendAppearanceToAllOtherClients(); 751 //this.SendAppearanceToAllOtherAgents();
761 752
762 m_scene.SendAllSceneObjectsToClient(this); 753 m_scene.SendAllSceneObjectsToClient(this);
763 client.SendViewerTime(m_scene.TimePhase); 754 m_controllingClient.SendViewerTime(m_scene.TimePhase);
764 755
765 //Please don't remove the following code (at least not yet), just leave it commented out 756 //Please don't remove the following code (at least not yet), just leave it commented out
766 //gives the user god powers, should help with debuging things in the future 757 //gives the user god powers, should help with debuging things in the future
@@ -776,16 +767,25 @@ namespace OpenSim.Region.Environment.Scenes
776 /// <summary> 767 /// <summary>
777 /// 768 ///
778 /// </summary> 769 /// </summary>
779 public void SendAppearanceToAllOtherClients() 770 public void SendAppearanceToAllOtherAgents()
780 { 771 {
781 m_scene.ForEachClient(delegate(IClientAPI client) 772 m_scene.ForEachScenePresence(delegate(ScenePresence scenePresence)
782 { 773 {
783 if( client != m_controllingClient ) 774 if (scenePresence != this)
784 { 775 {
785 client.SendAppearance(m_controllingClient.AgentId, m_visualParams, 776 SendAppearanceToOtherAgent(scenePresence);
786 m_textureEntry.ToBytes() ); 777 }
787 } 778 });
788 }); 779 }
780
781 /// <summary>
782 ///
783 /// </summary>
784 /// <param name="avatarInfo"></param>
785 public void SendAppearanceToOtherAgent(ScenePresence avatarInfo)
786 {
787 avatarInfo.m_controllingClient.SendAppearance(m_controllingClient.AgentId, m_visualParams,
788 m_textureEntry.ToBytes());
789 } 789 }
790 790
791 /// <summary> 791 /// <summary>
@@ -1005,5 +1005,11 @@ namespace OpenSim.Region.Environment.Scenes
1005 { 1005 {
1006 RemoveFromPhysicalScene(); 1006 RemoveFromPhysicalScene();
1007 } 1007 }
1008
1009 public void SetWearable(int wearableId, AvatarWearable wearable)
1010 {
1011 m_wearables[wearableId] = wearable;
1012 SendOurAppearance( m_controllingClient );
1013 }
1008 } 1014 }
1009} 1015}