diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 8cbbfd9..dc28be8 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -6777,6 +6777,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6777 | } | 6777 | } |
6778 | #endregion | 6778 | #endregion |
6779 | 6779 | ||
6780 | if (SceneAgent.IsChildAgent) | ||
6781 | { | ||
6782 | SendCantSitBecauseChildAgentResponse(); | ||
6783 | return true; | ||
6784 | } | ||
6785 | |||
6780 | AgentRequestSit handlerAgentRequestSit = OnAgentRequestSit; | 6786 | AgentRequestSit handlerAgentRequestSit = OnAgentRequestSit; |
6781 | 6787 | ||
6782 | if (handlerAgentRequestSit != null) | 6788 | if (handlerAgentRequestSit != null) |
@@ -6801,6 +6807,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6801 | } | 6807 | } |
6802 | #endregion | 6808 | #endregion |
6803 | 6809 | ||
6810 | if (SceneAgent.IsChildAgent) | ||
6811 | { | ||
6812 | SendCantSitBecauseChildAgentResponse(); | ||
6813 | return true; | ||
6814 | } | ||
6815 | |||
6804 | AgentSit handlerAgentSit = OnAgentSit; | 6816 | AgentSit handlerAgentSit = OnAgentSit; |
6805 | if (handlerAgentSit != null) | 6817 | if (handlerAgentSit != null) |
6806 | { | 6818 | { |
@@ -6810,6 +6822,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6810 | return true; | 6822 | return true; |
6811 | } | 6823 | } |
6812 | 6824 | ||
6825 | /// <summary> | ||
6826 | /// Used when a child agent gets a sit response which should not be fulfilled. | ||
6827 | /// </summary> | ||
6828 | private void SendCantSitBecauseChildAgentResponse() | ||
6829 | { | ||
6830 | SendAlertMessage("Try moving closer. Can't sit on object because it is not in the same region as you."); | ||
6831 | } | ||
6832 | |||
6813 | private bool HandleSoundTrigger(IClientAPI sender, Packet Pack) | 6833 | private bool HandleSoundTrigger(IClientAPI sender, Packet Pack) |
6814 | { | 6834 | { |
6815 | SoundTriggerPacket soundTriggerPacket = (SoundTriggerPacket)Pack; | 6835 | SoundTriggerPacket soundTriggerPacket = (SoundTriggerPacket)Pack; |
@@ -12934,7 +12954,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
12934 | { | 12954 | { |
12935 | if (p is ScenePresence) | 12955 | if (p is ScenePresence) |
12936 | { | 12956 | { |
12937 | ScenePresence presence = p as ScenePresence; | ||
12938 | // It turns out to get the agent to stop flying, you have to feed it stop flying velocities | 12957 | // It turns out to get the agent to stop flying, you have to feed it stop flying velocities |
12939 | // There's no explicit message to send the client to tell it to stop flying.. it relies on the | 12958 | // There's no explicit message to send the client to tell it to stop flying.. it relies on the |
12940 | // velocity, collision plane and avatar height | 12959 | // velocity, collision plane and avatar height |
@@ -12942,15 +12961,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
12942 | // Add 1/6 the avatar's height to it's position so it doesn't shoot into the air | 12961 | // Add 1/6 the avatar's height to it's position so it doesn't shoot into the air |
12943 | // when the avatar stands up | 12962 | // when the avatar stands up |
12944 | 12963 | ||
12945 | Vector3 pos = presence.AbsolutePosition; | ||
12946 | |||
12947 | ImprovedTerseObjectUpdatePacket.ObjectDataBlock block = | 12964 | ImprovedTerseObjectUpdatePacket.ObjectDataBlock block = |
12948 | CreateImprovedTerseBlock(p, false); | 12965 | CreateImprovedTerseBlock(p, false); |
12949 | 12966 | ||
12950 | const float TIME_DILATION = 1.0f; | 12967 | const float TIME_DILATION = 1.0f; |
12951 | ushort timeDilation = Utils.FloatToUInt16(TIME_DILATION, 0.0f, 1.0f); | 12968 | ushort timeDilation = Utils.FloatToUInt16(TIME_DILATION, 0.0f, 1.0f); |
12952 | 12969 | ||
12953 | |||
12954 | ImprovedTerseObjectUpdatePacket packet | 12970 | ImprovedTerseObjectUpdatePacket packet |
12955 | = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket( | 12971 | = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket( |
12956 | PacketType.ImprovedTerseObjectUpdate); | 12972 | PacketType.ImprovedTerseObjectUpdate); |