diff options
author | Diva Canto | 2013-07-20 17:58:32 -0700 |
---|---|---|
committer | Diva Canto | 2013-07-21 09:01:44 -0700 |
commit | b5ab0698d6328c90d779c2af29914da840335233 (patch) | |
tree | c78baed03c24a8f78ff210962bb6e9acf302c653 | |
parent | Filter certain viewer effects depending on distance between the avatar that i... (diff) | |
download | opensim-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.
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 | ||