aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDiva Canto2013-07-20 17:58:32 -0700
committerDiva Canto2013-07-21 09:01:44 -0700
commitb5ab0698d6328c90d779c2af29914da840335233 (patch)
treec78baed03c24a8f78ff210962bb6e9acf302c653
parentFilter certain viewer effects depending on distance between the avatar that i... (diff)
downloadopensim-SC_OLD-b5ab0698d6328c90d779c2af29914da840335233.zip
opensim-SC_OLD-b5ab0698d6328c90d779c2af29914da840335233.tar.gz
opensim-SC_OLD-b5ab0698d6328c90d779c2af29914da840335233.tar.bz2
opensim-SC_OLD-b5ab0698d6328c90d779c2af29914da840335233.tar.xz
EDIT BEAMS!!! They had been missing from OpenSim since ever. Thanks to lkalif for telling me how to route the information. The viewer effect is under the distance filter, so only avatars with cameras < 10m away see the beams.
-rw-r--r--OpenSim/Framework/IClientAPI.cs2
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs27
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs5
-rw-r--r--OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs2
-rw-r--r--OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs2
-rw-r--r--OpenSim/Tests/Common/Mock/TestClient.cs2
6 files changed, 12 insertions, 28 deletions
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs
index f39eb0c..98358e5 100644
--- a/OpenSim/Framework/IClientAPI.cs
+++ b/OpenSim/Framework/IClientAPI.cs
@@ -1476,7 +1476,7 @@ namespace OpenSim.Framework
1476 void SendChangeUserRights(UUID agentID, UUID friendID, int rights); 1476 void SendChangeUserRights(UUID agentID, UUID friendID, int rights);
1477 void SendTextBoxRequest(string message, int chatChannel, string objectname, UUID ownerID, string ownerFirstName, string ownerLastName, UUID objectId); 1477 void SendTextBoxRequest(string message, int chatChannel, string objectname, UUID ownerID, string ownerFirstName, string ownerLastName, UUID objectId);
1478 1478
1479 void StopFlying(ISceneEntity presence); 1479 void SendAgentTerseUpdate(ISceneEntity presence);
1480 1480
1481 void SendPlacesReply(UUID queryID, UUID transactionID, PlacesReplyData[] data); 1481 void SendPlacesReply(UUID queryID, UUID transactionID, PlacesReplyData[] data);
1482 } 1482 }
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 2907580..a8759ab 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -5016,7 +5016,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5016 { 5016 {
5017 ScenePresence presence = (ScenePresence)entity; 5017 ScenePresence presence = (ScenePresence)entity;
5018 5018
5019 attachPoint = 0; 5019 attachPoint = presence.State;
5020 collisionPlane = presence.CollisionPlane; 5020 collisionPlane = presence.CollisionPlane;
5021 position = presence.OffsetPosition; 5021 position = presence.OffsetPosition;
5022 velocity = presence.Velocity; 5022 velocity = presence.Velocity;
@@ -5040,7 +5040,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5040 SceneObjectPart part = (SceneObjectPart)entity; 5040 SceneObjectPart part = (SceneObjectPart)entity;
5041 5041
5042 attachPoint = part.ParentGroup.AttachmentPoint; 5042 attachPoint = part.ParentGroup.AttachmentPoint;
5043 5043 attachPoint = ((attachPoint % 16) * 16 + (attachPoint / 16));
5044// m_log.DebugFormat( 5044// m_log.DebugFormat(
5045// "[LLCLIENTVIEW]: Sending attachPoint {0} for {1} {2} to {3}", 5045// "[LLCLIENTVIEW]: Sending attachPoint {0} for {1} {2} to {3}",
5046// attachPoint, part.Name, part.LocalId, Name); 5046// attachPoint, part.Name, part.LocalId, Name);
@@ -5068,7 +5068,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5068 pos += 4; 5068 pos += 4;
5069 5069
5070 // Avatar/CollisionPlane 5070 // Avatar/CollisionPlane
5071 data[pos++] = (byte)((attachPoint % 16) * 16 + (attachPoint / 16)); ; 5071 data[pos++] = (byte) attachPoint;
5072 if (avatar) 5072 if (avatar)
5073 { 5073 {
5074 data[pos++] = 1; 5074 data[pos++] = 1;
@@ -12550,7 +12550,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
12550 OutPacket(dialog, ThrottleOutPacketType.Task); 12550 OutPacket(dialog, ThrottleOutPacketType.Task);
12551 } 12551 }
12552 12552
12553 public void StopFlying(ISceneEntity p) 12553 public void SendAgentTerseUpdate(ISceneEntity p)
12554 { 12554 {
12555 if (p is ScenePresence) 12555 if (p is ScenePresence)
12556 { 12556 {
@@ -12564,25 +12564,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
12564 12564
12565 Vector3 pos = presence.AbsolutePosition; 12565 Vector3 pos = presence.AbsolutePosition;
12566 12566
12567 if (presence.Appearance.AvatarHeight != 127.0f)
12568 pos += new Vector3(0f, 0f, (presence.Appearance.AvatarHeight/6f));
12569 else
12570 pos += new Vector3(0f, 0f, (1.56f/6f));
12571
12572 presence.AbsolutePosition = pos;
12573
12574 // attach a suitable collision plane regardless of the actual situation to force the LLClient to land.
12575 // Collision plane below the avatar's position a 6th of the avatar's height is suitable.
12576 // Mind you, that this method doesn't get called if the avatar's velocity magnitude is greater then a
12577 // certain amount.. because the LLClient wouldn't land in that situation anyway.
12578
12579 // why are we still testing for this really old height value default???
12580 if (presence.Appearance.AvatarHeight != 127.0f)
12581 presence.CollisionPlane = new Vector4(0, 0, 0, pos.Z - presence.Appearance.AvatarHeight/6f);
12582 else
12583 presence.CollisionPlane = new Vector4(0, 0, 0, pos.Z - (1.56f/6f));
12584
12585
12586 ImprovedTerseObjectUpdatePacket.ObjectDataBlock block = 12567 ImprovedTerseObjectUpdatePacket.ObjectDataBlock block =
12587 CreateImprovedTerseBlock(p, false); 12568 CreateImprovedTerseBlock(p, false);
12588 12569
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 2359f55..e06cec8 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1125,7 +1125,7 @@ namespace OpenSim.Region.Framework.Scenes
1125 1125
1126 public void StopFlying() 1126 public void StopFlying()
1127 { 1127 {
1128 ControllingClient.StopFlying(this); 1128 ControllingClient.SendAgentTerseUpdate(this);
1129 } 1129 }
1130 1130
1131 /// <summary> 1131 /// <summary>
@@ -1728,6 +1728,9 @@ namespace OpenSim.Region.Framework.Scenes
1728 SendControlsToScripts(flagsForScripts); 1728 SendControlsToScripts(flagsForScripts);
1729 } 1729 }
1730 1730
1731 if ((State & 0x10) != 0)
1732 ControllingClient.SendAgentTerseUpdate(this);
1733
1731 m_scene.EventManager.TriggerOnClientMovement(this); 1734 m_scene.EventManager.TriggerOnClientMovement(this);
1732 } 1735 }
1733 1736
diff --git a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
index 9b69da3..23a435d 100644
--- a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
+++ b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
@@ -1673,7 +1673,7 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
1673 { 1673 {
1674 } 1674 }
1675 1675
1676 public void StopFlying(ISceneEntity presence) 1676 public void SendAgentTerseUpdate(ISceneEntity presence)
1677 { 1677 {
1678 } 1678 }
1679 1679
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
index 6c38b65..9a61702 100644
--- a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
+++ b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
@@ -1229,7 +1229,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
1229 { 1229 {
1230 } 1230 }
1231 1231
1232 public void StopFlying(ISceneEntity presence) 1232 public void SendAgentTerseUpdate(ISceneEntity presence)
1233 { 1233 {
1234 } 1234 }
1235 1235
diff --git a/OpenSim/Tests/Common/Mock/TestClient.cs b/OpenSim/Tests/Common/Mock/TestClient.cs
index 5d7349a..f7220d7 100644
--- a/OpenSim/Tests/Common/Mock/TestClient.cs
+++ b/OpenSim/Tests/Common/Mock/TestClient.cs
@@ -1256,7 +1256,7 @@ namespace OpenSim.Tests.Common.Mock
1256 { 1256 {
1257 } 1257 }
1258 1258
1259 public void StopFlying(ISceneEntity presence) 1259 public void SendAgentTerseUpdate(ISceneEntity presence)
1260 { 1260 {
1261 } 1261 }
1262 1262