diff options
Changed it so the avatar's rotation is now sent as part of a full avatar update.
This should fix the wrong rotation on existing sitting avatar when logging in bug.
Diffstat (limited to 'OpenSim/Region/ClientStack')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 41ac657..3fa26e4 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -2132,7 +2132,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2132 | /// <param name="avatarLocalID"></param> | 2132 | /// <param name="avatarLocalID"></param> |
2133 | /// <param name="Pos"></param> | 2133 | /// <param name="Pos"></param> |
2134 | public void SendAvatarData(ulong regionHandle, string firstName, string lastName, LLUUID avatarID, | 2134 | public void SendAvatarData(ulong regionHandle, string firstName, string lastName, LLUUID avatarID, |
2135 | uint avatarLocalID, LLVector3 Pos, byte[] textureEntry, uint parentID) | 2135 | uint avatarLocalID, LLVector3 Pos, byte[] textureEntry, uint parentID, LLQuaternion rotation) |
2136 | { | 2136 | { |
2137 | ObjectUpdatePacket objupdate = (ObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ObjectUpdate); | 2137 | ObjectUpdatePacket objupdate = (ObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ObjectUpdate); |
2138 | // TODO: don't create new blocks if recycling an old packet | 2138 | // TODO: don't create new blocks if recycling an old packet |
@@ -2147,9 +2147,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2147 | objupdate.ObjectData[0].ParentID = parentID; | 2147 | objupdate.ObjectData[0].ParentID = parentID; |
2148 | objupdate.ObjectData[0].NameValue = | 2148 | objupdate.ObjectData[0].NameValue = |
2149 | Helpers.StringToField("FirstName STRING RW SV " + firstName + "\nLastName STRING RW SV " + lastName); | 2149 | Helpers.StringToField("FirstName STRING RW SV " + firstName + "\nLastName STRING RW SV " + lastName); |
2150 | |||
2150 | LLVector3 pos2 = new LLVector3((float)Pos.X, (float)Pos.Y, (float)Pos.Z); | 2151 | LLVector3 pos2 = new LLVector3((float)Pos.X, (float)Pos.Y, (float)Pos.Z); |
2151 | byte[] pb = pos2.GetBytes(); | 2152 | byte[] pb = pos2.GetBytes(); |
2152 | Array.Copy(pb, 0, objupdate.ObjectData[0].ObjectData, 16, pb.Length); | 2153 | Array.Copy(pb, 0, objupdate.ObjectData[0].ObjectData, 16, pb.Length); |
2154 | |||
2155 | byte[] rot = rotation.GetBytes(); | ||
2156 | Array.Copy(rot, 0, objupdate.ObjectData[0].ObjectData, 52, rot.Length); | ||
2157 | |||
2153 | objupdate.Header.Zerocoded = true; | 2158 | objupdate.Header.Zerocoded = true; |
2154 | OutPacket(objupdate, ThrottleOutPacketType.Task); | 2159 | OutPacket(objupdate, ThrottleOutPacketType.Task); |
2155 | } | 2160 | } |